--- title: "Velnor’s Lair" id: 72926 type: "computer_media" slug: "velnors-lair" url: "http://localhost/computer_media/velnors-lair/" markdown_url: "http://localhost/computer_media/velnors-lair.md" published_at: "2026-10-27T21:30:14+00:00" modified_at: "2026-10-27T21:30:14+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/v-1-1.png" excerpt: "A sword-and-sorcery text adventure: choose to be a warrior, wizard or priest and fight your way through the Goblin Labyrinth to the wizard Velnor." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "Quicksilva" slug: "quicksilva" taxonomy: "post_tag" url: "http://localhost/tag/quicksilva/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Derek Brewster" slug: "derek-brewster" taxonomy: "indiv" url: "http://localhost/indiv/derek-brewster/" genre: - name: "Text Adventure" slug: "text-adventure" taxonomy: "genre" url: "http://localhost/type/text-adventure/" media_type: "Program" programmers: - name: "Derek Brewster" slug: "derek-brewster" taxonomy: "indiv" url: "http://localhost/indiv/derek-brewster/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Velnor%27s%20Lair%20%281983%29%28Quicksilva%29%28TS2068%29%28GB%29%28Program%29.zip" tsrun_member: "Velnor's Lair (1983)(Quicksilva)(TS2068)(GB)(Program)/Velnor's Lair (1983)(Quicksilva)(TS2068)(GB)(Program).tap" mediadate: "1983" producer_company: - id: 11197 title: "Quicksilva" type: "company" url: "http://localhost/company/quicksilva/" images: - url: "http://localhost/wp-content/uploads/2026/10/v-1-1.png" - url: "http://localhost/wp-content/uploads/2026/10/w-1-3.png" - url: "http://localhost/wp-content/uploads/2026/10/w-3-1.png" related_products: - id: 37144 title: "Velnor’s Lair" type: "product" url: "http://localhost/product/velnors-lair/" media_type_tags: "Text Adventure" license: false --- # Velnor’s Lair Velnor’s Lair is a text adventure set in the Goblin Labyrinth beneath Mount Elk. You begin by choosing a class (warrior, wizard or priest), arrive at the cave entrance with a torch, a tinderbox and a club, and work your way through the tunnels by typing commands. Along the way you fight or cast spells against demons, trolls, Medusa and finally the wizard Velnor, with your hit points and spell strength tracked as you go. A game in progress can be saved to tape and reloaded. The title screen reads “VELNOR’S LAIR / Written by DEREK BREWSTER / © 1983 QUICKSILVA”. The short BASIC loader is the “VLOADER” routine whose REM lines credit S. S. Dosanj of Bitterne Software (25 November 1983), the same loader used by Quicksilva’s Aquaplane. The copy here came from one of Bob Swoger’s Larken disks, which held two versions of the game; the later one, used here, corrects a line of room text. ## Program Analysis ### Structure The tape holds three parts: the loader `VELNOR.B1`, a loading screen (`velnor.C$`) and the game itself (`velnor.B2`), a BASIC program of about 38K. The loader shows the screen with `LOAD "velnor.C$"SCREEN$` and then loads and runs the game. Room descriptions are handled by a long run of subroutines from line 9000 up, many of them sharing exit messages through `GO SUB Q: PRINT U$;...`. ### Notable Techniques - Numeric constants are written as `VAL "..."` (for example `GO SUB VAL "6E3"`) to save memory. - The game state is saved as two CODE blocks: `SAVE "1"CODE VAL "61E2",VAL "44500"` and a 180-byte block from 23552, reloaded with two `LOAD ""CODE` statements. - Directions out of a room are printed by shared subroutines, so many room lines are a single GO SUB and PRINT. ### Potential Issues - The loader’s lines 9000–9020 are a leftover helper that scans and patches the program in memory; they are not reached when the tape runs normally. This copy came from a Larken disk and was converted to load from tape: the disk prefixes in the loader were removed, along with the disk save lines and the LOGICALL menu call, and the corrected game file was given the name the loader expects. It was tested in ZEsarUX: the class selection, the opening room and movement into the dark passage all work. ## Source Code ````````` ; VELNOR.B1 10 REM program VLOADER 20 REM created 25TH NOVEMBER 1983 30 REM version 1.0 40 REM author S. S. DOSANJ (BITTERNE SOFTWARE) 50 REM 53 CLEAR 65535: REM 55 BORDER 0: INK 0: PAPER 0: CLS : REM 57 PRINT #0;AT 0,12; INK 7; FLASH 1;"LOADING"; FLASH 0; INK 0: REM 60 LOAD "velnor.C$"SCREEN$ : REM 100 PRINT AT 19,0;: REM 130 LOAD "velnor.B2": REM 140 STOP 9000 FOR F=(PEEK 23635+256*PEEK 23636) TO 9999999 STEP 2: BORDER 0: BORDER 2: REM 9005 IF PEEK F=88 AND PEEK (F-1)=88 THEN POKE F-1,16: BEEP .1,1: REM 9010 IF (PEEK F=88 AND PEEK (F+1)=88) THEN POKE F,16: BEEP .1,0: REM 9015 IF PEEK F=96 AND PEEK (F+1)=96 THEN STOP : REM 9017 IF PEEK F=88 AND PEEK (F-1)=88 THEN POKE F-1,16: BEEP .1,1: REM 9020 NEXT F: REM 9992 REM removed (LKDOS-only) 9998 REM removed (LKDOS-only) 9999 REM ```````` ; velnor.B2 5 GO SUB VAL "6E3" 10 LET Z=VAL "7030": LET Z1=Z 20 GO SUB VAL "3E3" 80 IF HP<=O THEN GO TO VAL "103" 81 IF X=TT AND M(TT)=NM AND NM=O THEN GO TO VAL "6080" 85 INK O: PRINT : GO SUB Z 90 PRINT : GO SUB VAL "555" 95 LET Z1=Z 100 IF O(FT)>O THEN GO SUB VAL "4800" 101 LET HP=HP-B 103 IF K AND A+HP/IHP*SE<=K THEN LET K=K-A: BEEP A,K: BORDER K: IF K THEN GO TO VAL "103" 105 IF K=O THEN GO TO VAL "6100" 106 INK O: IF O(F)=A THEN GO SUB VAL "4500": LET Z1=Z: GO SUB Z: GO SUB VAL "555" 107 IF Z>VAL "9E3" AND M(TW) THEN GO SUB VAL "5400" 108 GO SUB VAL "6300" 112 IF SCREEN$ (A,O)=" " AND C THEN PRINT INK INT PI;AT A,INT PI;"SPELL STRENGTH ";M 113 INPUT "WHAT WILL YOU DO NOW ? "' LINE I$: CLS : POKE V,O 114 PRINT I$: PRINT AT TU,O 115 FOR N=A TO LEN I$ 120 IF I$(N)=" " THEN GO TO VAL "140" 125 LET N$="" 130 NEXT N: LET V$=I$: GO TO VAL "155" 140 LET V$=I$( TO N-A) 150 LET N$=I$(N+A TO ) 155 GO SUB VAL "180" 160 IF NM AND NOT CH THEN GO SUB VAL "5700" 165 IF MOVE THEN GO TO CODE "d" 170 GO TO CODE "P" 182 IF I$="RUN" THEN PRINT AT TU,O;"IN WHICH DIRECTION ?": INPUT "DIRECTION ? "; LINE V$ 183 IF V$="RUN" THEN LET V$=N$: LET N$="" 185 LET MOVE=O: IF N$<>"" THEN GO SUB VAL "1E3": LET CH=O: RETURN 190 GO SUB CODE ">=": IF Z<>Z1 THEN GO SUB VAL "500": RETURN 195 LET CH=O: GO SUB VAL "250": RETURN 210 IF V$="N" OR V$="NORTH" THEN LET z=z1+CODE "_" 220 IF V$="S" OR V$="SOUTH" THEN LET z=z1-CODE "_" 230 IF V$="E" OR V$="EAST" THEN LET Z=Z1+FV 240 IF V$="W" OR V$="WEST" THEN LET Z=Z1-FV 243 IF V$="U" OR V$="UP" THEN GO SUB VAL "400" 245 IF V$="D" OR V$="DOWN" THEN GO SUB VAL "420" 249 RETURN 254 IF V$="SAVE" THEN SAVE "1"CODE VAL "61E2",VAL "44500": SAVE "2"CODE VAL "23552",VAL "180": RETURN 255 IF V$="LEAVE" THEN GO TO VAL "1750" 256 IF V$="LOAD" THEN PRINT #O;TAB 5;"PLEASE START THE TAPE": LOAD ""CODE : LOAD ""CODE : RETURN 260 IF V$="F" OR V$="FIGHT" OR V$="KILL" THEN GO TO VAL "5500" 270 IF V$="HELP" THEN PRINT "SORRY, I CAN'T HELP YOU."': RETURN 280 IF LEN V$>TU THEN IF V$( TO INT PI)="INV" THEN GO TO VAL "440" 300 IF V$="TIAMAT" THEN GO TO VAL "460" 305 IF V$=X$ THEN GO TO VAL "380" 310 IF V$="EXTENDERE" THEN GO TO VAL "480" 312 LET V$=V$+" " 315 FOR N=A TO SI: IF V$( TO FV)=P$(N) THEN LET N$=V$: GO TO VAL "2250"+N*CODE "2" 318 NEXT N 340 PRINT "PARDON ?": RETURN 380 IF Z=VAL "7715" THEN LET Z=VAL "7725": RETURN 390 IF Z=VAL "7725" THEN LET Z=VAL "7715": RETURN 395 PRINT "NOTHING HAPPENS": RETURN 401 IF Z=VAL "8780" THEN LET Z=VAL "8770": RETURN 403 IF Z=VAL "9315" AND NOT Z(VAL "10") THEN LET Z=VAL "8575": RETURN 410 LET Z=VAL "8E3": RETURN 420 IF Z=VAL "8770" THEN LET Z=VAL "8780": RETURN 425 IF O(VAL "20") AND Z=VAL "8575" THEN LET Z=VAL "9315": RETURN 430 GO TO VAL "410" 445 LET NO=A: PRINT "YOU ARE CARRYING :"' 450 FOR N=A TO PO: IF NOT Z(N) THEN PRINT T$(N): LET NO=O 455 NEXT N: IF NO THEN PRINT "NOTHING" 458 RETURN 460 IF Z(J) OR (Z<>VAL "8270" AND Z<>VAL "8280") THEN PRINT "NOTHING HAPPENS.": RETURN 462 IF O(TE) THEN PRINT "THE BRIDGE ACROSS THE CHASM HAS VANISHED.": LET O(TE)=O: RETURN 465 PRINT "A BRIDGE NOW SPANS THE CHASM.": LET O(TE)=A: RETURN 480 IF Z(EL) THEN PRINT "NOTHING HAPPENS": RETURN 482 IF T(EL)=EI THEN LET T(EL)=VAL "22": LET T$(EL)=A$(INT PI): PRINT "THE PLANK HAS SHRUNK TO ";A$(INT PI): RETURN 485 LET T(EL)=EI: LET T$(EL)=A$(F): PRINT "THE";A$(INT PI,TU TO );" HAS EXPANDED TO ";A$(F): RETURN 510 IF NM THEN GO SUB VAL "5150": PRINT AT F,O: IF MON THEN RETURN 530 LET MOVE=A: GO SUB Z 535 IF CHR$ CODE V$="U" AND Z1=VAL "9315" AND Z=VAL "8E3" THEN PRINT "YOU CAN'T CLIMB UP.": LET Z=Z1: GO SUB Z 540 IF SCREEN$ (INT PI,O)=" " THEN PRINT "THERE IS NO WAY TO GO IN THAT DIRECTION."': LET Z=Z1: GO SUB Z 545 LET Z1=Z 558 INK F: LET NO=A 560 FOR N=A TO PO 570 IF Z=Z(N) THEN GO TO VAL "600" 580 NEXT N 590 PRINT : INK O: RETURN 600 IF NO THEN PRINT '"THERE IS ALSO :"' 605 LET NO=O: IF N>A THEN IF T$(N)=T$(N-A) AND Z(N)=Z(N-A) THEN PRINT "ANOTHER";T$(N,TU TO ): GO TO VAL "580" 610 PRINT " ";T$(N) 615 IF O(VAL "23")=N AND Z(FT)=-A THEN PRINT "THE ";T$(FT)'"IS LOOSE." 620 GO TO VAL "580" 1000 IF V$="SAY" THEN LET V$=N$: GO TO VAL "300" 1001 IF V$="SHAKE" THEN GO TO VAL "1950" 1002 IF V$="CLEAN" THEN PRINT "HOW ?": RETURN 1003 IF V$="F" OR V$="FIGHT" OR V$="KILL" THEN GO TO VAL "5500" 1004 IF V$="GET" THEN GO TO 1100 1005 LET v$=v$+" " 1010 FOR n=A TO VAL "17" 1020 IF V$( TO INT PI)=E$(n) THEN GO TO VAL "1050"+VAL "50"*n 1030 NEXT n 1040 IF V$( TO INT PI)="USE" THEN GO TO VAL "2E3" 1090 PRINT "PARDON ?": RETURN 1101 LET QQ=O: FOR N=A TO PO: IF Z(N)=O THEN LET QQ=QQ+A 1102 NEXT N 1103 IF QQ>=TE THEN PRINT "YOU CAN'T CARRY ANY MORE. YOU'LLHAVE TO DROP SOMETHING.": RETURN 1105 IF N$="STAKE" AND Z(F)=-SGN PI AND (Z=VAL "7850" OR Z=VAL "7755") THEN LET Z(F)=SIN PI: PRINT "O.K. THE DOOR HAS SLAMMED SHUT.": LET O(INT PI)=A: RETURN 1106 IF O(VAL "23") THEN IF (N$="SKIN" OR N$="ZALROG SKIN") AND Z=Z(O(VAL "23")) AND Z(FT)=-SGN PI THEN LET Z(FT)=O: PRINT "O.K. BUT, WHAT WILL YOU DO WITH IT ?": RETURN 1108 LET N$=N$+" " 1109 IF N$( TO F)="DRAG" THEN LET N$="STAT" 1110 FOR N=A TO PO 1114 IF Z=Z(N) AND N$( TO F)=T$(N,T(N) TO T(N)+INT PI) THEN GO TO VAL "1120" 1115 NEXT N 1118 PRINT G$: RETURN 1120 LET Z(N)=O: PRINT AT TU,TU;"O.K.": RETURN 1152 LET N$=N$+" " 1155 FOR N=A TO PO 1160 IF N$( TO F)=T$(N,T(N) TO T(N)+INT PI) THEN GO TO VAL "1180" 1165 NEXT N 1170 PRINT "DROP WHAT ?": RETURN 1180 IF Z(N)=O THEN PRINT AT TU,TU;"O.K.": LET Z(N)=Z: RETURN 1185 IF N"TORCH" THEN PRINT "LIGHT WHAT ?": RETURN 1210 IF Z(TU) THEN PRINT "YOU HAVE NO TORCH.": RETURN 1215 IF Z(TU)=SE THEN PRINT "THE TORCH IS ALREADY LIT.": RETURN 1220 IF Z(VAL "28") THEN PRINT "YOU HAVE NOTHING TO LIGHT IT WITH.": RETURN 1225 LET T$(TU)=A$(TU): LET T(TU)=SE: PRINT "THE TORCH IS NOW LIT.": RETURN 1255 IF N$<>"BRIDGE" THEN GO TO VAL "1275" 1260 IF Z=VAL "7205" OR Z=VAL "7215" THEN PRINT "THE BRIDGE IS AN ILLUSION, YOU HAVE FALLEN 1000 FT TO YOUR DEATH.": LET HP=-SGN PI: RETURN 1262 IF NOT O(TE) THEN GO TO VAL "1275" 1265 IF Z=VAL "8270" THEN LET Z=VAL "8280": LET Z1=Z: RETURN 1270 IF Z=VAL "8280" THEN LET Z=VAL "8270": LET Z1=Z: RETURN 1275 IF N$<>"PLANK" THEN GO TO VAL "1292" 1278 IF T(EL)<>EI THEN PRINT "I SEE NO PLANK": RETURN 1285 IF Z=VAL "7205" THEN LET Z=VAL "7215": LET Z1=Z: RETURN 1290 IF Z=VAL "7215" THEN LET Z=VAL "7205": LET Z1=Z: RETURN 1292 IF N$="RIVER" OR N$="SWAMP" OR N$="CHASM" THEN PRINT '"HOW ?": RETURN 1295 PRINT G$: RETURN 1305 IF N$<>"TORCH" THEN PRINT V$;" WHAT ?": RETURN 1310 IF Z(TU) THEN PRINT "YOU HAVE NO TORCH.": RETURN 1320 LET T$(TU)=A$(A): LET T(TU)=INT PI: PRINT "THE TORCH IS NOW OUT."'"YOU CAN SEE BY THE LIGHT OF THE GLOWING SWORD." AND NOT Z(VAL "16")' 1330 RETURN 1351 LET I$=N$+" ": LET I$=I$( TO INT PI) 1355 IF I$="CAV" AND Z=VAL "7030" THEN LET Z=VAL "7125": RETURN 1357 IF I$="BAT" THEN GO TO VAL "2070" 1359 IF I$="RIV" THEN PRINT "WITH THE CROCODILES, NO WAY !": RETURN 1360 IF I$<>"POO" AND I$<>"WAT" THEN PRINT G$: RETURN 1362 IF Z<>VAL "7630" THEN GO TO VAL "1380" 1364 PRINT "IT'S VERY REFRESHING." 1366 IF HP"ROCK" OR Z<>VAL "7945" THEN GO TO VAL "1410" 1401 IF O(FV) THEN PRINT "THE PASSAGE IS ALREADY CLEAR.": RETURN 1403 IF K"WEB" AND N$<>"SPIDER" AND N$<>"WEBS" THEN GO TO VAL "1480" 1470 IF (Z=VAL "7220" OR Z=VAL "7030") AND M(A)=A THEN PRINT "THE WEB BURNS IN SHEETS OF"'"FLAMES, A SMOULDERING,DEAD,GIANTSPIDER FALLS FROM THE ROOF.": LET X=A: LET M$="GIANT SPIDER": GO SUB MO: GO SUB VAL "4100": RETURN 1475 IF Z=VAL "7125" THEN PRINT "DON'T BE SILLY YOU'LL BE BURNED TO A CRISP !": RETURN 1480 IF N$="MUM" THEN GO TO VAL "2020" 1485 IF NM AND X=TE THEN LET NM=O: PRINT "THE INFLAMMABLE MUMMIES HAVE"'"BEEN BURNED TO SMOULDERING ASHES": RETURN 1499 PRINT G$: RETURN 1501 IF N$<>"DOOR" THEN PRINT "YOU CAN'T.": RETURN 1505 IF Z<>VAL "7645" AND Z<>VAL "7650" THEN GO TO VAL "1520" 1507 IF O(SI)=TU THEN PRINT "THE DOOR IS ALREADY OPEN." 1510 IF O(SI)=A THEN PRINT "O.K.": LET O(SI)=TU 1515 IF NOT O(SI) THEN PRINT "YOU CAN'T, THE DOOR IS LOCKED." 1518 RETURN 1520 IF Z<>VAL "7755" AND Z<>VAL "7850" THEN GO TO VAL "1530" 1523 IF O(INT PI) THEN PRINT "THE DOOR HAS LOCKED ITSELF AND THERE IS NO WAY OF OPENING IT. I'M AFRAID YOU ARE LOCKED ";: IF Z=VAL "7755" THEN PRINT "OUT.": RETURN 1525 PRINT "IN": RETURN 1549 PRINT "I SEE NO DOOR !": RETURN 1552 LET N$=N$+" " 1555 IF N$( TO INT PI)<>T$(TS,T(TS) TO T(TS)+TU) THEN GO TO VAL "1570" 1560 IF Z(TS)=O THEN PRINT "THEY WERE DELICIOUS.": LET Z(TS)=SGN PI: RETURN 1565 PRINT "YOU HAVE NO APPLES !": RETURN 1570 IF N$( TO INT PI)<>T$(INT PI,T(INT PI) TO T(INT PI)+TU) THEN PRINT "DON'T BE SILLY !": RETURN 1575 IF Z(INT PI)=O THEN PRINT "O.K. BUT DON'T COME NEAR ME !": LET Z(INT PI)=A: RETURN 1580 PRINT "YOU HAVE NO GARLIC": RETURN 1602 LET I$=N$+" ": LET I$=I$( TO F) 1605 IF I$="STAT" AND (Z=VAL "8330" OR Z=VAL "8235") THEN PRINT "THEY ARE SO REALISTIC THEY COULDALMOST BE HUMAN !": RETURN 1607 IF I$="STAT" AND (NOT Z(J) OR Z(J)=Z) THEN PRINT "INSCRIBED ON IT IS THE VERSE :": PRINT : PRINT " I STAND HERE IN SOLID STATE,": PRINT " MY PRESENCE HERE DECIDES YOUR FATE,": PRINT " I SPAN FROM A TO B,": PRINT " BUT, FIRST YOU MUST FIND THE KEY.": RETURN 1610 IF ((I$="WARR" OR I$="BODY") AND Z=VAL "8225") OR ((I$="WIZA" OR I$="BODY") AND Z=VAL "7840") THEN PRINT "YES, HE IS QUITE DEAD !": RETURN 1615 IF I$="TAPE" AND Z=VAL "7575" THEN PRINT "THE TAPESTRY IS OLD AND"'"WORTHLESS,BUT,IT WAS HIDING A SECRET PASSAGE TO THE EAST.": LET O(NI)=SGN PI: RETURN 1620 IF (I$="WOOD" OR I$="PLAK") AND (Z=Z(EL) OR NOT Z(EL)) THEN PRINT "BURNED INTO IT IS THE WORD 'EXTENDERE'": RETURN 1630 IF I$="DRAW" AND Z=VAL "7505" THEN PRINT "THE DRAWINGS DEPICT ORCS"'"FIGHTING WITH AND BURNING"'"ANIMATED MUMMIES.": RETURN 1635 IF I$="ROCK" AND Z=VAL "7945" AND NOT O(FV) THEN PRINT "THE ROCKS COULD POSSIBLY BE"'"MOVED.": RETURN 1649 GO TO VAL "2900" 1655 IF (N$<>"BODY" AND N$<>"WARRIOR") OR Z<>VAL "8225" THEN GO TO VAL "1665" 1657 IF Z(INT PI)=-A THEN PRINT "YOU HAVE FOUND SOME GARLIC.": LET Z(INT PI)=Z: RETURN 1660 PRINT "YOU FIND NOTHING OF INTEREST.": RETURN 1665 IF Z<>VAL "7840" OR (N$<>"BODY" AND N$<>"WIZARD") THEN GO TO VAL "1675" 1667 IF Z(TT)=-A THEN LET Z(TT)=Z: PRINT "YOU HAVE FOUND ";T$(TT): RETURN 1670 GO TO VAL "1660" 1699 GO TO VAL "2900" 1702 LET V$=N$+" " 1705 IF V$( TO INT PI)<>"CRO" THEN GO TO VAL "1720" 1707 IF Z<>VAL "8075" AND Z<>VAL "8165" THEN PRINT "I SEE NO ";V$: RETURN 1710 GO SUB VAL "2850" 1712 IF N>PO THEN RETURN 1714 IF N"SHA" THEN GO TO VAL "1730" 1722 IF Z<>VAL "8735" THEN PRINT "I SEE NO SHARKS !": RETURN 1724 GO SUB VAL "2850" 1726 IF N>PO THEN RETURN 1727 PRINT "THE SHARKS IGNORE THE ";I$;"."'"THEY PREFER LIVE FOOD !" AND N>VAL "31" 1729 RETURN 1730 IF V$( TO INT PI)<>"RAT" THEN PRINT G$: RETURN 1732 IF (Z<>VAL "7190" AND Z<>VAL "7195") OR O(EI)=TU THEN PRINT "I SEE NO RATS": RETURN 1733 GO SUB VAL "2850" 1734 IF N=TS THEN PRINT "THE RATS EAGERLY DEVOUR THE"'"APPLES.": LET O(EI)=A: LET Z(TS)=A: RETURN 1735 IF N>PO THEN RETURN 1736 PRINT "THE RATS IGNORE THE ";I$;".": RETURN 1752 LET I$=N$+" ": LET I$=I$( TO INT PI) 1754 IF I$<>"WAT" AND I$<>"POO" THEN PRINT "I DON'T UNDERSTAND !": RETURN 1756 IF Z=VAL "8920" THEN LET Z=VAL "8735": PRINT "O.K": RETURN 1758 IF Z=VAL "8925" THEN LET Z=VAL "8745": PRINT "O.K.": RETURN 1760 IF Z=VAL "7630" THEN PRINT "O.K.": RETURN 1762 PRINT "YOU'RE NOT IN ANY ";N$: RETURN 1800 GO TO VAL "2E3" 1865 IF Z=VAL "7715" THEN GO TO VAL "2985" 1870 PRINT G$: RETURN 1910 IF Z(FT) OR (N$<>"ZALROG SKIN" AND N$<>"SKIN") THEN PRINT G$: RETURN 1920 IF Z<>VAL "8745" AND Z<>VAL "8735" AND Z<>VAL "8920" AND Z<>VAL "8925" AND Z<>VAL "8165" AND (Z>VAL "8090" OR ZVAL "7630" THEN PRINT "THERE IS NO WATER AVAILABLE.": RETURN 1930 PRINT "THE ZALROG SKIN IS NOW INVISIBLE.": LET T$(FT)=A$(SI): LET T(FT)=VAL "18": LET Z(NI)=-TU: RETURN 1950 IF N$<>"SKIN" AND N$<>"ZALROG SKIN" THEN PRINT G$: RETURN 1955 IF Z(FT) THEN PRINT "YOU HAVE NO ";N$: RETURN 1960 GO TO VAL "1930" 2001 LET N$=N$+" " 2002 FOR N=A TO SI: IF N$( TO FV)=P$(N) THEN GO TO VAL "2250"+N*VAL "50" 2003 NEXT N 2004 FOR N=A TO VAL "29": IF N$( TO F)=T$(N,T(N) TO T(N)+INT PI) THEN GO TO VAL "2007" 2005 NEXT N 2006 PRINT G$: RETURN 2007 IF Z(N)<>O THEN PRINT "YOU HAVE NO ";N$: RETURN 2008 GO TO N*TE+VAL "2E3" 2010 PRINT "O.K.": IF Z>VAL "7219" AND ZVAL "7645" AND Z<>VAL "7650" THEN GO TO VAL "2006" 2083 IF O(SI) THEN PRINT "THE DOOR ISN'T LOCKED.": RETURN 2085 PRINT "THE DOOR IS NOW UNLOCKED.": LET O(SI)=A: RETURN 2091 IF NM=A AND X=TW THEN LET T$(FT)="FLOUR COVERED ZALROG SKIN": LET T(FT)=VAL "22": LET MAC=SI: LET Z(NI)=-SGN PI: PRINT "THE ZALROG IS NOW COVERED IN"'"FLOUR AND IS EASILY VISIBLE.": LET M$="FLOUR COVERED ZALROG": LET A(FT)=SI: RETURN 2093 PRINT G$: RETURN 2100 IF Z=VAL "9315" THEN LET Z=VAL "8575": PRINT "O.K.": RETURN 2102 IF Z=VAL "8575" THEN LET Z=VAL "9315": PRINT "O.K.": RETURN 2107 GO TO VAL "2093" 2110 IF T(N)=VAL "23" OR (Z<>VAL "8270" AND Z<>VAL "7205" AND Z<>VAL "7215") THEN GO TO VAL "2006" 2112 IF Z=VAL "8270" THEN PRINT "YOU CAN'T,THE CHASM IS TOO WIDE.": RETURN 2115 PRINT "A LARGE PLANK NOW SPANS THE"'"CREVASSE.": LET O(EL)=A: LET Z(EL)=-SGN PI: RETURN 2120 IF Z<>VAL "8735" OR O(TW) THEN PRINT G$: RETURN 2125 PRINT "THE SHARKS ARE NOW AS CALM AS DOLPHINS.": LET O(N)=A: RETURN 2130 LET WA=WA-A: PRINT "A GREY BEAM DARTS FORTH FROM THEWAND." 2131 GO SUB G 2132 IF NOT NM THEN PRINT "IT STRIKES THE WALL WITH NO"'"EFFECT.": GO TO VAL "2138" 2133 LET Z$="THE ": IF NM>A THEN LET Z$="A " 2134 IF X=TT THEN LET Z$=" " 2135 IF X=EL OR X=Y OR X=TT AND RND>A/TU THEN PRINT "IT STRIKES ";Z$;M$;" WITH NO"'"EFFECT.": GO TO VAL "2138" 2136 LET NM=NM-A: PRINT "IN A BLUE FLASH ";Z$;M$'"IS TURNED TO DUST." 2138 IF NOT WA THEN LET Z(TT)=TU: PRINT '"THE WAND DISINTEGRATES LEAVING ONLY FINE WHITE DUST.": RETURN 2139 RETURN 2140 IF Z(NI)=-A THEN PRINT "YOU ARE NOW WEARING A FLOUR"'"COVERED ZALROG SKIN.": RETURN 2141 PRINT "O.K. YOU ARE NOW INVISIBLE.": LET O(VAL "16")=A: RETURN 2150 PRINT "HOW ?": RETURN 2169 GO TO VAL "2190" 2170 PRINT "YOU ALREADY ARE.": RETURN 2190 PRINT "O.K.": RETURN 2289 PRINT "TO DO WHAT ?": RETURN 2305 IF C<>A THEN PRINT "YOU ARE A ";C$;" NOT A WIZARD,","YOU CAN'T USE THE ";N$,"SPELL": RETURN 2310 IF MF THEN PAPER TU: CLS : PAUSE F*F: PAPER SE: CLS : PRINT "YOU HAVE KILLED THE RATS.": LET O(EI)=F: RETURN 2332 INK TU: PAPER TU: CLS : GO SUB FI: INK O: PAPER SE 2335 IF SCREEN$ (O,O)=" " THEN CLS : PRINT "YOUR FIREBALL STRIKES THE WALL RIGHT NEXT TO YOU, IN A BLINDINGFLASH YOU ARE INSTANTLY KILLED.": LET HP=O: RETURN 2338 CLS : PRINT AT TU,O 2340 IF NOT NM THEN PRINT "YOUR FIREBALL HAS HAD NO EFFECT.": RETURN 2341 IF X=TT AND RND>VAL ".3" THEN PRINT "VELNOR STEPS OUT FROM THE MIDST OF THE FLAMES, APPARENTLY"'"UNHARMED.": RETURN 2342 IF X=TT THEN LET NM=O: PRINT "YOUR FIREBALL HAS KILLED VELNOR.": RETURN 2343 LET I$="THE": LET S$="": IF NM>A THEN LET I$=STR$ (NM): LET S$="S" 2344 IF X>=TU AND X<=F THEN LET O(4)=TU 2345 PRINT "YOUR FIREBALL HAS KILLED ";I$,M$;S$: FOR N=A TO NM: GO SUB VAL "4100": NEXT N: RETURN 2355 IF C<>A THEN GO TO VAL "2305" 2360 IF MA THEN GO TO VAL "2305" 2410 IF MNI AND XA/TU OR NOT NM THEN GO TO VAL "2440" 2425 LET Z$="ONE ": IF NM=SGN PI THEN LET Z$="THE " 2427 IF X=NI+F THEN LET Z$="": IF RND>F/TE THEN GO TO VAL "2441" 2430 PRINT Z$;M$;" HAS BEEN": PRINT "POLYMORPHED INTO A SMALL FROG. IT HOPS AWAY.": LET NM=NM-A: RETURN 2441 PRINT "THE SPELL FAILS.": RETURN 2455 IF C<>TU THEN PRINT "YOU'RE A ";C$;" NOT A PRIEST","YOU CAN'T USE THE ";N$,"SPELL.": RETURN 2460 IF MTU THEN GO TO VAL "2455" 2510 IF MTU THEN GO TO VAL "2455" 2560 IF MO THEN LET NM=O: PRINT "WITH A FLASH AND PIERCING SCREEMTHE VAMPIRE IS DAMNED TO THE"'"OUTER PLANE OF HADES.": LET O(VAL "18")=O: RETURN 2595 PRINT "NOTHING HAPPENS.": RETURN 2855 PRINT "FEED ";N$;" WITH WHAT ?" 2860 INPUT "WHAT FOOD ? "; LINE I$: CLS : LET V$=I$+" " 2865 FOR N=A TO PO 2870 IF Z(N)=O AND V$( TO INT PI)=T$(N,T(N) TO T(N)+TU) THEN RETURN 2875 NEXT N 2880 PRINT "YOU HAVE NO ";I$;".": RETURN 2901 LET n$=N$+" ": LET N$=N$( TO F) 2903 IF N$<>"TWIG" AND N$<>"STRA" AND N$<>"GROU" AND N$<>"FLOO" THEN GO TO VAL "2907" 2905 IF Z=VAL "8575" THEN PRINT "YOU HAVE DISCOVERED A WELL"'"CONCEALED HOLE IN THE GROUND OPPOSITE THE SOUTH EXIT.": LET O(VAL "20")=SGN PI: RETURN 2907 IF GO THEN IF (N$="LEAD" OR N$="CHIE" OR N$="GOBL") AND (Z=Z(GO) OR NOT Z(GO)) AND Z(EI)=-A THEN LET Z(EI)=Z: PRINT "YOU HAVE FOUND ";T$(EI): RETURN 2935 IF N$<>"BRID" THEN GO TO VAL "2939" 2936 IF Z=VAL "7205" OR Z=VAL "7215" THEN PRINT "THE BRIDGE IS AN ILLUSION.": RETURN 2937 IF O(TE)=A AND (Z=VAL "8270" OR Z=VAL "8280") THEN PRINT "THE BRIDGE IS PERFECTLY SAFE.": RETURN 2938 PRINT "I SEE NO BRIDGE.": RETURN 2939 IF N$( TO INT PI)<>"WEB" AND N$<>"WALL" AND N$<>"ENTR" AND N$<>"PASS" AND N$<>"CAVE" AND N$<>"ROOF" THEN GO TO VAL "2960" 2940 IF (Z=VAL "7030" OR Z=VAL "7220") AND M(A) THEN PRINT "A GIANT SPIDER IS HANGING FROM THE ROOF JUST WAITING FOR A VICTIM.": RETURN 2955 IF Z=VAL "7655" THEN PRINT "THE TRAP IS A MERE ILLUSION.": RETURN 2957 IF Z=VAL "7725" THEN PRINT "THE SOUTH WALL IS AN ILLUSION.": RETURN 2958 IF Z=VAL "7630" THEN PRINT "THE NORTH WALL IS AN ILLUSION.": RETURN 2960 IF Z=VAL "7875" AND N$="MATT" AND Z(VAL "24")=-A THEN PRINT "YOU HAVE FOUND SOME RUBIES WHICHWERE CONCEALED IN A SLIT IN THE MATTRESS.": LET Z(VAL "24")=Z: RETURN 2965 IF Z=VAL "8735" AND N$="POOL" THEN PRINT "AN UNDERWATER PASSAGE LEADS EAST": RETURN 2970 IF (N$="MOUN" OR N$="FUNG") AND Z=VAL "7470" AND Z(VAL "23")=-A THEN PRINT "AMONGST THE VILE PILE OF ORGANICMATTER YOU FIND A PLATINUM"'"PENDANT AND ";T$(VAL "27"): LET Z(VAL "27")=Z: LET Z(VAL "23")=Z: RETURN 2975 IF N$="RAGS" AND (Z=VAL "7190" OR Z=VAL "7195") AND Z(FV)=-A THEN LET Z(FV)=Z: PRINT "YOU HAVE FOUND "'T$(FV): RETURN 2980 IF N$="SARC" AND Z=VAL "8785" THEN PRINT "YOU HAVE FOUND A PAINTING HIDDENIN A FALSE BACK OF ONE OF THE SARCOPHAGI.": LET Z(VAL "22")=Z: RETURN 2985 IF Z=VAL "7715" THEN PRINT "THE WRITING IS TOO FAR AWAY TO BE SEEN CLEARLY.": RETURN 2995 PRINT "YOU FIND NOTHING UNUSUAL.": RETURN 3110 CLS : PRINT AT FV,O;"WHICH CLASS DO YOU WISH TO BE ?" 3120 PRINT AT TE,TU;"CLASSES :";AT TE,J;"WARRIOR";AT TT,J;"WIZARD";AT VAL "16",J;"PRIEST" 3130 INPUT "CLASS ? "; LINE C$ 3140 IF C$="WARRIOR" THEN LET C=O: LET IHP=VAL "60": LET ABO=F: LET IAC=INT PI: LET HE=INT PI: LET M=O: GO TO VAL "3180" 3150 IF C$="WIZARD" THEN LET C=A: LET ABO=INT PI: LET M=TE: LET IHP=VAL "40": LET IAC=SI: GO TO VAL "3180" 3160 IF C$="PRIEST" THEN LET C=TU: LET ABO=C: LET M=TE: LET IHP=VAL "50": LET IAC=FV: GO TO VAL "3180" 3170 PRINT AT VAL "19",O;"SORRY, I DON'T UNDERSTAND",C$,TAB TE: GO TO VAL "3130" 3180 CLS : LET HP=IHP: PRINT AT INT PI,O;"YOU ARE NOW A ";C$;"." 3190 PRINT ''" YOU ARRIVE AT THE CAVE"'"ENTRANCE CARRYING A TORCH, A"'"TINDERBOX AND A CLUB.": RETURN 3810 PRINT "YOU HEAR FOOTSTEPS AND A HISSINGSOUND FROM BEHIND YOU.": INPUT "WHAT WILL YOU DO NOW ?"' LINE N$: CLS : PRINT N$: PRINT AT TU,O 3815 IF LEN N$>TU THEN IF N$( TO INT PI)="INV" THEN GO SUB VAL "440": GO TO VAL "3810" 3820 IF LEN N$>=F THEN IF N$( TO F)="TELE" OR N$="USE TELEPORT" THEN GO SUB VAL "2350": IF Z=VAL "7030" THEN GO SUB Z: GO SUB VAL "555": RETURN 3830 IF N$<>"USE MIRROR" THEN GO TO VAL "3860" 3840 IF NOT Z(SI) THEN PRINT "YOU HAVE REFLECTED BACK MEDUSA'SGAZE AND TURNED HER TO STONE."'': LET O(TU)=A: GO TO Z 3850 PRINT "YOU HAVE NO MIRROR." 3860 PRINT "IT WAS MEDUSA, HER GAZE HAS"'"TURNED YOU TO STONE.": LET HP=O: RETURN 4005 FOR N=A TO INT PI: BEEP A/INT PI,O: BEEP A/INT PI,INT PI: BEEP A/INT PI,EI: NEXT N: BEEP A/TU,O 4010 LET MAC=A(X): LET MHP=H(X): LET DMHP=H(X): LET NM=M(X): LET M(X)=O: LET Z3=y(x): LET Z2=Z3 4015 IF X=Y THEN LET Z3=Z: LET Z2=Z 4020 LET Z$="ARE ": LET N$="S": LET V$="THEY": IF NM=A THEN LET Z$="IS ": LET N$="": LET V$="IT" 4025 IF X>TE OR XF/FV THEN LET Z$="SLIGHTLY" 4060 IF L=O THEN PRINT '"YOUR LIFE ENERGY HAS BEEN"'"SEVERELY DRAINED.": RETURN 4348 PRINT "YOUR BODY HAS BEEN DESTROYED ANDYOUR SOUL DAMNED FOR EVERLASTINGTORMENT.": RETURN 4400 IF O(F)<>TU AND (Z=VAL "7360" OR Z=VAL "7645") THEN LET O(F)=TU: GO TO MO 4401 RETURN 4510 LET O(F)=TU: PRINT "HE CHALLENGES YOU - FRIEND OR FOE ?" 4520 INPUT "REPLY (FRIEND OR FOE?)"' LINE I$: CLS 4530 IF I$="FOE" THEN PRINT "THE GUARD ATTACKS.": GO SUB MO: RETURN 4540 IF I$<>"FRIEND" THEN PRINT "PARDON ?": GO TO VAL "4520" 4550 PRINT "ARE YOU A FRIEND OF THE WIZARD, VELNOR ?" 4560 INPUT "YES OR NO ?"' LINE I$: CLS 4570 IF I$="Y" OR I$="YES" THEN PRINT "GOBLIN GUARD - I THOUGHT SO ! WE HATE THAT VILE DEMON AND ALL HIS FRIENDS !"'"THE GOBLIN ATTACKS.": GO SUB MO: RETURN 4580 IF I$<>"N" AND I$<>"NO" THEN PRINT "PARDON ?": GO TO VAL "4560" 4590 PRINT "THE GOBLIN GUARD TAKES YOU NORTHTO HIS LEADER AND THEN RETURNS TO HIS POST."'''"GOBLIN LEADER - IT'S NOT OFTEN WE GET VISITORS, WOULD YOU LIKE TO STAY FOR LUNCH ?" 4595 LET O(F)=INT PI 4600 INPUT "YES OR NO ?"' LINE I$: CLS 4610 IF I$="NO" THEN PRINT "GOBLIN CHIEF - OH! THERE'S NOT MUCH POINT IN YOU STAYING THEN. HE TAKES YOU BACK TO THE GUARD ROOM.": LET Z=VAL "7360": RETURN 4620 IF I$<>"YES" THEN PRINT "PARDON ?": GO TO VAL "4600" 4630 PRINT "THE GOBLINS GIVE A HUGE FEAST INYOUR HONOUR, AS AN ENEMY OF"'"VELNOR."'" DURING THE FEAST YOU HEAR THAT IT'S RUMOURED THAT FOR VELNOR'S SERVICES TO EVIL, THE DEMONS"'"OFFERED TO MAKE HIM ANY BEAST OFHIS CHOICE TO GUARD HIM. IT'S"'"SAID THAT HE SCOURED THE BOOKS OF MYTH AND LEGEND FOR THE"'"PERFECT BEAST, BUT, NO ONE KNOWSWHAT HE CHOSE." 4640 PRINT " THE CHIEF TELLS YOU THAT THE"'"LAST ADVENTURERS TO VISIT THE CAVES THOUGHT THAT THE KEY TO VELNOR'S LAIR WAS TO THE EAST. THEY LEFT THAT WAY,BUT, TO THIS DAY THEY HAVE NOT RETURNED." 4650 PRINT '"DO YOU WISH TO LEAVE EAST OR WEST ?": INPUT "E OR W ? "; LINE V$ 4655 IF v$="" THEN GO TO VAL "4680" 4660 IF V$(A)="E" THEN LET Z=VAL "7645": GO TO VAL "4690" 4670 IF V$(A)="W" THEN LET Z=VAL "7360": GO TO VAL "4690" 4680 PRINT "PARDON ?": GO TO VAL "4650" 4690 CLS : PRINT AT TU,O 4695 IF NOT O(SI) AND Z=VAL "7645" THEN LET O(SI)=A: PRINT "THE CHIEF COMMENTS THAT YOU ARE VERY BRAVE. HE SAYS HE'D BE"'"PETRIFIED GOING THROUGH THERE ! HE UNLOCKS THE DOOR FOR YOU."'' 4700 IF Z(VAL "18")=A THEN LET Z(VAL "18")=Z: PRINT "THE CHIEF WISHES YOU LUCK AND LEAVES YOU A SHIELD."'' 4705 RETURN 4720 IF RND>A/TU AND NOT Z(VAL "13") THEN PRINT "GOBLIN CHIEF - I SEE YOU'VE"'"FOUND A WAND OF DISINTEGRATION, IT'LL BE USEFUL, BUT,BEWARE,THE INVISIBLE ZALROG IS IMMUNE TO MAGIC !": GO TO NN 4730 IF RND>A/TU AND NOT Z(SE) THEN PRINT "GOBLIN CHIEF - THATS A LARGE"'"BATHTUB YOU'VE GOT, YOU COULD ALMOST USE IT AS A BOAT.": GO TO NN 4735 IF HP<>IHP AND RND>A/TU THEN PRINT "GOBLIN CHIEF - I SEE THAT YOU HAVE BEEN INJURED, I THINK THEREIS A MAGIC POOL SOMEWHERE THAT HEALS ALL WOUNDS.": GO TO NN 4740 PRINT "GOBLIN LEADER - YOU'D BETTER GETA MOVE ON.": GO TO NN 4810 IF O(FT)=A THEN LET Z2=Z : PRINT '"TWO CLUB WIELDING GIANTS ARE"'"CHARGING TOWARDS YOU FROM THE NORTH.": LET O(VAL "14")=TU: RETURN 4820 IF Z=VAL "8270" AND NOT O(VAL "10") THEN PRINT " THE GIANTS HAVE FALLEN TO THEIRDEATH INTO THE FIREY ABYSS.": LET O(VAL "14")=-SGN PI: RETURN 4840 IF Z>=Z2 THEN PRINT " YOU HAVE BEEN CAUGHT AND BEATEN TO AN AMORPHOUS PULP.": LET HP=O: RETURN 4845 IF Z=VAL "8270" THEN PRINT '"THE TWO HUGE CLUB WIELDING"'"GIANTS ARE NOW CROSSING THE"'"BRIDGE CLOSE BEHIND YOU.": RETURN 4850 PRINT '"YOU ARE BEING CHASED BY TWO"'"NASTY CLUB WIELDING GIANTS.": LET Z2=Z: RETURN 5160 IF NOT CH AND RNDVAL ".8" THEN LET Z=Z1: LET Z2=Z: LET Z3=Z: PRINT "YOU HAVE BEEN CAUGHT.": PRINT : LET CH=O: RETURN 5180 LET P=X: INK SE: PRINT AT F,O: GO SUB Z: INK O: PRINT AT TU,O: IF SCREEN$ (FV,O)=" " THEN LET CH=O: RETURN 5190 IF P<>X THEN LET MON=A: PRINT "YOU HAVE RAN STRAIGHT INTO ";"A" AND NM=A;"SOME" AND NM<>A';M$;"S" AND NM<>A;". ";"THEY" AND NM>A;"IT" AND NM=A;" HAD SURPRISE"'"AND YOU DIDN'T STAND A CHANCE.": LET HP=O: RETURN 5200 IF CH AND Z=Z3 THEN PRINT "YOU HAVE RAN STRAIGHT INTO YOUR PURSUER. YOU DIDN'T STAND A CHANCE.": LET HP=O: LET MON=A: RETURN 5205 IF (Z=VAL "7650" AND X=EI) OR Z=VAL "7030" OR Z<>Y(X) AND RND>F/FV THEN PRINT "YOU HAVE ESCAPED. ": LET M(X)=NM: LET NM=O: LET CH=O: RETURN 5210 LET Z3=Z3: LET Z2=Z 5215 IF X=VAL "13" THEN PRINT "YOU ARE BEING PURSUED BY VELNOR.": RETURN 5220 LET CH=A: PRINT "YOU ARE BEING PURSUED BY ";NM'M$;"S" AND NM<>A: RETURN 5400 IF RND>VAL ".8" THEN PRINT '"YOU HEAR FOOTSTEPS BEHIND YOU.": LET X=TW: GO SUB MO: LET M$=("INVISIBLE" AND Z(NI)>=O)+("FLOUR COVERED" AND Z(NI)O OR Z=VAL "8330" THEN PRINT "I DON'T THINK THAT WAS A GOOD IDEA !": RETURN 5504 IF O(F)=INT PI AND (Z=VAL "7360" OR Z=VAL "7645") THEN GO SUB MO: LET O(F)=TU 5505 IF NM=O THEN PRINT "I SEE NOTHING TO FIGHT.": RETURN 5506 LET AB=ABO: LET DAM=O: IF NOT Z(VAL "19") THEN LET DAM=FV 5508 IF NOT Z(Y) THEN LET DAM=SI 5509 IF NOT Z(VAL "16") THEN LET AB=ABO+TU: LET DAM=TE 5510 IF NOT C THEN LET DAM=DAM+TU 5515 PRINT : IF RND*VAL "20">MAC+AB+SI THEN PRINT INK A;"YOU MISSED"': RETURN 5520 LET DMHP=DMHP-RND*DAM 5530 LET V$="ONE ": IF NM=A THEN LET V$="THE " 5535 IF X=TT THEN LET V$="" 5540 IF DMHPZ AND X=TT THEN LET Z2=Z: LET Z3=Z 5702 IF Z2<>Z THEN PRINT "YOU HAVE ESCAPED.": LET M(X)=NM: LET NM=O: LET CH=O: RETURN 5705 PRINT : INK TU: IF X=TT THEN GO SUB VAL "4300": RETURN 5715 LET AC=IAC-(F AND O(VAL "16"))-(A AND NOT Z(VAL "18"))-(INT PI AND NOT Z(VAL "17")) 5716 IF X<>EL THEN GO TO VAL "5720" 5717 IF O(VAL "18")=A THEN RETURN 5718 IF RND>A/TU THEN PRINT "THE VAMPIRE ATTEMPTS TO CHARM YOU BUT FAILS.": RETURN 5719 PRINT "YOU HAVE NOW FALLEN UNDER THE INFLUENCE OF THE VAMPIRES CHARM SPELL. HE WILL DRAIN YOUR BLOOD AT HIS LEISURE.": LET HP=O: RETURN 5720 FOR N=A TO NM 5730 IF RND*F*FV>MHP/TE+INT PI+AC THEN GO TO VAL "5790" 5735 IF X=A AND RND>F/SI THEN LET HP=O: PRINT "YOU HAVE BEEN INJECTED WITH A FATAL DOSE OF POISON.": RETURN 5740 PRINT : LET HP=HP-RND*EI 5750 LET L=HP/IHP: GO SUB VAL "4040" 5760 IF A+L*SIO THEN GO TO VAL "5760" 5770 IF NOT K THEN PRINT "YOU HAVE BEEN KILLED.": RETURN 5780 FOR I=TE TO VAL "-20" STEP -FV: BEEP A/TE,I: NEXT I: PRINT "YOU HAVE BEEN HIT AND ";Z$: PRINT "WOUNDED" 5790 NEXT N 5794 IF X=TE AND NM=TU THEN PRINT "YOU ARE IN COMBAT WITH TWO"'"MUMMIES.": RETURN 5795 PRINT : PRINT "YOU ARE IN COMBAT WITH ": PRINT NM;" ";M$;"S" AND NM>A;".": RETURN 6000 LET Z=A: OVER O: PAPER SE: INK O: RANDOMIZE : BORDER SE: FLASH O: BRIGHT O 6001 CLS : PRINT AT F,FV; INK TU;"VELNOR'S LAIR";AT EI,SI;"Written by";AT TE,Y;"DEREK BREWSTER.": PRINT AT Y+INT PI,F;"PLEASE WAIT A MOMENT.";AT VAL "20",FV; INK A;"* 1983 QUICKSILVA" 6003 LET B=O: POKE VAL "23658",EI 6005 LET A(Y)=-TE: LET T=O: LET FI=O: LET MON=O: LET WA=INT PI: LET X$="": FOR N=A TO FV: LET X$=X$+CHR$ INT (RND*VAL "26"+CODE "A"): NEXT N 6008 LET MO=VAL "4E3": 6010 DIM O(VAL "23") 6030 FOR N=A TO TT: LET M(N)=PEEK (VAL "23296"+N): NEXT N: FOR N=A TO VAL "30": LET Z(N)=W(N): NEXT N: LET T(TU)=INT PI: LET T(EL)=VAL "23": LET T(FT)=VAL "22": LET T$(TU)=A$(A): LET T$(EL)=A$(INT PI): LET T$(FT)=A$(FV) 6031 LET X=O: LET CH=O: LET PO=VAL "30": LET K=SE: LET NM=O: LET AB=F: RETURN 6080 PRINT INK TU;"CONGRATULATIONS ON THE"'"SUCCESSFUL COMPLETION OF YOUR"'"QUEST." 6105 GO SUB VAL "6200" 6108 IF HP<=O THEN FOR N=A TO TU: BEEP A,O: BEEP A,TU: BEEP A/TU,INT PI: BEEP A/TU,TU: BEEP A,O: NEXT N 6110 PRINT #O;"PLAY AGAIN (Y OR N)?" 6120 IF INKEY$="Y" THEN GO TO 1 6130 IF INKEY$="N" THEN NEW 6140 GO TO VAL "6120" 6210 LET SC=O: FOR N=TU TO VAL "22": IF O(N) THEN LET SC=SC+F 6215 NEXT N 6220 FOR N=A TO VAL "28": IF Z(N)<>W(N) THEN LET SC=SC+TU 6225 NEXT N 6230 FOR N=SGN PI TO TT: IF NOT M(N) THEN LET SC=SC+INT PI 6235 NEXT N 6240 LET SC=SC+(VAL "20" AND O(F)=A)+(VAL "30" AND NOT M(TT))-(VAL "20" AND HP<=O): LET SC=SC AND SC>O 6250 PRINT INK TU'"YOU SCORED ";SC;" OUT OF A"'"POSSIBLE 200.": RETURN 6310 IF Z<=VAL "7030" OR ((Z=Z(TU) OR NOT Z(TU)) AND T(TU)<>INT PI) OR NOT Z(VAL "16") OR Z=Z(VAL "16") THEN GO TO VAL "6330" 6320 PAPER O: PRINT INK SE;AT O,O;"IT IS NOW PITCH BLACK, UNLESS YOU GET SOME LIGHT YOU ARE GOINGTO GET INTO TROUBLE.": RETURN 6330 IF ATTR (TU,TU)=O THEN PAPER SE: RANDOMIZE USR VAL "23310" 6340 RETURN 6500 LET BORD=SE: POKE VAL "23658",EI: GO SUB VAL "6035": GO TO VAL "80" 6935 PRINT "YOU DON'T WANT TO GO THAT WAY. IT'S THE WAY BACK TO THE VILLAGE."'': LET Z=Z1: GO TO Z 7029 RETURN 7030 PRINT F$;"FOOT OF MT ELK; TO YOUR NORTH A NARROW PASSAGE LEADS INTO THE MOUNTAIN SIDE." 7031 IF (z(TU) OR t(TU)=INT PI) AND Z(VAL "17") THEN PRINT "IT IS TOO DARK TO SEE ANYTHING. TO CONTINUE YOU HAD BETTER GET SOME LIGHT.": RETURN 7032 IF M(A) THEN PRINT "THE PASSAGE-WAY IS"'"CRISS-CROSSED AND BLOCKED WITH THICK YELLOW WEBS." 7124 RETURN 7125 GO SUB S: IF NOT NM AND M(A) THEN LET X=A: LET M$="GIANT SPIDER": PRINT '"YOU HAVE BEEN POUNCED UPON BY A",M$: GO TO MO 7189 RETURN 7190 PRINT F$;"WEST END OF A"'"DANK ACRID SMELLING CAVE.THERE ARE MANY BONES AND RAGS"'"SCATTERED ABOUT THE GROUND."'"EXIT N AND ";W$;"E." 7191 IF Z(VAL "26")=Z THEN LET N=VAL "26": GO TO VAL "1734" 7192 IF NOT O(EI) THEN LET B=B+A/TE: PRINT '"YOU HAVE BEEN ATTACKED AND"'"BITTEN BY VICIOUS HUNGRY RATS": 7194 RETURN 7195 PRINT F$;"EAST END OF A"'"DANK ACRID SMELLING CAVE.THERE ARE MANY BONES AND RAGS"'"SCATTERED ABOUT THE GROUND."'"EXIT E AND ";W$;"W." 7196 IF O(EI)=A THEN PRINT "THERE ARE A LOT OF CONTENTED"'"LOOKING RATS HERE.": RETURN 7197 IF Z(TS)=Z THEN LET N=TS: GO TO VAL "1734" 7198 IF NOT O(EI) THEN PRINT "MANY HUNGRY VICIOUS LOOKING RATSARE EYEING YOU INTENTLY.": RETURN 7199 RETURN 7200 GO TO E 7204 RETURN 7205 PRINT F$;"WEST END OF THE CAVERN OF CRACKS. A SMALL STONE BRIDGE SPANS A DEEP CREVASSE TO THE EAST. ";"A WOODEN PLANK ALSO SPANS THE CREVASSE. " AND O(EL)=A;"EXIT W." 7214 RETURN 7215 PRINT B$;"A LONG DUSTY CAVERN OF CRACKS. A DEEP CREVASSE RUNS ACROSS THE CENTRE OF THE CAVERN AND IS SPANNED BY A SMALL STONE BRIDGE. ";"A 25FT PLANK ALSO SPANS THE CREVASSE. " AND O(EL)=A;"EXIT E." 7219 RETURN 7220 PRINT B$;"A LARGE CAVERN WITH WALLS COVERED IN GREEN SLIME. THE FLOOR IS VERY SLIPPY. EXITS N,S,E AND W." 7224 RETURN 7245 PRINT "YOU ARE FIGHTING YOUR WAY","THROUGH THICK FUNGI GROWTHS."'"THE AIR IS FILLED WITH FUNGI"'"SPORES";: IF Z<>VAL "7225" AND (NOT O(TT) OR Z(A)) AND RND>VAL ".8" THEN LET HP=O: PRINT "; ON WHICH YOU HAVE"'"CHOKED TO DEATH.": RETURN 7247 IF Z(A) OR NOT O(TT) THEN PRINT ", ALMOST TO THE POINT"'"OF CHOKEING YOU.": RETURN 7248 PRINT "." 7284 RETURN 7285 GO SUB S 7286 IF M(FV) THEN PRINT '"YOU CAN SEE A ORC TO THE NORTH." 7314 RETURN 7315 GO TO S 7320 RETURN 7337 GO TO VAL "7245" 7342 GO SUB VAL "7245": PRINT "EXIT E." 7344 RETURN 7345 PRINT D$;"CRAWLING THROUGH A"'"NARROW MUDDY LOW ROOFED TUNNEL."'"THERE IS A GOBLIN IN THE CAVE TOTHE EAST." AND M(TU) 7349 RETURN 7350 LET Z=VAL "7360": GO TO Z 7354 RETURN 7355 LET Z=VAL "7345": GO TO Z 7359 RETURN 7360 PRINT B$;"THE GOBLINS GUARD ROOM. EXITS N AND W.": IF NOT m(TU) THEN RETURN 7361 PRINT "THERE IS A GOBLIN GUARD HERE." 7363 LET X=TU: LET M$="GOBLIN GUARD": IF NOT O(F) THEN LET O(F)=SGN PI 7364 IF FI=Y(X) OR O(F)=TU THEN PRINT "HE RUSHES TO ATTACK.": GO SUB MO: RETURN 7369 RETURN 7370 PRINT "THIS EMPTY CAVE HOLDS NOTHING BUT THE MEPHITIC STENCH OF THE AREA. IT MAKES YOU FEEL ILL."'"EXIT N." 7379 RETURN 7380 PRINT B$;"THE ORC GUARD ROOM."'"EXITS N AND S." 7381 IF NOT NM AND M(FV) THEN LET M$="ORC GUARD": LET X=FV: PRINT "A LARGE ";M$;" WIELDING A GLOWING SWORD IS RUSHING AT YOU.": GO TO MO 7409 RETURN 7410 GO TO S 7454 RETURN 7455 GO TO S 7464 RETURN 7465 PRINT B$;"A DIRTY SLIMY CAVE, THE AIR IS FILLED WITH A PUTRID SMELL OF DECAYING FLESH.EXITS N,S AND E." 7469 RETURN 7470 IF Z1=VAL "7475" THEN RETURN 7471 PRINT F$;"SOURCE OF THE"'"NAUSEATING STENCH. BONES AND"'"DECAYING FLESH LIE EVERYWHERE. A LARGE MOUND OF FUNGI DOMINATESONE CORNER OF THE CAVE. EXIT W." 7472 IF NOT NM AND M(EI) THEN LET M$="TROLL": LET X=EI: GO TO MO 7474 RETURN 7475 IF Z1=VAL "7470" THEN RETURN 7476 GO TO S 7504 RETURN 7505 PRINT B$;"THE SOUTH OF A LONG HIGH ROOFED CAVERN. THERE ARE PRIMITIVE DRAWINGS ON THE WALLS AND SCORCH MARKS ON THE FLOOR. EXIT S. ";W$;"N." 7544 RETURN 7545 PRINT B$;"THE GOBLIN CHIEF'S ROOM. EXIT E.": IF Z=VAL "7550" THEN LET O(F)=TU 7546 IF O(F)=INT PI THEN GO SUB VAL "4720": GO TO Z 7547 IF M(F) THEN LET M$="GOBLIN CHIEF": PRINT "THE ";M$;" IS HERE.": LET X=F: IF O(F)=TU OR FI=Y(X) THEN PRINT "HE RUSHES TO ATTACK.": GO SUB MO: RETURN 7549 RETURN 7550 PRINT F$;"END OF A N/S PASSAGE. THERE ARE ROOMS TO THE NORTH AND WEST." 7559 RETURN 7560 GO SUB S: PRINT "AN ACRID SMELL DRIFTS UP FROM THE SOUTH." 7569 RETURN 7570 PRINT F$;"END OF A N/S PASSAGE. THERE ARE CAVES TO THE NORTH AND EAST." 7574 RETURN 7575 PRINT B$;"THE ORC CHIEF'S ROOM.THE PLACE IS MORBIDLY DECORATED AND A GHASTLY TAPESTRY ADORNS THE EAST WALL. EXIT W." 7576 IF NOT NM AND M(SE) THEN LET M$="ORC CHIEF": LET X=SE: GO TO VAL "4E3" 7579 RETURN 7580 IF NOT O(NI) THEN RETURN 7581 PRINT B$;"A SMALL SECRET ROOM BELONGING TO THE ORC CHIEF. EXITW." 7599 RETURN 7600 PRINT B$;"THE CENTRE OF A HIGH ROOFED CAVERN. IT EXTENDS N AND S FROM HERE." 7629 RETURN 7630 PRINT B$;"A MAGICAL ROOM OF GLISTENING CRYSTAL WALLS. A SPARKLING POOL OF ENCHANTED WATER ADORNS THE CENTRE OF THE ROOM. NO EXIT CAN BE SEEN." 7644 RETURN 7645 PRINT B$;"THE GOBLINS LAIR. A LARGE OAK DOOR TO THE EAST IS"'"CLOSED." AND O(SI)A;"IS " AND M(INT PI)=A;M(INT PI);" ";M$;"S" AND M(INT PI)<>A;" HERE.": IF O(F)=TU OR FI=Y(X) THEN GO SUB MO: PRINT "THEY RUSH TO ATTACK." 7649 RETURN 7650 IF Z1=VAL "7645" AND O(VAL "6")<>TU THEN PRINT "YOU CAN'T, THE DOOR IS CLOSED.": LET Z=Z1: PRINT : GO TO Z 7652 GO SUB E: PRINT "TO THE WEST IS THE GOBLIN LAIR.": RETURN 7655 PRINT "PASSAGES GO SOUTH AND WEST FROM HERE. TO THE EAST IS A SMALL"'"WHITE WALLED CAVE. A BED OF"'"SPIKES HANGS FROM THE ROOF AND MANY BONES ARE SCATTERED ABOUT THE BLOODSTAINED FLOOR.": RETURN 7660 IF Z1=VAL "7665" THEN RETURN 7661 PRINT B$;"A CAVE OF ILLUSIONS. IMAGES OF SPIKES AND BONES GIVE THE IMPRESSION OF AN ELABORATE TRAP, BUT NONE OF IT IS REAL."'U$;" AND W.": RETURN 7665 IF Z1=VAL "7660" THEN RETURN 7666 PRINT B$;"THE ORCS LAIR,SEVERALFIRES ARE BURNING AND THE ROOM IS FILLED WITH A FOUL STENCH. EXIT S." 7667 IF NOT NM AND M(SI) THEN LET M$="ORC": LET X=SI: GO TO MO 7694 RETURN 7695 PRINT B$;"THE NORTH OF THE HIGHROOFED CAVERN. EXITS N AND E."'W$;"S.": RETURN 7700 PRINT F$;"WEST END OF A GLITTERING DOMED CHAMBER OF"'"STALAGMITES. EXIT W."'W$;"E.": RETURN 7705 PRINT F$;"EAST END OF THE DOMED CHAMBER. EXIT E."'W$;"W.": RETURN 7710 GO TO E 7715 GO SUB E 7716 PRINT "THE PASSAGE IS TOO NARROW TO"'"CONTINUE ANY FURTHER TO THE"'"EAST. THROUGH THE CRACK YOU CAN VAGUELY SEE SOMETHING WRITTEN ON THE ADJACENT WALL." 7724 RETURN 7725 PRINT B$;"A SMALL SMOOTH WALLED CAVERN.'";X$;"' IS NEATLY PAINTED ON THE WALL HERE.EXIT N." 7754 RETURN 7755 IF Z1=VAL "7850" AND O(INT PI) THEN PRINT "YOU CAN'T, THE DOOR IS CLOSED AND LOCKED.": LET Z=Z1: RETURN 7756 GO SUB S: LET Z$="NORTH": GO TO VAL "7852" 7789 RETURN 7790 GO TO S 7819 RETURN 7820 PRINT B$;"A SMALL DUSTY ROOM. EXIT S." 7839 RETURN 7840 PRINT "YOU ARE IN A SMALL DUG-OUT CAVE.THERE IS THE BODY OF A WIZARD"'"HERE AND THE NAME 'TIAMAT' IS"'"SCRAWLED ON THE WALL. EXIT E.": RETURN 7845 GO TO E 7850 IF Z1=VAL "7755" AND O(INT PI) THEN PRINT "THE DOOR IS CLOSED AND LOCKED.": LET Z=Z1: RETURN 7851 LET Z$="SOUTH": PRINT B$;"A LARGE WORKED CAVE WITH WALLS STREAKED WITH VEINS OF RED AND BLUE MINERALS.": GO SUB VAL "7852": PRINT "EXITS N AND W.": RETURN 7852 IF NOT O(INT PI) THEN PRINT "TO THE ";Z$;" IS A LARGE OAK DOORWEDGED OPEN WITH A WOODEN STAKE.": RETURN 7853 PRINT "THERE IS A LARGE OAK DOOR CLOSEDTO THE ";Z$ 7864 RETURN 7865 PRINT B$;"THE OGRES KITCHEN."'"EXIT N." 7866 IF NOT NM AND M(NI) THEN LET M$="OGRE": LET X=NI: GO TO MO 7874 RETURN 7875 PRINT "YOU ARE IN THE OGRES BEDROOM, A FILTHY FLEA-RIDDEN MATTRESS LIESON TOP OF A LARGE STONE SLAB"'"HERE. EXIT N." 7884 RETURN 7885 GO TO S 7944 RETURN 7945 PRINT B$;"A BOULDER FILLED CAVE."; 7946 IF NOT O(FV) THEN PRINT " THE PASSAGE TO THE NORTH IS"'"BLOCKED BY A ROCK-FALL. EXIT S.": RETURN 7947 PRINT U$;" AND S." 7959 RETURN 7960 PRINT "PASSAGES LEAD N,S AND E FROM"'"HERE.": RETURN 7965 GO TO E 7970 GO SUB E: PRINT "THERE IS A SMALL CAVE TO THE"'"SOUTH.": RETURN 7975 GO TO E 7980 PRINT "PASSAGES LEAD N,S AND W FROM"'"HERE." 8039 RETURN 8040 IF NOT O(FV) THEN PRINT "YOU CAN'T GO THAT DIRECTION, THEPASSAGE IS BLOCKED.": LET Z=Z1: PRINT : GO TO Z 8041 GO TO S 8054 RETURN 8055 PRINT B$;"THE OGRES BATHROOM."'"EXIT S."; 8074 RETURN 8076 PRINT B$;"THE SOUTH OF LONG"'"DAMP CAVE, A RIVER POPULATED"'"WITH ";"HUNGRY" AND NOT O(SE);"PLACID" AND O(SE);" LOOKING CROCODILES"'"FLOWS THROUGH THE CENTRE OF THE CAVE. EXIT S." 8134 RETURN 8135 GO TO S 8164 RETURN 8165 PRINT B$;"THE NORTH OF A LONG DAMP CAVERN.A RIVER POPULATED WITH PLACID LOOKING CROCODILES RUNS THROUGH THE CENTRE. EXIT N." 8224 RETURN 8225 PRINT B$;"A SMALL DUSTY CAVERN.THERE IS THE DECOMPOSING BODY OFA WARRIOR HERE. EXIT E.": RETURN 8230 PRINT "PASSAGES LEAD S,E AND W FROM"'"HERE.": RETURN 8235 PRINT F$;"SOUTH END OF A LARGE CAVERN FILLED WITH LIFE- SIZE HUMAN STATUES OF THE"'"HIGHEST QUALITY. EXIT W."'W$;"N." 8249 RETURN 8250 LET Z=VAL "8565": GO TO Z 8259 RETURN 8260 PRINT "FROM HERE A PASSAGE LEADS EAST AND THERE IS A CAVERN TO THE"'"SOUTH.": RETURN 8265 GO TO E 8270 PRINT B$;"THE EAST OF A HOT DUSTY CAVERN,A STRONG SULPHUROUSODOUR IS PROMINENT HERE. THE CAVERN IS SPLIT IN TWO BY A WIDECHASM THROUGH THE CENTRE, MOLTENLAVA CAN BE SEEN BELOW. ";"A SMALL STONE BRIDGE SPANS THE CHASM." AND O(TE)'"EXIT W." 8279 RETURN 8280 PRINT B$;"THE WEST OF A HOT, DUSTY CAVERN. A WIDE CHASM OF LAVA SPLITS THE CAVERN IN TWO."'"A SMALL STONE BRIDGE SPANS THE CHASM." AND O(TE);" EXIT N." 8329 RETURN 8330 PRINT F$;"NORTH END OF THE CAVERN OF STATUES."'W$;"S." 8331 IF NOT O(TU) THEN GO TO VAL "3800" 8344 RETURN 8345 GO SUB S: PRINT "A MARSHY SMELL DRIFTS DOWN FROM THE NORTH";: IF T(TU)<>INT PI AND NOT Z(TU) THEN PRINT " AND YOUR TORCH IS"'"BURNING MUCH BRIGHTER THAN"'"NORMAL." 8374 RETURN 8375 IF Z1=VAL "8380" THEN RETURN 8376 GO TO S 8384 RETURN 8385 PRINT "FROM HERE THERE ARE PASSAGES TO THE NORTH AND EAST.": RETURN 8390 GO TO E 8395 GO SUB E 8397 IF M(TT) THEN PRINT "THE DARK SHADOWY FIGURE OF"'"VELNOR THE WIZARD STEPS OUT"'"INFRONT OF YOU."': LET O(VAL "21")=A: LET M$="VELNOR": LET X=TT: GO SUB VAL "4E3" 8399 RETURN 8400 PRINT "YOU ARE IN THE PLUSHLY FURNISHEDLIVING ROOM OF VELNOR'S LAIR."'"EXITS E AND W": RETURN 8405 PRINT "YOU ARE IN THE NICELY DECORATED BEDROOM OF VELNORS LAIR. EXIT W." 8439 RETURN 8440 IF NOT Z(TU) AND T(TU)>INT PI THEN FOR N=A TO FV: PAPER TU: CLS : BEEP VAL ".02",N*VAL ".1": PAPER SE: CLS : NEXT N: PRINT "THERE HAS BEEN A MASSIVE"'"EXPLOSION"''"YOU HAVE BEEN KILLED BY THE"'"ROCK FALL": LET HP=O: RETURN 8441 PRINT B$;"A LONG DAMP CAVERN, A MASSIVE EXPANSE OF BUBBLING SWAMP STRETCHES OUT TO YOUR"'"NORTH. EXIT S." 8469 RETURN 8470 PRINT F$;"SOUTH END OF A LONG CHAMBER WITH WALLS OF"'"VOLCANIC GLASS. EXIT S."'W$;"N": IF O(FT)=O THEN LET O(FT)=A 8479 RETURN 8480 IF Z1=VAL "8575" AND NOT O(VAL "20") THEN LET O(VAL "20")=SGN PI: LET HP=HP-TE: PRINT "YOU HAVE FALLEN INTO A DEEP PIT.": LET Z=VAL "9315": GO TO Z 8481 GO TO S 8534 RETURN 8535 PRINT "DON'T BE SILLY, YOU'LL BE"'"DROWNED IN THE SWAMP!": LET Z=Z1: GO TO Z 8564 RETURN 8565 PRINT F$;"NORTH OF A LONG VOLCANIC CHAMBER. THIS AREA WAS ONCE A GIANTS LAIR. EXIT N."'W$;"S." 8574 RETURN 8575 PRINT B$;"A SMALL CAVERN WITH ITS FLOOR COVERED IN STRAW AND TWIGS. EXITS ";"N AND S." AND NOT O(VAL "20");"N,S AND D" AND O(VAL "20") 8629 RETURN 8630 GO TO VAL "8535" 8659 RETURN 8660 LET Z=VAL "8345": GO TO Z 8669 RETURN 8670 GO TO S 8724 RETURN 8725 PRINT F$;"NORTH OF A LARGE SWAMP FILLED CAVERN. EXIT E" 8726 IF T(TU)=SE AND NOT Z(TU) THEN PRINT "YOUR TORCH IS BURNING BRIGHTER THAN NORMAL." 8729 RETURN 8730 GO SUB E: PRINT "A STRONG MARSHY SMELL DRIFTS"'"THROUGH FROM WEST.": RETURN 8735 LET Z$="HUNGRY": IF O(Y) THEN LET Z$="PLACID" 8736 PRINT B$;"A SMALL CAVE WITH A LARGE DEEP CRYSTAL CLEAR POOL AGAINST THE EAST WALL. THE POOL IS FULL OF ";Z$;" LOOKING SHARKSEXIT W." 8744 RETURN 8745 PRINT B$;"A SMALL CAVE WITH A LARGE DEEP CRYSTAL CLEAR POOL AGAINST THE WESTERN WALL. THE POOL IS FULL OF PLACID LOOKING SHARKS. EXIT E.": RETURN 8750 LET Z=VAL "8765": GO TO Z 8760 LET Z=VAL "8745": GO TO Z 8765 PRINT "PASSAGES LEAD S,E AND W FROM"'"HERE.": RETURN 8770 PRINT "FROM HERE A PASSAGE GOES WEST AND SOME MARBLE STEPS LEAD DOWN." 8779 RETURN 8780 PRINT B$;"A DARK STALE SMELLINGCRYPT. MOSAICS SHOWING DEVILS AND DEMONS COVER THE WALLS AND FLOOR. EXIT UP AND E.": RETURN 8785 PRINT B$;"THE SECOND CRYPT CHAMBER ,THERE ARE TWO OPEN SARCOPHAGI HERE. EXITS E AND W." 8786 IF NOT NM AND M(TE) THEN LET X=TE: LET M$="MUMMY": GO TO MO 8789 RETURN 8790 PRINT B$;"THE THIRD CRYPT"'"CHAMBER. THERE IS A LARGE OAK COFFIN STANDING ON A BLACK"'"MARBLE DIAS HERE. EXIT W." 8791 IF M(EL) THEN PRINT "A CLOAKED VAMPIRE SLOWLY RISES FROM THE COFFIN.": LET O(VAL "18")=SGN PI: LET M$="VAMPIRE": LET X=EL: GO SUB MO: RETURN 8792 IF NM=SGN PI THEN LET O(VAL "18")=TU: PRINT "THERE IS A VAMPIRE HERE": RETURN 8910 RETURN 8915 LET Z=VAL "8735": GO TO VAL "8931" 8920 PRINT B$;"A DEEP POOL OF PLACIDSHARKS, A NARROW SUBAQUA TUNNEL LEADS EAST FROM HERE." 8921 IF NOT Z(TU) AND T(TU)<>INT PI THEN PRINT "YOUR TORCH IS EXTINGUISHED ON ENTERING THE WATER.": LET T$(TU)=A$(A): LET T(TU)=INT PI 8924 RETURN 8925 IF NOT Z(VAL "17") THEN LET Z=VAL "8920": PRINT "YOU CAN'T,YOUR ARMOUR WON'T PASSTHROUGH THE TUNNEL.": RETURN 8926 PRINT B$;"A LARGE DEEP POOL, ANUNDERWATER PASSAGE LEADS WEST FROM HERE." 8927 GO TO VAL "8921" 8930 LET Z=VAL "8745" 8931 PRINT "YOU LEAVE THE POOL."': GO TO Z 9099 RETURN 9100 GO SUB Q: PRINT U$;" AND E.": RETURN 9150 GO SUB Q: PRINT U$;",E AND W.": RETURN 9155 GO SUB Q: PRINT U$;" AND W." 9194 RETURN 9195 GO SUB Q: PRINT U$;",S AND E.": RETURN 9245 GO SUB Q: PRINT U$;",S,E AND W.": RETURN 9249 RETURN 9250 GO SUB Q: PRINT U$;",S AND W." 9289 RETURN 9290 GO TO VAL "9195" 9310 GO TO VAL "9245" 9315 IF HP<=O THEN PRINT '"YOU HAVE BEEN KILLED BY THE FALL": RETURN 9316 GO SUB Q: PRINT "THERE IS A LARGE HOLE IN THE"'"ROOF HERE.A MESSAGE SCRAWLED ON THE WALL IN DRIED BLOOD READS :"''"'WELCOME TO THE ZALROG PIT, YOUARE JUST IN TIME FOR LUNCH !'": RETURN 9340 GO TO VAL "9245" 9345 GO TO VAL "9250" 9384 RETURN 9385 GO TO VAL "9195" 9435 GO TO VAL "9245" 9440 GO TO VAL "9250" 9479 RETURN 9480 GO TO VAL "9195" 9530 GO SUB Q: PRINT "EXITS S,E AND W.": RETURN 9535 GO SUB Q: PRINT "EXITS S AND W." 9574 RETURN 9575 GO SUB Q: PRINT "EXITS S AND E.": RETURN 9580 GO SUB Q: PRINT "EXITS S AND W." 9814 RETURN 9975 PRINT B$;"A MAZE OF IDENTICAL INTERCONNECTING LITTLE CAVES."'"BONES ARE LIBERALLY SCATTERED ABOUT THE CAVE SYSTEM." AND (RND>VAL ".9" OR Z=VAL "9315"): RETURN 9980 PRINT B$;"A N/S PASSAGE.": RETURN 9985 PRINT B$;"A E/W PASSAGE.": RETURN 9992 REM removed (LKDOS-only) 9998 REM removed (LKDOS-only) `````````