.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