zork-german/verbs.zap

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