mirror of
https://github.com/historicalsource/zork-german
synced 2024-07-16 21:44:43 +03:00
287 lines
6.2 KiB
Plaintext
287 lines
6.2 KiB
Plaintext
|
|
|
|
.FUNCT MAIN-LOOP:ANY:0:0,TRASH
|
|
?PRG1: CALL1 MAIN-LOOP-1 >TRASH
|
|
JUMP ?PRG1
|
|
|
|
|
|
.FUNCT MAIN-LOOP-1:ANY:0:0,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,O,I
|
|
SET 'CNT,0
|
|
SET 'OBJ,FALSE-VALUE
|
|
SET 'PTBL,TRUE-VALUE
|
|
CALL1 PARSER >P-WON
|
|
ZERO? P-WON /?CCL3
|
|
GET P-PRSI,P-MATCHLEN >ICNT
|
|
GET P-PRSO,P-MATCHLEN >OCNT
|
|
ZERO? P-IT-OBJECT /?PRD7
|
|
CALL2 ACCESSIBLE?,P-IT-OBJECT
|
|
ZERO? STACK \?CCL5
|
|
?PRD7: ZERO? P-HIM-OBJECT /?PRD10
|
|
CALL2 ACCESSIBLE?,P-HIM-OBJECT
|
|
ZERO? STACK \?CCL5
|
|
?PRD10: ZERO? P-HER-OBJECT /?CND4
|
|
CALL2 ACCESSIBLE?,P-HER-OBJECT
|
|
ZERO? STACK /?CND4
|
|
?CCL5: SET 'TMP,FALSE-VALUE
|
|
?PRG15: IGRTR? 'CNT,ICNT /?REP16
|
|
GET P-PRSI,CNT
|
|
EQUAL? STACK,IT \?CCL22
|
|
ZERO? P-IT-OBJECT /?CCL22
|
|
PUT P-PRSI,CNT,P-IT-OBJECT
|
|
SET 'TMP,TRUE-VALUE
|
|
JUMP ?REP16
|
|
?CCL22: GET P-PRSI,CNT
|
|
EQUAL? STACK,HIM \?CCL26
|
|
ZERO? P-HIM-OBJECT /?CCL26
|
|
PUT P-PRSI,CNT,P-HIM-OBJECT
|
|
SET 'TMP,TRUE-VALUE
|
|
JUMP ?REP16
|
|
?CCL26: GET P-PRSI,CNT
|
|
EQUAL? STACK,HER \?PRG15
|
|
ZERO? P-HER-OBJECT /?PRG15
|
|
PUT P-PRSI,CNT,P-HER-OBJECT
|
|
SET 'TMP,TRUE-VALUE
|
|
?REP16: ZERO? TMP \?CND32
|
|
SET 'CNT,0
|
|
?PRG34: IGRTR? 'CNT,OCNT /?CND32
|
|
GET P-PRSI,CNT
|
|
EQUAL? STACK,IT \?CCL41
|
|
ZERO? P-IT-OBJECT /?CCL41
|
|
PUT P-PRSI,CNT,P-IT-OBJECT
|
|
JUMP ?CND32
|
|
?CCL41: GET P-PRSI,CNT
|
|
EQUAL? STACK,HIM \?CCL45
|
|
ZERO? P-HIM-OBJECT /?CCL45
|
|
PUT P-PRSI,CNT,P-HIM-OBJECT
|
|
JUMP ?CND32
|
|
?CCL45: GET P-PRSI,CNT
|
|
EQUAL? STACK,HER \?PRG34
|
|
ZERO? P-HER-OBJECT /?PRG34
|
|
PUT P-PRSI,CNT,P-HER-OBJECT
|
|
?CND32: SET 'CNT,0
|
|
?CND4: ZERO? OCNT \?CCL53
|
|
SET 'NUM,OCNT
|
|
JUMP ?CND51
|
|
?CCL53: GRTR? OCNT,1 \?CCL55
|
|
SET 'TBL,P-PRSO
|
|
ZERO? ICNT \?CCL58
|
|
SET 'OBJ,FALSE-VALUE
|
|
JUMP ?CND56
|
|
?CCL58: GET P-PRSI,1 >OBJ
|
|
?CND56: SET 'NUM,OCNT
|
|
JUMP ?CND51
|
|
?CCL55: GRTR? ICNT,1 \?CCL60
|
|
SET 'PTBL,FALSE-VALUE
|
|
SET 'TBL,P-PRSI
|
|
GET P-PRSO,1 >OBJ
|
|
SET 'NUM,ICNT
|
|
JUMP ?CND51
|
|
?CCL60: SET 'NUM,1
|
|
?CND51: ZERO? OBJ \?CND61
|
|
EQUAL? ICNT,1 \?CND61
|
|
GET P-PRSI,1 >OBJ
|
|
?CND61: EQUAL? PRSA,V?WALK \?CCL67
|
|
ZERO? P-WALK-DIR /?CCL67
|
|
CALL PERFORM,PRSA,PRSO >V
|
|
JUMP ?CND65
|
|
?CCL67: ZERO? NUM \?CCL71
|
|
GETB P-SYNTAX,P-SBITS
|
|
BAND STACK,P-SONUMS
|
|
ZERO? STACK \?CCL74
|
|
CALL2 PERFORM,PRSA >V
|
|
SET 'PRSO,FALSE-VALUE
|
|
JUMP ?CND65
|
|
?CCL74: ZERO? LIT \?CCL76
|
|
PRINTI "Es ist zu dunkel, um etwas zu sehen."
|
|
CRLF
|
|
JUMP ?CND65
|
|
?CCL76: ICALL1 REFERRING
|
|
SET 'V,FALSE-VALUE
|
|
JUMP ?CND65
|
|
?CCL71: SET 'P-NOT-HERE,0
|
|
SET 'P-MULT,FALSE-VALUE
|
|
GRTR? NUM,1 \?CND77
|
|
SET 'P-MULT,TRUE-VALUE
|
|
?CND77: SET 'TMP,FALSE-VALUE
|
|
?PRG79: IGRTR? 'CNT,NUM \?CCL83
|
|
GRTR? P-NOT-HERE,0 \?CCL86
|
|
PRINTI "The "
|
|
EQUAL? P-NOT-HERE,1 \?CCL89
|
|
PRINTI "Das"
|
|
JUMP ?CND87
|
|
?CCL89: PRINTI "Die"
|
|
?CND87: EQUAL? P-NOT-HERE,NUM /?CND90
|
|
PRINTI " andere "
|
|
?CND90: PRINTI "Ding"
|
|
EQUAL? P-NOT-HERE,1 /?CND92
|
|
PRINTC 101
|
|
?CND92: PRINTI " von dem du sprichst, "
|
|
EQUAL? P-NOT-HERE,1 /?CCL96
|
|
PRINTI "sind"
|
|
JUMP ?CND94
|
|
?CCL96: PRINTI "ist"
|
|
?CND94: PRINTI " nicht hier."
|
|
CRLF
|
|
JUMP ?CND65
|
|
?CCL86: ZERO? TMP \?CND65
|
|
PRINTI "Es gibt hier nichts, das man wegnehmen kann."
|
|
CRLF
|
|
JUMP ?CND65
|
|
?CCL83: ZERO? PTBL /?CCL100
|
|
GET P-PRSO,CNT >OBJ1
|
|
JUMP ?CND98
|
|
?CCL100: GET P-PRSI,CNT >OBJ1
|
|
?CND98: ZERO? PTBL /?CCL103
|
|
SET 'O,OBJ1
|
|
JUMP ?CND101
|
|
?CCL103: SET 'O,OBJ
|
|
?CND101: ZERO? PTBL /?CCL106
|
|
SET 'I,OBJ
|
|
JUMP ?CND104
|
|
?CCL106: SET 'I,OBJ1
|
|
?CND104: GRTR? NUM,1 /?CCL108
|
|
GET P-ITBL,P-NC1
|
|
GET STACK,0
|
|
EQUAL? STACK,W?ALLES \?CND107
|
|
?CCL108: LOC WINNER >V
|
|
EQUAL? O,NOT-HERE-OBJECT \?CCL113
|
|
INC 'P-NOT-HERE
|
|
JUMP ?PRG79
|
|
?CCL113: EQUAL? PRSA,V?TAKE \?CCL115
|
|
ZERO? I /?CCL115
|
|
GET P-ITBL,P-NC1
|
|
GET STACK,0
|
|
EQUAL? STACK,W?ALLES \?CCL115
|
|
IN? O,I \?PRG79
|
|
?CCL115: EQUAL? P-GETFLAGS,P-ALL \?CCL121
|
|
EQUAL? PRSA,V?TAKE \?CCL121
|
|
LOC O
|
|
EQUAL? STACK,WINNER,HERE,V /?PRD126
|
|
LOC O
|
|
EQUAL? STACK,I /?PRD126
|
|
LOC O
|
|
FSET? STACK,SURFACEBIT \?PRG79
|
|
?PRD126: FSET? O,TAKEBIT /?CCL121
|
|
FSET? O,TRYTAKEBIT \?PRG79
|
|
?CCL121: EQUAL? OBJ1,IT \?CCL134
|
|
ICALL DPRINT,P-IT-OBJECT,FALSE-VALUE
|
|
JUMP ?CND132
|
|
?CCL134: EQUAL? OBJ1,HIM \?CCL136
|
|
ICALL DPRINT,P-HIM-OBJECT,FALSE-VALUE
|
|
JUMP ?CND132
|
|
?CCL136: EQUAL? OBJ1,HER \?CCL138
|
|
ICALL DPRINT,P-HER-OBJECT,FALSE-VALUE
|
|
JUMP ?CND132
|
|
?CCL138: ICALL DPRINT,OBJ1,FALSE-VALUE
|
|
?CND132: PRINTI ": "
|
|
?CND107: SET 'PRSO,O
|
|
SET 'PRSI,I
|
|
SET 'TMP,TRUE-VALUE
|
|
CALL PERFORM,PRSA,PRSO,PRSI >V
|
|
EQUAL? V,M-FATAL \?PRG79
|
|
?CND65: EQUAL? V,M-FATAL /?CND141
|
|
LOC WINNER
|
|
GETP STACK,P?ACTION
|
|
CALL STACK,M-END >V
|
|
?CND141: EQUAL? V,M-FATAL \?CND1
|
|
SET 'P-CONT,FALSE-VALUE
|
|
JUMP ?CND1
|
|
?CCL3: SET 'P-CONT,FALSE-VALUE
|
|
?CND1: ICALL1 NULL-F
|
|
ZERO? P-WON /FALSE
|
|
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE
|
|
EQUAL? PRSA,V?HINT,V?SAVE,V?VERBOSE /TRUE
|
|
EQUAL? PRSA,V?QUIT,V?VERSION,V?HINTS-OFF /TRUE
|
|
EQUAL? PRSA,V?SCRIPT,V?SCORE,V?RESTART /TRUE
|
|
EQUAL? PRSA,V?RESTORE,V?UNSCRIPT /TRUE
|
|
CALL1 CLOCKER >V
|
|
RETURN V
|
|
|
|
|
|
.FUNCT PERFORM:ANY:1:3,A,O,I,V,OA,OO,OI
|
|
SET 'OA,PRSA
|
|
SET 'OO,PRSO
|
|
SET 'OI,PRSI
|
|
ZERO? P-WALK-DIR \?CND1
|
|
EQUAL? IT,I,O \?CND1
|
|
ZERO? P-IT-OBJECT /?CTR6
|
|
CALL2 ACCESSIBLE?,P-IT-OBJECT
|
|
ZERO? STACK \?CCL7
|
|
?CTR6: ICALL1 REFERRING
|
|
RETURN 2
|
|
?CCL7: EQUAL? IT,O \?CCL13
|
|
SET 'O,P-IT-OBJECT
|
|
JUMP ?CND1
|
|
?CCL13: EQUAL? IT,I \?CND1
|
|
SET 'I,P-IT-OBJECT
|
|
?CND1: ZERO? P-WALK-DIR \?CND15
|
|
EQUAL? HIM,I,O \?CND15
|
|
ZERO? P-HIM-OBJECT /?CTR20
|
|
CALL2 ACCESSIBLE?,P-HIM-OBJECT
|
|
ZERO? STACK \?CCL21
|
|
?CTR20: ICALL1 REFERRING
|
|
RETURN 2
|
|
?CCL21: EQUAL? HIM,O \?CCL27
|
|
SET 'O,P-HIM-OBJECT
|
|
JUMP ?CND15
|
|
?CCL27: EQUAL? HIM,I \?CND15
|
|
SET 'I,P-HIM-OBJECT
|
|
?CND15: ZERO? P-WALK-DIR \?CND29
|
|
EQUAL? HER,I,O \?CND29
|
|
ZERO? P-HER-OBJECT /?CTR34
|
|
CALL2 ACCESSIBLE?,P-HER-OBJECT
|
|
ZERO? STACK \?CCL35
|
|
?CTR34: ICALL1 REFERRING
|
|
RETURN 2
|
|
?CCL35: EQUAL? HER,O \?CCL41
|
|
SET 'O,P-HER-OBJECT
|
|
JUMP ?CND29
|
|
?CCL41: EQUAL? HER,I \?CND29
|
|
SET 'I,P-HER-OBJECT
|
|
?CND29: SET 'PRSA,A
|
|
SET 'PRSI,I
|
|
SET 'PRSO,O
|
|
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL45
|
|
CALL1 NOT-HERE-OBJECT-F >V
|
|
ZERO? V \?CND43
|
|
?CCL45: SET 'O,PRSO
|
|
SET 'I,PRSI
|
|
ICALL2 THIS-IS-IT,PRSO
|
|
ICALL2 THIS-IS-IT,PRSI
|
|
GETP WINNER,P?ACTION
|
|
CALL STACK >V
|
|
ZERO? V \?CND43
|
|
LOC WINNER
|
|
GETP STACK,P?ACTION
|
|
CALL STACK,M-BEG >V
|
|
ZERO? V \?CND43
|
|
GET PREACTIONS,A
|
|
CALL STACK >V
|
|
ZERO? V \?CND43
|
|
ZERO? I /?CCL56
|
|
GETP I,P?ACTION
|
|
CALL STACK >V
|
|
ZERO? V \?CND43
|
|
?CCL56: ZERO? O /?CCL60
|
|
EQUAL? A,V?WALK /?CCL60
|
|
LOC O
|
|
ZERO? STACK /?CCL60
|
|
LOC O
|
|
GETP STACK,P?CONTFCN
|
|
CALL STACK >V
|
|
ZERO? V \?CND43
|
|
?CCL60: ZERO? O /?CCL66
|
|
EQUAL? A,V?WALK /?CCL66
|
|
GETP O,P?ACTION
|
|
CALL STACK >V
|
|
ZERO? V \?CND43
|
|
?CCL66: GET ACTIONS,A
|
|
CALL STACK >V
|
|
ZERO? V /?CND43
|
|
?CND43: SET 'PRSA,OA
|
|
SET 'PRSO,OO
|
|
SET 'PRSI,OI
|
|
RETURN V
|
|
|
|
.ENDI
|