/ Sangraal by Jonathan R. Partington / / This game (c) Copyright J. R. Partington, but freely distributable. / / To quote the author: / / "Personally, I am happy for people to convert the games for any system / they like, as long as they give due acknowledgements (and don't / attempt to make any money out of them without consulting me first!)" *** JRP1.N.SANGRAAL:INIT / INITIAL PART OF SANGRAAL DATABASE / --------------------------------- / !POSSESSIONS START1 PLAYER !POSSESSIONS GALLRM GALLOWS MANDRAKE !POSSESSIONS ROUND COCK !POSSESSIONS PATH1 TREE !POSSESSIONS TREE SWORD !POSSESSIONS CHURCH6 SKELETON VIOLIN !POSSESSIONS CHURCH5 STONE !POSSESSIONS CHURCH4 COFFIN !POSSESSIONS CRYPT CORPSE !POSSESSIONS PATH2 HORSE !POSSESSIONS INHORSE LEVER !POSSESSIONS JUNC1 FIRE !POSSESSIONS CTOWER TAPESTRY !POSSESSIONS ANAGRM GEM !POSSESSIONS SALT1 PILLAR !POSSESSIONS SALT2 ROCK !POSSESSIONS DES7 OZ !POSSESSIONS DES18 FOLLY !POSSESSIONS INCITY IDOL !POSSESSIONS LAKE BOAT !POSSESSIONS DEND1 DEMON !POSSESSIONS DEND2 HAG !POSSESSIONS HAG EYE !POSSESSIONS ANTERM PAPER !POSSESSIONS GROTTO DAME CRYSTAL !POSSESSIONS F11 PATEN !POSSESSIONS F13 COINS !POSSESSIONS SLROOM BED !POSSESSIONS NXHALL CLOTH FARTH BATON !POSSESSIONS ENVYRM BOARD !POSSESSIONS GLUTRM CHEESE !POSSESSIONS DOGRM DOG !POSSESSIONS DOG BONE !POSSESSIONS WRATRM PAGE BALL !POSSESSIONS PRIDRM CHOIR !POSSESSIONS WIDOWS FRIAR !POSSESSIONS CASTLE KTA KTB KTC KTD KTE KTF KTG KTH !POSSESSIONS JOHOCO CURTAIN !POSSESSIONS JUNC2 WIG !POSSESSIONS JHCEND SCROLL !POSSESSIONS TRK6 ARK NOAH !POSSESSIONS TRK2 WITCH !POSSESSIONS WOOD2 ERLKING !POSSESSIONS BOOL1 RUBY SAPPH !POSSESSIONS SINAI2 TABLET !POSSESSIONS TRK1 PORTRAIT !POSSESSIONS DON1 JUAN PIE !POSSESSIONS FARM1 RAVEN !POSSESSIONS FARM2 EMU !POSSESSIONS FARM3 SLOTH !POSSESSIONS FARM4 WOLF !POSSESSIONS FARM6 SHEEP LAMB !POSSESSIONS HELL5 TORTOISE !POSSESSIONS HELL7 GREASE !POSSESSIONS HELL8 HMDUM1 HMDUM2 HMDUM3 !POSSESSIONS KLIB BOOK VINE !POSSESSIONS WISTEM ALTAR !POSSESSIONS ALTAR PEARL !POSSESSIONS FOGEND FOGDUM5 GURU !POSSESSIONS FOGMAZE1 FOGDUM1 !POSSESSIONS FOGMAZE2 FOGDUM2 !POSSESSIONS FOGMAZE3 FOGDUM3 !POSSESSIONS FOGMAZE4 FOGDUM4 !POSSESSIONS PAL0 MONK !PROP LOON2 VISITED !PROP DES2 VISITED !PROP DES3 VISITED !PROP DES4 VISITED !PROP DES5 VISITED !PROP DES6 VISITED !PROP DES8 VISITED !PROP DES9 VISITED !PROP DES10 VISITED !PROP DES11 VISITED !PROP DES12 VISITED !PROP DES13 VISITED !PROP DES14 VISITED !PROP DES15 VISITED !PROP DES16 VISITED !PROP DES17 VISITED !PROP LAKEX DISORIENT !PROP F1 DISORIENT !PROP F2 DISORIENT !PROP F3 DISORIENT !PROP F4 DISORIENT !PROP F5 DISORIENT !PROP F6 DISORIENT !PROP F7 DISORIENT !PROP F8 DISORIENT !PROP F9 DISORIENT !PROP F10 DISORIENT !PROP F11 DISORIENT !PROP F12 DISORIENT !PROP F13 DISORIENT !PROP F14 DISORIENT !PROP LURM1 DISORIENT !PROP LURM2 DISORIENT !PROP HELL1 VISITED DISORIENT !PROP HELL2 VISITED DISORIENT !PROP HELL3 VISITED DISORIENT !PROP HELL4 VISITED DISORIENT !PROP HELL5 DISORIENT !PROP HELL6 DISORIENT !PROP HELL7 DISORIENT !PROP HELL8 VISITED DISORIENT !PROP FOGMAZE1 DISORIENT !PROP FOGMAZE2 DISORIENT !PROP FOGMAZE3 DISORIENT !PROP FOGMAZE4 DISORIENT !PROP PLAYER LIGHT !PROP LIGHTDUM LIGHT NOTAKE !PROP MANDRAKE NOTAKE !PROP GALLOWS NOTAKE !PROP SKELETON NOTAKE ALIVE !PROP VIOLIN NOTAKE TREASURE !PROP COFFIN NOTAKE !PROP TREE NOTAKE !PROP LEVER NOTAKE !PROP FIRE NOTAKE !PROP HORSE NOTAKE !PROP PILLAR NOTAKE !PROP LAKE NOTAKE !PROP OZ NOTAKE !PROP FOLLY NOTAKE !PROP TIMBER NOTAKE !PROP BOAT NOTAKE !PROP DEMON NOTAKE ALIVE !PROP HAG NOTAKE ALIVE !PROP DAME NOTAKE ALIVE !PROP BED NOTAKE !PROP COCK EDIBLE ALIVE !PROP CHEESE EDIBLE !PROP BONE EDIBLE !PROP BOARD NOTAKE !PROP DOG NOTAKE ALIVE !PROP PAGE NOTAKE ALIVE !PROP CHOIR NOTAKE ALIVE !PROP FRIAR NOTAKE ALIVE !PROP KTA NOTAKE ALIVE !PROP KTB NOTAKE ALIVE !PROP KTC NOTAKE ALIVE !PROP KTD NOTAKE ALIVE !PROP KTE NOTAKE ALIVE !PROP KTF NOTAKE ALIVE !PROP KTG NOTAKE ALIVE !PROP KTH NOTAKE ALIVE !PROP TAPESTRY TREASURE !PROP FIGURINE TREASURE !PROP CRYSTAL TREASURE !PROP PATEN TREASURE !PROP COINS TREASURE !PROP ORB TREASURE !PROP SCEPTRE TREASURE !PROP STOLE TREASURE !PROP CURTAIN NOTAKE !PROP CHILD ALIVE TREASURE / goes to friar! !PROP ARK NOTAKE !PROP NOAH NOTAKE ALIVE !PROP WITCH NOTAKE ALIVE !PROP ERLKING NOTAKE ALIVE !PROP PORTRAIT NOTAKE !PROP JUAN ALIVE NOTAKE !PROP NOBLE ALIVE NOTAKE !PROP EMU ALIVE NOTAKE !PROP WOLF ALIVE NOTAKE !PROP SLOTH ALIVE NOTAKE !PROP RAVEN ALIVE NOTAKE !PROP SHEEP ALIVE NOTAKE !PROP LAMB ALIVE NOTAKE !PROP WOMBAT ALIVE !PROP MOSES NOTAKE ALIVE !PROP BOOK NOTAKE !PROP GURU NOTAKE !PROP RUBY TREASURE !PROP SAPPH TREASURE !PROP CALF TREASURE !PROP FOGDUM1 NOTAKE !PROP FOGDUM2 NOTAKE !PROP FOGDUM3 NOTAKE !PROP FOGDUM4 NOTAKE !PROP FOGDUM5 NOTAKE !PROP VINE NOTAKE ALIVE !PROP PIE EDIBLE !PROP MONK NOTAKE ALIVE !PROP ALTAR NOTAKE !VAR LASTLOC 0 !VAR THISLOC 0 !VAR STRENGTH 7 / Can carry 7 objects, !VAR OBJHELD 0 / and is not carrying any initially. !VAR THIRSTVAR 0 !VAR PAPVAR 0 !VAR MAZEVAR 0 !VAR BOOKVAR 3 !VAR TERSEVAR 1 !STATE HAG 1 / with eye !STATE RUBY 1 / glowing !STATE NOAH 7 / needs some livestock !STATE FOGMAZE1 1 / i.e. N takes you back !END *** JRP1.N.SANGRAAL:STAT / SANGRAAL DATABASE / ----------------- / / PRELIMINARY SECTION / ------------------- / !POSTCOMMAND POSTPROG !WELCOME WELCPROG / Program-defined properties. / !PROPERTY LIGHT 0 / Light source (objects and rooms). !PROPERTY INVIS 1 / Invisibility (objects only). !PROPERTY HIDING 2 / Hides objects it holds (objects only). !PROPERTY VISITED 1 / Visited (rooms only). !PROPERTY DISORIENT 2 / "Disorientation" property (rooms only). / / User-defined properties. / !PROPERTY NOTAKE 3 / Cannot be taken (objects only). !PROPERTY EDIBLE 4 !PROPERTY ALIVE 5 !PROPERTY TREASURE 6 / / Directions. / !DIRECTION B / Dummy direction to make GO BACK work. !DIRECTION D !DIRECTION E !DIRECTION N !DIRECTION NE !DIRECTION NW !DIRECTION S !DIRECTION SE !DIRECTION SW !DIRECTION U !DIRECTION W !DIRECTION IN !DIRECTION OUT !DIRECTION D1 / used also by ball / also back in fog / also used in palace !DIRECTION D2 / also on in fog !DIRECTION D3 !DIRECTION D4 / for the rotating maze / / Special meanings of words. / !SPECIAL ALLSPEC / To detect the word "ALL". !SPECIAL INVSPEC / To detect the word "INVENTORY". !SPECIAL FISHSPEC !SPECIAL FROGSPEC !SPECIAL TOADSPEC !SPECIAL REDSPEC !SPECIAL BLUESPEC !SPECIAL GREENSPEC !SPECIAL YELLOWSPEC !SPECIAL WATERSPEC !SPECIAL XARNSPEC !SPECIAL SCSPEC / scissors !SPECIAL STSPEC / stone !SPECIAL PASPEC / paper !SPECIAL SWAYSPEC !SPECIAL PEACESPEC !SPECIAL TURNSPEC / Klingsor's Vogon poetry !SPECIAL ASPEC !SPECIAL BSPEC !SPECIAL ONESPEC !SPECIAL TWOSPEC / and card sharping !SPECIAL TOABSPEC !SPECIAL OTBASPEC / final Klingsor puzzle !SPECIAL DOWNSPEC / for LIE DOWN !SPECIAL MESPEC !SPECIAL MOANSPEC !SPECIAL SANGSPEC !SPECIAL MAGICSPEC / for SAY !SPECIAL SIGNSPEC !SPECIAL TREESPEC !SPECIAL INSCRSPEC !SPECIAL WALLSPEC !SPECIAL GATESPEC !SPECIAL PEDSPEC !SPECIAL BLDGSPEC / for READ !SPECIAL FACEDSPEC !SPECIAL PLONKSPEC !SPECIAL SPURTSPEC / for Klingsor !SPECIAL THREESPEC !SPECIAL MORESPEC / nevermore !SPECIAL COURTSPEC !SPECIAL SHIPSPEC / Klingsor's riddle !SPECIAL CSPEC / !SPECIAL DSPEC use downspec !SPECIAL ESPEC !SPECIAL FSPEC !SPECIAL GSPEC !SPECIAL HSPEC !SPECIAL ISPEC !SPECIAL JSPEC !SPECIAL KSPEC !SPECIAL LSPEC !SPECIAL MSPEC !SPECIAL NSPEC !SPECIAL OSPEC / for the library books (A, B already exist) !SPECIAL DOORSPEC !SPECIAL ROPESPEC / rope and knot / / Variables. / / The four workspace variables must appear first. !VARIABLE VAR0 !VARIABLE VAR1 !VARIABLE VAR2 !VARIABLE VAR3 / Now other variables. !VARIABLE OBJHELD !VARIABLE STRENGTH !VARIABLE TIMEVAR / used in giant puzzle & endgame !VARIABLE MANDVAR /mandrake !VARIABLE THISLOC !VARIABLE LASTLOC !VARIABLE WINDVAR / desert !VARIABLE THIRSTVAR !VARIABLE PAPVAR !VARIABLE MAZEVAR !VARIABLE KTVAR / temp workspace for Klingsor !VARIABLE VAR4 !VARIABLE VAR5 !VARIABLE VAR6 !VARIABLE BOOKVAR !VARIABLE PRVAR1 / first one mod 11 !VARIABLE PRVAR2 / second one mod 11 !VARIABLE PRVAR3 / this one counts mod 10 !VARIABLE LOGIVAR / scoring for logic gates !VARIABLE TERSEVAR / !TEXTVAR / / OBJECTS SECTION / --------------- / / Player must be first object. !OBJECT PLAYER HOLDING HOLDING HOLDING !OBJECT LIGHTDUM MNULL MNULL MNULL / for INVPROG etc !OBJECT GRAIL MNULL MNULL MNULL !OBJECT GALLOWS GALLOWM1 MNULL GALLOWM1 !OBJECT MANDRAKE MANDRM1 MANDRM2 MANDRM1 !OBJECT COCK COCKM1 COCKM2 COCKM1 !OBJECT STONE STONEM1 STONEM2 STONEM1 !OBJECT SKELETON SKELM1 MNULL SKELM1 !OBJECT VIOLIN VIOLM1 VIOLM2 VIOLM1 !OBJECT SWORD SWORDM1 SWORDM2 SWORDM3 !OBJECT WIZDUM MNULL MNULL MNULL !OBJECT CORPSE CORPSE1 CORPSE2 CORPSE1 !OBJECT COFFIN COFFIN1 MNULL MNULL !OBJECT TREE MNULL MNULL MNULL !OBJECT HORSE HORSEM1 MNULL MNULL !OBJECT PILLAR PILLARM1 MNULL MNULL !OBJECT ROCK ROCKM1 ROCKM2 ROCKM1 !OBJECT LEVER LEVERM1 MNULL MNULL !OBJECT FIRE MNULL MNULL MNULL !OBJECT GEM GEMM1 GEMM2 MNULL !OBJECT TAPESTRY TAPESM1 TAPESM2 TAPESM1 !OBJECT OZ OZM1 MNULL MNULL !OBJECT FOLLY FOLLYM1 MNULL MNULL !OBJECT IDOL IDOLM1 IDOLM2 IDOLM1 !OBJECT TIMBER TIMBERM1 MNULL MNULL !OBJECT BOAT BOATM1 MNULL MNULL !OBJECT DEMON DEMONM1 MNULL MNULL !OBJECT FIGURINE FIGURM1 FIGURM2 FIGURM1 !OBJECT EYE EYEM1 EYEM2 MNULL !OBJECT HAG HAGM1 MNULL MNULL !OBJECT PAPER PAPERM1 PAPERM2 MNULL !OBJECT DAME DAMEM1 MNULL MNULL !OBJECT CRYSTAL CRYSTM1 CRYSTM2 CRYSTM1 !OBJECT PATEN PATENM1 PATENM2 PATENM1 !OBJECT COINS COINSM1 COINSM2 COINSM1 !OBJECT BED BEDM1 MNULL MNULL !OBJECT CLOTH CLOTHM1 CLOTHM2 CLOTHM1 !OBJECT FARTH FARTHM1 FARTHM2 FARTHM1 !OBJECT BOARD BOARDM1 MNULL MNULL !OBJECT CHEESE CHEESEM1 CHEESEM2 CHEESEM1 !OBJECT DOG DOGM1 MNULL MNULL !OBJECT BONE BONEM1 BONEM2 MNULL !OBJECT PAGE PAGEM1 MNULL MNULL !OBJECT BALL BALLM1 BALLM2 BALLM1 !OBJECT CHOIR CHOIRM1 MNULL MNULL !OBJECT BATON BATONM1 BATONM2 BATONM1 !OBJECT ORB ORBM1 ORBM2 ORBM1 !OBJECT SCEPTRE SCEPTM1 SCEPTM2 SCEPTM1 !OBJECT STOLE STOLEM1 STOLEM2 STOLEM1 !OBJECT FRIAR FRIARM1 MNULL MNULL !OBJECT KTA KTAM1 MNULL MNULL !OBJECT KTB KTBM1 MNULL MNULL !OBJECT KTC KTCM1 MNULL MNULL !OBJECT KTD KTDM1 MNULL MNULL !OBJECT KTE KTEM1 MNULL MNULL !OBJECT KTF KTFM1 MNULL MNULL !OBJECT KTG KTGM1 MNULL MNULL !OBJECT KTH KTHM1 MNULL MNULL !OBJECT CURTAIN CURTM1 MNULL MNULL !OBJECT WIG WIGM1 WIGM2 WIGM1 !OBJECT SCROLL SCROLLM1 SCROLLM2 SCROLLM1 !OBJECT CHILD CHILDM1 CHILDM2 CHILDM1 !OBJECT NOAH NOAHM1 MNULL MNULL !OBJECT ARK ARKM1 MNULL MNULL !OBJECT RUBY RUBYM1 RUBYM2 RUBYM1 !OBJECT SAPPH SAPPHM1 SAPPHM2 SAPPHM1 !OBJECT WITCH WITCHM1 MNULL MNULL !OBJECT TABLET TABLETM1 TABLETM2 TABLETM1 !OBJECT ERLKING ERLKING1 MNULL MNULL !OBJECT PORTRAIT PORTRM1 MNULL MNULL !OBJECT PIE PIEM1 PIEM2 PIEM1 !OBJECT JUAN JUANM1 MNULL MNULL !OBJECT NOBLE NOBLEM1 MNULL MNULL !OBJECT SLOTH SLOTHM1 SLOTHM2 SLOTHM1 !OBJECT EMU EMUM1 EMUM2 EMUM1 !OBJECT TORTOISE TORTM1 TORTM2 TORTM1 !OBJECT GREASE GREASEM1 GREASEM2 GREASEM1 !OBJECT HMDUM1 HMDUM1M1 MNULL MNULL !OBJECT HMDUM2 HMDUM2M1 MNULL MNULL !OBJECT HMDUM3 HMDUM3M1 MNULL MNULL !OBJECT MOSES MNULL MNULL MNULL !OBJECT CALF CALFM1 CALFM2 CALFM1 !OBJECT RAVEN RAVENM1 RAVENM2 RAVENM1 !OBJECT WOMBAT WOMBATM1 WOMBATM2 WOMBATM1 !OBJECT WOLF WOLFM1 WOLFM2 WOLFM1 !OBJECT SHEEP MNULL MNULL MNULL !OBJECT LAMB LAMBM1 LAMBM2 MNULL !OBJECT BOOK MNULL MNULL MNULL / for all books in lib !OBJECT ALTAR MNULL MNULL MNULL !OBJECT PEARL PEARLM1 PEARLM2 PEARLM3 !OBJECT GURU GURUM1 MNULL MNULL !OBJECT FOGDUM1 MNULL MNULL MNULL !OBJECT FOGDUM2 MNULL MNULL MNULL !OBJECT FOGDUM3 MNULL MNULL MNULL !OBJECT FOGDUM4 MNULL MNULL MNULL !OBJECT FOGDUM5 MNULL MNULL MNULL !OBJECT VINE VINEM1 MNULL MNULL !OBJECT MONK MONKM1 MNULL MNULL !OBJECT PALDUM MNULL MNULL MNULL / for palace directions / / ROOMS SECTION / ------------- / !ROOM START1 START1M1 START1M1 !ROOM START2 START2M1 START2M2 !ROOM FORK1 FORK1M1 FORK1M2 !ROOM VSD VSDM1 VSDM2 !ROOM TURN1 TURN1M1 TURN1M2 !ROOM ROUND ROUNDM1 ROUNDM2 !ROOM WIDOWS WIDOWM1 WIDOWM2 !ROOM GALLRM GALLRM1 GALLRM2 !ROOM CITY CITYM1 CITYM2 !ROOM CHURCH1 CHURCH11 CHURCH12 !ROOM CHURCH2 CHURCH21 CHURCH22 !ROOM CHURCH3 CHURCH31 CHURCH32 !ROOM CHURCH4 CHURCH41 CHURCH42 !ROOM CHURCH5 CHURCH51 CHURCH52 !ROOM CHURCH6 CHURCH61 CHURCH62 !ROOM TOMB TOMBM1 TOMBM2 !ROOM CTOWER CTOWERM1 CTOWERM2 !ROOM CRYPT CRYPTM1 CRYPTM2 !ROOM OPT1 OPT1M1 OPT1M2 !ROOM OPT2 OPT2M1 OPT2M2 !ROOM OPT3 OPT3M1 OPT3M2 !ROOM OPT4 OPT4M1 OPT4M2 !ROOM OPT5 OPT5M1 OPT5M2 !ROOM OPT6 OPT6M1 OPT6M2 !ROOM OPT7 OPT7M1 OPT7M2 !ROOM OPT8 OPT8M1 OPT8M2 !ROOM OPT9 OPT9M1 OPT9M2 !ROOM OPT10 OPT10M1 OPT10M2 !ROOM OPT11 OPT11M1 OPT11M2 !ROOM OPT12 OPT12M1 OPT12M2 !ROOM ENDOPT ENDOPTM1 ENDOPTM2 !ROOM ANAGHS ANAGHS1 ANAGHS2 !ROOM LOON1 LOONM1 LOONM2 !ROOM LOON2 LOONM1 LOONM2 !ROOM ANAGRM ANAGRM1 ANAGRM2 !ROOM PATH1 PATH1M1 PATH1M2 !ROOM PATH2 PATH2M1 PATH2M2 !ROOM JUNC1 JUNC1M1 JUNC1M2 !ROOM POOL POOLM1 POOLM2 !ROOM DES1 DES1M1 DES1M2 !ROOM DES2 DESEM1 DESEM2 !ROOM DES3 DESEM1 DESEM2 !ROOM DES4 DESEM1 DESEM2 !ROOM DES5 DESEM1 DESEM2 !ROOM DES6 DESEM1 DESEM2 !ROOM DES7 DESFM1 DESFM2 !ROOM DES8 DESEM1 DESEM2 !ROOM DES9 DESEM1 DESEM2 !ROOM DES10 DESEM1 DESEM2 !ROOM DES11 DESEM1 DESEM2 !ROOM DES12 DESFM1 DESFM2 !ROOM DES13 DESEM1 DESEM2 !ROOM DES14 DESEM1 DESEM2 !ROOM DES15 DESEM1 DESEM2 !ROOM DES16 DESEM1 DESEM2 !ROOM DES17 DESEM1 DESEM2 !ROOM DES18 DES18M1 DES18M2 !ROOM SQUARE SQUAREM1 SQUAREM2 !ROOM INHORSE INHORM1 INHORM2 !ROOM SALT1 SALT1M1 SALT1M2 !ROOM SALT2 SALT2M1 SALT2M2 !ROOM INCITY INCITYM1 INCITYM2 !ROOM NXARN NXARNM1 NXARNM2 !ROOM JUNC2 JUNC2M1 JUNC2M2 !ROOM LAKE LAKEM1 LAKEM2 !ROOM DEND1 DEND1M1 DEND1M2 !ROOM DEND2 DEND2M1 DEND2M2 !ROOM ANTERM ANTERMM1 ANTERMM2 !ROOM HILLSIDE HILLSM1 HILLSM2 !ROOM GROTTO GROTTOM1 GROTTOM2 !ROOM LAKEX LAKEXM1 LAKEXM2 !ROOM F1 FMAZE1 FMAZE2 !ROOM F2 FMAZE1 FMAZE2 !ROOM F3 FMAZE1 FMAZE2 !ROOM F4 FMAZE1 FMAZE2 !ROOM F5 FMAZE1 FMAZE2 !ROOM F6 FMAZE1 FMAZE2 !ROOM F7 FMAZE1 FMAZE2 !ROOM F8 FMAZE1 FMAZE2 !ROOM F9 FMAZE1 FMAZE2 !ROOM F10 FMAZE1 FMAZE2 !ROOM F11 F11M1 F11M2 !ROOM F12 FMAZE1 FMAZE2 !ROOM F13 F11M1 F11M2 !ROOM F14 F14M1 F14M2 !ROOM NXHALL NXHALLM1 NXHALLM2 !ROOM KROOM1 KROOM1M1 KROOM1M2 !ROOM KROOM2 KROOM2M1 KROOM2M2 !ROOM SLROOM SLROOMM1 SLROOMM2 !ROOM ENVYRM ENVYRMM1 ENVYRMM2 !ROOM GLUTRM GLUTRMM1 GLUTRMM2 !ROOM DOGRM DOGRMM1 DOGRMM2 !ROOM AVRM1 AVRM1M1 AVRM1M2 !ROOM AVRM2 AVRM2M1 AVRM2M2 !ROOM AVRM3 AVRM3M1 AVRM3M2 !ROOM AVRM4 AVRM4M1 AVRM4M2 !ROOM WRATRM WRATRMM1 WRATRMM2 !ROOM PRIDRM PRIDRMM1 PRIDRMM2 !ROOM LURM1 LURM1M1 LURM1M2 !ROOM LURM2 LURM2M1 LURM2M2 !ROOM STOMACH MNULL MNULL / for things eaten - relevant in N-Xarn !ROOM ORPHANS MNULL MNULL / for treasure donated !ROOM PLAIN PLAINM1 PLAINM2 !ROOM CASTLE CASTLEM1 CASTLEM2 !ROOM KROOM3 KROOM3M1 KROOM3M2 !ROOM KROOM4 KROOM4M1 KROOM4M2 !ROOM JOHOCO JOHOCOM1 JOHOCOM2 !ROOM JHCEND JHCENDM1 JHCENDM2 !ROOM WWALL WWALLM1 WWALLM2 !ROOM WOOD1 WOOD1M1 WOOD1M2 !ROOM WOOD2 WOOD2M1 WOOD2M2 !ROOM WOOD3 WOOD3M1 WOOD3M2 !ROOM TRK1 TRK1M1 TRK1M2 !ROOM TRK2 TRK2M1 TRK2M2 !ROOM TRK3 TRK3M1 TRK3M2 !ROOM TRK4 TRK4M1 TRK4M2 !ROOM TRK5 TRK5M1 TRK5M2 !ROOM TRK6 TRK6M1 TRK6M2 !ROOM BOOL1 BOOL11 BOOL11 !ROOM BOOL2 BOOL21 BOOL21 !ROOM BOOL3 BOOL31 BOOL31 !ROOM BOOL4 BOOL41 BOOL41 !ROOM UAREA UAREAM1 UAREAM2 !ROOM SINAI1 SINAI1M1 SINAI1M2 !ROOM SINAI2 SINAI2M1 SINAI2M2 !ROOM DON1 DON1M1 DON1M2 !ROOM DON2 DON2M1 DON2M2 !ROOM DON3 DON3M1 DON3M2 !ROOM FARM1 FARM1M1 FARM1M2 !ROOM FARM2 FARM2M1 FARM2M2 !ROOM FARM3 FARM3M1 FARM3M2 !ROOM FARM4 FARM4M1 FARM4M2 !ROOM FARM5 FARM5M1 FARM5M2 !ROOM FARM6 FARM6M1 FARM6M2 !ROOM HELL1 HELLM1 HELLM2 !ROOM HELL2 HELLM1 HELLM2 !ROOM HELL3 HELLM1 HELLM2 !ROOM HELL4 HELLM1 HELLM2 !ROOM HELL5 HELL5M1 HELL5M2 !ROOM HELL6 HELL6M1 HELL6M2 !ROOM HELL7 HELL7M1 HELL7M2 !ROOM HELL8 HELL8M1 HELL8M1 !ROOM HELL9 HELL8M1 HELL8M1 !ROOM HELL10 HELL8M1 HELL8M1 !ROOM KROOM5 KROOM5M1 KROOM5M2 !ROOM KLIB KLIBM1 KLIBM2 !ROOM WISTEM WISTEMM1 WISTEMM2 !ROOM FOGMAZE1 FOGMAZEM FOGMAZEM !ROOM FOGMAZE2 FOGMAZEM FOGMAZEM !ROOM FOGMAZE3 FOGMAZEM FOGMAZEM !ROOM FOGMAZE4 FOGMAZEM FOGMAZEM !ROOM FOGEND FOGENDM1 FOGENDM2 !ROOM PAL0 PAL0M1 PAL0M2 !ROOM PAL1 PAL1M1 PAL1M2 !ROOM PAL2 PAL2M1 PAL2M2 !ROOM PAL3 PAL3M1 PAL3M2 !ROOM PAL4 PAL4M1 PAL4M2 !ROOM PAL5 PAL5M1 PAL5M2 !ROOM PAL6 PAL6M1 PAL6M2 !ROOM PAL7 PAL7M1 PAL7M2 !ROOM PAL8 PAL8M1 PAL8M2 !ROOM PAL9 PAL9M1 PAL9M2 !ROOM PAL10 PAL10M1 PAL10M2 !ROOM PAL11 PAL11M1 PAL11M2 !ROOM PAL12 PAL12M1 PAL12M2 !ROOM PAL13 PAL13M1 PAL13M2 !ROOM PAL14 PAL14M1 PAL14M2 !ROOM PAL15 PAL15M1 PAL15M2 !ROOM PAL16 PAL16M1 PAL16M2 / / EXITS SECTION / ------------- / !EXIT START1 N START2 !EXIT START2 N FORK1 S START2 GIVEUPPROG !EXIT FORK1 S START2 NW VSD VSD1PROG NE TURN1 !EXIT VSD SE FORK1 N PLAIN VSD2PROG !EXIT TURN1 E ROUND SW FORK1 NW WIDOWS !EXIT ROUND W TURN1 SW JOHOCO S PATH2 SE CHURCH1 E PATH1 NE OPT9 OPTON N POOL NW ANAGHS SETANAG !EXIT WIDOWS SE TURN1 !EXIT GALLRM N JOHOCO !EXIT CITY N PATH2 !EXIT CHURCH1 NW ROUND E TOMB VOIPROG S CHURCH2 !EXIT CHURCH2 E CHURCH3 N CHURCH1 S CHURCH6 !EXIT CHURCH3 W CHURCH2 E CHURCH4 U CTOWER D CRYPT !EXIT CHURCH4 W CHURCH3 !EXIT CHURCH5 W TOMB !EXIT CHURCH6 N CHURCH2 !EXIT CTOWER D CHURCH3 !EXIT TOMB W CHURCH1 E CHURCH5 !EXIT CRYPT U CHURCH3 !EXIT OPT1 E OPT2 OPT1P S OPT5 OPT4P !EXIT OPT2 W OPT1 OPT1P E OPT3 OPT4P S OPT6 OPT1P !EXIT OPT3 W OPT2 OPT4P E OPT4 OPT1P S OPT7 OPT1P !EXIT OPT4 W OPT3 OPT1P S OPT8 OPT2P NE ENDOPT ACHPROG !EXIT OPT5 N OPT1 OPT4P E OPT6 OPT5P S OPT9 OPT3P !EXIT OPT6 N OPT2 OPT1P E OPT7 OPT3P S OPT10 OPT2P W OPT5 OPT5P !EXIT OPT7 N OPT3 OPT1P E OPT8 OPT1P S OPT11 OPT3P W OPT6 OPT3P !EXIT OPT8 N OPT4 OPT2P S OPT12 OPT2P W OPT7 OPT1P !EXIT OPT9 SW ROUND OPTON N OPT5 OPT3P E OPT10 OPT6P !EXIT OPT10 N OPT6 OPT2P E OPT11 OPT1P W OPT9 OPT6P !EXIT OPT11 N OPT7 OPT3P E OPT12 OPT2P W OPT10 OPT1P !EXIT OPT12 N OPT8 OPT2P W OPT11 OPT2P !EXIT ENDOPT SW OPT4 N ROUND ACH2PROG !EXIT ANAGHS SE ROUND N ANAGRM DWARFPROG W WWALL !EXIT ANAGRM S ANAGHS !EXIT LOON1 N LOON2 LOONPROG NE LOON2 LOONPROG E LOON2 LOONPROG SE LOON2 LOONPROG S LOON2 LOONPROG SW LOON2 LOONPROG W LOON2 LOONPROG NW LOON2 LOONPROG U LOON2 LOONPROG D LOON2 LOONPROG !EXIT LOON2 N LOON1 LOONPROG NE LOON1 LOONPROG E LOON1 LOONPROG SE LOON1 LOONPROG S LOON1 LOONPROG SW LOON1 LOONPROG W LOON1 LOONPROG NW LOON1 LOONPROG U LOON1 LOONPROG D LOON1 LOONPROG !EXIT PATH1 W ROUND E SQUARE !EXIT PATH2 N ROUND S CITY !EXIT POOL N JUNC1 S ROUND !EXIT JUNC1 S POOL NW SALT1 NE DES1 !EXIT DES1 SW JUNC1 NE DES2 DNEPROG E DES3 DEPROG SE DES4 DSEPROG !EXIT DES2 NE DES5 DNEPROG E DES6 DEPROG SE DES7 DSEPROG S DES3 SW DES1 !EXIT DES3 N DES2 NE DES6 DNEPROG E DES7 DEPROG SE DES8 DSEPROG S DES4 W DES1 !EXIT DES4 N DES3 NE DES7 DNEPROG E DES8 DEPROG SE DES9 DSEPROG NW DES1 !EXIT DES5 E DES10 DEPROG SE DES11 DSEPROG S DES6 SW DES2 !EXIT DES6 N DES5 NE DES10 DNEPROG E DES11 DEPROG SE DES12 DSEPROG S DES7 SW DES3 W DES2 !EXIT DES7 N DES6 NE DES11 DNEPROG E DES12 DEPROG SE DES13 DSEPROG S DES8 SW DES4 W DES3 NW DES2 !EXIT DES8 N DES7 NE DES12 DNEPROG E DES13 DEPROG SE DES14 DSEPROG S DES9 W DES4 NW DES3 !EXIT DES9 N DES8 NE DES13 DNEPROG E DES14 DEPROG NW DES4 !EXIT DES10 SE DES15 DSEPROG S DES11 SW DES6 W DES5 !EXIT DES11 N DES10 E DES15 DEPROG SE DES16 DSEPROG S DES12 SW DES7 W DES6 NW DES5 !EXIT DES12 N DES11 NE DES15 DNEPROG E DES16 DEPROG SE DES17 DSEPROG S DES13 SW DES8 W DES7 NW DES6 !EXIT DES13 N DES12 NE DES16 DNEPROG E DES17 DEPROG S DES14 SW DES9 W DES8 NW DES7 !EXIT DES14 N DES13 NE DES17 DNEPROG W DES9 NW DES8 !EXIT DES15 SE DES18 DSEPROG S DES16 SW DES12 W DES11 NW DES10 !EXIT DES16 N DES15 E DES18 DEPROG S DES17 SW DES13 W DES12 NW DES11 !EXIT DES17 N DES16 NE DES18 DNEPROG SE DES14 W DES13 NW DES12 !EXIT DES18 NW DES15 W DES16 SW DES17 IN ANTERM INFOLLYPROG E ANTERM INFOLLYPROG !EXIT SQUARE W PATH1 S NXARN E JUNC2 N LAKE !EXIT SALT1 W SALT2 SE JUNC1 NE PAL0 MONKSTART !EXIT SALT2 E SALT1 !EXIT INCITY E CITY ZEMPROG !EXIT NXARN N SQUARE S NXHALL NX1PROG !EXIT JUNC2 W SQUARE NE DEND1 SE DEND2 E HILLSIDE S WOOD1 N TRK1 !EXIT LAKE S SQUARE N LAKEX BOATPROG D LAKEX BOATPROG IN LAKEX BOATPROG !EXIT DEND1 SW JUNC2 !EXIT DEND2 NW JUNC2 !EXIT ANTERM W DES18 OUT DES18 E KROOM1 KS1PROG D KLIB KLIBENTER !EXIT HILLSIDE E GROTTO W JUNC2 !EXIT GROTTO W HILLSIDE DAMEPROG !EXIT LAKEX D F1 !EXIT F1 D1 LAKEX D2 F2 D3 F3 D4 F4 N F1 FNP NE F1 FNEP E F1 FEP SE F1 FSEP S F1 FSP SW F1 FSWP W F1 FWP NW F1 FNWP !EXIT F2 D1 F5 D2 F4 D3 F3 D4 F1 N F2 FNP NE F2 FNEP E F2 FEP SE F2 FSEP S F2 FSP SW F2 FSWP W F2 FWP NW F2 FNWP !EXIT F3 D1 F4 D2 F6 D3 F2 D4 F1 N F3 FNP NE F3 FNEP E F3 FEP SE F3 FSEP S F3 FSP SW F3 FSWP W F3 FWP NW F3 FNWP !EXIT F4 D1 F3 D2 F1 D3 F2 D4 F7 N F4 FNP NE F4 FNEP E F4 FEP SE F4 FSEP S F4 FSP SW F4 FSWP W F4 FWP NW F4 FNWP !EXIT F5 D1 F8 D2 F6 D3 F7 D4 F2 N F5 FNP NE F5 FNEP E F5 FEP SE F5 FSEP S F5 FSP SW F5 FSWP W F5 FWP NW F5 FNWP !EXIT F6 D1 F5 D2 F3 D3 F7 D4 F9 N F6 FNP NE F6 FNEP E F6 FEP SE F6 FSEP S F6 FSP SW F6 FSWP W F6 FWP NW F6 FNWP !EXIT F7 D1 F4 D2 F5 D3 F6 D4 F10 N F7 FNP NE F7 FNEP E F7 FEP SE F7 FSEP S F7 FSP SW F7 FSWP W F7 FWP NW F7 FNWP !EXIT F8 D1 F12 D2 F11 D3 F5 D4 F9 N F8 FNP NE F8 FNEP E F8 FEP SE F8 FSEP S F8 FSP SW F8 FSWP W F8 FWP NW F8 FNWP !EXIT F9 D1 F12 D2 F6 D3 F10 D4 F8 N F9 FNP NE F9 FNEP E F9 FEP SE F9 FSEP S F9 FSP SW F9 FSWP W F9 FWP NW F9 FNWP !EXIT F10 D1 F12 D2 F13 D3 F7 D4 F9 N F10 FNP NE F10 FNEP E F10 FEP SE F10 FSEP S F10 FSP SW F10 FSWP W F10 FWP NW F10 FNWP !EXIT F11 D4 F8 N F11 FNP NE F11 FNEP E F11 FEP SE F11 FSEP S F11 FSP SW F11 FSWP W F11 FWP NW F11 FNWP !EXIT F12 D1 F8 D2 F10 D3 F14 D4 F9 N F12 FNP NE F12 FNEP E F12 FEP SE F12 FSEP S F12 FSP SW F12 FSWP W F12 FWP NW F12 FNWP !EXIT F13 D3 F10 N F13 FNP NE F13 FNEP E F13 FEP SE F13 FSEP S F13 FSP SW F13 FSWP W F13 FWP NW F13 FNWP !EXIT F14 D2 F12 D LAKE SWANPROG N F14 FNP NE F14 FNEP E F14 FEP SE F14 FSEP S F14 FSP SW F14 FSWP W F14 FWP NW F14 FNWP !EXIT NXHALL N NXARN NXENDPROG NE GLUTRM GLPROG E PRIDRM PRPROG SE LURM1 LUPROG S ENVYRM ENPROG SW WRATRM WRPROG W AVRM1 AV1PROG NW SLROOM SLPROG !EXIT KROOM1 W ANTERM U KROOM2 KS2PROG !EXIT KROOM2 D KROOM1 U KROOM3 KS3PROG !EXIT SLROOM SE NXHALL !EXIT ENVYRM N NXHALL !EXIT GLUTRM SW NXHALL E DOGRM !EXIT DOGRM W GLUTRM !EXIT AVRM1 E NXHALL NW AVRM2 AV2PROG !EXIT AVRM2 SE AVRM1 SW AVRM3 AV3PROG !EXIT AVRM3 NE AVRM2 SE AVRM4 AV4PROG !EXIT AVRM4 NW AVRM3 !EXIT WRATRM NE NXHALL !EXIT PRIDRM W NXHALL !EXIT LURM1 N NXHALL LU1P NE NXHALL LU2P E NXHALL LU3P SE NXHALL LU4P S NXHALL LU5P SW NXHALL LU6P W NXHALL LU7P NW NXHALL LU8P D1 LURM2 !EXIT LURM2 N LURM1 LU1P NE LURM1 LU2P E LURM1 LU3P SE LURM1 LU4P S LURM1 LU5P SW LURM1 LU6P W LURM1 LU7P NW LURM1 LU8P D1 NXHALL !EXIT PLAIN N CASTLE APOLLPROG S PLAIN SL3 !EXIT CASTLE S CASTLE SL3 N CASTLE CASTPEER !EXIT JOHOCO NE ROUND S GALLRM W JHCEND JHCPROG !EXIT JHCEND E JOHOCO !EXIT KROOM3 D KROOM2 U KROOM4 KS4PROG !EXIT KROOM4 D KROOM3 U KROOM5 KS5PROG !EXIT WWALL E ANAGHS !EXIT WOOD1 N JUNC2 E WOOD3 S WOOD2 !EXIT WOOD2 N WOOD1 !EXIT WOOD3 W WOOD1 E TRK5 SE UAREA S WISTEM !EXIT TRK1 S JUNC2 E TRK2 N DON1 DONTEST IN DON1 DONTEST !EXIT TRK2 W TRK1 E TRK3 !EXIT TRK3 W TRK2 SE TRK4 NE BOOL1 BOOLSTART !EXIT TRK4 NW TRK3 SW TRK5 E TRK6 NOAHTAKE D TRK6 NOAHTAKE !EXIT TRK5 NE TRK4 W WOOD3 U SINAI1 !EXIT TRK6 W TRK4 U TRK4 NW FARM1 N FARM2 NE FARM3 SE FARM4 S FARM5 SW FARM6 LAMBSET !EXIT BOOL1 NE BOOL2 FANDPROG NW BOOL2 ORTPROG S BOOL1 BOOLSTOP !EXIT BOOL2 NE BOOL3 OREQPROG NW BOOL3 TEQPROG S BOOL2 BOOLSTOP !EXIT BOOL3 NE BOOL4 XORANDPROG NW BOOL4 XORTPROG S BOOL3 BOOLSTOP !EXIT BOOL4 NE TRK3 NORTPROG NW TRK3 TANDPROG S BOOL4 BOOLSTOP !EXIT UAREA NW WOOD3 !EXIT SINAI1 D TRK5 U SINAI2 MOSESPROG S FOGMAZE1 !EXIT SINAI2 D SINAI1 !EXIT DON1 S TRK1 OUT TRK1 D DON2 HELLTEST !EXIT DON2 D DON3 HELLGATE !EXIT FARM1 SE TRK6 NOAHTAKE !EXIT FARM2 S TRK6 NOAHTAKE !EXIT FARM3 SW TRK6 NOAHTAKE !EXIT FARM4 NW TRK6 NOAHTAKE !EXIT FARM5 N TRK6 NOAHTAKE !EXIT FARM6 NE TRK6 NOAHTAKE !EXIT DON3 N HELL1 W HELL2 S HELL4 E HELL3 !EXIT HELL1 N HELL3 E HELL5 ACHILLPROG S HELL2 W DON3 !EXIT HELL2 N HELL6 E HELL4 S DON3 W HELL1 !EXIT HELL3 N DON3 E HELL4 S HELL8 HELLSET W HELL1 !EXIT HELL4 N HELL3 E DON3 S HELL2 W HELL7 ALEXPROG !EXIT HELL5 W HELL1 !EXIT HELL6 S HELL2 !EXIT HELL7 E HELL4 !EXIT HELL8 N HELL3 S HELL9 HELLPS SE HELL9 HELLPSE SW HELL9 HELLPSW !EXIT HELL9 N HELL8 HELLNPROG S HELL10 HELLPS SE HELL10 HELLPSE SW HELL10 HELLPSW !EXIT HELL10 N HELL9 HELLNPROG S HELL8 HELLPS SE HELL8 HELLPSE SW HELL8 HELLPSW !EXIT KROOM5 U DES18 KS6PROG D KROOM4 !EXIT WISTEM N WOOD3 WISEXIT OUT WOOD3 WISEXIT !EXIT FOGMAZE1 N SINAI1 E FOGMAZE1 FOGEPROG S FOGMAZE1 FOGSPROG W FOGMAZE1 FOGWPROG D1 SINAI1 D2 FOGMAZE2 !EXIT FOGMAZE2 N FOGMAZE2 FOGNPROG E FOGMAZE2 FOGEPROG S FOGMAZE2 FOGSPROG W FOGMAZE2 FOGWPROG D1 FOGMAZE1 D2 FOGMAZE3 !EXIT FOGMAZE3 N FOGMAZE3 FOGNPROG E FOGMAZE3 FOGEPROG S FOGMAZE3 FOGSPROG W FOGMAZE3 FOGWPROG D1 FOGMAZE2 D2 FOGMAZE4 !EXIT FOGMAZE4 N FOGMAZE4 FOGNPROG E FOGMAZE4 FOGEPROG S FOGMAZE4 FOGSPROG W FOGMAZE4 FOGWPROG D1 FOGMAZE3 D2 FOGEND !EXIT FOGEND N FOGEND FOGNPROG E FOGEND FOGEPROG S FOGEND FOGSPROG W FOGEND FOGWPROG D1 FOGMAZE4 !EXIT PAL0 N PAL16 E PAL13 S PAL14 W PAL15 !EXIT PAL1 SE PAL2 S PAL16 SW PAL12 D1 PAL16 / i.e. only adjacent season !EXIT PAL2 SE PAL3 SW PAL16 NW PAL1 D1 PAL16 !EXIT PAL3 SE PAL4 SW PAL13 NW PAL2 D1 PAL13 !EXIT PAL4 SW PAL5 W PAL13 NW PAL3 D1 PAL13 !EXIT PAL5 NE PAL4 SW PAL6 NW PAL13 D1 PAL13 !EXIT PAL6 NE PAL5 SW PAL7 NW PAL14 D1 PAL14 !EXIT PAL7 N PAL14 NE PAL6 NW PAL8 D1 PAL14 !EXIT PAL8 NE PAL14 SE PAL7 NW PAL9 D1 PAL14 !EXIT PAL9 NE PAL15 SE PAL8 NW PAL10 D1 PAL15 !EXIT PAL10 NE PAL11 E PAL15 SE PAL9 D1 PAL15 !EXIT PAL11 NE PAL12 SE PAL15 SW PAL10 D1 PAL15 !EXIT PAL12 NE PAL1 SE PAL16 SW PAL11 D1 PAL16 !EXIT PAL13 NE PAL3 E PAL4 SE PAL5 W PAL0 MONKCHECK D1 PAL3 / first adjacent month !EXIT PAL14 SE PAL6 S PAL7 SW PAL8 N PAL0 MONKCHECK D1 PAL6 !EXIT PAL15 E PAL0 MONKCHECK SW PAL9 W PAL10 NW PAL11 D1 PAL9 !EXIT PAL16 N PAL1 NE PAL2 S PAL0 MONKCHECK NW PAL12 D1 PAL12 / but remember to loop / / INSTRUCTIONS SECTION / -------------------- / !INSTRUCTIONS ACHPROG: SKIP UNLESS P VISITED ENDOPT RETURN SKIP IF V TIMEVAR GT 12 GO ACHW LOAD S ENDOPT I 1 PRINTRET ACHLATE ACHW: SKIP2 IF H SWORD PLAYER LOAD S ENDOPT I 1 PRINTRET ACHLOSE LOAD S SWORD I 1 PRINTRET ACHWIN ACH2PROG: PRINTRET ACHEH ACHILLPROG: SKIP UNLESS P VISITED HELL5 RETURN PRINTRET ACHILLMESS ALEXPROG: SKIP UNLESS P VISITED HELL7 RETURN PRINTRET ALEXMESS APOLLPROG: LOAD V VAR0 I 0 PRINT APPAPPEARS ASKANY QAPP1 ASKANY QAPP2 SKIP UNLESS M W2SP MOANSPEC ADD V VAR0 I 1 ASKANY QAPP3 SKIP UNLESS M W2SP SANGSPEC ADD V VAR0 I 1 SKIP2 IF V VAR0 EQ 2 PRINT APPERROR GO DIEPROG PRINT APPFIGHT SKIP UNLESS H SWORD PLAYER SKIP2 IF S SWORD EQ 0 PRINT APPNOWEAP GO DIEPROG PRINT APPWIN LOAD V TIMEVAR I 20 RETURN AV1PROG: SKIP2 UNLESS P VISITED AVRM1 PRINT INVISBARR RETURN ABORT PRINT BEGGCOME SKIP IF Q GIVEALMS PRINTRET NOCASH1 SKIP IF H FARTH PLAYER PRINTRET BEGGGO1 SUB V OBJHELD I 1 MOVE FARTH WITH DESTROY LOAD S AVRM1 I 1 PRINTRET BEGGGO2 AV2PROG: SKIP UNLESS P VISITED AVRM2 RETURN PRINT MINSTCOME SKIP IF Q FOUNDIT PRINTRET NOCASH2 SKIP IF H FARTH PLAYER PRINTRET MINSTGO1 SUB V OBJHELD I 1 MOVE FARTH WITH DESTROY LOAD S AVRM1 I 2 PRINTRET MINSTGO2 AV3PROG: SKIP UNLESS P VISITED AVRM3 RETURN PRINT BANKCOME SKIP IF Q INVEST PRINTRET NOCASH3 SKIP IF H FARTH PLAYER PRINTRET BANKGO1 SUB V OBJHELD I 1 MOVE FARTH WITH DESTROY LOAD S AVRM1 I 3 PRINTRET BANKGO2 AV4PROG: SKIP UNLESS P VISITED AVRM4 RETURN PRINT BRIGCOME SKIP IF H FARTH PLAYER PRINTRET NOCASH4 SUB V OBJHELD I 1 MOVE FARTH WITH DESTROY LOAD S AVRM1 I 4 PRINTRET BRIGGO BAA1PROG: LOAD V VAR0 I 1 GO BAA BAA2PROG: LOAD V VAR0 I 2 GO BAA BAA3PROG: LOAD V VAR0 I 3 GO BAA BAA4PROG: LOAD V VAR0 I 4 GO BAA BAA5PROG: LOAD V VAR0 I 5 BAA: SKIP UNLESS R (PLAYER)R EQ (LAMB)R SKIP UNLESS S LAMB EQ 0 PRINTRET NHAPPENS SUB V VAR0 S LAMB SKIP IF V VAR0 EQ 0 PRINTRET NHAPPENS LOAD S LAMB I 0 / this is right! 0 means done here UNSET NOTAKE LAMB PRINTRET BAAGOOD B1P: LOAD V VAR0 I 1 GO BENETC B2P: LOAD V VAR0 I 2 GO BENETC B3P: LOAD V VAR0 I 3 BENETC: SUB V VAR0 S PAPER SKIP UNLESS V VAR0 EQ 0 SKIP IF R (PLAYER)R EQ (PILLAR)R PRINTRET NHAPPENS MOVE PILLAR WITH DESTROY PRINT LOTWIFE RETURN LOOK BOATPROG: LOAD V MAZEVAR I 0 / initialize maze at same point each time! SKIP2 UNLESS R (BOAT)R EQ LAKE MOVE BOAT WITH DESTROY PRINTRET BOATRIDE PRINT NOWAYMESS RETURN ABORT BOOLPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP RETURN BOOLSTART: SKIP2 UNLESS P VISITED BOOL1 BOOLSTOP: PRINT BOOLBLOCK RETURN ABORT MOVE PLAYER WITHOUT TO (PLAYER)R LOAD V OBJHELD I 0 PRINTRET BOOLINIT FANDPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 SKIP2 UNLESS S RUBY EQ 1 SKIP UNLESS S SAPPH EQ 1 LOAD V VAR0 I 1 LOAD S RUBY I 0 LOAD S SAPPH V VAR0 PRINTRET TWINKLE ORTPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 SKIP IF S RUBY EQ 1 SKIP UNLESS S SAPPH EQ 1 LOAD V VAR0 I 1 LOAD S RUBY V VAR0 LOAD S SAPPH I 1 PRINTRET TWINKLE OREQPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 SKIP IF S RUBY EQ 1 SKIP UNLESS S SAPPH EQ 1 LOAD V VAR0 I 1 LOAD V VAR1 I 0 LOAD V VAR2 S RUBY SUB V VAR2 S SAPPH SKIP UNLESS V VAR2 EQ 0 LOAD V VAR1 I 1 LOAD S RUBY V VAR0 LOAD S SAPPH V VAR1 PRINTRET TWINKLE TEQPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 LOAD V VAR2 S RUBY SUB V VAR2 S SAPPH SKIP UNLESS V VAR2 EQ 0 LOAD V VAR0 I 1 LOAD S RUBY I 1 LOAD S SAPPH V VAR0 PRINTRET TWINKLE XORANDPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 LOAD V VAR1 S RUBY SUB V VAR1 S SAPPH SKIP IF V VAR1 EQ 0 LOAD V VAR0 I 1 LOAD V VAR1 I 0 SKIP2 UNLESS S RUBY EQ 1 SKIP UNLESS S SAPPH EQ 1 LOAD V VAR1 I 1 LOAD S RUBY V VAR0 LOAD S SAPPH V VAR1 PRINTRET TWINKLE XORTPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 LOAD V VAR1 S RUBY SUB V VAR1 S SAPPH SKIP IF V VAR1 EQ 0 LOAD V VAR0 I 1 LOAD S RUBY V VAR0 LOAD S SAPPH I 1 PRINTRET TWINKLE NORTPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 SKIP2 IF S RUBY EQ 1 SKIP IF S SAPPH EQ 1 LOAD V VAR0 I 1 LOAD S RUBY V VAR0 LOAD S SAPPH I 1 SKIP2 IF S RUBY EQ 1 MOVE RUBY WITH DESTROY SUB V OBJHELD I 1 GOSUB LOGISCORE PRINTRET TWONKLE TANDPROG: SKIP UNLESS H RUBY PLAYER SKIP IF H SAPPH PLAYER GO BOOLSTOP LOAD V VAR0 I 0 SKIP2 UNLESS S RUBY EQ 1 SKIP UNLESS S SAPPH EQ 1 LOAD V VAR0 I 1 LOAD S RUBY I 1 LOAD S SAPPH V VAR0 SKIP2 IF S SAPPH EQ 1 MOVE SAPPH WITH DESTROY SUB V OBJHELD I 1 GOSUB LOGISCORE PRINTRET TWONKLE LOGISCORE: SKIP UNLESS E (RUBY)R ADD V LOGIVAR I 10 SKIP UNLESS E (SAPPH)R ADD V LOGIVAR I 10 LOAD S RUBY I 0 LOAD S SAPPH I 0 RETURN BREAKPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP IF H ()O PLAYER PRINTRET CANTDO SKIP UNLESS R ()O EQ IDOL PRINTRET NOBREAK PRINTRET SILLYMESS BURYPROG: SKIP IF H ()O PLAYER PRINTRET NOTHELD PRINTRET TOOHARD CASTPEER: PRINTRET PEEROUT CLEANPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP UNLESS R ()O EQ CLOTH PRINTRET CANTDO SKIP IF H CLOTH PLAYER PRINTRET NOCLOTH SKIP IF R ()O EQ BOARD PRINTRET CLEANOK SKIP IF S BOARD EQ 0 PRINTRET ALRCLEAN LOAD S BOARD I 1 PRINTRET CLEANBOARD CLIMBPROG: SKIP UNLESS M W2SP WALLSPEC PRINTRET NOCLIMBWALL SKIP IF M W2OB RETURN RETRY NONE CANT SKIP UNLESS R ()O EQ TREE PRINTRET NOTREECLIMB SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP UNLESS H CORPSE PLAYER PRINTRET TOOLADEN SKIP UNLESS R ()O EQ HORSE GO CLHOSS PRINTRET CANTDO CLHOSS: MOVE PLAYER WITH TO INHORSE PRINTRET INTOHOSS CONDPROG: SKIP2 UNLESS M W2EX SKIP IF R ()O EQ CHOIR PRINTRET CANTDO SKIP IF H BATON PLAYER PRINTRET NOBATON SKIP IF R (PLAYER)R EQ (CHOIR)R PRINTRET NOCHOIR COND2: PRINT WESING ASKANY SINGWHO SKIP IF M W2SP MESPEC PRINT SINGOTHER SKIP2 UNLESS M W2SP MESPEC LOAD S CHOIR I 1 PRINT SINGHIM MOVE CHOIR WITH DESTROY PRINTRET CHOIRGOES CUTPROG: SKIP IF M W2SP ROPESPEC RETURN RETRY NONE CANT SKIP IF R (PLAYER)R EQ (EMU)R PRINTRET DONTSEE PRINTRET NOTALEX DAMEPROG: SKIP IF R (DAME)R EQ GROTTO RETURN PRINT DAMEBLOCK RETURN ABORT DIEPROG: PRINT DIEMESS LOAD V VAR0 I 0 GOSUB SCORESUB PRINT SCOREM2 GO QUIT2 DIGPROG: SKIP IF R (PLAYER)R EQ FARM5 PRINTRET TOOHARD SKIP IF S FARM5 EQ 0 PRINTRET DIGFARM MOVE WOMBAT WITH TO FARM5 LOAD S FARM5 I 1 PRINTRET DIGWOMB DONTEST: SKIP IF S TRK1 EQ 0 RETURN PRINT NOWAYMESS RETURN ABORT DNEPROG: SKIP IF V WINDVAR EQ 0 RETURN PRINT WINDBACK RETURN ABORT DEPROG: PRINT WINDBACK RETURN ABORT DSEPROG: SKIP IF V WINDVAR EQ 1 RETURN PRINT WINDBACK RETURN ABORT DRINKPROG: SKIP2 UNLESS M W2EX SKIP IF M W2SP WATERSPEC RETURN RETRY NONE CANT SKIP2 UNLESS R (PLAYER)R EQ POOL LOAD S POOL I 1 / he has drunk PRINTRET DRINKMESS SKIP IF R (PLAYER)R EQ TRK6 SKIP UNLESS R (PLAYER)R EQ LAKE PRINTRET DRINKUGH PRINTRET NOWATER / Subroutine to drop the object referred to by the reference in VAR0. / This should already be in the player's possession. DROPSUB: MOVE (VAR0)O WITH TO (PLAYER)R / Move the object. SUB V OBJHELD I 1 / Update OBJHELD. SKIP2 UNLESS R (PLAYER)R EQ CHURCH4 SKIP UNLESS R (VAR0)O EQ CORPSE GO DROPCORP SKIP UNLESS R (VAR0)O EQ BALL GO DROPBALL SKIP IF R (VAR0)O EQ COCK RETURN CCROW: SKIP3 UNLESS R (COCK)R EQ (WOLF)R SKIP2 IF S WOLF EQ 1 MOVE COCK WITH DESTROY PRINTRET WOLFCOCK SKIP3 UNLESS R (COCK)R EQ (SLOTH)R SKIP IF P NOTAKE SLOTH PRINTRET COCKCSLOTH GO DROPCSLOTH SKIP IF R (COCK)R EQ (SKELETON)R PRINTRET COCKCROW MOVE SKELETON WITH DESTROY LOAD S VIOLIN I 1 UNSET NOTAKE VIOLIN PRINT DANSEEND DESCRIBE WITH (COCK)R RETURN DROPCSLOTH: UNSET NOTAKE SLOTH LOAD S SLOTH I 1 PRINTRET SLOTHFALL DROPBALL: SKIP2 IF R (PLAYER)R EQ LURM1 SKIP IF R (PLAYER)R EQ LURM2 RETURN LOAD S BALL R 7 LOAD V VAR0 S BALL ADD S BALL I 1 MOVE BALL WITH DIR D1 PRINTRET BOUNCES VAR0 DROPCORP: LOAD S CORPSE I 1 MOVE CORPSE WITH DESTROY PRINTRET CORPREST / Main DROP program. DROPPROG: / Command decoding section. SKIP IF M W2EX / Is it "DROP"? GO DROPFIRST SKIP UNLESS M W2SP ALLSPEC / Is it "DROP ALL"? GO DROPALL SKIP IF M W2OB / Must be "DROP object". RETURN RETRY NONE CANT / Induce "I don't understand / that!" if not. / Now check he has the object. SKIP IF H ()O PLAYER PRINTRET NOTHELD / And drop it. RESOLVE VAR0 ()O GOSUB DROPSUB PRINTRET OKMESS / Drop the first object held by the player. DROPFIRST: RESOLVE VAR0 (PLAYER)D SKIP UNLESS V VAR0 EQ 0 / Holding anything? PRINTRET NOTHOLDING GOSUB DROPSUB PRINTRET OKMESS / Drop all objects held by the player. Keep count in VAR3. DROPALL: LOAD V VAR3 I 0 RESOLVE VAR0 (PLAYER)D SKIP UNLESS V VAR0 EQ 0 PRINTRET NOTHOLDING DROPA1: GOSUB DROPSUB ADD V VAR3 I 1 RESOLVE VAR0 (PLAYER)D SKIP IF V VAR0 EQ 0 GO DROPA1 PRINTRET DROPOBJ1 VAR3 DWARFPROG: SKIP UNLESS P VISITED ANAGRM RETURN PRINT DWARF1M ASKANY DWARF2M LOAD V VAR0 I 0 SKIP UNLESS M W2SP FROGSPEC LOAD V VAR0 I 1 SKIP UNLESS M W2SP TOADSPEC LOAD V VAR0 I 2 SKIP UNLESS M W2SP FISHSPEC LOAD V VAR0 I 3 LOAD V VAR1 S ANAGHS ADD V VAR0 V VAR0 SUB V VAR0 V VAR1 SKIP IF V VAR0 EQ 1 SKIP2 UNLESS V VAR0 EQ 0 PRINT DWARF3M RETURN PRINT DWARF4M RETURN ABORT EATPROG: SKIP IF R (PLAYER)R EQ ()R PRINTRET DONTSEE SKIP IF P EDIBLE ()O PRINTRET CANTEAT SKIP UNLESS R ()O EQ PIE GO EATPIE SKIP UNLESS R ()O EQ COCK PRINTRET FEATHERMESS SKIP2 UNLESS R ()O EQ BONE SKIP UNLESS R (DOG)R EQ DOGRM PRINTRET DOGSGOTIT SKIP UNLESS H ()O PLAYER SUB V OBJHELD I 1 MOVE ()O WITH TO STOMACH PRINTRET EATSTRUGGLE EATPIE: SKIP IF H PIE PLAYER PRINTRET NOTHELD MOVE PIE WITH DESTROY LOAD V OBJHELD I 0 MOVE PLAYER WITHOUT TO (PLAYER)R PRINTRET SLEEPOFF ENPROG: RESOLVE VAR0 (ENVYRM)R GO SL2 ENTERPROG: SKIP UNLESS R ()O EQ HORSE GO ENTHORSE SKIP IF R ()O EQ BOAT RETURN RETRY NONE CANT SKIP IF R (PLAYER)R EQ (BOAT)R PRINTRET DONTSEE MOVE PLAYER WITH TO LAKEX GO BOATPROG ENTHORSE: SKIP UNLESS R (PLAYER)R EQ INHORSE PRINTRET ALRIN SKIP IF R (HORSE)R EQ (PLAYER)R PRINTRET DONTSEE PRINTRET HOWDOTHAT EXAMPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE PRINTRET ALLINFO FEEDPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP IF P ALIVE ()O PRINTRET CANTDO SKIP IF R ()O EQ WOLF PRINTRET NOFOOD SKIP UNLESS H PIE PLAYER GO GIVEPIE SKIP UNLESS H COCK PLAYER GO GIVECOCK PRINTRET NOFOOD FNP: LOAD V VAR0 I 0 GO FXALL FNEP: LOAD V VAR0 I 1 GO FXALL FEP: LOAD V VAR0 I 2 GO FXALL FSEP: LOAD V VAR0 I 3 GO FXALL FSP: LOAD V VAR0 I 4 GO FXALL FSWP: LOAD V VAR0 I 5 GO FXALL FWP: LOAD V VAR0 I 6 GO FXALL FNWP: LOAD V VAR0 I 7 FXALL: SUB V VAR0 V MAZEVAR SKIP UNLESS V VAR0 LT 0 ADD V VAR0 I 8 SKIP2 UNLESS V VAR0 EQ 0 MOVE PLAYER WITH DIR D1 RETURN ABORT SKIP2 UNLESS V VAR0 EQ 2 MOVE PLAYER WITH DIR D2 RETURN ABORT SKIP2 UNLESS V VAR0 EQ 4 MOVE PLAYER WITH DIR D3 RETURN ABORT SKIP2 UNLESS V VAR0 EQ 6 MOVE PLAYER WITH DIR D4 RETURN ABORT PRINT NOWAYMESS RETURN ABORT FOGNPROG: LOAD V VAR0 I 1 GO FOGALL FOGEPROG: LOAD V VAR0 I 2 GO FOGALL FOGSPROG: LOAD V VAR0 I 3 GO FOGALL FOGWPROG: LOAD V VAR0 I 4 FOGALL: LOAD V VAR1 V VAR0 LOAD V VAR2 V VAR0 / to remember it SUB V VAR1 S (PLAYER)R SKIP2 UNLESS V VAR1 EQ 0 MOVE PLAYER WITH DIR D1 RETURN ABORT RESOLVE VAR0 (PLAYER)R RESOLVE VAR1 (FOGMAZE1)R SUB V VAR0 V VAR1 RESOLVE VAR1 (FOGDUM1)O ADD V VAR0 V VAR1 RESOLVE VAR0 (VAR0)O / dummy object SUB V VAR2 S (VAR0)O SKIP2 IF V VAR2 EQ 0 PRINT CHASMMESS GO DIEPROG MOVE PLAYER WITH DIR D2 SKIP2 UNLESS S (PLAYER)R EQ 0 LOAD S (PLAYER)R R 3 ADD S (PLAYER)R I 1 RETURN ABORT FREEPROG: SKIP UNLESS M W2SP ROPESPEC GO FREEEMU SKIP IF M W2OB RETURN RETRY NONE CANT SKIP IF R (PLAYER)R EQ ()R PRINTRET DONTSEE SKIP UNLESS R ()O EQ EMU GO FREEEMU SKIP3 UNLESS R ()O EQ KTA LOAD V VAR0 I 1 LOAD V VAR1 I 15 GO FREESUB SKIP3 UNLESS R ()O EQ KTB LOAD V VAR0 I 1 LOAD V VAR1 I 5 GO FREESUB SKIP3 UNLESS R ()O EQ KTC LOAD V VAR0 I 2 LOAD V VAR1 I 15 GO FREESUB SKIP3 UNLESS R ()O EQ KTD LOAD V VAR0 I 2 LOAD V VAR1 I 5 GO FREESUB SKIP3 UNLESS R ()O EQ KTE LOAD V VAR0 I 3 LOAD V VAR1 I 10 GO FREESUB SKIP3 UNLESS R ()O EQ KTF LOAD V VAR0 I 4 LOAD V VAR1 I 15 GO FREESUB SKIP3 UNLESS R ()O EQ KTG LOAD V VAR0 I 5 LOAD V VAR1 I 10 GO FREESUB SKIP3 UNLESS R ()O EQ KTH LOAD V VAR0 I 6 LOAD V VAR1 I 5 GO FREESUB PRINTRET HOWDOTHAT FREEEMU: SKIP IF S EMU EQ 0 PRINTRET ALRFREE SKIP IF H GREASE PLAYER PRINTRET NOFREEEMU SUB V OBJHELD I 1 MOVE GREASE WITH DESTROY LOAD S EMU I 1 UNSET NOTAKE EMU PRINTRET EMUFREE FREESUB: MOVE ()O WITH DESTROY SUB V TIMEVAR V VAR0 SKIP UNLESS V TIMEVAR GT 0 GO FREE1 PRINT SUNSET LOAD V VAR0 I 0 SKIP2 UNLESS P TREASURE KTA PRINT KTAM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTB PRINT KTBM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTC PRINT KTCM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTD PRINT KTDM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTE PRINT KTEM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTF PRINT KTFM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTG PRINT KTGM2 ADD V VAR0 I 1 SKIP2 UNLESS P TREASURE KTH PRINT KTHM2 ADD V VAR0 I 1 SKIP UNLESS V VAR0 EQ 0 PRINT NOBODY SKIP2 IF V VAR0 GT 5 PRINT HARDLUCK GO QUIT2 PRINT WELLDONE RETURN RETRY FINISH MAY ANY FREE1: PRINT YOUFREEKNIGHT VAR0 SUB V VAR1 V TIMEVAR SKIP IF V VAR1 GT 0 SET TREASURE ()O RETURN FUDGEPROG: LOAD S VSD I 1 / allowing endgame PRINTRET OKMESS GAMEPROG: PRINT GAMENO LOAD V VAR0 I 3 GAME1: ASKANY SPECIFY SKIP UNLESS M W2SP SCSPEC LOAD V VAR0 I 0 SKIP UNLESS M W2SP STSPEC LOAD V VAR0 I 1 SKIP UNLESS M W2SP PASPEC LOAD V VAR0 I 2 SKIP UNLESS V VAR0 EQ 3 GO GAME1 PRINT MYMOVE VAR3 SUB V VAR0 V VAR3 SKIP UNLESS V VAR0 LT 0 ADD V VAR0 I 3 SKIP UNLESS V VAR0 EQ 0 PRINT GAMEDRAW SKIP2 UNLESS V VAR0 EQ 1 PRINT GAMEWINP ADD V VAR1 I 1 SKIP2 UNLESS V VAR0 EQ 2 PRINT GAMEWINK ADD V VAR2 I 1 PRINTRET GAMESCORE GIVEPROG: SKIP IF H ()O PLAYER PRINTRET NOTHELD SKIP UNLESS R (PLAYER)R EQ (FRIAR)R GO GIVEFRIAR SKIP4 UNLESS R ()O EQ SCROLL SKIP3 UNLESS R (PLAYER)R EQ (WITCH)R LOAD S SCROLL I 1 MOVE WITCH WITH DESTROY PRINTRET WITCHSWAP SKIP3 UNLESS R (PLAYER)R EQ (HAG)R SKIP IF R ()O EQ EYE SKIP UNLESS R ()O EQ GEM GO GIVEHAG SKIP2 UNLESS R (PLAYER)R EQ (DAME)R SKIP UNLESS R ()O EQ MANDRAKE GO GIVEDAME SKIP2 UNLESS R ()O EQ PIE SKIP UNLESS R (PLAYER)R EQ (WOLF)R GO GIVEPIE SKIP2 UNLESS R ()O EQ COCK SKIP UNLESS R (PLAYER)R EQ (WOLF)R GO GIVECOCK SKIP2 UNLESS R (PLAYER)R EQ (GURU)R SKIP UNLESS R ()O EQ PEARL GO GIVEPEARL PRINTRET UNWANTED GIVECOCK: SKIP UNLESS S WOLF EQ 1 PRINTRET WOLFSLEEP SUB V OBJHELD I 1 MOVE COCK WITH DESTROY PRINTRET WOLFCOCK GIVEPEARL: SUB V OBJHELD I 1 MOVE PEARL WITH DESTROY MOVE GURU WITH DESTROY PRINTRET GURUGIFT GIVEPIE: SUB V OBJHELD I 1 MOVE PIE WITH DESTROY LOAD S WOLF I 1 UNSET NOTAKE WOLF PRINT WOLFDRUG RETURN LOOK GIVEDAME: SUB V OBJHELD I 1 MOVE MANDRAKE WITH DESTROY MOVE DAME WITH DESTROY PRINTRET DAMEDONE GIVEFRIAR: SKIP2 UNLESS P TREASURE ()O MOVE ()O WITH TO ORPHANS SUB V OBJHELD I 1 SKIP UNLESS R ()O EQ MANDRAKE PRINTRET ORP1 SKIP UNLESS R ()O EQ COCK PRINTRET ORP2 SKIP UNLESS R ()O EQ STONE PRINTRET ORP3 SKIP2 UNLESS R ()O EQ SWORD LOAD V VAR0 S SWORD PRINTRET ORP4 VAR0 SKIP UNLESS R ()O EQ CORPSE PRINTRET ORP5 SKIP UNLESS R ()O EQ ROCK PRINTRET ORP6 SKIP UNLESS R ()O EQ GEM PRINTRET ORP7 SKIP UNLESS R ()O EQ IDOL PRINTRET ORP8 SKIP UNLESS R ()O EQ EYE PRINTRET ORP9 SKIP UNLESS R ()O EQ PAPER PRINTRET ORP10 SKIP UNLESS R ()O EQ VIOLIN PRINTRET ORP11 SKIP UNLESS R ()O EQ TAPESTRY PRINTRET ORP12 SKIP UNLESS R ()O EQ FIGURINE PRINTRET ORP13 SKIP UNLESS R ()O EQ CRYSTAL PRINTRET ORP14 SKIP UNLESS R ()O EQ PATEN PRINTRET ORP15 SKIP UNLESS R ()O EQ COINS PRINTRET ORP16 SKIP UNLESS R ()O EQ ORB PRINTRET ORP17 SKIP UNLESS R ()O EQ SCEPTRE PRINTRET ORP18 SKIP UNLESS R ()O EQ STOLE PRINTRET ORP19 SKIP UNLESS R ()O EQ WIG PRINTRET ORP20 SKIP UNLESS R ()O EQ SCROLL PRINTRET ORP21 SKIP UNLESS R ()O EQ CHILD PRINTRET ORP22 SKIP UNLESS R ()O EQ RUBY PRINTRET ORP23 SKIP UNLESS R ()O EQ SAPPH PRINTRET ORP24 SKIP UNLESS R ()O EQ TABLET PRINTRET ORP25 SKIP UNLESS R ()O EQ PIE PRINTRET ORP26 SKIP UNLESS R ()O EQ TORTOISE PRINTRET ORP27 SKIP UNLESS R ()O EQ GREASE PRINTRET ORP28 SKIP UNLESS R ()O EQ CALF PRINTRET ORP29 SKIP UNLESS R ()O EQ PEARL PRINTRET ORP30 PRINTRET ORP31 / shouldn't be any others! GIVEHAG: SUB V OBJHELD I 1 MOVE ()O WITH TO HAG SKIP UNLESS R ()O EQ EYE ADD S HAG I 1 SKIP UNLESS R ()O EQ GEM ADD S HAG I 2 SKIP IF S HAG EQ 3 PRINTRET GHAG1 MOVE HAG WITH DESTROY PRINTRET HAGBLESS GIVEUPPROG: PRINTRET NOTQUEST GLPROG: RESOLVE VAR0 (GLUTRM)R GO SL2 HELLGATE: PRINTRET HELLGMESS HELLNPROG: SKIP UNLESS R (PLAYER)R EQ HELL9 RESOLVE VAR1 (HELL8)R SKIP UNLESS R (PLAYER)R EQ HELL10 RESOLVE VAR1 (HELL9)R MOVE HMDUM3 WITH TO (VAR1)R MOVE HMDUM2 WITH TO (VAR1)R MOVE HMDUM1 WITH TO (VAR1)R GO HELLSET HELLPS: LOAD V VAR0 I 0 SKIP UNLESS S HMDUM1 GT 2 LOAD V VAR0 I 1 / correct way GO HELLPALL HELLPSE: LOAD V VAR0 I 0 SKIP UNLESS S HMDUM2 GT 2 LOAD V VAR0 I 1 / correct way GO HELLPALL HELLPSW: LOAD V VAR0 I 0 SKIP UNLESS S HMDUM3 GT 2 LOAD V VAR0 I 1 / correct way HELLPALL: SKIP UNLESS R (PLAYER)R EQ HELL8 RESOLVE VAR1 (HELL9)R SKIP UNLESS R (PLAYER)R EQ HELL9 RESOLVE VAR1 (HELL10)R SKIP UNLESS R (PLAYER)R EQ HELL10 RESOLVE VAR1 (HELL8)R / use state of room to denote state so far 0=all to here true / 1=an error by now / var0 is now 0 (wrong) or 1 (right) way at this exit / var1 contains next room LOAD S (VAR1)R S (PLAYER)R SKIP IF V VAR0 EQ 1 LOAD S (VAR1)R I 1 MOVE HMDUM3 WITH TO (VAR1)R MOVE HMDUM2 WITH TO (VAR1)R MOVE HMDUM1 WITH TO (VAR1)R SKIP UNLESS R (PLAYER)R EQ HELL10 GO HELLEXIT GO HELLSET HELLEXIT: SKIP2 IF S HELL8 EQ 0 LOAD S HELL8 I 0 GO HELLSET MOVE PLAYER WITH TO DON1 LOAD S DON3 I 1 / for scoring LOAD V VAR0 S HELL6 PRINT HELLEXMESS VAR0 RETURN ABORT HELLSET: LOAD S HMDUM1 R 2 LOAD S HMDUM2 R 2 LOAD S HMDUM3 R 2 LOAD V VAR0 R 2 SKIP UNLESS V VAR0 EQ 0 ADD S HMDUM1 I 3 SKIP UNLESS V VAR0 EQ 1 ADD S HMDUM2 I 3 SKIP UNLESS V VAR0 EQ 2 ADD S HMDUM3 I 3 RETURN HELLTEST: SKIP2 IF S DON1 EQ 1 PRINT NOWAYMESS RETURN ABORT RETURN HITPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP IF P ALIVE ()O PRINTRET SILLYMESS SKIP IF R ()O EQ DEMON SKIP UNLESS R ()O EQ SKELETON PRINTRET UNABLESTRIKE SKIP IF R ()O EQ PAGE PRINTRET VIOLENCE MOVE PAGE WITH DESTROY LOAD S WRATRM I 1 PRINTRET PAGERUN INFOLLYPROG: SKIP2 IF R (FOLLY)R EQ DES18 PRINT NOWAYMESS RETURN ABORT RETURN / Program to do INVENTORY command. INVPROG: SKIP3 IF R (PLAYER)R LT LOON1 SKIP2 IF R (PLAYER)R GT LOON2 LOAD V VAR0 R 6 PRINTRET MADINV VAR0 MOVE LIGHTDUM WITH TO (PLAYER)R DESCRIBE WITH PLAYER / Describe player & possessions. MOVE LIGHTDUM WITH DESTROY SKIP IF E (PLAYER)D / Print "Nothing." if he's PRINT NOTHING / not carrying anything. RETURN JHCPROG: SKIP IF R (CURTAIN)R EQ JOHOCO RETURN LOAD V VAR0 S WWALL SUB V VAR0 I 1 SUB V VAR0 S CURTAIN SKIP2 UNLESS S WWALL EQ 0 PRINT CURTBLOCK RETURN ABORT SKIP2 IF V VAR0 EQ 0 PRINT CURTZAP GO DIEPROG MOVE CURTAIN WITH DESTROY LOAD S JOHOCO I 1 PRINTRET CURTPASS JUMPPROG: PRINTRET OKMESS K1PROG: LOAD V VAR0 I 1 GO KALLPROG K2PROG: LOAD V VAR0 I 2 GO KALLPROG K3PROG: LOAD V VAR0 I 3 GO KALLPROG K4PROG: LOAD V VAR0 I 4 KALLPROG: SKIP2 IF R (PLAYER)R EQ LOON1 SKIP IF R (PLAYER)R EQ LOON2 PRINTRET NHAPPENS SUB V VAR0 V MANDVAR SKIP IF V VAR0 EQ 0 PRINTRET NHAPPENS MOVE PLAYER WITH TO ROUND PRINTRET HEADCLEARS KILLPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP IF P ALIVE ()O PRINTRET NOTALIVE SKIP IF R ()O EQ DEMON SKIP UNLESS R ()O EQ SKELETON PRINTRET UNABLESTRIKE SKIP IF H SWORD PLAYER PRINTRET NOWEAPON PRINTRET VIOLENCE KISSPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP IF P ALIVE ()O PRINTRET SILLYMESS PRINTRET NOTRECIPROCATED KLIBENTER: SKIP IF P VISITED KLIB PRINTRET WALLMOVE LOAD S ANTERM I 1 PRINT LIBBLOCK RETURN ABORT KS1PROG: SKIP UNLESS P VISITED KROOM1 RETURN SKIP2 IF S KROOM1 LT 3 PRINT INVISBARR RETURN ABORT LOAD V VAR0 S KROOM1 PRINT KLINGGREET VAR0 SKIP3 IF Q ACCEPT PRINT BEGONE MOVE PLAYER WITH TO FORK1 RETURN ABORT PRINT RULES VAR0 LOAD V VAR1 I 0 / player wins LOAD V VAR2 I 0 / Klingsor wins LOAD V VAR3 R 2 LOAD V VAR0 I 1 LOAD V KTVAR V VAR3 GOSUB GAMEPROG SUB V VAR3 I 1 SKIP UNLESS V VAR3 LT 0 ADD V VAR3 I 3 LOAD V VAR0 I 2 GOSUB GAMEPROG LOAD V VAR3 V KTVAR LOAD V VAR0 I 3 GOSUB GAMEPROG SUB V VAR1 V VAR2 SKIP UNLESS V VAR1 GT 0 PRINTRET WIN1MESS ADD S KROOM1 I 1 SKIP3 UNLESS S KROOM1 EQ 1 PRINT GOMESS1 MOVE PLAYER WITH TO DES18 RETURN ABORT SKIP3 UNLESS S KROOM1 EQ 2 PRINT GOMESS2 MOVE PLAYER WITH TO JUNC1 RETURN ABORT PRINT GOMESS3 MOVE PLAYER WITH TO ROUND RETURN ABORT KS2PROG: SKIP UNLESS P VISITED KROOM2 RETURN LOAD V VAR0 I 0 PRINT POEM1 ASKANY MISSING SKIP UNLESS M W2SP SWAYSPEC ADD V VAR0 I 1 PRINT POEM2 ASKANY MISSING SKIP UNLESS M W2SP PEACESPEC ADD V VAR0 I 1 PRINT POEM3 ASKANY MISSING SKIP UNLESS M W2SP TURNSPEC ADD V VAR0 I 1 SKIP UNLESS V VAR0 EQ 3 PRINTRET WIN2MESS SKIP3 UNLESS V VAR0 EQ 2 PRINT WIN2NEARLY MOVE PLAYER WITH TO JUNC1 RETURN ABORT PRINT WIN2NN GO DIEPROG KS3PROG: SKIP UNLESS P VISITED KROOM3 RETURN LOAD V VAR0 R 1 LOAD V VAR1 R 1 ADD V VAR1 I 1 PRINT CLAIM VAR0 LOAD V VAR2 I 2 KS31: ASKANY LETTER SKIP UNLESS M W2SP ASPEC LOAD V VAR2 I 0 SKIP UNLESS M W2SP BSPEC LOAD V VAR2 I 1 SKIP UNLESS V VAR2 EQ 2 GO KS31 LOAD V VAR3 I 2 KS32: ASKANY NUMBER SKIP UNLESS M W2SP ONESPEC LOAD V VAR3 I 0 SKIP UNLESS M W2SP TWOSPEC LOAD V VAR3 I 1 SKIP UNLESS V VAR3 EQ 2 GO KS32 SUB V VAR2 V VAR0 ADD V VAR1 V VAR3 SKIP UNLESS V VAR2 EQ 0 SKIP2 IF V VAR1 EQ 2 PRINT WIN3NN GO DIEPROG PRINT WIN3M1 LOAD V VAR0 R 1 LOAD V VAR1 R 1 ADD V VAR1 I 1 PRINT ALSOCARD VAR0 ASKANY ABOT LOAD V VAR2 I 0 ADD V VAR0 V VAR1 SKIP4 UNLESS V VAR0 EQ 2 SKIP UNLESS M W2SP TOABSPEC GO KS3END PRINT WIN3NN2 GO DIEPROG SKIP2 IF M W2SP OTBASPEC PRINT WIN3NN2 GO DIEPROG KS3END: PRINTRET WIN3END KS4PROG: SKIP UNLESS P VISITED KROOM4 RETURN LOAD V VAR0 R 2 PRINT LONGWD1 VAR0 ASKANY LONGWD2 SKIP4 UNLESS V VAR0 EQ 0 SKIP2 IF M W2SP FACEDSPEC PRINT WIN4NN GO DIEPROG GO KS4END SKIP4 UNLESS V VAR0 EQ 1 SKIP2 IF M W2SP PLONKSPEC PRINT WIN4NN GO DIEPROG GO KS4END SKIP2 IF M W2SP SPURTSPEC / var0 must be 2 now PRINT WIN4NN GO DIEPROG KS4END: PRINTRET WIN4OK KS5PROG: SKIP UNLESS P VISITED KROOM5 RETURN LOAD V VAR0 I 9 / number left LOAD V VAR1 I 0 / player's hand LOAD V VAR2 I 0 / kling's hand LOAD V VAR3 I 0 / player's parity 0 or 1 LOAD V VAR4 I 0 / kling's parity PRINT K5RULES KS5Q: ASKANY TAKEQ SKIP UNLESS M W2SP ONESPEC GO K5T1 SKIP UNLESS M W2SP TWOSPEC GO K5T2 SKIP UNLESS M W2SP THREESPEC GO K5T3 GO KS5Q K5T1: LOAD V VAR5 I 1 SUB V VAR5 V VAR0 SKIP2 UNLESS V VAR5 GT 0 PRINT IMPOSST GO KS5Q SUB V VAR0 I 1 ADD V VAR1 I 1 ADD V VAR3 I 1 SKIP UNLESS V VAR3 GT 1 LOAD V VAR3 I 0 GO K5DEC K5T2: LOAD V VAR5 I 2 SUB V VAR5 V VAR0 SKIP2 UNLESS V VAR5 GT 0 PRINT IMPOSST GO KS5Q SUB V VAR0 I 2 ADD V VAR1 I 2 GO K5DEC K5T3: LOAD V VAR5 I 3 SUB V VAR5 V VAR0 SKIP2 UNLESS V VAR5 GT 0 PRINT IMPOSST GO KS5Q SUB V VAR0 I 3 ADD V VAR1 I 3 ADD V VAR3 I 1 SKIP UNLESS V VAR3 GT 1 LOAD V VAR3 I 0 K5DEC: SKIP UNLESS V VAR0 EQ 0 GO K5ENDZ LOAD V VAR5 I 0 K5LP: ADD V VAR5 I 1 / testing moves 1-3 seeking winner SKIP IF V VAR5 LT 4 GO K5BAD LOAD V VAR6 V VAR0 SUB V VAR6 V VAR5 SKIP UNLESS V VAR6 LT 0 GO K5BAD SKIP IF V VAR5 EQ 1 SKIP2 UNLESS V VAR5 EQ 3 SKIP UNLESS V VAR4 EQ 1 GO K5HEVEN SKIP2 UNLESS V VAR5 EQ 2 SKIP UNLESS V VAR4 EQ 0 GO K5HEVEN K5HODD: SKIP2 IF V VAR6 EQ 0 SKIP IF V VAR6 EQ 1 SKIP UNLESS V VAR6 EQ 8 GO K5GOOD GO K5LP K5HEVEN: SKIP IF V VAR6 EQ 4 SKIP UNLESS V VAR6 EQ 5 GO K5GOOD GO K5LP K5BAD: LOAD V VAR5 I 1 K5GOOD: SUB V VAR0 V VAR5 ADD V VAR2 V VAR5 ADD V VAR4 V VAR5 K5GL: SKIP2 UNLESS V VAR4 GT 1 SUB V VAR4 I 2 GO K5GL LOAD V VAR6 V VAR3 / temp copy LOAD V VAR3 V VAR5 PRINT K5MOVE LOAD V VAR3 V VAR6 SKIP IF V VAR0 EQ 0 GO KS5Q K5ENDZ: SKIP2 UNLESS V VAR3 EQ 0 PRINT WIN5NN GO DIEPROG PRINTRET WIN5OK KS6PROG: / note no need to check visited room as doing so destroys it PRINT K6RIDDLE ASKANY GETWORD1 SKIP2 IF M W2SP COURTSPEC PRINT WIN6NN GO DIEPROG ASKANY GETWORD2 SKIP2 IF M W2SP SHIPSPEC PRINT WIN6NN GO DIEPROG MOVE FOLLY WITH DESTROY PRINTRET WIN6END KNOCKPROG: SKIP IF M W2EX GO KNOCK2 SKIP IF M W2SP DOORSPEC RETURN RETRY NONE CANT SKIP2 IF R (PLAYER)R EQ DON1 SKIP IF R (PLAYER)R EQ TRK1 PRINTRET DONTSEE KNOCK2: SKIP UNLESS P VISITED DON1 PRINTRET NHAPPENS SKIP UNLESS R (PLAYER)R EQ TRK1 SKIP IF S TRK1 EQ 0 PRINTRET NHAPPENS LOAD S PORTRAIT I 1 LOAD S TRK1 I 1 PRINTRET SWINGOPEN LAMBSET: SKIP2 IF P VISITED FARM6 LOAD S LAMB R 4 ADD S LAMB I 1 RETURN LIEPROG: SKIP IF M W2SP DOWNSPEC RETURN RETRY NONE CANT GO SLEEPPROG / Program to give the long description of a room. LOOKPROG: UNSET VISITED (PLAYER)R / Pretend room not visited to get / long description. RETURN LOOK / And return with request for description. LOONPROG: LOAD V VAR0 R 13 PRINTRET LOONMESS VAR0 LUPROG: RESOLVE VAR0 (LURM2)R / NB GO SL2 LU1P: LOAD V VAR0 I 1 GO LUMAZEP LU2P: LOAD V VAR0 I 2 GO LUMAZEP LU3P: LOAD V VAR0 I 3 GO LUMAZEP LU4P: LOAD V VAR0 I 4 GO LUMAZEP LU5P: LOAD V VAR0 I 5 GO LUMAZEP LU6P: LOAD V VAR0 I 6 GO LUMAZEP LU7P: LOAD V VAR0 I 7 GO LUMAZEP LU8P: LOAD V VAR0 I 8 LUMAZEP: SUB V VAR0 S BALL SKIP IF V VAR0 EQ 0 RETURN LOAD S BALL I 0 SKIP2 UNLESS R (PLAYER)R EQ LURM2 PRINT SERAGLIOMESS LOAD S LURM2 I 1 MOVE PLAYER WITH DIR D1 RETURN ABORT / Program to do Magic Move instruction. MMPROG: SKIP IF E ()R / Is the object "destroyed"? PRINTRET CANTDO MOVE PLAYER WITH TO ()R RETURN MONKCHECK: RESOLVE VAR0 (PAL1)R MONKC2: SKIP UNLESS S (VAR0)R EQ 0 GO MONKBAD SKIP UNLESS R (VAR0)R EQ (PAL16)R GO MONKGOOD ADD V VAR0 I 1 RESOLVE VAR0 (VAR0)R GO MONKC2 MONKBAD: PRINTRET MONKBMESS MONKGOOD: MOVE PLAYER WITH TO SALT1 LOAD S MONK I 1 PRINT MONKGMESS RETURN ABORT MONKSTART: SKIP IF P VISITED PAL0 PRINTRET MONKSMESS PRINT MONKALR RETURN ABORT MOSESPROG: SKIP IF R (MOSES)R EQ SINAI2 RETURN MOVE MOSES WITH DESTROY SKIP IF H TABLET PLAYER PRINTRET MOSESBAD MOVE TABLET WITH DESTROY MOVE CALF WITH TO PLAYER / direct swap PRINTRET MOSESGOOD NASPROG: SKIP IF M W2EX RETURN RETRY NONE CANT SKIP IF M W2SP XARNSPEC RETURN RETRY NONE CANT PRINTRET NHAPPENS NEVPROG: SKIP UNLESS R (PLAYER)R EQ FARM1 SKIP IF S RAVEN EQ 0 PRINTRET NHAPPENS SKIP IF M W2EX PRINTRET RAVENBAD SKIP IF M W2SP MORESPEC PRINTRET NHAPPENS LOAD S RAVEN I 1 UNSET NOTAKE RAVEN PRINTRET RAVENGOOD NOAHTAKE: SKIP UNLESS S NOAH EQ 0 RETURN SKIP IF P VISITED TRK6 PRINT NOAHINTRO SKIP3 UNLESS H RAVEN PLAYER RESOLVE VAR0 (RAVEN)O GOSUB NOAHGRAB PRINT NARK1 SKIP3 UNLESS H EMU PLAYER RESOLVE VAR0 (EMU)O GOSUB NOAHGRAB PRINT NARK2 SKIP3 UNLESS H SLOTH PLAYER RESOLVE VAR0 (SLOTH)O GOSUB NOAHGRAB PRINT NARK3 SKIP3 UNLESS H WOLF PLAYER RESOLVE VAR0 (WOLF)O GOSUB NOAHGRAB PRINT NARK4 SKIP3 UNLESS H WOMBAT PLAYER RESOLVE VAR0 (WOMBAT)O GOSUB NOAHGRAB PRINT NARK5 SKIP3 UNLESS H LAMB PLAYER RESOLVE VAR0 (LAMB)O GOSUB NOAHGRAB PRINT NARK6 SKIP3 UNLESS H TORTOISE PLAYER RESOLVE VAR0 (TORTOISE)O GOSUB NOAHGRAB PRINT NARK7 SKIP UNLESS H COCK PLAYER PRINT NARK8 / cock is needed for sloth! SKIP IF S NOAH EQ 0 RETURN MOVE NOAH WITH DESTROY MOVE ARK WITH DESTROY PRINTRET NOAHGONE NOAHGRAB: SUB S NOAH I 1 SUB V OBJHELD I 1 MOVE (VAR0)O WITH DESTROY RETURN NX1PROG: SKIP2 UNLESS P VISITED NXHALL PRINT INVISBARR RETURN ABORT LOAD V OBJHELD I 0 MOVE PLAYER WITHOUT TO NXHALL PRINT NXENTER RETURN ABORT NXENDPROG: PRINT NXVOICE1 LOAD V VAR0 I 0 SKIP2 UNLESS S AVRM1 EQ 3 ADD V VAR0 I 1 PRINT SIN1 SKIP2 UNLESS S BOARD EQ 1 ADD V VAR0 I 1 PRINT SIN2 SKIP3 UNLESS R (CHEESE)R EQ STOMACH SKIP2 UNLESS R (BONE)R EQ STOMACH ADD V VAR0 I 1 PRINT SIN3 SKIP2 UNLESS S LURM2 EQ 1 ADD V VAR0 I 1 PRINT SIN4 SKIP2 UNLESS S CHOIR EQ 1 ADD V VAR0 I 1 PRINT SIN5 SKIP2 UNLESS S BED EQ 2 ADD V VAR0 I 1 PRINT SIN6 SKIP2 UNLESS S WRATRM EQ 1 ADD V VAR0 I 1 PRINT SIN7 SKIP UNLESS V VAR0 EQ 0 PRINT SIN0 SKIP4 IF V VAR0 EQ 7 MOVE PLAYER WITHOUT TO NXARN LOAD V OBJHELD I 0 PRINT NXVOICE2 RETURN ABORT LOAD V VAR0 I 0 SKIP2 UNLESS H BALL PLAYER ADD V VAR0 I 1 MOVE ORB WITH TO NXARN SKIP2 UNLESS H CLOTH PLAYER ADD V VAR0 I 1 MOVE STOLE WITH TO NXARN SKIP2 UNLESS H BATON PLAYER ADD V VAR0 I 1 MOVE SCEPTRE WITH TO NXARN MOVE PLAYER WITHOUT TO NXARN LOAD V OBJHELD I 0 SKIP2 UNLESS V VAR0 EQ 3 PRINT NXVOICE3 RETURN ABORT PRINT NXVOICE4 RETURN ABORT OMEGAPROG: SKIP UNLESS V BOOKVAR EQ 0 SKIP IF R (PLAYER)R EQ KLIB PRINTRET NHAPPENS MOVE PLAYER WITH TO ANTERM MOVE VINE WITH DESTROY / for scoring PRINTRET OMEGAMESS OPENPROG: SKIP UNLESS M W2SP DOORSPEC GO OPENDOOR SKIP2 UNLESS M W2SP ASPEC LOAD V VAR0 I 1 GO OPENALL SKIP2 UNLESS M W2SP BSPEC LOAD V VAR0 I 2 GO OPENALL SKIP2 UNLESS M W2SP CSPEC LOAD V VAR0 I 3 GO OPENALL SKIP2 UNLESS M W2SP DOWNSPEC LOAD V VAR0 I 4 GO OPENALL SKIP2 UNLESS M W2SP ESPEC LOAD V VAR0 I 5 GO OPENALL SKIP2 UNLESS M W2SP FSPEC LOAD V VAR0 I 6 GO OPENALL SKIP2 UNLESS M W2SP GSPEC LOAD V VAR0 I 7 GO OPENALL SKIP2 UNLESS M W2SP HSPEC LOAD V VAR0 I 8 GO OPENALL SKIP2 UNLESS M W2SP ISPEC LOAD V VAR0 I 9 GO OPENALL SKIP2 UNLESS M W2SP JSPEC LOAD V VAR0 I 10 GO OPENALL SKIP2 UNLESS M W2SP KSPEC LOAD V VAR0 I 11 GO OPENALL SKIP2 UNLESS M W2SP LSPEC LOAD V VAR0 I 12 GO OPENALL SKIP2 UNLESS M W2SP MSPEC LOAD V VAR0 I 13 GO OPENALL SKIP2 UNLESS M W2SP NSPEC LOAD V VAR0 I 14 GO OPENALL SKIP2 UNLESS M W2SP OSPEC LOAD V VAR0 I 15 GO OPENALL SKIP UNLESS M W2OB SKIP IF R ()O EQ BOOK RETURN RETRY NONE CANT SKIP IF R (PLAYER)R EQ (BOOK)R PRINTRET DONTSEE ASK WHICHBOOK GO OPENPROG OPENALL: SKIP IF R (PLAYER)R EQ (BOOK)R PRINTRET DONTSEE LOAD V VAR1 V VAR0 SUB V VAR1 V BOOKVAR SKIP IF V VAR1 EQ 0 PRINTRET WONTOPEN PRINT BOOKMESS VAR0 SKIP2 UNLESS V VAR0 EQ 1 LOAD V BOOKVAR I 0 RETURN SKIP2 UNLESS V VAR0 EQ 2 LOAD V BOOKVAR I 9 RETURN SKIP2 UNLESS V VAR0 EQ 3 LOAD V BOOKVAR I 12 RETURN SKIP2 UNLESS V VAR0 EQ 4 LOAD V BOOKVAR I 15 RETURN SKIP2 UNLESS V VAR0 EQ 5 LOAD V BOOKVAR I 7 RETURN SKIP2 UNLESS V VAR0 EQ 6 LOAD V BOOKVAR I 10 RETURN SKIP2 UNLESS V VAR0 EQ 7 LOAD V BOOKVAR I 1 RETURN SKIP2 UNLESS V VAR0 EQ 8 LOAD V BOOKVAR I 2 RETURN SKIP2 UNLESS V VAR0 EQ 9 LOAD V BOOKVAR I 4 RETURN SKIP2 UNLESS V VAR0 EQ 10 LOAD V BOOKVAR I 14 RETURN SKIP2 UNLESS V VAR0 EQ 11 LOAD V BOOKVAR I 6 RETURN SKIP2 UNLESS V VAR0 EQ 12 LOAD V BOOKVAR I 11 RETURN SKIP2 UNLESS V VAR0 EQ 13 LOAD V BOOKVAR I 5 RETURN SKIP2 UNLESS V VAR0 EQ 14 LOAD V BOOKVAR I 8 RETURN SKIP2 UNLESS V VAR0 EQ 15 LOAD V BOOKVAR I 13 RETURN RETURN / shouldn't get here! / CLKFJ NH BID OMEGA is order of opening books OPENDOOR: SKIP2 IF R (PLAYER)R EQ DON1 SKIP3 UNLESS R (PLAYER)R EQ TRK1 SKIP IF S TRK1 EQ 0 PRINTRET ALROPEN PRINTRET CANTOPEN PRINTRET NOTPOSSHERE OPTON: SKIP3 IF S OPT9 EQ 1 LOAD S OPT9 I 1 PRINT GIANTBLOCK RETURN PRINT BLOCKED RETURN ABORT OPT1P: ADD V TIMEVAR I 1 GO OPTALL OPT2P: ADD V TIMEVAR I 2 GO OPTALL OPT3P: ADD V TIMEVAR I 3 GO OPTALL OPT4P: ADD V TIMEVAR I 4 GO OPTALL OPT5P: ADD V TIMEVAR I 5 GO OPTALL OPT6P: ADD V TIMEVAR I 6 OPTALL: LOAD V VAR0 V TIMEVAR PRINTRET TIMEJOUR OZPROG: SKIP2 UNLESS R (PLAYER)R EQ (OZ)R SKIP2 IF R (PLAYER)R EQ (STONE)R PRINTRET OZMOVES PRINTRET NHAPPENS SKIP2 UNLESS H STONE PLAYER MOVE STONE WITH TO (PLAYER)R SUB V OBJHELD I 1 MOVE OZ WITH DESTROY MOVE STONE WITH DESTROY MOVE FIGURINE WITH TO (PLAYER)R PRINT OZDONE RETURN LOOK PAL1PROG: LOAD V VAR0 I 1 GO PALALL PAL2PROG: LOAD V VAR0 I 2 GO PALALL PAL3PROG: LOAD V VAR0 I 3 PALALL: SKIP IF R (PLAYER)R LT PAL1 SKIP UNLESS R (PLAYER)R GT PAL16 PRINTRET NHAPPENS SKIP IF S (PLAYER)R EQ 0 PRINTRET NHAPPENS LOAD S (PLAYER)R V VAR0 / now the poxious task of testing adjoining rooms SKIP IF R (PLAYER)R LT PAL13 GO PALONBIG RESOLVE VAR1 (PLAYER)R SKIP2 IF R (PLAYER)R EQ PAL1 SUB V VAR1 I 1 GO PALX1 ADD V VAR1 I 11 PALX1: GOSUB PALSUB RESOLVE VAR1 (PLAYER)R SKIP2 IF R (PLAYER)R EQ PAL12 ADD V VAR1 I 1 GO PALX2 SUB V VAR1 I 11 PALX2: GOSUB PALSUB MOVE PALDUM WITH TO (PLAYER)R MOVE PALDUM WITH DIR D1 RESOLVE VAR1 (PALDUM)R MOVE PALDUM WITH DESTROY GOSUB PALSUB GO PALEND PALONBIG: MOVE PALDUM WITH TO (PLAYER)R MOVE PALDUM WITH DIR D1 RESOLVE VAR1 (PALDUM)R MOVE PALDUM WITH DESTROY GOSUB PALSUB ADD V VAR1 I 1 RESOLVE VAR1 (VAR1)R SKIP UNLESS R (VAR1)R GT PAL12 RESOLVE VAR1 (PAL1)R GOSUB PALSUB ADD V VAR1 I 1 RESOLVE VAR1 (VAR1)R GOSUB PALSUB PALEND: SUB V VAR0 I 1 PRINTRET PALGLOW VAR0 PALSUB: / takes room in var1 and tests if state is same RESOLVE VAR1 (VAR1)R / as var0, if so it switches it off. Uses var2. LOAD V VAR2 S (VAR1)R SUB V VAR2 V VAR0 SKIP UNLESS V VAR2 EQ 0 LOAD S (VAR1)R I 0 RETURN PLAYPROG: SKIP IF R ()O EQ VIOLIN RETURN RETRY NONE CANT SKIP IF H VIOLIN PLAYER PRINTRET NOTHELD SKIP UNLESS R (PLAYER)R EQ HELL6 SKIP IF S HELL6 EQ 0 PRINTRET TWANGMESS LOAD S HELL6 I 1 PRINTRET EURYDICE TERSEPROG: LOAD V TERSEVAR I 0 PRINTRET TERSE0MESS VERBOSEPROG: LOAD V TERSEVAR I 2 PRINTRET TERSE2MESS STANDARDPROG: LOAD V TERSEVAR I 1 PRINTRET TERSE1MESS POSTPROG: SKIP IF M MOVED GO POST0 LOAD V LASTLOC V THISLOC RESOLVE THISLOC (PLAYER)R POST0: SKIP UNLESS R (PLAYER)R EQ CTOWER SKIP UNLESS M MOVED GO POST1 MOVE PLAYER WITH TO ROUND MOVE PLAYER WITHOUT TO LOON1 LOAD V OBJHELD I 0 PRINT HUNCHMESS POST1: RESOLVE LASTLOC (LASTLOC)R SKIP IF R (LASTLOC)R LT DES1 SKIP UNLESS R (LASTLOC)R GT DES18 GO POST2 POST15: SKIP3 UNLESS E (LASTLOC)O RESOLVE VAR0 (LASTLOC)O SKIP IF R (VAR0)O EQ OZ SKIP UNLESS R (VAR0)O EQ FOLLY GO POST2 MOVE (VAR0)O WITH DESTROY GO POST15 POST2: SKIP IF R (PLAYER)R LT DES1 SKIP UNLESS R (PLAYER)R GT DES18 GO POST3 SKIP UNLESS M MOVED LOAD V WINDVAR R 1 LOAD V VAR0 V WINDVAR PRINT WINDMESS VAR0 SKIP UNLESS S POOL EQ 1 GO POST3 ADD V THIRSTVAR I 1 SKIP UNLESS V THIRSTVAR LT 4 GO POST3 SKIP2 IF V THIRSTVAR LT 8 PRINT THIRSTDIE GO DIEPROG PRINT THIRSTY POST3: SKIP UNLESS R (PAPER)R EQ JUNC1 SKIP IF S PAPER EQ 0 GO POST4 ADD V PAPVAR I 1 SKIP2 IF V PAPVAR LT 4 LOAD S PAPER R 2 ADD S PAPER I 1 POST4: ADD V MAZEVAR I 1 SKIP IF V MAZEVAR LT 8 LOAD V MAZEVAR I 0 POST5: SKIP2 UNLESS R (PLAYER)R EQ CASTLE LOAD V VAR0 V TIMEVAR PRINT TIMENOW VAR0 ADD S CURTAIN I 1 SKIP UNLESS S CURTAIN GT 14 LOAD S CURTAIN I 0 SKIP3 UNLESS R (PLAYER)R EQ (CURTAIN)R SKIP2 IF M MOVED LOAD V VAR0 S CURTAIN PRINT CURTCHANGE VAR0 POST6: SKIP UNLESS S UAREA EQ 0 SKIP IF R (PLAYER)R EQ UAREA GO POST7 LOAD V VAR0 R 99 LOAD V VAR1 V VAR0 ADD V VAR1 I 1 LOAD V VAR2 V VAR0 ADD V VAR2 I 2 LOAD V VAR3 V VAR0 ADD V VAR3 I 3 PRINT BINGOCALL POST7: SKIP3 IF S DON1 EQ 0 LOAD S DON1 I 0 SKIP UNLESS R (PLAYER)R EQ DON1 PRINT PORTOVER SKIP IF S PORTRAIT EQ 0 SKIP IF E (PORTRAIT)R GO POST8 ADD S PORTRAIT I 1 SKIP IF S PORTRAIT GT 2 GO POST8 MOVE PORTRAIT WITH DESTROY MOVE NOBLE WITH TO DON1 LOAD S JUAN I 1 SKIP UNLESS R (PLAYER)R EQ TRK1 PRINT PORTALIVE SKIP UNLESS R (PLAYER)R EQ DON1 PRINT PORTENTER POST8: SKIP IF R (NOBLE)R EQ DON1 GO POST9 ADD S NOBLE I 1 SKIP IF S NOBLE GT 1 GO POST9 LOAD S DON1 I 1 MOVE NOBLE WITH DESTROY MOVE JUAN WITH DESTROY SKIP IF R (PLAYER)R EQ DON1 GO POST9 SKIP2 IF M MOVED PRINT PORTHELL GO POST9 PRINT PORTHEL2 POST9: SKIP3 IF M MOVED SKIP2 UNLESS R (PLAYER)R EQ (RAVEN)R SKIP2 IF S RAVEN EQ 0 PRINT NEVERMORE GO POST10 LOAD V VAR0 R 7 PRINT QUOTH VAR0 POST10: SKIP IF H PEARL ALTAR GO POST11 ADD V PRVAR1 I 1 SKIP IF V PRVAR1 LT 11 SUB V PRVAR1 I 11 ADD V PRVAR3 I 1 SKIP IF V PRVAR3 LT 10 SUB V PRVAR3 I 10 ADD V PRVAR2 I 2 SKIP UNLESS V PRVAR3 EQ 0 ADD V PRVAR2 I 1 SKIP IF V PRVAR2 LT 11 SUB V PRVAR2 I 11 SKIP IF R (PLAYER)R EQ WISTEM GO POST11 SKIP UNLESS V PRVAR2 EQ 0 TEXT PROV2M0 WITH SKIP UNLESS V PRVAR2 EQ 1 TEXT PROV2M1 WITH SKIP UNLESS V PRVAR2 EQ 2 TEXT PROV2M2 WITH SKIP UNLESS V PRVAR2 EQ 3 TEXT PROV2M3 WITH SKIP UNLESS V PRVAR2 EQ 4 TEXT PROV2M4 WITH SKIP UNLESS V PRVAR2 EQ 5 TEXT PROV2M5 WITH SKIP UNLESS V PRVAR2 EQ 6 TEXT PROV2M6 WITH SKIP UNLESS V PRVAR2 EQ 7 TEXT PROV2M7 WITH SKIP UNLESS V PRVAR2 EQ 8 TEXT PROV2M8 WITH SKIP UNLESS V PRVAR2 EQ 9 TEXT PROV2M9 WITH SKIP UNLESS V PRVAR2 EQ 10 TEXT PROV2M10 WITH LOAD V VAR0 V PRVAR1 PRINT PROV1M VAR0 POST11: SKIP UNLESS V TERSEVAR EQ 0 SET VISITED (PLAYER)R SKIP UNLESS V TERSEVAR EQ 2 UNSET VISITED (PLAYER)R / do terse & verbose last of all RETURN PRPROG: RESOLVE VAR0 (PRIDRM)R GO SL2 PULLPROG: SKIP UNLESS M W2SP REDSPEC GO PULL0 SKIP UNLESS M W2SP BLUESPEC GO PULL1 SKIP UNLESS M W2SP GREENSPEC GO PULL2 SKIP UNLESS M W2SP YELLOWSPEC GO PULL3 SKIP IF M W2OB RETURN RETRY NONE CANT SKIP2 UNLESS R ()O EQ MANDRAKE SKIP UNLESS S MANDRAKE EQ 0 GO TAKEPROG SKIP3 UNLESS R ()O EQ SWORD SKIP UNLESS H SWORD TREE GO TAKEPROG PRINTRET SILLYMESS SKIP IF R ()O EQ LEVER PRINTRET SILLYMESS ASK WHICHLEVER GO PULLPROG PULL0: SKIP IF R (PLAYER)R EQ INHORSE PRINTRET DONTSEE MOVE PLAYER WITH TO (HORSE)R MOVE HORSE WITH DESTROY MOVE TIMBER WITH TO (PLAYER)R PRINTRET CRASH PULL1: SKIP IF R (PLAYER)R EQ INHORSE PRINTRET DONTSEE PRINTRET NHAPPENS PULL2: SKIP IF R (PLAYER)R EQ INHORSE PRINTRET DONTSEE SKIP IF R (HORSE)R EQ PATH2 PRINTRET NHAPPENS MOVE HORSE WITH TO CITY PRINTRET HORSEROLLS PULL3: SKIP IF R (PLAYER)R EQ INHORSE PRINTRET DONTSEE PRINT HORSENEIGH SKIP IF R (HORSE)R EQ CITY RETURN MOVE HORSE WITH TO INCITY PRINTRET COMMOTION PUSHPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE PRINTRET SILLYMESS / Program to make certain the player wants to quit. QUITPROG: LOAD V VAR0 I 10 GOSUB SCORESUB PRINT SCOREM3 SKIP IF Q QUITQUERY / Skip if "yes" answer. RETURN QUIT2: SKIP2 IF Q MOREGAMES PRINT WTGROYT RETURN RETRY FINISH MAY ANY / Induce end of game. RETURN RETRY RESTART MAY ANY READPROG: SKIP IF M W2SP TREESPEC SKIP IF M W2OB GO READ1 SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP UNLESS R ()O EQ BOOK GO OPENPROG SKIP UNLESS R ()O EQ TABLET GO READTABLET SKIP UNLESS R ()O EQ SCROLL GO READSCROLL SKIP2 UNLESS R ()O EQ BOARD LOAD V VAR0 S BOARD PRINTRET READM1 VAR0 SKIP UNLESS R ()O EQ OZ PRINTRET READM2 SKIP2 UNLESS R ()O EQ PAPER LOAD V VAR0 S PAPER PRINTRET READM3 VAR0 SKIP UNLESS R ()O EQ STONE PRINTRET READM4 PRINTRET CANTDO READTABLET: SKIP UNLESS R (PLAYER)R EQ UAREA SKIP IF S UAREA EQ 0 PRINTRET READTABMESS LOAD S UAREA I 1 LOAD S WOOD3 I 1 MOVE MOSES WITH TO SINAI2 PRINTRET ZAPUAREA READSCROLL: SKIP UNLESS H SCROLL PLAYER SUB V OBJHELD I 1 MOVE SCROLL WITH DESTROY SKIP UNLESS S SCROLL EQ 0 PRINTRET NOBROOM SKIP IF R (ERLKING)R EQ (PLAYER)R PRINTRET NOWOOD MOVE ERLKING WITH DESTROY MOVE CHILD WITH TO (PLAYER)R PRINT ERLGO RETURN LOOK READ1: SKIP2 UNLESS M W2SP ASPEC LOAD V VAR0 I 1 GO OPENALL SKIP2 UNLESS M W2SP BSPEC LOAD V VAR0 I 2 GO OPENALL SKIP2 UNLESS M W2SP CSPEC LOAD V VAR0 I 3 GO OPENALL SKIP2 UNLESS M W2SP DOWNSPEC LOAD V VAR0 I 4 GO OPENALL SKIP2 UNLESS M W2SP ESPEC LOAD V VAR0 I 5 GO OPENALL SKIP2 UNLESS M W2SP FSPEC LOAD V VAR0 I 6 GO OPENALL SKIP2 UNLESS M W2SP GSPEC LOAD V VAR0 I 7 GO OPENALL SKIP2 UNLESS M W2SP HSPEC LOAD V VAR0 I 8 GO OPENALL SKIP2 UNLESS M W2SP ISPEC LOAD V VAR0 I 9 GO OPENALL SKIP2 UNLESS M W2SP JSPEC LOAD V VAR0 I 10 GO OPENALL SKIP2 UNLESS M W2SP KSPEC LOAD V VAR0 I 11 GO OPENALL SKIP2 UNLESS M W2SP LSPEC LOAD V VAR0 I 12 GO OPENALL SKIP2 UNLESS M W2SP MSPEC LOAD V VAR0 I 13 GO OPENALL SKIP2 UNLESS M W2SP NSPEC LOAD V VAR0 I 14 GO OPENALL SKIP2 UNLESS M W2SP OSPEC LOAD V VAR0 I 15 GO OPENALL / SKIP4 UNLESS M W2SP SIGNSPEC SKIP IF R (PLAYER)R EQ ANAGHS PRINTRET DONTSEE LOAD V VAR0 S ANAGHS PRINTRET READM5 VAR0 SKIP IF M W2SP TREESPEC SKIP3 UNLESS M W2SP INSCRSPEC SKIP IF R (PLAYER)R EQ FORK1 PRINTRET DONTSEE PRINTRET READM6 SKIP IF M W2SP WALLSPEC GO READ2 SKIP UNLESS R (PLAYER)R EQ KROOM1 PRINTRET READM7 SKIP UNLESS R (PLAYER)R EQ KROOM2 PRINTRET READM8 PRINTRET DONTSEE READ2: SKIP3 UNLESS M W2SP GATESPEC SKIP IF R (PLAYER)R EQ NXARN PRINTRET DONTSEE PRINTRET READM9 SKIP3 UNLESS M W2SP BLDGSPEC SKIP IF R (PLAYER)R EQ TURN1 PRINTRET DONTSEE PRINTRET READM10 SKIP3 UNLESS M W2SP PEDSPEC SKIP IF R (PLAYER)R EQ (OZ)R PRINTRET DONTSEE PRINTRET READM2 RETURN RETRY NONE CANT SAYPROG: PRINT SAYMESS SKIP IF M W2SP MAGICSPEC RETURN RETURN RETRY IGNORE MAY REC SCOREPROG: SKIP2 IF R (PLAYER)R LT LOON1 SKIP IF R (PLAYER)R GT LOON2 PRINTRET MADSCORE LOAD V VAR0 I 10 GOSUB SCORESUB PRINTRET SCOREM1 SCORESUB: SKIP UNLESS R (VIOLIN)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (TAPESTRY)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (FIGURINE)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (CRYSTAL)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (PATEN)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (COINS)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (ORB)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (SCEPTRE)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (STOLE)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS P VISITED ANAGRM ADD V VAR0 I 15 SKIP IF S MANDRAKE EQ 0 ADD V VAR0 I 5 SKIP UNLESS P VISITED INCITY ADD V VAR0 I 15 SKIP UNLESS S IDOL EQ 1 ADD V VAR0 I 10 SKIP IF R (SKELETON)R EQ CHURCH6 ADD V VAR0 I 10 SKIP UNLESS S CORPSE EQ 1 ADD V VAR0 I 5 SKIP UNLESS P VISITED CHURCH5 ADD V VAR0 I 5 SKIP IF R (TAPESTRY)R EQ CTOWER ADD V VAR0 I 10 SKIP UNLESS S AVRM1 EQ 3 ADD V VAR0 I 10 SKIP UNLESS S BOARD EQ 1 ADD V VAR0 I 10 SKIP2 UNLESS R (CHEESE)R EQ STOMACH SKIP UNLESS R (BONE)R EQ STOMACH ADD V VAR0 I 10 SKIP UNLESS S LURM2 EQ 1 ADD V VAR0 I 10 SKIP UNLESS S CHOIR EQ 1 ADD V VAR0 I 10 SKIP UNLESS S BED EQ 2 ADD V VAR0 I 10 SKIP UNLESS S WRATRM EQ 1 ADD V VAR0 I 10 SKIP IF R (DEMON)R EQ DEND1 ADD V VAR0 I 10 SKIP IF R (HAG)R EQ DEND2 ADD V VAR0 I 10 SKIP IF R (DAME)R EQ GROTTO ADD V VAR0 I 10 SKIP IF R (PILLAR)R EQ SALT1 ADD V VAR0 I 10 SKIP IF S PAPER EQ 0 ADD V VAR0 I 5 SKIP UNLESS P VISITED DES7 ADD V VAR0 I 5 SKIP IF R (OZ)R EQ DES7 ADD V VAR0 I 10 SKIP UNLESS P VISITED DES18 ADD V VAR0 I 10 SKIP UNLESS P VISITED KROOM1 ADD V VAR0 I 10 SKIP UNLESS P VISITED KROOM2 ADD V VAR0 I 10 SKIP IF R (FOLLY)R EQ DES18 ADD V VAR0 I 13 SKIP2 UNLESS P VISITED ENDOPT SKIP IF S ENDOPT EQ 1 ADD V VAR0 I 15 SKIP UNLESS P VISITED F11 ADD V VAR0 I 5 SKIP UNLESS P VISITED F13 ADD V VAR0 I 5 SKIP UNLESS P VISITED F14 ADD V VAR0 I 10 SKIP UNLESS R (PLAYER)R EQ CASTLE ADD V VAR0 I 10 / add new points here SKIP IF S WWALL EQ 0 ADD V VAR0 I 10 SKIP UNLESS P VISITED JHCEND ADD V VAR0 I 6 SKIP UNLESS S SCROLL EQ 1 ADD V VAR0 I 10 SKIP IF E (ERLKING)R ADD V VAR0 I 10 SKIP UNLESS R (CHILD)R EQ ORPHANS ADD V VAR0 I 10 SKIP UNLESS P VISITED DON1 ADD V VAR0 I 10 SKIP UNLESS P VISITED DON2 ADD V VAR0 I 10 SKIP UNLESS S HELL6 EQ 1 ADD V VAR0 I 10 SKIP UNLESS S DON3 EQ 1 ADD V VAR0 I 10 SKIP UNLESS V BOOKVAR EQ 0 ADD V VAR0 I 18 SKIP IF E (VINE)R ADD V VAR0 I 7 SKIP UNLESS P VISITED KROOM3 ADD V VAR0 I 10 SKIP UNLESS P VISITED KROOM4 ADD V VAR0 I 10 SKIP UNLESS P VISITED KROOM5 ADD V VAR0 I 10 ADD V VAR0 V LOGIVAR / 0, 10 or 20 SKIP UNLESS S UAREA EQ 1 ADD V VAR0 I 10 SKIP UNLESS E (CALF)R ADD V VAR0 I 3 SKIP2 IF R (PEARL)R EQ WISTEM SKIP IF S PEARL EQ 1 ADD V VAR0 I 10 SKIP UNLESS P VISITED FOGEND ADD V VAR0 I 10 SKIP IF R (GURU)R EQ FOGEND ADD V VAR0 I 10 SKIP UNLESS S NOAH EQ 0 ADD V VAR0 I 35 / maximum SKIP UNLESS S NOAH EQ 1 ADD V VAR0 I 30 SKIP UNLESS S NOAH EQ 2 ADD V VAR0 I 25 SKIP UNLESS S NOAH EQ 3 ADD V VAR0 I 20 SKIP UNLESS S NOAH EQ 4 ADD V VAR0 I 15 SKIP UNLESS S NOAH EQ 5 ADD V VAR0 I 10 SKIP UNLESS S NOAH EQ 6 ADD V VAR0 I 5 SKIP UNLESS S RAVEN EQ 1 ADD V VAR0 I 5 SKIP UNLESS S EMU EQ 1 ADD V VAR0 I 5 SKIP UNLESS S SLOTH EQ 1 ADD V VAR0 I 5 SKIP UNLESS S WOLF EQ 1 ADD V VAR0 I 5 SKIP UNLESS S FARM5 EQ 1 ADD V VAR0 I 5 SKIP IF P NOTAKE LAMB / easiest test ADD V VAR0 I 5 SKIP UNLESS R (RUBY)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (SAPPH)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS R (CALF)R EQ ORPHANS ADD V VAR0 I 3 SKIP UNLESS S MONK EQ 1 ADD V VAR0 I 22 RETURN SETANAG: SKIP IF S ANAGHS EQ 0 RETURN LOAD S ANAGHS R 5 ADD S ANAGHS I 1 RETURN SHAKEPROG: SKIP IF R ()O EQ TREE RETURN RETRY NONE CANT SKIP2 IF R (PLAYER)R EQ PATH1 SKIP IF R (PLAYER)R EQ FARM3 PRINTRET UNPROMISING PRINTRET SHAKEMESS SHARPPROG: SKIP IF R (PLAYER)R EQ ()R PRINTRET DONTSEE SKIP2 UNLESS R ()O EQ SWORD SKIP IF S SWORD EQ 1 PRINTRET ALRSHARP PRINTRET HOWDOTHAT SHOUTPROG: PRINT SAYMESS SKIP2 UNLESS R (PLAYER)R EQ FOGEND RESOLVE VAR0 (FOGDUM5)O GO SHOUTS3 SKIP2 IF R (PLAYER)R LT FOGMAZE1 SKIP IF R (PLAYER)R GT FOGMAZE4 GO SHOUTSUB SHOUT2: SKIP IF M W2SP MAGICSPEC RETURN RETURN RETRY IGNORE MAY REC SHOUTSUB: RESOLVE VAR0 (PLAYER)R RESOLVE VAR1 (FOGMAZE1)R SUB V VAR0 V VAR1 RESOLVE VAR1 (FOGDUM1)O ADD V VAR0 V VAR1 RESOLVE VAR0 (VAR0)O / dummy object SKIP IF S (VAR0)O EQ 0 GO SHOUTS3 SHOUTS2: LOAD S (VAR0)O R 3 ADD S (VAR0)O I 1 LOAD V VAR1 S (VAR0)O SUB V VAR1 S (PLAYER)R SKIP UNLESS V VAR1 EQ 0 GO SHOUTS2 SHOUTS3: SKIP2 IF S (PLAYER)R EQ 1 SKIP IF S (VAR0)O EQ 1 PRINT ECHON SKIP2 IF S (PLAYER)R EQ 2 SKIP IF S (VAR0)O EQ 2 PRINT ECHOE SKIP2 IF S (PLAYER)R EQ 3 SKIP IF S (VAR0)O EQ 3 PRINT ECHOS SKIP2 IF S (PLAYER)R EQ 4 SKIP IF S (VAR0)O EQ 4 PRINT ECHOW GO SHOUT2 SHUTPROG: SKIP IF M W2SP DOORSPEC RETURN RETRY NONE CANT SKIP2 IF R (PLAYER)R EQ DON1 SKIP3 UNLESS R (PLAYER)R EQ TRK1 SKIP IF S TRK1 EQ 0 PRINTRET CANTSHUT PRINTRET ALRSHUT PRINTRET NOTPOSSHERE SITPROG: SKIP2 UNLESS M W2EX SKIP IF M W2SP DOWNSPEC RETURN RETRY NONE CANT PRINTRET SITOK SLEEPPROG: SKIP IF R (PLAYER)R EQ (BED)R PRINTRET NOTGOOD ADD S BED I 1 SKIP IF S BED GT 1 PRINTRET SLEEPABIT MOVE PLAYER WITH TO NXHALL PRINTRET USHEROUT SLPROG: RESOLVE VAR0 (SLROOM)R SL2: SKIP2 UNLESS P VISITED (VAR0)R SL3: PRINT INVISBARR RETURN ABORT SKIP UNLESS R (VAR0)R EQ WRATRM PRINT BALLSTRIKE RETURN SWANPROG: PRINTRET SWANMESS / Subroutine to try to take the object referred to by the / reference in VAR0. OBJHELD is updated if it is taken, and / VAR1 is set to: / 1 if the object was taken. / 2 if it was untakeable. / 3 if it wasn't taken because the player couldn't carry it. TAKESUB: SKIP IF R (VAR0)O EQ PLAYER / Can't take himself! SKIP2 UNLESS P NOTAKE (VAR0)O / Is it untakeable? LOAD V VAR1 I 2 RETURN LOAD V VAR1 V STRENGTH / Check STRENGTH SUB V VAR1 V OBJHELD / against OBJHELD. SKIP2 IF V VAR1 GT 0 LOAD V VAR1 I 3 RETURN SKIP3 UNLESS R (VAR0)O EQ EYE SKIP2 UNLESS H EYE HAG LOAD S HAG I 0 PRINT GRABEYE SKIP3 UNLESS R (VAR0)O EQ GEM SKIP2 UNLESS H GEM HAG LOAD S HAG I 0 PRINT GRABEYE / same message SKIP2 UNLESS R (VAR0)O EQ SWORD SKIP UNLESS H SWORD TREE PRINT FROMTREE SKIP3 UNLESS R (VAR0)O EQ BONE SKIP2 UNLESS H BONE DOG MOVE DOG WITH DESTROY PRINT GRABBONE SKIP UNLESS R (VAR0)O EQ PEARL SKIP IF H PEARL ALTAR GO TAKESUB2 SUB V PRVAR1 V PRVAR2 SKIP2 UNLESS V PRVAR1 EQ 0 PRINT TAKEPRL0 GO TAKESUB2 PRINT TAKEPEARL LOAD S PEARL I 1 / dud TAKESUB2: MOVE (VAR0)O WITH TO PLAYER / Move the object. ADD V OBJHELD I 1 / Update OBJHELD. LOAD V VAR1 I 1 RETURN / Main TAKE program. TAKEPROG: / Command decoding section. SKIP IF M W2EX / Is it "TAKE"? GO TAKEFIRST SKIP UNLESS M W2SP ALLSPEC / Is it "TAKE ALL"? GO TAKEALL SKIP UNLESS M W2SP INVSPEC / Is it "TAKE INVENTORY"? GO INVPROG SKIP IF M W2OB / Must be "TAKE object". RETURN RETRY NONE CANT / Induce "I don't understand / that!" if not. / Now check it's OK to take the given object. SKIP IF R (PLAYER)R EQ ()R / In the same room? PRINTRET DONTSEE / Entry point for Magic Take command. MTPROG: SKIP UNLESS R PLAYER EQ ()U / Already holding it? PRINTRET ALRHELD SKIP UNLESS R ()O EQ MANDRAKE GO TAKEMAND TAKEM1: RESOLVE VAR0 ()O / Now use TAKESUB to take it. GOSUB TAKESUB SKIP UNLESS V VAR1 EQ 2 / Untakeable? PRINTRET CANTTAKE SKIP UNLESS V VAR1 EQ 3 / Hands full? PRINTRET HANDSFULL PRINTRET OKMESS / Command was "TAKE". Try to take the first object in the room. TAKEFIRST: RESOLVE VAR0 (PLAYER)R / Find first object in room. RESOLVE VAR0 (VAR0)O TAKEF1: SKIP UNLESS V VAR0 EQ 0 / Does object exist? PRINTRET NOTHNGHERE GOSUB TAKESUB / Try taking it. SKIP UNLESS V VAR1 EQ 1 / Successful? PRINTRET OKMESS SKIP UNLESS V VAR1 EQ 3 / Hands full? PRINTRET HANDSFULL / This object wasn't takeable. Try the next object in the room. ADD V VAR0 I 1536 / Modify reference to point to / next object in room. RESOLVE VAR0 (VAR0)O / Then resolve it. GO TAKEF1 / And try to take the object. / Command was "TAKE ALL". Try taking each object in the room. VAR3 / keeps track of the number of objects taken. TAKEALL: LOAD V VAR3 I 0 / Now we have a loop to try each object in turn. VAR2 always contains / a reference to the next object to be tried. RESOLVE VAR0 (PLAYER)R / Find first object in room. RESOLVE VAR0 (VAR0)O / N.B. This object always exists, as the player is an object in the room. TAKEA1: LOAD V VAR2 V VAR0 / Find next object from this one. ADD V VAR2 I 1536 RESOLVE VAR2 (VAR2)O GOSUB TAKESUB / Try taking this object. SKIP2 UNLESS V VAR1 EQ 3 / Hands full? PRINT HANDSF2 PRINTRET TOOKOBJ2 VAR3 SKIP UNLESS V VAR1 EQ 1 / Was object taken? ADD V VAR3 I 1 LOAD V VAR0 V VAR2 / Loop back for next object, SKIP IF V VAR0 EQ 0 / if it exists. GO TAKEA1 PRINTRET TOOKOBJ1 VAR3 TAKEMAND: SKIP IF P NOTAKE MANDRAKE GO TAKEM1 UNSET NOTAKE MANDRAKE LOAD S MANDRAKE I 1 LOAD V VAR0 R 3 LOAD V MANDVAR V VAR0 ADD V MANDVAR I 1 PRINT MANDSCREAM VAR0 MOVE PLAYER WITH TO ROUND MOVE PLAYER WITHOUT TO LOON1 LOAD V OBJHELD I 0 RETURN THROWPROG: SKIP IF H ()O PLAYER PRINTRET NOTHELD SKIP UNLESS R ()O EQ CHILD PRINTRET VIOLENCE SKIP2 UNLESS R ()O EQ PIE / givepie will already sub objheld SKIP UNLESS R (PLAYER)R EQ (WOLF)R GO GIVEPIE SUB V OBJHELD I 1 SKIP2 UNLESS R ()O EQ ROCK SKIP UNLESS R (PLAYER)R EQ (DEMON)R GO THROWDEMON SKIP UNLESS R (PLAYER)R EQ JUNC1 GO THROWFIRE MOVE ()O WITH TO (PLAYER)R SKIP UNLESS R ()O EQ COCK GO CCROW PRINT OKMESS SKIP UNLESS R ()O EQ BALL GO DROPBALL RETURN THROWDEMON: MOVE ROCK WITH DESTROY MOVE DEMON WITH DESTROY PRINTRET DEMONGO THROWFIRE: MOVE ()O WITH DESTROY PRINT INTOFIRE SKIP2 UNLESS R ()O EQ IDOL LOAD S IDOL I 1 PRINTRET GASPING SKIP IF R ()O EQ SWORD RETURN MOVE SWORD WITH TO JUNC1 LOAD S SWORD I 0 PRINT FIRESWORD RETURN LOOK VOIPROG: SKIP UNLESS S CORPSE EQ 1 RETURN PRINT VOIMESS RETURN ABORT VSD1PROG: PRINTRET HEHHEH VSD2PROG: LOAD V VAR0 I 0 GOSUB SCORESUB SKIP IF V VAR0 LT 610 LOAD S VSD I 1 SKIP2 IF S VSD EQ 1 PRINT FEETREFUSE RETURN ABORT PRINT GRAALVIS / temporary RETURN WAILPROG: SKIP IF R (PLAYER)R EQ WWALL PRINTRET OHHH SKIP IF H WIG PLAYER PRINTRET NOWAIL SKIP3 IF S WWALL EQ 0 LOAD V VAR0 S WWALL SUB V VAR0 I 1 PRINTRET WAILSEE VAR0 LOAD S WWALL R 14 LOAD V VAR0 S WWALL ADD S WWALL I 1 PRINTRET WAILSEE VAR0 WAKEPROG: SKIP IF R ()R EQ (PLAYER)R PRINTRET DONTSEE SKIP2 UNLESS R ()O EQ WOLF SKIP UNLESS S WOLF EQ 1 PRINTRET NOWAKEWOLF SKIP IF R ()O EQ SLOTH PRINTRET NOTASLEEP SKIP UNLESS P NOTAKE SLOTH PRINTRET HOWDOTHAT PRINTRET LETITSLEEP WAVEPROG: SKIP IF H ()O PLAYER PRINTRET NOTHELD SKIP UNLESS R ()O EQ BATON SKIP IF R (PLAYER)R EQ (CHOIR)R PRINTRET NHAPPENS GO COND2 WELCPROG: SKIP UNLESS P VISITED START1 PRINTRET HELLO RESOLVE THISLOC (PLAYER)R LOAD V LASTLOC V THISLOC PRINT HELLO SKIP IF Q INSTRQ RETURN PRINTRET INSTRMESS WISEXIT: SKIP UNLESS H PEARL PLAYER SKIP IF S PEARL EQ 1 RETURN MOVE PEARL WITH DESTROY SUB V OBJHELD I 1 PRINTRET PEARLGO WRPROG: RESOLVE VAR0 (WRATRM)R GO SL2 ZEMPROG: PRINTRET INTRUDERS / / WORDS SECTION / ------------- / !WORDS A NONE CANT ASPEC ACHILLES OBJECT CANT WIZDUM AGRAVAIN OBJECT CANT KTA ALEXANDER OBJECT CANT WIZDUM 4 ALL NONE CANT ALLSPEC ALTAR OBJECT CANT ALTAR ANDRODRAGMA OBJECT CANT CRYSTAL APOLLYON OBJECT CANT WIZDUM ARK OBJECT CANT ARK ATTACK OBEY HITPROG REQUEST OBJ B RETURN CANT B BSPEC BAAA PRINT NHAPPENS CANT MAGICSPEC BAAAA OBEY BAA4PROG CANT MAGICSPEC BAAHH OBEY BAA2PROG CANT MAGICSPEC BACK RETURN CANT B BAHHH OBEY BAA3PROG CANT MAGICSPEC BALL OBJECT CANT BALL BANKER OBJECT CANT WIZDUM 4 BATON OBJECT CANT BATON BEAT OBEY HITPROG REQUEST OBJ BED OBJECT CANT BED BEGGAR OBJECT CANT WIZDUM BEHHH OBEY BAA1PROG CANT MAGICSPEC BEHRH OBEY BAA5PROG CANT MAGICSPEC BELLE OBJECT CANT DAME BELLOW OBEY SHOUTPROG REQUEST ANY BELLS OBJECT CANT WIZDUM 4 BENAMMI OBEY B1P CANT MAGICSPEC BLACKBOARD OBJECT CANT BOARD BLUE NONE CANT BLUESPEC BOARD OBJECT CANT BOARD BOAT OBJECT CANT BOAT BONE OBJECT CANT BONE BOOKS OBJECT CANT BOOK 4 BORS OBJECT CANT KTB BOY OBJECT CANT PAGE BREAK OBEY BREAKPROG REQUEST OBJ BRIEF OBEY TERSEPROG CANT BRIGAND OBJECT CANT WIZDUM BUILDING NONE CANT BLDGSPEC BURY OBEY BURYPROG REQUEST OBJ C NONE CANT CSPEC CALF OBJECT CANT CALF CALL OBEY SHOUTPROG REQUEST ANY CARADOC OBJECT CANT KTC CARDS OBJECT CANT WIZDUM 4 CHEESE OBJECT CANT CHEESE CHILD OBJECT CANT CHILD CHOIR OBJECT CANT CHOIR CLEAN OBEY CLEANPROG REQUEST OBJ CLIMB OBEY CLIMBPROG REQUEST REC CLOSE OBEY SHUTPROG MUST REC CLOTH OBJECT CANT CLOTH COCKEREL OBJECT CANT COCK 4 COFFIN OBJECT CANT COFFIN COINS OBJECT CANT COINS CONDUCT OBEY CONDPROG MAY OBJ CORPSE OBJECT CANT CORPSE COURT NONE CANT COURTSPEC CRY OBEY SHOUTPROG REQUEST ANY CRYSTAL OBJECT CANT CRYSTAL CURTAIN OBJECT CANT CURTAIN CUT OBEY CUTPROG MUST SPECIAL DAGONET OBJECT CANT KTD DAME OBJECT CANT DAME DEMON OBJECT CANT DEMON DIG OBEY DIGPROG CANT DOG OBJECT CANT DOG DONATE OBEY GIVEPROG REQUEST OBJ DOOR NONE CANT DOORSPEC DOWN MOVE CANT D DOWNSPEC 1 DRINK OBEY DRINKPROG MAY REC DROP OBEY DROPPROG MAY REC DWARF OBJECT CANT WIZDUM E MOVE CANT E ESPEC EAST MOVE CANT E EAT OBEY EATPROG REQUEST OBJ ECTOR OBJECT CANT KTE EMU OBJECT CANT EMU ENTER OBEY ENTERPROG MUST OBJ ERLKING OBJECT CANT ERLKING 3 EURYDICE OBJECT CANT WIZDUM EXAMINE OBEY EXAMPROG REQUEST OBJ EYE OBJECT CANT EYE F NONE CANT FSPEC FACED NONE CANT FACEDSPEC FARTHING OBJECT CANT FARTH FEED OBEY FEEDPROG REQUEST OBJ FEIREFIZ OBJECT CANT KTF FIEND OBJECT CANT WIZDUM FIGURINE OBJECT CANT FIGURINE FIRE OBJECT CANT FIRE FISH NONE CANT FISHSPEC FOLIO OBJECT CANT BOOK FOLLY OBJECT CANT FOLLY FORESIGHT NONE CANT FROGSPEC FORWARD PRINT COMPASS CANT FREE OBEY FREEPROG MUST OBJ FRIAR OBJECT CANT FRIAR FROG NONE CANT FROGSPEC G NONE CANT GSPEC GALLOWS OBJECT CANT GALLOWS GARETH OBJECT CANT KTG GATE NONE CANT GATESPEC GEM OBJECT CANT GEM GET OBEY TAKEPROG MAY REC GIANT OBJECT CANT WIZDUM GIVE OBEY GIVEPROG REQUEST OBJ GO IGNORE REQUEST DIR GRAAL OBJECT CANT GRAIL GRAB OBEY TAKEPROG REQUEST OBJ GRAIL OBJECT CANT GRAIL GREASE OBJECT CANT GREASE GREEN NONE CANT GREENSPEC GRIMOIRE OBJECT CANT BOOK GURU OBJECT CANT GURU H NONE CANT HSPEC HAGS OBJECT CANT HAG 3 HARRY OBJECT CANT KTH HELP PRINT HELPMESS CANT HIT OBEY HITPROG REQUEST OBJ HOLLER OBEY SHOUTPROG REQUEST ANY HORSE OBJECT CANT HORSE HUNCHBACK OBJECT CANT WIZDUM I NONE CANT ISPEC IDOL OBJECT CANT IDOL IN MOVE CANT IN INSCRIPTION NONE CANT INSCRSPEC INVENTORY OBEY INVPROG CANT INVSPEC 3 J NONE CANT JSPEC JUMP OBEY JUMPPROG CANT K NONE CANT KSPEC KELVAR OBEY K1PROG CANT MAGICSPEC KILL OBEY KILLPROG REQUEST OBJ KISS OBEY KISSPROG REQUEST OBJ KLINGSOR OBJECT CANT WIZDUM KNOCK OBEY KNOCKPROG MAY SPECIAL KNOT OBJECT CANT ROPESPEC KUNDRIE OBJECT CANT WIZDUM L NONE CANT LSPEC LADY OBJECT CANT WITCH LAKE OBJECT CANT FIRE LAMB OBJECT CANT LAMB LEFT PRINT COMPASS CANT LEVER OBJECT CANT LEVER LIE OBEY LIEPROG MUST REC LOITER PRINT LOITERMESS CANT LOOK OBEY LOOKPROG CANT M NONE CANT MSPEC MAAA PRINT NHAPPENS CANT MAGICSPEC MAAAA PRINT NHAPPENS CANT MAGICSPEC MAAHH PRINT NHAPPENS CANT MAGICSPEC MAHHH PRINT NHAPPENS CANT MAGICSPEC MAIDEN OBJECT CANT WIZDUM / kundrie MALU OBEY PAL1PROG CANT MAGICSPEC MANDRAKE OBJECT CANT MANDRAKE ME NONE CANT MESPEC MEHHH PRINT NHAPPENS CANT MAGICSPEC MEHRH PRINT NHAPPENS CANT MAGICSPEC MINK OBJECT CANT STOLE MINSTREL OBJECT CANT WIZDUM MIST OBJECT CANT CURTAIN MMQQ OBEY MMPROG REQUEST OBJ MOAB OBEY B2P CANT MAGICSPEC MOAN NONE CANT MOANSPEC MONK OBJECT CANT MONK MORE NONE CANT MORESPEC MOSES OBJECT CANT MOSES MOVE IGNORE REQUEST DIR MTQQ OBEY MTPROG REQUEST OBJ MUMMY OBJECT CANT CORPSE / MV OBEY FUDGEPROG CANT / !! temporary MYSELF NONE CANT MESPEC N MOVE CANT N NSPEC NASTIL OBEY NASPROG MAY REC NE MOVE CANT NE NECROMANCER OBJECT CANT WIZDUM NEVERMORE OBEY NEVPROG MAY SPECIAL MAGICSPEC NOAH OBJECT CANT NOAH NOBLEMAN OBJECT CANT NOBLE 4 NORMAL OBEY STANDARDPROG CANT NORTH MOVE CANT N NW MOVE CANT NW O NONE CANT OSPEC OMEGA OBEY OMEGAPROG CANT MAGICSPEC ONE PRINT NHAPPENS CANT ONESPEC 1 OPEN OBEY OPENPROG MUST REC ORB OBJECT CANT ORB ORBOST OBEY K2PROG CANT MAGICSPEC OTBA NONE CANT OTBASPEC OUT MOVE CANT OUT OZ OBJECT CANT OZ OZONE OBEY OZPROG CANT MAGICSPEC OZYMANDIAS OBJECT CANT WIZDUM PAGE OBJECT CANT PAGE PAPER OBJECT CANT PAPER PASPEC PATEN OBJECT CANT PATEN PEACE NONE CANT PEACESPEC PEARL OBJECT CANT PEARL PEDESTAL NONE CANT PEDSPEC PICTURE OBJECT CANT PORTRAIT PIE OBJECT CANT PIE PILLAR OBJECT CANT PILLAR PLANT OBJECT CANT MANDRAKE PLATINUM OBJECT CANT COINS PLAY OBEY PLAYPROG REQUEST OBJ PLONK NONE CANT PLONKSPEC PORTRAIT OBJECT CANT PORTRAIT PRESENT OBEY GIVEPROG REQUEST OBJ PRINCE OBJECT CANT WIZDUM PULL OBEY PULLPROG REQUEST REC PUNCH OBEY HITPROG REQUEST OBJ PUSH OBEY PUSHPROG MUST OBJ QUIT OBEY QUITPROG CANT 1 RAG OBJECT CANT CLOTH RAVEN OBJECT CANT RAVEN READ OBEY READPROG REQUEST REC RED NONE CANT REDSPEC RELEASE OBEY FREEPROG MUST OBJ RESCUE OBEY FREEPROG MUST OBJ REST OBEY SLEEPPROG CANT RESTART RESTART CANT RETURN RETURN CANT RIGHT PRINT COMPASS CANT ROAR OBEY SHOUTPROG REQUEST ANY ROCK OBJECT CANT ROCK ROPE OBJECT CANT ROPESPEC RUBY OBJECT CANT RUBY RUZAM OBEY PAL2PROG CANT MAGICSPEC SALT OBJECT CANT ROCK SANGRAAL OBJECT CANT GRAIL SANGSPEC SAPPHIRE OBJECT CANT SAPPH SAVE SAVE CANT SAVEND SAVEND CANT SAY OBEY SAYPROG REQUEST ANY SCEPTRE OBJECT CANT SCEPTRE SCISSORS NONE CANT SCSPEC SCORE OBEY SCOREPROG CANT SCREAM OBEY SHOUTPROG REQUEST ANY SCROLL OBJECT CANT SCROLL SE MOVE CANT SE SHAKE OBEY SHAKEPROG MUST OBJ SHARPEN OBEY SHARPPROG REQUEST OBJ SHEEP OBJECT CANT SHEEP SHIP NONE CANT SHIPSPEC SHOUT OBEY SHOUTPROG REQUEST ANY SHUT OBEY SHUTPROG MUST REC SIGN NONE CANT SIGNSPEC SILVER OBJECT CANT PATEN SING OBEY SAYPROG REQUEST ANY SIT OBEY SITPROG MAY SPECIAL SKARZ OBEY K3PROG CANT MAGICSPEC SKELETON OBJECT CANT SKELETON SLAP OBEY HITPROG REQUEST OBJ SLEEP OBEY SLEEPPROG CANT SLOTH OBJECT CANT SLOTH SMACK OBEY HITPROG REQUEST OBJ SODRE OBEY PAL3PROG CANT MAGICSPEC SOUTH MOVE CANT S 1 SPIRIT OBJECT CANT WIZDUM SPURT NONE CANT SPURTSPEC STAFF OBJECT CANT NOBLE STANDARD OBEY STANDARDPROG CANT STATUE OBJECT CANT OZ STOLE OBJECT CANT STOLE STONE OBJECT CANT STONE STSPEC STRIKE OBEY HITPROG REQUEST OBJ SW MOVE CANT SW SWAN OBJECT CANT WIZDUM SWAY NONE CANT SWAYSPEC SWORD OBJECT CANT SWORD TABLET OBJECT CANT TABLET TAKE OBEY TAKEPROG MAY REC TAPESTRY OBJECT CANT TAPESTRY TERSE OBEY TERSEPROG CANT THREE NONE CANT THREESPEC THROW OBEY THROWPROG REQUEST OBJ TIMBER OBJECT CANT TIMBER TOAB NONE CANT TOABSPEC TOAD NONE CANT TOADSPEC TOMES OBJECT CANT BOOK 4 TORTOISE OBJECT CANT TORTOISE TREE OBJECT CANT TREE TREESPEC TURN NONE CANT TURNSPEC TWO NONE CANT TWOSPEC 1 TYBAT OBEY K4PROG CANT MAGICSPEC UNTIE OBEY FREEPROG MUST REC UP MOVE CANT U 1 VERBOSE OBEY VERBOSEPROG CANT VINE OBJECT CANT VINE VIOLIN OBJECT CANT VIOLIN 4 VOLUME OBJECT CANT BOOK WAIL OBEY WAILPROG CANT WAIT PRINT OKMESS CANT WAKE OBEY WAKEPROG REQUEST OBJ WALLS NONE CANT WALLSPEC 4 WATER OBJECT CANT WATERSPEC WAVE OBEY WAVEPROG MUST OBJ WEST MOVE CANT W 1 WIG OBJECT CANT WIG WIPE OBEY CLEANPROG REQUEST OBJ WITCH OBJECT CANT WITCH WIZARD OBJECT CANT WIZDUM / not there WOLF OBJECT CANT WOLF WOMBAT OBJECT CANT WOMBAT WREN OBJECT CANT SWORD WRITE PRINT NOWRITE MAY ANY XARN NONE CANT XARNSPEC YELL OBEY SHOUTPROG REQUEST ANY YELLOW NONE CANT YELLOWSPEC YOUTH OBJECT CANT JUAN ZEMPOALLA OBJECT CANT IDOL ZOAR OBEY B3P CANT MAGICSPEC / / MESSAGES SECTION / ---------------- / / Descriptions of rooms & objects and other messages. Note that one / cannot easily comment this section. !MESSAGE ANAGHS1 You are standing in a forest clearing by a small stone building (to your north). There are paths to the southeast and west. The cottage bears a sign, saying: !SWITCH MNULL ANAGM1 ANAGM2 ANAGM3 ANAGM4 ANAGM5 ANAGM6 !MESSAGE ANAGHS2 You are by the small stone cottage with the sign saying: !SWITCH MNULL ANAGM1 ANAGM2 ANAGM3 ANAGM4 ANAGM5 ANAGM6 !MESSAGE ANAGM1 "His steps go forward." !MESSAGE ANAGM2 "Forgets sad worship!" !MESSAGE ANAGM3 "Deposit sword at Ash." !MESSAGE ANAGM4 "Eastward stood ship..." !MESSAGE ANAGM5 "His fist had prowess!" !MESSAGE ANAGM6 "Show his fat spiders..." !MESSAGE ANAGRM1 You are in a small room with a corridor leading out to the south. There are no other exits. !MESSAGE ANAGRM2 You are in the small room with the corridor south. !MESSAGE ANTERMM1 You are in a small anteroom to the folly, which is decorated with strange cabalistic symbols. There is a door leading further east, and an exit to the west. Stone steps lead down into the ground here. !MESSAGE ANTERMM2 You are in the anteroom. !MESSAGE ARKM1 There is a huge ark here, from the windows of which various animals are peering at you with curiosity. !MESSAGE AVRM1M1 You are in a small chamber with exits to the east and northwest. The room is dimly lit, and the walls are painted black, to make things even more dull. !MESSAGE AVRM1M2 You are in the black-walled chamber. !MESSAGE AVRM2M1 You are in a well-swept chamber with exits to the southeast and southwest. The walls are decorated with patterns of musical notation. !MESSAGE AVRM2M2 You are in the music room. !MESSAGE AVRM3M1 You are in a plain efficient-looking room, with exits to the northeast and southeast. The walls are decorated with patterns of pound signs, dollar signs, and other symbols of finance. !MESSAGE AVRM3M2 You are in the money room. !MESSAGE AVRM4M1 You are at a dead end, a small room with a single exit, to the northwest. The room is decorated with pictures of highwaymen. !MESSAGE AVRM4M2 You are in the brigand's room. !MESSAGE BALLM1 There is a small rubber ball lying here. !MESSAGE BALLM2 A rubber ball. !MESSAGE BATONM1 There is a wooden baton here. !MESSAGE BATONM2 A wooden baton. !MESSAGE BEDM1 There is a very comfortable looking bed here. !MESSAGE BOARDM1 !SWITCH BOARD10 BOARD11 !MESSAGE BOARD10 There is a blackboard attached to the wall here. On it is written the names of previous Adventurers of note. !SWITCH BOARD99 !MESSAGE BOARD99 A. J. F. Atkinson I. P. Stott R. Eckman M. T. Barlow P. Barden A. J. Mestel P. D. Killworth T. Ng I. Farquharson A. T. Cates Any hero would be proud to see his or her own name inscribed here. !MESSAGE BOARD11 There is a clean blackboard attached to the wall here. !MESSAGE BOATM1 There is a small flat boat in the water here. !MESSAGE BONEM1 There is a juicy bone here. !MESSAGE BONEM2 A juicy bone. !MESSAGE BOOL11 You are in a small round room, with exits to the south, northeast, and northwest. Above the NE exit are the words "GATE OF FAND", and above the NW exit the words "GATE OF ORT". !MESSAGE BOOL21 You are in a small round room, with exits to the south, northeast, and northwest. Above the NE exit are the words "GATE OF OREQ", and above the NW exit the words "GATE OF TEQ". !MESSAGE BOOL31 You are in a small round room, with exits to the south, northeast, and northwest. Above the NE exit are the words "GATE OF XORAND", and above the NW exit the words "GATE OF XORT". !MESSAGE BOOL41 You are in a small round room, with exits to the south, northeast, and northwest. Above the NE exit are the words "GATE OF NORT", and above the NW exit the words "GATE OF TAND". !MESSAGE CALFM1 There is a small golden calf here! !MESSAGE CALFM2 A golden calf. !MESSAGE CASTLEM1 You are in the castle of the Sangraal, in a large chamber with exits to the north and south. The room you are in has been used by the Foul Fiend as a dungeon for previous unsuccessful seekers of the Sangraal. As such it is complete with cobwebs, rats rising damp, dripping water, and other unexplained noises. !MESSAGE CASTLEM2 You are in the castle of the Sangraal. !MESSAGE CHEESEM1 There is an enormous Dutch cheese here. !MESSAGE CHEESEM2 A large cheese. !MESSAGE CHILDM1 There is a child here, abducted once by the Erl-King. She is chuckling happily to herself. !MESSAGE CHILDM2 A lost child. !MESSAGE CHOIRM1 A large mixed choir is standing here, dressed in scarlet robes. They are all regarding you expectantly, though too polite to say anything. !MESSAGE CHURCH11 You are at the entrance to a dark country churchyard, in which paths extend east and south from here. The road also leads back to the northwest. !MESSAGE CHURCH12 You are at the entrance to the churchyard. !MESSAGE CHURCH21 You are in the dark churchyard, on a north-south path between faded tombstones. The entrance to the church lies to your east. !MESSAGE CHURCH22 You are in the dark churchyard, outside the church entrance. !MESSAGE CHURCH31 You are inside the church, which seems to be dedicated to some pagan deity (or possibly demon prince). It really doesn't look like a nice place for a knight such as yourself. There are steps here, one set leading up, another leading down, the exit is to the west, and the (un)Holy of (un)Holies is further east. !MESSAGE CHURCH32 You are at the west end of the church. !MESSAGE CHURCH41 You are at the east end of the church, which looks more evil the more you see of it. Various nasty pictures adorn the walls, and the way back to the west looks all the more inviting. !MESSAGE CHURCH42 You are at the east end of the church. !MESSAGE CHURCH51 You are in the gloomy churchyard, which comes to a Dead End here. But then don't we all eventually? The way back is to the west. !MESSAGE CHURCH52 You are at the Dead End. !MESSAGE CHURCH61 You are in a more fashionable quarter of the churchyard. Although some people wouldn't be seen dead here, others feel it in their bones that this is THE place to reside. A path leads back to the north. !MESSAGE CHURCH62 You are at the fashionable end of the churchyard. !MESSAGE CITYM1 You are standing outside the high walls of some mighty city. The road leads back north here, but there is no hint of any entrance into the city. !MESSAGE CITYM2 You are outside the city walls. !MESSAGE CLOTHM1 There is a small cloth here. !MESSAGE CLOTHM2 A small cloth. !MESSAGE COCKM1 A large well-fed cockerel is strutting nearby. !MESSAGE COCKM2 A cockerel. !MESSAGE COFFIN1 There is a heavy stone coffin here (no lid). !MESSAGE COINSM1 There are some platinum coins here! !MESSAGE COINSM2 Some platinum coins. !MESSAGE CORPSE1 There is a mummified corpse lying here. !MESSAGE CORPSE2 A mummified corpse. !MESSAGE CRYPTM1 You are in the crypt of the church, which is a real ossarium, full of the charnel and bones of generations of people. It has a distinctly nauseating smell. The only way out appears to be back up the stairs. !MESSAGE CRYPTM2 You are in the crypt. !MESSAGE CRYSTM1 There are some rare crystals of androdragma here! !MESSAGE CRYSTM2 Some androdragma crystals. !MESSAGE CTOWERM1 You are in the bell tower. There are no bats in the belfry, but a dozen very large and heavy bells are hanging far above you. There are some steps leading down to the main part of the church. !MESSAGE CTOWERM2 You are in the bell tower. !MESSAGE CURTM1 On the curtain you can make out the following pattern: !SWITCH LIFE0 LIFE1 LIFE2 LIFE3 LIFE4 LIFE5 LIFE6 LIFE7 LIFE8 LIFE9 LIFE10 LIFE11 LIFE12 LIFE13 LIFE14 !MESSAGE DAMEM1 La belle dame sans Merci hath thee in thrall. She stands there, a slim elfin figure, in the dim light, and refuses to let you depart. !MESSAGE DEBUGMESS VAR0 ? VAR1 ? !MESSAGE DEMONM1 A huge demon is standing here! He has four arms and the face of a vulture and reeks of evil. Your blood runs cold at the sight of him. !MESSAGE DEND1M1 The track comes to a dead end here. The only way way to go is back to the southwest. !MESSAGE DEND1M2 Dead end. !MESSAGE DEND2M1 The track comes to a dead end here. The only way to go is back to the northwest. !MESSAGE DEND2M2 Dead end. !MESSAGE DES1M1 You are at the edge of a hot desert, through which searing winds are blowing. The desert lies to the NE, E and SE, while the way back is to the southwest. !MESSAGE DES1M2 You are at the edge of the desert. !MESSAGE DESEM1 You are at the edge of a hot desert, through which searing winds are blowing. It is possible to go in many directions, but some ways are blocked by mountains. !MESSAGE DESEM2 You are in the desert near some mountains. !MESSAGE DESFM1 You are in the middle of the desert. There is sand in all directions. Searing winds blow towards you. !MESSAGE DESFM2 You are in the middle of the desert. !MESSAGE DES18M1 You are at the eastern end of the desert, in the lee of yet more rocky mountains. One may go NW, W or SW from here. !MESSAGE DES18M2 You are at the eastern end of the desert. !MESSAGE DOGM1 There is a small dog here, who is chewing a juicy bone. !MESSAGE DOGRMM1 You are in a small room which smells strongly of dogs. There is just the one exit, back to the west. !MESSAGE DOGRMM2 You are in the dog house. !MESSAGE DON1M1 You are in a large banqueting hall, which is prepared for dinner, though in fact only two places are set. !SWITCH DON10 DON11 !MESSAGE DON10 There is an exit to the south. !MESSAGE DON11 There is an exit to the south and a passageway down, from which sulphurous fumes are billowing. !MESSAGE DON1M2 You are in the banqueting hall. !MESSAGE DON2M1 You are in an ante-chamber to Hades. From here you can hear the sounds of damned souls wailing piteously - some people just won't look on the bright side! The only way to proceed is further down into the Planes of Hell. !MESSAGE DON2M2 You are in an ante-chamber to Hades. !MESSAGE DON3M1 You are in the Large Chamber of Limbo, where people go whose true spiritual destination is undefined. The room is decorated with an exciting black wallpaper with black stripes on it. There are passages off in various directions. !MESSAGE DON3M2 You are in the Large Chamber of Limbo. !MESSAGE EMUM1 !SWITCH EMU10 EMU11 !MESSAGE EMU10 An emu is tethered to a tree here. !MESSAGE EMU11 An emu is wandering round in circles here. !MESSAGE EMUM2 An emu. !MESSAGE ENDOPTM1 !SWITCH ENDO10 ENDO11 !MESSAGE ENDO10 You are in the village of Kandara, one of the remotest parts of the realm. It is a poor community, and has few tourist attractions. There is a road back to the southwest, and a strange-looking building to the north. !MESSAGE ENDO11 You are in the ruined town of Kandara, surrounded by the dead and dying. The only building that the giant has not destroyed lies to the north, and there is also a road southwest. !MESSAGE ENDOPTM2 !SWITCH ENDO20 ENDO21 !MESSAGE ENDO20 You are in the town of Kandara. !MESSAGE ENDO21 You are in the ruined town of Kandara. !MESSAGE ENVYRMM1 You are in a large room which looks as though it may be some sort of assembly hall, in which speeches, ceremonies and even worship once took place. The only exit is to the north. !MESSAGE ENVYRMM2 You are in the assembly room. !MESSAGE ERLKING1 The forest moves and murmurs in a mysterious manner. Leaves flutter in the wind, but in a way that no wind ever moved. Branches wave menacingly, and strange footsteps pass, as of enchanted and invisible creatures. !MESSAGE EYEM1 There is an eye twinkling here. !MESSAGE EYEM2 An eye. !MESSAGE FARM1M1 You are in an overgrown field, where wild plants have long since taken over. The grass is long, and, were it not raining, you might find it quite an attractive place. There is an exit to the southeast. !MESSAGE FARM1M2 You are in the overgrown field. !MESSAGE FARM2M1 You are in a small dusty square, where it is drizzling slightly, though the water soaks away quickly into the ground. The only way out is by a path southwards. !MESSAGE FARM2M2 You are in the small dusty square. !MESSAGE FARM3M1 You are in a small copse, consisting of high trees, which in places are packed quite densely. The only way out is back to the southwest. !MESSAGE FARM3M2 You are in the small copse. !MESSAGE FARM4M1 You are in small patch of forest, which becomes very dense as you proceed further, so that the only way you can go is back to the northwest. !MESSAGE FARM4M2 You are in the small patch of forest. !MESSAGE FARM5M1 You are in some sort of warren, where creatures have been ploughing up the soil quite extravagantly. There is a path back to the north. !MESSAGE FARM5M2 You are in the warren. !MESSAGE FARM6M1 A pastoral scene greets your eyes: lush meadow grass, and a flock of milky-white sheep. The sheep are wandering about in a relaxed manner, calling to one another. Cries of "Baaa!" and "Maaa!" drift towards you as the ewes call to their lambs. The only exit from the meadow is back to the northeast. !MESSAGE FARM6M2 You are in the meadow, near a flock of sheep. !MESSAGE F11M1 The maze comes to a dead end here. The only way to go is back again. !MESSAGE F11M2 You are at a dead end in the maze. !MESSAGE F14M1 You are still in the maze, but there are now just two ways to go, either back the way you entered, or down a steep hole in the ground. !MESSAGE F14M2 You are in the maze by the hole in the ground. !MESSAGE FARTHM1 Someone has dropped a farthing here. !MESSAGE FARTHM2 A farthing. !MESSAGE FIGURM1 There is a delicately-carved stone figurine here! !MESSAGE FIGURM2 A stone figurine. !MESSAGE FMAZE1 You are in the rotating maze. There are exits in various directions, but, since the island is rotating, these directions change continually. The chamber is lit by a strange beacon high above you. !MESSAGE FMAZE2 You are in the rotating maze. !MESSAGE FOGENDM1 You are at what seems like the end of the world, a region of mountains so remote that it seems unearthly. A path leads back through the fog, but there is nowhere else to go. !MESSAGE FOGENDM2 You are at the end of the world. !MESSAGE FOGMAZEM You are on a mountain path winding through dense fog. At this point there are tracks to north, south, east and west. !MESSAGE FOLLYM1 To your east there is a curiously-shaped building. A 'folly' would be the aptest word for it. Surely none but an eccentric would wish to build such a monumental piece of Gothic architecture in such an isolated spot. !MESSAGE FORK1M1 You are at a fork in the road. To the south lies Castle Moan, and paths lead off to the northeast and northwest. There is an inscription carved in a tree here, which reads: !SWITCH FORK199 !MESSAGE FORK199 Give heed, thou knight that goest about seeking adventure: behold two roads, one to thy left, the other to thy right. The left-hand road thou shalt not take, for he that enters therein must be second to none if he would follow it to the end: and if thou take the right-hand road, haply thou mayest soon perish. !MESSAGE FORK1M2 You are at the fork in the road, by the carved inscription. !MESSAGE FRIARM1 A blessed friar is standing here, ready to receive all contributions. !MESSAGE GALLOWM1 A gallows has been erected here, and it has obviously been much used, to judge by its condition. However there is nobody in residence just now. !MESSAGE GALLRM1 You are on Gallows Hill, a very desolate place, where men have hanged for their misdeeds. Weeds abound in this forsaken spot, and the only track from here leads back to the north . !MESSAGE GALLRM2 You are on Gallows Hill. !MESSAGE GEMM1 There is a strange gem here, which reflects the light in a sequence of ever-changing patterns, that quite dazzle you at times. !MESSAGE GEMM2 A strangely reflective gem. !MESSAGE GLUTRMM1 You are in a large dining hall, which is at present deserted of people. There are exits to the east and southwest. !MESSAGE GLUTRMM2 You are in the dining hall. !MESSAGE GREASEM1 There is a lump of ancient grease here. !MESSAGE GREASEM2 A lump of ancient grease. !MESSAGE GROTTOM1 You are in a small elfin grotto, whose only exit is out to the hillside to the west. For a cave it is quite luxuriously furnished and your stay here may be quite a comfortable one in some ways. !MESSAGE GROTTOM2 You are in the grotto. !MESSAGE GURUM1 An ancient guru is sitting here cross-legged. "Share your wisdom with me" he says gloomily. !MESSAGE HAGM1 !SWITCH HAG10 HAG11 HAG12 !MESSAGE HAG10 Two blind hags are groping around here, looking for their eye. !MESSAGE HAG11 There are two blind hags standing here. They are sharing an eye between them, with which they take turns in staring at you. !MESSAGE HAG12 There are two blind hags standing here. They are sharing a shining gem between them, through which they take turns in looking at you. !MESSAGE HELLM1 You are in Limbo, a sub-department of the Underworld. Passages twist away in various directions here. All is sombre and rather cold, although there is a dim light to see by. !MESSAGE HELLM2 You are in Limbo. !MESSAGE HELL5M1 You are in a large chamber in Limbo, which has been decorated for use by a Greek hero. The walls show scenes of warriors giving battle, except for one wall which is full of detailed calculations, which seem to be an attempt to prove using geometric series that humans can run faster than tortoises. The only exit is west. !MESSAGE HELL5M2 You are in Achilles' chamber. !MESSAGE HELL6M1 You are in a large chamber in Limbo. Scenes from Orpheus in the Underworld decorate the walls, and a sign says "Ye who visit here, must rescue the shade of Eurydice. Play on." The only exit is to the south. !MESSAGE HELL6M2 You are in the chamber of Orpheus. !MESSAGE HELL7M1 You are in a large chamber in Limbo, which has been decorated for use by Alexander the Great. One part of the wall portrays lots of interesting knots and how to undo them (probably an item featured in the Gordian newspaper), and another portrays great battles in Asia. The only exit is to the east. !MESSAGE HELL7M2 You are in the chamber of Alexander. !MESSAGE HELL8M1 You are in a large chamber in Limbo. An exit leads north. !MESSAGE HILLSM1 You are on a cold bleak hillside. All is wintry here, and no birds sing. There is a small cave further eastward, but apart from that the only way to go is back to the west. !MESSAGE HILLSM2 You are on the cold bleak hillside. !MESSAGE HORSEM1 There is a twenty foot high horse here, crafted from solid wood. !MESSAGE HMDUM1M1 There is an exit to the south, which bears the following sign: !SWITCH HMDZ0 HMDZ1 HMDZ2 HMDZ3 HMDZ4 HMDZ5 !MESSAGE HMDUM2M1 There is an exit to the southeast, which bears the following sign: !SWITCH HMDZ0 HMDZ1 HMDZ2 HMDZ3 HMDZ4 HMDZ5 !MESSAGE HMDUM3M1 There is an exit to the southwest, which bears the following sign. !SWITCH HMDZ0 HMDZ1 HMDZ2 HMDZ3 HMDZ4 HMDZ5 !MESSAGE HMDZ0 IF THIS IS THE WAY OUT, THEN S IS FALSE. !MESSAGE HMDZ1 IF THIS IS THE WAY OUT, THEN SE IS FALSE. !MESSAGE HMDZ2 IF THIS IS THE WAY OUT, THEN SW IS FALSE. !MESSAGE HMDZ3 IF THIS IS THE WAY OUT, THEN S IS TRUE. !MESSAGE HMDZ4 IF THIS IS THE WAY OUT, THEN SE IS TRUE. !MESSAGE HMDZ5 IF THIS IS THE WAY OUT, THEN SW IS TRUE. !MESSAGE IDOLM1 There is an idol of Zempoalla here. It is inlaid with precious stones, such as rare balax and lyncurion! !MESSAGE IDOLM2 An idol of Zempoalla. !MESSAGE INCITYM1 You are in a temple dedicated to the evil goddess Zempoalla. Her ideas of interior design apparently include scenes of venomous snakes and hideous toads, for that is what covers the walls. The only exit from this place is to the east. !MESSAGE INCITYM2 You are in the temple of Zempoalla. !MESSAGE INHORM1 You are inside the wooden horse. The only conceivable exit is far above you and impossible to reach. The furnishings of this horse are meagre: wooden walls, wooden floor, wooden ceiling. !MESSAGE INHORM2 You are inside the wooden horse. !MESSAGE JHCENDM1 You are at Winning Ways, an area of scrubland dedicated to the memory of the Unknown Mathematician. The only way to escape this place is back to the east. !MESSAGE JHCENDM2 You are at Winning Ways. !MESSAGE JOHOCOM1 You are on a twisting path, which enters from the northeast and leaves to the south. There is also a !SWITCH JHC10 JHC11 !MESSAGE JHC10 path leading off to the west, but this is blocked by a strange curtain of swirling mists. !MESSAGE JHC11 path leading off to the west at this point. !MESSAGE JOHOCOM2 You are on the twisting path. !MESSAGE JUANM1 !SWITCH JUAN10 MNULL !MESSAGE JUAN10 A wealthy-looking youth in very elegant attire is regarding you nervously. !MESSAGE JUNC1M1 You are at a junction of ways. A damp path leads south from here, a salty path leads northwest, and a sandy path leads northeast. There is a lake of fire a few yards to your north - the heat from it drives you back whenever you venture too closely. !MESSAGE JUNC1M2 You are by the lake of fire. !MESSAGE JUNC2M1 You are in Parsifal's wood, a dark place with many strange and unexplained noises to trouble you. Paths leads off in six different directions here. !MESSAGE JUNC2M2 You are in Parsifal's wood. !MESSAGE KLIBM1 You are in Klingsor's library, a room containing but a small number of weighty tomes and grimoires. One imagines that the more portable folios are elsewhere, being put to evil purposes. No exits are visible. The books here are too heavy to lift, but you could open them if you felt inclined. They are labelled A-O, and their titles are as follows: A: The life-cycle of the paca. I: How to cheat at pallone. B: The flowers of the padang. J: A guide to paludal creatures. C: Night-time use of the padella. K: Panada and other recipes. D: Corruption of the pais. L: A survey of pannose materials. E: Ancient paktong artwork. M: The use of the parpen in construction. F: The sacred palas. N: The mechanics of the pawl. G: Palillogy in spell-casting. O: Paralysing the paxwax and other magics. H: The palla and other fashions. !MESSAGE KLIBM2 You are in Klingsor's library. !MESSAGE KROOM1M1 You are in one of Klingsor's chambers. The air reeks of sorcery and evil, or at least seems to. There is an exit back to the west, and some stairs leading upwards. !SWITCH KROOM199 !MESSAGE KROOM199 On the wall is written: THERE IS ALWAYS ONE LETTER. THERE IS ALWAYS ONE NUMBER. !MESSAGE KROOM1M2 You are in one of Klingsor's chambers. !MESSAGE KROOM2M1 You are in a small study belonging to mighty Klingsor. Unfortunately there is nothing here that you can take, as the necromancer has had the foresight to lock everything away. There are stairs leading up and down here. !SWITCH KROOM299 !MESSAGE KROOM299 On the wall is written: ONLY THE FIRST TWO ARE USED. !MESSAGE KROOM2M2 You are in Klingsor's study. !MESSAGE KROOM3M1 You are in another of Klingsor's sinister chambers. >From the appearance of the floor, it looks as though he has had some friends round here for a party recently, but there is nothing useful left behind. Steps lead up and down from here. !MESSAGE KROOM3M2 You are in Klingsor's party room. !MESSAGE KROOM4M1 You are in yet another chamber in Klingsor's mighty tower. This one looks as though it may have held a prisoner at one stage, but whoever it was seems to have escaped, or died. Steps lead up and down from here. !MESSAGE KROOM4M2 You are in the cell where Klingsor keeps captives. !MESSAGE KROOM5M1 You are in a sort of viewing gallery high up in Klingsor's tower. You can see out far over the desert and back towards Castle Moan, and there are many wondrous scenes to behold. Meanwhile, some steps here lead onto the roof, and others lead down again. !MESSAGE KROOM5M2 You are in the viewing gallery. !MESSAGE KTAM1 The noble Sir Agravain lies here, gravely wounded and tied up. !MESSAGE KTAM2 Sir Agravain. !MESSAGE KTBM1 Brave Sir Bors lies here, slightly scratched and tied up. !MESSAGE KTBM2 Sir Bors. !MESSAGE KTCM1 Sir Caradoc the mighty lies here, gravely wounded, bound and gagged. !MESSAGE KTCM2 Sir Caradoc. !MESSAGE KTDM1 Sir Dagonet the proud lies here, slightly scratched, bound and gagged. !MESSAGE KTDM2 Sir Dagonet. !MESSAGE KTEM1 Sir Ector the terrible lies here, somewhat wounded and in chains. !MESSAGE KTEM2 Sir Ector. !MESSAGE KTFM1 Ferocious Sir Feirefiz lies here, gravely wounded, chained and bound. !MESSAGE KTFM2 Sir Feirefiz. !MESSAGE KTGM1 Sir Gareth the renowned lies here, somewhat wounded, swathed in many chains. !MESSAGE KTGM2 Sir Gareth. !MESSAGE KTHM1 Valiant Sir Harry lies here, slightly scratched, and smothered in more chains than anyone else! !MESSAGE KTHM2 Sir Harry. !MESSAGE LAKEM1 You are standing on the banks of a large calm lake. The view is idyllic and the birds sing melodiously. A path leads south. !MESSAGE LAKEM2 You are on the banks of the large lake. !MESSAGE LAKEXM1 You are on a large rotating island in the middle of a lake. There is a tunnel down at this point. !MESSAGE LAKEXM2 You are by the side of the lake, on the rotating island. !MESSAGE LAMBM1 !SWITCH LAMB10 LAMB11 LAMB12 LAMB13 LAMB14 LAMB15 !MESSAGE LAMB10 There is a lamb frisking contentedly here. !MESSAGE LAMB11 A small lamb, which looks as though it may have lost its mother, is bleating here piteously. "Mehhh!" it wails, but retreats as you approach. !MESSAGE LAMB12 A small lamb, which looks as though it may have lost its mother, is bleating here piteously. "Maahh!" it wails, but retreats as you approach. !MESSAGE LAMB13 A small lamb, which looks as though it may have lost its mother, is bleating here piteously. "Mahhh!" it wails, but retreats as you approach. !MESSAGE LAMB14 A small lamb, which looks as though it may have lost its mother, is bleating here piteously. "Maaaa!" it wails, but retreats as you approach. !MESSAGE LAMB15 A small lamb, which looks as though it may have lost its mother, is bleating here piteously. "Mehrh!" it wails, but retreats as you approach. !MESSAGE LAMBM2 A small lamb. !MESSAGE LEVERM1 There are four wooden levers set into the wall here. One is painted red, one green, the third blue, and the fourth yellow. !MESSAGE LIFE0 ****** * * * * * * ****** !MESSAGE LIFE1 **** ****** ******** ** ** ******** ****** **** !MESSAGE LIFE2 ** * * * * * * * * * * * * * * ** !MESSAGE LIFE3 * * ** ** *** *** ** ** * * !MESSAGE LIFE4 ** ** * * * * * * * * * * * * ** ** !MESSAGE LIFE5 ** ** * * * * ****** ****** * * * * ** ** !MESSAGE LIFE6 ** ** * * * * * * * * * * * * ** ** !MESSAGE LIFE7 * * * * *** ****** *** * * * * !MESSAGE LIFE8 * * ** * * **** ** **** * * ** * * !MESSAGE LIFE9 * * ** * * ** * * ** * * ** * * !MESSAGE LIFE10 ** * * ** ***** ***** ** * * ** !MESSAGE LIFE11 * ** ** * * *** *** * * ** ** * !MESSAGE LIFE12 * * * * ** * * * * ** * * * * !MESSAGE LIFE13 * * ** **** ** * * !MESSAGE LIFE14 ******** * **** * ******** !MESSAGE LOONM1 You are in the Land of Madness. Strange visions appear before your eyes and vanish as suddenly as they came. All is probably an illusion, but there are possibly exits in all directions. !MESSAGE LOONM2 You are in the Land of Madness. !MESSAGE LURM1M1 You are in the first Byzantine chamber, an irregularly-shaped room with eight exits. The walls portray a variety of Middle Eastern scenes, such as knights riding on camels. The floor is very unusual - it is full of strange ridges and ramps, which make it rather uneven. !MESSAGE LURM1M2 You are in the first Byzantine chamber. !MESSAGE LURM2M1 You are in the second Byzantine chamber, which is similar to the previous one, in that its walls show strange Turkish scenes and its floor is ridged and ramped. There is a strong smell of Eastern perfume in the air. Once again there are eight exits. !MESSAGE LURM2M2 You are in the second Byzantine chamber. !MESSAGE MANDRM1 !SWITCH MAND10 MAND11 !MESSAGE MAND10 A large ugly-looking plant is growing beneath the gallows. Your knight-school training in arcane botany informs you that it is a mandrake. !MESSAGE MAND11 A dead mandrake lies here. !MESSAGE MANDRM2 A mandrake. !MESSAGE MONKM1 A venerable-looking monk is standing here, anxiously contemplating the balance of light and darkness. !MESSAGE NOAHM1 An old man with a long white beard is checking a huge list he has on a clipboard. "Still missing some!" he mutters to himself. !MESSAGE NOBLEM1 A nobleman, newly returned from the dead, is striding purposefully towards an elegantly-dressed youth, who is standing here aghast. !MESSAGE NOFREEEMU You try to release the emu, but the knots are tied too tightly, and you are unable to make any progress. !MESSAGE NXARNM1 You are standing to the north of a large gateway above which is inscribed in Gothic characters: !SWITCH NXARN99 !MESSAGE NXARN99 GATE OF NASTIL-XARN WHO EVIL DOES, IS BLEST INDEED SIN SEVEN TIMES, AND YOU ARE FREED The square is back to the north. !MESSAGE NXARNM2 You are outside the gate of Nastil-Xarn. !MESSAGE NXHALLM1 You are in a large hallway. The gate of Nastil-Xarn lies to your north, and corridors lead off from here in the other seven main horizontal directions. Daylight appears to stream in through the gateway, although it is not actually possible to see out again. !MESSAGE NXHALLM2 You are in the large hallway of Nastil-Xarn. !MESSAGE OPT1M1 You are in marshy countryside, at the junction of two long straight roads, one leading east, the other leading to the south. !MESSAGE OPT1M2 You are deep in marshy countryside. !MESSAGE OPT2M1 You are in undulating countryside, on a long east-west road. A road leads off to the south at this point. !MESSAGE OPT2M2 You are in undulating countryside. !MESSAGE OPT3M1 You are in flat countryside, at a point where a road leading south meets an east-west highway. !MESSAGE OPT3M2 You are in flat countryside. !MESSAGE OPT4M1 You are in dry countryside, at a junction of a long westward road and a long southward road. A wide road leads to the northeast, into a village. !MESSAGE OPT4M2 You are in dry countryside, outside the village. !MESSAGE OPT5M1 You are in mountainous countryside, on a long road which winds off to the north and south here. Another road leads off to the east. !MESSAGE OPT5M2 You are in mountainous countryside. !MESSAGE OPT6M1 You are in rough countryside, at a crossroads where roads lead off for many miles to north, south, east and west. !MESSAGE OPT6M2 You are in rough countryside. !MESSAGE OPT7M1 You are in dusty countryside, at a crossroads with roads leading off into the distance (N, S, E and W). !MESSAGE OPT7M2 You are in dusty countryside. !MESSAGE OPT8M1 You are in desolate countryside, at a T-junction where a road to the west meets a north-south lane. !MESSAGE OPT8M2 You are in desolate countryside. !MESSAGE OPT9M1 You are in rocky countryside, at a junction of two long lanes, one extending many miles north from here, the other stretching to the east. There is also a path back to the southwest. !MESSAGE OPT9M2 You are in rocky countryside. !MESSAGE OPT10M1 You are in hilly countryside, on an east-west road that meets a northward-leading road at this point. !MESSAGE OPT10M2 You are in hilly countryside. !MESSAGE OPT11M1 You are in damp countryside, where an east-west road meets another road (leading north). !MESSAGE OPT11M2 You are in damp countryside. !MESSAGE OPT12M1 You are in wooded countryside, at a junction of two roads, one leading north, the other stretching off to the west. !MESSAGE OPT12M2 You are in wooded countryside. !MESSAGE ORBM1 There is a jewelled orb here! !MESSAGE ORBM2 An orb. !MESSAGE OZM1 The ruins of a large statue lie in the desert. They show that the subject was once a mighty ruler, born to command. On the pedestal these words appear: LOOK ON MY WORKS YE MIGHTY, AND DESPAIR! I AM THE KING OF KINGS - MY NAME IS OZ... The carved stone is incomplete. !MESSAGE PAGEM1 There is a guilty-looking page boy standing here. !MESSAGE PAL0M1 You are in the Palace of Jade, a large and impressive room decorated in an oriental style with many heroic scenes. The room is brightly lit with a pure white glow. Archways lead off to the north, south, east and west. !MESSAGE PAL0M2 You are in the Palace of Jade. !MESSAGE PAL1M1 You are in the Temple of January, a room decorated with scenes of monsters prowling amidst ice and snow. Exits lead to the southeast, south and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL1M2 You are in the Temple of January. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL2M1 You are in the Temple of February, a room decorated with scenes of children playing in the snow. Exits lead to the northwest, southwest and southeast. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL2M2 You are in the Temple of February. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL3M1 You are in the Temple of March, a room decorated with scenes of heroes walking through hail and hurricane. Exits lead to the southeast, southwest and northwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL3M2 You are in the Temple of March. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL4M1 You are in the Temple of April, a room decorated with scenes of farmers planting their crops. There are exits to the west, northwest and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL4M2 You are in the Temple of April. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL5M1 You are in the Temple of May, a room decorated with scenes of flowers blooming in the sunshine. There are exits to the northeast, northwest and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL5M2 You are in the Temple of May. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL6M1 You are in the Temple of June, a room decorated with scenes of yokels merry-making in the sunshine. There are exits to the northwest, northeast and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL6M2 You are in the Temple of June. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL7M1 You are in the Temple of July, a room decorated with scenes of country folk bathing in rivers and otherwise relaxing in the heat. There are exits to the north, northeast and northwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL7M2 You are in the Temple of July. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL8M1 You are in the Temple of August, a room decorated with scenes of poppies blooming on the warm hillsides. There are exits to the northeast, northwest and southeast. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL8M2 You are in the Temple of August. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL9M1 You are in the Temple of September, a room decorated with scenes of rustics gathering in the harvest. There are exits to the northeast, southeast and northwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL9M2 You are in the Temple of September. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL10M1 You are in the Temple of October, a room decorated with scenes of leaves falling from trees in the cool breezy weather. There are exits to the east, northeast and southeast. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL10M2 You are in the Temple of October. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL11M1 You are in the Temple of November, a room decorated with scenes of heroes laid up in bed with colds and flu. There are exits to the southeast, southwest and northeast. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL11M2 You are in the Temple of November. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL12M1 You are in the Temple of December, a room decorated with scenes of rustics breaking the ice on a pond. There are exits to the northeast, southeast and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL12M2 You are in the Temple of December. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL13M1 You are in the Palace of Spring, a huge room with the scent of daffodils and the distant sounds of birds chirping. There are exits to the east, west, northeast and southeast. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL13M2 You are in the Palace of Spring. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL14M1 You are in the Palace of Summer, a huge room with the scent of cut grass and the distant sounds of bees humming. There are exits to the north, south, southeast and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL14M2 You are in the Palace of Summer. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL15M1 You are in the Palace of Autumn, a huge room with the scent of dead leaves and the distant sounds of harvest. There are exits to the east, west, northwest and southwest. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL15M2 You are in the Palace of Autumn. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL16M1 You are in the Palace of Winter, a huge room with the scent of mist and fog, and the distant sounds of animals in the snow. There are exits to the north, south, northwest and northeast. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PAL16M2 You are in the Palace of Winter. !SWITCH PALG0 PALG1 PALG2 PALG3 !MESSAGE PALG0 The room is only dimly lit. !MESSAGE PALG1 The room glows with a blueish light. !MESSAGE PALG2 The room glows with a reddish light. !MESSAGE PALG3 The room glows with a greenish light. !MESSAGE PAPERM1 !SWITCH PAPER10 PAPER11 PAPER12 PAPER13 !MESSAGE PAPER10 There is a blank sheet of paper here. !MESSAGE PAPER11 There is a piece of paper here, which bears the words: "To free the Lady Lot, say BENAMMI". !MESSAGE PAPER12 There is a piece of paper here, which bears the words: "To free the Lady Lot, say MOAB". !MESSAGE PAPER13 There is a piece of paper here, which bears the words: "To free the Lady Lot, say ZOAR". !MESSAGE PAPERM2 !SWITCH PAPER20 PAPER21 PAPER22 PAPER23 !MESSAGE PAPER20 A blank sheet of paper. !MESSAGE PAPER21 A paper, inscribed "To free the Lady Lot, say BENAMMI". !MESSAGE PAPER22 A paper, inscribed "To free the Lady Lot, say MOAB". !MESSAGE PAPER23 A paper, inscribed "To free the Lady Lot, say ZOAR". !MESSAGE PATENM1 There is an antique silver paten here! !MESSAGE PATENM2 A silver paten. !MESSAGE PATH1M1 You are on an east-west path that leads through some woodland. !MESSAGE PATH1M2 You are on the east-west path. !MESSAGE PATH2M1 You are on a north-south road that leads through bleak countryside. !MESSAGE PATH2M2 You are on the north-south road. !MESSAGE PEARLM1 There is a pearl (of Wisdom) here! !MESSAGE PEARLM2 A pearl of Wisdom. !MESSAGE PEARLM3 On the altar there is a huge pearl - a pearl of Wisdom! !MESSAGE PIEM1 There is a steaming hot pie here. !MESSAGE PIEM2 A hot pie. !MESSAGE PILLARM1 There is a five-foot high pillar of salt here, which looks a bit like a running woman. But not a lot. !MESSAGE PLAINM1 You are on a north-south road that leads across a bleak and inhospitable plain. In the distance a huge castle can be seen, shrouded in fog. !MESSAGE PLAINM2 You are on the bleak plain. !MESSAGE POOLM1 You are on a north-south path. The ground is uneven, and some small pools of water have formed at this point. !MESSAGE POOLM2 You are on the north-south path by the pools of water. !MESSAGE PORTRM1 Hanging on the wall here is a life-size portrait of some nobleman of yore. The picture is neither signed not titled, but it does bear the following legend at its foot. HERE I AWAIT VENGEANCE ON HIM WHO SLEW ME. Needless to say, the portrait is too massive to carry. !MESSAGE PRIDRMM1 You are in a large concert hall, furnished with heavy wooden pews. The sole exit is back to the west. !MESSAGE PRIDRMM2 You are in the concert hall. !MESSAGE RAVENM1 A raven is fluttering about here. !MESSAGE RAVENM2 A raven. !MESSAGE ROCKM1 There is a piece of rock salt here. !MESSAGE ROCKM2 A piece of rock salt. !MESSAGE ROUNDM1 You are at the junction of many ways. Roads radiate from here in all horizontal directions, leading over hill and dale, through forest and plain. !MESSAGE ROUNDM2 You are at the junction of many ways. !MESSAGE RUBYM1 !SWITCH RUBY10 RUBY11 !MESSAGE RUBY10 There is a fine ruby here! !MESSAGE RUBY11 There is a fine ruby here! It is glowing strangely. !MESSAGE RUBYM2 !SWITCH RUBY20 RUBY21 !MESSAGE RUBY20 A ruby. !MESSAGE RUBY21 A glowing ruby. !MESSAGE SALT1M1 You are at the eastern end of a salt plain, which extends further west towards some rocky mountains. There is also a track to the southeast and, to the northeast, a huge oriental-looking palace. !MESSAGE SALT1M2 You are at the eastern end of the salt plain, near the palace. !MESSAGE SALT2M1 You are at the western end of the salt plain, which ends at the foot of some rocky mountains. The only way to go is back east across the plain. !MESSAGE SALT2M2 You are at the western end of the salt plain. !MESSAGE SAPPHM1 !SWITCH SAPPH10 SAPPH11 !MESSAGE SAPPH10 There is a splendid sapphire here! !MESSAGE SAPPH11 There is a splendid sapphire here! It is glowing strangely. !MESSAGE SAPPHM2 !SWITCH SAPPH20 SAPPH21 !MESSAGE SAPPH20 A sapphire. !MESSAGE SAPPH21 A glowing sapphire. !MESSAGE SCEPTM1 There is a gold sceptre here! !MESSAGE SCEPTM2 A sceptre. !MESSAGE SCROLLM1 !SWITCH SCROLL10 SCROLL11 !MESSAGE SCROLL10 There is a scroll here, entitled 'Magic Brooms'. !MESSAGE SCROLL11 There is a scroll here, entitled 'Wood Spirits'. !MESSAGE SCROLLM2 !SWITCH SCROLL20 SCROLL21 !MESSAGE SCROLL20 A scroll entitled 'Magic Brooms'. !MESSAGE SCROLL21 A scroll entitled 'Wood Spirits'. !MESSAGE SINAI1M1 You are on a narrow path which winds its way up a vast mountain shrouded in fog. At this point, about halfway up the mountain, a