2454 lines
50 KiB
Plaintext
2454 lines
50 KiB
Plaintext
|
|
||
|
|
||
|
.FUNCT V-VERBOSE:ANY:0:0
|
||
|
SET 'VERBOSE,TRUE-VALUE
|
||
|
SET 'SUPER-BRIEF,FALSE-VALUE
|
||
|
PRINTR "Maximum verbosity."
|
||
|
|
||
|
|
||
|
.FUNCT V-BRIEF:ANY:0:0
|
||
|
SET 'VERBOSE,FALSE-VALUE
|
||
|
SET 'SUPER-BRIEF,FALSE-VALUE
|
||
|
PRINTR "Brief descriptions."
|
||
|
|
||
|
|
||
|
.FUNCT V-SUPER-BRIEF:ANY:0:0
|
||
|
SET 'SUPER-BRIEF,TRUE-VALUE
|
||
|
PRINTR "Superbrief descriptions."
|
||
|
|
||
|
|
||
|
.FUNCT V-INVENTORY:ANY:0:0
|
||
|
FIRST? WINNER \?CCL3
|
||
|
CALL2 PRINT-CONT,WINNER
|
||
|
RSTACK
|
||
|
?CCL3: PRINTR "Dein H%ande sind leer."
|
||
|
|
||
|
|
||
|
.FUNCT FINISH:ANY:0:0,WRD
|
||
|
ICALL1 V-SCORE
|
||
|
?PRG1: CRLF
|
||
|
PRINTI "M%ochtest du das Spiel neu anfangen, einen gespeicherten Zug wiederherstellen, einen Tip erhalten oder diese Spielrunde beenden?
|
||
|
(Tippe: NEUBEGINN ,WIEDERHERSTELLEN, TIP oder AUFHOEREN: >"
|
||
|
PUTB P-INBUF,1,0
|
||
|
READ P-INBUF,P-LEXV
|
||
|
GET P-LEXV,P-LEXSTART >WRD
|
||
|
EQUAL? WRD,W?NEUBEGINN \?CCL5
|
||
|
RESTART
|
||
|
PRINTI "Verfehlt."
|
||
|
CRLF
|
||
|
JUMP ?PRG1
|
||
|
?CCL5: EQUAL? WRD,W?WIEDERHERSTELLUNG \?CCL7
|
||
|
RESTORE
|
||
|
ZERO? STACK /?CCL10
|
||
|
PRINTI "Ok."
|
||
|
CRLF
|
||
|
JUMP ?PRG1
|
||
|
?CCL10: PRINTI "Verfehlt."
|
||
|
CRLF
|
||
|
JUMP ?PRG1
|
||
|
?CCL7: EQUAL? WRD,W?AUFHOEREN \?CCL12
|
||
|
QUIT
|
||
|
JUMP ?PRG1
|
||
|
?CCL12: EQUAL? WRD,W?TIPS,W?TIP,W?HILFE \?PRG1
|
||
|
ICALL1 V-HINT
|
||
|
JUMP ?PRG1
|
||
|
|
||
|
|
||
|
.FUNCT V-QUIT:ANY:0:0,SCOR
|
||
|
ICALL1 V-SCORE
|
||
|
PRINTI "M%ochtest du aufh%oren zu spielen. (J wenn: Ja): "
|
||
|
CALL1 YES?
|
||
|
ZERO? STACK /?CCL3
|
||
|
QUIT
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "Ok."
|
||
|
|
||
|
|
||
|
.FUNCT V-RESTART:ANY:0:0
|
||
|
ICALL2 V-SCORE,TRUE-VALUE
|
||
|
PRINTI "M%ochtest du neu anfangen? (J wenn: Ja): "
|
||
|
CALL1 YES?
|
||
|
ZERO? STACK /FALSE
|
||
|
PRINTI "Neuanfang."
|
||
|
CRLF
|
||
|
RESTART
|
||
|
PRINTR "Verfehlt."
|
||
|
|
||
|
|
||
|
.FUNCT V-RESTORE:ANY:0:0
|
||
|
RESTORE
|
||
|
ZERO? STACK /?CCL3
|
||
|
SET 'OHERE,FALSE-VALUE
|
||
|
PRINTI "Ok."
|
||
|
CRLF
|
||
|
CALL1 V-FIRST-LOOK
|
||
|
RSTACK
|
||
|
?CCL3: PRINTR "Verfehlt."
|
||
|
|
||
|
|
||
|
.FUNCT V-SAVE:ANY:0:0,SV,FLG
|
||
|
SAVE >SV
|
||
|
EQUAL? SV,1 \?CCL3
|
||
|
PRINTR "Ok."
|
||
|
?CCL3: EQUAL? SV,2 \?CCL5
|
||
|
SET 'OHERE,FALSE-VALUE
|
||
|
PRINTI "Ok."
|
||
|
CRLF
|
||
|
CLEAR -1
|
||
|
ICALL1 INIT-STATUS-LINE
|
||
|
CRLF
|
||
|
ICALL1 V-LOOK
|
||
|
RTRUE
|
||
|
?CCL5: PRINTR "Verfehlt."
|
||
|
|
||
|
|
||
|
.FUNCT V-SCRIPT:ANY:0:0
|
||
|
PRINTI "Hier beginnt eine gedruckte Kopie von: "
|
||
|
CRLF
|
||
|
CRLF
|
||
|
ICALL1 V-VERSION
|
||
|
DIROUT D-PRINTER-ON
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-UNSCRIPT:ANY:0:0
|
||
|
PRINTI "Hier endet eine gedruckte Kopie von: "
|
||
|
CRLF
|
||
|
CRLF
|
||
|
ICALL1 V-VERSION
|
||
|
DIROUT D-PRINTER-OFF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-$ID:ANY:0:0
|
||
|
PRINTI "Interpreter "
|
||
|
GETB 0,30
|
||
|
PRINTN STACK
|
||
|
PRINTI " Version "
|
||
|
GETB 0,31
|
||
|
PRINTC STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-VERSION:ANY:0:0,CNT
|
||
|
SET 'CNT,17
|
||
|
PRINTI "ZORK I: Das Gro%se Unterweltreich
|
||
|
Infocom dialogf%ahig Prose - eine Phantasiegeschichte
|
||
|
Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986"
|
||
|
PRINTI " Infocom, Inc.
|
||
|
Alle Rechte vorbehalten. ZORK ist ein eingetragenes Markenzeichen
|
||
|
der Infocom, Inc.
|
||
|
BETA RELEASE # 1
|
||
|
Ver%offenlichtung "
|
||
|
GET 0,1
|
||
|
BAND STACK,2047
|
||
|
PRINTN STACK
|
||
|
PRINTI " / Seriennummer "
|
||
|
?PRG1: IGRTR? 'CNT,23 /?REP2
|
||
|
GETB 0,CNT
|
||
|
PRINTC STACK
|
||
|
JUMP ?PRG1
|
||
|
?REP2: PRINTI " / "
|
||
|
ICALL1 V-$ID
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-VERIFY:ANY:0:0
|
||
|
PRINTI "Diskette pr%ufen..."
|
||
|
CRLF
|
||
|
VERIFY \?CCL3
|
||
|
PRINTR "Die Diskette ist in Ordnung."
|
||
|
?CCL3: CRLF
|
||
|
PRINTR "** Diskettenfehler **"
|
||
|
|
||
|
|
||
|
.FUNCT V-COMMAND-FILE:ANY:0:0
|
||
|
DIRIN 1
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-RANDOM:ANY:0:0
|
||
|
EQUAL? PRSO,INTNUM /?CCL3
|
||
|
PRINTR "Illegal call to #RND."
|
||
|
?CCL3: SUB 0,P-NUMBER
|
||
|
RANDOM STACK
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-RECORD:ANY:0:0
|
||
|
DIROUT 4
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-UNRECORD:ANY:0:0
|
||
|
DIROUT -4
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-ADVENT:ANY:0:0
|
||
|
PRINTR "A hollow voice says %>Fool%<."
|
||
|
|
||
|
|
||
|
.FUNCT V-ALARM:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
GETP PRSO,P?STRENGTH
|
||
|
LESS? STACK,0 \?CCL6
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " wird grob geweckt."
|
||
|
CRLF
|
||
|
CALL2 AWAKEN,PRSO
|
||
|
RSTACK
|
||
|
?CCL6: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon wach, falls du das noch nicht gemerkt hast."
|
||
|
?CCL3: EQUAL? PRSO,ROOMS \?CCL8
|
||
|
ICALL PERFORM,V?ALARM,ME
|
||
|
RTRUE
|
||
|
?CCL8: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " schl%aft nicht!"
|
||
|
|
||
|
|
||
|
.FUNCT V-ANSWER:ANY:0:0
|
||
|
PRINTI "Keiner wartet auf deine Antwort."
|
||
|
CRLF
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-ATTACK:ANY:0:0,X
|
||
|
FSET? PRSO,ACTORBIT /?CCL3
|
||
|
PRINTI "Nur ein Verr%uckter w%urde "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSO
|
||
|
PRINTR " angreifen."
|
||
|
?CCL3: ZERO? PRSI \?CCL5
|
||
|
CALL FIND-IN,ADVENTURER,WEAPONBIT >X
|
||
|
ZERO? X /?CCL5
|
||
|
PRINTI "(mit "
|
||
|
ICALL2 DER-DAT-PRINT,X
|
||
|
PRINTC 41
|
||
|
CRLF
|
||
|
CRLF
|
||
|
ICALL PERFORM,V?ATTACK,ADVENTURER,X
|
||
|
RTRUE
|
||
|
?CCL5: ZERO? PRSI /?CTR8
|
||
|
EQUAL? PRSI,HANDS \?CCL9
|
||
|
?CTR8: ICALL2 EIN-ACC-CAP-PRINT,PRSO
|
||
|
PRINTR " mit den nackten H%anden anzugreifen ist Selbstmord."
|
||
|
?CCL9: IN? PRSI,WINNER /?CCL13
|
||
|
PRINTI "Du h%alst noch nicht einmal "
|
||
|
ICALL2 DER-ACC-PRINT,PRSI
|
||
|
PRINTR " in der Hand."
|
||
|
?CCL13: FSET? PRSI,WEAPONBIT /?CCL15
|
||
|
ICALL2 EIN-ACC-CAP-PRINT,PRSO
|
||
|
PRINTI " mit "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSI
|
||
|
PRINTR " anzugreifen ist Selbstmord."
|
||
|
?CCL15: CALL1 HERO-BLOW
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-BACK:ANY:0:0
|
||
|
PRINTR "Sorry, my memory is poor. Please give a direction."
|
||
|
|
||
|
|
||
|
.FUNCT V-BLAST:ANY:0:0
|
||
|
PRINTR "You can't blast anything by using words."
|
||
|
|
||
|
|
||
|
.FUNCT PRE-BOARD:ANY:0:0,AV
|
||
|
LOC WINNER >AV
|
||
|
CALL1 NULL-F
|
||
|
ZERO? STACK \TRUE
|
||
|
FSET? PRSO,VEHBIT \?CCL5
|
||
|
IN? PRSO,HERE /?CCL8
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " mu%s auf der Erde sein, um bestiegen zu werden."
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL8: FSET? AV,VEHBIT \FALSE
|
||
|
PRINTI "Du bist schon in "
|
||
|
ICALL2 DER-DAT-PRINT,AV
|
||
|
PRINTC 33
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL5: EQUAL? PRSO,WATER,GLOBAL-WATER \?CCL12
|
||
|
ICALL PERFORM,V?SWIM,PRSO
|
||
|
RTRUE
|
||
|
?CCL12: PRINTI "Du hast also eine Idee, wie man in "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSO
|
||
|
PRINTI " einsteigt?"
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
|
||
|
|
||
|
.FUNCT V-BOARD:ANY:0:0,AV
|
||
|
PRINTI "Du bist jetzt in "
|
||
|
ICALL2 DER-DAT-PRINT,PRSO
|
||
|
PRINTC 46
|
||
|
CRLF
|
||
|
SET 'OHERE,FALSE-VALUE
|
||
|
MOVE WINNER,PRSO
|
||
|
GETP PRSO,P?ACTION
|
||
|
ICALL STACK,M-ENTER
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-BRUSH:ANY:0:0
|
||
|
PRINTR "Wenn du willst, aber um Himmels Willen, warum?"
|
||
|
|
||
|
|
||
|
.FUNCT TELL-NO-PRSI:ANY:0:0
|
||
|
PRINTR "Du hast nicht gesagt mit was!"
|
||
|
|
||
|
|
||
|
.FUNCT PRE-BURN:ANY:0:0
|
||
|
ZERO? PRSI \?CCL3
|
||
|
CALL1 TELL-NO-PRSI
|
||
|
RSTACK
|
||
|
?CCL3: FSET? PRSI,FLAMEBIT \?CCL5
|
||
|
FSET? PRSI,ONBIT /FALSE
|
||
|
?CCL5: PRINTI "Mit "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSI
|
||
|
PRINTR " etwa?!?"
|
||
|
|
||
|
|
||
|
.FUNCT V-BURN:ANY:0:0
|
||
|
CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
FSET? PRSO,BURNBIT \?CCL5
|
||
|
IN? PRSO,WINNER /?CTR7
|
||
|
IN? WINNER,PRSO \?CCL8
|
||
|
?CTR7: ICALL2 REMOVE-CAREFULLY,PRSO
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " f%angt Feuer. Dummerweise "
|
||
|
IN? WINNER,PRSO \?CCL13
|
||
|
PRINTI "warst du gerade darin"
|
||
|
JUMP ?CND11
|
||
|
?CCL13: PRINTI "hast du ihn gerade festgehalten"
|
||
|
?CND11: PRINTC 46
|
||
|
RTRUE
|
||
|
?CCL8: ICALL2 REMOVE-CAREFULLY,PRSO
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " f%angt Feuer und verbrennt."
|
||
|
?CCL5: PRINTI "Du kannst "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSO
|
||
|
PRINTR " nicht verbrennen."
|
||
|
|
||
|
|
||
|
.FUNCT V-CHOMP:ANY:0:0
|
||
|
PRINTR "Preposterous!"
|
||
|
|
||
|
|
||
|
.FUNCT V-CLIMB-DOWN:ANY:0:0
|
||
|
CALL V-CLIMB-UP,P?RUNTER,PRSO
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-CLIMB-FOO:ANY:0:0
|
||
|
CALL V-CLIMB-UP,P?RAUF,PRSO
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-CLIMB-ON:ANY:0:0
|
||
|
FSET? PRSO,VEHBIT \?CCL3
|
||
|
ICALL PERFORM,V?BOARD,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: PRINTI "Du kannst nicht auf "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " steigen."
|
||
|
|
||
|
|
||
|
.FUNCT V-CLIMB-UP:ANY:0:2,DIR,OBJ,X,TX
|
||
|
ASSIGNED? 'DIR /?CND1
|
||
|
SET 'DIR,P?RAUF
|
||
|
?CND1: ZERO? OBJ /?CND3
|
||
|
EQUAL? PRSO,ROOMS /?CND3
|
||
|
SET 'OBJ,PRSO
|
||
|
?CND3: GETPT HERE,DIR >TX
|
||
|
ZERO? TX /?CCL9
|
||
|
ZERO? OBJ /?CND10
|
||
|
PTSIZE TX >X
|
||
|
EQUAL? X,NEXIT /?CCL13
|
||
|
EQUAL? X,CEXIT,DEXIT,UEXIT \?CND10
|
||
|
GET TX,0
|
||
|
CALL GLOBAL-IN?,PRSO,STACK
|
||
|
ZERO? STACK \?CND10
|
||
|
?CCL13: ICALL2 DER-NOM-CAP-PRINT,OBJ
|
||
|
PRINTI " f%uhrt nicht nach "
|
||
|
EQUAL? DIR,P?RAUF \?CCL20
|
||
|
PRINTI "oben"
|
||
|
JUMP ?CND18
|
||
|
?CCL20: PRINTI "unten"
|
||
|
?CND18: PRINTR "."
|
||
|
?CND10: ICALL2 DO-WALK,DIR
|
||
|
RTRUE
|
||
|
?CCL9: ZERO? OBJ /?CCL22
|
||
|
GETPT PRSO,P?SYNONYM >X
|
||
|
PTSIZE X
|
||
|
DIV STACK,2
|
||
|
SUB STACK,1
|
||
|
CALL ZMEMQ,W?WAND,X,STACK
|
||
|
ZERO? STACK /?CCL22
|
||
|
PRINTR "Die W%ande raufzuklettern ist sinnlos."
|
||
|
?CCL22: EQUAL? HERE,PATH /?CCL26
|
||
|
EQUAL? OBJ,FALSE-VALUE,TREE \?CCL26
|
||
|
CALL GLOBAL-IN?,TREE,HERE
|
||
|
ZERO? STACK /?CCL26
|
||
|
PRINTR "There are no climbable trees here."
|
||
|
?CCL26: EQUAL? OBJ,FALSE-VALUE,ROOMS \?CCL31
|
||
|
PRINTR "In diese Richtung kannst du nicht gehen."
|
||
|
?CCL31: PRINTR "You can't do that!"
|
||
|
|
||
|
|
||
|
.FUNCT V-CLOSE-OR-LOCK:ANY:0:0
|
||
|
FSET? PRSO,CONTBIT /?PRD4
|
||
|
FSET? PRSO,DOORBIT \?CND1
|
||
|
?PRD4: FSET? PRSO,SURFACEBIT /?CND1
|
||
|
FSET? PRSO,OPENBIT \?CCL9
|
||
|
ICALL PERFORM,V?CLOSE,PRSO
|
||
|
RTRUE
|
||
|
?CCL9: ICALL PERFORM,V?LOCK,PRSO,HANDS
|
||
|
RTRUE
|
||
|
?CND1: ICALL PERFORM,V?CLOSE,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-CLOSE-OR-UNLOCK:ANY:0:0
|
||
|
FSET? PRSO,CONTBIT /?PRD4
|
||
|
FSET? PRSO,DOORBIT \?CND1
|
||
|
?PRD4: FSET? PRSO,SURFACEBIT /?CND1
|
||
|
FSET? PRSO,OPENBIT \?CCL9
|
||
|
ICALL PERFORM,V?CLOSE,PRSO
|
||
|
RTRUE
|
||
|
?CCL9: ICALL PERFORM,V?UNLOCK,PRSO,HANDS
|
||
|
RTRUE
|
||
|
?CND1: ICALL PERFORM,V?CLOSE,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-CLOSE:ANY:0:0
|
||
|
FSET? PRSO,CONTBIT /?CCL3
|
||
|
FSET? PRSO,DOORBIT /?CCL3
|
||
|
PRINTI "Es ist ist einfach unm%oglich "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSO
|
||
|
PRINTR " zu schlie%sen."
|
||
|
?CCL3: FSET? PRSO,SURFACEBIT /?CCL7
|
||
|
GETP PRSO,P?CAPACITY
|
||
|
ZERO? STACK /?CCL7
|
||
|
FSET? PRSO,OPENBIT \?CCL12
|
||
|
FCLEAR PRSO,OPENBIT
|
||
|
PRINTI "Geschlo%sen."
|
||
|
CRLF
|
||
|
ZERO? LIT /TRUE
|
||
|
CALL2 LIT?,HERE >LIT
|
||
|
ZERO? LIT \TRUE
|
||
|
PRINTR "Es ist jetzt stockdunkel."
|
||
|
?CCL12: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon geschlo%sen."
|
||
|
?CCL7: FSET? PRSO,DOORBIT \?CCL18
|
||
|
FSET? PRSO,OPENBIT \?CCL21
|
||
|
FCLEAR PRSO,OPENBIT
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist jetzt geschlo%sen."
|
||
|
?CCL21: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon geschlo%sen."
|
||
|
?CCL18: PRINTR "Du kannst das da nicht schlie%sen."
|
||
|
|
||
|
|
||
|
.FUNCT V-COMMAND:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " reagiert nicht."
|
||
|
?CCL3: PRINTR "Damit kann man nicht sprechen."
|
||
|
|
||
|
|
||
|
.FUNCT V-COUNT:ANY:0:0
|
||
|
PRINTR "Du bist verr%uckt."
|
||
|
|
||
|
|
||
|
.FUNCT V-CROSS:ANY:0:0
|
||
|
PRINTR "Hier kannst du nicht %uberqueren."
|
||
|
|
||
|
|
||
|
.FUNCT V-CURSES:ANY:0:0
|
||
|
ZERO? PRSO /?CCL3
|
||
|
FSET? PRSO,ACTORBIT \?CCL6
|
||
|
PRINTR "Auf Unh%oflichkeiten dieser Art pflegen wir nicht zu reagieren."
|
||
|
?CCL6: PRINTR "Was?!"
|
||
|
?CCL3: PRINTR "Wir benutzen gew%ohnlich eine gepflegtere Sprache."
|
||
|
|
||
|
|
||
|
.FUNCT V-CUT:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
CALL PERFORM,V?ATTACK,PRSO,PRSI
|
||
|
RSTACK
|
||
|
?CCL3: FSET? PRSO,BURNBIT \?CCL5
|
||
|
FSET? PRSI,WEAPONBIT \?CCL5
|
||
|
IN? WINNER,PRSO \?CND8
|
||
|
PRINTR "Nicht die kl%ugste Idee, denn du bist drin."
|
||
|
?CND8: ICALL2 REMOVE-CAREFULLY,PRSO
|
||
|
PRINTI "Nicht die kl%ugste Idee, denn du bist drin. Deine raffinierte Navigation zermalmt "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " in unz%ahlbare Splitter, die wegfliegen."
|
||
|
?CCL5: FSET? PRSI,WEAPONBIT /?CCL11
|
||
|
PRINTR "Die scharfen Kanten haben keinen Schneid."
|
||
|
?CCL11: PRINTI "Eine eigenartige Idee, "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " zu zerschneiden."
|
||
|
|
||
|
|
||
|
.FUNCT V-DEFLATE:ANY:0:0
|
||
|
EQUAL? PRSO,LUNGS \?CCL3
|
||
|
CALL2 ACCESSIBLE?,INFLATED-BOAT
|
||
|
ZERO? STACK /?CCL3
|
||
|
ICALL PERFORM,V?DEFLATE,INFLATED-BOAT
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "So ein Quatsch!"
|
||
|
|
||
|
|
||
|
.FUNCT V-DIG:ANY:0:0
|
||
|
ZERO? PRSI \?CND1
|
||
|
SET 'PRSI,HANDS
|
||
|
?CND1: EQUAL? PRSI,SHOVEL \?CND3
|
||
|
PRINTR "Hier gibt es wahrlich keinen Grund zum Graben."
|
||
|
?CND3: FSET? PRSI,TOOLBIT \?CCL7
|
||
|
PRINTI "Mit "
|
||
|
ICALL2 DER-DAT-PRINT,PRSI
|
||
|
PRINTR " zu graben ist langsam und m%uhsam."
|
||
|
?CCL7: PRINTI "Mit "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSI
|
||
|
PRINTR " zu graben ist bl%odsinnig."
|
||
|
|
||
|
|
||
|
.FUNCT V-DIG-WITH:ANY:0:0
|
||
|
ICALL PERFORM,V?DIG,GROUND,SHOVEL
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-DISEMBARK:ANY:0:0
|
||
|
EQUAL? PRSO,ROOMS \?CCL3
|
||
|
LOC WINNER
|
||
|
FSET? STACK,VEHBIT \?CCL3
|
||
|
LOC WINNER
|
||
|
ICALL PERFORM,V?DISEMBARK,STACK
|
||
|
RTRUE
|
||
|
?CCL3: LOC WINNER
|
||
|
EQUAL? STACK,PRSO /?CCL7
|
||
|
PRINTI "Da bist du doch gar nicht drin!"
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL7: FSET? HERE,RLANDBIT \?CCL11
|
||
|
SET 'OHERE,FALSE-VALUE
|
||
|
PRINTI "Du stehst wieder auf eigenen F%u%sen."
|
||
|
CRLF
|
||
|
MOVE WINNER,HERE
|
||
|
RTRUE
|
||
|
?CCL11: PRINTI "Du begreifst, da%s es deinen Tod bedeuten w%urde, wenn du hier ausstiegest."
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
|
||
|
|
||
|
.FUNCT V-DISENCHANT:ANY:0:0
|
||
|
PRINTR "Hier passiert garnichts."
|
||
|
|
||
|
|
||
|
.FUNCT V-DRINK:ANY:0:0
|
||
|
CALL1 V-EAT
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-DRINK-FROM:ANY:0:0
|
||
|
PRINTR "Wie eigenartig!"
|
||
|
|
||
|
|
||
|
.FUNCT PRE-DROP:ANY:0:0
|
||
|
LOC WINNER
|
||
|
EQUAL? PRSO,STACK \FALSE
|
||
|
ICALL PERFORM,V?DISEMBARK,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-DROP:ANY:0:0
|
||
|
CALL1 IDROP
|
||
|
ZERO? STACK /FALSE
|
||
|
PRINTR "Fallen gelassen."
|
||
|
|
||
|
|
||
|
.FUNCT V-EAT:ANY:0:0,EAT?,DRINK?,NOBJ
|
||
|
FSET? PRSO,FOODBIT /?PRD4
|
||
|
PUSH 0
|
||
|
JUMP ?PRD5
|
||
|
?PRD4: PUSH 1
|
||
|
?PRD5: SET 'EAT?,STACK
|
||
|
ZERO? EAT? /?CCL3
|
||
|
IN? PRSO,WINNER /?CCL8
|
||
|
LOC PRSO
|
||
|
IN? STACK,WINNER /?CCL8
|
||
|
PRINTI "Das hast du doch gar nicht in der Hand."
|
||
|
CRLF
|
||
|
JUMP ?CND6
|
||
|
?CCL8: EQUAL? PRSA,V?DRINK \?CCL12
|
||
|
PRINTI "Wie in aller Welt willst du "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " denn trinken?"
|
||
|
?CCL12: PRINTI "Es tut gut, l%oscht jeglichen Durst, den du eventuell versp%urt hast."
|
||
|
ICALL2 REMOVE-CAREFULLY,PRSO
|
||
|
?CND6: CRLF
|
||
|
RTRUE
|
||
|
?CCL3: FSET? PRSO,DRINKBIT \?CCL14
|
||
|
SET 'DRINK?,TRUE-VALUE
|
||
|
LOC PRSO >NOBJ
|
||
|
IN? PRSO,GLOBAL-OBJECTS /?CTR16
|
||
|
CALL GLOBAL-IN?,GLOBAL-WATER,HERE
|
||
|
ZERO? STACK /?CCL17
|
||
|
?CTR16: CALL1 HIT-SPOT
|
||
|
RSTACK
|
||
|
?CCL17: ZERO? NOBJ /?CTR20
|
||
|
CALL2 ACCESSIBLE?,NOBJ
|
||
|
ZERO? STACK \?CCL21
|
||
|
?CTR20: PRINTR "Du hast doch garnichts zu trinken."
|
||
|
?CCL21: CALL2 ACCESSIBLE?,NOBJ
|
||
|
ZERO? STACK /?CCL25
|
||
|
IN? NOBJ,WINNER /?CCL25
|
||
|
PRINTI "Erst mu%st du doch "
|
||
|
ICALL2 DER-ACC-PRINT,NOBJ
|
||
|
PRINTR " in der Hand halten."
|
||
|
?CCL25: FSET? NOBJ,OPENBIT /?CCL29
|
||
|
PRINTI "Erst mu%st du doch "
|
||
|
ICALL2 DER-ACC-PRINT,NOBJ
|
||
|
PRINTR " %offnen."
|
||
|
?CCL29: CALL1 HIT-SPOT
|
||
|
RSTACK
|
||
|
?CCL14: ZERO? EAT? \FALSE
|
||
|
ZERO? DRINK? \FALSE
|
||
|
PRINTI "Ich glaube nicht, da%s dir "
|
||
|
ICALL2 DER-NOM-PRINT,PRSO
|
||
|
PRINTI " bekommt."
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT HIT-SPOT:ANY:0:0
|
||
|
EQUAL? PRSO,WATER \?CND1
|
||
|
CALL GLOBAL-IN?,GLOBAL-WATER,HERE
|
||
|
ZERO? STACK \?CND1
|
||
|
ICALL2 REMOVE-CAREFULLY,PRSO
|
||
|
?CND1: PRINTR "Es tut gut, l%oscht jeglichen Durst, den du eventuell versp%urt hast."
|
||
|
|
||
|
|
||
|
.FUNCT V-ECHO:ANY:0:0,LST,MAX:FIX,ECH:FIX,CNT:FIX,?TMP1
|
||
|
GET P-LEXV,P-LEXWORDS
|
||
|
GRTR? STACK,0 \?CCL3
|
||
|
GET P-LEXV,P-LEXWORDS
|
||
|
MUL STACK,P-WORDLEN
|
||
|
ADD P-LEXV,STACK >LST
|
||
|
GET LST,0 >?TMP1
|
||
|
GET LST,1
|
||
|
ADD ?TMP1,STACK
|
||
|
SUB STACK,1 >MAX
|
||
|
?PRG4: IGRTR? 'ECH,2 \?CCL8
|
||
|
PRINTR "..."
|
||
|
?CCL8: GET LST,1
|
||
|
SUB STACK,1 >CNT
|
||
|
?PRG9: IGRTR? 'CNT,MAX /?REP10
|
||
|
GET P-INBUF,CNT
|
||
|
PRINTC STACK
|
||
|
JUMP ?PRG9
|
||
|
?REP10: PRINTC 32
|
||
|
JUMP ?PRG4
|
||
|
?CCL3: PRINTR "Echo Echo ..."
|
||
|
|
||
|
|
||
|
.FUNCT V-ENCHANT:ANY:0:0
|
||
|
ICALL1 NULL-F
|
||
|
CALL1 V-DISENCHANT
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT REMOVE-CAREFULLY:ANY:1:1,OBJ,OLIT
|
||
|
EQUAL? OBJ,P-IT-OBJECT \?CND1
|
||
|
SET 'P-IT-OBJECT,FALSE-VALUE
|
||
|
?CND1: EQUAL? OBJ,P-HER-OBJECT \?CND3
|
||
|
SET 'P-HER-OBJECT,FALSE-VALUE
|
||
|
?CND3: EQUAL? OBJ,P-HIM-OBJECT \?CND5
|
||
|
SET 'P-HIM-OBJECT,FALSE-VALUE
|
||
|
?CND5: SET 'OLIT,LIT
|
||
|
REMOVE OBJ
|
||
|
CALL2 LIT?,HERE >LIT
|
||
|
ZERO? OLIT /TRUE
|
||
|
EQUAL? OLIT,LIT /TRUE
|
||
|
PRINTR "Du tappst im Dunkeln."
|
||
|
|
||
|
|
||
|
.FUNCT V-ENTER:ANY:0:0
|
||
|
CALL2 DO-WALK,P?HINEIN
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-EXAMINE:ANY:0:0
|
||
|
GETP PRSO,P?TEXT
|
||
|
ZERO? STACK /?CCL3
|
||
|
GETP PRSO,P?TEXT
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
?CCL3: FSET? PRSO,CONTBIT /?CTR4
|
||
|
FSET? PRSO,DOORBIT \?CCL5
|
||
|
?CTR4: CALL1 V-LOOK-INSIDE
|
||
|
RSTACK
|
||
|
?CCL5: PRINTI "Da ist nichts Besonderes an "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
|
||
|
|
||
|
.FUNCT V-EXIT:ANY:0:0
|
||
|
EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL3
|
||
|
LOC WINNER
|
||
|
FSET? STACK,VEHBIT \?CCL3
|
||
|
LOC WINNER
|
||
|
ICALL PERFORM,V?DISEMBARK,STACK
|
||
|
RTRUE
|
||
|
?CCL3: ZERO? PRSO /?CCL7
|
||
|
IN? WINNER,PRSO \?CCL7
|
||
|
ICALL PERFORM,V?DISEMBARK,PRSO
|
||
|
RTRUE
|
||
|
?CCL7: CALL2 DO-WALK,P?RAUS
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-EXORCISE:ANY:0:0
|
||
|
PRINTR "Was f%ur eine Schnappsidee!"
|
||
|
|
||
|
|
||
|
.FUNCT PRE-FILL:ANY:0:0,TX
|
||
|
ZERO? PRSI \?CND1
|
||
|
GETPT HERE,P?GLOBAL >TX
|
||
|
ZERO? TX /?CCL5
|
||
|
PTSIZE TX
|
||
|
DIV STACK,2
|
||
|
SUB STACK,1
|
||
|
CALL ZMEMQ,GLOBAL-WATER,TX,STACK
|
||
|
ZERO? STACK /?CCL5
|
||
|
ICALL PERFORM,V?FILL,PRSO,GLOBAL-WATER
|
||
|
RTRUE
|
||
|
?CCL5: LOC WINNER
|
||
|
IN? WATER,STACK \?CCL9
|
||
|
ICALL PERFORM,V?FILL,PRSO,WATER
|
||
|
RTRUE
|
||
|
?CCL9: PRINTI "Da ist nichts, mit dem man "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " f%ullen k%onnte."
|
||
|
?CND1: EQUAL? PRSI,WATER /FALSE
|
||
|
EQUAL? PRSI,GLOBAL-WATER /FALSE
|
||
|
ICALL PERFORM,V?PUT,PRSI,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-FILL:ANY:0:0
|
||
|
ZERO? PRSI \?CCL3
|
||
|
CALL GLOBAL-IN?,GLOBAL-WATER,HERE
|
||
|
ZERO? STACK /?CCL6
|
||
|
ICALL PERFORM,V?FILL,PRSO,GLOBAL-WATER
|
||
|
RTRUE
|
||
|
?CCL6: LOC WINNER
|
||
|
IN? WATER,STACK \?CCL8
|
||
|
ICALL PERFORM,V?FILL,PRSO,WATER
|
||
|
RTRUE
|
||
|
?CCL8: PRINTI "Da ist nichts, mit dem man "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " f%ullen k%onnte."
|
||
|
?CCL3: PRINTR "You may know how to do that, but I don't."
|
||
|
|
||
|
|
||
|
.FUNCT V-FIND:ANY:0:0,L
|
||
|
LOC PRSO >L
|
||
|
EQUAL? PRSO,HANDS,LUNGS \?CCL3
|
||
|
PRINTR "Within six feet of your head, assuming you haven't left that somewhere."
|
||
|
?CCL3: EQUAL? PRSO,ME \?CCL5
|
||
|
PRINTR "Du bist doch hier irgendwo in der N%ahe."
|
||
|
?CCL5: EQUAL? L,GLOBAL-OBJECTS \?CCL7
|
||
|
PRINTI "Du findest "
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
?CCL7: IN? PRSO,WINNER \?CCL9
|
||
|
PRINTI "Du hast "
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
?CCL9: IN? PRSO,HERE /?CTR10
|
||
|
CALL GLOBAL-IN?,PRSO,HERE
|
||
|
ZERO? STACK /?CCL11
|
||
|
?CTR10: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist hier."
|
||
|
?CCL11: FSET? L,ACTORBIT \?CCL15
|
||
|
ICALL2 DER-NOM-CAP-PRINT,L
|
||
|
PRINTI " hat "
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
?CCL15: FSET? L,SURFACEBIT \?CCL17
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " ist auf "
|
||
|
ICALL2 DER-DAT-PRINT,L
|
||
|
PRINTR "."
|
||
|
?CCL17: FSET? L,CONTBIT \?CCL19
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " in "
|
||
|
ICALL2 DER-DAT-PRINT,L
|
||
|
PRINTR "."
|
||
|
?CCL19: PRINTR "Da bist du bei mir an der falschen Adresse."
|
||
|
|
||
|
|
||
|
.FUNCT V-FOLLOW:ANY:0:0
|
||
|
PRINTR "Du bist narrisch!"
|
||
|
|
||
|
|
||
|
.FUNCT V-FROBOZZ:ANY:0:0
|
||
|
PRINTR "Die FROBOZZ FIRMA gr%undete, besitzt und leitet diesen Kerker."
|
||
|
|
||
|
|
||
|
.FUNCT PRE-GIVE:ANY:0:0
|
||
|
CALL2 HELD?,PRSO
|
||
|
ZERO? STACK \FALSE
|
||
|
PRINTI "Das kannst du leicht sagen, denn du besitzt ja nicht einmal "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
|
||
|
|
||
|
.FUNCT V-GIVE:ANY:0:0
|
||
|
FSET? PRSI,ACTORBIT /?CCL3
|
||
|
PRINTI "Du kannst "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSI
|
||
|
PRINTI " doch nicht "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSO
|
||
|
PRINTI " geben!"
|
||
|
RTRUE
|
||
|
?CCL3: ICALL2 DER-NOM-CAP-PRINT,PRSI
|
||
|
PRINTI " lehnt "
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSI
|
||
|
PRINTR " h%oflich ab."
|
||
|
|
||
|
|
||
|
.FUNCT V-HATCH:ANY:0:0
|
||
|
PRINTR "Bizarre!"
|
||
|
|
||
|
|
||
|
.FUNCT V-HELLO:ANY:0:0
|
||
|
ZERO? PRSO /?CCL3
|
||
|
EQUAL? PRSO,ROOMS /?CCL3
|
||
|
FSET? PRSO,ACTORBIT \?CCL8
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " gr%u%st dich mit einem Kopfnicken."
|
||
|
?CCL8: PRINTI "Es ist eine alte Suppe, da%s nur Verr%uckte zu "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSO
|
||
|
PRINTR ": %>Guten Tag%< sagen."
|
||
|
?CCL3: CALL2 PICK-ONE,HELLOS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-HINTS-OFF:ANY:0:0
|
||
|
PRINTI "Tips sind f%uer diese Runde abgestellt."
|
||
|
CRLF
|
||
|
SET 'HINTS-OFF,TRUE-VALUE
|
||
|
RETURN HINTS-OFF
|
||
|
|
||
|
|
||
|
.FUNCT V-INCANT:ANY:0:0
|
||
|
PRINTI "The incantation echoes back faintly, but nothing else happens."
|
||
|
CRLF
|
||
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-INFLATE:ANY:0:0
|
||
|
CALL2 ACCESSIBLE?,PUMP
|
||
|
ZERO? STACK /?CCL3
|
||
|
EQUAL? PRSO,INFLATED-BOAT /?CTR2
|
||
|
EQUAL? PRSO,INFLATABLE-BOAT /?CTR2
|
||
|
EQUAL? PRSO,PUNCTURED-BOAT \?CCL3
|
||
|
?CTR2: PRINTI "(mit "
|
||
|
ICALL2 DER-DAT-PRINT,PUMP
|
||
|
PRINTC 41
|
||
|
CRLF
|
||
|
CRLF
|
||
|
ICALL PERFORM,V?INFLATE,PRSO,PUMP
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "Wie willst du das denn aufblasen?"
|
||
|
|
||
|
|
||
|
.FUNCT V-KICK:ANY:0:0
|
||
|
ICALL2 DER-ACC-CAP-PRINT,PRSO
|
||
|
PRINTR " mit dem Fu%s treten, scheint nicht zu funktionieren."
|
||
|
|
||
|
|
||
|
.FUNCT V-KISS:ANY:0:0
|
||
|
PRINTR "Da w%urdest du lieber einen Ochs zwischen den H%ornern k%ussen."
|
||
|
|
||
|
|
||
|
.FUNCT V-KNOCK:ANY:0:0
|
||
|
FSET? PRSO,DOORBIT \?CCL3
|
||
|
PRINTR "Niemand zu Hause."
|
||
|
?CCL3: PRINTI "Warum an "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSO
|
||
|
PRINTR " klopfen?"
|
||
|
|
||
|
|
||
|
.FUNCT V-LAMP-OFF:ANY:0:0
|
||
|
FSET? PRSO,LIGHTBIT \?CCL3
|
||
|
FSET? PRSO,ONBIT /?CCL6
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon aus."
|
||
|
?CCL6: FCLEAR PRSO,ONBIT
|
||
|
ZERO? LIT /?CND7
|
||
|
CALL2 LIT?,HERE >LIT
|
||
|
?CND7: PRINTI "O.K. "
|
||
|
ICALL2 DER-NOM-PRINT,PRSO
|
||
|
PRINTI " ist jetzt aus."
|
||
|
CRLF
|
||
|
ZERO? LIT \TRUE
|
||
|
PRINTR "Es ist jetzt stockdunkel."
|
||
|
?CCL3: PRINTR "Das kannst du nicht ausmachen."
|
||
|
|
||
|
|
||
|
.FUNCT V-LAMP-ON:ANY:0:0
|
||
|
FSET? PRSO,LIGHTBIT \?CCL3
|
||
|
FSET? PRSO,ONBIT \?CCL6
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon an."
|
||
|
?CCL6: FSET PRSO,ONBIT
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " ist nun an."
|
||
|
CRLF
|
||
|
ZERO? LIT \TRUE
|
||
|
CALL2 LIT?,HERE >LIT
|
||
|
CRLF
|
||
|
ICALL1 V-LOOK
|
||
|
RTRUE
|
||
|
?CCL3: FSET? PRSO,BURNBIT \?CCL10
|
||
|
PRINTI "Wenn du "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " verbrennen willst, mu%st du's sagen."
|
||
|
?CCL10: PRINTR "Das kannst du nicht anmachen."
|
||
|
|
||
|
|
||
|
.FUNCT V-LAUNCH:ANY:0:0
|
||
|
FSET? PRSO,VEHBIT \?CCL3
|
||
|
PRINTI "Du kannst das nicht absto%sen, in dem du %>Absto%sen%< sagst."
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "Das ist ziemlich absurd."
|
||
|
|
||
|
|
||
|
.FUNCT V-LEAN-ON:ANY:0:0
|
||
|
PRINTR "Bist du m%ude?"
|
||
|
|
||
|
|
||
|
.FUNCT V-LEAP:ANY:0:0,TX,S
|
||
|
ZERO? PRSO /?CCL3
|
||
|
IN? PRSO,HERE \?CCL6
|
||
|
FSET? PRSO,ACTORBIT \?CCL9
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist zu gro%s, um %uber ihn zu springen."
|
||
|
?CCL9: CALL1 V-SKIP
|
||
|
RSTACK
|
||
|
?CCL6: PRINTR "Das w%are ein toller Trick."
|
||
|
?CCL3: GETPT HERE,P?RUNTER >TX
|
||
|
ZERO? TX /?CCL11
|
||
|
PTSIZE TX >S
|
||
|
EQUAL? S,3 /?CTR13
|
||
|
EQUAL? S,5 \?CCL14
|
||
|
GETB TX,1
|
||
|
VALUE STACK
|
||
|
ZERO? STACK \?CCL14
|
||
|
?CTR13: PRINTI "Das war nicht der sicherste Platz f%ur den Absprung."
|
||
|
CRLF
|
||
|
CALL2 PICK-ONE,JUMPLOSS
|
||
|
CALL2 JIGS-UP,STACK
|
||
|
RSTACK
|
||
|
?CCL14: EQUAL? HERE,UP-A-TREE \?CCL20
|
||
|
PRINTI "In einem Anflug von ungew%ohnlicher Waghalsigkeit, hast du es geschafft, auf beiden F%u%sen zu landen, ohne dich umzubringen."
|
||
|
CRLF
|
||
|
CRLF
|
||
|
ICALL2 DO-WALK,P?RUNTER
|
||
|
RTRUE
|
||
|
?CCL20: CALL1 V-SKIP
|
||
|
RSTACK
|
||
|
?CCL11: CALL1 V-SKIP
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-LEAVE:ANY:0:0
|
||
|
EQUAL? PRSO,ROOMS \?CCL3
|
||
|
CALL2 DO-WALK,P?RAUS
|
||
|
RSTACK
|
||
|
?CCL3: ICALL PERFORM,V?DROP,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-LISTEN:ANY:0:0
|
||
|
PRINTI "Im Moment gibt "
|
||
|
ICALL2 DER-NOM-PRINT,PRSO
|
||
|
PRINTR " keinen Laut von sich."
|
||
|
|
||
|
|
||
|
.FUNCT V-LOCK:ANY:0:0
|
||
|
PRINTR "Das scheint nicht zu funktionieren."
|
||
|
|
||
|
|
||
|
.FUNCT V-LOOK:ANY:0:0
|
||
|
CALL2 DESCRIBE-ROOM,TRUE-VALUE
|
||
|
ZERO? STACK /FALSE
|
||
|
CALL2 DESCRIBE-OBJECTS,TRUE-VALUE
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-LOOK-BEHIND:ANY:0:0
|
||
|
PRINTI "Da ist nichts hinter "
|
||
|
ICALL2 DER-DAT-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
|
||
|
|
||
|
.FUNCT V-LOOK-INSIDE:ANY:0:0
|
||
|
FSET? PRSO,DOORBIT \?CCL3
|
||
|
FSET? PRSO,OPENBIT \?CCL6
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist ge%offnet, aber du kannst nicht sehen, was dahinter ist."
|
||
|
?CCL6: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist geschlo%sen."
|
||
|
?CCL3: FSET? PRSO,CONTBIT \?CCL8
|
||
|
FSET? PRSO,ACTORBIT \?CCL11
|
||
|
PRINTR "Da gibt's nichts Besonderes zu sehen."
|
||
|
?CCL11: CALL2 SEE-INSIDE?,PRSO
|
||
|
ZERO? STACK /?CCL13
|
||
|
FIRST? PRSO \?CCL16
|
||
|
CALL2 PRINT-CONT,PRSO
|
||
|
ZERO? STACK \TRUE
|
||
|
?CCL16: CALL1 NULL-F
|
||
|
ZERO? STACK \TRUE
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist leer."
|
||
|
?CCL13: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist geschlo%sen."
|
||
|
?CCL8: PRINTI "Du kannst nicht in "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSO
|
||
|
PRINTR " hineingucken."
|
||
|
|
||
|
|
||
|
.FUNCT V-LOOK-ON:ANY:0:0
|
||
|
FSET? PRSO,SURFACEBIT \?CCL3
|
||
|
ICALL PERFORM,V?LOOK-INSIDE,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "Weird."
|
||
|
|
||
|
|
||
|
.FUNCT V-LOOK-UNDER:ANY:0:0
|
||
|
PRINTR "Da gibt es nichts als Staub."
|
||
|
|
||
|
|
||
|
.FUNCT V-LOWER:ANY:0:0
|
||
|
PRINTI "So mit "
|
||
|
ICALL2 DER-DAT-PRINT,PRSO
|
||
|
PRINTR " zu spielen, ist nicht hilfreich."
|
||
|
|
||
|
|
||
|
.FUNCT V-MAKE:ANY:0:0
|
||
|
PRINTR "Das kannst du nicht."
|
||
|
|
||
|
|
||
|
.FUNCT V-MELT:ANY:0:0
|
||
|
PRINTI "Es ist nicht gesagt, da%s man "
|
||
|
ICALL2 EIN-NOM-PRINT,PRSO
|
||
|
PRINTR " schmelzen kann."
|
||
|
|
||
|
|
||
|
.FUNCT PRE-MOVE:ANY:0:0
|
||
|
CALL2 HELD?,PRSO
|
||
|
ZERO? STACK /FALSE
|
||
|
PRINTR "Deine Jonglierk%unste sind nicht gut genug daf%ur."
|
||
|
|
||
|
|
||
|
.FUNCT V-MOVE:ANY:0:0
|
||
|
FSET? PRSO,TAKEBIT \?CCL3
|
||
|
PRINTI "Wenn man "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " wegnimmt, kommt nichts zum Vorschein."
|
||
|
?CCL3: ICALL2 DER-ACC-CAP-PRINT,PRSO
|
||
|
PRINTR " kann man nicht aus dem Weg schieben."
|
||
|
|
||
|
|
||
|
.FUNCT V-MUMBLE:ANY:0:0
|
||
|
PRINTR "You'll have to speak up if you expect me to hear you!"
|
||
|
|
||
|
|
||
|
.FUNCT PRE-MUNG:ANY:0:0
|
||
|
CALL1 NULL-F
|
||
|
ZERO? STACK \TRUE
|
||
|
ZERO? PRSI /?CCL5
|
||
|
FSET? PRSI,WEAPONBIT /FALSE
|
||
|
?CCL5: PRINTI "Es ist sinnlos, "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTI " mit "
|
||
|
ZERO? PRSI \?CCL10
|
||
|
PRINTI "blo%sen F%austen"
|
||
|
JUMP ?CND8
|
||
|
?CCL10: ICALL2 EIN-DAT-PRINT,PRSI
|
||
|
?CND8: PRINTR " zerst%oren zu wollen."
|
||
|
|
||
|
|
||
|
.FUNCT V-MUNG:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
ICALL PERFORM,V?ATTACK,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "Gutgemeinter Versuch..."
|
||
|
|
||
|
|
||
|
.FUNCT V-NO:ANY:0:0
|
||
|
CALL1 V-YES
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-ODYSSEUS:ANY:0:0
|
||
|
EQUAL? HERE,CYCLOPS-ROOM \?CCL3
|
||
|
IN? CYCLOPS,HERE \?CCL3
|
||
|
ZERO? CYCLOPS-FLAG \?CCL3
|
||
|
CALL2 INT,I-CYCLOPS
|
||
|
PUT STACK,0,0
|
||
|
SET 'CYCLOPS-FLAG,TRUE-VALUE
|
||
|
PRINTI "Als der Zyklop von der t%odlichen Strafe seines Vaters h%ort, entflieht er aus dem Zimmer, indem er die Ostwand des Zimmers niederrennt."
|
||
|
CRLF
|
||
|
SET 'MAGIC-FLAG,TRUE-VALUE
|
||
|
FCLEAR CYCLOPS,FIGHTBIT
|
||
|
CALL2 REMOVE-CAREFULLY,CYCLOPS
|
||
|
RSTACK
|
||
|
?CCL3: PRINTR "War er nicht ein Seemann?"
|
||
|
|
||
|
|
||
|
.FUNCT V-OIL:ANY:0:0
|
||
|
PRINTR "Du bist wohl auch so einer, der Spinat ins Auto tankt?"
|
||
|
|
||
|
|
||
|
.FUNCT V-OPEN:ANY:0:0,F,STR
|
||
|
EQUAL? PRSO,ROPE \?CCL3
|
||
|
ICALL PERFORM,V?UNTIE,ROPE
|
||
|
RTRUE
|
||
|
?CCL3: FSET? PRSO,CONTBIT \?CCL5
|
||
|
GETP PRSO,P?CAPACITY
|
||
|
ZERO? STACK /?CCL5
|
||
|
FSET? PRSO,OPENBIT \?CCL10
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon offen."
|
||
|
?CCL10: FSET PRSO,OPENBIT
|
||
|
FSET PRSO,TOUCHBIT
|
||
|
FIRST? PRSO \?CTR12
|
||
|
FSET? PRSO,TRANSBIT \?CCL13
|
||
|
?CTR12: PRINTR "Ge%offnet."
|
||
|
?CCL13: FIRST? PRSO >F \?CCL17
|
||
|
NEXT? F /?CCL17
|
||
|
FSET? F,TOUCHBIT /?CCL17
|
||
|
GETP F,P?FDESC >STR
|
||
|
ZERO? STR /?CCL17
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " l%a%st sich %offnen."
|
||
|
CRLF
|
||
|
PRINT STR
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
?CCL17: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI ", der ge%offnet ist, enth%alt "
|
||
|
ICALL2 PRINT-CONTENTS,PRSO
|
||
|
PRINTR "."
|
||
|
?CCL5: FSET? PRSO,DOORBIT \?CCL23
|
||
|
FSET? PRSO,OPENBIT \?CCL26
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist schon offen."
|
||
|
?CCL26: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " %offnet."
|
||
|
CRLF
|
||
|
FSET PRSO,OPENBIT
|
||
|
RTRUE
|
||
|
?CCL23: PRINTI "Du scheinst "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSO
|
||
|
PRINTR " nicht %offnen zu k%onnen."
|
||
|
|
||
|
|
||
|
.FUNCT V-OVERBOARD:ANY:0:0,LOCN
|
||
|
EQUAL? PRSI,TEETH \?CCL3
|
||
|
LOC WINNER >LOCN
|
||
|
FSET? LOCN,VEHBIT \?CCL6
|
||
|
LOC LOCN
|
||
|
MOVE PRSO,STACK
|
||
|
PRINTI "Ahoy -- "
|
||
|
ICALL DPRINT,PRSO,FALSE-VALUE
|
||
|
PRINTR " %uber Bord!"
|
||
|
?CCL6: PRINTR "You're not in anything!"
|
||
|
?CCL3: LOC WINNER
|
||
|
FSET? STACK,VEHBIT \?CCL8
|
||
|
ICALL PERFORM,V?THROW,PRSO
|
||
|
RTRUE
|
||
|
?CCL8: PRINTR "Huh?"
|
||
|
|
||
|
|
||
|
.FUNCT V-PICK:ANY:0:0
|
||
|
PRINTR "Das kannst du nicht knacken."
|
||
|
|
||
|
|
||
|
.FUNCT V-PLAY:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
PRINTI "Du spielst die Rolle so echt, da%s du dich selber umbringst, genau wie er es h%atte tun k%onnen."
|
||
|
CRLF
|
||
|
CALL2 JIGS-UP,STR?200
|
||
|
RSTACK
|
||
|
?CCL3: PRINTR "Das ist bl%od."
|
||
|
|
||
|
|
||
|
.FUNCT V-PLUG:ANY:0:0
|
||
|
PRINTR "Erfolglos."
|
||
|
|
||
|
|
||
|
.FUNCT V-POUR-ON:ANY:0:0
|
||
|
EQUAL? PRSO,WATER \?CCL3
|
||
|
ICALL2 REMOVE-CAREFULLY,PRSO
|
||
|
FSET? PRSI,FLAMEBIT \?CCL6
|
||
|
FSET? PRSI,ONBIT \?CCL6
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSI
|
||
|
PRINTI " ist schon aus."
|
||
|
CRLF
|
||
|
ICALL1 NULL-F
|
||
|
FCLEAR PRSI,ONBIT
|
||
|
FCLEAR PRSI,FLAMEBIT
|
||
|
RTRUE
|
||
|
?CCL6: PRINTI "Das Wasser flie%st %uber "
|
||
|
ICALL2 DER-ACC-PRINT,PRSI
|
||
|
PRINTR " auf den Fu%sboden und verdampft."
|
||
|
?CCL3: EQUAL? PRSO,PUTTY \?CCL10
|
||
|
CALL PERFORM,V?PUT,PUTTY,PRSI
|
||
|
RSTACK
|
||
|
?CCL10: PRINTR "Das l%a%st sich nicht gie%sen."
|
||
|
|
||
|
|
||
|
.FUNCT V-PRAY:ANY:0:0
|
||
|
EQUAL? HERE,SOUTH-TEMPLE \?CCL3
|
||
|
CALL2 GOTO,FOREST-1
|
||
|
RSTACK
|
||
|
?CCL3: PRINTR "Wenn du gen%ugend betest, dann werden deine Gebete vielleicht erh%ort."
|
||
|
|
||
|
|
||
|
.FUNCT V-PUMP:ANY:0:0
|
||
|
ZERO? PRSI /?CCL3
|
||
|
EQUAL? PRSI,PUMP /?CCL3
|
||
|
PRINTI "Pump"
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSO
|
||
|
PRINTI " up with "
|
||
|
ICALL2 EIN-DAT-PRINT,PRSI
|
||
|
PRINTR "?"
|
||
|
?CCL3: IN? PUMP,WINNER \?CCL7
|
||
|
CALL PERFORM,V?INFLATE,PRSO,PUMP
|
||
|
RSTACK
|
||
|
?CCL7: PRINTR "It's really not clear how."
|
||
|
|
||
|
|
||
|
.FUNCT V-PUSH:ANY:0:0
|
||
|
ICALL2 DER-ACC-CAP-PRINT,PRSO
|
||
|
PRINTR " schieben ist erfolglos."
|
||
|
|
||
|
|
||
|
.FUNCT V-PUSH-TO:ANY:0:0
|
||
|
PRINTR "Dahin kann man nichts schieben."
|
||
|
|
||
|
|
||
|
.FUNCT PRE-PUT:ANY:0:0
|
||
|
CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
CALL1 PRE-GIVE
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-PUT:ANY:0:0,?TMP1,?TMP2,?TMP3
|
||
|
FSET? PRSI,OPENBIT /?CND1
|
||
|
FSET? PRSI,DOORBIT /?CND1
|
||
|
FSET? PRSI,CONTBIT /?CND1
|
||
|
FSET? PRSI,VEHBIT /?CND1
|
||
|
PRINTR "Das geht nicht."
|
||
|
?CND1: FSET? PRSI,OPENBIT /?CCL9
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSI
|
||
|
PRINTI " ist nicht offen."
|
||
|
CRLF
|
||
|
CALL2 THIS-IS-IT,PRSI
|
||
|
RSTACK
|
||
|
?CCL9: EQUAL? PRSI,PRSO \?CCL11
|
||
|
PRINTR "Wie willst du das denn anstellen?"
|
||
|
?CCL11: IN? PRSO,PRSI \?CCL13
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " ist schon "
|
||
|
ICALL2 DER-DAT-PRINT,PRSI
|
||
|
PRINTR "."
|
||
|
?CCL13: CALL2 WEIGHT,PRSI >?TMP3
|
||
|
CALL2 WEIGHT,PRSO
|
||
|
ADD ?TMP3,STACK >?TMP2
|
||
|
GETP PRSI,P?SIZE
|
||
|
SUB ?TMP2,STACK >?TMP1
|
||
|
GETP PRSI,P?CAPACITY
|
||
|
GRTR? ?TMP1,STACK \?CCL15
|
||
|
PRINTR "Da ist wirklich kein Platz mehr."
|
||
|
?CCL15: CALL2 HELD?,PRSO
|
||
|
ZERO? STACK \?CCL17
|
||
|
FSET? PRSO,TRYTAKEBIT \?CCL17
|
||
|
PRINTI "Du hast "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " ja gar nicht."
|
||
|
?CCL17: CALL2 HELD?,PRSO
|
||
|
ZERO? STACK \?CCL21
|
||
|
CALL1 ITAKE
|
||
|
ZERO? STACK /TRUE
|
||
|
?CCL21: MOVE PRSO,PRSI
|
||
|
FSET PRSO,TOUCHBIT
|
||
|
ICALL2 SCORE-OBJ,PRSO
|
||
|
PRINTR "Geschafft."
|
||
|
|
||
|
|
||
|
.FUNCT V-PUT-BEHIND:ANY:0:0
|
||
|
PRINTR "Das Versteck ist nicht sicher."
|
||
|
|
||
|
|
||
|
.FUNCT V-PUT-ON:ANY:0:0
|
||
|
EQUAL? PRSI,GROUND \?CCL3
|
||
|
ICALL PERFORM,V?DROP,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: FSET? PRSI,SURFACEBIT \?CCL5
|
||
|
CALL1 V-PUT
|
||
|
RSTACK
|
||
|
?CCL5: ICALL2 DER-NOM-CAP-PRINT,PRSI
|
||
|
PRINTR " hat keine gute Oberfl%ache."
|
||
|
|
||
|
|
||
|
.FUNCT V-PUT-UNDER:ANY:0:0
|
||
|
PRINTR "You can't do that."
|
||
|
|
||
|
|
||
|
.FUNCT V-RAISE:ANY:0:0
|
||
|
CALL1 V-LOWER
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT PRE-READ:ANY:0:0
|
||
|
ZERO? LIT \?CCL3
|
||
|
PRINTR "Es ist unm%oglich im Dunkeln zu lesen."
|
||
|
?CCL3: ZERO? PRSI /FALSE
|
||
|
FSET? PRSI,TRANSBIT /FALSE
|
||
|
PRINTI "Wie kann man durch "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSI
|
||
|
PRINTR " hindurchsehen?"
|
||
|
|
||
|
|
||
|
.FUNCT V-READ:ANY:0:0
|
||
|
FSET? PRSO,READBIT /?CCL3
|
||
|
PRINTI "Wie kann man "
|
||
|
ICALL2 EIN-ACC-PRINT,PRSI
|
||
|
PRINTR " lesen?"
|
||
|
?CCL3: GETP PRSO,P?TEXT
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-READ-PAGE:ANY:0:0
|
||
|
ICALL PERFORM,V?READ,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-REPENT:ANY:0:0
|
||
|
PRINTR "Es k%onnte m%oglicherweise schon zu sp%at sein."
|
||
|
|
||
|
|
||
|
.FUNCT V-REPLY:ANY:0:0
|
||
|
PRINTI "Es ist unwahrscheinlich, da%s sich "
|
||
|
ICALL2 DER-NOM-PRINT,PRSO
|
||
|
PRINTI " daf%ur interesiert."
|
||
|
CRLF
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-RING:ANY:0:0
|
||
|
PRINTR "Wie, um Himmels Willen, soll man damit klingeln?"
|
||
|
|
||
|
|
||
|
.FUNCT V-RUB:ANY:0:0
|
||
|
PRINTI "Den Tisch reiben ist nicht hilfreich."
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-SAY:ANY:0:0,V
|
||
|
ZERO? P-CONT \?CND1
|
||
|
PRINTR "Was?"
|
||
|
?CND1: SET 'QUOTE-FLAG,FALSE-VALUE
|
||
|
CALL FIND-IN,HERE,ACTORBIT >V
|
||
|
ZERO? V /?CCL5
|
||
|
PRINTI "Um zu den Personen zu sprechen, tippe:
|
||
|
>PERSON, TAG
|
||
|
oder
|
||
|
>PERSON, LASS DER AXT FALLEN
|
||
|
(usw.)
|
||
|
"
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
RTRUE
|
||
|
?CCL5: GET P-LEXV,P-CONT
|
||
|
EQUAL? STACK,W?HALLO /TRUE
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
PRINTR "Selbstgespr%ache deuten auf einen bevorstehenden Nervenzusammenbruch hin."
|
||
|
|
||
|
|
||
|
.FUNCT V-SEARCH:ANY:0:0
|
||
|
PRINTR "Du findest nichts Ungew%ohnliches."
|
||
|
|
||
|
|
||
|
.FUNCT V-SEND:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
PRINTI "Warum w%urdest du "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " rufen lassen?"
|
||
|
?CCL3: PRINTR "Das ist Unsinn."
|
||
|
|
||
|
|
||
|
.FUNCT V-SCHENKE:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
ICALL PERFORM,V?GIVE,PRSI,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: FSET? PRSI,ACTORBIT \?CCL5
|
||
|
ICALL PERFORM,V?GIVE,PRSO,PRSI
|
||
|
RTRUE
|
||
|
?CCL5: ICALL PERFORM,V?DROP,PRSO,PRSI
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT PRE-SGIVE:ANY:0:0
|
||
|
FSET? PRSI,ACTORBIT \?CCL3
|
||
|
ICALL PERFORM,V?GIVE,PRSO,PRSI
|
||
|
RTRUE
|
||
|
?CCL3: ICALL PERFORM,V?GIVE,PRSI,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-SGIVE:ANY:0:0
|
||
|
PRINTR "Foo!"
|
||
|
|
||
|
|
||
|
.FUNCT V-SHAKE:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
PRINTR "Das scheint keinen Zweck zu haben."
|
||
|
?CCL3: FSET? PRSO,TAKEBIT /?CCL5
|
||
|
PRINTI "Du kannst "
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSO
|
||
|
PRINTI " nicht wegnehmen, also kannst du "
|
||
|
ICALL2 PRONOUN-ACC-PRINT,PRSO
|
||
|
PRINTR " auch nicht sch%utteln."
|
||
|
?CCL5: FSET? PRSO,CONTBIT \?CCL7
|
||
|
FSET? PRSO,OPENBIT \?CCL10
|
||
|
FIRST? PRSO \?CCL13
|
||
|
ICALL1 SHAKE-LOOP
|
||
|
PRINTI "Der Inhalt f%allt "
|
||
|
FSET? HERE,RLANDBIT /?CCL16
|
||
|
PRINTI "heraus und verschwindet"
|
||
|
JUMP ?CND14
|
||
|
?CCL16: PRINTI "auf die Erde"
|
||
|
?CND14: PRINTR "."
|
||
|
?CCL13: PRINTR "Geschafft."
|
||
|
?CCL10: FIRST? PRSO \?CCL19
|
||
|
PRINTI "Es h%ort sich an, als w%are da etwas in "
|
||
|
ICALL2 DER-DAT-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
?CCL19: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " h%ort sich leer an."
|
||
|
?CCL7: PRINTR "Shaken."
|
||
|
|
||
|
|
||
|
.FUNCT SHAKE-LOOP:ANY:0:0,X
|
||
|
?PRG1: FIRST? PRSO >X \TRUE
|
||
|
FSET X,TOUCHBIT
|
||
|
EQUAL? HERE,UP-A-TREE \?CCL8
|
||
|
PUSH PATH
|
||
|
JUMP ?CND6
|
||
|
?CCL8: FSET? HERE,RLANDBIT /?CCL10
|
||
|
PUSH STREAM
|
||
|
JUMP ?CND6
|
||
|
?CCL10: PUSH HERE
|
||
|
?CND6: MOVE X,STACK
|
||
|
JUMP ?PRG1
|
||
|
|
||
|
|
||
|
.FUNCT V-SKIP:ANY:0:0
|
||
|
CALL2 PICK-ONE,WHEEEEE
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-SMELL:ANY:0:0
|
||
|
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " riecht genau wie "
|
||
|
ICALL2 EIN-NOM-PRINT,PRSO
|
||
|
PRINTR "."
|
||
|
|
||
|
|
||
|
.FUNCT V-SPIN:ANY:0:0
|
||
|
PRINTR "Den kannst du nicht rumwirbeln!"
|
||
|
|
||
|
|
||
|
.FUNCT V-SPRAY:ANY:0:0
|
||
|
CALL1 V-SQUEEZE
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-SQUEEZE:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " versteht das nicht."
|
||
|
?CCL3: PRINTR "Wie einmalig sinnlos."
|
||
|
|
||
|
|
||
|
.FUNCT V-SSPRAY:ANY:0:0
|
||
|
CALL PERFORM,V?SPRAY,PRSI,PRSO
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-STAB:ANY:0:0,W
|
||
|
CALL2 FIND-WEAPON,WINNER >W
|
||
|
ZERO? W /?CCL3
|
||
|
ICALL PERFORM,V?ATTACK,PRSO,W
|
||
|
RTRUE
|
||
|
?CCL3: PRINTI "Du hast wohl vor, "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " mit dem kleinen Finger zu erdolchen."
|
||
|
|
||
|
|
||
|
.FUNCT V-STAND:ANY:0:0
|
||
|
LOC WINNER
|
||
|
FSET? STACK,VEHBIT \?CCL3
|
||
|
LOC WINNER
|
||
|
ICALL PERFORM,V?DISEMBARK,STACK
|
||
|
RTRUE
|
||
|
?CCL3: PRINTR "Du stehst schon."
|
||
|
|
||
|
|
||
|
.FUNCT V-STAY:ANY:0:0
|
||
|
PRINTR "Du r%uhrst dich nicht."
|
||
|
|
||
|
|
||
|
.FUNCT V-SWIM:ANY:0:0
|
||
|
CALL GLOBAL-IN?,GLOBAL-WATER,HERE
|
||
|
ZERO? STACK /?CCL3
|
||
|
PRINTR "Schwimmen im Kerker ist gew%ohnlich verboten."
|
||
|
?CCL3: CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
PRINTR "Geh baden."
|
||
|
|
||
|
|
||
|
.FUNCT V-SWING:ANY:0:0
|
||
|
ZERO? PRSI \?CCL3
|
||
|
PRINTR "Huiiii!"
|
||
|
?CCL3: ICALL PERFORM,V?ATTACK,PRSI,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-TRAGE:ANY:0:0
|
||
|
CALL2 HELD?,PRSO
|
||
|
ZERO? STACK /?CCL3
|
||
|
FSET? PRSO,WEARBIT \?CCL3
|
||
|
ICALL PERFORM,V?WEAR,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: ICALL PERFORM,V?TAKE,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT PRE-TAKE:ANY:0:0
|
||
|
IN? PRSO,WINNER \?CCL3
|
||
|
FSET? PRSO,WEARBIT \?CCL6
|
||
|
PRINTI "Du hast "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " doch schon an."
|
||
|
?CCL6: PRINTR "Das hast du doch schon!"
|
||
|
?CCL3: LOC PRSO
|
||
|
FSET? STACK,CONTBIT \?CCL8
|
||
|
LOC PRSO
|
||
|
FSET? STACK,OPENBIT /?CCL8
|
||
|
PRINTR "Was in einem geschlo%senen Beh%alter ist, kannst man nicht anfassen."
|
||
|
?CCL8: ZERO? PRSI /?CCL12
|
||
|
EQUAL? PRSI,GROUND \?CND13
|
||
|
SET 'PRSI,FALSE-VALUE
|
||
|
RFALSE
|
||
|
?CND13: ICALL1 NULL-F
|
||
|
LOC PRSO
|
||
|
EQUAL? PRSI,STACK /?CCL17
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " ist doch garnicht in "
|
||
|
ICALL2 DER-DAT-PRINT,PRSI
|
||
|
PRINTR "."
|
||
|
?CCL17: SET 'PRSI,FALSE-VALUE
|
||
|
RFALSE
|
||
|
?CCL12: LOC WINNER
|
||
|
EQUAL? PRSO,STACK \FALSE
|
||
|
PRINTR "Du bist drin."
|
||
|
|
||
|
|
||
|
.FUNCT V-TAKE:ANY:0:0
|
||
|
CALL1 ITAKE
|
||
|
EQUAL? STACK,TRUE-VALUE \FALSE
|
||
|
FSET? PRSO,WEARBIT \?CCL6
|
||
|
PRINTI "Jetzt hast du "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " an."
|
||
|
?CCL6: PRINTR "Genommen."
|
||
|
|
||
|
|
||
|
.FUNCT V-TELL:ANY:0:0
|
||
|
FSET? PRSO,ACTORBIT \?CCL3
|
||
|
ZERO? P-CONT /?CCL6
|
||
|
SET 'WINNER,PRSO
|
||
|
LOC WINNER >HERE
|
||
|
RETURN HERE
|
||
|
?CCL6: ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " stutzt einen Moment. Vielleicht denkt er, da%s du die Spielanleitung noch mal durchlesen solltest."
|
||
|
?CCL3: PRINTI "Mit "
|
||
|
ICALL2 DER-DAT-PRINT,PRSO
|
||
|
PRINTI " l%a%st sich nicht reden!"
|
||
|
CRLF
|
||
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
RETURN 2
|
||
|
|
||
|
|
||
|
.FUNCT V-TEST-IT:ANY:0:0,NUM
|
||
|
SET 'NUM,1
|
||
|
PRINTI "Da%s ich zu sp%at komme."
|
||
|
CRLF
|
||
|
PRINTI "%Offne den %Ubermensch. %Apfel sind sch%on."
|
||
|
CRLF
|
||
|
PRINTI "Er sagt, %>Und %uber den Mann.%<"
|
||
|
CRLF
|
||
|
CRLF
|
||
|
?PRG1: IN? NUM,ROOMS /?CCL5
|
||
|
EQUAL? NUM,ROOMS /?CCL5
|
||
|
FSET? NUM,DERBIT /?CTR4
|
||
|
FSET? NUM,DASBIT /?CTR4
|
||
|
FSET? NUM,DIEBIT \?CCL5
|
||
|
?CTR4: ICALL2 DER-NOM-CAP-PRINT,NUM
|
||
|
PRINTI " ist gut."
|
||
|
CRLF
|
||
|
JUMP ?CND3
|
||
|
?CCL5: IN? NUM,ROOMS /?CND3
|
||
|
EQUAL? NUM,ROOMS /?CND3
|
||
|
PRINTI "No Gender: "
|
||
|
ICALL DPRINT,NUM,FALSE-VALUE
|
||
|
CRLF
|
||
|
?CND3: GRTR? NUM,LAST-OBJECT /?REP2
|
||
|
INC 'NUM
|
||
|
JUMP ?PRG1
|
||
|
?REP2: CRLF
|
||
|
PRINTR "End of test."
|
||
|
|
||
|
|
||
|
.FUNCT V-THROUGH:ANY:0:1,OBJ:OBJECT,M
|
||
|
FSET? PRSO,DOORBIT \?CCL3
|
||
|
CALL2 OTHER-SIDE,PRSO >M
|
||
|
ZERO? M /?CCL3
|
||
|
ICALL2 DO-WALK,M
|
||
|
RTRUE
|
||
|
?CCL3: ZERO? OBJ \?CCL7
|
||
|
FSET? PRSO,VEHBIT \?CCL7
|
||
|
ICALL PERFORM,V?BOARD,PRSO
|
||
|
RTRUE
|
||
|
?CCL7: ZERO? OBJ \?CTR10
|
||
|
FSET? PRSO,TAKEBIT /?CCL11
|
||
|
?CTR10: ICALL1 NULL-F
|
||
|
PRINTI "Du st%o%st dir den Kopf an "
|
||
|
ICALL2 DER-DAT-PRINT,PRSO
|
||
|
PRINTR ", wenn du dieses Kunstst%uck ausprobierst."
|
||
|
?CCL11: IN? PRSO,WINNER \?CCL15
|
||
|
PRINTR "Dazu mu%s man sich zu sehr verrenken."
|
||
|
?CCL15: CALL2 PICK-ONE,YUKS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-THROW:ANY:0:0
|
||
|
CALL1 IDROP
|
||
|
ZERO? STACK /?CCL3
|
||
|
EQUAL? PRSI,ME \?CCL6
|
||
|
PRINTI "Ein toller Wurf! "
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
SET 'WINNER,PLAYER
|
||
|
CALL2 JIGS-UP,STR?205
|
||
|
RSTACK
|
||
|
?CCL6: ZERO? PRSI /?CCL8
|
||
|
FSET? PRSI,ACTORBIT \?CCL8
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSI
|
||
|
PRINTI " duckt sich, als "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " vorbeisaust und zu Boden f%allt."
|
||
|
?CCL8: PRINTR "Geworfen."
|
||
|
?CCL3: PRINTR "Was?"
|
||
|
|
||
|
|
||
|
.FUNCT V-THROW-OFF:ANY:0:0
|
||
|
PRINTR "Von dort kann man nichts runterwerfen!"
|
||
|
|
||
|
|
||
|
.FUNCT V-TIE:ANY:0:0
|
||
|
EQUAL? PRSI,WINNER \?CCL3
|
||
|
PRINTR "Du kannst nichts an dir selber festbinden."
|
||
|
?CCL3: PRINTI "Daran kannst du "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " nicht festbinden."
|
||
|
|
||
|
|
||
|
.FUNCT V-TIE-UP:ANY:0:0
|
||
|
ICALL2 DER-ACC-CAP-PRINT,PRSO
|
||
|
PRINTR " kannst du damit bestimmt nicht fesseln!"
|
||
|
|
||
|
|
||
|
.FUNCT V-TREASURE:ANY:0:0
|
||
|
EQUAL? HERE,NORTH-TEMPLE \?CCL3
|
||
|
CALL2 GOTO,TREASURE-ROOM
|
||
|
RSTACK
|
||
|
?CCL3: EQUAL? HERE,TREASURE-ROOM \?CCL5
|
||
|
CALL2 GOTO,NORTH-TEMPLE
|
||
|
RSTACK
|
||
|
?CCL5: PRINTR "Hier passiert garnichts."
|
||
|
|
||
|
|
||
|
.FUNCT PRE-TURN:ANY:0:0,X
|
||
|
EQUAL? PRSI,FALSE-VALUE,ROOMS \?CCL3
|
||
|
EQUAL? PRSO,BOOK /?CCL3
|
||
|
EQUAL? PRSI,ROOMS \?CND6
|
||
|
EQUAL? PRSO,BOLT \?PRD11
|
||
|
CALL2 HELD?,WRENCH >X
|
||
|
ZERO? X \?CCL7
|
||
|
?PRD11: EQUAL? PRSO,MACHINE-SWITCH \?CND6
|
||
|
CALL2 HELD?,SCREWDRIVER >X
|
||
|
ZERO? X /?CND6
|
||
|
?CCL7: ICALL PERFORM,V?TURN,PRSO,X
|
||
|
RTRUE
|
||
|
?CND6: PRINTR "Mit nackten H%anden kommst du hier nicht weiter."
|
||
|
?CCL3: FSET? PRSO,TAKEBIT /FALSE
|
||
|
CALL PERFORM,V?MUNG,PRSO
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-TURN:ANY:0:0
|
||
|
PRINTR "Erfolglos."
|
||
|
|
||
|
|
||
|
.FUNCT V-UNLOCK:ANY:0:0
|
||
|
CALL1 V-LOCK
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT V-UNTIE:ANY:0:0
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " kann nicht festgebunden werden, also kann "
|
||
|
ICALL2 PRONOUN-NOM-PRINT,PRSO
|
||
|
PRINTR " auch nicht losgebunden werden!"
|
||
|
|
||
|
|
||
|
.FUNCT V-USE:ANY:0:0
|
||
|
PRINTR "You must be more specific."
|
||
|
|
||
|
|
||
|
.FUNCT V-WAIT:ANY:0:1,NUM
|
||
|
ASSIGNED? 'NUM /?CND1
|
||
|
SET 'NUM,3
|
||
|
?CND1: PRINTI "Zeit vergeht..."
|
||
|
CRLF
|
||
|
?PRG3: DLESS? 'NUM,0 /?REP4
|
||
|
CALL1 CLOCKER
|
||
|
ZERO? STACK /?PRG3
|
||
|
?REP4: SET 'CLOCK-WAIT,TRUE-VALUE
|
||
|
RETURN CLOCK-WAIT
|
||
|
|
||
|
|
||
|
.FUNCT V-WALK:ANY:0:0,PT,PTS,STR,OBJ,RM
|
||
|
ZERO? P-WALK-DIR \?CCL3
|
||
|
ICALL PERFORM,V?WALK-TO,PRSO
|
||
|
RTRUE
|
||
|
?CCL3: GETPT HERE,PRSO >PT
|
||
|
ZERO? PT /?CCL5
|
||
|
PTSIZE PT >PTS
|
||
|
EQUAL? PTS,UEXIT \?CCL8
|
||
|
GET PT,REXIT
|
||
|
CALL2 GOTO,STACK
|
||
|
RSTACK
|
||
|
?CCL8: EQUAL? PTS,NEXIT \?CCL10
|
||
|
GET PT,NEXITSTR
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL10: EQUAL? PTS,FEXIT \?CCL14
|
||
|
GET PT,FEXITFCN
|
||
|
CALL STACK >RM
|
||
|
ZERO? RM /?CCL17
|
||
|
CALL2 GOTO,RM
|
||
|
RSTACK
|
||
|
?CCL17: CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
RETURN 2
|
||
|
?CCL14: EQUAL? PTS,CEXIT \?CCL23
|
||
|
GETB PT,CEXITFLAG
|
||
|
VALUE STACK
|
||
|
ZERO? STACK /?CCL26
|
||
|
GET PT,REXIT
|
||
|
CALL2 GOTO,STACK
|
||
|
RSTACK
|
||
|
?CCL26: GET PT,CEXITSTR >STR
|
||
|
ZERO? STR /?CCL28
|
||
|
PRINT STR
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL28: PRINTI "In die Richtung kannst du nicht gehen."
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL23: EQUAL? PTS,DEXIT \FALSE
|
||
|
GET PT,DEXITOBJ >OBJ
|
||
|
FSET? OBJ,OPENBIT \?CCL37
|
||
|
GET PT,REXIT
|
||
|
CALL2 GOTO,STACK
|
||
|
RSTACK
|
||
|
?CCL37: GET PT,DEXITSTR >STR
|
||
|
ZERO? STR /?CCL39
|
||
|
PRINT STR
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL39: ICALL2 DER-NOM-CAP-PRINT,OBJ
|
||
|
PRINTI " ist geschlo%sen."
|
||
|
CRLF
|
||
|
ICALL2 THIS-IS-IT,OBJ
|
||
|
RETURN 2
|
||
|
?CCL5: ZERO? LIT \?CCL45
|
||
|
RANDOM 100
|
||
|
GRTR? 80,STACK \?CCL45
|
||
|
EQUAL? WINNER,ADVENTURER \?CCL45
|
||
|
FSET? HERE,NONLANDBIT /?CCL45
|
||
|
ZERO? SPRAYED? /?CCL52
|
||
|
PRINTI "There are odd noises in the darkness, and there is no exit in that direction."
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
?CCL52: CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
CALL2 JIGS-UP,STR?206
|
||
|
RSTACK
|
||
|
?CCL45: PRINTI "In die Richtung kannst du nicht gehen."
|
||
|
CRLF
|
||
|
RETURN 2
|
||
|
|
||
|
|
||
|
.FUNCT V-WALK-AROUND:ANY:0:0
|
||
|
PRINTR "Benutze einen Kompa%s f%ur die Richtung."
|
||
|
|
||
|
|
||
|
.FUNCT V-WALK-TO:ANY:0:0
|
||
|
EQUAL? PRSO,INTDIR \?CCL3
|
||
|
ICALL2 DO-WALK,P-DIRECTION
|
||
|
RTRUE
|
||
|
?CCL3: ZERO? PRSO /?CCL5
|
||
|
IN? PRSO,HERE /?CTR4
|
||
|
CALL GLOBAL-IN?,PRSO,HERE
|
||
|
ZERO? STACK /?CCL5
|
||
|
?CTR4: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
|
||
|
PRINTR " ist hier!"
|
||
|
?CCL5: PRINTR "Du mu%st eine Richtung angeben!"
|
||
|
|
||
|
|
||
|
.FUNCT V-WAVE:ANY:0:0
|
||
|
ICALL2 DER-ACC-CAP-PRINT,PRSO
|
||
|
PRINTR " wedeln, scheint nicht zu funktionieren."
|
||
|
|
||
|
|
||
|
.FUNCT V-WEAR:ANY:0:0
|
||
|
FSET? PRSO,WEARBIT /?CCL3
|
||
|
PRINTI "Du kannst "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " nicht tragen."
|
||
|
?CCL3: ICALL PERFORM,V?TAKE,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT V-WIN:ANY:0:0
|
||
|
PRINTR "Logo! Klar!"
|
||
|
|
||
|
|
||
|
.FUNCT V-WIND:ANY:0:0
|
||
|
PRINTI "Du kannst "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTR " nicht aufziehen."
|
||
|
|
||
|
|
||
|
.FUNCT V-WISH:ANY:0:0
|
||
|
PRINTR "Mit viel Gl%uck, wird dein Wunsch sich erf%ullen."
|
||
|
|
||
|
|
||
|
.FUNCT V-YELL:ANY:0:0
|
||
|
PRINTR "AAAUUUUUU!"
|
||
|
|
||
|
|
||
|
.FUNCT V-YES:ANY:0:0
|
||
|
PRINTR "Ja?"
|
||
|
|
||
|
|
||
|
.FUNCT V-ZORK:ANY:0:0
|
||
|
PRINTR "Zu deinen Diensten!"
|
||
|
|
||
|
|
||
|
.FUNCT V-FIRST-LOOK:ANY:0:0
|
||
|
CALL1 DESCRIBE-ROOM
|
||
|
ZERO? STACK /FALSE
|
||
|
ZERO? SUPER-BRIEF \FALSE
|
||
|
CALL1 DESCRIBE-OBJECTS
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT DESCRIBE-ROOM:ANY:0:1,LOOK?,V?,STR,AV
|
||
|
ZERO? LOOK? /?PRD3
|
||
|
SET 'V?,LOOK?
|
||
|
JUMP ?PEN1
|
||
|
?PRD3: SET 'V?,VERBOSE
|
||
|
?PEN1: ZERO? LIT \?CND4
|
||
|
PRINTI "Es ist stockdunkel."
|
||
|
ZERO? SPRAYED? \?CND6
|
||
|
PRINTI " Es besteht die M%oglichkeit, da%s du von einem Greuel gefressen wirst."
|
||
|
?CND6: CRLF
|
||
|
ICALL1 NULL-F
|
||
|
RFALSE
|
||
|
?CND4: FSET? HERE,TOUCHBIT /?CND8
|
||
|
FSET HERE,TOUCHBIT
|
||
|
SET 'V?,TRUE-VALUE
|
||
|
?CND8: CALL2 IN-MAZE?,HERE
|
||
|
ZERO? STACK /?CND10
|
||
|
FCLEAR HERE,TOUCHBIT
|
||
|
?CND10: IN? HERE,ROOMS \?CND12
|
||
|
ICALL DPRINT,HERE,FALSE-VALUE
|
||
|
LOC WINNER >AV
|
||
|
FSET? AV,VEHBIT \?CND14
|
||
|
PRINTI ", in "
|
||
|
ICALL2 DER-DAT-PRINT,AV
|
||
|
?CND14: CRLF
|
||
|
?CND12: ZERO? LOOK? \?CCL17
|
||
|
ZERO? SUPER-BRIEF \TRUE
|
||
|
?CCL17: LOC WINNER >AV
|
||
|
ZERO? V? /?CCL22
|
||
|
GETP HERE,P?ACTION
|
||
|
CALL STACK,M-LOOK
|
||
|
ZERO? STACK \TRUE
|
||
|
?CCL22: ZERO? V? /?CCL26
|
||
|
GETP HERE,P?LDESC >STR
|
||
|
ZERO? STR /?CCL26
|
||
|
PRINT STR
|
||
|
CRLF
|
||
|
JUMP ?CND20
|
||
|
?CCL26: GETP HERE,P?ACTION
|
||
|
ICALL STACK,M-FLASH
|
||
|
?CND20: EQUAL? HERE,AV /TRUE
|
||
|
FSET? AV,VEHBIT \TRUE
|
||
|
GETP AV,P?ACTION
|
||
|
ICALL STACK,M-LOOK
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT DESCRIBE-OBJECTS:ANY:0:1,V?
|
||
|
ZERO? LIT /?CCL3
|
||
|
FIRST? HERE \FALSE
|
||
|
ZERO? V? /?PRD9
|
||
|
SET 'V?,V?
|
||
|
JUMP ?PEN7
|
||
|
?PRD9: SET 'V?,VERBOSE
|
||
|
?PEN7: CALL PRINT-CONT,HERE,V?,-1
|
||
|
RSTACK
|
||
|
?CCL3: PRINTR "Nur Flederm%ause k%onnen im Dunkeln sehen. Und du bist keine."
|
||
|
|
||
|
|
||
|
.FUNCT DESCRIBE-OBJECT:ANY:3:3,OBJ,V?,LEVEL,STR,AV
|
||
|
SET 'DESC-OBJECT,OBJ
|
||
|
ZERO? LEVEL \?CCL3
|
||
|
GETP OBJ,P?DESCFCN
|
||
|
CALL STACK,M-OBJDESC
|
||
|
ZERO? STACK \TRUE
|
||
|
?CCL3: ZERO? LEVEL \?CCL7
|
||
|
FSET? OBJ,TOUCHBIT /?PRD11
|
||
|
GETP OBJ,P?FDESC >STR
|
||
|
ZERO? STR \?CTR6
|
||
|
?PRD11: GETP OBJ,P?LDESC >STR
|
||
|
ZERO? STR /?CCL7
|
||
|
?CTR6: PRINT STR
|
||
|
JUMP ?CND1
|
||
|
?CCL7: ZERO? LEVEL \?CCL15
|
||
|
PRINTI "Hier ist "
|
||
|
ICALL2 EIN-NOM-PRINT,OBJ
|
||
|
FSET? OBJ,ONBIT \?CND16
|
||
|
PRINTI " (beleuchtet)"
|
||
|
?CND16: PRINTC 46
|
||
|
JUMP ?CND1
|
||
|
?CCL15: GET INDENTS,LEVEL
|
||
|
PRINT STACK
|
||
|
ICALL2 EIN-NOM-CAP-PRINT,OBJ
|
||
|
FSET? OBJ,ONBIT \?CCL20
|
||
|
PRINTI " (beleuchtet)"
|
||
|
JUMP ?CND1
|
||
|
?CCL20: FSET? OBJ,WEARBIT \?CND1
|
||
|
IN? OBJ,WINNER \?CND1
|
||
|
PRINTI " (auf dem Leib)"
|
||
|
?CND1: ICALL1 NULL-F
|
||
|
ZERO? LEVEL \?CND24
|
||
|
LOC WINNER >AV
|
||
|
ZERO? AV /?CND24
|
||
|
FSET? AV,VEHBIT \?CND24
|
||
|
PRINTI " (au%serhalb von "
|
||
|
ICALL2 DER-DAT-PRINT,AV
|
||
|
PRINTC 41
|
||
|
?CND24: CRLF
|
||
|
CALL2 SEE-INSIDE?,OBJ
|
||
|
ZERO? STACK /FALSE
|
||
|
FIRST? OBJ \FALSE
|
||
|
CALL PRINT-CONT,OBJ,V?,LEVEL
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT PRINT-CONTENTS:ANY:1:1,OBJ,F,N,1ST?,IT?,TWO?
|
||
|
SET '1ST?,TRUE-VALUE
|
||
|
FIRST? OBJ >F \FALSE
|
||
|
?PRG4: NEXT? F >N /?BOGUS6
|
||
|
?BOGUS6: ZERO? 1ST? /?CCL9
|
||
|
SET '1ST?,FALSE-VALUE
|
||
|
JUMP ?CND7
|
||
|
?CCL9: PRINTI ", "
|
||
|
ZERO? N \?CND7
|
||
|
PRINTI "und "
|
||
|
?CND7: ICALL2 EIN-NOM-PRINT,F
|
||
|
ZERO? IT? \?CCL14
|
||
|
ZERO? TWO? \?CCL14
|
||
|
SET 'IT?,F
|
||
|
JUMP ?CND12
|
||
|
?CCL14: SET 'TWO?,TRUE-VALUE
|
||
|
SET 'IT?,FALSE-VALUE
|
||
|
?CND12: SET 'F,N
|
||
|
ZERO? F \?PRG4
|
||
|
ZERO? IT? /TRUE
|
||
|
ZERO? TWO? \TRUE
|
||
|
ICALL2 THIS-IS-IT,IT?
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT PRINT-CONT:ANY:1:3,OBJ,V?,LEVEL,Y,1ST?,SHIT,AV,STR,PV?,INV?
|
||
|
FIRST? OBJ >Y \TRUE
|
||
|
LOC WINNER >AV
|
||
|
ZERO? AV /?CCL5
|
||
|
FSET? AV,VEHBIT /?CND3
|
||
|
?CCL5: SET 'AV,FALSE-VALUE
|
||
|
?CND3: SET '1ST?,TRUE-VALUE
|
||
|
SET 'SHIT,TRUE-VALUE
|
||
|
LOC OBJ
|
||
|
EQUAL? WINNER,OBJ,STACK \?PRG11
|
||
|
SET 'INV?,TRUE-VALUE
|
||
|
?CND8: FIRST? OBJ >Y /?PRG34
|
||
|
?PRG34: ZERO? Y \?CCL38
|
||
|
ZERO? PV? /?REP35
|
||
|
ZERO? AV /?REP35
|
||
|
FIRST? AV \?REP35
|
||
|
INC 'LEVEL
|
||
|
ICALL PRINT-CONT,AV,V?,LEVEL
|
||
|
?REP35: ZERO? 1ST? /TRUE
|
||
|
ZERO? SHIT \FALSE
|
||
|
RTRUE
|
||
|
?PRG11: ZERO? Y /?CND8
|
||
|
EQUAL? Y,AV \?CCL17
|
||
|
SET 'PV?,TRUE-VALUE
|
||
|
JUMP ?CND13
|
||
|
?CCL17: EQUAL? Y,WINNER /?CND13
|
||
|
FSET? Y,INVISIBLE /?CND13
|
||
|
FSET? Y,TOUCHBIT /?CND13
|
||
|
GETP Y,P?FDESC >STR
|
||
|
ZERO? STR /?CND13
|
||
|
FSET? Y,NDESCBIT /?CND23
|
||
|
PRINT STR
|
||
|
CRLF
|
||
|
SET 'SHIT,FALSE-VALUE
|
||
|
?CND23: CALL2 SEE-INSIDE?,Y
|
||
|
ZERO? STACK /?CND13
|
||
|
LOC Y
|
||
|
GETP STACK,P?DESCFCN
|
||
|
ZERO? STACK \?CND13
|
||
|
FIRST? Y \?CND13
|
||
|
CALL PRINT-CONT,Y,V?,0
|
||
|
ZERO? STACK /?CND13
|
||
|
SET '1ST?,FALSE-VALUE
|
||
|
?CND13: NEXT? Y >Y /?PRG11
|
||
|
JUMP ?PRG11
|
||
|
?CCL38: EQUAL? Y,AV,ADVENTURER /?CND36
|
||
|
FSET? Y,INVISIBLE /?CND36
|
||
|
ZERO? INV? \?CCL45
|
||
|
FSET? Y,TOUCHBIT /?CCL45
|
||
|
GETP Y,P?FDESC
|
||
|
ZERO? STACK \?CND36
|
||
|
?CCL45: FSET? Y,NDESCBIT /?CCL53
|
||
|
ZERO? 1ST? /?CND54
|
||
|
CALL FIRSTER,OBJ,LEVEL
|
||
|
ZERO? STACK /?CND56
|
||
|
LESS? LEVEL,0 \?CND56
|
||
|
SET 'LEVEL,0
|
||
|
?CND56: INC 'LEVEL
|
||
|
SET '1ST?,FALSE-VALUE
|
||
|
?CND54: LESS? LEVEL,0 \?CND60
|
||
|
SET 'LEVEL,0
|
||
|
?CND60: ICALL DESCRIBE-OBJECT,Y,V?,LEVEL
|
||
|
JUMP ?CND36
|
||
|
?CCL53: FIRST? Y \?CND36
|
||
|
CALL2 SEE-INSIDE?,Y
|
||
|
ZERO? STACK /?CND36
|
||
|
INC 'LEVEL
|
||
|
ICALL PRINT-CONT,Y,V?,LEVEL
|
||
|
DEC 'LEVEL
|
||
|
?CND36: NEXT? Y >Y /?PRG34
|
||
|
JUMP ?PRG34
|
||
|
|
||
|
|
||
|
.FUNCT FIRSTER:ANY:2:2,OBJ,LEVEL
|
||
|
EQUAL? OBJ,TROPHY-CASE \?CCL3
|
||
|
PRINTR "Deine Schatzsammlung besteht aus:"
|
||
|
?CCL3: EQUAL? OBJ,WINNER \?CCL5
|
||
|
PRINTR "Du tr%agst:"
|
||
|
?CCL5: IN? OBJ,ROOMS /FALSE
|
||
|
GRTR? LEVEL,0 \?CND8
|
||
|
GET INDENTS,LEVEL
|
||
|
PRINT STACK
|
||
|
?CND8: FSET? OBJ,SURFACEBIT \?CCL12
|
||
|
PRINTI "Auf "
|
||
|
ICALL2 DER-DAT-PRINT,OBJ
|
||
|
CALL2 CCOUNT,OBJ
|
||
|
GRTR? STACK,1 \?CCL15
|
||
|
PRINTR " ist: "
|
||
|
?CCL15: PRINTR " sind: "
|
||
|
?CCL12: FSET? OBJ,ACTORBIT \?CCL17
|
||
|
ICALL2 DER-NOM-CAP-PRINT,OBJ
|
||
|
PRINTR " scheint das Folgende zu halten:"
|
||
|
?CCL17: ICALL2 DER-NOM-CAP-PRINT,OBJ
|
||
|
PRINTR " scheint das Folgende zu enthalten:"
|
||
|
|
||
|
|
||
|
.FUNCT SEE-INSIDE?:ANY:1:1,OBJ
|
||
|
FSET? OBJ,INVISIBLE /FALSE
|
||
|
FSET? OBJ,TRANSBIT /TRUE
|
||
|
FSET? OBJ,OPENBIT /TRUE
|
||
|
RFALSE
|
||
|
|
||
|
|
||
|
.FUNCT SCORE-UPD:ANY:1:1,NUM
|
||
|
ADD BASE-SCORE,NUM >BASE-SCORE
|
||
|
ADD SCORE,NUM >SCORE
|
||
|
EQUAL? SCORE,350 \TRUE
|
||
|
ZERO? WON-FLAG \TRUE
|
||
|
SET 'WON-FLAG,TRUE-VALUE
|
||
|
FCLEAR MAP,INVISIBLE
|
||
|
FCLEAR WEST-OF-HOUSE,TOUCHBIT
|
||
|
PRINTR "Eine fast unvernehmbare Stimme fl%ustert dir zu: %>Suche unter den Sch%atzen nach dem letzten Geheimnis.%<"
|
||
|
|
||
|
|
||
|
.FUNCT SCORE-OBJ:ANY:1:1,OBJ,TEMP
|
||
|
GETP OBJ,P?VALUE >TEMP
|
||
|
GRTR? TEMP,0 \FALSE
|
||
|
ICALL2 SCORE-UPD,TEMP
|
||
|
PUTP OBJ,P?VALUE,0
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT YES?:ANY:0:0,WORD,VAL
|
||
|
?PRG1: PRINTC 62
|
||
|
PUTB YES-INBUF,1,0
|
||
|
READ YES-INBUF,YES-LEXV
|
||
|
GETB YES-LEXV,P-LEXWORDS
|
||
|
ZERO? STACK /?CND3
|
||
|
GET YES-LEXV,P-LEXSTART >WORD
|
||
|
ZERO? WORD /?CND3
|
||
|
CALL WT?,WORD,64,1 >VAL
|
||
|
EQUAL? VAL,ACT?JA /?CTR8
|
||
|
EQUAL? WORD,W?J \?CCL9
|
||
|
?CTR8: SET 'VAL,TRUE-VALUE
|
||
|
RETURN VAL
|
||
|
?CCL9: EQUAL? VAL,ACT?NEIN /?CTR12
|
||
|
EQUAL? WORD,W?N \?CCL13
|
||
|
?CTR12: SET 'VAL,FALSE-VALUE
|
||
|
RETURN VAL
|
||
|
?CCL13: EQUAL? VAL,ACT?NEUBEGINN \?CCL17
|
||
|
ICALL1 V-RESTART
|
||
|
JUMP ?CND3
|
||
|
?CCL17: EQUAL? VAL,ACT?WIEDERHERSTELLUNG \?CCL19
|
||
|
ICALL1 V-RESTORE
|
||
|
JUMP ?CND3
|
||
|
?CCL19: EQUAL? VAL,ACT?AUFHOEREN \?CND3
|
||
|
ICALL1 V-QUIT
|
||
|
?CND3: PRINTI "[Please type YES or NO.]"
|
||
|
JUMP ?PRG1
|
||
|
|
||
|
|
||
|
.FUNCT ITAKE:ANY:0:1,VB:ATOM,CNT:FIX,OBJ:OBJECT,?TMP1
|
||
|
ASSIGNED? 'VB /?CND1
|
||
|
SET 'VB,TRUE-VALUE
|
||
|
?CND1: ZERO? DEAD /?CCL5
|
||
|
ZERO? VB /FALSE
|
||
|
PRINTI "Deine Hand greift durch das Objekt hindurch."
|
||
|
CRLF
|
||
|
RFALSE
|
||
|
?CCL5: FSET? PRSO,TAKEBIT /?CCL9
|
||
|
ZERO? VB /FALSE
|
||
|
CALL2 PICK-ONE,YUKS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RFALSE
|
||
|
?CCL9: CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
LOC PRSO
|
||
|
FSET? STACK,CONTBIT \?CCL15
|
||
|
LOC PRSO
|
||
|
FSET? STACK,OPENBIT \FALSE
|
||
|
?CCL15: LOC PRSO
|
||
|
IN? STACK,WINNER /?CCL19
|
||
|
CALL2 WEIGHT,PRSO >?TMP1
|
||
|
CALL2 WEIGHT,WINNER
|
||
|
ADD ?TMP1,STACK
|
||
|
GRTR? STACK,LOAD-ALLOWED \?CCL19
|
||
|
ZERO? VB /?PRG27
|
||
|
PRINTI "Last ist zu schwer"
|
||
|
LESS? LOAD-ALLOWED,LOAD-MAX \?CCL26
|
||
|
PRINTI ", aber du nimmst es leicht"
|
||
|
JUMP ?CND24
|
||
|
?CCL26: PRINTC 46
|
||
|
?CND24: CRLF
|
||
|
?PRG27: RETURN 2
|
||
|
?CCL19: EQUAL? PRSA,V?TAKE \?CCL30
|
||
|
CALL2 CCOUNT,WINNER >CNT
|
||
|
GRTR? CNT,FUMBLE-NUMBER \?CCL30
|
||
|
MUL CNT,FUMBLE-PROB >?TMP1
|
||
|
RANDOM 100
|
||
|
GRTR? ?TMP1,STACK \?CCL30
|
||
|
PRINTI "Du hast deine H%ande schon zu voll!"
|
||
|
CRLF
|
||
|
RFALSE
|
||
|
?CCL30: MOVE PRSO,WINNER
|
||
|
FCLEAR PRSO,NDESCBIT
|
||
|
FSET PRSO,TOUCHBIT
|
||
|
ICALL1 NULL-F
|
||
|
ICALL2 SCORE-OBJ,PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT IDROP:ANY:0:0
|
||
|
IN? PRSO,WINNER /?CCL3
|
||
|
LOC PRSO
|
||
|
IN? STACK,WINNER /?CCL3
|
||
|
PRINTI "Du tr%agst "
|
||
|
ICALL2 DER-ACC-PRINT,PRSO
|
||
|
PRINTI " nicht."
|
||
|
CRLF
|
||
|
RFALSE
|
||
|
?CCL3: IN? PRSO,WINNER /?CCL7
|
||
|
LOC PRSO
|
||
|
FSET? STACK,OPENBIT /?CCL7
|
||
|
ICALL2 DER-NOM-CAP-PRINT,PRSO
|
||
|
PRINTI " ist geschlo%sen."
|
||
|
CRLF
|
||
|
RFALSE
|
||
|
?CCL7: LOC WINNER
|
||
|
MOVE PRSO,STACK
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT CCOUNT:ANY:1:1,OBJ,CNT,X
|
||
|
FIRST? OBJ >X /?PRG3
|
||
|
RETURN CNT
|
||
|
?PRG3: FSET? X,WEARBIT /?CND5
|
||
|
INC 'CNT
|
||
|
?CND5: NEXT? X >X /?PRG3
|
||
|
RETURN CNT
|
||
|
|
||
|
|
||
|
.FUNCT WEIGHT:ANY:1:1,OBJ,CONT,WT
|
||
|
FIRST? OBJ >CONT \?CND1
|
||
|
?PRG3: EQUAL? OBJ,PLAYER \?CCL7
|
||
|
FSET? CONT,WEARBIT \?CCL7
|
||
|
INC 'WT
|
||
|
JUMP ?CND5
|
||
|
?CCL7: CALL2 WEIGHT,CONT
|
||
|
ADD WT,STACK >WT
|
||
|
?CND5: NEXT? CONT >CONT /?PRG3
|
||
|
?CND1: GETP OBJ,P?SIZE
|
||
|
ADD WT,STACK
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT NO-GO-TELL:ANY:2:2,AV,WLOC
|
||
|
ZERO? AV /?CCL3
|
||
|
ICALL2 EIN-DAT-PRINT,WLOC
|
||
|
PRINTR " kannst du da nicht hin."
|
||
|
?CCL3: PRINTR "Ohne ein Transportmittel kannst du da nicht hingehen."
|
||
|
|
||
|
|
||
|
.FUNCT GOTO:ANY:1:2,RM,V?,LB,WLOC,AV,OLIT,?LCL-OHERE
|
||
|
ASSIGNED? 'V? /?CND1
|
||
|
SET 'V?,TRUE-VALUE
|
||
|
?CND1: SET 'OLIT,LIT
|
||
|
SET '?LCL-OHERE,HERE
|
||
|
LOC WINNER >WLOC
|
||
|
FSET? RM,RLANDBIT \?CND3
|
||
|
SET 'LB,TRUE-VALUE
|
||
|
?CND3: FSET? WLOC,VEHBIT \?CND5
|
||
|
GETP WLOC,P?VTYPE >AV
|
||
|
?CND5: ZERO? LB \?CCL9
|
||
|
ZERO? AV \?CCL9
|
||
|
ICALL NO-GO-TELL,AV,WLOC
|
||
|
RFALSE
|
||
|
?CCL9: ZERO? LB \?CCL13
|
||
|
FSET? RM,AV /?CCL13
|
||
|
ICALL NO-GO-TELL,AV,WLOC
|
||
|
RFALSE
|
||
|
?CCL13: FSET? HERE,RLANDBIT \?CCL17
|
||
|
ZERO? LB /?CCL17
|
||
|
ZERO? AV /?CCL17
|
||
|
EQUAL? AV,RLANDBIT /?CCL17
|
||
|
FSET? RM,AV /?CCL17
|
||
|
ICALL NO-GO-TELL,AV,WLOC
|
||
|
RFALSE
|
||
|
?CCL17: FSET? RM,RMUNGBIT \?CCL24
|
||
|
GETP RM,P?LDESC
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RFALSE
|
||
|
?CCL24: ZERO? LB /?CND25
|
||
|
FSET? HERE,RLANDBIT /?CND25
|
||
|
ZERO? DEAD \?CND25
|
||
|
FSET? WLOC,VEHBIT \?CND25
|
||
|
ICALL2 DER-NOM-CAP-PRINT,WLOC
|
||
|
PRINTI " stoppt am Ufer."
|
||
|
CRLF
|
||
|
CRLF
|
||
|
?CND25: ZERO? AV /?CCL33
|
||
|
SET 'OHERE,FALSE-VALUE
|
||
|
MOVE WLOC,RM
|
||
|
JUMP ?CND31
|
||
|
?CCL33: MOVE WINNER,RM
|
||
|
?CND31: SET 'HERE,RM
|
||
|
CALL2 LIT?,HERE >LIT
|
||
|
ZERO? OLIT \?CND34
|
||
|
ZERO? LIT \?CND34
|
||
|
RANDOM 100
|
||
|
GRTR? 80,STACK \?CND34
|
||
|
ZERO? SPRAYED? /?CCL41
|
||
|
PRINTI "There are sinister gurgling noises in the darkness all around you!"
|
||
|
CRLF
|
||
|
?CND34: ZERO? LIT \?CND47
|
||
|
EQUAL? WINNER,ADVENTURER \?CND47
|
||
|
PRINTI "Du bist in einem dunklen Ort gelandet."
|
||
|
CRLF
|
||
|
SET 'P-CONT,FALSE-VALUE
|
||
|
?CND47: GETP HERE,P?ACTION
|
||
|
ICALL STACK,M-ENTER
|
||
|
ICALL2 SCORE-OBJ,RM
|
||
|
EQUAL? HERE,RM \TRUE
|
||
|
EQUAL? ADVENTURER,WINNER /?CCL55
|
||
|
IN? ADVENTURER,?LCL-OHERE \?CCL55
|
||
|
ICALL2 DER-NOM-CAP-PRINT,WINNER
|
||
|
PRINTR " verl%a%st das Zimmer."
|
||
|
?CCL41: CALL1 NULL-F
|
||
|
ZERO? STACK \FALSE
|
||
|
PRINTI "Meine G%ute! Ein lauerndes Greuel ist in "
|
||
|
LOC WINNER
|
||
|
FSET? STACK,VEHBIT \?CCL46
|
||
|
LOC WINNER
|
||
|
ICALL2 DER-ACC-PRINT,STACK
|
||
|
JUMP ?CND44
|
||
|
?CCL46: PRINTI "das Zimmer"
|
||
|
?CND44: ICALL2 JIGS-UP,STR?212
|
||
|
RTRUE
|
||
|
?CCL55: EQUAL? HERE,?LCL-OHERE \?CCL59
|
||
|
EQUAL? HERE,ENTRANCE-TO-HADES /TRUE
|
||
|
?CCL59: ZERO? V? /TRUE
|
||
|
EQUAL? WINNER,ADVENTURER \TRUE
|
||
|
ICALL1 V-FIRST-LOOK
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT LKP:ANY:2:2,ITM,TBL,CNT,LEN
|
||
|
GET TBL,0 >LEN
|
||
|
?PRG1: IGRTR? 'CNT,LEN /FALSE
|
||
|
GET TBL,CNT
|
||
|
EQUAL? STACK,ITM \?PRG1
|
||
|
EQUAL? CNT,LEN /FALSE
|
||
|
ADD CNT,1
|
||
|
GET TBL,STACK
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT DO-WALK:ANY:1:1,DIR
|
||
|
SET 'P-WALK-DIR,DIR
|
||
|
CALL PERFORM,V?WALK,DIR
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT GLOBAL-IN?:ANY:2:2,OBJ1,OBJ2,TX
|
||
|
GETPT OBJ2,P?GLOBAL >TX
|
||
|
ZERO? TX /FALSE
|
||
|
PTSIZE TX
|
||
|
DIV STACK,2
|
||
|
SUB STACK,1
|
||
|
CALL ZMEMQ,OBJ1,TX,STACK
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT FIND-IN:ANY:2:2,WHERE,WHAT,W
|
||
|
FIRST? WHERE >W /?BOGUS1
|
||
|
?BOGUS1: ZERO? W /FALSE
|
||
|
?PRG4: FSET? W,WHAT \?CCL8
|
||
|
EQUAL? W,ADVENTURER /?CCL8
|
||
|
RETURN W
|
||
|
?CCL8: NEXT? W >W /?PRG4
|
||
|
RFALSE
|
||
|
|
||
|
|
||
|
.FUNCT HELD?:ANY:1:1,CAN
|
||
|
?PRG1: LOC CAN >CAN
|
||
|
ZERO? CAN /FALSE
|
||
|
EQUAL? CAN,WINNER \?PRG1
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT OTHER-SIDE:ANY:1:1,DOBJ,P,TX
|
||
|
?PRG1: NEXTP HERE,P >P
|
||
|
LESS? P,LOW-DIRECTION /FALSE
|
||
|
GETPT HERE,P >TX
|
||
|
PTSIZE TX
|
||
|
EQUAL? STACK,DEXIT \?PRG1
|
||
|
GET TX,DEXITOBJ
|
||
|
EQUAL? STACK,DOBJ \?PRG1
|
||
|
RETURN P
|
||
|
|
||
|
|
||
|
.FUNCT MUNG-ROOM:ANY:2:2,RM,STR
|
||
|
FSET RM,RMUNGBIT
|
||
|
PUTP RM,P?LDESC,STR
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT THIS-IS-IT:ANY:1:1,OBJ
|
||
|
ZERO? OBJ /TRUE
|
||
|
EQUAL? PRSA,V?WALK \?PRD6
|
||
|
EQUAL? PRSO,OBJ /TRUE
|
||
|
?PRD6: EQUAL? OBJ,ADVENTURER /TRUE
|
||
|
EQUAL? OBJ,NOT-HERE-OBJECT,ME /TRUE
|
||
|
FSET? OBJ,DERBIT \?CCL11
|
||
|
SET 'P-HIM-OBJECT,OBJ
|
||
|
RETURN P-HIM-OBJECT
|
||
|
?CCL11: FSET? OBJ,DASBIT \?CCL13
|
||
|
SET 'P-IT-OBJECT,OBJ
|
||
|
RETURN P-IT-OBJECT
|
||
|
?CCL13: SET 'P-HER-OBJECT,OBJ
|
||
|
RETURN P-HER-OBJECT
|
||
|
|
||
|
.ENDI
|