Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 2ON ERROR GOTO 7000
- 5ZS=1:XX%=0:R=0
- 15REM WRITTEN BY S.W. LUCAS
- 20REM APRIL 1983
- 25REM Ported to the BBC Micro in June 2020
- 26REM this port is from the ORIC version as printed in PCW magazine in Feb. 1984 but then slightly adjusted to bring it in line with the Commodore version.
- 27REM several improvements to the parser and bugfixes have been attempted!
- 28REM Ported to the AGON LIGHT2 in December 2023 by steve lovejoy.
- 29MODE 7
- 30GOSUB3110
- 50DIMQ$(46),G$(42),S%(46,4),V$(3),B%(60,1),N$(60),N%(53),X$(61)
- 60A$="":P%=3:M%=0
- 70RESTORE:GOSUB440:GOSUB2410
- 80CLS
- 110PRINT;CHR$(131);"I am:-"
- 111PRINTQ$(P%):A$=""
- 120IFS%(P%,1)>0THENA$="North"
- 124GOSUB3150
- 140IFS%(P%,2)>0ANDLEN(A$)>0THENA$=A$+", South"
- 145IFS%(P%,2)>0ANDLEN(A$)=0THENA$=A$+"South"
- 150IFS%(P%,3)>0ANDLEN(A$)>0THENA$=A$+", East"
- 155IFS%(P%,3)>0ANDLEN(A$)=0THENA$=A$+"East"
- 160IFS%(P%,4)>0ANDLEN(A$)>0THENA$=A$+", West"
- 170IFS%(P%,4)>0ANDLEN(A$)=0THENA$=A$+"West"
- 175:
- 176IFA%=6THENPRINT" You have successfully completed your mission!"'''
- 177IFA%=6THENPRINT" The Prince thanks you and Albert for your incredible bravery. He gives you both a knighthood!"
- 178IFA%=6THEN END
- 185PRINT:PRINT;CHR$(130);"I can go: ";A$
- 186PRINT
- 190IFP%=22ANDS%(22,3)=0THENPRINTX$(55)
- 200E=0:FORT=1TO37:PP%=0:IFB%(T,1)=P%THENPP%=1
- 210IFPP%=1THEN230
- 220NEXTT:GOTO250
- 230IFE=0THENPRINT;CHR$(134);"That looks like"
- 235PRINT;CHR$(134);G$(T):E=E+1:GOTO220
- 250PRINT:PRINT;CHR$(133);"What should I do now ";:INPUTZ$
- 252IFZ$=""THENCLS:PRINT;CHR$(133);"What?":GOTO110
- 260PROCPARSER
- 270CLS
- 280IFB$="NORT"ANDS%(P%,1)<>0THENP%=S%(P%,1):GOTO110
- 290IFB$="SOUT"ANDS%(P%,2)<>0THENP%=S%(P%,2):GOTO110
- 300IFB$="EAST"ANDS%(P%,3)<>0THENP%=S%(P%,3):GOTO110
- 310IFB$="WEST"ANDS%(P%,4)<>0THENP%=S%(P%,4):GOTO110
- 315IFB$="NORT"ANDS%(P%,1)=0THENZS=0:GOTO410
- 316IFB$="SOUT"ANDS%(P%,2)=0THENZS=0:GOTO410
- 317IFB$="EAST"ANDS%(P%,3)=0THENZS=0:GOTO410
- 318IFB$="WEST"ANDS%(P%,4)=0THENZS=0:GOTO410
- 320IFB$="SCOR"THENGOSUB3150:PRINT"You have scored ";A%;" out of 6.":GOTO110
- 321IFB$="PULL"ORB$="FLUS"THEN4500
- 325:
- 335IFB$="TAKE"ORB$="GRAB"OR LEFT$(B$,3)="GET"THEN1550
- 338IFB$="HELP"THEN2390
- 339IFB$="SWIM"THENPRINT"I can't swim!":GOTO110
- 350IFB$="FUCK"ORB$="PISS"ORB$="SHIT"THEN3210
- 355IFB$="DROP"ORB$="LEAV"ORB$="GIVE"THEN1860
- 370IFB$="LOOK"THEN110
- 375IFB$="PRAY"THEN3260
- 380IFB$="SHOO"THEN2120
- 390IFLEFT$(B$,3)="HIT"THENGOTO2120
- 395IFB$="KILL"THENGOTO2120
- 398IFB$="EXAM"ORB$="READ"THEN2200
- 400IFB$="THRO"ORB$="CHUC"THENGOTO2340
- 405IFLEFT$(B$,3)="RUB"THEN3280
- 408IFB$="INVE"THEN2280
- 409IFLEFT$(B$,3)="USE"THEN2360
- 410IFZS=0THENPRINT"I can't go in that direction":ZS=1:GOTO110
- 414:
- 415PRINTX$(60)
- 420GOTO110
- 430END
- 440FORH=1TO46
- 445FORD=1TO4
- 450READS%(H,D)
- 455NEXT
- 460READQ$(H)
- 465NEXT
- 470FORH=1 TO37
- 480READG$(H):READB%(H,1)
- 485NEXT
- 490FORH=1TO53
- 495READN$(H),N%(H)
- 500NEXT
- 507RETURN
- 510DATA0,0,2,0," at the doorway of an old hut. The door is locked."
- 520DATA43,8,3,1," in the Pawnbroker's shop. A sign says 'Drop your*TREASURES*here'"
- 530DATA0,9,4,2," on a disused railway line."
- 550DATA0,10,0,3," on a narrow footpath that leads into the forest."
- 560DATA0,11,6,10," At a junction in the path."
- 565DATA0,0,0,5," In an old stone quarry."
- 570DATA0,0,8,0," by a wooden gate. The Pawnbroker is here. He won't let me pass."
- 590DATA2,0,0,7," by the dustbins."
- 600DATA3,0,0,0," In the Old Ship Tavern."
- 610DATA4,0,0,0," just by the edge of the woods."
- 620DATA5,0,16,0," in a small thicket in the woods."
- 630DATA7,0,0,0," in a clearing in the woods. There are broken pots, and weeds everywhere."
- 640DATA0,0,14,12," by a small plot of land. It is rather overgrown."
- 650DATA0,18,0,13," in the graveyard, by a grave."
- 660DATA0,19,0,0," inside a small brick outbuilding."
- 670DATA0,0,0,11," at a dead end."
- 680DATA12,25,26,0," in a damp, gloomy tunnel. Water is pouring down the walls."
- 690DATA14,0,19,0," on a disused track near the graveyard."
- 700DATA15,27,0,18," at the entrance to an old temple."
- 710DATA0,28,0,0," in the lavatory!"
- 720DATA16,0,0,0," on a narrow bridge that crosses the stream."
- 730DATA0,0,0,16," in a very dark part of the forest."
- 740DATA34,0,0,22," in the workshop."
- 750DATA0,0,31,0," in a vast hallway."
- 760DATA17,0,42,0," in a twisty little passage."
- 770DATA0,42,0,17," in a hallway."
- 780DATA19,0,0,0," inside the old temple."
- 790DATA20,38,0,27," in the hospital."
- 800DATA21,0,0,0," at another dead end."
- 810DATA22,0,32,0," in a tiny shrine."
- 820DATA32,0,0,24," on a private beach."
- 830DATA0,31,33,30," in a large arena."
- 840DATA36,37,0,32," in a secluded house."
- 850DATA0,23,0,0," in the tiny store-room."
- 860DATA41,41,41,34," lost!"
- 870DATA36,36,36,36," Completely lost in a spinning time vortex!"
- 880DATA33,0,0,0," in a cold and damp cell."
- 890DATA28,0,0,0," in the broom cupboard."
- 900DATA27,0,0,0," in a long, narrow tunnel."
- 910DATA0,0,0,42," in an eerie crypt, deep in the caves."
- 920DATA41,41,41,35," in a dense, swirling fog."
- 930DATA26,0,0,25," in a cavern."
- 940DATA0,2,45,44," in the potting shed."
- 950DATA0,0,43,0," at the far end of the potting shed."
- 960DATA0,0,0,43," by the garden shed."
- 970DATA0,45,0,0," in the garden shed."
- 980RETURN
- 990DATA"A large frog.",14
- 1000DATA"A little girl.",37
- 1010DATA"A wallet.",30
- 1020DATA"A flask of brandy.",9
- 1030DATA"An old dwarf.",29
- 1040DATA"A *RUBY* encrusted goblet.",33
- 1050DATA"A loaded shotgun.",46
- 1060DATA"A *DIAMOND* studded tiara.",41
- 1070DATA"A genuine antique Orc *DAGGER*",38
- 1080DATA"My old friend Albert. He looks ill.",28
- 1090DATA"A jar of Dr. Frankenstein's cure-all medicine.",31
- 1100DATA"a vending machine. It contains chocolates.",13
- 1110DATA"A `1 coin.",11
- 1120DATA"A bauble.",39
- 1130DATA"A *SILVER* spear. (Just right for monsters of all types).",40
- 1135DATA"A golden coloured ring.",4
- 1140DATA"A can of oil.",15
- 1150DATA"A dirty old plant pot.",43
- 1160DATA"A real plastic crucifix.",6
- 1170DATA"Bill & Ben guarding the entrance to a tunnel.",12
- 1180DATA"An evil Balrog!",16
- 1190DATA"A large altar.",27
- 1200DATA"An evil, menacing Vampire who will not let me pass.",42
- 1210DATA"A seemingly innocent old man, but he won't let me pass.",10
- 1220DATA"A coffin, covered with mud.",25
- 1230DATA"A rusty lock.",45
- 1240DATA"An evil Hobgoblin - with halitosis!",34
- 1250DATA"A silver plated casket with no lid.",26
- 1260DATA"A broken lid.",24
- 1270DATA"A small pack-horse.",32
- 1280DATA"A sleeping monster...",23
- 1300DATA"A greedy little Orc warrior, guarding the bridge.",21
- 1310DATA"A tiny beanstalk with a label attached.",3
- 1320DATA"A packet of fertiliser.",44
- 1330DATA"A brass monkey.",2
- 1340DATA"A chain.",20
- 1350DATA"Some mushrooms (I think).",18
- 1360DATA"FROG",1,"PRINCE",1
- 1370DATA"GIRL",2,"LITTLE",2
- 1380DATA"WALLET",3,"FLASK",4,"BRANDY",4
- 1390DATA"DWARF",5,"RUBY",6
- 1400DATA"SHOTGUN",7,"GUN",7
- 1410DATA"DIAMOND",8
- 1420DATA"ANTIQUE",9,"DAGGER",9
- 1425DATA"FRIEND",10,"ALBERT",10
- 1430DATA"MEDICINE",11,"VENDING",12,"CHOCOLATES",12
- 1450DATA"COIN",13,"BAUBLE",14
- 1460DATA"GOLDEN",15,"SPEAR",15,"RING",16
- 1465DATA"OIL",17,"DIRTY POT",18,"POTS",18
- 1467DATA"CRUCIFIX",19,"CROSS",19,"GUARD",20
- 1470DATA"BALROG",21,"ALTAR",22,"VAMPIRE",23,"MAN",24
- 1480DATA"COFFIN",25,"CORPSE",25
- 1490DATA"DOOR",26,"LOCK",26,"GOBLIN",27,"CASKET",28
- 1500DATA"LID",29,"HORSE",30
- 1510DATA"SLEEPING MONSTER",31,"MONSTER",31
- 1520DATA"ORC",32,"WARRIOR",32
- 1530DATA"BEAN",33,"LABEL",33
- 1540DATA"PACKET",34,"FERTILISER",34,"MONKEY",35,"CHAIN",36,"MUSHROOMS",37
- 1550GOSUB3030
- 1560IFL$="PLANT"THENPRINT"Sorry!":GOTO250
- 1570IFL%=1THEN1590
- 1580PRINT"Get what?":GOTO110
- 1590E%=0
- 1600FORH=1 TO37
- 1605IFB%(H,1)=P% ANDB%(N%(R),1)=P%THENE%=1
- 1610NEXTH
- 1620IFE%=0THEN PRINT"I don't see it.":GOTO110
- 1630CLS:IFP%=12ANDR=30THENPRINTX$(3):GOTO110
- 1640IFP%=16ANDR=31THENPRINTX$(4):GOTO110
- 1641IFP%=20ANDR=52THENPRINT"Get a lavatory chain? You are joking!":GOTO110
- 1650IFP%=27ANDR=32THENPRINTX$(5):GOTO110
- 1660IFP%=10ANDR=34THENPRINTX$(7):GOTO110
- 1661IFP%=37AND(R=3ORR=4)ANDXX%<>1THENPRINTX$(52):GOTO110
- 1662IFP%=37AND(R=3ORR=4)ANDXX%=1THENPRINT"She smiles as she eats a chocolate.":GOTO1810
- 1670IFP%=42ANDR=33THENPRINTX$(6):GOTO110
- 1680IFP%=25AND(R=35ORR=36)THENPRINTX$(8):GOTO110
- 1690IFP%=14AND(R=1ORR=2)ANDB%(2,1)=-1THENGOTO1810
- 1700IFP%=45AND(R=37ORR=38)THENPRINTX$(45):GOTO250
- 1710IFP%=34ANDR=39THENPRINTX$(46):GOTO250
- 1720IFP%=21AND(R=44ORR=45)THENPRINTX$(49):GOTO250
- 1730IFP%=14AND(R=1ORR=2)ANDB%(2,1)<>14THENPRINTX$(17):GOTO110
- 1740IFP%=13ANDR=19ANDB%(13,1)<>13THENPRINTX$(19):GOTO110
- 1741IFP%=13ANDR=18ANDB%(13,1)<>13THENPRINTX$(10):GOTO110
- 1750IFP%=9AND(R=6ORR=7)ANDB%(3,1)=9THEN1810
- 1760IFP%=9AND(R=6ORR=7)ANDB%(13,1)=9THENPRINTX$(21):GOTO250
- 1770IFP%=9AND(R=6ORR=7)ANDB%(13,1)<>9THENPRINTX$(36):GOTO250
- 1780IFP%=29ANDB%(4,1)<>29THENPRINTX$(54):GOTO110
- 1790IFP%=28AND(R=15ORR=16)ANDB%(11,1)<>28THENPRINTX$(56):GOTO110
- 1800IFP%=28AND(R=15ORR=16)ANDB%(11,1)=28THENG$(10)=X$(57):B%(11,1)=-1
- 1810E%=0
- 1820FORD=1TO3:IFV$(D)=""THENV$(D)=G$(N%(R)):E%=1:D=4
- 1830NEXT
- 1840IFE%=0THENPRINTX$(38):GOTO250
- 1850B%(N%(R),1)=0:GOTO110
- 1860GOSUB3030
- 1870IFL%=1THEN1890
- 1880PRINT''"I can't see a ";L$:GOTO250
- 1890E%=0
- 1900FORD=1TO3
- 1905IFV$(D)=G$(N%(R))THENV$(D)="":E%=1
- 1910NEXT
- 1911:
- 1920IFE%=1THEN1940
- 1930PRINTX$(39):GOTO250
- 1940B%(N%(R),1)=P%
- 1950CLS
- 1960IFP%=7ANDR=24THENPRINTX$(1):S%(7,2)=12:B%(16,1)=1:Q$(7)=" by an open gate."
- 1970IFP%=12AND(R=26ORR=27)THENPRINTX$(2):S%(12,2)=17:S%(12,3)=13
- 1971IFP%=12AND(R=26ORR=27)THENB%(20,1)=-1:B%(18,1)=0
- 1980IFP%=14AND(R=3ORR=4)THENPRINTX$(9):G$(1)=X$(13):B%(2,1)=-1:GOTO110
- 1981IFP%=37AND(R=18ORR=19)THENXX%=1
- 2000IFP%=29AND(R=6ORR=7)THENG$(5)=X$(14):PRINTX$(12):GOTO110
- 2010IFP%=28ANDR=17THENPRINTX$(16):G$(10)="my friend*Albert*":GOTO110
- 2020IFP%=13ANDR=20THENPRINTX$(18):G$(12)="a box of chocolates.":GOTO110
- 2030IFP%=45ANDR=25THENPRINTX$(20):S%(45,1)=46:B%(26,1)=-1:B%(17,1)=-1:GOTO110
- 2040IFP%=22AND(R=49ORR=50)ANDB%(33,1)=22THENPRINTX$(53):S%(22,2)=30:S%(22,3)=23
- 2041IFP%=22AND(R=49ORR=50)ANDB%(33,1)=22THENG$(33)=X$(61):X$(55)="":GOTO110
- 2050IFP%=22AND(R=47ORR=48)ANDB%(34,1)=22THENPRINTX$(53):S%(22,2)=30:S%(22,3)=23
- 2051IFP%=22AND(R=47ORR=48)ANDB%(34,1)=22THENG$(33)=X$(61):X$(55)="":GOTO110
- 2061IFP%=27ANDB%(12,1)=27ANDB%(1,1)=0THENS%(27,3)=28:B%(12,1)=0:G$(22)=X$(58)
- 2080IFP%=21ANDR=53THENPRINTX$(47):S%(21,2)=29:B%(32,1)=0:B%(53,1)=-1:GOTO110
- 2090IFP%=13AND(R=18ORR=19)ANDB%(13,1)=13THENPRINTX$(18):GOTO110
- 2100IFP%=34ANDR=8THENPRINTX$(25):S%(34,3)=35:B%(5,1)=-1:B%(27,1)=-1:GOTO110
- 2110GOTO110
- 2120IFP%=10ANDB%(7,1)=0ANDS%(10,3)=0THENPRINTX$(27):S%(10,3)=5:G$(24)=X$(28):GOTO110
- 2125IFP%=10ANDB%(7,1)THENPRINTX$(30):GOTO110
- 2130IFP%=29ANDM%=0THENPRINTX$(29):GOTO110
- 2140IFB%(7,1)<>0THENPRINT"I don't have a gun!":GOTO250
- 2150PRINTX$(30):GOTO250
- 2160GOSUB3030
- 2170IFP%=27ANDR=28THENPRINTX$(31):S%(27,3)=28:GOTO110
- 2180IFP%=24THENPRINTX$(37):GOTO110
- 2190PRINT"Into what?":GOTO250
- 2200GOSUB3030
- 2210IFB%(8,1)=0ANDR=12THENPRINTX$(34):GOTO110
- 2211IFP%=12AND(R=26ORR=27)THENPRINTX$(40):GOTO110
- 2220IFP%=25AND(R=35ORR=36)THENPRINTX$(59):GOTO110
- 2230IFB%(15,1)=0ANDR=15THENPRINTX$(22):GOTO110
- 2240IFP%=24THENPRINTX$(37):GOTO110
- 2241IFP%=39ANDR=21THENPRINTX$(41):GOTO110
- 2243IFP%=14AND(R=1ORR=2)THENPRINTX$(42):GOTO110
- 2250IF(R=47ORR=48)ANDB%(33,1)=0THENPRINTX$(23):GOTO110
- 2260IF(R=22ORR=23)ANDB%(15,1)=0THENPRINTX$(22):GOTO110
- 2270PRINTX$(35):GOTO250
- 2280PRINT"I have:-"
- 2285:
- 2290F%=0
- 2300FORH=1TO3
- 2305IFV$(H)<>""THENPRINTV$(H):F%=1
- 2310NEXT
- 2320IFF%=0THENPRINT"nothing at all!"
- 2330GOTO250
- 2340IFP%=16ANDB%(21,1)=16THENPRINTX$(48)
- 2341IFP%=16ANDB%(21,1)=16THENS%(16,2)=21:S%(16,3)=22:B%(21,1)=0:GOTO110
- 2350GOTO110
- 2360GOSUB3030
- 2365IFR=25ANDB%(17,1)=0THEN GOTO 2376
- 2370IFB%(19,1)<>0 THEN PRINTX$(39):GOTO110
- 2372IFP%=42ANDR=28 AND B%(19,1)=0ANDS%(42,3)=0 THENPRINTX$(31):S%(42,3)=40:G$(23)=X$(24):GOTO110
- 2374IFP%=42ANDR=28 AND B%(19,1)=0ANDS%(42,3)=40 THENPRINTX$(33):GOTO110
- 2376IFP%=45ANDR=25 AND B%(17,1)=0ANDS%(45,1)=0 THENPRINTX$(20):S%(45,1)=46:B%(17,1)=-1:B%(26,1)=-1:GOTO1890
- 2377IFR=25 AND B%(17,1)=0 THENPRINTX$(32):GOTO110
- 2380PRINTX$(32):GOTO250
- 2390CLS:PRINT''"I'm as confused as you are..."
- 2391:
- 2395PRINT'"I suppose you could try praying...":GOTO250
- 2410X$(1)="The Pawnbroker rubs his hands together in glee. He grabs the ring and runs in to his shop."
- 2420X$(2)="Ben grabs the pot and runs off. He is shouting something about a present for Bill..."
- 2430X$(3)="You must be joking!"
- 2440X$(4)="What do you think I am? Have you seen those fangs, dripping in BLOOD!"
- 2450X$(5)="I know I am Superman, but even I can't move that!"
- 2460X$(6)="What do you think I am? A sucker?!"
- 2470X$(7)="All that glitters..."
- 2480X$(8)="I'm not carrying that! There's a dead body in there!"
- 2490X$(9)="The girl chases the frog and kisses it.In a blinding flash, the frog turns into the handsome Prince of Cenra!"
- 2500X$(10)="I'm not a thief you know! I need a coin..."
- 2510X$(11)="O.K."
- 2520X$(12)="The old dwarf takes the brandy and drinks it. He gives you a warm smile."
- 2530X$(13)="A handsome *PRINCE*"
- 2540X$(14)="An old dwarf. He is happy to come alongwith you now."
- 2550X$(15)="Albert still isn't feeling well enough to travel."
- 2560X$(16)="Healthy Albert!"
- 2570X$(17)="The frog hops away."
- 2580X$(18)="The coin fits in the slot. I get a box of chocolates."
- 2590X$(19)="I can't carry the whole machine!"
- 2600X$(20)="After a second... The lock opens."
- 2610X$(21)="The landlord grins at you and says 'I don't accept those.'"
- 2620X$(22)="There is an inscription written on it but I can't quite make it out."
- 2630X$(23)="The label reads 'For Rapid growth - use GROWMOREfertiliser.'"
- 2640X$(24)="The dark opening to a crypt"
- 2650X$(25)="The dwarf chases the hobgoblin away with his axe."
- 2660X$(26)="It seems like a good idea, but... Nothing happens."
- 2670X$(27)="The man lets out an agonizing scream! His body shrivels in mid-air. A Pile of dust falls to the ground. A monster starts to form from the dust!"
- 2680X$(28)="an evil smellingMonsterwith venom dripping from its pointed teeth."
- 2690X$(29)="Whoops! Missed!"
- 2700X$(30)="BANG! - Nothing happened."
- 2710X$(31)="TheVampirerecoils at the sight of thecrucifix and runs for its life!"
- 2720X$(32)="It doesn't seem to do anything at the moment."
- 2730X$(33)="Thevampirehas already left."
- 2740X$(34)="The*DIAMONDS*must be valuable."
- 2750X$(35)="I can't see anything unusual."
- 2760X$(36)="The landlord doesn't like that..."
- 2770X$(37)="It bears an inscription: 'A perfect gift for all.'"
- 2780X$(38)="I may be superman, but I just can't carry any more."
- 2790X$(39)="I've not got it - Dummy!"
- 2800X$(40)="The pots are rather tatty."
- 2810X$(41)="A worthless bauble."
- 2820X$(42)="It's too fast for me."
- 2830X$(43)="Watch out! I think I may have been spotted."
- 2840X$(44)="I've just beenATTACKED!"
- 2850X$(45)="I can't move it, it's too rusty."
- 2860X$(46)="You must be joking! With breath like that!"
- 2870X$(47)="It eats the mushrooms, and falls into a stupor."
- 2880X$(48)="Straight through the heart! I grab the*SPEAR*back quickly."
- 2890X$(49)="Orcs are far too vicious and nasty."
- 2900X$(50)="Seems like a good idea..."
- 2910X$(51)="The horse just fainted!"
- 2920X$(52)="The girl refuses to come!"
- 2930X$(53)="The beanstalk spurts into furious growth. I can use it to climb over the wall."
- 2940X$(54)="The dwarf refuses to come with you."
- 2950X$(55)="There is a wall here, but I can't climb it. The soil is good..."
- 2960X$(56)="Albert is too ill to travel."
- 2970X$(57)="It's my healthy friend*Albert*"
- 2980X$(58)="The altar moved aside. There are two passages behind it."
- 2990X$(59)="There's a half-decomposed body in there!"
- 3000X$(60)="I'm sorry - I don't know that word."
- 3010X$(61)="The beanstalk grows so much that I can climb the wall!"
- 3020RETURN
- 3030L$="":FORH=1TOLEN(Z$)
- 3040IF MID$(Z$,H,1)=" "THENL$=RIGHT$(Z$,(LEN(Z$)-H)):H=H+40
- 3050NEXT
- 3060R=0
- 3070L%=0:IFLEN(L$)<2THENRETURN
- 3080FORH=1TO53:IFLEFT$(N$(H),LEN(L$))=L$ THENL%=1:R=H
- 3090NEXT
- 3100RETURN
- 3110CLS
- 3111PRINT'TAB(9);CHR$(141);CHR$(129);"THE FOREST OF DOOM"
- 3112PRINT TAB(9);CHR$(141);CHR$(129);"THE FOREST OF DOOM"
- 3113PRINT'
- 3115PRINTTAB(14);CHR$(130);"An adventure"
- 3117PRINT'TAB(13);CHR$(130);"By S.W. Lucas"
- 3118PRINT''"Many months ago your lifelong friend, Al 2ON ERROR GOTO 7000
- 5ZS=1:XX%=0:R=0
- 15REM WRITTEN BY S.W. LUCAS
- 20REM APRIL 1983
- 25REM Ported to the BBC Micro in June 2020
- 26REM this port is from the ORIC version as printed in PCW magazine in Feb. 1984 but then slightly adjusted to bring it in line with the Commodore version.
- 27REM several improvements to the parser and bugfixes have been attempted!
- 28REM Ported to the AGON LIGHT2 in December 2023 by steve lovejoy.
- 29MODE 7
- 30GOSUB3110
- 50DIMQ$(46),G$(42),S%(46,4),V$(3),B%(60,1),N$(60),N%(53),X$(61)
- 60A$="":P%=3:M%=0
- 70RESTORE:GOSUB440:GOSUB2410
- 80CLS
- 110PRINT;CHR$(131);"I am:-"
- 111PRINTQ$(P%):A$=""
- 120IFS%(P%,1)>0THENA$="North"
- 124GOSUB3150
- 140IFS%(P%,2)>0ANDLEN(A$)>0THENA$=A$+", South"
- 145IFS%(P%,2)>0ANDLEN(A$)=0THENA$=A$+"South"
- 150IFS%(P%,3)>0ANDLEN(A$)>0THENA$=A$+", East"
- 155IFS%(P%,3)>0ANDLEN(A$)=0THENA$=A$+"East"
- 160IFS%(P%,4)>0ANDLEN(A$)>0THENA$=A$+", West"
- 170IFS%(P%,4)>0ANDLEN(A$)=0THENA$=A$+"West"
- 175:
- 176IFA%=6THENPRINT" You have successfully completed your mission!"'''
- 177IFA%=6THENPRINT" The Prince thanks you and Albert for your incredible bravery. He gives you both a knighthood!"
- 178IFA%=6THEN END
- 185PRINT:PRINT;CHR$(130);"I can go: ";A$
- 186PRINT
- 190IFP%=22ANDS%(22,3)=0THENPRINTX$(55)
- 200E=0:FORT=1TO37:PP%=0:IFB%(T,1)=P%THENPP%=1
- 210IFPP%=1THEN230
- 220NEXTT:GOTO250
- 230IFE=0THENPRINT;CHR$(134);"That looks like"
- 235PRINT;CHR$(134);G$(T):E=E+1:GOTO220
- 250PRINT:PRINT;CHR$(133);"What should I do now ";:INPUTZ$
- 252IFZ$=""THENCLS:PRINT;CHR$(133);"What?":GOTO110
- 260PROCPARSER
- 270CLS
- 280IFB$="NORT"ANDS%(P%,1)<>0THENP%=S%(P%,1):GOTO110
- 290IFB$="SOUT"ANDS%(P%,2)<>0THENP%=S%(P%,2):GOTO110
- 300IFB$="EAST"ANDS%(P%,3)<>0THENP%=S%(P%,3):GOTO110
- 310IFB$="WEST"ANDS%(P%,4)<>0THENP%=S%(P%,4):GOTO110
- 315IFB$="NORT"ANDS%(P%,1)=0THENZS=0:GOTO410
- 316IFB$="SOUT"ANDS%(P%,2)=0THENZS=0:GOTO410
- 317IFB$="EAST"ANDS%(P%,3)=0THENZS=0:GOTO410
- 318IFB$="WEST"ANDS%(P%,4)=0THENZS=0:GOTO410
- 320IFB$="SCOR"THENGOSUB3150:PRINT"You have scored ";A%;" out of 6.":GOTO110
- 321IFB$="PULL"ORB$="FLUS"THEN4500
- 325:
- 335IFB$="TAKE"ORB$="GRAB"OR LEFT$(B$,3)="GET"THEN1550
- 338IFB$="HELP"THEN2390
- 339IFB$="SWIM"THENPRINT"I can't swim!":GOTO110
- 350IFB$="FUCK"ORB$="PISS"ORB$="SHIT"THEN3210
- 355IFB$="DROP"ORB$="LEAV"ORB$="GIVE"THEN1860
- 370IFB$="LOOK"THEN110
- 375IFB$="PRAY"THEN3260
- 380IFB$="SHOO"THEN2120
- 390IFLEFT$(B$,3)="HIT"THENGOTO2120
- 395IFB$="KILL"THENGOTO2120
- 398IFB$="EXAM"ORB$="READ"THEN2200
- 400IFB$="THRO"ORB$="CHUC"THENGOTO2340
- 405IFLEFT$(B$,3)="RUB"THEN3280
- 408IFB$="INVE"THEN2280
- 409IFLEFT$(B$,3)="USE"THEN2360
- 410IFZS=0THENPRINT"I can't go in that direction":ZS=1:GOTO110
- 414:
- 415PRINTX$(60)
- 420GOTO110
- 430END
- 440FORH=1TO46
- 445FORD=1TO4
- 450READS%(H,D)
- 455NEXT
- 460READQ$(H)
- 465NEXT
- 470FORH=1 TO37
- 480READG$(H):READB%(H,1)
- 485NEXT
- 490FORH=1TO53
- 495READN$(H),N%(H)
- 500NEXT
- 507RETURN
- 510DATA0,0,2,0," at the doorway of an old hut. The door is locked."
- 520DATA43,8,3,1," in the Pawnbroker's shop. A sign says 'Drop your*TREASURES*here'"
- 530DATA0,9,4,2," on a disused railway line."
- 550DATA0,10,0,3," on a narrow footpath that leads into the forest."
- 560DATA0,11,6,10," At a junction in the path."
- 565DATA0,0,0,5," In an old stone quarry."
- 570DATA0,0,8,0," by a wooden gate. The Pawnbroker is here. He won't let me pass."
- 590DATA2,0,0,7," by the dustbins."
- 600DATA3,0,0,0," In the Old Ship Tavern."
- 610DATA4,0,0,0," just by the edge of the woods."
- 620DATA5,0,16,0," in a small thicket in the woods."
- 630DATA7,0,0,0," in a clearing in the woods. There are broken pots, and weeds everywhere."
- 640DATA0,0,14,12," by a small plot of land. It is rather overgrown."
- 650DATA0,18,0,13," in the graveyard, by a grave."
- 660DATA0,19,0,0," inside a small brick outbuilding."
- 670DATA0,0,0,11," at a dead end."
- 680DATA12,25,26,0," in a damp, gloomy tunnel. Water is pouring down the walls."
- 690DATA14,0,19,0," on a disused track near the graveyard."
- 700DATA15,27,0,18," at the entrance to an old temple."
- 710DATA0,28,0,0," in the lavatory!"
- 720DATA16,0,0,0," on a narrow bridge that crosses the stream."
- 730DATA0,0,0,16," in a very dark part of the forest."
- 740DATA34,0,0,22," in the workshop."
- 750DATA0,0,31,0," in a vast hallway."
- 760DATA17,0,42,0," in a twisty little passage."
- 770DATA0,42,0,17," in a hallway."
- 780DATA19,0,0,0," inside the old temple."
- 790DATA20,38,0,27," in the hospital."
- 800DATA21,0,0,0," at another dead end."
- 810DATA22,0,32,0," in a tiny shrine."
- 820DATA32,0,0,24," on a private beach."
- 830DATA0,31,33,30," in a large arena."
- 840DATA36,37,0,32," in a secluded house."
- 850DATA0,23,0,0," in the tiny store-room."
- 860DATA41,41,41,34," lost!"
- 870DATA36,36,36,36," Completely lost in a spinning time vortex!"
- 880DATA33,0,0,0," in a cold and damp cell."
- 890DATA28,0,0,0," in the broom cupboard."
- 900DATA27,0,0,0," in a long, narrow tunnel."
- 910DATA0,0,0,42," in an eerie crypt, deep in the caves."
- 920DATA41,41,41,35," in a dense, swirling fog."
- 930DATA26,0,0,25," in a cavern."
- 940DATA0,2,45,44," in the potting shed."
- 950DATA0,0,43,0," at the far end of the potting shed."
- 960DATA0,0,0,43," by the garden shed."
- 970DATA0,45,0,0," in the garden shed."
- 980RETURN
- 990DATA"A large frog.",14
- 1000DATA"A little girl.",37
- 1010DATA"A wallet.",30
- 1020DATA"A flask of brandy.",9
- 1030DATA"An old dwarf.",29
- 1040DATA"A *RUBY* encrusted goblet.",33
- 1050DATA"A loaded shotgun.",46
- 1060DATA"A *DIAMOND* studded tiara.",41
- 1070DATA"A genuine antique Orc *DAGGER*",38
- 1080DATA"My old friend Albert. He looks ill.",28
- 1090DATA"A jar of Dr. Frankenstein's cure-all medicine.",31
- 1100DATA"a vending machine. It contains chocolates.",13
- 1110DATA"A `1 coin.",11
- 1120DATA"A bauble.",39
- 1130DATA"A *SILVER* spear. (Just right for monsters of all types).",40
- 1135DATA"A golden coloured ring.",4
- 1140DATA"A can of oil.",15
- 1150DATA"A dirty old plant pot.",43
- 1160DATA"A real plastic crucifix.",6
- 1170DATA"Bill & Ben guarding the entrance to a tunnel.",12
- 1180DATA"An evil Balrog!",16
- 1190DATA"A large altar.",27
- 1200DATA"An evil, menacing Vampire who will not let me pass.",42
- 1210DATA"A seemingly innocent old man, but he won't let me pass.",10
- 1220DATA"A coffin, covered with mud.",25
- 1230DATA"A rusty lock.",45
- 1240DATA"An evil Hobgoblin - with halitosis!",34
- 1250DATA"A silver plated casket with no lid.",26
- 1260DATA"A broken lid.",24
- 1270DATA"A small pack-horse.",32
- 1280DATA"A sleeping monster...",23
- 1300DATA"A greedy little Orc warrior, guarding the bridge.",21
- 1310DATA"A tiny beanstalk with a label attached.",3
- 1320DATA"A packet of fertiliser.",44
- 1330DATA"A brass monkey.",2
- 1340DATA"A chain.",20
- 1350DATA"Some mushrooms (I think).",18
- 1360DATA"FROG",1,"PRINCE",1
- 1370DATA"GIRL",2,"LITTLE",2
- 1380DATA"WALLET",3,"FLASK",4,"BRANDY",4
- 1390DATA"DWARF",5,"RUBY",6
- 1400DATA"SHOTGUN",7,"GUN",7
- 1410DATA"DIAMOND",8
- 1420DATA"ANTIQUE",9,"DAGGER",9
- 1425DATA"FRIEND",10,"ALBERT",10
- 1430DATA"MEDICINE",11,"VENDING",12,"CHOCOLATES",12
- 1450DATA"COIN",13,"BAUBLE",14
- 1460DATA"GOLDEN",15,"SPEAR",15,"RING",16
- 1465DATA"OIL",17,"DIRTY POT",18,"POTS",18
- 1467DATA"CRUCIFIX",19,"CROSS",19,"GUARD",20
- 1470DATA"BALROG",21,"ALTAR",22,"VAMPIRE",23,"MAN",24
- 1480DATA"COFFIN",25,"CORPSE",25
- 1490DATA"DOOR",26,"LOCK",26,"GOBLIN",27,"CASKET",28
- 1500DATA"LID",29,"HORSE",30
- 1510DATA"SLEEPING MONSTER",31,"MONSTER",31
- 1520DATA"ORC",32,"WARRIOR",32
- 1530DATA"BEAN",33,"LABEL",33
- 1540DATA"PACKET",34,"FERTILISER",34,"MONKEY",35,"CHAIN",36,"MUSHROOMS",37
- 1550GOSUB3030
- 1560IFL$="PLANT"THENPRINT"Sorry!":GOTO250
- 1570IFL%=1THEN1590
- 1580PRINT"Get what?":GOTO110
- 1590E%=0
- 1600FORH=1 TO37
- 1605IFB%(H,1)=P% ANDB%(N%(R),1)=P%THENE%=1
- 1610NEXTH
- 1620IFE%=0THEN PRINT"I don't see it.":GOTO110
- 1630CLS:IFP%=12ANDR=30THENPRINTX$(3):GOTO110
- 1640IFP%=16ANDR=31THENPRINTX$(4):GOTO110
- 1641IFP%=20ANDR=52THENPRINT"Get a lavatory chain? You are joking!":GOTO110
- 1650IFP%=27ANDR=32THENPRINTX$(5):GOTO110
- 1660IFP%=10ANDR=34THENPRINTX$(7):GOTO110
- 1661IFP%=37AND(R=3ORR=4)ANDXX%<>1THENPRINTX$(52):GOTO110
- 1662IFP%=37AND(R=3ORR=4)ANDXX%=1THENPRINT"She smiles as she eats a chocolate.":GOTO1810
- 1670IFP%=42ANDR=33THENPRINTX$(6):GOTO110
- 1680IFP%=25AND(R=35ORR=36)THENPRINTX$(8):GOTO110
- 1690IFP%=14AND(R=1ORR=2)ANDB%(2,1)=-1THENGOTO1810
- 1700IFP%=45AND(R=37ORR=38)THENPRINTX$(45):GOTO250
- 1710IFP%=34ANDR=39THENPRINTX$(46):GOTO250
- 1720IFP%=21AND(R=44ORR=45)THENPRINTX$(49):GOTO250
- 1730IFP%=14AND(R=1ORR=2)ANDB%(2,1)<>14THENPRINTX$(17):GOTO110
- 1740IFP%=13ANDR=19ANDB%(13,1)<>13THENPRINTX$(19):GOTO110
- 1741IFP%=13ANDR=18ANDB%(13,1)<>13THENPRINTX$(10):GOTO110
- 1750IFP%=9AND(R=6ORR=7)ANDB%(3,1)=9THEN1810
- 1760IFP%=9AND(R=6ORR=7)ANDB%(13,1)=9THENPRINTX$(21):GOTO250
- 1770IFP%=9AND(R=6ORR=7)ANDB%(13,1)<>9THENPRINTX$(36):GOTO250
- 1780IFP%=29ANDB%(4,1)<>29THENPRINTX$(54):GOTO110
- 1790IFP%=28AND(R=15ORR=16)ANDB%(11,1)<>28THENPRINTX$(56):GOTO110
- 1800IFP%=28AND(R=15ORR=16)ANDB%(11,1)=28THENG$(10)=X$(57):B%(11,1)=-1
- 1810E%=0
- 1820FORD=1TO3:IFV$(D)=""THENV$(D)=G$(N%(R)):E%=1:D=4
- 1830NEXT
- 1840IFE%=0THENPRINTX$(38):GOTO250
- 1850B%(N%(R),1)=0:GOTO110
- 1860GOSUB3030
- 1870IFL%=1THEN1890
- 1880PRINT''"I can't see a ";L$:GOTO250
- 1890E%=0
- 1900FORD=1TO3
- 1905IFV$(D)=G$(N%(R))THENV$(D)="":E%=1
- 1910NEXT
- 1911:
- 1920IFE%=1THEN1940
- 1930PRINTX$(39):GOTO250
- 1940B%(N%(R),1)=P%
- 1950CLS
- 1960IFP%=7ANDR=24THENPRINTX$(1):S%(7,2)=12:B%(16,1)=1:Q$(7)=" by an open gate."
- 1970IFP%=12AND(R=26ORR=27)THENPRINTX$(2):S%(12,2)=17:S%(12,3)=13
- 1971IFP%=12AND(R=26ORR=27)THENB%(20,1)=-1:B%(18,1)=0
- 1980IFP%=14AND(R=3ORR=4)THENPRINTX$(9):G$(1)=X$(13):B%(2,1)=-1:GOTO110
- 1981IFP%=37AND(R=18ORR=19)THENXX%=1
- 2000IFP%=29AND(R=6ORR=7)THENG$(5)=X$(14):PRINTX$(12):GOTO110
- 2010IFP%=28ANDR=17THENPRINTX$(16):G$(10)="my friend*Albert*":GOTO110
- 2020IFP%=13ANDR=20THENPRINTX$(18):G$(12)="a box of chocolates.":GOTO110
- 2030IFP%=45ANDR=25THENPRINTX$(20):S%(45,1)=46:B%(26,1)=-1:B%(17,1)=-1:GOTO110
- 2040IFP%=22AND(R=49ORR=50)ANDB%(33,1)=22THENPRINTX$(53):S%(22,2)=30:S%(22,3)=23
- 2041IFP%=22AND(R=49ORR=50)ANDB%(33,1)=22THENG$(33)=X$(61):X$(55)="":GOTO110
- 2050IFP%=22AND(R=47ORR=48)ANDB%(34,1)=22THENPRINTX$(53):S%(22,2)=30:S%(22,3)=23
- 2051IFP%=22AND(R=47ORR=48)ANDB%(34,1)=22THENG$(33)=X$(61):X$(55)="":GOTO110
- 2061IFP%=27ANDB%(12,1)=27ANDB%(1,1)=0THENS%(27,3)=28:B%(12,1)=0:G$(22)=X$(58)
- 2080IFP%=21ANDR=53THENPRINTX$(47):S%(21,2)=29:B%(32,1)=0:B%(53,1)=-1:GOTO110
- 2090IFP%=13AND(R=18ORR=19)ANDB%(13,1)=13THENPRINTX$(18):GOTO110
- 2100IFP%=34ANDR=8THENPRINTX$(25):S%(34,3)=35:B%(5,1)=-1:B%(27,1)=-1:GOTO110
- 2110GOTO110
- 2120IFP%=10ANDB%(7,1)=0ANDS%(10,3)=0THENPRINTX$(27):S%(10,3)=5:G$(24)=X$(28):GOTO110
- 2125IFP%=10ANDB%(7,1)THENPRINTX$(30):GOTO110
- 2130IFP%=29ANDM%=0THENPRINTX$(29):GOTO110
- 2140IFB%(7,1)<>0THENPRINT"I don't have a gun!":GOTO250
- 2150PRINTX$(30):GOTO250
- 2160GOSUB3030
- 2170IFP%=27ANDR=28THENPRINTX$(31):S%(27,3)=28:GOTO110
- 2180IFP%=24THENPRINTX$(37):GOTO110
- 2190PRINT"Into what?":GOTO250
- 2200GOSUB3030
- 2210IFB%(8,1)=0ANDR=12THENPRINTX$(34):GOTO110
- 2211IFP%=12AND(R=26ORR=27)THENPRINTX$(40):GOTO110
- 2220IFP%=25AND(R=35ORR=36)THENPRINTX$(59):GOTO110
- 2230IFB%(15,1)=0ANDR=15THENPRINTX$(22):GOTO110
- 2240IFP%=24THENPRINTX$(37):GOTO110
- 2241IFP%=39ANDR=21THENPRINTX$(41):GOTO110
- 2243IFP%=14AND(R=1ORR=2)THENPRINTX$(42):GOTO110
- 2250IF(R=47ORR=48)ANDB%(33,1)=0THENPRINTX$(23):GOTO110
- 2260IF(R=22ORR=23)ANDB%(15,1)=0THENPRINTX$(22):GOTO110
- 2270PRINTX$(35):GOTO250
- 2280PRINT"I have:-"
- 2285:
- 2290F%=0
- 2300FORH=1TO3
- 2305IFV$(H)<>""THENPRINTV$(H):F%=1
- 2310NEXT
- 2320IFF%=0THENPRINT"nothing at all!"
- 2330GOTO250
- 2340IFP%=16ANDB%(21,1)=16THENPRINTX$(48)
- 2341IFP%=16ANDB%(21,1)=16THENS%(16,2)=21:S%(16,3)=22:B%(21,1)=0:GOTO110
- 2350GOTO110
- 2360GOSUB3030
- 2365IFR=25ANDB%(17,1)=0THEN GOTO 2376
- 2370IFB%(19,1)<>0 THEN PRINTX$(39):GOTO110
- 2372IFP%=42ANDR=28 AND B%(19,1)=0ANDS%(42,3)=0 THENPRINTX$(31):S%(42,3)=40:G$(23)=X$(24):GOTO110
- 2374IFP%=42ANDR=28 AND B%(19,1)=0ANDS%(42,3)=40 THENPRINTX$(33):GOTO110
- 2376IFP%=45ANDR=25 AND B%(17,1)=0ANDS%(45,1)=0 THENPRINTX$(20):S%(45,1)=46:B%(17,1)=-1:B%(26,1)=-1:GOTO1890
- 2377IFR=25 AND B%(17,1)=0 THENPRINTX$(32):GOTO110
- 2380PRINTX$(32):GOTO250
- 2390CLS:PRINT''"I'm as confused as you are..."
- 2391:
- 2395PRINT'"I suppose you could try praying...":GOTO250
- 2410X$(1)="The Pawnbroker rubs his hands together in glee. He grabs the ring and runs in to his shop."
- 2420X$(2)="Ben grabs the pot and runs off. He is shouting something about a present for Bill..."
- 2430X$(3)="You must be joking!"
- 2440X$(4)="What do you think I am? Have you seen those fangs, dripping in BLOOD!"
- 2450X$(5)="I know I am Superman, but even I can't move that!"
- 2460X$(6)="What do you think I am? A sucker?!"
- 2470X$(7)="All that glitters..."
- 2480X$(8)="I'm not carrying that! There's a dead body in there!"
- 2490X$(9)="The girl chases the frog and kisses it.In a blinding flash, the frog turns into the handsome Prince of Cenra!"
- 2500X$(10)="I'm not a thief you know! I need a coin..."
- 2510X$(11)="O.K."
- 2520X$(12)="The old dwarf takes the brandy and drinks it. He gives you a warm smile."
- 2530X$(13)="A handsome *PRINCE*"
- 2540X$(14)="An old dwarf. He is happy to come alongwith you now."
- 2550X$(15)="Albert still isn't feeling well enough to travel."
- 2560X$(16)="Healthy Albert!"
- 2570X$(17)="The frog hops away."
- 2580X$(18)="The coin fits in the slot. I get a box of chocolates."
- 2590X$(19)="I can't carry the whole machine!"
- 2600X$(20)="After a second... The lock opens."
- 2610X$(21)="The landlord grins at you and says 'I don't accept those.'"
- 2620X$(22)="There is an inscription written on it but I can't quite make it out."
- 2630X$(23)="The label reads 'For Rapid growth - use GROWMOREfertiliser.'"
- 2640X$(24)="The dark opening to a crypt"
- 2650X$(25)="The dwarf chases the hobgoblin away with his axe."
- 2660X$(26)="It seems like a good idea, but... Nothing happens."
- 2670X$(27)="The man lets out an agonizing scream! His body shrivels in mid-air. A Pile of dust falls to the ground. A monster starts to form from the dust!"
- 2680X$(28)="an evil smellingMonsterwith venom dripping from its pointed teeth."
- 2690X$(29)="Whoops! Missed!"
- 2700X$(30)="BANG! - Nothing happened."
- 2710X$(31)="TheVampirerecoils at the sight of thecrucifix and runs for its life!"
- 2720X$(32)="It doesn't seem to do anything at the moment."
- 2730X$(33)="Thevampirehas already left."
- 2740X$(34)="The*DIAMONDS*must be valuable."
- 2750X$(35)="I can't see anything unusual."
- 2760X$(36)="The landlord doesn't like that..."
- 2770X$(37)="It bears an inscription: 'A perfect gift for all.'"
- 2780X$(38)="I may be superman, but I just can't carry any more."
- 2790X$(39)="I've not got it - Dummy!"
- 2800X$(40)="The pots are rather tatty."
- 2810X$(41)="A worthless bauble."
- 2820X$(42)="It's too fast for me."
- 2830X$(43)="Watch out! I think I may have been spotted."
- 2840X$(44)="I've just beenATTACKED!"
- 2850X$(45)="I can't move it, it's too rusty."
- 2860X$(46)="You must be joking! With breath like that!"
- 2870X$(47)="It eats the mushrooms, and falls into a stupor."
- 2880X$(48)="Straight through the heart! I grab the*SPEAR*back quickly."
- 2890X$(49)="Orcs are far too vicious and nasty."
- 2900X$(50)="Seems like a good idea..."
- 2910X$(51)="The horse just fainted!"
- 2920X$(52)="The girl refuses to come!"
- 2930X$(53)="The beanstalk spurts into furious growth. I can use it to climb over the wall."
- 2940X$(54)="The dwarf refuses to come with you."
- 2950X$(55)="There is a wall here, but I can't climb it. The soil is good..."
- 2960X$(56)="Albert is too ill to travel."
- 2970X$(57)="It's my healthy friend*Albert*"
- 2980X$(58)="The altar moved aside. There are two passages behind it."
- 2990X$(59)="There's a half-decomposed body in there!"
- 3000X$(60)="I'm sorry - I don't know that word."
- 3010X$(61)="The beanstalk grows so much that I can climb the wall!"
- 3020RETURN
- 3030L$="":FORH=1TOLEN(Z$)
- 3040IF MID$(Z$,H,1)=" "THENL$=RIGHT$(Z$,(LEN(Z$)-H)):H=H+40
- 3050NEXT
- 3060R=0
- 3070L%=0:IFLEN(L$)<2THENRETURN
- 3080FORH=1TO53:IFLEFT$(N$(H),LEN(L$))=L$ THENL%=1:R=H
- 3090NEXT
- 3100RETURN
- 3110CLS
- 3111PRINT'TAB(9);CHR$(141);CHR$(129);"THE FOREST OF DOOM"
- 3112PRINT TAB(9);CHR$(141);CHR$(129);"THE FOREST OF DOOM"
- 3113PRINT'
- 3115PRINTTAB(14);CHR$(130);"An adventure"
- 3117PRINT'TAB(13);CHR$(130);"By S.W. Lucas"
- 3118PRINT''"Many months ago your lifelong friend, Albert, set out to rescue the Prince of Cenra who has been captured by the evil witch and is reputed to have been turnedinto a poor little frog."
- 3119PRINT"Albert has never returned and you must set out to find him and in the process you must also find four items of treasure which were stolen from your land by the evil witch."
- 3120PRINT'''TAB(4);CHR$(130);"Press the SPACE BAR to begin"
- 3130REM *FX15,0
- 3135REPEATUNTILGET=32
- 3140RETURN
- 3150A%=0
- 3155IFB%(6,1)=2THENA%=A%+1
- 3157IFB%(1,1)=2THENA%=A%+1
- 3160IFB%(8,1)=2THENA%=A%+1
- 3170IFB%(9,1)=2THENA%=A%+1
- 3180IFB%(10,1)=2THENA%=A%+1
- 3190IFB%(15,1)=2THENA%=A%+1
- 3200RETURN
- 3210CLS
- 3220PRINT''"You dirty, filthy beast!"
- 3230PRINT"Go and wash your mouth out."
- 3235PRINT''"You had better apologise to me!"
- 3240INPUTA$:IFLEFT$(A$,5)="SORRY"OR RIGHT$(A$,5)="SORRY" THEN GOTO 3250 ELSEPRINT"That's not good enough!":GOTO3240
- 3250CLS:PRINT"That's better!":GOTO110
- 3260IFP%=27THEN4000
- 3261PRINT''"That doesn't seem to help."
- 3265PRINT'"Maybe I didn't try hard enough?"
- 3270GOTO250
- 3280GOSUB3030
- 3290IFLEFT$(L$,3)="MON"THENPRINT"The monkey is not pleased...":GOTO250
- 3300PRINT"Don't be silly!":GOTO250
- 4000:
- 4005S%(27,2)=39:S%(27,3)=28:G$(22)=X$(58)
- 4010:
- 4020FORW=1TO5000:NEXT
- 4030PRINT'''"This is absolutely amazing!"
- 4040:
- 4050FORW=1TO5000:NEXT
- 4060PRINT''"The altar slides to one side... There are two passages behind it."
- 4070GOTO250
- 4500GOSUB3030:IFP%=20ANDR=52 PRINT"Well... You DID ask me to flush it..."
- 4510IFP%<>20THENPRINT"Pull what?!"
- 4530GOTO110
- 5000DEFPROCPARSER
- 5010IF LEN(Z$)=1 THEN PROCP2
- 5020IF LEFT$(Z$,3)="GO "THEN Z$=RIGHT$(Z$,LEN(Z$)-3)
- 5025IF LEFT$(Z$,2)="X "THEN Z$=RIGHT$(Z$,LEN(Z$)-2):Z$="EXAM "+Z$
- 5026B$=LEFT$(Z$,4):GOSUB3030
- 5030ENDPROC
- 6000DEFPROCP2
- 6010IFZ$="N"ORZ$="S"ORZ$="E"ORZ$="W" THEN ZS=1 ELSE ZS=0
- 6020IFZ$="I"THEN Z$="INVE":ENDPROC
- 6030IFZ$="L"THEN Z$="LOOK":ENDPROC
- 6040IFZ$="N"THEN Z$="NORT":ENDPROC
- 6050IFZ$="S"THEN Z$="SOUT":ENDPROC
- 6060IFZ$="E"THEN Z$="EAST":ENDPROC
- 6070IFZ$="W"THEN Z$="WEST":ENDPROC
- 6080ENDPROC
- 7000IF ERR=17 THEN RUN
- 7010CLS:REPORT:PRINT" at line ";ERL
- 7020ENDbert, set out TO rescue the Prince of Cenra who has been captured by the evil witch AND is reputed TO have been turnedinto a poor little frog."
- 3119PRINT"Albert has never returned AND you must set out TO find him AND in the process you must also find four items of treasure which were stolen from your land by the evil witch."
- 3120PRINT'''TAB(4);CHR$(130);"Press the SPACE BAR TO begin"
- 3130REM *FX15,0
- 3135REPEATUNTILGET=32
- 3140RETURN
- 3150A%=0
- 3155IFB%(6,1)=2THENA%=A%+1
- 3157IFB%(1,1)=2THENA%=A%+1
- 3160IFB%(8,1)=2THENA%=A%+1
- 3170IFB%(9,1)=2THENA%=A%+1
- 3180IFB%(10,1)=2THENA%=A%+1
- 3190IFB%(15,1)=2THENA%=A%+1
- 3200RETURN
- 3210CLS
- 3220PRINT''"You dirty, filthy beast!"
- 3230PRINT"GO AND wash your mouth out."
- 3235PRINT''"You had better apologise TO me!"
- 3240INPUTA$:IFLEFT$(A$,5)="SORRY"OR RIGHT$(A$,5)="SORRY" THEN GOTO 3250 ELSEPRINT"That's not good enough!":GOTO3240
- 3250CLS:PRINT"That's better!":GOTO110
- 3260IFP%=27THEN4000
- 3261PRINT''"That doesn't seem to help."
- 3265PRINT'"Maybe I didn't try hard enough?"
- 3270GOTO250
- 3280GOSUB3030
- 3290IFLEFT$(L$,3)="MON"THENPRINT"The monkey is not pleased...":GOTO250
- 3300PRINT"Don't be silly!":GOTO250
- 4000:
- 4005S%(27,2)=39:S%(27,3)=28:G$(22)=X$(58)
- 4010:
- 4020FORW=1TO5000:NEXT
- 4030PRINT'''"This is absolutely amazing!"
- 4040:
- 4050FORW=1TO5000:NEXT
- 4060PRINT''"The altar slides to one side... There are two passages behind it."
- 4070GOTO250
- 4500GOSUB3030:IFP%=20ANDR=52 PRINT"Well... You DID ask me to flush it..."
- 4510IFP%<>20THENPRINT"Pull what?!"
- 4530GOTO110
- 5000DEFPROCPARSER
- 5010IF LEN(Z$)=1 THEN PROCP2
- 5020IF LEFT$(Z$,3)="GO "THEN Z$=RIGHT$(Z$,LEN(Z$)-3)
- 5025IF LEFT$(Z$,2)="X "THEN Z$=RIGHT$(Z$,LEN(Z$)-2):Z$="EXAM "+Z$
- 5026B$=LEFT$(Z$,4):GOSUB3030
- 5030ENDPROC
- 6000DEFPROCP2
- 6010IFZ$="N"ORZ$="S"ORZ$="E"ORZ$="W" THEN ZS=1 ELSE ZS=0
- 6020IFZ$="I"THEN Z$="INVE":ENDPROC
- 6030IFZ$="L"THEN Z$="LOOK":ENDPROC
- 6040IFZ$="N"THEN Z$="NORT":ENDPROC
- 6050IFZ$="S"THEN Z$="SOUT":ENDPROC
- 6060IFZ$="E"THEN Z$="EAST":ENDPROC
- 6070IFZ$="W"THEN Z$="WEST":ENDPROC
- 6080ENDPROC
- 7000IF ERR=17 THEN RUN
- 7010CLS:REPORT:PRINT" at line ";ERL
- 7020END
Add Comment
Please, Sign In to add comment