zork-german/actions.zap

4014 lines
113 KiB
Plaintext

.FUNCT WEST-HOUSE:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du stehst auf freiem Feld westlich von einem wei%sen Haus, dessen Haust%ur mit Brettern vernagelt ist."
ZERO? WON-FLAG /?CND4
PRINTR " Ein Geheimpfad f%uhrt nach S%udwesten in den Wald."
?CND4: CRLF
RTRUE
.FUNCT EAST-HOUSE:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist hinter dem wei%sen Haus. Nach Osten f%uhrt in Pfad in den Wald. An einem Ende der Hauswand befindet sich ein kleines Fenster, das"
FSET? KITCHEN-WINDOW,OPENBIT \?CCL6
PRINTR " offen ist."
?CCL6: PRINTR " einen Spalt offen steht."
.FUNCT OPEN-CLOSE:ANY:3:3,OBJ,STROPN,STRCLS
EQUAL? PRSA,V?OPEN \?CCL3
FSET? OBJ,OPENBIT \?CCL6
CALL2 PICK-ONE,DUMMY
PRINT STACK
JUMP ?CND4
?CCL6: PRINT STROPN
FSET OBJ,OPENBIT
?CND4: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
FSET? OBJ,OPENBIT \?CCL11
PRINT STRCLS
FCLEAR OBJ,OPENBIT
JUMP ?CND9
?CCL11: CALL2 PICK-ONE,DUMMY
PRINT STACK
?CND9: CRLF
RTRUE
.FUNCT BOARD-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE,V?TAKE \FALSE
PRINTR "Die Bretter sind fest angenagelt."
.FUNCT TEETH-F:ANY:0:0
EQUAL? PRSA,V?BRUSH \FALSE
EQUAL? PRSO,TEETH \FALSE
EQUAL? PRSI,PUTTY \?CCL8
IN? PRSI,WINNER \?CCL8
CALL2 JIGS-UP,STR?227
RSTACK
?CCL8: ZERO? PRSI \?CCL12
PRINTR "Zahnpflege ist h%ochst empfehlenswert, aber es ist nicht klar, mit was du sie putzen willst."
?CCL12: PRINTI "Eine charmante Idee, aber mit "
ICALL2 EIN-DAT-PRINT,PRSI
PRINTR "?"
.FUNCT SONGBIRD-F:ANY:0:0
EQUAL? PRSA,V?TAKE,V?FIND \?CCL3
PRINTR "Der Singvogel ist nicht hier, aber er ist wahrscheinlich in der N%ahe."
?CCL3: EQUAL? PRSA,V?LISTEN \?CCL5
PRINTR "Jetzt kannst du den Singvogel nicht h%oren."
?CCL5: EQUAL? PRSA,V?FOLLOW \?CCL7
PRINTR "Man kann ihm nicht folgen."
?CCL7: PRINTR "Hier kannst du keinen Singvogel sehen."
.FUNCT WHITE-HOUSE-F:ANY:0:0
EQUAL? HERE,KITCHEN,LIVING-ROOM,ATTIC \?CCL3
EQUAL? PRSA,V?FIND \?CCL6
PRINTR "Warum gehst du nicht auf die Suche nach deinem Verstand."
?CCL6: EQUAL? PRSA,V?WALK-AROUND \FALSE
ICALL2 GO-NEXT,IN-HOUSE-AROUND
RTRUE
?CCL3: EQUAL? HERE,EAST-OF-HOUSE,WEST-OF-HOUSE /?CCL10
EQUAL? HERE,NORTH-OF-HOUSE,SOUTH-OF-HOUSE /?CCL10
EQUAL? PRSA,V?FIND \?CCL15
EQUAL? HERE,CLEARING \?CCL18
PRINTR "Es scheint im Westen zu sein."
?CCL18: PRINTR "Vor einer Minute war es noch hier..."
?CCL15: PRINTR "Du bist nicht beim Haus."
?CCL10: EQUAL? PRSA,V?FIND \?CCL20
PRINTR "Es steht doch gleich hier! Bist du blind, oder was?"
?CCL20: EQUAL? PRSA,V?WALK-AROUND \?CCL22
ICALL2 GO-NEXT,HOUSE-AROUND
RTRUE
?CCL22: EQUAL? PRSA,V?EXAMINE \?CCL24
PRINTR "Das Haus ist ein sch%ones altes Herrenhaus, das wei%s verputzt ist. Man sieht, da%s die Besitzer enorm reich gewesen sein mu%sten."
?CCL24: EQUAL? PRSA,V?OPEN,V?THROUGH \?CCL26
EQUAL? HERE,EAST-OF-HOUSE \?CCL29
FSET? KITCHEN-WINDOW,OPENBIT \?CCL32
CALL2 GOTO,KITCHEN
RSTACK
?CCL32: PRINTI "Das Fenster ist geschlossen."
CRLF
CALL2 THIS-IS-IT,KITCHEN-WINDOW
RSTACK
?CCL29: PRINTR "Es ist nicht offensichtlich, wie du von hier reinkommst."
?CCL26: EQUAL? PRSA,V?BURN \FALSE
PRINTR "Das kann doch nicht dein Ernst sein."
.FUNCT GO-NEXT:ANY:1:1,TBL,VAL
CALL LKP,HERE,TBL >VAL
ZERO? VAL /FALSE
CALL2 GOTO,VAL
ZERO? STACK \TRUE
RETURN 2
.FUNCT FOREST-F:ANY:0:0
EQUAL? PRSA,V?WALK-AROUND \?CCL3
EQUAL? HERE,WEST-OF-HOUSE,NORTH-OF-HOUSE,SOUTH-OF-HOUSE /?CCL5
EQUAL? HERE,EAST-OF-HOUSE \?CND4
?CCL5: PRINTI "Du bist noch nicht einmal im Wald."
CRLF
?CND4: CALL2 GO-NEXT,FOREST-AROUND
RSTACK
?CCL3: EQUAL? PRSA,V?DISEMBARK \?CCL9
PRINTR "Du mu%st eine Richtung angeben."
?CCL9: EQUAL? PRSA,V?FIND \?CCL11
PRINTR "Du kannst den Wald vor lauter B%aumen nicht sehen."
?CCL11: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "Die Tannen und Fichten scheinen zu murmeln."
.FUNCT MOUNTAIN-RANGE-F:ANY:0:0
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?CLIMB-UP \FALSE
PRINTR "Willst du mir nicht glauben? Die Berge sind nicht un%uberwindlich."
.FUNCT WATER-F:ANY:0:0,AV,W,PI?
EQUAL? PRSA,V?SGIVE /FALSE
EQUAL? PRSA,V?BOARD,V?THROUGH \?CCL5
CALL2 PICK-ONE,SWIMYUKS
PRINT STACK
CRLF
RTRUE
?CCL5: EQUAL? PRSA,V?FILL \?CCL7
SET 'W,PRSI
SET 'PRSA,V?PUT
SET 'PRSI,PRSO
SET 'PRSO,W
SET 'PI?,FALSE-VALUE
JUMP ?CND1
?CCL7: EQUAL? PRSO,GLOBAL-WATER /?CTR8
EQUAL? PRSO,WATER \?CCL9
?CTR8: SET 'W,PRSO
SET 'PI?,FALSE-VALUE
JUMP ?CND1
?CCL9: SET 'W,PRSI
ZERO? W /?CND1
SET 'PI?,TRUE-VALUE
?CND1: EQUAL? W,GLOBAL-WATER \?CND14
SET 'W,WATER
EQUAL? PRSA,V?PUT,V?TAKE \?CND14
ICALL2 REMOVE-CAREFULLY,W
?CND14: ZERO? PI? /?CCL20
SET 'PRSI,W
JUMP ?CND18
?CCL20: SET 'PRSO,W
?CND18: LOC WINNER >AV
FSET? AV,VEHBIT /?CND21
SET 'AV,FALSE-VALUE
?CND21: EQUAL? PRSA,V?PUT,V?TAKE \?CCL25
ZERO? PI? \?CCL25
ZERO? AV /?CCL30
EQUAL? AV,PRSI /?CTR29
ZERO? PRSI \?CCL30
IN? W,AV /?CCL30
?CTR29: PRINTI "Es gibt jetzt eine Pf%utze am Boden von "
ICALL2 DER-DAT-PRINT,AV
PRINTC 46
CRLF
ICALL2 REMOVE-CAREFULLY,PRSO
MOVE PRSO,AV
RTRUE
?CCL30: ZERO? PRSI /?CCL38
EQUAL? PRSI,BOTTLE /?CCL38
PRINTI "Das Wasser rinnt aus "
ICALL2 DER-DAT-PRINT,PRSI
PRINTI " und verdampft sofort."
CALL2 REMOVE-CAREFULLY,W
RSTACK
?CCL38: IN? BOTTLE,WINNER \?CCL42
FSET? BOTTLE,OPENBIT /?CCL45
PRINTI "Die Flasche ist zu."
CRLF
CALL2 THIS-IS-IT,BOTTLE
RSTACK
?CCL45: FIRST? BOTTLE /?CCL47
MOVE WATER,BOTTLE
PRINTR "Die Flasche ist jetzt voll Wasser."
?CCL47: PRINTR "Das Wasser rinnt dir durch die Finger."
?CCL42: IN? PRSO,BOTTLE \?CCL49
EQUAL? PRSA,V?TAKE \?CCL49
ZERO? PRSI \?CCL49
PRINTR "Es ist in der Flasche. Vielleicht solltest du das statt dessen nehmen."
?CCL49: PRINTR "Das Wasser rinnt dir durch die Finger."
?CCL25: ZERO? PI? /?CCL54
EQUAL? PRSA,V?PUT \?CCL57
CALL GLOBAL-IN?,RIVER,HERE
ZERO? STACK /?CCL57
ICALL PERFORM,V?PUT,PRSO,RIVER
RTRUE
?CCL57: PRINTR "Nice try."
?CCL54: EQUAL? PRSA,V?GIVE,V?DROP \?CCL61
EQUAL? PRSA,V?DROP \?CND62
IN? WATER,BOTTLE \?CND62
FSET? BOTTLE,OPENBIT /?CND62
PRINTR "Die Flasche ist zu."
?CND62: ICALL2 REMOVE-CAREFULLY,WATER
ZERO? AV /?CCL69
PRINTI "Es gibt jetzt eine Pf%utze am Boden von "
ICALL2 DER-DAT-PRINT,AV
PRINTC 46
CRLF
MOVE WATER,AV
RTRUE
?CCL69: PRINTI "Das Wasser ist auf dem Boden versch%uttet und verdampft sofort."
CRLF
CALL2 REMOVE-CAREFULLY,WATER
RSTACK
?CCL61: EQUAL? PRSA,V?THROW \FALSE
PRINTI "Das Wasser spritzt auf die W%ande und verdampft sofort."
CRLF
CALL2 REMOVE-CAREFULLY,WATER
RSTACK
.FUNCT KITCHEN-WINDOW-F:ANY:0:0
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
SET 'KITCHEN-WINDOW-FLAG,TRUE-VALUE
CALL OPEN-CLOSE,KITCHEN-WINDOW,STR?228,STR?229
RSTACK
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
ZERO? KITCHEN-WINDOW-FLAG \?CCL5
PRINTR "Das Fenster ist einen Spalt offen, aber nicht genug, um Eintritt zu gew%ahren. "
?CCL5: EQUAL? PRSA,V?THROUGH,V?BOARD,V?WALK \?CCL9
EQUAL? HERE,KITCHEN \?CCL12
ICALL2 DO-WALK,P?OST
RTRUE
?CCL12: ICALL2 DO-WALK,P?WEST
RTRUE
?CCL9: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
EQUAL? HERE,KITCHEN \?CCL17
PRINTR "Du kannst einen Kahlschlag sehen, der nach dem Wald f%uhrt."
?CCL17: PRINTR "Du kannst einen Raum sehen, der aussieht wie eine K%uche."
.FUNCT GHOSTS-F:ANY:0:0
EQUAL? PRSA,V?TELL \?CCL3
PRINTI "Die Geister johlen laut und beachten dich nicht."
CRLF
SET 'P-CONT,FALSE-VALUE
RETURN P-CONT
?CCL3: EQUAL? PRSA,V?EXORCISE \?CCL5
PRINTR "Nur das Zeremoniell hinterl%a%st einen Eindruck."
?CCL5: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL7
EQUAL? PRSO,GHOSTS \?CCL7
PRINTR "Wie kannst du einen Geist mit f%ur Menschen bestimmten Waffen angreifen?"
?CCL7: PRINTR "Es scheint dir unm%oglich mit diesen Geistern zu kommunizieren."
.FUNCT BASKET-F:ANY:0:0
EQUAL? PRSA,V?RAISE /?CTR2
EQUAL? PRSA,V?MOVE \?CCL3
ZERO? CAGE-TOP \?CCL3
?CTR2: ZERO? CAGE-TOP /?CCL10
EQUAL? PRSA,V?MOVE /?CCL10
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
?CCL10: MOVE RAISED-BASKET,SHAFT-ROOM
MOVE LOWERED-BASKET,LOWER-SHAFT
SET 'CAGE-TOP,TRUE-VALUE
ICALL2 THIS-IS-IT,RAISED-BASKET
PRINTR "Der Korb ist zum oberen Ende des Schachts hinaufgezogen."
?CCL3: EQUAL? PRSA,V?LOWER /?CTR13
EQUAL? PRSA,V?MOVE \?CCL14
ZERO? CAGE-TOP /?CCL14
?CTR13: ZERO? CAGE-TOP \?CCL21
EQUAL? PRSA,V?MOVE /?CCL21
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
?CCL21: MOVE RAISED-BASKET,LOWER-SHAFT
MOVE LOWERED-BASKET,SHAFT-ROOM
ICALL2 THIS-IS-IT,LOWERED-BASKET
PRINTI "Der Korb ist zum unteren Ende des Schacht hinabgelassen."
CRLF
SET 'CAGE-TOP,FALSE-VALUE
ZERO? LIT /TRUE
CALL2 LIT?,HERE >LIT
ZERO? LIT \TRUE
PRINTR "Es ist jetzt stockdunkel."
?CCL14: EQUAL? PRSO,LOWERED-BASKET /?CTR28
EQUAL? PRSI,LOWERED-BASKET \?CCL29
?CTR28: PRINTR "Der Korb ist am anderen Ende der Kette."
?CCL29: EQUAL? PRSA,V?TAKE \FALSE
EQUAL? PRSO,RAISED-BASKET,LOWERED-BASKET \FALSE
PRINTR "Der K%afig ist fest an der Kette angebracht."
.FUNCT BAT-F:ANY:0:0
EQUAL? PRSA,V?TELL \?CCL3
ICALL2 FWEEP,6
SET 'P-CONT,FALSE-VALUE
RETURN P-CONT
?CCL3: EQUAL? PRSA,V?MUNG,V?ATTACK,V?TAKE \FALSE
LOC GARLIC
EQUAL? STACK,WINNER,HERE \?CCL8
PRINTR "Die kannst du nicht erreichen, die h%angt von der Decke."
?CCL8: CALL1 FLY-ME
RSTACK
.FUNCT FLY-ME:ANY:0:0
ICALL2 FWEEP,4
PRINTI "Die Fledermaus ergreift dich am Kragen und hebt dich hoch....."
CRLF
CRLF
CALL2 PICK-ONE,BAT-DROPS
ICALL GOTO,STACK,FALSE-VALUE
EQUAL? HERE,ENTRANCE-TO-HADES /TRUE
ICALL1 V-FIRST-LOOK
RTRUE
.FUNCT FWEEP:ANY:1:1,N
?PRG1: DLESS? 'N,1 /?REP2
PRINTI " Huiiiiii!"
CRLF
JUMP ?PRG1
?REP2: CRLF
RTRUE
.FUNCT BELL-F:ANY:0:0
EQUAL? PRSA,V?RING \FALSE
EQUAL? HERE,LLD-ROOM \?CCL6
ZERO? LLD-FLAG /FALSE
?CCL6: PRINTR "Bim, bam."
.FUNCT HOT-BELL-F:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
PRINTR "Die Glocke ist sehr hei%s und kann nicht angefa%st werden."
?CCL3: EQUAL? PRSA,V?RUB /?CTR4
EQUAL? PRSA,V?RING \?CCL5
ZERO? PRSI /?CCL5
?CTR4: EQUAL? PRSA,V?RUB \?CND10
ZERO? PRSI \?CND10
SET 'PRSI,HANDS
?CND10: FSET? PRSI,BURNBIT \?CCL16
ICALL2 DER-NOM-CAP-PRINT,PRSI
PRINTI " f%angt Feuer und verbrennt."
CRLF
CALL2 REMOVE-CAREFULLY,PRSI
RSTACK
?CCL16: EQUAL? PRSI,HANDS \?CCL18
PRINTR "Die Glocke ist zu hei%s zum Anfassen."
?CCL18: PRINTR "Die Hitze, die die Glocke ausstr%omt ist zu stark."
?CCL5: EQUAL? PRSA,V?POUR-ON \?CCL20
ICALL2 REMOVE-CAREFULLY,PRSO
PRINTI "Das Wasser k%uhlt die Glocke und verdampft."
CRLF
CALL QUEUE,I-XBH,0
PUT STACK,0,1
CALL1 I-XBH
RSTACK
?CCL20: EQUAL? PRSA,V?RING \FALSE
PRINTR "Die Glocke ist zu hei%s, um dranzufassen."
.FUNCT BOARDED-WINDOW-FCN:ANY:0:0
EQUAL? PRSA,V?OPEN \?CCL3
PRINTR "Die Fenster sind vernagelt und lassen sich nicht %offnen."
?CCL3: EQUAL? PRSA,V?MUNG \FALSE
PRINTR "Du kannst die Fenster nicht zerschlagen, um sie zu %offnen."
.FUNCT NAILS-PSEUDO:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
PRINTR "Die N%agel, die tief in der T%ur eingebettet sind, k%onnen nicht entfernt werden."
.FUNCT CRACK-FCN:ANY:0:0
EQUAL? PRSA,V?THROUGH \FALSE
PRINTR "Du kannst durch diese Spalte nicht durch."
.FUNCT KITCHEN-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist in der K%uche des wei%sen Hauses. Ein Tisch mu%s vor Kurzem zur Bereitung einer Mahlzeit benutzt worden sein. Ein Durchgang f%uhrt nach Westen, und man kann eine dunkle Treppe sehen, die nach oben f%uhrt. Ein dunkler Kamin f%uhrt nach unten. Nach Osten ist ein kleines Fenster, das"
FSET? KITCHEN-WINDOW,OPENBIT \?CCL6
PRINTR " offen ist."
?CCL6: PRINTR " einen Spalt offen steht."
?CCL3: EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?CLIMB-UP \?CCL11
EQUAL? PRSO,STAIRS \?CCL11
CALL2 DO-WALK,P?RAUF
RSTACK
?CCL11: EQUAL? PRSA,V?CLIMB-UP \FALSE
EQUAL? PRSO,STAIRS \FALSE
PRINTR "Es gibt keine Treppe nach unten."
.FUNCT STONE-BARROW-FCN:ANY:1:1,RARG
EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?ENTER /?CCL3
EQUAL? PRSA,V?WALK \?PRD8
EQUAL? PRSO,P?WEST,P?HINEIN /?CCL3
?PRD8: EQUAL? PRSA,V?THROUGH \FALSE
EQUAL? PRSO,BARROW \FALSE
?CCL3: PRINTI "In dem H%ugelgrab
Wenn du das H%ugelgrab betrittst, schlie%st sich die T%ur f%ur immer hinter dir. Um dich herum ist es finster, aber vor dir ist eine enorme %Offnung, die hell erleuchtet ist. Durch ihr Mitte flie%st ein breiter Strom. %Uber den Strom spannt sich eine h%olzerne Fu%sg%angerbr%ucke. In der Luft schwebt ein gro%ses Schild. Darauf steht: Ihr alle, die ihr vor dieser Br%ucke steht, habt ein gro%ses und beschwerliches Abenteuer hinter euch, das eure Intelligenz und euren Mut gepr%uft hat. Ihr habt den ersten Teil der drei Zorkspiele geschafft. Diejenigen, die %uber diese Br%ucke schreiten m%ussen bereit sein ein noch gr%o%seres Abenteuer zu erleben, das eure Leistung und Tapferkeit ernstlich pr%ufen wird!"
CRLF
CRLF
PRINTI "Das dreiteilige ZORKspiel geht weiter mit %>ZORK II: Der Hexenmeister von Frobozz%< und endet mit %>ZORK III: Der Kerkermeister%<."
CALL1 FINISH
RSTACK
.FUNCT BARROW-DOOR-FCN:ANY:0:0
EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
PRINTR "Die T%ur ist zu schwer."
.FUNCT BARROW-FCN:ANY:0:0
EQUAL? PRSA,V?THROUGH \FALSE
CALL2 DO-WALK,P?WEST
RSTACK
.FUNCT TROPHY-CASE-FCN:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
EQUAL? PRSO,TROPHY-CASE \FALSE
PRINTR "Der Troph%aenschrank ist unverr%uckbar an der Wand befestigt."
.FUNCT LIVING-ROOM-FCN:ANY:1:1,RARG,RUG?,TC
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist im Wohnzimmer. Da sind eine T%ur nach Osten"
ZERO? MAGIC-FLAG /?CCL6
PRINTI ". Nach Westen gibt es eine zyklopenf%ormige %Offnung in einer alten T%ur dar%uber gibt es einige uralte Runen, "
JUMP ?CND4
?CCL6: PRINTI ", eine vernagelte Holzt%ur mit fremden Runen, "
?CND4: PRINTI "ein Troph%aenschrank, "
SET 'RUG?,RUG-MOVED
ZERO? RUG? /?CCL9
FSET? TRAP-DOOR,OPENBIT \?CCL9
PRINTR "und ein Teppich liegt neben einer Fallt%ur."
?CCL9: ZERO? RUG? /?CCL13
PRINTR "und eine geschlossene Fallt%ur bei deinen F%ussen."
?CCL13: FSET? TRAP-DOOR,OPENBIT \?CCL15
PRINTR "und eine offene Fallt%ur bei deinen F%ussen."
?CCL15: PRINTR "und ein Perserteppich in der Mitte."
?CCL3: EQUAL? RARG,M-END \FALSE
EQUAL? PRSA,V?TAKE /?CCL20
EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,TROPHY-CASE \FALSE
?CCL20: IN? PRSO,TROPHY-CASE \?CND25
ICALL2 TOUCH-ALL,PRSO
?CND25: CALL1 OTVAL-FROB
ADD BASE-SCORE,STACK >SCORE
ICALL2 SCORE-UPD,0
RFALSE
.FUNCT TOUCH-ALL:ANY:1:1,OBJ,F
FIRST? OBJ >F /?PRG2
?PRG2: ZERO? F /TRUE
FSET F,TOUCHBIT
FIRST? F \?CND4
ICALL2 TOUCH-ALL,F
?CND4: NEXT? F >F /?PRG2
JUMP ?PRG2
.FUNCT OTVAL-FROB:ANY:0:1,O,F,SCORE
ASSIGNED? 'O /?CND1
SET 'O,TROPHY-CASE
?CND1: FIRST? O >F /?PRG4
?PRG4: ZERO? F \?CND6
RETURN SCORE
?CND6: GETP F,P?TVALUE
ADD SCORE,STACK >SCORE
FIRST? F \?CND8
ICALL2 OTVAL-FROB,F
?CND8: NEXT? F >F /?PRG4
JUMP ?PRG4
.FUNCT TRAP-DOOR-FCN:ANY:0:0
EQUAL? PRSA,V?RAISE \?CCL3
ICALL PERFORM,V?OPEN,TRAP-DOOR
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
EQUAL? HERE,LIVING-ROOM \?CCL5
CALL OPEN-CLOSE,PRSO,STR?230,STR?231
RSTACK
?CCL5: EQUAL? PRSA,V?LOOK-UNDER \?CCL9
EQUAL? HERE,LIVING-ROOM \?CCL9
FSET? TRAP-DOOR,OPENBIT \?CCL14
PRINTR "Du siehst eine wackelige Treppe, die in die Dunkelheit f%uhrt."
?CCL14: PRINTR "Sie ist geschlossen."
?CCL9: EQUAL? HERE,CELLAR \FALSE
EQUAL? PRSA,V?UNLOCK,V?OPEN \?CCL19
FSET? TRAP-DOOR,OPENBIT /?CCL19
PRINTR "Die T%ur ist von oben abgeschlossen."
?CCL19: EQUAL? PRSA,V?CLOSE \?CCL23
FSET? TRAP-DOOR,OPENBIT /?CCL23
FCLEAR TRAP-DOOR,TOUCHBIT
FCLEAR TRAP-DOOR,OPENBIT
PRINTR "Die T%ur geht zu und und verschlie%st sich."
?CCL23: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
.FUNCT CELLAR-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTR "Du bist in einem dunklen und muffigen Keller mit einem schmalen Durchgang nach Norden und einem niedrigen Tunnel nach S%uden. Im Westen ist das Ende einer steilen Metallrampe, die nicht erklimmbar ist."
?CCL3: EQUAL? RARG,M-ENTER \FALSE
FSET? TRAP-DOOR,OPENBIT \FALSE
FSET? TRAP-DOOR,TOUCHBIT /FALSE
FCLEAR TRAP-DOOR,OPENBIT
FSET TRAP-DOOR,TOUCHBIT
PRINTI "Die Fallt%ur kracht zu, und du h%orst, da%s jemand sie verriegelt."
CRLF
CRLF
RTRUE
.FUNCT CHIMNEY-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "Der Kamin geht nach "
EQUAL? HERE,KITCHEN \?CCL6
PRINTI "unten"
JUMP ?CND4
?CCL6: PRINTI "oben"
?CND4: PRINTR " und sieht erklimmbar aus."
.FUNCT UP-CHIMNEY-FUNCTION:ANY:0:0,F
FIRST? WINNER >F /?CCL3
PRINTI "Mit leeren H%anden nach oben gehen ist keine gute Idee."
CRLF
RFALSE
?CCL3: NEXT? F >F \?PRD7
NEXT? F /?CCL5
?PRD7: IN? LAMP,WINNER \?CCL5
FSET? TRAP-DOOR,OPENBIT /?CND10
FCLEAR TRAP-DOOR,TOUCHBIT
?CND10: RETURN KITCHEN
?CCL5: PRINTI "Mit dem, was du da schleppst, kannst du da nicht hinauf."
CRLF
RFALSE
.FUNCT TRAP-DOOR-EXIT:ANY:0:0
ZERO? RUG-MOVED /?CCL3
FSET? TRAP-DOOR,OPENBIT \?CCL6
RETURN CELLAR
?CCL6: PRINTI "Die Fallt%ur ist geschlossen."
CRLF
ICALL2 THIS-IS-IT,TRAP-DOOR
RFALSE
?CCL3: PRINTI "You can't go that way."
CRLF
RFALSE
.FUNCT RUG-FCN:ANY:0:0
EQUAL? PRSA,V?RAISE \?CCL3
PRINTI "Der Teppich ist zu schwer, um ihn aufzuheben"
ZERO? RUG-MOVED /?CCL6
PRINTR "."
?CCL6: PRINTR ", aber beim Versuchen hast du gemerkt, da%s darunter eine Unebenheit ist."
?CCL3: EQUAL? PRSA,V?PUSH,V?MOVE \?CCL8
ZERO? RUG-MOVED /?CCL11
PRINTR "Nachdem du vorher den Teppich weggezogen hast, findest du es jetzt unm%oglich ihn zur%uckzuziehen."
?CCL11: PRINTI "Mit gr%o%ster Anstrengung ist der Teppich aus dem Weg gezerrt. Die staubige Oberfl%ache einer geschlossenen Fallt%ure kommt zum Vorschein."
CRLF
FCLEAR TRAP-DOOR,INVISIBLE
ICALL2 THIS-IS-IT,TRAP-DOOR
SET 'RUG-MOVED,TRUE-VALUE
RETURN RUG-MOVED
?CCL8: EQUAL? PRSA,V?TAKE \?CCL13
PRINTR "Der Teppich ist %au%serst schwer und man kann ihn nicht tragen."
?CCL13: EQUAL? PRSA,V?LOOK-UNDER \?CCL15
ZERO? RUG-MOVED \?CCL15
FSET? TRAP-DOOR,OPENBIT /?CCL15
PRINTR "Unter dem Teppich ist eine geschlossene Fallt%ur. Wenn du den Teppich losl%a%st, ist die Fallt%ur wieder versteckt."
?CCL15: EQUAL? PRSA,V?CLIMB-ON \FALSE
ZERO? RUG-MOVED \?CCL23
FSET? TRAP-DOOR,OPENBIT /?CCL23
PRINTR "W%ahrend du da sitzt bemerkst du eine Unebenheit darunter. Um nicht unbequem zu sitzen, stehst du wieder auf."
?CCL23: PRINTR "Ich nehme an, da%s du denkst, es w%are ein fliegender Teppich?"
.FUNCT AXE-F:ANY:0:0
ZERO? TROLL-FLAG \FALSE
CALL WEAPON-FUNCTION,AXE,TROLL
RSTACK
.FUNCT STILETTO-FUNCTION:ANY:0:0
CALL WEAPON-FUNCTION,STILETTO,THIEF
RSTACK
.FUNCT WEAPON-FUNCTION:ANY:2:2,W,V
IN? V,HERE \FALSE
EQUAL? PRSA,V?TAKE \FALSE
IN? W,V /TRUE
ICALL2 DER-NOM-CAP-PRINT,W
PRINTR " scheint gl%uhend hei%s. Du kannst es nicht in der Hand halten."
.FUNCT TROLL-FCN:ANY:0:1,MODE
EQUAL? PRSA,V?TELL \?CCL3
SET 'P-CONT,FALSE-VALUE
PRINTR "Der Troll ist nicht der ideale Gespr%achspartner."
?CCL3: EQUAL? MODE,F-BUSY? \?CCL5
IN? AXE,TROLL /FALSE
IN? AXE,HERE \?CCL10
CALL2 ZPROB,75
ZERO? STACK /?CCL10
FSET AXE,NDESCBIT
FCLEAR AXE,WEAPONBIT
MOVE AXE,TROLL
PUTP TROLL,P?LDESC,STR?73
IN? TROLL,HERE \TRUE
PRINTR "Der Troll holt sich seine Waffe zur%uck. Er ist b%ose und besch%amt. Er scheint sich mit dir an binden zu wollen."
?CCL10: IN? TROLL,HERE \FALSE
PUTP TROLL,P?LDESC,STR?232
PRINTR "Der jetzt entwaffnete Troll kriecht vor Furcht in die Ecke und bittet mit heiserer Trollstimme um sein Leben."
?CCL5: EQUAL? MODE,F-DEAD \?CCL19
IN? AXE,TROLL \?CND20
MOVE AXE,HERE
FCLEAR AXE,NDESCBIT
FSET AXE,WEAPONBIT
?CND20: SET 'TROLL-FLAG,TRUE-VALUE
RETURN TROLL-FLAG
?CCL19: EQUAL? MODE,F-UNCONSCIOUS \?CCL23
FCLEAR TROLL,FIGHTBIT
IN? AXE,TROLL \?CND24
MOVE AXE,HERE
FCLEAR AXE,NDESCBIT
FSET AXE,WEAPONBIT
?CND24: PUTP TROLL,P?LDESC,STR?233
SET 'TROLL-FLAG,TRUE-VALUE
RETURN TROLL-FLAG
?CCL23: EQUAL? MODE,F-CONSCIOUS \?CCL27
IN? TROLL,HERE \?CND28
FSET TROLL,FIGHTBIT
PRINTI "Der Troll r%uhrt sich und nimmt schnell eine Kampfstellung ein."
CRLF
?CND28: IN? AXE,TROLL \?CCL32
PUTP TROLL,P?LDESC,STR?73
JUMP ?CND30
?CCL32: IN? AXE,TROLL-ROOM \?CCL34
FSET AXE,NDESCBIT
FCLEAR AXE,WEAPONBIT
MOVE AXE,TROLL
PUTP TROLL,P?LDESC,STR?73
JUMP ?CND30
?CCL34: PUTP TROLL,P?LDESC,STR?234
?CND30: SET 'TROLL-FLAG,FALSE-VALUE
RETURN TROLL-FLAG
?CCL27: EQUAL? MODE,F-FIRST? \?CCL36
RANDOM 100
GRTR? 33,STACK \FALSE
FSET TROLL,FIGHTBIT
SET 'P-CONT,FALSE-VALUE
RTRUE
?CCL36: ZERO? MODE \FALSE
EQUAL? PRSA,V?EXAMINE \?CCL44
GETP TROLL,P?LDESC
PRINT STACK
CRLF
RTRUE
?CCL44: EQUAL? PRSA,V?GIVE,V?THROW \?PRD48
ZERO? PRSO /?PRD48
EQUAL? PRSI,TROLL /?CTR45
?PRD48: EQUAL? PRSA,V?MUNG,V?MOVE,V?TAKE \?CCL46
?CTR45: ICALL2 AWAKEN,TROLL
EQUAL? PRSA,V?GIVE,V?THROW \?CCL54
EQUAL? PRSO,AXE \?CCL57
IN? AXE,WINNER \?CCL57
PRINTI "Der Troll kratzt sich verwirrt am Kopf, dann nimmt er die Axt auf."
CRLF
FSET TROLL,FIGHTBIT
MOVE AXE,TROLL
RTRUE
?CCL57: EQUAL? PRSO,TROLL,AXE \?CND55
PRINTI "Du m%u%stest "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zuerst holen, aber das scheint unm%oglich."
RTRUE
?CND55: EQUAL? PRSA,V?THROW \?CCL63
PRINTI "Der Troll, der ungemein sportlich ist, f%angt "
ICALL2 DER-ACC-PRINT,PRSO
JUMP ?CND61
?CCL63: PRINTI "Der Troll, der keinen gro%sen Stolz hat, akzeptiert das Geschenk"
?CND61: RANDOM 100
GRTR? 20,STACK \?CCL66
EQUAL? PRSO,KNIFE,SWORD,AXE \?CCL66
ICALL2 REMOVE-CAREFULLY,PRSO
PRINTI " und fri%st "
ICALL2 PRONOUN-ACC-PRINT,PRSO
PRINTI " mit Appetit. Armer Troll, er stirbt an einer inneren Blutung und sein Gerippe verschwindet in einem b%osen schwarzen Nebel."
CRLF
ICALL2 REMOVE-CAREFULLY,TROLL
GETP TROLL,P?ACTION
ICALL STACK,F-DEAD
SET 'TROLL-FLAG,TRUE-VALUE
RETURN TROLL-FLAG
?CCL66: EQUAL? PRSO,KNIFE,SWORD,AXE \?CCL70
MOVE PRSO,HERE
PRINTI " und da er momentan ges%attigt ist, wirft er "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zur%uck. Gott sei Dank hat der Troll kein Wurftalent und "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " f%allt auf die Erde. Er sieht nicht sehr gl%ucklich aus."
CRLF
FSET TROLL,FIGHTBIT
RTRUE
?CCL70: PRINTI " und da er kein gro%ser Feinschmecker ist, fri%st er es gierig."
CRLF
CALL2 REMOVE-CAREFULLY,PRSO
RSTACK
?CCL54: EQUAL? PRSA,V?MOVE,V?TAKE \?CCL72
PRINTR "Der Troll spuckt dir ins Gesicht, zischt in einem recht primitiven Dialekt: %>N%achstes Mal mehr Gl%uck.%<"
?CCL72: EQUAL? PRSA,V?MUNG \FALSE
PRINTR "Der Troll lacht %uber deine hilflose Geste."
?CCL46: EQUAL? PRSA,V?LISTEN \?CCL76
PRINTR "Hier und da sagt der Troll mit seiner heiseren Trollstimme etwas, das wohl beleidigend ist."
?CCL76: ZERO? TROLL-FLAG /FALSE
EQUAL? PRSA,V?HELLO \FALSE
PRINTR "Leider kann der Troll dich nicht h%oren."
.FUNCT LEAVES-APPEAR:ANY:0:0
FSET? GRATE,OPENBIT /FALSE
ZERO? GRATE-REVEALED \FALSE
EQUAL? PRSA,V?TAKE,V?MOVE \?CCL7
PRINTI "Beim St%obern im Bl%atterhaufen kommt ein Gitter zum Vorschein."
CRLF
JUMP ?CND5
?CCL7: PRINTI "Als die Bl%atter aus dem Weg sind, zeigt sich ein Gitter."
CRLF
?CND5: FCLEAR GRATE,INVISIBLE
SET 'GRATE-REVEALED,TRUE-VALUE
RFALSE
.FUNCT LEAF-PILE:ANY:0:0
EQUAL? PRSA,V?COUNT \?CCL3
PRINTR "Es gibt hier 69.105 Bl%atter."
?CCL3: EQUAL? PRSA,V?BURN \?CCL5
ICALL1 LEAVES-APPEAR
ICALL2 REMOVE-CAREFULLY,PRSO
IN? PRSO,HERE \?CCL8
PRINTR "Die Bl%atter brennen."
?CCL8: CALL2 JIGS-UP,STR?235
RSTACK
?CCL5: EQUAL? PRSA,V?CUT \?CCL10
PRINTI "Du stocherst in den Bl%attern herum und machst eine beachtliche Schweinerei."
CRLF
ICALL1 LEAVES-APPEAR
RTRUE
?CCL10: EQUAL? PRSA,V?TAKE,V?MOVE \?CCL12
EQUAL? PRSA,V?MOVE \?CND13
PRINTI "Geschafft."
CRLF
?CND13: ZERO? GRATE-REVEALED \FALSE
ICALL1 LEAVES-APPEAR
EQUAL? PRSA,V?TAKE /FALSE
RTRUE
?CCL12: EQUAL? PRSA,V?LOOK-UNDER \FALSE
ZERO? GRATE-REVEALED \FALSE
PRINTR "Unter dem Bl%atterhaufen ist ein Gitter. Wenn du die Bl%atter fallen l%a%st, ist das Gitter wieder versteckt."
.FUNCT CLEARING-FCN:ANY:1:1,RARG
EQUAL? RARG,M-ENTER \?CCL3
ZERO? GRATE-REVEALED \FALSE
FSET GRATE,INVISIBLE
RTRUE
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du stehst auf einer Lichtung, und ein Wald umgibt dich von allen Seiten. Ein Pfad f%uhrt nach S%uden."
FSET? GRATE,OPENBIT \?CCL11
CRLF
PRINTR "Da befindet sich ein offenes Gitter, das in die Dunkelheit hinabf%uhrt."
?CCL11: ZERO? GRATE-REVEALED /?CND9
CRLF
PRINTR "Da ist ein Gitter, das Fest im Boden befestigt ist."
?CND9: CRLF
RTRUE
.FUNCT MAZE-11-FCN:ANY:1:1,RARG
EQUAL? RARG,M-ENTER \?CCL3
FCLEAR GRATE,INVISIBLE
RTRUE
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist in einem kleinen Zimmer bei dem Irrgarten. Es gibt hier in der N%ahe kleine verwirrende G%ange."
CRLF
FSET? GRATE,OPENBIT \?CCL8
PRINTR "%Uber dir ist ein offenes Gitter, durch das Sonnenlicht hereinflutet."
?CCL8: ZERO? GRUNLOCK /?CCL10
PRINTR "%Uber dir ist ein Gitter."
?CCL10: PRINTR "%Uber dir ist ein Gitter, das mit einem Schlo%s, das aus einem Totenkopf und Gebeinen gemacht ist, verschlossen ist."
.FUNCT GRATE-FUNCTION:ANY:0:0
EQUAL? PRSA,V?OPEN \?CCL3
EQUAL? PRSI,KEYS \?CCL3
ICALL PERFORM,V?UNLOCK,GRATE,KEYS
RTRUE
?CCL3: EQUAL? PRSA,V?LOCK \?CCL7
EQUAL? HERE,GRATING-ROOM \?CCL10
ZERO? GRUNLOCK /?CCL13
PRINTR "Das Gitter wird verschlossen."
?CCL13: PRINTR "Das Gitter ist schon verschlossen."
?CCL10: EQUAL? HERE,GRATING-CLEARING \FALSE
PRINTR "Du kannst es von innen nicht verschlie%sen."
?CCL7: EQUAL? PRSA,V?UNLOCK \?CCL17
EQUAL? PRSO,GRATE \?CCL17
EQUAL? HERE,GRATING-ROOM \?CCL22
EQUAL? PRSI,KEYS \?CCL22
ZERO? GRUNLOCK /?CCL27
PRINTI "Das Gitter ist schon aufgeschlo%sen."
CRLF
JUMP ?CND25
?CCL27: PRINTI "Das Gitter wird aufgeschlo%sen."
CRLF
?CND25: SET 'GRUNLOCK,TRUE-VALUE
RETURN GRUNLOCK
?CCL22: EQUAL? HERE,GRATING-CLEARING \?CCL29
EQUAL? PRSI,KEYS \?CCL29
PRINTR "Du kannst das Schlo%s von hier aus nicht erreichen."
?CCL29: EQUAL? HERE,GRATING-ROOM \?CCL33
EQUAL? PRSI,HANDS \?CCL33
PRINTR "You can't unlock it with your hands."
?CCL33: PRINTI "Du kannst das Gitter nicht mit "
ICALL2 DER-DAT-PRINT,PRSI
PRINTR " aufschlie%sen?"
?CCL17: EQUAL? PRSA,V?PICK \?CCL37
PRINTR "Du kannst das Schlo%s nicht knacken."
?CCL37: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL39
ZERO? GRUNLOCK /?CCL42
EQUAL? HERE,CLEARING \?CCL45
PUSH STR?237
JUMP ?CND43
?CCL45: PUSH STR?238
?CND43: ICALL OPEN-CLOSE,GRATE,STACK,STR?236
FSET? GRATE,OPENBIT \?CCL48
EQUAL? HERE,CLEARING /?CND49
ZERO? GRATE-REVEALED \?CND49
PRINTI "Ein Haufen Bl%atter f%allt auf deinen Kopf und auf die Erde."
CRLF
SET 'GRATE-REVEALED,TRUE-VALUE
MOVE LEAVES,HERE
?CND49: FSET GRATING-ROOM,ONBIT
RTRUE
?CCL48: FCLEAR GRATING-ROOM,ONBIT
RTRUE
?CCL42: PRINTR "Das Gitter ist verschlo%sen."
?CCL39: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,GRATE \FALSE
GETP PRSO,P?SIZE
GRTR? STACK,20 \?CCL59
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
PRINTR " pa%st nicht durch das Gitter."
?CCL59: MOVE PRSO,GRATING-ROOM
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTR " verschwindet durch das Gitter in die Dunkelheit, die darunter herrscht."
.FUNCT MAZE-DIODES:ANY:0:0
PRINTI "Wenn dieser Tunnel das n%achste Zimmer erreicht, kannst du ihn nicht mehr als R%uckweg benutzen."
CRLF
CRLF
EQUAL? HERE,MAZE-2 \?CCL3
RETURN MAZE-4
?CCL3: EQUAL? HERE,MAZE-7 \?CCL5
RETURN DEAD-END-1
?CCL5: EQUAL? HERE,MAZE-9 \?CCL7
RETURN MAZE-11
?CCL7: EQUAL? HERE,MAZE-12 \FALSE
RETURN MAZE-5
.FUNCT RUSTY-KNIFE-FCN:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
IN? SWORD,WINNER \FALSE
PRINTI "Als du das rostige Messer anfa%st, blitzt dein Schwert kurz mit einem einem blendenden blauen Licht auf."
CRLF
RFALSE
?CCL3: EQUAL? PRSI,RUSTY-KNIFE \?PRD10
EQUAL? PRSA,V?ATTACK /?CCL8
?PRD10: EQUAL? PRSA,V?SWING \FALSE
EQUAL? PRSO,RUSTY-KNIFE \FALSE
ZERO? PRSI /FALSE
?CCL8: ICALL2 REMOVE-CAREFULLY,RUSTY-KNIFE
CALL2 JIGS-UP,STR?239
RSTACK
.FUNCT KNIFE-F:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
FCLEAR ATTIC-TABLE,NDESCBIT
RFALSE
.FUNCT SKELETON:ANY:0:0
EQUAL? PRSA,V?MOVE,V?RUB,V?TAKE /?CCL3
EQUAL? PRSA,V?LOWER,V?RAISE,V?PUSH /?CCL3
EQUAL? PRSA,V?KISS,V?KICK,V?ATTACK \FALSE
?CCL3: PRINTI "Ein Geist erscheint in dem Zimmer und ist entsetzt %uber deine Sch%andung der Leiche eines Abenteuererkollegen. Er verflucht deine Wertsachen, und verbannt sie in das Land der lebendigen Toten. Der Geist verschwindet unter einem Schwall von ordin%aren Ausdr%ucken. "
CRLF
ICALL ROB,HERE,LAND-OF-LIVING-DEAD,100
ICALL ROB,ADVENTURER,LAND-OF-LIVING-DEAD
RTRUE
.FUNCT TORCH-OBJECT:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "Die Fackel brennt."
?CCL3: EQUAL? PRSA,V?POUR-ON \?CCL5
EQUAL? PRSI,TORCH \?CCL5
PRINTR "Das Wasser verdampft bevor es mit der Fackel in Ber%uhrung kommt."
?CCL5: EQUAL? PRSA,V?LAMP-OFF \FALSE
FSET? PRSO,ONBIT \FALSE
PRINTR "Du verbrennst dir beinahe die Hand, als du versuchst, die Flamme zu l%oschen."
.FUNCT MIRROR-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist in einem viereckigen Zimmer mit hohen Decken. An der S%udwand ist ein riesiger Spiegel, der die ganze Wand einnimmt. Es gibt Ausg%ange an den anderen drei Seiten des Zimmers."
CRLF
ZERO? MIRROR-MUNG /FALSE
PRINTR "Leider ging der Spiegel durch deine Bl%odheit kaputt."
.FUNCT MIRROR-MIRROR:ANY:0:0,RM2,L1,L2,N
SET 'RM2,MIRROR-ROOM-2
ZERO? MIRROR-MUNG \?CCL3
EQUAL? PRSA,V?RUB \?CCL3
ZERO? PRSI /?CND6
EQUAL? PRSI,HANDS /?CND6
PRINTI "Du f%uhlst ein leichtes Kribbeln, das von "
ICALL2 DER-ACC-PRINT,PRSI
PRINTR " ausgeht."
?CND6: EQUAL? HERE,RM2 \?CND10
SET 'RM2,MIRROR-ROOM-1
?CND10: FIRST? HERE >L1 /?BOGUS12
?BOGUS12: FIRST? RM2 >L2 /?PRG14
?PRG14: ZERO? L1 /?PRG19
NEXT? L1 >N /?BOGUS18
?BOGUS18: MOVE L1,RM2
SET 'L1,N
JUMP ?PRG14
?PRG19: ZERO? L2 /?REP20
NEXT? L2 >N /?BOGUS23
?BOGUS23: MOVE L2,HERE
SET 'L2,N
JUMP ?PRG19
?REP20: ICALL GOTO,RM2,FALSE-VALUE
PRINTR "Ein Grollen ert%ont aus der Tiefe, so da%s der Raum bebt."
?CCL3: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL25
ZERO? MIRROR-MUNG /?CCL28
PRINTR "Der Spiegel ist in viele Scherben zerbrochen."
?CCL28: PRINTR "Eine h%a%sliche Person starrt aus dem Spiegel zur%uck."
?CCL25: EQUAL? PRSA,V?TAKE \?CCL30
PRINTR "Der Spiegel ist mehrmals so gro%s wie du. Gib's auf!"
?CCL30: EQUAL? PRSA,V?ATTACK,V?THROW,V?MUNG \FALSE
ZERO? MIRROR-MUNG /?CCL35
PRINTR "Hast du denn nicht schon genug Schaden angerichtet?"
?CCL35: SET 'MIRROR-MUNG,TRUE-VALUE
SET 'LUCKY,FALSE-VALUE
PRINTR "Du hast den Spiegel zerbrochen. Ich hoffe, du hast sieben Jahre Gl%uck zur Hand."
.FUNCT TORCH-ROOM-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Dies ist ein gro%ser Raum, in dessen Mitte sich ein kleiner Schacht befindet, der durch den Fu%sboden in die Dunkelheit verschwindet. Nach Westen und Norden gibt es Ausg%ange von diesem Zimmer. %Uber dem Schacht hat man ein Metallgeh%ause gebaut, an dem eine schwere, eiserne Kette befestigt ist. An dem anderen Ende der Kette h%angt ein Korb."
CRLF
ZERO? DOME-FLAG /FALSE
PRINTR "Ein Seil h%angt von dem Gel%ander runter und endet 3 Meter %uber deinem Kopf. "
.FUNCT DOME-ROOM-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist am Rand einer gro%sen Kuppel, die die Decke der Raumes darunter formt. Ein h%olzernes Gel%ander, das die Kuppel umgibt, besch%utzt dich vor dem Absturz in einen steilen Abgrund."
CRLF
ZERO? DOME-FLAG /FALSE
PRINTR "Von dem Gel%ander h%angt ein Seil, das etwa 3 Meter %uber dem Boden endet."
?CCL3: EQUAL? RARG,M-ENTER \FALSE
ZERO? DEAD /?CCL11
PRINTI "Wenn du die Kuppel betrittst, f%uhlst du einen starken Sog, wie von einem Wind, der dich %uber das Gel%ander und nach unten rei%st."
CRLF
MOVE WINNER,TORCH-ROOM
SET 'OHERE,FALSE-VALUE
SET 'HERE,TORCH-ROOM
RTRUE
?CCL11: EQUAL? PRSA,V?LEAP \FALSE
CALL2 JIGS-UP,STR?240
RSTACK
.FUNCT LLD-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist au%serhalb eines riesigen Tores mit der Aufschrift:
Gebt auf jegliche Hoffnung Ihr,
die Ihr hier eintretet!
Das Tor ist ge%offnet. Gro%se Trostlosigkeit und ein Haufen von zerquetschten K%orpern breitet sich vor dir aus. Tausende von Stimmen, die von einem schrecklichen Schicksal klagen, ert%onen."
CRLF
ZERO? LLD-FLAG \FALSE
ZERO? DEAD \FALSE
PRINTR "Der Eintritt durch das Tor ist von b%osen Geistern versperrt, die bei deinem Versuch Eintritt zu gewinnen, nur grinsen."
?CCL3: EQUAL? RARG,M-BEG \?CCL10
EQUAL? PRSA,V?EXORCISE \?CCL13
ZERO? LLD-FLAG \FALSE
IN? BELL,WINNER \?CCL19
IN? BOOK,WINNER \?CCL19
IN? CANDLES,WINNER \?CCL19
PRINTR "Du mu%st diese Zeremonie durchf%uhren."
?CCL19: PRINTR "F%ur eine Austreibung bist du nicht vorbereitet."
?CCL13: ZERO? LLD-FLAG \?CCL24
EQUAL? PRSA,V?RING \?CCL24
EQUAL? PRSO,BELL \?CCL24
SET 'XB,TRUE-VALUE
ICALL2 REMOVE-CAREFULLY,BELL
ICALL2 THIS-IS-IT,HOT-BELL
MOVE HOT-BELL,HERE
PRINTI "Die Glocke wird pl%otzlich gl%uhend hei%s und f%allt zu Boden. Die Geister, als w%aren sie versteinert, h%oren mit dem Gejammer auf und drehen sich dir zu. Auf ihren fahlen Gesichtern formt sich der Ausdruck einer langvergessenen Furcht."
CRLF
IN? CANDLES,WINNER \?CND28
PRINTI "In deiner Verwirrung fallen die Kerzen auf den Boden (und sie sind aus)."
CRLF
MOVE CANDLES,HERE
FCLEAR CANDLES,ONBIT
CALL2 INT,I-CANDLES
PUT STACK,0,0
?CND28: CALL QUEUE,I-XB,6
PUT STACK,0,1
CALL QUEUE,I-XBH,20
PUT STACK,0,1
RTRUE
?CCL24: ZERO? XC /FALSE
EQUAL? PRSA,V?READ \FALSE
EQUAL? PRSO,BOOK \FALSE
ZERO? LLD-FLAG \FALSE
PRINTI "Jedes Wort des Gebetes hallt in einem ohrenbet%aubenden Durcheinander durch den Saal. Als die letzten Worte verhallen, spricht eine laute und befehlende Stimme: %>Weg mit Euch, Ihr Biester!%< Ein herzzerrei%sender Schrei f%ullt die H%ohle, und die Geister, eine h%ohere Macht versp%uren fliehen durch die W%ande."
CRLF
ICALL2 REMOVE-CAREFULLY,GHOSTS
SET 'LLD-FLAG,TRUE-VALUE
CALL2 INT,I-XC
PUT STACK,0,0
RTRUE
?CCL10: EQUAL? RARG,M-END \FALSE
ZERO? XB /FALSE
IN? CANDLES,WINNER \FALSE
FSET? CANDLES,ONBIT \FALSE
ZERO? XC \FALSE
SET 'XC,TRUE-VALUE
PRINTI "Die Flammen flackern wild und scheinen zu tanzen. Die Erde unter dir zittert, und deine Knie drohen aufzugeben. Die Geister verzweifeln an deiner %uberirdischen Kraft."
CRLF
CALL2 INT,I-XB
PUT STACK,0,0
CALL QUEUE,I-XC,3
PUT STACK,0,1
RTRUE
.FUNCT I-XB:ANY:0:0
ZERO? XC \?PEN1
EQUAL? HERE,ENTRANCE-TO-HADES \?PEN1
PRINTI "Der Bann dieser Zeremonie ist gebrochen, und die Geister, die zwar am%usiert, aber doch von deinem tolpatschigen Versuch gest%ort sind, nehmen ihr schreckliches Geheule wieder auf."
CRLF
?PEN1: SET 'XB,FALSE-VALUE
RETURN XB
.FUNCT I-XC:ANY:0:0
SET 'XC,FALSE-VALUE
CALL1 I-XB
RSTACK
.FUNCT I-XBH:ANY:0:0
ICALL2 REMOVE-CAREFULLY,HOT-BELL
MOVE BELL,ENTRANCE-TO-HADES
EQUAL? HERE,ENTRANCE-TO-HADES \FALSE
PRINTR "Die Glocke scheint sich abgek%uhlt zu haben."
.FUNCT DAM-ROOM-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du stehst oben auf dem Hochwasserschutzdamm Nr.3. Er war wohl zu seiner Zeit eine gro%se Sehensw%urdigkeit. Es gibt hier Pfade nach Norden, S%uden und Westen und eine steile Abk%urzung. "
CRLF
ZERO? LOW-TIDE /?CCL6
ZERO? GATES-OPEN /?CCL6
PRINTI "Der Wasserstand hinter dem Damm ist niedrig. Die Schleusentore sind ge%offnet worden. Das Wasser braust durch den Damm flu%sabw%arts."
CRLF
JUMP ?CND4
?CCL6: ZERO? GATES-OPEN /?CCL10
PRINTI "Die Schleusentore sind ge%offnet. Wasser braust durch den Damm. Der Wasserstand hinter dem Damm ist immer noch hoch."
CRLF
JUMP ?CND4
?CCL10: ZERO? LOW-TIDE /?CCL12
PRINTI "Die Schleusentore sind geschlo%sen. Der Wasserstand in dem Reservoir ist niedrig, aber er steigt schnell."
CRLF
JUMP ?CND4
?CCL12: PRINTI "Die Schleusentore des Dammes sind geschlo%sen. Hinter dem Damm kann man ein gro%ses Reservoir sehen. Wasser flie%st wild %uber den seit langem unbenutzten Damm."
CRLF
?CND4: PRINTI "Es gibt hier eine Schalttafel, auf der eine gro%se Metallschraube angebracht ist. Direkt %uber der Schraube ist eine kleine gr%une Plastikblase"
ZERO? GATE-FLAG /?CND13
PRINTI ", die klar aufleuchtet"
?CND13: PRINTR "."
.FUNCT BOLT-F:ANY:0:0
EQUAL? PRSA,V?TURN \?CCL3
EQUAL? PRSI,WRENCH \?CCL6
ZERO? GATE-FLAG /?CCL9
FCLEAR RESERVOIR-SOUTH,TOUCHBIT
ZERO? GATES-OPEN /?CCL12
SET 'GATES-OPEN,FALSE-VALUE
FCLEAR LOUD-ROOM,TOUCHBIT
PRINTI "Die Schleusentore schlie%sen sich, und Wasser sammelt sich hinter dem Damm an."
CRLF
CALL QUEUE,I-RFILL,8
PUT STACK,0,1
CALL QUEUE,I-REMPTY,0
PUT STACK,0,1
RTRUE
?CCL12: SET 'GATES-OPEN,TRUE-VALUE
PRINTI "Die Schleusentore %offnen sich, und Wasser str%omt durch den Damm."
CRLF
CALL QUEUE,I-REMPTY,8
PUT STACK,0,1
CALL QUEUE,I-RFILL,0
PUT STACK,0,1
RTRUE
?CCL9: PRINTR "The bolt won't turn with your best effort."
?CCL6: PRINTI "Die Schraube l%a%st sich mit "
ICALL2 DER-ACC-PRINT,PRSI
PRINTR " nicht drehen."
?CCL3: EQUAL? PRSA,V?TAKE \?CCL14
CALL1 INTEGRAL-PART
RSTACK
?CCL14: EQUAL? PRSA,V?OIL \FALSE
PRINTR "O nein! Es sieht so aus, als ob die Tube nicht %Ol, sondern Klebstoff enthalten hat. Die Schraube wird dadurch nicht einfacher."
.FUNCT BUBBLE-F:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
CALL1 INTEGRAL-PART
RSTACK
.FUNCT INTEGRAL-PART:ANY:0:0
PRINTR "Es ist ein wichtiger Bestandteil der Schalttafel."
.FUNCT I-RFILL:ANY:0:0
FSET RESERVOIR,NONLANDBIT
FCLEAR RESERVOIR,RLANDBIT
FCLEAR DEEP-CANYON,TOUCHBIT
FCLEAR LOUD-ROOM,TOUCHBIT
IN? TRUNK,RESERVOIR \?PEN1
FSET TRUNK,INVISIBLE
?PEN1: SET 'LOW-TIDE,FALSE-VALUE
EQUAL? HERE,RESERVOIR \?CCL5
LOC WINNER
FSET? STACK,VEHBIT \?CCL8
PRINTR "Das Boot hebt sich leicht aus dem Schlamm und treibt auf dem Wasser des Reservoirs."
?CCL8: ICALL2 JIGS-UP,STR?241
RTRUE
?CCL5: EQUAL? HERE,DEEP-CANYON \?CCL10
PRINTR "Ein Ger%ausch, wie das von flie%sendem Wasser, kann von unten geh%ort werden."
?CCL10: EQUAL? HERE,LOUD-ROOM \?CCL12
PRINTI "Pl%otzlich f%ullt ein alarmierend lautes Gebr%ull den Raum. Voller Furcht kriechst du davon."
CRLF
CALL2 PICK-ONE,LOUD-RUNS
ICALL2 GOTO,STACK
RTRUE
?CCL12: EQUAL? HERE,RESERVOIR-NORTH,RESERVOIR-SOUTH \TRUE
PRINTR "Du merkst, da%s der Wasserstand so hoch ist, da%s man nicht mehr zu Fu%s weiterkommt."
.FUNCT I-REMPTY:ANY:0:0
FSET RESERVOIR,RLANDBIT
FCLEAR RESERVOIR,NONLANDBIT
FCLEAR DEEP-CANYON,TOUCHBIT
FCLEAR LOUD-ROOM,TOUCHBIT
FCLEAR TRUNK,INVISIBLE
SET 'LOW-TIDE,TRUE-VALUE
EQUAL? HERE,RESERVOIR \?CCL3
LOC WINNER
FSET? STACK,VEHBIT \?CCL3
PRINTR "Der Wasserstand hat sich so weit gemindert, da%s das Boot nicht mehr weiter schwimmen kann. Es sinkt in den Schlamm."
?CCL3: EQUAL? HERE,DEEP-CANYON \?CCL7
PRINTR "Das Get%ose von dem brausenden Wasser ist jetzt ruhiger."
?CCL7: EQUAL? HERE,RESERVOIR-NORTH,RESERVOIR-SOUTH \TRUE
PRINTR "Der Wasserstand ist hier recht niedrig, und du k%onntest hier leicht auf die andere Seite kommen."
.FUNCT BUTTON-F:ANY:0:0
EQUAL? PRSA,V?READ \?CCL3
PRINTR "Das kommt dir alles Spanisch vor."
?CCL3: EQUAL? PRSA,V?PUSH \FALSE
EQUAL? PRSO,BLUE-BUTTON \?CCL8
ZERO? WATER-LEVEL \?CCL11
FCLEAR LEAK,INVISIBLE
PRINTI "Da ist ein grollendes Ger%ausch, und ein Strom von Wasser scheint von der Ostwand in das Zimmer hereinzubrechen (scheinbar ein Rohr bruch)."
CRLF
SET 'WATER-LEVEL,1
CALL QUEUE,I-MAINT-ROOM,-1
PUT STACK,0,1
RTRUE
?CCL11: PRINTR "Der blaue Knopf scheint, blockiert zu sein."
?CCL8: EQUAL? PRSO,RED-BUTTON \?CCL13
PRINTI "Die Lichter im Raum gehen "
FSET? HERE,ONBIT \?CCL16
FCLEAR HERE,ONBIT
PRINTR "aus."
?CCL16: FSET HERE,ONBIT
PRINTR "an."
?CCL13: EQUAL? PRSO,BROWN-BUTTON \?CCL18
FCLEAR DAM-ROOM,TOUCHBIT
SET 'GATE-FLAG,FALSE-VALUE
PRINTR "Klick."
?CCL18: EQUAL? PRSO,YELLOW-BUTTON \FALSE
FCLEAR DAM-ROOM,TOUCHBIT
SET 'GATE-FLAG,TRUE-VALUE
PRINTR "Klick."
.FUNCT TOOL-CHEST-FCN:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "Die Werkzeugk%asten sind alle leer."
?CCL3: EQUAL? PRSA,V?PUT,V?OPEN,V?TAKE \?CCL5
ICALL2 REMOVE-CAREFULLY,TOOL-CHEST
PRINTR "Die K%asten sind so rostig und verrottet, das sie zerfallen, wenn du sie anfa%st."
?CCL5: EQUAL? PRSA,V?OPEN \FALSE
PRINTR "Die Werkzeugk%asten sind schon offen."
.FUNCT I-MAINT-ROOM:ANY:0:0,HERE?
EQUAL? HERE,MAINTENANCE-ROOM /?PRD1
PUSH 0
JUMP ?PRD2
?PRD1: PUSH 1
?PRD2: SET 'HERE?,STACK
ZERO? HERE? /?CND3
PRINTI "The water level here is now "
DIV WATER-LEVEL,2
GET DROWNINGS,STACK
PRINT STACK
CRLF
?CND3: INC 'WATER-LEVEL
LESS? WATER-LEVEL,14 /?CCL7
ICALL MUNG-ROOM,MAINTENANCE-ROOM,STR?251
CALL QUEUE,I-MAINT-ROOM,0
PUT STACK,0,1
ZERO? HERE? /TRUE
ICALL2 JIGS-UP,STR?252
RTRUE
?CCL7: IN? WINNER,INFLATED-BOAT \TRUE
EQUAL? HERE,MAINTENANCE-ROOM,DAM-ROOM,DAM-LOBBY \TRUE
ICALL2 JIGS-UP,STR?253
RTRUE
.FUNCT LEAK-FUNCTION:ANY:0:0
GRTR? WATER-LEVEL,0 \FALSE
EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL6
EQUAL? PRSO,PUTTY \?CCL6
CALL1 FIX-MAINT-LEAK
RSTACK
?CCL6: EQUAL? PRSA,V?PLUG \FALSE
EQUAL? PRSI,PUTTY \?CCL13
CALL1 FIX-MAINT-LEAK
RSTACK
?CCL13: CALL2 WITH-TELL,PRSI
RSTACK
.FUNCT FIX-MAINT-LEAK:ANY:0:0
SET 'WATER-LEVEL,-1
CALL QUEUE,I-MAINT-ROOM,0
PUT STACK,0,1
PRINTR "Durch ein Wunder der Zorkschen Technologie ist es dir gelungen, das Leck im Damm zu beheben."
.FUNCT PUTTY-FCN:ANY:0:0
EQUAL? PRSA,V?OIL \?PRD5
EQUAL? PRSI,PUTTY /?CCL3
?PRD5: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,PUTTY \FALSE
?CCL3: PRINTR "Das Allzweckschmierzeug dient nicht als Schmier%ol."
.FUNCT TUBE-FUNCTION:ANY:0:0
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSI,TUBE \?CCL3
PRINTR "Die Tube nimmt einfach nichts auf."
?CCL3: EQUAL? PRSA,V?SQUEEZE \FALSE
FSET? PRSO,OPENBIT \?CCL10
IN? PUTTY,PRSO \?CCL10
MOVE PUTTY,WINNER
PRINTR "Das widerliche Zeug quillt %uber deine ganze Hand."
?CCL10: FSET? PRSO,OPENBIT \?CCL14
PRINTR "Die Tube ist scheinbar leer."
?CCL14: PRINTR "Die Tube ist zu."
.FUNCT DAM-FUNCTION:ANY:0:0
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
PRINTR "Das klingt annehmbar, aber so geht es nicht."
?CCL3: EQUAL? PRSA,V?PLUG \FALSE
EQUAL? PRSI,HANDS \?CCL8
PRINTR "Bist du der kleine Gernegro%s, ja? Zu dumm, das ist ein gro%ser Damm."
?CCL8: PRINTI "Mit "
ICALL2 EIN-DAT-PRINT,PRSI
PRINTR "? Wei%st du wie gro%s der Damm ist? Du k%onntest h%ochstens ein winziges Leck damit stopfen."
.FUNCT WITH-TELL:ANY:1:1,OBJ
PRINTI "With "
ICALL2 EIN-DAT-PRINT,OBJ
PRINTR "?"
.FUNCT RESERVOIR-SOUTH-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
ZERO? LOW-TIDE /?CCL6
ZERO? GATES-OPEN /?CCL6
PRINTI "Du bist in einem l%anglichen Zimmer. Nach Norden lag fr%uher ein See. Aber, nachdem der Wasserstand gemindert wurde, gibt es hier blo%s einen breiten Bach, der durch die Mitte des Raumes flie%st."
JUMP ?CND4
?CCL6: ZERO? GATES-OPEN /?CCL10
PRINTI "Du bist in einem l%anglichen Zimmer. Nach Norden liegt ein gro%ser See. Er ist zu tief, ihn zu %uberqueren. Du merkst aber, da%s der Wassterstand sich rapide senkt. Es wird nicht lange dauern, bis du den See %uberqueren kannst."
JUMP ?CND4
?CCL10: ZERO? LOW-TIDE /?CCL12
PRINTI "Du bist in einem l%anglichen Zimmer. Nach Norden gibt es eine weite Fl%ache, die fr%uher ein Reservoir war, aber jetzt nur noch ein Flu%s ist. Du bemerkst aber, da%s der Wasserstand des Flu%ses sich rapide hebt, und da%s es bald unm%oglich sein wird, ihn zu %uberqueren."
JUMP ?CND4
?CCL12: PRINTI "Du bist in einem l%anglichen Raum am S%udufer eines gro%sen Sees, der viel zu tief und zu breit zum %Uberqueren ist."
?CND4: CRLF
PRINTR "Den Bach entlang f%uhrt ein Pfad nach Osten oder Westen, ein steiler Pfad, nach S%udwesten den Rand einer Spalte entlang und ein Pfad f%uhrt in eine Schlucht nach S%udosten."
.FUNCT RESERVOIR-FCN:ANY:1:1,RARG
EQUAL? RARG,M-END \?CCL3
LOC WINNER
FSET? STACK,VEHBIT /?CCL3
ZERO? GATES-OPEN \?CCL3
ZERO? LOW-TIDE /?CCL3
PRINTR "Du bemerkst, da%s der Wasserstand sich hier rapide hebt. Die Str%omungen werden auch st%arker. Hier zu bleiben, erscheint recht gef%ahrlich."
?CCL3: EQUAL? RARG,M-LOOK \FALSE
ZERO? LOW-TIDE /?CCL12
PRINTI "Du stehst da, wo einmal ein gro%ser See war, aber der ist jetzt ein gro%ser Schlammhaufen. Es gibt hier %>Ufer%< nach Norden und S%uden."
CRLF
CRLF
RTRUE
?CCL12: PRINTR "Du bist auf dem See. Nach Norden und S%uden kann man Str%ande sehen. Flu%saufw%arts flie%st ein kleiner Flu%s durch eine enge Rinne in den Felsen in den See hinein. Flu%sabw%arts kann man den Damm sehen."
.FUNCT RESERVOIR-NORTH-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
ZERO? LOW-TIDE /?CCL6
ZERO? GATES-OPEN /?CCL6
PRINTI "Du bist in einem grottenartigen Raum. Sein S%udteil war einmal ein See. Aber, mit dem geminderten Wasserstand, gibt es hier nur noch einen breiten Bach, der hier durchflie%st."
JUMP ?CND4
?CCL6: ZERO? GATES-OPEN /?CCL10
PRINTI "Du bist in einer weiten grottenartigen Gegend. Nach S%uden ist ein gro%ser See, dessen Wasserstand rapide zu fallen scheint."
JUMP ?CND4
?CCL10: ZERO? LOW-TIDE /?CCL12
PRINTI "Du bist in einer grottenartigen Gegend. Nach S%uden ist ein sehr breiter Strom. Der Wasserstand des Stroms steigt rapide, und es scheint, da%s es bald unm%oglich sein wird auf die andere Seite zu kommen."
JUMP ?CND4
?CCL12: PRINTI "Du bist in einem grottenartigen Raum auf der Nordseite eines gro%sen Sees."
?CND4: CRLF
PRINTR "Eine schleimige Treppe f%uhrt aus Raum nach Norden."
.FUNCT BOTTLE-FUNCTION:ANY:0:0,E?
EQUAL? PRSA,V?THROW \?CCL3
EQUAL? PRSO,BOTTLE \?CCL3
ICALL2 REMOVE-CAREFULLY,PRSO
SET 'E?,TRUE-VALUE
PRINTI "Die Flasche trifft die Wand und zerschellt."
CRLF
JUMP ?CND1
?CCL3: EQUAL? PRSA,V?MUNG \?CCL7
SET 'E?,TRUE-VALUE
ICALL2 REMOVE-CAREFULLY,PRSO
PRINTI "Eine brilliante Aktion, die die Flasche zerst%ort."
CRLF
JUMP ?CND1
?CCL7: EQUAL? PRSA,V?SHAKE \?CND1
FSET? PRSO,OPENBIT \?CND1
IN? WATER,PRSO \?CND1
SET 'E?,TRUE-VALUE
?CND1: ZERO? E? /?CCL15
IN? WATER,PRSO \?CCL15
PRINTI "Das Wasser spritzt auf den Boden und verdampft."
CRLF
ICALL2 REMOVE-CAREFULLY,WATER
RTRUE
?CCL15: ZERO? E? \TRUE
RFALSE
.FUNCT CYCLOPS-FCN:ANY:0:0,COUNT
SET 'COUNT,CYCLOWRATH
EQUAL? WINNER,CYCLOPS \?CCL3
ZERO? CYCLOPS-FLAG /?CCL6
PRINTR "Es hat keinen Sinn mit ihm zu sprechen. Er schl%aft fest."
?CCL6: EQUAL? PRSA,V?ODYSSEUS \?CCL8
SET 'WINNER,ADVENTURER
ICALL2 PERFORM,V?ODYSSEUS
RTRUE
?CCL8: PRINTR "Der Zyklop zieht das Essen der Unterhaltung vor."
?CCL3: ZERO? CYCLOPS-FLAG /?CCL10
EQUAL? PRSA,V?EXAMINE \?CCL13
PRINTR "Der Zyklop schl%aft wie ein Engel, wenn auch ein h%a%slicher."
?CCL13: EQUAL? PRSA,V?ATTACK,V?KICK,V?ALARM /?CCL15
EQUAL? PRSA,V?MUNG,V?BURN \FALSE
?CCL15: PRINTI "Der Zyklop g%ahnt und starrt das Ding an, das ihn aufgeweckt hat."
CRLF
SET 'CYCLOPS-FLAG,FALSE-VALUE
FSET CYCLOPS,FIGHTBIT
LESS? COUNT,0 \?CCL20
SUB 0,COUNT >CYCLOWRATH
RETURN CYCLOWRATH
?CCL20: SET 'CYCLOWRATH,COUNT
RETURN CYCLOWRATH
?CCL10: EQUAL? PRSA,V?EXAMINE \?CCL22
PRINTR "Der hungrige Zyklop steht am Fu%s der Treppe."
?CCL22: EQUAL? PRSA,V?GIVE \?CCL24
EQUAL? PRSI,CYCLOPS \?CCL24
EQUAL? PRSO,LUNCH \?CCL29
LESS? COUNT,0 /?CND30
ICALL2 REMOVE-CAREFULLY,LUNCH
PRINTI "Der Zyklop sagt: %>Ei, ei. Ich liebe scharfe Pepperoni! Aber, oooh, ich k%onnte erst mal was zu Trinken brauchen. Vielleicht k%onnte ich das Blut von 'diesem Ding' trinken%<. Aus dem listigen Aufleuchten seiner Augen kannst du schlie%sen, da%s du gemeint bist."
CRLF
SUB 0,COUNT
CALL MIN,-1,STACK >CYCLOWRATH
?CND30: CALL QUEUE,I-CYCLOPS,-1
PUT STACK,0,1
RTRUE
?CCL29: EQUAL? PRSO,WATER /?CTR32
EQUAL? PRSO,BOTTLE \?CCL33
IN? WATER,BOTTLE \?CCL33
?CTR32: LESS? COUNT,0 \?CCL40
ICALL2 REMOVE-CAREFULLY,WATER
MOVE BOTTLE,HERE
FSET BOTTLE,OPENBIT
FCLEAR CYCLOPS,FIGHTBIT
PRINTI "Der Zyklop nimmt die Flasche, pr%uft ihren Inhalt und trinkt das Wasser. Einen Augenblick sp%ater %offnet er seinen Mund zu einem G%ahnen, mit dem er dich beinahe verschluckt, dann schl%aft er fest ein. (Was hast du ihm denn blo%s in das Wasser geschmuggelt?)"
CRLF
SET 'CYCLOPS-FLAG,TRUE-VALUE
RETURN CYCLOPS-FLAG
?CCL40: PRINTR "Scheinbar ist der Zyklop nicht durstig und lehnt dein gro%sz%ugiges Angebot ab."
?CCL33: EQUAL? PRSO,GARLIC \?CCL42
PRINTR "Vielleicht ist der Zyklop hungrig, aber auch er kennt seine Grenzen."
?CCL42: PRINTR "Der Zyklop ist nicht so dumm, da%s er DAS essen w%urde!"
?CCL24: EQUAL? PRSA,V?MUNG,V?ATTACK,V?THROW \?CCL44
CALL QUEUE,I-CYCLOPS,-1
PUT STACK,0,1
EQUAL? PRSA,V?MUNG \?CCL47
PRINTR "%>Meinst du, da%s ich so dumm bin, wie mein Vater war?%< sagt er, als er dir ausweicht."
?CCL47: PRINTI "Der Zyklop zuckt die Achseln und beachtet deinen armseligen Versuch nicht weiter."
CRLF
EQUAL? PRSA,V?THROW \TRUE
MOVE PRSO,HERE
RTRUE
?CCL44: EQUAL? PRSA,V?TAKE \?CCL51
PRINTR "Es gef%allt dem Zyklopen nicht, da%s du ihn angreifst."
?CCL51: EQUAL? PRSA,V?TIE \?CCL53
PRINTR "Du kannst den Zyklopen nicht fesseln, obwohl er gefesselt zu sein scheint."
?CCL53: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "Du kannst seinen Magen knurren h%oren."
.FUNCT I-CYCLOPS:ANY:0:0
ZERO? CYCLOPS-FLAG \TRUE
ZERO? DEAD \TRUE
EQUAL? HERE,CYCLOPS-ROOM /?CCL7
CALL2 INT,I-CYCLOPS
PUT STACK,0,0
RTRUE
?CCL7: LESS? CYCLOWRATH,0 \?CCL13
SUB 0,CYCLOWRATH
JUMP ?CND11
?CCL13: PUSH CYCLOWRATH
?CND11: GRTR? STACK,5 \?CCL10
CALL2 INT,I-CYCLOPS
PUT STACK,0,0
CALL2 JIGS-UP,STR?254
RSTACK
?CCL10: LESS? CYCLOWRATH,0 \?CCL16
DEC 'CYCLOWRATH
JUMP ?CND14
?CCL16: INC 'CYCLOWRATH
?CND14: ZERO? CYCLOPS-FLAG \FALSE
LESS? CYCLOWRATH,0 \?CCL22
SUB 0,CYCLOWRATH
JUMP ?CND20
?CCL22: PUSH CYCLOWRATH
?CND20: SUB STACK,1
GET CYCLOMAD,STACK
PRINT STACK
CRLF
RTRUE
.FUNCT CYCLOPS-ROOM-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Dieser Raum hat einen Ausgang nach Nordwesten, und eine Treppe f%uhrt nach oben."
CRLF
ZERO? CYCLOPS-FLAG /?CCL6
ZERO? MAGIC-FLAG \?CCL6
PRINTR "Der Zyklop schl%aft selig am Fu%se der Treppe."
?CCL6: ZERO? MAGIC-FLAG /?CCL10
PRINTR "Die Ostwand, die fr%uher ganz war, zeigt jetzt eine zyklopenf%ormige %Offnung."
?CCL10: ZERO? CYCLOWRATH \?CCL12
PRINTR "Ein Zyklop, der aussieht, als w%are er bereit, G%aule zu verschlingen (viel eher als nur Abenteurer), blockiert die Treppe. Von seinem Gesundheitszustand und den Blutspuren an den W%anden, kannst du schlie%sen, da%s er nicht sehr freundlich ist, obwohle er Menschen liebt."
?CCL12: GRTR? CYCLOWRATH,0 \?CCL14
PRINTR "Der Zyklop steht in der Ecke und beobachtet dich scharf. Ich glaube nicht, da%s er dich mag. Er sieht sogar f%ur einen Zyklopen ausgesprochen hungrig aus."
?CCL14: LESS? CYCLOWRATH,0 \FALSE
PRINTR "Der Zyklop scheint, nachdem er die scharfen Pepperoni gefressen hat, nach Atem zu ringen. Seine flammenrote Zunge h%angt aus seinem menschengro%sen Maul."
?CCL3: EQUAL? RARG,M-ENTER \FALSE
ZERO? CYCLOWRATH /TRUE
CALL2 INT,I-CYCLOPS
PUT STACK,0,1
RTRUE
.FUNCT LOUD-ROOM-FCN:ANY:1:1,RARG,WRD
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Dies ist ein riesiges Zimmer, in dem man die Decke nicht von unten erkennen kann. Hier ist ein enger Durchgang von Osten nach Westen und eine Steintreppe f%uhrt nach oben."
ZERO? LOUD-FLAG \?CTR5
ZERO? GATES-OPEN \?CCL6
ZERO? LOW-TIDE /?CCL6
?CTR5: PRINTR " Der Raum ist in seiner Stille unheimlich."
?CCL6: PRINTR " Der Raum ist mit ohrenbet%aubendem L%arm gef%ullt. Das Get%ose scheint, von allen W%anden widerzuhallen. Es ist unm%oglich, hier auch nur zu denken."
?CCL3: EQUAL? RARG,M-END \?CCL12
ZERO? GATES-OPEN /?CCL12
ZERO? LOW-TIDE \?CCL12
PRINTI "Es ist unertr%aglich laut hier. Eine ohrenbet%aubendes Gebr%ull kommt von allen Seiten auf dich zu. Dein Kopf dr%ohnt ununterbrochen. Mit gr%o%ster Anstrengung verl%a%st du den Raum."
CRLF
CRLF
CALL2 PICK-ONE,LOUD-RUNS
ICALL2 GOTO,STACK
RFALSE
?CCL12: EQUAL? RARG,M-ENTER \FALSE
ZERO? LOUD-FLAG \FALSE
ZERO? GATES-OPEN \?CCL20
ZERO? LOW-TIDE \FALSE
?CCL20: ZERO? GATES-OPEN /?CCL26
ZERO? LOW-TIDE /FALSE
?CCL26: ICALL1 V-FIRST-LOOK
ZERO? P-CONT /?PRG31
PRINTI "Deine anderen Befehle sind in dem Gebr%ull verloren gegangen."
CRLF
SET 'P-CONT,FALSE-VALUE
?PRG31: ZERO? SUPER-BRIEF \?CND33
CRLF
?CND33: PRINTC 62
PUTB P-INBUF,1,0
READ P-INBUF,P-LEXV
GETB P-LEXV,P-LEXWORDS
ZERO? STACK \?CND35
PRINTI "Bitte?"
CRLF
JUMP ?PRG31
?CND35: GET P-LEXV,1 >WRD
EQUAL? WRD,W?LAUF,W?GEH,W?REN /?CTR38
EQUAL? WRD,W?LAUFE,W?GEHE,W?RENE \?CCL39
?CTR38: GET P-LEXV,3 >WRD
JUMP ?CND37
?CCL39: EQUAL? WRD,W?SAG \?CND37
GET P-LEXV,5 >WRD
?CND37: EQUAL? WRD,W?SAVE \?CCL45
ICALL1 V-SAVE
JUMP ?PRG31
?CCL45: EQUAL? WRD,W?WIEDERHERSTELLUNG \?CCL47
ICALL1 V-RESTORE
JUMP ?PRG31
?CCL47: EQUAL? WRD,W?AUFHOEREN,W?AUFH%OREN \?CCL49
ICALL1 V-QUIT
JUMP ?PRG31
?CCL49: EQUAL? WRD,W?W,W?WEST,W?WESTEN \?CCL51
CALL2 GOTO,ROUND-ROOM
RSTACK
?CCL51: EQUAL? WRD,W?O,W?OSTEN,W?OST \?CCL53
CALL2 GOTO,DAMP-CAVE
RSTACK
?CCL53: EQUAL? WRD,W?RAUF,W?RA \?CCL55
CALL2 GOTO,DEEP-CANYON
RSTACK
?CCL55: EQUAL? WRD,W?ECHO \?CCL57
SET 'LOUD-FLAG,TRUE-VALUE
FCLEAR BAR,SACREDBIT
PRINTI "Die Akustik in dem Raum %andert sich ein bi%schen."
CRLF
ZERO? SUPER-BRIEF \TRUE
CRLF
RTRUE
?CCL57: ICALL1 V-ECHO
JUMP ?PRG31
.FUNCT DEEP-CANYON-F:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist am S%udrand einer tiefen Schlucht. Durchg%ange f%uhren nach Osten, Nordwesten und S%udwesten. Eine Treppe f%uhrt nach unten."
ZERO? GATES-OPEN /?CCL6
ZERO? LOW-TIDE \?CCL6
PRINTR " Du kannst ein lautes Get%ose, wie das Brausen von Wasser von unten h%oren."
?CCL6: ZERO? GATES-OPEN \?CCL10
ZERO? LOW-TIDE /?CCL10
CRLF
RTRUE
?CCL10: PRINTR "Du kannst von unten herauf das Rauschen von Wasser h%oren."
.FUNCT THIEF-VS-ADVENTURER:ANY:1:1,HERE?,ROBBED?,WINNER-ROBBED?
ZERO? DEAD \?CCL2
EQUAL? HERE,TREASURE-ROOM /FALSE
?CCL2: ZERO? THIEF-HERE \?CCL6
ZERO? DEAD \?CCL9
ZERO? HERE? \?CCL9
RANDOM 100
GRTR? 30,STACK \?CCL9
IN? STILETTO,THIEF \FALSE
FCLEAR THIEF,INVISIBLE
PRINTI "Jemand, der einen gro%sen Sack tr%agt, lehnt hier gegen eine Wand. Er spricht kein Wort, aber es besteht kein Zweifel, da%s er sich nur %uber seine eigene Leiche von dem Sack trennen wird."
CRLF
SET 'THIEF-HERE,TRUE-VALUE
RTRUE
?CCL9: ZERO? HERE? /?CCL16
FSET? THIEF,FIGHTBIT \?CCL16
CALL2 WINNING?,THIEF
ZERO? STACK \?CCL16
PRINTI "Dein Gegner, der entscheidet, da%s Bescheidenheit auch eine Zier ist, entscheidet diesen kleinen Zwischenfall abzubrechen. Mit einem besch%amten Kopfnicken tritt er zur%uck ins Dunkel und verschwindet."
CRLF
FSET THIEF,INVISIBLE
FCLEAR THIEF,FIGHTBIT
ICALL1 RECOVER-STILETTO
RTRUE
?CCL16: ZERO? HERE? /?CCL21
FSET? THIEF,FIGHTBIT \?CCL21
RANDOM 100
GRTR? 90,STACK /FALSE
?CCL21: ZERO? HERE? /?CCL26
RANDOM 100
GRTR? 30,STACK \?CCL26
PRINTI "Der, der den gro%sen Sack tr%agt, ist gerade abgehauen. Er hatte die Nase voll. Gott sei Dank hat er nichts mitgenommen."
CRLF
FSET THIEF,INVISIBLE
ICALL1 RECOVER-STILETTO
RTRUE
?CCL26: RANDOM 100
GRTR? 70,STACK /FALSE
ZERO? DEAD \FALSE
CALL ROB,HERE,THIEF,100
ZERO? STACK /?CCL34
SET 'ROBBED?,HERE
JUMP ?CND32
?CCL34: CALL ROB,WINNER,THIEF
ZERO? STACK /?CND32
SET 'ROBBED?,PLAYER
?CND32: SET 'THIEF-HERE,TRUE-VALUE
ZERO? ROBBED? /?CCL38
ZERO? HERE? \?CCL38
PRINTI "Ein %ubelau%sehender Typ mit einem gro%sen Sack ist gerade durchs Zimmer gelatscht. Auf dem Weg hat er ganz ruhig ein paar Wertgegenst%ande "
EQUAL? ROBBED?,HERE \?CCL43
PRINTI "aus dem Zimmer"
JUMP ?CND41
?CCL43: PRINTI "aus deinem Besitz"
?CND41: PRINTI " mitgehen lassen, dabei hat er etwas gemurmelt wie ....%>Diene deinem N%achsten bevor...%<"
CRLF
ICALL1 STOLE-LIGHT?
RFALSE
?CCL38: ZERO? HERE? /?CCL45
ICALL1 RECOVER-STILETTO
ZERO? ROBBED? /?CCL48
PRINTI "Der Dieb ist gerade abgehauen, nat%urlich trug er immer noch seinen gro%sen Sack. "
EQUAL? ROBBED?,PLAYER \?CCL51
PRINTI "Du hast es vielleicht nicht bemerkt, aber er hat dich restlos ausgeraubt."
JUMP ?CND49
?CCL51: PRINTI "Du hast vielleicht nicht gemerkt, da%s er die Wertsachen im Zimmer abgestaubt hat."
?CND49: CRLF
ICALL1 STOLE-LIGHT?
JUMP ?CND46
?CCL48: PRINTI "Der Dieb, der nichts Wertvolles finden konnte, ist ver%argert abgehauen."
CRLF
?CND46: FSET THIEF,INVISIBLE
SET 'HERE?,FALSE-VALUE
RTRUE
?CCL45: PRINTR "Ein hagerer, hungrigau%sehender Herr latschte hier gerade durch. Er trug einen gro%sen Sack. Als er nichts Wertvolles finden konnte, zog er ver%argert ab."
?CCL6: ZERO? HERE? /FALSE
RANDOM 100
GRTR? 30,STACK \FALSE
CALL ROB,HERE,THIEF,100
ZERO? STACK /?CCL58
SET 'ROBBED?,HERE
JUMP ?CND56
?CCL58: CALL ROB,WINNER,THIEF
ZERO? STACK /?CND56
SET 'ROBBED?,PLAYER
?CND56: ZERO? ROBBED? /?CCL62
PRINTI "Der Dieb ist gerade abgehauen, nat%urlich trug er immer noch seinen gro%sen Sack. "
EQUAL? ROBBED?,PLAYER \?CCL65
PRINTI "Du hast es vielleicht nicht bemerkt, aber er hat dich restlos ausgeraubt."
JUMP ?CND63
?CCL65: PRINTI "Du hast vielleicht nicht gemerkt, da%s er die Wertsachen im Zimmer abgestaubt hat."
?CND63: CRLF
ICALL1 STOLE-LIGHT?
JUMP ?CND60
?CCL62: PRINTI "Der Dieb, der nichts Wertvolles finden konnte, zog w%utend ab."
CRLF
?CND60: FSET THIEF,INVISIBLE
SET 'HERE?,FALSE-VALUE
ICALL1 RECOVER-STILETTO
RFALSE
.FUNCT STOLE-LIGHT?:ANY:0:0,OLD-LIT
SET 'OLD-LIT,LIT
CALL2 LIT?,HERE >LIT
ZERO? LIT \TRUE
ZERO? OLD-LIT /TRUE
PRINTR "Der Dieb hat dich offensichtlich im Dunkeln gelassen."
.FUNCT HACK-TREASURES:ANY:0:0,X
ICALL1 RECOVER-STILETTO
FSET THIEF,INVISIBLE
FIRST? TREASURE-ROOM >X /?PRG2
?PRG2: ZERO? X /TRUE
FCLEAR X,INVISIBLE
NEXT? X >X /?PRG2
JUMP ?PRG2
.FUNCT DEPOSIT-BOOTY:ANY:1:1,RM,X,N,FLG
FIRST? THIEF >X /?PRG2
?PRG2: ZERO? X \?CND4
RETURN FLG
?CND4: NEXT? X >N /?BOGUS6
?BOGUS6: EQUAL? X,STILETTO,LARGE-BAG /?CND7
GETP X,P?TVALUE
GRTR? STACK,0 \?CND7
MOVE X,RM
SET 'FLG,TRUE-VALUE
EQUAL? X,EGG \?CND7
SET 'EGG-SOLVE,TRUE-VALUE
FSET EGG,OPENBIT
?CND7: SET 'X,N
JUMP ?PRG2
.FUNCT ROB-MAZE:ANY:1:1,RM,X,N
FIRST? RM >X /?PRG2
?PRG2: ZERO? X /FALSE
NEXT? X >N /?BOGUS6
?BOGUS6: FSET? X,TAKEBIT \?CND7
FSET? X,INVISIBLE /?CND7
RANDOM 100
GRTR? 40,STACK \?CND7
PRINTI "Irgendwo in der Ferne h%orst du jemanden sagen %>Meine G%ute, was "
ICALL2 DER-NOM-PRINT,X
PRINTI " hier wohl tut?%<"
CRLF
CALL2 ZPROB,60
ZERO? STACK /TRUE
MOVE X,THIEF
FSET X,TOUCHBIT
FSET X,INVISIBLE
RTRUE
?CND7: SET 'X,N
JUMP ?PRG2
.FUNCT ROBBER-FUNCTION:ANY:0:1,MODE,FLG,X,N
EQUAL? PRSA,V?TELL \?CCL3
PRINTI "Der Dieb ist einer von den Starken und Schweigsamen."
CRLF
SET 'P-CONT,FALSE-VALUE
RETURN P-CONT
?CCL3: ZERO? MODE \?CCL5
EQUAL? PRSA,V?HELLO \?CCL8
GETP THIEF,P?LDESC
EQUAL? STACK,ROBBER-U-DESC \?CCL8
PRINTR "Der Dieb, der momentan behindert ist, ist nicht in der Lage, deinen Gru%s mit der ihm angeborenen H%oflichkeit zu erwidern."
?CCL8: EQUAL? PRSO,KNIFE \?CCL12
EQUAL? PRSA,V?THROW \?CCL12
FSET? THIEF,FIGHTBIT /?CCL12
MOVE PRSO,HERE
CALL2 ZPROB,10
ZERO? STACK /?CCL18
PRINTI "Du mu%st dem R%auber Angst eingejagt haben, obwohl du ihn nicht getroffen hast. Er flieht"
REMOVE LARGE-BAG
SET 'X,FALSE-VALUE
IN? STILETTO,THIEF \?CND19
REMOVE STILETTO
SET 'X,TRUE-VALUE
?CND19: FIRST? THIEF \?CCL23
ICALL MOVE-ALL,THIEF,HERE
PRINTI ", aber der Inhalt seines Sackes f%allt auf den Boden."
JUMP ?CND21
?CCL23: PRINTC 46
?CND21: MOVE LARGE-BAG,THIEF
ZERO? X /?CND24
MOVE STILETTO,THIEF
?CND24: CRLF
FSET THIEF,INVISIBLE
RTRUE
?CCL18: PRINTI "Du hast nicht getroffen. Der Dieb macht keine Anstalten das Messer zu nehmen, obwohl es eine sch%one Zugabe zu der Sammlung in seinem Sack w%are. Er scheint, %uber deinen Versuch ver%argert zu sein."
CRLF
FSET THIEF,FIGHTBIT
RTRUE
?CCL12: EQUAL? PRSA,V?GIVE,V?THROW \?CCL27
ZERO? PRSO /?CCL27
EQUAL? PRSO,THIEF /?CCL27
EQUAL? PRSI,THIEF \?CCL27
GETP THIEF,P?STRENGTH
LESS? STACK,0 \?CND32
GETP THIEF,P?STRENGTH
SUB 0,STACK
PUTP THIEF,P?STRENGTH,STACK
CALL2 INT,I-THIEF
PUT STACK,0,1
ICALL1 RECOVER-STILETTO
PUTP THIEF,P?LDESC,ROBBER-C-DESC
PRINTI "Dein Opfer kommt pl%otzlich zu sich."
CRLF
?CND32: MOVE PRSO,THIEF
GETP PRSO,P?TVALUE
GRTR? STACK,0 \?CCL36
SET 'THIEF-ENGROSSED,TRUE-VALUE
PRINTI "Der Dieb ist erstaunt %uber deine Gro%sz%ugigkeit, die er nicht erwartetet hat, aber er nimmt "
ICALL2 DER-ACC-PRINT,PRSO
PRINTR " an, und nimmt sich Zeit, seine Sch%onheit zu bewundern."
?CCL36: PRINTI "Der Dieb steckt "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " in seinen Sack und dankt dir h%oflich."
RTRUE
?CCL27: EQUAL? PRSA,V?TAKE \?CCL38
PRINTR "Was willst du mit ihm machen, wenn du ihn hast?"
?CCL38: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL40
PRINTR "Der Dieb ist ein schleimiger Geselle mit Eidechsenaugen, die hin und her %augeln. Mit unmi%sverst%andlicher Arroganz schleppt er einen gro%sen Sack mit sich herum. Au%serdem hat er ein gef%ahrlich au%sehendes Stilett, dessen Spitze bedrohlich gegen dich gerichtet ist. An deiner Stelle w%are ich auf der Hut."
?CCL40: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "Der Dieb schweigt, denn ihr seid einander ja noch nicht offiziell vorgestellt worden."
?CCL5: EQUAL? MODE,F-BUSY? \?CCL44
IN? STILETTO,THIEF /FALSE
LOC THIEF
IN? STILETTO,STACK \FALSE
MOVE STILETTO,THIEF
FSET STILETTO,NDESCBIT
IN? THIEF,HERE \TRUE
PRINTR "Der R%auber, von dieser Wendung der Dinge etwas %uberrascht, holt sich sein Stillett leichtf%u%sig zur%uck."
?CCL44: EQUAL? MODE,F-DEAD \?CCL53
MOVE STILETTO,HERE
FCLEAR STILETTO,NDESCBIT
CALL2 DEPOSIT-BOOTY,HERE >X
EQUAL? HERE,TREASURE-ROOM \?CCL56
FIRST? HERE >X /?PRG58
?PRG58: ZERO? X \?CCL62
PRINTI "Jetzt kannst du dir den Kelch ohne Gefahr nehmen."
CRLF
JUMP ?CND54
?CCL62: EQUAL? X,CHALICE,THIEF,ADVENTURER /?CND60
FCLEAR X,INVISIBLE
ZERO? FLG \?CND64
SET 'FLG,TRUE-VALUE
PRINTI "Als der Dieb stirbt, schwindet seine Zauberkraft, und seine Sch%atze werden wieder sichtbar:"
CRLF
?CND64: PRINTC 32
ICALL2 EIN-NOM-CAP-PRINT,X
FIRST? X \?CND66
CALL2 SEE-INSIDE?,X
ZERO? STACK /?CND66
PRINTI ", mit "
ICALL2 PRINT-CONTENTS,X
?CND66: CRLF
?CND60: NEXT? X >X /?PRG58
JUMP ?PRG58
?CCL56: ZERO? X /?CND54
PRINTI "Seine Beute bleibt zur%uck."
CRLF
?CND54: CALL2 INT,I-THIEF
PUT STACK,0,0
RTRUE
?CCL53: EQUAL? MODE,F-FIRST? \?CCL73
ZERO? THIEF-HERE /FALSE
FSET? THIEF,INVISIBLE /FALSE
RANDOM 100
GRTR? 20,STACK \FALSE
FSET THIEF,FIGHTBIT
SET 'P-CONT,FALSE-VALUE
RTRUE
?CCL73: EQUAL? MODE,F-UNCONSCIOUS \?CCL81
CALL2 INT,I-THIEF
PUT STACK,0,0
FCLEAR THIEF,FIGHTBIT
MOVE STILETTO,HERE
FCLEAR STILETTO,NDESCBIT
PUTP THIEF,P?LDESC,ROBBER-U-DESC
RTRUE
?CCL81: EQUAL? MODE,F-CONSCIOUS \FALSE
LOC THIEF
EQUAL? STACK,HERE \?CND84
FSET THIEF,FIGHTBIT
PRINTI "Der R%auber kommt zu sich. F%ur eine Weile t%auscht er weiterhin Bewu%stlosigkeit vor, dann als er die passende Gelegenheit findet, kriecht er weg von dir."
CRLF
?CND84: CALL2 INT,I-THIEF
PUT STACK,0,1
PUTP THIEF,P?LDESC,ROBBER-C-DESC
CALL1 RECOVER-STILETTO
RSTACK
.FUNCT LARGE-BAG-F:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
GETP THIEF,P?LDESC
EQUAL? STACK,ROBBER-U-DESC \?CCL6
PRINTR "Zu deinem Nachteil ist der R%auber auf dem Sack zusammengebrochen. Wenn du jetztversuchtest, den Sack wegzunehmen, w%urdest du ihn wecken."
?CCL6: PRINTR "Der Sack wird auch %uber seine Leiche genommen."
?CCL3: EQUAL? PRSA,V?PUT \?CCL8
EQUAL? PRSI,LARGE-BAG \?CCL8
PRINTR "Das w%are ein toller Trick."
?CCL8: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL12
PRINTR "Nahe genug heranzukommen, w%are ein toller Trick."
?CCL12: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
PRINTR "Der Sack liegt unter dem Dieb, daher kann man nicht sagen, was darin ist, wenn %uberhaupt was drin ist."
.FUNCT MOVE-ALL:ANY:2:2,FROM,TO,X,N
FIRST? FROM >X \FALSE
?PRG4: ZERO? X /TRUE
NEXT? X >N /?BOGUS8
?BOGUS8: FCLEAR X,INVISIBLE
MOVE X,TO
SET 'X,N
JUMP ?PRG4
.FUNCT CHALICE-FCN:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
IN? PRSO,TREASURE-ROOM \FALSE
IN? THIEF,TREASURE-ROOM \FALSE
FSET? THIEF,FIGHTBIT \FALSE
FSET? THIEF,INVISIBLE /FALSE
GETP THIEF,P?LDESC
EQUAL? STACK,ROBBER-U-DESC /FALSE
PRINTR "Du w%urdest von hinten erstochen."
?CCL3: EQUAL? PRSA,V?PUT \?CCL13
EQUAL? PRSI,CHALICE \?CCL13
PRINTR "Das gelingt dir nicht. Es ist kein guter Kelch, nicht wahr?"
?CCL13: CALL1 DUMB-CONTAINER
RSTACK
.FUNCT TREASURE-ROOM-FCN:ANY:1:1,RARG,TL
EQUAL? RARG,M-ENTER \FALSE
CALL2 INT,I-THIEF
GET STACK,C-ENABLED?
EQUAL? STACK,1 \FALSE
ZERO? DEAD \FALSE
IN? THIEF,HERE /?CND7
PRINTI "Du h%orst einen Schreckensschrei, als du in das Versteck des R%aubers einbrichst. Als du einen Durchgang benutzt, der dir unbekannt ist, verteidigt er sich sofort."
CRLF
MOVE THIEF,HERE
?CND7: FSET THIEF,FIGHTBIT
FCLEAR THIEF,INVISIBLE
CALL1 THIEF-IN-TREASURE
RSTACK
.FUNCT THIEF-IN-TREASURE:ANY:0:0,F,N
FIRST? HERE >F /?BOGUS1
?BOGUS1: ZERO? F /?PRG6
NEXT? F \?PRG6
PRINTI "Der Dieb f%uhrt einige mysteri%ose Gesten aus, und die Sch%atze im Zimmer verschwinden."
CRLF
CRLF
?PRG6: ZERO? F /TRUE
EQUAL? F,CHALICE,THIEF /?CND8
FSET F,INVISIBLE
?CND8: NEXT? F >F /?PRG6
JUMP ?PRG6
.FUNCT FRONT-DOOR-FCN:ANY:0:0
EQUAL? PRSA,V?OPEN \?CCL3
PRINTR "Die T%ur kann nicht ge%offnet werden."
?CCL3: EQUAL? PRSA,V?BURN \?CCL5
PRINTR "Du kannst die T%ur nicht verbrennen."
?CCL5: EQUAL? PRSA,V?MUNG \?CCL7
PRINTR "Du kannst die T%ur nicht besch%adigen."
?CCL7: EQUAL? PRSA,V?LOOK-BEHIND \FALSE
PRINTR "Sie l%a%st sich nicht %offnen."
.FUNCT BODY-FUNCTION:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
PRINTR "Eine magische Kraft hindert dich am Mitnehmen der Leichen."
?CCL3: EQUAL? PRSA,V?BURN,V?MUNG \FALSE
CALL2 JIGS-UP,STR?263
RSTACK
.FUNCT BLACK-BOOK:ANY:0:0
EQUAL? PRSA,V?OPEN \?CCL3
PRINTR "Das Buch ist schon auf Seite 569 augfgeschlagen."
?CCL3: EQUAL? PRSA,V?CLOSE \?CCL5
PRINTR "Trotz aller Kraftanwendung kannst du das Buch nicht schlie%sen."
?CCL5: EQUAL? PRSA,V?TURN /?CTR6
EQUAL? PRSA,V?READ-PAGE \?CCL7
EQUAL? PRSI,INTNUM \?CCL7
EQUAL? P-NUMBER,569 /?CCL7
?CTR6: PRINTI "Au%ser der Seite 569 gibt es nur noch eine Seite mit lesbarem Druck darauf. Fast alles ist unleserlich, aber das Thema scheint die Bannung des B%osen zu sein. Scheinbar sind gewi%se Ger%ausche, Lichter und Gebete in dieser Beziehung von Nutzen."
RTRUE
?CCL7: EQUAL? PRSA,V?BURN \FALSE
ICALL2 REMOVE-CAREFULLY,PRSO
CALL2 JIGS-UP,STR?264
RSTACK
.FUNCT PAINTING-FCN:ANY:0:0
EQUAL? PRSA,V?MUNG \FALSE
PUTP PRSO,P?TVALUE,0
PUTP PRSO,P?LDESC,STR?265
PRINTR "Gratuliere! Im Gegensatz zu den anderen Verbrechern, die lediglich die Meisterwerke des K%unstlers gestohlen haben, hast du eines zerst%ort."
.FUNCT LANTERN:ANY:0:0
EQUAL? PRSA,V?THROW \?CCL3
PRINTI "Die Leuchte liegt am Fu%sboden zerschmettert, und das Licht ist aus."
CRLF
CALL2 INT,I-LANTERN
PUT STACK,0,0
ICALL2 REMOVE-CAREFULLY,LAMP
MOVE BROKEN-LAMP,HERE
RTRUE
?CCL3: EQUAL? PRSA,V?LAMP-ON \?CCL5
FSET? LAMP,RMUNGBIT \?CCL8
PRINTR "Eine ausgebrannte Leuchte l%a%st sich nicht anz%unden."
?CCL8: CALL2 INT,I-LANTERN
PUT STACK,0,1
RFALSE
?CCL5: EQUAL? PRSA,V?LAMP-OFF \?CCL10
FSET? LAMP,RMUNGBIT \?CCL13
PRINTR "Die Leuchte ist schon ausgebrannt."
?CCL13: CALL2 INT,I-LANTERN
PUT STACK,0,0
RFALSE
?CCL10: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? LAMP,RMUNGBIT \?CCL18
PRINTR "Die Leuchte ist ausgebrannt."
?CCL18: FSET? LAMP,ONBIT \?CCL20
PRINTR "Die Leuchte ist an."
?CCL20: PRINTR "Die Leuchte ist nicht an."
.FUNCT MAILBOX-F:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
EQUAL? PRSO,MAILBOX \FALSE
PRINTR "Er ist fest angebracht."
.FUNCT MATCH-FUNCTION:ANY:0:0,CNT
EQUAL? PRSA,V?BURN,V?LAMP-ON \?CCL3
EQUAL? PRSO,MATCH \?CCL3
GRTR? MATCH-COUNT,0 \?CND6
DEC 'MATCH-COUNT
?CND6: GRTR? MATCH-COUNT,0 /?CCL10
PRINTR "Leider sind dir die Streichh%olzer ausgegangen."
?CCL10: EQUAL? HERE,LOWER-SHAFT,TIMBER-ROOM \?CCL12
PRINTR "Dieser Raum ist zugig, und das Streichholz geht sofort aus."
?CCL12: FSET MATCH,FLAMEBIT
FSET MATCH,ONBIT
CALL QUEUE,I-MATCH,2
PUT STACK,0,1
PRINTI "Eines der Streichh%olzer beginnt zu brennen."
CRLF
ZERO? LIT \TRUE
SET 'LIT,TRUE-VALUE
ICALL1 V-LOOK
RTRUE
?CCL3: EQUAL? PRSA,V?LAMP-OFF \?CCL16
FSET? MATCH,FLAMEBIT \?CCL16
PRINTI "Das Streichholz ist aus."
CRLF
FCLEAR MATCH,FLAMEBIT
FCLEAR MATCH,ONBIT
CALL2 LIT?,HERE >LIT
ZERO? LIT \?CND19
PRINTI "Es ist stockdunkel hier!"
CRLF
?CND19: CALL QUEUE,I-MATCH,0
PUT STACK,0,1
RTRUE
?CCL16: EQUAL? PRSA,V?OPEN,V?COUNT \?CCL22
PRINTI "Du hast "
SUB MATCH-COUNT,1 >CNT
GRTR? CNT,0 /?CCL25
PRINTI "keine"
JUMP ?CND23
?CCL25: PRINTN CNT
?CND23: PRINTR " Streichh%olzer."
?CCL22: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? MATCH,ONBIT \?CCL30
PRINTR "Das Streichholz brennt."
?CCL30: PRINTR "The matchbook isn't very interesting, except for what's written on it."
.FUNCT I-MATCH:ANY:0:0
PRINTI "Das Streichholz ist ausgegangen."
CRLF
FCLEAR MATCH,FLAMEBIT
FCLEAR MATCH,ONBIT
CALL2 LIT?,HERE >LIT
RTRUE
.FUNCT I-LANTERN:ANY:0:0,TICK,TBL
VALUE 'LAMP-TABLE >TBL
GET TBL,0 >TICK
CALL QUEUE,I-LANTERN,TICK
PUT STACK,0,1
ICALL LIGHT-INT,LAMP,TBL,TICK
ZERO? TICK /FALSE
ADD TBL,4 >LAMP-TABLE
RETURN LAMP-TABLE
.FUNCT I-CANDLES:ANY:0:0,TICK,TBL
VALUE 'CANDLE-TABLE >TBL
FSET CANDLES,TOUCHBIT
GET TBL,0 >TICK
CALL QUEUE,I-CANDLES,TICK
PUT STACK,0,1
ICALL LIGHT-INT,CANDLES,TBL,TICK
ZERO? TICK /FALSE
ADD TBL,4 >CANDLE-TABLE
RETURN CANDLE-TABLE
.FUNCT LIGHT-INT:ANY:3:3,OBJ,TBL,TICK
ZERO? TICK \?CND1
FCLEAR OBJ,ONBIT
FSET OBJ,RMUNGBIT
?CND1: CALL2 HELD?,OBJ
ZERO? STACK \?CCL5
IN? OBJ,HERE \FALSE
?CCL5: ZERO? TICK \?CCL10
PRINTI "Du brauchst mehr Licht, als nur "
ICALL2 DER-NOM-PRINT,OBJ
PRINTR "."
?CCL10: GET TBL,1
PRINT STACK
CRLF
RTRUE
.FUNCT MIN:ANY:2:2,N1,N2
LESS? N1,N2 \?CCL3
RETURN N1
?CCL3: RETURN N2
.FUNCT CANDLES-FCN:ANY:0:0
FSET? CANDLES,TOUCHBIT /?CND1
CALL2 INT,I-CANDLES
PUT STACK,0,1
?CND1: EQUAL? CANDLES,PRSI /FALSE
EQUAL? PRSA,V?BURN,V?LAMP-ON \?CCL8
FSET? CANDLES,RMUNGBIT \?CCL11
PRINTR "O je, von den Kerzen ist nicht mehr viel %ubrig. Bestimmt nicht genug zum Brennen."
?CCL11: ZERO? PRSI \?CCL13
FSET? MATCH,FLAMEBIT \?CCL16
PRINTI "(mit dem Streichholz)"
CRLF
ICALL PERFORM,V?LAMP-ON,CANDLES,MATCH
RTRUE
?CCL16: PRINTI "Du solltest sagen, mit was man sie anzuenden soll."
CRLF
RETURN 2
?CCL13: EQUAL? PRSI,MATCH \?CCL20
FSET? MATCH,ONBIT \?CCL20
FSET? CANDLES,ONBIT \?CCL25
PRINTR "Die Kerzen sind schon angezuendet."
?CCL25: FSET CANDLES,ONBIT
PRINTI "Die Kerzen sind angezuendet."
CRLF
CALL2 INT,I-CANDLES
PUT STACK,0,1
RTRUE
?CCL20: EQUAL? PRSI,TORCH \?CCL27
FSET? CANDLES,ONBIT \?CCL30
PRINTR "Du bemerkst noch rechtzeitig, da%s die Kerzen schon angezuendet sind."
?CCL30: PRINTI "Die Hitze die von der Fackel ausgeht, ist so stark, da%s die Kerzen schmelzen."
CRLF
CALL2 REMOVE-CAREFULLY,CANDLES
RSTACK
?CCL27: PRINTR "Du mu%st sie mit etwas anzuenden, das brennt, verstehst du."
?CCL8: EQUAL? PRSA,V?COUNT \?CCL32
PRINTR "Mal sehen wieviele Dinge in einem Paar sind? Nicht verraten.Ich schaff das schon alleine."
?CCL32: EQUAL? PRSA,V?LAMP-OFF \?CCL34
CALL2 INT,I-CANDLES
PUT STACK,0,0
FSET? CANDLES,ONBIT \?CCL37
PRINTI "Die Flamme ist aus."
FCLEAR CANDLES,ONBIT
FSET CANDLES,TOUCHBIT
CALL2 LIT?,HERE >LIT
ZERO? LIT \?CND38
PRINTR " Es ist wirklich dunkel hier drin..."
?CND38: CRLF
RTRUE
?CCL37: PRINTR "Die Kerzen sind nicht an."
?CCL34: EQUAL? PRSA,V?PUT \?CCL41
FSET? PRSI,BURNBIT \?CCL41
PRINTR "Das w%are ungklug."
?CCL41: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? CANDLES,ONBIT \?CCL48
PRINTR "Die Kerzen brennen."
?CCL48: PRINTR "Die Kerzen sind nicht an."
.FUNCT CAVE2-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-END \FALSE
IN? CANDLES,WINNER \FALSE
CALL2 ZPROB,50
ZERO? STACK /FALSE
FSET? CANDLES,ONBIT \FALSE
CALL2 INT,I-CANDLES
PUT STACK,0,0
FCLEAR CANDLES,ONBIT
PRINTI "Ein Windsto%s bl%ast die Kerzen aus!"
CRLF
CALL2 LIT?,HERE >LIT
ZERO? LIT \FALSE
PRINTR "Jetzt ist es restlos dunkel."
.FUNCT SWORD-FCN:ANY:0:0,G
EQUAL? PRSA,V?TAKE \?CCL3
EQUAL? WINNER,ADVENTURER \?CCL3
CALL QUEUE,I-SWORD,-1
PUT STACK,0,1
RFALSE
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
GETP SWORD,P?TVALUE >G
EQUAL? G,1 \?CCL10
PRINTR "Dein Schwert leuchtet mit einem schwachen blauen Schimmer."
?CCL10: EQUAL? G,2 \FALSE
PRINTR "Dein Schwert leuchtet jetzt ganz hell."
.FUNCT BOOM-ROOM:ANY:1:1,RARG,DUMMY?,FLAME
EQUAL? RARG,M-END \FALSE
EQUAL? RARG,M-END \?CND4
EQUAL? PRSA,V?BURN,V?LAMP-ON \?CND4
EQUAL? PRSO,CANDLES,TORCH,MATCH \?CND4
SET 'DUMMY?,TRUE-VALUE
?CND4: CALL2 HELD?,CANDLES
ZERO? STACK /?PRD13
FSET? CANDLES,ONBIT /?CCL11
?PRD13: CALL2 HELD?,TORCH
ZERO? STACK /?PRD16
FSET? TORCH,ONBIT /?CCL11
?PRD16: CALL2 HELD?,MATCH
ZERO? STACK /FALSE
FSET? MATCH,ONBIT \FALSE
?CCL11: ZERO? DUMMY? /?CCL23
PRINTI "Wie traurig f%ur einen ehrgeizigen Abenteurer, da%s er "
ICALL2 EIN-ACC-PRINT,PRSO
PRINTI " in einem Raum anzuendet, der nach Gas riecht. Gl%ucklicherweise gibt es Gerechtigkeit auf dieser Welt."
CRLF
JUMP ?CND21
?CCL23: PRINTI "Ach du lieber Himmel. Es scheint, als ob der Geruch der von diesem Zimmer kommt, Kohlenoxyd ist. Ich h%atte mir zweimal %uberlegt, ob ich hier einen brennenden Gegenstand hineintrage."
CRLF
?CND21: CALL2 JIGS-UP,STR?272
RSTACK
.FUNCT BAT-D:ANY:0:1,FOO
LOC GARLIC
EQUAL? STACK,WINNER,HERE \?CCL3
PRINTR "In der Ecke des Zimmers h%angt eine gro%se Vampirfledermaus an der Decke, die offensichtlich nicht alle f%unf auf der Latte hat und sich die Nase zuh%alt."
?CCL3: PRINTR "Eine gro%se Vampirfledermaus h%angt von der Decke, rauscht auf dich nieder."
.FUNCT BATS-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTR "Du bist in einem kleinen Zimmer, das nur eine T%ur nach Osten und S%uden hat."
?CCL3: EQUAL? RARG,M-ENTER \FALSE
ZERO? DEAD \FALSE
LOC GARLIC
EQUAL? STACK,WINNER,HERE /FALSE
ICALL1 V-LOOK
CRLF
CALL1 FLY-ME
RSTACK
.FUNCT MACHINE-ROOM-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Dies ist ein gro%ser kalter Raum, dessen einziger Ausgang nach Norden f%uhrt. In einer Ecke steht eine Maschine, die an einen W%aschetrockner erinnert. Vorne ist ein Schalter, der mit EIN beschriftet ist. Der Schalter scheint nicht, f%ur Menschenh%ande gebaut zu sein (au%ser, wenn die Finger 1/2cm mal 1cm w%aren). Vorne an der Maschine ist eine gro%se Klappe, die "
FSET? MACHINE,OPENBIT \?CCL6
PRINTI "ge%offnet"
JUMP ?CND4
?CCL6: PRINTI "geschlossen"
?CND4: PRINTR " ist."
.FUNCT MACHINE-F:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
EQUAL? PRSO,MACHINE \?CCL3
PRINTR "Das ist viel zu gro%s zum Tragen."
?CCL3: EQUAL? PRSA,V?OPEN \?CCL7
FSET? MACHINE,OPENBIT \?CCL10
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
?CCL10: FIRST? MACHINE \?CCL12
PRINTI "Der Deckel %offnet sich, bringt "
ICALL2 PRINT-CONTENTS,MACHINE
PRINTI " zum Vorschein."
CRLF
FSET MACHINE,OPENBIT
RTRUE
?CCL12: PRINTI "Der Deckel %offnet sich."
CRLF
FSET MACHINE,OPENBIT
RTRUE
?CCL7: EQUAL? PRSA,V?CLOSE \?CCL14
FSET? MACHINE,OPENBIT \?CCL17
PRINTI "Der Deckel schlie%st sich."
CRLF
FCLEAR MACHINE,OPENBIT
RTRUE
?CCL17: CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
?CCL14: EQUAL? PRSA,V?LAMP-ON \FALSE
ZERO? PRSI \?CCL22
PRINTR "Es ist nicht klar, wie man sie mit den nackten H%anden aufmacht."
?CCL22: ICALL PERFORM,V?TURN,MACHINE-SWITCH,PRSI
RTRUE
.FUNCT MSWITCH-FUNCTION:ANY:0:0,O
EQUAL? PRSA,V?TURN \FALSE
EQUAL? PRSI,SCREWDRIVER \?CCL6
FSET? MACHINE,OPENBIT \?CCL9
PRINTR "Die Maschine scheint sich nicht r%uhren zu wollen."
?CCL9: PRINTI "Die Maschine wird lebendig (im %ubertragenen Sinne), indem sich faszinierende Lichter und haarstr%aubende Ger%ausche ergeben. Nach ein paar Sekunden h%ort der Zauber auf."
CRLF
IN? COAL,MACHINE \?PRG13
ICALL2 REMOVE-CAREFULLY,COAL
MOVE DIAMOND,MACHINE
RTRUE
?PRG13: FIRST? MACHINE >O \?REP14
ICALL2 REMOVE-CAREFULLY,O
JUMP ?PRG13
?REP14: MOVE GUNK,MACHINE
RTRUE
?CCL6: PRINTI "Es scheint, da%s "
ICALL2 EIN-NOM-PRINT,PRSI
PRINTI " nicht ausreicht."
RTRUE
.FUNCT GUNK-FUNCTION:ANY:0:0
ICALL2 REMOVE-CAREFULLY,GUNK
PRINTR "Die Schlacke war por%os und zerkr%umelt bei der Ber%uhrung zu Staub."
.FUNCT NO-OBJS:ANY:1:1,RARG,F
EQUAL? RARG,M-BEG \FALSE
FIRST? WINNER >F /?BOGUS4
?BOGUS4: SET 'EMPTY-HANDED,TRUE-VALUE
?PRG5: ZERO? F /?REP6
CALL2 WEIGHT,F
GRTR? STACK,4 \?CND7
SET 'EMPTY-HANDED,FALSE-VALUE
?REP6: EQUAL? HERE,LOWER-SHAFT \FALSE
ZERO? LIT /FALSE
ICALL2 SCORE-UPD,LIGHT-SHAFT
SET 'LIGHT-SHAFT,0
RFALSE
?CND7: NEXT? F >F /?PRG5
JUMP ?PRG5
.FUNCT SOUTH-TEMPLE-FCN:ANY:1:1,RARG
EQUAL? RARG,M-BEG \FALSE
IN? COFFIN,WINNER /?PRD5
SET 'COFFIN-CURE,1
RFALSE
?PRD5: SET 'COFFIN-CURE,0
RFALSE
.FUNCT WHITE-CLIFFS-FUNCTION:ANY:1:1,RARG
EQUAL? RARG,M-END \FALSE
IN? INFLATED-BOAT,WINNER \?CCL6
SET 'DEFLATE,FALSE-VALUE
RETURN DEFLATE
?CCL6: SET 'DEFLATE,TRUE-VALUE
RETURN DEFLATE
.FUNCT SCEPTRE-FUNCTION:ANY:0:0
EQUAL? PRSA,V?RAISE,V?WAVE \FALSE
EQUAL? HERE,ARAGAIN-FALLS /?CTR5
EQUAL? HERE,END-OF-RAINBOW \?CCL6
?CTR5: ZERO? RAINBOW-FLAG \?CCL11
FCLEAR POT-OF-GOLD,INVISIBLE
PRINTI "Pl%otzlich wird der Regenbogen zu einer Art Stra%se und erscheint begehbar (Treppen mit Gel%ander erwecken diesen Eindruck)."
CRLF
EQUAL? HERE,END-OF-RAINBOW \?CND12
IN? POT-OF-GOLD,END-OF-RAINBOW \?CND12
PRINTI "Ein glitzernder goldener Topf erscheint am Ende des Regenbogens."
CRLF
?CND12: SET 'RAINBOW-FLAG,TRUE-VALUE
RETURN RAINBOW-FLAG
?CCL11: ICALL ROB,ON-RAINBOW,WALL
PRINTI "Der Regenbogen scheint seine Ungew%ohnlichkeit verloren zu haben."
CRLF
SET 'RAINBOW-FLAG,FALSE-VALUE
RTRUE
?CCL6: EQUAL? HERE,ON-RAINBOW \?CCL17
SET 'RAINBOW-FLAG,FALSE-VALUE
CALL2 JIGS-UP,STR?273
RSTACK
?CCL17: PRINTR "Eine verwirrende Farbenpracht strahlt kurz von dem Zepter aus."
.FUNCT FALLS-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist oben auf den Wiedermal F%allen. Ein gigantischer Wasserfall mit einem Abgrund von 15 Metern. Der einzige Pfad hier ist am Nordende."
CRLF
ZERO? RAINBOW-FLAG /?CCL6
PRINTR "Ein voller Regenbogen steht %uber den F%allen."
?CCL6: PRINTR "Ein wundervoller Regenbogen kann %uber den F%allen und nach Westen gesehen werden."
.FUNCT RAINBOW-FCN:ANY:0:0
EQUAL? PRSA,V?THROUGH,V?CROSS \?CCL3
EQUAL? HERE,CANYON-VIEW \?CND4
PRINTR "Von hier aus?!?"
?CND4: ZERO? RAINBOW-FLAG /?CCL8
EQUAL? HERE,ARAGAIN-FALLS \?CCL11
CALL2 GOTO,END-OF-RAINBOW
RSTACK
?CCL11: EQUAL? HERE,END-OF-RAINBOW \?CCL13
CALL2 GOTO,ARAGAIN-FALLS
RSTACK
?CCL13: PRINTR "Du mu%st sagen, in welcher Richtung..."
?CCL8: PRINTR "Kannst du auf Wasserd%ampfen wandeln?"
?CCL3: EQUAL? PRSA,V?LOOK-UNDER \FALSE
PRINTR "Der Gletsch flie%st unter dem Regenbogen."
.FUNCT DBOAT-FUNCTION:ANY:0:0
EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL3
EQUAL? PRSO,PUTTY \?CCL3
CALL1 FIX-BOAT
RSTACK
?CCL3: EQUAL? PRSA,V?FILL,V?INFLATE \?CCL7
PRINTR "Unm%oglich. Irgends%o ein Schwachkopf hat es durchl%ochert."
?CCL7: EQUAL? PRSA,V?PLUG \FALSE
EQUAL? PRSI,PUTTY \?CCL12
CALL1 FIX-BOAT
RSTACK
?CCL12: CALL2 WITH-TELL,PRSI
RSTACK
.FUNCT FIX-BOAT:ANY:0:0
PRINTI "Gro%sartig. Das Boot ist repariert."
CRLF
LOC PUNCTURED-BOAT
MOVE INFLATABLE-BOAT,STACK
CALL2 REMOVE-CAREFULLY,PUNCTURED-BOAT
RSTACK
.FUNCT RIVER-FUNCTION:ANY:0:0
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSI,RIVER \FALSE
EQUAL? PRSO,ME \?CCL9
CALL2 JIGS-UP,STR?274
RSTACK
?CCL9: EQUAL? PRSO,INFLATED-BOAT \?CCL11
PRINTR "Du solltest in das Boot steigen, dann absto%sen."
?CCL11: FSET? PRSO,BURNBIT \?CCL13
ICALL2 REMOVE-CAREFULLY,PRSO
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTI " schwimmt f%ur einen Moment, dann sinkt "
ICALL2 PRONOUN-NOM-PRINT,PRSO
PRINTR "."
?CCL13: ICALL2 REMOVE-CAREFULLY,PRSO
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTI " platscht ins Wasser, und gluck-gluck weg ist "
ICALL2 PRONOUN-NOM-PRINT,PRSO
PRINTR "."
?CCL3: EQUAL? PRSA,V?THROUGH,V?LEAP \FALSE
PRINTR "Eine Orientierung vor dem Sprung zeigt, da%s der Flu%s breit und gef%ahrlich ist, rei%sende Schnellen und halbverdeckte Felsten hat. Du entscheidest, vom Schwimmen abzusehen."
.FUNCT I-RIVER:ANY:0:0,RM
EQUAL? HERE,RIVER-1,RIVER-2,RIVER-3 /?CCL3
EQUAL? HERE,RIVER-4,RIVER-5 /?CCL3
CALL2 INT,I-RIVER
PUT STACK,0,0
RTRUE
?CCL3: CALL LKP,HERE,RIVER-NEXT >RM
ZERO? RM /?CCL7
PRINTI "Die Str%omung tr%agt dich flu%sabw%arts."
CRLF
CRLF
ICALL2 GOTO,RM
CALL LKP,HERE,RIVER-SPEEDS
CALL QUEUE,I-RIVER,STACK
PUT STACK,0,1
RTRUE
?CCL7: CALL2 JIGS-UP,STR?275
RSTACK
.FUNCT RBOAT-FUNCTION:ANY:0:1,RARG,TMP
EQUAL? RARG,M-ENTER,M-END,M-LOOK /FALSE
EQUAL? RARG,M-BEG \?CCL5
EQUAL? PRSA,V?WALK \?CCL8
EQUAL? PRSO,P?LANDEN,P?OST,P?WEST /FALSE
EQUAL? HERE,RESERVOIR \?CCL13
EQUAL? PRSO,P?NORD,P?SUED /FALSE
?CCL13: EQUAL? HERE,IN-STREAM \?CCL17
EQUAL? PRSO,P?SUED /FALSE
?CCL17: PRINTR "Lies die Anweisungen f%ur das Boot."
?CCL8: EQUAL? PRSA,V?LAUNCH \?CCL21
EQUAL? HERE,RIVER-1,RIVER-2,RIVER-3 /?CTR23
EQUAL? HERE,RIVER-4,RESERVOIR,IN-STREAM \?CCL24
?CTR23: PRINTI "Du bist schon im "
EQUAL? HERE,RESERVOIR \?CCL29
PRINTI "Reservoir"
JUMP ?CND27
?CCL29: EQUAL? HERE,IN-STREAM \?CCL31
PRINTI "Strom"
JUMP ?CND27
?CCL31: PRINTI "Flu%s"
?CND27: PRINTR ", oder hast du das vergessen?"
?CCL24: CALL2 GO-NEXT,RIVER-LAUNCH >TMP
EQUAL? TMP,1 \?CCL33
CALL LKP,HERE,RIVER-SPEEDS
CALL QUEUE,I-RIVER,STACK
PUT STACK,0,1
RTRUE
?CCL33: EQUAL? TMP,2 /TRUE
PRINTR "Hier kannst du das Boot nicht ins Wasser lassen."
?CCL21: EQUAL? PRSA,V?DROP \?PRD39
FSET? PRSO,WEAPONBIT /?CTR36
?PRD39: EQUAL? PRSA,V?PUT \?PRD42
FSET? PRSO,WEAPONBIT \?PRD42
EQUAL? PRSI,INFLATED-BOAT /?CTR36
?PRD42: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL37
FSET? PRSI,WEAPONBIT \?CCL37
?CTR36: ICALL2 REMOVE-CAREFULLY,INFLATED-BOAT
MOVE PUNCTURED-BOAT,HERE
ICALL ROB,INFLATED-BOAT,HERE
MOVE WINNER,HERE
SET 'OHERE,FALSE-VALUE
PRINTI "Es scheint, als ob "
EQUAL? PRSA,V?PUT,V?DROP \?CCL50
ICALL2 DER-NOM-PRINT,PRSO
JUMP ?CND48
?CCL50: ICALL2 DER-NOM-PRINT,PRSI
?CND48: PRINTI " dem Boot nicht bekommen ist, wie man von dem lauten hissenden Ger%ausch, das ihm entweicht, schlie%sen kann. Mit einem armseligen letzten Puff, geht die Luft aus dem Boot und du erleidest Schiffbruch."
CRLF
FSET? HERE,NONLANDBIT \TRUE
CRLF
EQUAL? HERE,RESERVOIR,IN-STREAM \?CCL55
ICALL2 JIGS-UP,STR?276
RTRUE
?CCL55: ICALL2 JIGS-UP,STR?277
RTRUE
?CCL37: EQUAL? PRSA,V?LAUNCH \FALSE
PRINTR "Du bist nicht im Boot!"
?CCL5: EQUAL? PRSA,V?BOARD \?CCL59
IN? SCEPTRE,WINNER /?CCL62
IN? KNIFE,WINNER /?CCL62
IN? SWORD,WINNER /?CCL62
IN? RUSTY-KNIFE,WINNER /?CCL62
IN? AXE,WINNER /?CCL62
IN? STILETTO,WINNER \FALSE
?CCL62: PRINTI "Ei, ei! Etwas Scharfes scheint weggerutscht zu sein, und hat das Boot durchl%ochert. Die Luft entweicht unter Zischen, Murmeln und Fluchen aus dem Boot."
CRLF
ICALL2 REMOVE-CAREFULLY,INFLATED-BOAT
MOVE PUNCTURED-BOAT,HERE
ICALL2 THIS-IS-IT,PUNCTURED-BOAT
RTRUE
?CCL59: EQUAL? PRSA,V?FILL,V?INFLATE \?CCL70
PRINTR "Wenn man es weiter aufpumpt, w%urde es wahrscheinlich platzen."
?CCL70: EQUAL? PRSA,V?DEFLATE \FALSE
LOC WINNER
EQUAL? STACK,INFLATED-BOAT \?CCL75
PRINTR "Du kannst die Luft nicht aus dem Boot lassen, w%ahrend du drin sitzt."
?CCL75: IN? INFLATED-BOAT,HERE /?CCL77
PRINTR "Das Boot mu%s an Land sein, um die Luft rauszulassen."
?CCL77: PRINTI "Die Luft kommt aus dem Boot."
CRLF
SET 'DEFLATE,TRUE-VALUE
ICALL2 REMOVE-CAREFULLY,INFLATED-BOAT
MOVE INFLATABLE-BOAT,HERE
CALL2 THIS-IS-IT,INFLATABLE-BOAT
RSTACK
.FUNCT IBOAT-FUNCTION:ANY:0:0
EQUAL? PRSA,V?FILL,V?INFLATE \FALSE
IN? INFLATABLE-BOAT,HERE /?CCL6
PRINTR "Das Boot mu%s an Land sein, um aufgeblasen zu werden."
?CCL6: EQUAL? PRSI,PUMP \?CCL8
PRINTI "Das Boot nimmt Luft auf und erscheint seet%uchtig."
CRLF
FSET? BOAT-LABEL,TOUCHBIT /?CND9
PRINTI "Ein beiges Schildchen liegt im Boot."
CRLF
?CND9: SET 'DEFLATE,FALSE-VALUE
ICALL2 REMOVE-CAREFULLY,INFLATABLE-BOAT
MOVE INFLATED-BOAT,HERE
CALL2 THIS-IS-IT,INFLATED-BOAT
RSTACK
?CCL8: EQUAL? PRSI,LUNGS \?CCL12
PRINTR "Deine Lunge schafft es nicht, das Boot aufzublasen."
?CCL12: PRINTI "Mit "
ICALL2 EIN-DAT-PRINT,PRSI
PRINTR "? Du beliebst zu scherzen?!"
.FUNCT RIVR4-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-END \FALSE
IN? BUOY,WINNER \FALSE
ZERO? BUOY-FLAG /FALSE
PRINTI "Die Boje f%uhlt sich irgendwie komisch an."
CRLF
SET 'BUOY-FLAG,FALSE-VALUE
RETURN BUOY-FLAG
.FUNCT SAND-FUNCTION:ANY:0:0
EQUAL? PRSA,V?DIG \FALSE
EQUAL? PRSI,SHOVEL \FALSE
IGRTR? 'BEACH-DIG,3 \?CCL8
SET 'BEACH-DIG,-1
IN? SCARAB,HERE \?PEN9
FSET SCARAB,INVISIBLE
?PEN9: CALL2 JIGS-UP,STR?278
RSTACK
?CCL8: EQUAL? BEACH-DIG,3 \?CCL12
FSET? SCARAB,INVISIBLE \FALSE
PRINTI "Du siehst hier einen Skarab%aus im Sand."
CRLF
ICALL2 THIS-IS-IT,SCARAB
FCLEAR SCARAB,INVISIBLE
RTRUE
?CCL12: GET BDIGS,BEACH-DIG
PRINT STACK
CRLF
RTRUE
.FUNCT TREE-ROOM:ANY:1:1,RARG,F
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist ungef%ahr 3 Meter %uber dem Boden umgeben von gro%sen %Asten. Du kannst den n%achsten Zweig %uber dir unm%oglich erreichen."
CRLF
FIRST? PATH >F \FALSE
NEXT? F \FALSE
PRINTI "Unter dir auf der Erde siehst du:"
ICALL2 PRINT-CONTENTS,PATH
PRINTR "."
?CCL3: EQUAL? RARG,M-BEG \?CCL10
EQUAL? PRSA,V?CLIMB-DOWN \?CCL13
EQUAL? PRSO,TREE,ROOMS \?CCL13
CALL2 DO-WALK,P?RUNTER
RSTACK
?CCL13: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?CCL17
EQUAL? PRSO,TREE \?CCL17
CALL2 DO-WALK,P?RAUF
RSTACK
?CCL17: EQUAL? PRSA,V?DROP \FALSE
CALL1 IDROP
ZERO? STACK /TRUE
EQUAL? PRSO,NEST \?CCL26
IN? EGG,NEST \?CCL26
PRINTI "Das Nest f%allt auf die Erde, und das Ei f%allt heraus. Es ist ernstlich besch%adigt."
CRLF
ICALL2 REMOVE-CAREFULLY,EGG
MOVE BROKEN-EGG,PATH
RTRUE
?CCL26: EQUAL? PRSO,EGG \?CCL30
PRINTI "Das Ei f%allt auf die Erde und springt auf. Es ist ernstlich besch%adigt."
MOVE EGG,PATH
ICALL1 BAD-EGG
CRLF
RTRUE
?CCL30: EQUAL? PRSO,WINNER,TREE /?CCL32
MOVE PRSO,PATH
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTR " f%allt auf die Erde."
?CCL32: EQUAL? PRSA,V?LEAP \FALSE
CALL2 JIGS-UP,STR?282
RSTACK
?CCL10: EQUAL? RARG,M-ENTER \FALSE
CALL QUEUE,I-FOREST-ROOM,-1
PUT STACK,0,1
RTRUE
.FUNCT EGG-OBJECT:ANY:0:0
EQUAL? PRSA,V?MUNG,V?OPEN \?CCL3
EQUAL? PRSO,EGG \?CCL3
FSET? PRSO,OPENBIT \?CCL8
PRINTR "Das Ei ist schon offen."
?CCL8: ZERO? PRSI \?CCL10
PRINTR "Du hast weder das Werkzeug noch das Geschick."
?CCL10: EQUAL? PRSI,HANDS \?CCL12
PRINTR "Ich bezweifle, da%s du das tun kannst, ohne es ernstlich zu besch%adigen."
?CCL12: FSET? PRSI,WEAPONBIT /?CTR13
FSET? PRSI,TOOLBIT /?CTR13
EQUAL? PRSA,V?MUNG \?CCL14
?CTR13: PRINTI "Das Ei ist jetzt offen, aber die Tollpatschigkeit deines Versuches hat seinen %asthetischen Wert stark vermindert."
ICALL1 BAD-EGG
CRLF
RTRUE
?CCL14: FSET? PRSO,FIGHTBIT \?CCL19
PRINTI "Und erst die Idee, "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zu benutzen... Du %ubertriffst dich geradzu an originellen Einf%allen."
RTRUE
?CCL19: PRINTI "Die Idee "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zu benutzen ist wirklich sehr originell."
CRLF
FSET PRSO,FIGHTBIT
RTRUE
?CCL3: EQUAL? PRSA,V?HATCH,V?CLIMB-ON \?CCL21
PRINTI "Du f%uhlst ein Krachen unter deinen F%u%sen, und beim Nachsehen entdeckst du, da%s das Ei offen daliegt und schweren Schaden gelitten hat."
ICALL1 BAD-EGG
CRLF
RTRUE
?CCL21: EQUAL? PRSA,V?THROW,V?MUNG,V?OPEN \FALSE
EQUAL? PRSA,V?THROW \?CND24
MOVE PRSO,HERE
?CND24: PRINTI "Es ist dir zwar gelungen, das Ei zu %offnen, aber du hast es mit deinen rauhen Methoden besch%adigt."
ICALL1 BAD-EGG
CRLF
RTRUE
.FUNCT BAD-EGG:ANY:0:0,L
IN? CANARY,EGG \?CCL3
PRINTC 32
GETP BROKEN-CANARY,P?FDESC
PRINT STACK
JUMP ?CND1
?CCL3: ICALL2 REMOVE-CAREFULLY,BROKEN-CANARY
?CND1: LOC EGG
MOVE BROKEN-EGG,STACK
ICALL2 REMOVE-CAREFULLY,EGG
RTRUE
.FUNCT CANARY-OBJECT:ANY:0:0
EQUAL? PRSA,V?WIND \FALSE
EQUAL? PRSO,CANARY \?CCL6
ZERO? SING-SONG \?CCL9
CALL1 FOREST-ROOM?
ZERO? STACK /?CCL9
PRINTI "Der Kanarienvogel schmettert eine Arie, aus einer l%angstvergessenen Oper. Er singt falsch. Aus dem Gr%unen fliegt ein lieblicher Singvogel. Er l%a%st sich auf einem Zweig direkt %uber deinem Kopf nieder und %offnet den Schnabel, um zu singen. Als er das tut, f%allt eine sch%one goldene Flitterkugel aus dem Schnabel, trifft deinen Kopf und landet glitzernd im Gras."
CRLF
SET 'SING-SONG,TRUE-VALUE
EQUAL? HERE,UP-A-TREE \?CCL14
PUSH PATH
JUMP ?CND12
?CCL14: PUSH HERE
?CND12: MOVE BAUBLE,STACK
RTRUE
?CCL9: PRINTR "Der Kanarienvogel zwitschert f%ur eine kurze Zeit munter, wenn auch etwas blechern."
?CCL6: PRINTR "Aus dem Innern des Kanarienvogels l%a%st sich ein unangenehmes mahlendes Ger%ausch vernehmen."
.FUNCT FOREST-ROOM?:ANY:0:0
EQUAL? HERE,FOREST-1,FOREST-2,FOREST-3 /TRUE
EQUAL? HERE,PATH,UP-A-TREE /TRUE
RFALSE
.FUNCT I-FOREST-ROOM:ANY:0:0
CALL1 FOREST-ROOM?
ZERO? STACK \?CCL3
CALL2 INT,I-FOREST-ROOM
PUT STACK,0,0
RFALSE
?CCL3: RANDOM 100
GRTR? 15,STACK \FALSE
PRINTR "In der Ferne h%orst du das Zwitschern eines Singvogels."
.FUNCT FOREST-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-ENTER \?CCL3
CALL QUEUE,I-FOREST-ROOM,-1
PUT STACK,0,1
RTRUE
?CCL3: EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \FALSE
EQUAL? PRSO,TREE \FALSE
CALL2 DO-WALK,P?RAUF
RSTACK
.FUNCT WCLIF-OBJECT:ANY:0:0
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?CLIMB-UP \FALSE
PRINTR "Der Felsvorsprung ist zu steil zum Erklettern."
.FUNCT CLIFF-OBJECT:ANY:0:0
EQUAL? PRSA,V?LEAP /?CTR2
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSO,ME \?CCL3
?CTR2: PRINTR "Das w%are sehr gewagt. Vielleicht sogar t%odlich."
?CCL3: EQUAL? PRSI,CLIMBABLE-CLIFF \FALSE
EQUAL? PRSA,V?THROW-OFF,V?PUT \FALSE
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTI " rollt in den Flu%s und gluck-gluck weg ist es."
CRLF
CALL2 REMOVE-CAREFULLY,PRSO
RSTACK
.FUNCT ROPE-FUNCTION:ANY:0:0,RLOC
EQUAL? HERE,DOME-ROOM /?CCL3
SET 'DOME-FLAG,FALSE-VALUE
EQUAL? PRSA,V?TIE \FALSE
PRINTR "Daran kannst du das Seil nicht binden."
?CCL3: EQUAL? PRSA,V?TIE \?CCL8
EQUAL? PRSI,RAILING \FALSE
ZERO? DOME-FLAG /?CCL14
PRINTR "Das Seil ist schon darangebunden."
?CCL14: PRINTI "Das Seil f%allt %uber die Seite und reicht bis zu 3 Metern %uber dem Boden."
CRLF
SET 'DOME-FLAG,TRUE-VALUE
FSET ROPE,NDESCBIT
LOC ROPE >RLOC
ZERO? RLOC /?CCL16
IN? RLOC,ROOMS /TRUE
?CCL16: MOVE ROPE,HERE
RTRUE
?CCL8: EQUAL? PRSA,V?CLIMB-DOWN \?CCL20
EQUAL? PRSO,ROPE,ROOMS \?CCL20
ZERO? DOME-FLAG /?CCL20
CALL2 DO-WALK,P?RUNTER
RSTACK
?CCL20: EQUAL? PRSA,V?TIE-UP \?CCL25
EQUAL? ROPE,PRSI \?CCL25
FSET? PRSO,ACTORBIT \?CCL30
GETP PRSO,P?STRENGTH
LESS? STACK,0 \?CCL33
PRINTI "Dein Versuch "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zu fesseln, weckt ihn auf."
CALL2 AWAKEN,PRSO
RSTACK
?CCL33: ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTR " wehrt sich, und du kannst ihn nicht fesseln."
?CCL30: PRINTI "Warum w%urdest du "
ICALL2 DER-ACC-PRINT,PRSO
PRINTR " fesseln?"
?CCL25: EQUAL? PRSA,V?UNTIE \?CCL35
ZERO? DOME-FLAG /?CCL38
SET 'DOME-FLAG,FALSE-VALUE
FCLEAR ROPE,NDESCBIT
PRINTR "Das Seil ist jetzt aufgebunden."
?CCL38: PRINTR "Es ist an nichts gebunden."
?CCL35: EQUAL? PRSA,V?DROP \?CCL40
EQUAL? HERE,DOME-ROOM \?CCL40
ZERO? DOME-FLAG \?CCL40
MOVE ROPE,TORCH-ROOM
PRINTR "Das Seil f%allt sanft nach unten auf die Erde."
?CCL40: EQUAL? PRSA,V?TAKE \FALSE
ZERO? DOME-FLAG /FALSE
PRINTR "Das Seil ist an das Gel%ander gebunden."
.FUNCT UNTIE-FROM:ANY:0:0
EQUAL? PRSO,ROPE \?CCL3
ZERO? DOME-FLAG /?CCL3
EQUAL? PRSI,RAILING \?CCL3
CALL PERFORM,V?UNTIE,PRSO
RSTACK
?CCL3: PRINTR "Es ist nicht daran gebunden."
.FUNCT SLIDE-FUNCTION:ANY:0:0
EQUAL? PRSA,V?CLIMB-DOWN,V?CLIMB-UP,V?THROUGH /?CTR2
EQUAL? PRSA,V?CLIMB-FOO /?CTR2
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSO,ME \?CCL3
?CTR2: EQUAL? HERE,CELLAR \?CCL11
ICALL2 DO-WALK,P?WEST
RTRUE
?CCL11: PRINTI "Das Seil ist an das Gel%ander gebunden..."
CRLF
CALL2 GOTO,CELLAR
RSTACK
?CCL3: EQUAL? PRSA,V?PUT \FALSE
CALL2 SLIDER,PRSO
RSTACK
.FUNCT SLIDER:ANY:1:1,OBJ
FSET? OBJ,TAKEBIT \?CCL3
ICALL2 DER-NOM-CAP-PRINT,OBJ
PRINTI " f%allt auf die Rutschbahn und ist weg."
CRLF
EQUAL? OBJ,WATER \?CCL6
CALL2 REMOVE-CAREFULLY,OBJ
RSTACK
?CCL6: MOVE OBJ,CELLAR
RTRUE
?CCL3: CALL2 PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
.FUNCT SANDWICH-BAG-FCN:ANY:0:0
EQUAL? PRSA,V?SMELL \FALSE
IN? LUNCH,PRSO \FALSE
PRINTR "Es riecht nach scharfen Pepperoni."
.FUNCT DEAD-FUNCTION:ANY:0:1,FOO,M
EQUAL? PRSA,V?WALK \?CCL3
EQUAL? HERE,TIMBER-ROOM \FALSE
EQUAL? PRSO,P?WEST \FALSE
PRINTR "In Deinem Zustand kannst du hier nicht rein."
?CCL3: EQUAL? PRSA,V?SUPER-BRIEF,V?VERBOSE,V?BRIEF /FALSE
EQUAL? PRSA,V?RESTORE,V?SAVE,V?VERSION /FALSE
EQUAL? PRSA,V?RESTART,V?QUIT /FALSE
EQUAL? PRSA,V?ALARM,V?MUNG,V?ATTACK /?CTR14
EQUAL? PRSA,V?SWING \?CCL15
?CTR14: PRINTR "In deinem Zustand sind deine Angriffe sinnlos."
?CCL15: EQUAL? PRSA,V?EAT,V?CLOSE,V?OPEN /?CTR18
EQUAL? PRSA,V?DEFLATE,V?INFLATE,V?DRINK /?CTR18
EQUAL? PRSA,V?TIE,V?BURN,V?TURN /?CTR18
EQUAL? PRSA,V?RUB,V?UNTIE \?CCL19
?CTR18: PRINTR "Sogar das %ubersteigt deine F%ahigkeiten."
?CCL19: EQUAL? PRSA,V?WAIT \?CCL25
PRINTR "Warum nicht.? Du hast eine ganze Ewigkeit."
?CCL25: EQUAL? PRSA,V?LAMP-ON \?CCL27
PRINTR "Du brauchst kein Licht, das dir den Weg leuchtet."
?CCL27: EQUAL? PRSA,V?SCORE \?CCL29
PRINTR "Du bist tot! Wie kannst du da an den Stand des Spieles denken?"
?CCL29: EQUAL? PRSA,V?RUB,V?TAKE \?CCL31
PRINTR "Deine Hand geht durch das Ding direkt hindurch."
?CCL31: EQUAL? PRSA,V?INVENTORY,V?THROW,V?DROP \?CCL33
PRINTR "Du besitzt garnichts."
?CCL33: EQUAL? PRSA,V?DIAGNOSE \?CCL35
PRINTR "Du bist tot."
?CCL35: EQUAL? PRSA,V?LOOK \?CCL37
PRINTI "Der Raum sieht fremd und unirdisch aus"
FIRST? HERE /?CCL40
PRINTC 46
JUMP ?CND38
?CCL40: PRINTI " und die Dinge erscheinen unwirklich."
?CND38: CRLF
FSET? HERE,ONBIT /?CND41
PRINTI "Obwohl es hier keine Lichtquelle gibt, erscheint der Raum doch einigermassen beleuchtet."
CRLF
?CND41: CRLF
RFALSE
?CCL37: EQUAL? PRSA,V?PRAY \?CCL44
EQUAL? HERE,SOUTH-TEMPLE \?CCL47
FCLEAR LAMP,INVISIBLE
PUTP WINNER,P?ACTION,0
SET 'ALWAYS-LIT,FALSE-VALUE
SET 'DEAD,FALSE-VALUE
IN? TROLL,TROLL-ROOM \?CND48
SET 'TROLL-FLAG,FALSE-VALUE
?CND48: PRINTI "Aus der Ferne ert%ont der Schall einer einsamen Trompete. Der Raum wird sehr hell und du f%uhlst dich k%orperlos. In einem Moment weicht die Helligkeit, und du f%uhlst dich, als ob du dich von einem langen Schlaf im Walde erhebst. Aus der Ferne h%orst du den schwachen Gesang eines Singvogels und das Rauschen des Waldes."
CRLF
CRLF
CALL2 GOTO,FOREST-1
RSTACK
?CCL47: PRINTR "Deine Gebete werden nicht erh%ort."
?CCL44: PRINTI "Sogar das kannst du nicht."
CRLF
SET 'P-CONT,FALSE-VALUE
RETURN 2
.FUNCT LAKE-PSEUDO:ANY:0:0
ZERO? LOW-TIDE /?CCL3
PRINTR "Von dem See ist nicht viel %ubrig..."
?CCL3: EQUAL? PRSA,V?CROSS \?CCL5
PRINTR "Er ist zu breit zum %Uberqueren."
?CCL5: EQUAL? PRSA,V?THROUGH \FALSE
PRINTR "Du kannst in diesem See nicht schwimmen."
.FUNCT STREAM-PSEUDO:ANY:0:0
EQUAL? PRSA,V?THROUGH,V?SWIM \?CCL3
PRINTR "Du kannst in dem Flu%s nicht schwimmen."
?CCL3: EQUAL? PRSA,V?CROSS \FALSE
PRINTR "Die andere Seite ist eine abrupte Felswand."
.FUNCT CHASM-PSEUDO:ANY:0:0
EQUAL? PRSA,V?LEAP /?CTR2
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSO,ME \?CCL3
?CTR2: PRINTR "Du siehst dich um, bevor du springst, und erkennst, da%s du nie %uberleben w%urdest."
?CCL3: EQUAL? PRSA,V?CROSS \?CCL9
PRINTR "Es ist zu weit zum Springen, und es gibt keine Br%ucke."
?CCL9: EQUAL? PRSA,V?THROW-OFF,V?PUT \FALSE
EQUAL? PRSI,CHASM \FALSE
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTI " f%allt au%ser Sichtweite in die Spalte."
CRLF
CALL2 REMOVE-CAREFULLY,PRSO
RSTACK
.FUNCT DOME-PSEUDO:ANY:0:0
EQUAL? PRSA,V?KISS \FALSE
PRINTR "Nein."
.FUNCT GATE-PSEUDO:ANY:0:0
EQUAL? PRSA,V?THROUGH \?CCL3
ICALL2 DO-WALK,P?HINEIN
RTRUE
?CCL3: PRINTR "Das Tor ist von einer unsichtbaren Kraft gesch%utzt. Deine Z%ahne schmerzen, wenn du es ber%uhrst."
.FUNCT DOOR-PSEUDO:ANY:0:0
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
PRINTR "Die T%ur gibt nicht nach."
?CCL3: EQUAL? PRSA,V?THROUGH \FALSE
CALL2 DO-WALK,P?SUED
RSTACK
.FUNCT PAINT-PSEUDO:ANY:0:0
EQUAL? PRSA,V?MUNG \FALSE
PRINTR "Ein bi%schen Farbe splittert weg, zeigt mehr Farbe."
.FUNCT GAS-PSEUDO:ANY:0:0
EQUAL? PRSA,V?SMELL \FALSE
PRINTR "Es riecht hier nach Kohlenoxyd."
.FUNCT DO-FIGHT:ANY:1:1,LEN,CNT,RES,O,OO,OUT
?PRG1: SET 'CNT,0
?PRG3: INC 'CNT
EQUAL? CNT,LEN \?CND5
SET 'RES,TRUE-VALUE
RTRUE
?CND5: GET VILLAINS,CNT >OO
GET OO,V-VILLAIN >O
FSET? O,FIGHTBIT \?PRG3
GETP O,P?ACTION
CALL STACK,F-BUSY?
ZERO? STACK \?PRG3
CALL VILLAIN-BLOW,OO,OUT >RES
ZERO? RES \?CCL11
SET 'RES,FALSE-VALUE
ZERO? RES /TRUE
ZERO? OUT /TRUE
DEC 'OUT
ZERO? OUT \?PRG1
RTRUE
?CCL11: EQUAL? RES,UNCONSCIOUS \?PRG3
RANDOM 3
ADD 1,STACK >OUT
JUMP ?PRG3
.FUNCT REMARK:ANY:3:3,REMARK,D,W,LEN,CNT,STR
GET REMARK,0 >LEN
?PRG1: IGRTR? 'CNT,LEN /?REP2
GET REMARK,CNT >STR
EQUAL? STR,WEP-NOM,WEP-NOM-CAP,WEP-ACC /?CTR6
EQUAL? STR,WEP-ACC-CAP,WEP-DAT,DER-WEP-ACC \?CCL7
?CTR6: EQUAL? STR,WEP-NOM \?CCL12
PRINTI "dein"
FSET? W,DERBIT /?CND10
PRINTC 101
JUMP ?CND10
?CCL12: EQUAL? STR,WEP-NOM-CAP \?CCL17
PRINTI "Dein"
FSET? W,DERBIT /?CND10
FSET? W,DASBIT /?CND10
PRINTC 101
JUMP ?CND10
?CCL17: EQUAL? STR,WEP-ACC \?CCL23
PRINTI "dein"
FSET? W,DERBIT \?CCL26
PRINTI "en"
JUMP ?CND10
?CCL26: FSET? W,DASBIT /?CND10
PRINTC 101
JUMP ?CND10
?CCL23: EQUAL? STR,WEP-ACC-CAP \?CCL29
PRINTI "Dein"
FSET? W,DERBIT \?CCL32
PRINTI "en"
JUMP ?CND10
?CCL32: FSET? W,DASBIT /?CND10
PRINTC 101
JUMP ?CND10
?CCL29: EQUAL? STR,WEP-DAT \?CCL35
PRINTI "dein"
FSET? W,DERBIT /?CTR37
FSET? W,DASBIT \?CCL38
?CTR37: PRINTI "em"
JUMP ?CND10
?CCL38: PRINTI "er"
JUMP ?CND10
?CCL35: EQUAL? STR,DER-WEP-ACC \?CND10
ICALL2 DER-ACC-PRINT,W
?CND10: EQUAL? STR,DER-WEP-ACC /?PRG1
PRINTC 32
ICALL DPRINT,W,FALSE-VALUE
JUMP ?PRG1
?CCL7: EQUAL? STR,DEF-NOM,DEF-NOM-CAP,DEF-ACC /?CTR44
EQUAL? STR,DEF-DAT-CAP \?CCL45
?CTR44: EQUAL? STR,DEF-NOM \?CCL50
PRINTI "der"
JUMP ?CND48
?CCL50: EQUAL? STR,DEF-NOM-CAP \?CCL52
PRINTI "Der"
JUMP ?CND48
?CCL52: EQUAL? STR,DEF-ACC \?CCL54
PRINTI "den"
JUMP ?CND48
?CCL54: EQUAL? STR,DEF-DAT-CAP \?CND48
PRINTI "Dem"
?CND48: PRINTC 32
ICALL DPRINT,D,FALSE-VALUE
JUMP ?PRG1
?CCL45: PRINT STR
JUMP ?PRG1
?REP2: CRLF
RTRUE
.FUNCT FIGHT-STRENGTH:ANY:0:1,ADJUST?,S
ASSIGNED? 'ADJUST? /?CND1
SET 'ADJUST?,TRUE-VALUE
?CND1: DIV SCORE-MAX,5
DIV SCORE,STACK
ADD STRENGTH-MIN,STACK >S
ZERO? ADJUST? /?CCL5
GETP WINNER,P?STRENGTH
ADD S,STACK
RSTACK
?CCL5: RETURN S
.FUNCT VILLAIN-STRENGTH:ANY:1:1,OO,VILLAIN,OD,TMP
GET OO,V-VILLAIN >VILLAIN
GETP VILLAIN,P?STRENGTH >OD
LESS? OD,0 /?CND1
EQUAL? VILLAIN,THIEF \?CND3
ZERO? THIEF-ENGROSSED /?CND3
GRTR? OD,2 \?CND7
SET 'OD,2
?CND7: SET 'THIEF-ENGROSSED,FALSE-VALUE
?CND3: ZERO? PRSI \?PRD12
RETURN OD
?PRD12: FSET? PRSI,WEAPONBIT /?PRD13
RETURN OD
?PRD13: GET OO,V-BEST
EQUAL? STACK,PRSI /?CCL10
RETURN OD
?CCL10: GET OO,V-BEST-ADV
SUB OD,STACK >TMP
LESS? TMP,1 \?CND14
SET 'TMP,1
?CND14: SET 'OD,TMP
?CND1: RETURN OD
.FUNCT FIND-WEAPON:ANY:1:1,O,W
FIRST? O >W /?BOGUS1
?BOGUS1: ZERO? W /FALSE
?PRG4: EQUAL? W,STILETTO,AXE,SWORD /?CTR7
EQUAL? W,KNIFE,RUSTY-KNIFE \?CCL8
?CTR7: RETURN W
?CCL8: NEXT? W >W /?PRG4
RFALSE
.FUNCT VILLAIN-BLOW:ANY:2:2,OO,OUT?,VILLAIN,REMARKS,DWEAPON,ATT,DEF,OA,OD,TBL,RES,NWEAPON
GET OO,V-VILLAIN >VILLAIN
GET OO,V-MSGS >REMARKS
FCLEAR WINNER,STAGGERED
FSET? VILLAIN,STAGGERED \?CND1
ICALL2 DER-NOM-CAP-PRINT,VILLAIN
PRINTI " gewinnt langsam die Kontrolle %uber seine F%u%se."
CRLF
FCLEAR VILLAIN,STAGGERED
RTRUE
?CND1: CALL2 VILLAIN-STRENGTH,OO >ATT
SET 'OA,ATT
CALL1 FIGHT-STRENGTH >DEF
GRTR? DEF,0 \TRUE
CALL2 FIGHT-STRENGTH,FALSE-VALUE >OD
CALL2 FIND-WEAPON,WINNER >DWEAPON
LESS? DEF,0 \?CCL7
SET 'RES,KILLED
JUMP ?CND5
?CCL7: EQUAL? DEF,1 \?CCL10
GRTR? ATT,2 \?CND11
SET 'ATT,3
?CND11: SUB ATT,1
GET DEF1-RES,STACK >TBL
JUMP ?CND8
?CCL10: EQUAL? DEF,2 \?CCL14
GRTR? ATT,3 \?CND15
SET 'ATT,4
?CND15: SUB ATT,1
GET DEF2-RES,STACK >TBL
JUMP ?CND8
?CCL14: GRTR? DEF,2 \?CND8
SUB ATT,DEF >ATT
LESS? ATT,-1 \?CCL20
SET 'ATT,-2
JUMP ?CND18
?CCL20: GRTR? ATT,1 \?CND18
SET 'ATT,2
?CND18: ADD ATT,2
GET DEF3-RES,STACK >TBL
?CND8: RANDOM 9
SUB STACK,1
GET TBL,STACK >RES
ZERO? OUT? /?CND22
EQUAL? RES,STAGGER \?CCL26
SET 'RES,HESITATE
JUMP ?CND22
?CCL26: SET 'RES,SITTING-DUCK
?CND22: EQUAL? RES,STAGGER \?CND27
ZERO? DWEAPON /?CND27
CALL2 ZPROB,25
ZERO? STACK /?CND27
SET 'RES,LOSE-WEAPON
?CND27: SUB RES,1
GET REMARKS,STACK
CALL2 RANDOM-ELEMENT,STACK
ICALL REMARK,STACK,WINNER,DWEAPON
?CND5: EQUAL? RES,MISSED /?CND32
EQUAL? RES,HESITATE /?CND32
EQUAL? RES,UNCONSCIOUS /?CND32
EQUAL? RES,KILLED /?CTR37
EQUAL? RES,SITTING-DUCK \?CCL38
?CTR37: SET 'DEF,0
JUMP ?CND32
?CCL38: EQUAL? RES,LIGHT-WOUND \?CCL42
DLESS? 'DEF,0 \?CND43
SET 'DEF,0
?CND43: GRTR? LOAD-ALLOWED,50 \?CND32
SUB LOAD-ALLOWED,10 >LOAD-ALLOWED
JUMP ?CND32
?CCL42: EQUAL? RES,SERIOUS-WOUND \?CCL48
SUB DEF,2 >DEF
LESS? DEF,0 \?CND49
SET 'DEF,0
?CND49: GRTR? LOAD-ALLOWED,50 \?CND32
SUB LOAD-ALLOWED,20 >LOAD-ALLOWED
JUMP ?CND32
?CCL48: EQUAL? RES,STAGGER \?CCL54
FSET WINNER,STAGGERED
JUMP ?CND32
?CCL54: MOVE DWEAPON,HERE
CALL2 FIND-WEAPON,WINNER >NWEAPON
ZERO? NWEAPON /?CND32
PRINTI "Gl%ucklicherweise hast du noch "
ICALL2 EIN-ACC-PRINT,NWEAPON
PRINTC 46
CRLF
?CND32: CALL WINNER-RESULT,DEF,RES,OD
RSTACK
.FUNCT HERO-BLOW:ANY:0:0,OO,VILLAIN,OUT?,DWEAPON,ATT,DEF,CNT,OA,OD,TBL,RES,NWEAPON,LEN
GET VILLAINS,0 >LEN
?PRG1: INC 'CNT
EQUAL? CNT,LEN /?REP2
GET VILLAINS,CNT >OO
GET OO,V-VILLAIN
EQUAL? STACK,PRSO \?PRG1
?REP2: FSET PRSO,FIGHTBIT
FSET? WINNER,STAGGERED \?CND7
PRINTI "Du erholst dich immer noch von dem letzten Hieb, so da%s dein Angriff keine Wirkung hat."
CRLF
FCLEAR WINNER,STAGGERED
RTRUE
?CND7: CALL1 FIGHT-STRENGTH >ATT
LESS? ATT,1 \?CND9
SET 'ATT,1
?CND9: SET 'OA,ATT
GET OO,V-VILLAIN >VILLAIN
CALL2 VILLAIN-STRENGTH,OO >DEF
SET 'OD,DEF
ZERO? OD \?CND11
EQUAL? PRSO,WINNER \?CND13
CALL2 JIGS-UP,STR?283
RSTACK
?CND13: ICALL2 DER-ACC-CAP-PRINT,VILLAIN
PRINTR " angreifen ist sinnlos."
?CND11: CALL2 FIND-WEAPON,VILLAIN >DWEAPON
ZERO? DWEAPON /?CTR16
LESS? DEF,0 \?CCL17
?CTR16: ICALL2 DER-NOM-CAP-PRINT,VILLAIN
PRINTI ", wer "
LESS? DEF,0 \?CCL22
PRINTI "bewu%stlos"
JUMP ?CND20
?CCL22: PRINTI "unbewaffnet"
?CND20: PRINTI " ist, kann sich nicht wehren. "
ICALL2 PRONOUN-NOM-CAP-PRINT,VILLAIN
PRINTI " stirbt."
CRLF
SET 'RES,KILLED
JUMP ?CND15
?CCL17: EQUAL? DEF,1 \?CCL25
GRTR? ATT,2 \?CND26
SET 'ATT,3
?CND26: SUB ATT,1
GET DEF1-RES,STACK >TBL
JUMP ?CND23
?CCL25: EQUAL? DEF,2 \?CCL29
GRTR? ATT,3 \?CND30
SET 'ATT,4
?CND30: SUB ATT,1
GET DEF2-RES,STACK >TBL
JUMP ?CND23
?CCL29: GRTR? DEF,2 \?CND23
SUB ATT,DEF >ATT
LESS? ATT,-1 \?CCL35
SET 'ATT,-2
JUMP ?CND33
?CCL35: GRTR? ATT,1 \?CND33
SET 'ATT,2
?CND33: ADD ATT,2
GET DEF3-RES,STACK >TBL
?CND23: RANDOM 9
SUB STACK,1
GET TBL,STACK >RES
ZERO? OUT? /?CND37
EQUAL? RES,STAGGER \?CCL41
SET 'RES,HESITATE
JUMP ?CND37
?CCL41: SET 'RES,SITTING-DUCK
?CND37: EQUAL? RES,STAGGER \?CND42
ZERO? DWEAPON /?CND42
RANDOM 100
GRTR? 25,STACK \?CND42
SET 'RES,LOSE-WEAPON
?CND42: SUB RES,1
GET HERO-MELEE,STACK
CALL2 RANDOM-ELEMENT,STACK
ICALL REMARK,STACK,PRSO,PRSI
?CND15: EQUAL? RES,MISSED /?CND47
EQUAL? RES,HESITATE /?CND47
EQUAL? RES,UNCONSCIOUS \?CCL52
SUB 0,DEF >DEF
JUMP ?CND47
?CCL52: EQUAL? RES,KILLED /?CTR53
EQUAL? RES,SITTING-DUCK \?CCL54
?CTR53: SET 'DEF,0
JUMP ?CND47
?CCL54: EQUAL? RES,LIGHT-WOUND \?CCL58
DLESS? 'DEF,0 \?CND47
SET 'DEF,0
JUMP ?CND47
?CCL58: EQUAL? RES,SERIOUS-WOUND \?CCL62
SUB DEF,2 >DEF
LESS? DEF,0 \?CND47
SET 'DEF,0
JUMP ?CND47
?CCL62: EQUAL? RES,STAGGER \?CCL66
FSET PRSO,STAGGERED
JUMP ?CND47
?CCL66: FCLEAR DWEAPON,NDESCBIT
FSET DWEAPON,WEAPONBIT
MOVE DWEAPON,HERE
ICALL2 THIS-IS-IT,DWEAPON
?CND47: CALL VILLAIN-RESULT,PRSO,DEF,RES
RSTACK
.FUNCT WINNER-RESULT:ANY:3:3,DEF,RES,OD
ZERO? DEF \?CCL3
PUSH -10000
JUMP ?CND1
?CCL3: SUB DEF,OD
?CND1: PUTP WINNER,P?STRENGTH,STACK
SUB DEF,OD
LESS? STACK,0 \?CND4
CALL QUEUE,I-CURE,CURE-WAIT
PUT STACK,0,1
?CND4: CALL1 FIGHT-STRENGTH
GRTR? STACK,0 /?CCL8
CALL2 FIGHT-STRENGTH,FALSE-VALUE
SUB 0,STACK
ADD 1,STACK
PUTP WINNER,P?STRENGTH,STACK
ICALL2 JIGS-UP,STR?284
RFALSE
?CCL8: RETURN RES
.FUNCT VILLAIN-RESULT:ANY:3:3,VILLAIN,DEF,RES
PUTP VILLAIN,P?STRENGTH,DEF
ZERO? DEF \?CCL3
FCLEAR VILLAIN,FIGHTBIT
PRINTI "Fast gleichzeitig mit dem letzten Atemzug des "
ICALL DPRINT,VILLAIN,FALSE-VALUE
EQUAL? VILLAIN,THIEF \?CCL6
PRINTI "es"
JUMP ?CND4
?CCL6: PRINTC 115
?CND4: PRINTI " verh%ullt ihn eine Wolke aus gespenstigem schwarzem Nebel, und wenn der Nebel sich hebt, ist die Leiche verschwunden."
CRLF
ICALL2 REMOVE-CAREFULLY,VILLAIN
GETP VILLAIN,P?ACTION
ICALL STACK,F-DEAD
RETURN RES
?CCL3: EQUAL? RES,UNCONSCIOUS \?CCL8
GETP VILLAIN,P?ACTION
ICALL STACK,F-UNCONSCIOUS
RETURN RES
?CCL8: RETURN RES
.FUNCT WINNING?:ANY:1:1,V,VS,PS
GETP V,P?STRENGTH >VS
CALL1 FIGHT-STRENGTH
SUB VS,STACK >PS
GRTR? PS,3 \?CCL3
RANDOM 100
GRTR? 90,STACK /TRUE
RFALSE
?CCL3: GRTR? PS,0 \?CCL7
RANDOM 100
GRTR? 75,STACK /TRUE
RFALSE
?CCL7: ZERO? PS \?CCL11
RANDOM 100
GRTR? 50,STACK /TRUE
RFALSE
?CCL11: GRTR? VS,1 \?CCL15
RANDOM 100
GRTR? 25,STACK /TRUE
RFALSE
?CCL15: RANDOM 100
GRTR? 10,STACK /TRUE
RFALSE
.FUNCT I-CURE:ANY:0:0,S
GETP WINNER,P?STRENGTH >S
GRTR? S,0 \?CCL3
SET 'S,0
PUTP WINNER,P?STRENGTH,S
JUMP ?CND1
?CCL3: LESS? S,0 \?CND1
INC 'S
PUTP WINNER,P?STRENGTH,S
?CND1: LESS? S,0 \?CCL7
LESS? LOAD-ALLOWED,LOAD-MAX \?CND8
ADD LOAD-ALLOWED,10 >LOAD-ALLOWED
?CND8: CALL QUEUE,I-CURE,CURE-WAIT
PUT STACK,0,1
RTRUE
?CCL7: SET 'LOAD-ALLOWED,LOAD-MAX
CALL2 INT,I-CURE
PUT STACK,0,0
RTRUE
.FUNCT I-FIGHT:ANY:0:0,FIGHT?,LEN,CNT,OO,O,P
GET VILLAINS,0 >LEN
ZERO? DEAD \FALSE
SET 'CNT,0
?PRG3: INC 'CNT
EQUAL? CNT,LEN /?REP4
GET VILLAINS,CNT >OO
GET OO,V-VILLAIN >O
IN? O,HERE \?CCL9
FSET? O,INVISIBLE /?CCL9
EQUAL? O,THIEF \?CCL14
ZERO? THIEF-ENGROSSED /?CCL14
SET 'THIEF-ENGROSSED,FALSE-VALUE
JUMP ?PRG3
?CCL14: GETP O,P?STRENGTH
LESS? STACK,0 \?CCL18
GET OO,V-PROB >P
ZERO? P /?CCL21
RANDOM 100
GRTR? P,STACK \?CCL21
PUT OO,V-PROB,0
ICALL2 AWAKEN,O
JUMP ?PRG3
?CCL21: ADD P,25
PUT OO,V-PROB,STACK
JUMP ?PRG3
?CCL18: FSET? O,FIGHTBIT /?CCL24
GETP O,P?ACTION
CALL STACK,F-FIRST?
ZERO? STACK /?PRG3
?CCL24: SET 'FIGHT?,TRUE-VALUE
JUMP ?PRG3
?CCL9: FSET? O,FIGHTBIT \?CND27
GETP O,P?ACTION
ICALL STACK,F-BUSY?
?CND27: EQUAL? O,THIEF \?CND29
SET 'THIEF-ENGROSSED,FALSE-VALUE
?CND29: FCLEAR WINNER,STAGGERED
FCLEAR O,STAGGERED
FCLEAR O,FIGHTBIT
ICALL2 AWAKEN,O
JUMP ?PRG3
?REP4: ZERO? FIGHT? /FALSE
CALL2 DO-FIGHT,LEN
RSTACK
.FUNCT AWAKEN:ANY:1:1,O,S
GETP O,P?STRENGTH >S
LESS? S,0 \TRUE
SUB 0,S
PUTP O,P?STRENGTH,STACK
GETP O,P?ACTION
ICALL STACK,F-CONSCIOUS
RTRUE
.FUNCT I-SWORD:ANY:0:0,DEM,G,NG,P,T,L
CALL2 INT,I-SWORD >DEM
GETP SWORD,P?TVALUE >G
IN? SWORD,ADVENTURER \?CCL3
CALL2 INFESTED?,HERE
ZERO? STACK /?CCL6
SET 'NG,2
JUMP ?CND4
?CCL6: SET 'P,0
?PRG7: NEXTP HERE,P >P
ZERO? P /?CND4
LESS? P,LOW-DIRECTION /?PRG7
GETPT HERE,P >T
PTSIZE T >L
EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG7
GET T,0
CALL2 INFESTED?,STACK
ZERO? STACK /?PRG7
SET 'NG,1
?CND4: EQUAL? NG,G /FALSE
EQUAL? NG,2 \?CCL21
PRINTI "Dein Schwert hat hell zu leuchten begonen."
CRLF
JUMP ?CND17
?CCL21: EQUAL? NG,1 \?CCL23
PRINTI "Dein Schwert leuchtet mit einem schwachen blauen Schimmer."
CRLF
JUMP ?CND17
?CCL23: ZERO? NG \?CND17
PRINTI "Dein Schwert leuchtet nicht mehr."
CRLF
?CND17: PUTP SWORD,P?TVALUE,NG
RTRUE
?CCL3: PUT DEM,C-ENABLED?,0
RFALSE
.FUNCT INFESTED?:ANY:1:1,R,F
FIRST? R >F /?PRG2
?PRG2: ZERO? F /FALSE
FSET? F,ACTORBIT \?CCL8
FSET? F,INVISIBLE \TRUE
?CCL8: NEXT? F >F /?PRG2
RFALSE
.FUNCT I-THIEF:ANY:0:0,RM,ROBJ,HERE?,ONCE,FLG
LOC THIEF >RM
?PRG1: FSET? THIEF,INVISIBLE /?PRD6
SET 'HERE?,1
JUMP ?PEN5
?PRD6: SET 'HERE?,0
?PEN5: ZERO? HERE? /?CND3
LOC THIEF >RM
?CND3: EQUAL? RM,TREASURE-ROOM \?CCL10
EQUAL? RM,HERE /?CCL10
ZERO? HERE? /?CND13
ICALL1 HACK-TREASURES
SET 'HERE?,FALSE-VALUE
?CND13: ICALL2 DEPOSIT-BOOTY,TREASURE-ROOM
JUMP ?CND8
?CCL10: EQUAL? RM,HERE \?CCL16
FSET? RM,ONBIT /?CCL16
IN? TROLL,HERE /?CCL16
CALL2 THIEF-VS-ADVENTURER,HERE?
ZERO? STACK \TRUE
FSET? THIEF,INVISIBLE \?CND8
SET 'HERE?,FALSE-VALUE
JUMP ?CND8
?CCL16: IN? THIEF,RM \?CND24
FSET? THIEF,INVISIBLE /?CND24
FSET THIEF,INVISIBLE
SET 'HERE?,FALSE-VALUE
?CND24: FSET? RM,TOUCHBIT \?CND8
ICALL ROB,RM,THIEF,75
CALL2 IN-MAZE?,RM
ZERO? STACK /?CCL32
CALL2 IN-MAZE?,HERE
ZERO? STACK /?CCL32
CALL2 ROB-MAZE,RM >FLG
JUMP ?CND8
?CCL32: CALL2 STEAL-JUNK,RM >FLG
?CND8: ZERO? ONCE /?PRT39
SET 'ONCE,0
JUMP ?PRE41
?PRT39: SET 'ONCE,1
?PRE41: ZERO? ONCE /?REP2
ZERO? HERE? \?REP2
ICALL1 RECOVER-STILETTO
?PRG42: ZERO? RM /?CCL45
NEXT? RM >RM /?CND44
?CCL45: FIRST? ROOMS >RM /?CND44
?CND44: FSET? RM,SACREDBIT /?PRG42
FSET? RM,RLANDBIT \?PRG42
MOVE THIEF,RM
FCLEAR THIEF,FIGHTBIT
FSET THIEF,INVISIBLE
SET 'THIEF-HERE,FALSE-VALUE
JUMP ?PRG1
?REP2: EQUAL? RM,TREASURE-ROOM /?CND53
ICALL2 DROP-JUNK,RM
?CND53: RETURN FLG
.FUNCT DROP-JUNK:ANY:1:1,RM,X,N,FLG
FIRST? THIEF >X /?PRG2
?PRG2: ZERO? X \?CND4
RETURN FLG
?CND4: NEXT? X >N /?BOGUS6
?BOGUS6: EQUAL? X,STILETTO,LARGE-BAG /?CND7
GETP X,P?TVALUE
ZERO? STACK \?CND7
CALL2 ZPROB,30
ZERO? STACK /?CND7
FCLEAR X,INVISIBLE
MOVE X,RM
ZERO? FLG \?CND7
EQUAL? RM,HERE \?CND7
PRINTI "Der R%auber, der seinen Sack durchsucht, l%a%st ein paar Dinge, die er f%ur wertlos h%alt, fallen."
CRLF
SET 'FLG,TRUE-VALUE
?CND7: SET 'X,N
JUMP ?PRG2
.FUNCT RECOVER-STILETTO:ANY:0:0
LOC THIEF
IN? STILETTO,STACK \FALSE
FSET STILETTO,NDESCBIT
MOVE STILETTO,THIEF
RTRUE
.FUNCT STEAL-JUNK:ANY:1:1,RM,X,N
FIRST? RM >X /?PRG2
?PRG2: ZERO? X /FALSE
NEXT? X >N /?BOGUS6
?BOGUS6: GETP X,P?TVALUE
ZERO? STACK \?CND7
FSET? X,TAKEBIT \?CND7
FSET? X,SACREDBIT /?CND7
FSET? X,INVISIBLE /?CND7
EQUAL? X,STILETTO /?CCL8
CALL2 ZPROB,10
ZERO? STACK /?CND7
?CCL8: MOVE X,THIEF
FSET X,TOUCHBIT
FSET X,INVISIBLE
EQUAL? X,ROPE \?CND16
SET 'DOME-FLAG,FALSE-VALUE
?CND16: EQUAL? RM,HERE \FALSE
PRINTI "Pl%otzlich bemerkst du, da%s "
ICALL2 DER-NOM-PRINT,X
PRINTR " verschwunden ist."
?CND7: SET 'X,N
JUMP ?PRG2
.FUNCT ROB:ANY:2:3,WHAT,WHERE,PROB,N,X,ROBBED?
FIRST? WHAT >X /?PRG2
?PRG2: ZERO? X \?CND4
RETURN ROBBED?
?CND4: NEXT? X >N /?BOGUS6
?BOGUS6: FSET? X,INVISIBLE /?CND7
FSET? X,SACREDBIT /?CND7
GETP X,P?TVALUE
GRTR? STACK,0 \?CND7
ZERO? PROB /?CCL8
RANDOM 100
GRTR? PROB,STACK \?CND7
?CCL8: MOVE X,WHERE
FSET X,TOUCHBIT
EQUAL? WHERE,THIEF \?CND15
FSET X,INVISIBLE
?CND15: SET 'ROBBED?,TRUE-VALUE
?CND7: SET 'X,N
JUMP ?PRG2
.FUNCT V-DIAGNOSE:ANY:0:0,MS:FIX,WD:FIX,RS:FIX,?TMP1
CALL2 FIGHT-STRENGTH,FALSE-VALUE >MS
GETP WINNER,P?STRENGTH >WD
ADD MS,WD >RS
CALL2 INT,I-CURE
GET STACK,C-ENABLED?
ZERO? STACK \?CCL3
SET 'WD,0
JUMP ?CND1
?CCL3: SUB 0,WD >WD
?CND1: ZERO? WD \?CCL6
PRINTI "Du bist kerngesund."
JUMP ?CND4
?CCL6: PRINTI "Du hast "
EQUAL? WD,1 \?CCL9
PRINTI "eine leichte Verletzung,"
JUMP ?CND4
?CCL9: EQUAL? WD,2 \?CCL11
PRINTI "eine ernste Verletzung,"
JUMP ?CND4
?CCL11: EQUAL? WD,3 \?CCL13
PRINTI "mehrere Verletzungen,"
JUMP ?CND4
?CCL13: GRTR? WD,3 \?CND4
PRINTI "ernste Verletzungen,"
?CND4: ZERO? WD /?CND15
PRINTI " die nach "
SUB WD,1
MUL CURE-WAIT,STACK >?TMP1
CALL2 INT,I-CURE
GET STACK,C-TICK
ADD ?TMP1,STACK
PRINTN STACK
PRINTI " Z%ugen geheilt sein werden."
?CND15: CRLF
PRINTI "Du kannst "
ZERO? RS \?CCL19
PRINTI "bald den Tod erwarten."
JUMP ?CND17
?CCL19: EQUAL? RS,1 \?CCL21
PRINTI "von einer weiteren leichten Verletzung get%otet werden."
JUMP ?CND17
?CCL21: EQUAL? RS,2 \?CCL23
PRINTI "von einer schweren Verletzung get%otet werden."
JUMP ?CND17
?CCL23: EQUAL? RS,3 \?CCL25
PRINTI "eine schwere Verletzung %uberleben"
JUMP ?CND17
?CCL25: GRTR? RS,3 \?CND17
PRINTI "mehrere Verletzungen %uberleben."
?CND17: CRLF
ZERO? DEATHS /FALSE
PRINTI "Du bist "
EQUAL? DEATHS,1 \?CCL32
PRINTI "einmal"
JUMP ?CND30
?CCL32: PRINTI "zweimal"
?CND30: PRINTR " get%otet worden."
.FUNCT V-SCORE:ANY:0:1,ASK?:ATOM
ASSIGNED? 'ASK? /?CND1
SET 'ASK?,TRUE-VALUE
?CND1: PRINTI "Dein Spielstand ist "
PRINTN SCORE
PRINTI " (aus 350 Gesamtpunkten), in "
PRINTN MOVES
EQUAL? MOVES,1 \?CCL5
PRINTI " Z%uge."
JUMP ?CND3
?CCL5: PRINTI " Z%ugen."
?CND3: CRLF
PRINTI "Damit bist du ein "
EQUAL? SCORE,350 \?CCL8
PRINTI "Meisterabenteurer"
JUMP ?CND6
?CCL8: GRTR? SCORE,330 \?CCL10
PRINTI "Hexenmeister"
JUMP ?CND6
?CCL10: GRTR? SCORE,300 \?CCL12
PRINTI "Meister"
JUMP ?CND6
?CCL12: GRTR? SCORE,200 \?CCL14
PRINTI "Abenteurer"
JUMP ?CND6
?CCL14: GRTR? SCORE,100 \?CCL16
PRINTI "Jungabenteurer"
JUMP ?CND6
?CCL16: GRTR? SCORE,50 \?CCL18
PRINTI "Anf%angerabenteurer"
JUMP ?CND6
?CCL18: GRTR? SCORE,25 \?CCL20
PRINTI "Amateurabenteurer"
JUMP ?CND6
?CCL20: PRINTI "Anf%anger"
?CND6: PRINTC 46
CRLF
RETURN SCORE
.FUNCT JIGS-UP:ANY:1:2,DESC,PLAYER?
SET 'WINNER,ADVENTURER
ZERO? DEAD /?CND1
PRINTI "
Nur eine au%sergew%ohnliche Person kann get%otet werden, nachdem sie schon tot ist.Leider k%onnen nur au%sergew%ohnliche talentierte Leute damit fertig werden. Mir fehlt dieses Talent. Schade."
CRLF
ICALL1 FINISH
?CND1: PRINT DESC
CRLF
ZERO? LUCKY \?PRG5
PRINTI "Pech gehabt, was?"
CRLF
?PRG5: ICALL2 SCORE-UPD,-10
PRINTI "
**** Du bist tot ****
"
LOC WINNER
FSET? STACK,VEHBIT \?CND7
SET 'OHERE,FALSE-VALUE
MOVE WINNER,HERE
?CND7: LESS? DEATHS,2 /?CCL11
PRINTI "Du bist eindeutig ein lebensm%uder Narr. Wir verbieten Psychopaten den Eintritt zur H%ohle, da sie die anderen Abenteurer gef%ahrden. Deine leiblichen %Uberreste werden dem Land der lebendigen Toten %ubergeben, wo deine Mitabenteurer sich an ihnen erg%otzen k%onnen."
CRLF
CALL1 FINISH
RSTACK
?CCL11: INC 'DEATHS
MOVE WINNER,HERE
SET 'OHERE,FALSE-VALUE
FSET? SOUTH-TEMPLE,TOUCHBIT \?CCL14
PRINTI "W%ahrend du deinen letzten Atemzug tust, f%uhlst du dich all deiner B%urden entledigt. Dieses Gef%uhl verl%a%st dich, als du dich vor den Toren der H%olle befindest, wo die Geister dich anheulen und dir den Eintritt verwehren. Deine Sinne sind getr%ubt. Die Dinge in dem Kerker scheinen nicht wahrnehmbar, farblos, sogar unrealistisch."
CRLF
CRLF
SET 'DEAD,TRUE-VALUE
SET 'TROLL-FLAG,TRUE-VALUE
SET 'ALWAYS-LIT,TRUE-VALUE
PUTP WINNER,P?ACTION,DEAD-FUNCTION
ICALL2 GOTO,ENTRANCE-TO-HADES
JUMP ?CND12
?CCL14: PRINTI "Na, la%s uns noch mal sehen...
Na ja, wir sollten Dir vielleicht noch eine Chance geben. Wir k%onnen es f%ur dich nicht alles in Ordnung bringen, aber man kann ja nicht alles haben."
CRLF
CRLF
ICALL2 GOTO,FOREST-1
?CND12: FCLEAR TRAP-DOOR,TOUCHBIT
SET 'P-CONT,FALSE-VALUE
ICALL1 RANDOMIZE-OBJECTS
ICALL1 KILL-INTERRUPTS
RETURN 2
.FUNCT RANDOMIZE-OBJECTS:ANY:0:0,R,F,N,L
IN? LAMP,WINNER \?CND1
MOVE LAMP,LIVING-ROOM
?CND1: IN? COFFIN,WINNER \?CND3
MOVE COFFIN,EGYPT-ROOM
?CND3: PUTP SWORD,P?TVALUE,0
FIRST? WINNER >N /?BOGUS5
?BOGUS5: GET ABOVE-GROUND,0 >L
?PRG6: SET 'F,N
ZERO? F /TRUE
NEXT? F >N /?BOGUS10
?BOGUS10: GETP F,P?TVALUE
GRTR? STACK,0 \?CCL13
?PRG14: ZERO? R \?CND16
FIRST? ROOMS >R /?CND16
?CND16: FSET? R,RLANDBIT \?CCL21
FSET? R,ONBIT /?CCL21
RANDOM 100
GRTR? 50,STACK \?CCL21
MOVE F,R
JUMP ?PRG6
?CCL21: NEXT? R >R /?PRG14
JUMP ?PRG14
?CCL13: RANDOM L
GET ABOVE-GROUND,STACK
MOVE F,STACK
JUMP ?PRG6
.FUNCT KILL-INTERRUPTS:ANY:0:0
CALL2 INT,I-XB
PUT STACK,0,0
CALL2 INT,I-XC
PUT STACK,0,0
CALL2 INT,I-CYCLOPS
PUT STACK,0,0
CALL2 INT,I-LANTERN
PUT STACK,0,0
CALL2 INT,I-CANDLES
PUT STACK,0,0
CALL2 INT,I-SWORD
PUT STACK,0,0
CALL2 INT,I-FOREST-ROOM
PUT STACK,0,0
CALL2 INT,I-MATCH
PUT STACK,0,0
FCLEAR MATCH,ONBIT
RTRUE
.FUNCT BAG-OF-COINS-F:ANY:0:0
CALL STUPID-CONTAINER,BAG-OF-COINS,STR?405
RSTACK
.FUNCT TRUNK-F:ANY:0:0
CALL STUPID-CONTAINER,TRUNK,STR?406
RSTACK
.FUNCT STUPID-CONTAINER:ANY:2:2,OBJ,STR
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
PRINTI "Die "
PRINT STR
PRINTR " befinden sich darin in Sicherheit. Es besteht kein Grund dazu, das zu tun."
?CCL3: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL5
PRINTI "Da sind viele "
PRINT STR
PRINTR " darin."
?CCL5: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,OBJ \FALSE
PRINTI "Sei nicht albern. Dann w%are es ja nicht mehr "
ICALL2 EIN-NOM-PRINT,OBJ
PRINTR "."
.FUNCT DUMB-CONTAINER:ANY:0:0
EQUAL? PRSA,V?LOOK-INSIDE,V?CLOSE,V?OPEN \?CCL3
PRINTR "Das geht nicht."
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "Es sieht eigentlich wie "
ICALL2 EIN-ACC-PRINT,PRSO
PRINTR " aus."
.FUNCT GARLIC-F:ANY:0:0
EQUAL? PRSA,V?EAT \FALSE
ICALL2 REMOVE-CAREFULLY,PRSO
PRINTR "Zur H%olle! Auf diese Weise kannst du zwar keine Freunde gewinnen, aber hier ist sowieso niemand besonders freundlich. Also schluck's."
.FUNCT CHAIN-PSEUDO:ANY:0:0
EQUAL? PRSA,V?MOVE,V?TAKE \?CCL3
PRINTR "Die Kette l%ost sich nicht."
?CCL3: EQUAL? PRSA,V?LOWER,V?RAISE \?CCL5
PRINTR "Vielleicht solltest du das mit dem Korb machen."
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Die Kette h%alt einen Korb innerhalb eines Schachtes."
.FUNCT TROLL-ROOM-F:ANY:1:1,RARG
EQUAL? RARG,M-ENTER \FALSE
IN? TROLL,HERE \FALSE
CALL2 THIS-IS-IT,TROLL
RSTACK
.ENDI