2 on break goto 65100
3 ON ERROR GOTO 61000
5 GOSUB 29000
8 RESTORE 30000
10 lc=22:oc=11
15 ex=0
20 ro=13:r2=999
25 DIM ob$(oc):DIM od$(oc):DIM op(oc):DIM ol(oc):DIM s1$(oc):DIM s2$(oc)
28 DIM lo$(lc):DIM ld$(lc):DIM en(lc):DIM es(lc):DIM ee(lc):DIM ew(lc)
30 DIM eu(lc):DIM ed(lc)
35 GOSUB 37000
40 FOR x=0 TO oc
50 READ ob$(x),s1$(x),s2$(x)
55 READ op(x),ol(x)
60 READ od$(x)
70 NEXT
75 GOTO 140
80 FOR x=0 TO oc
90 PRINT ob$(x)
100 IF op(x) THEN PRINT "is pickable!"
110 PRINT od$(x)
115 PRINT
120 NEXT
130 END
140 FOR x=1 TO lc
150 READ en(x),es(x),ew(x),ee(x),eu(x),ed(x)
160 NEXT
170 FOR x=0 TO lc
180 READ lo$(x)
190 NEXT
500 GOSUB 28000
510 GOSUB 25000
530 GOTO 500
15000 REM look object
15010 a$=LEFT$(RIGHT$(y$,LEN(y$)-5),4)
15020 IF a$<>"plat" THEN GOTO 15060
15025 IF ol(9)=0 OR ol(9)=ro THEN GOTO 15030
15028 PRINT "I can't see a plate here!":PRINT
15029 RETURN
15030 PRINT od$(9)
15040 PRINT
15050 RETURN
15060 IF a$<>"long" AND a$<>"ston" THEN GOTO 15100
15070 IF ol(0)=0 OR ol(0)=ro THEN GOTO 15090
15080 PRINT "I can't see a stone here!":PRINT:RETURN
15090 PRINT od$(0):PRINT:RETURN
15100 IF a$<>"glue" THEN GOTO 15140
15110 IF ol(1)=0 OR ol(1)=ro THEN GOTO 15130
15120 PRINT "I can't see glue here!":PRINT:RETURN
15130 PRINT od$(1):PRINT:RETURN
15140 IF a$<>"heal" AND a$<>"poti" THEN GOTO 15180
15150 IF ol(2)=0 OR ol(2)=ro THEN GOTO 15170
15160 PRINT "I can't see a health potion here!":PRINT:RETURN
15170 PRINT od$(2):PRINT:RETURN
15180 IF a$<>"para" AND a$<>"brok" THEN GOTO 15220
15190 IF ol(3)=0 OR ol(3)=ro OR ol(4)=0 OR ol(4)=ro THEN GOTO 15210
15200 PRINT "I can't see a parachute here!":PRINT:RETURN
15210 IF ol(3)=0 OR ol(3)=ro THEN PRINT od$(3):PRINT:RETURN
15215 IF ol(4)=0 OR ol(4)=ro THEN PRINT od$(4):PRINT:RETURN
15220 IF a$<>"stra" AND a$<>"pill" THEN GOTO 15260
15230 IF ol(5)=0 OR ol(5)=ro THEN GOTO 15250
15240 PRINT "I can't see a strange pill here!":PRINT:RETURN
15250 PRINT od$(5):PRINT:RETURN
15260 IF a$<>"swor" THEN GOTO 15300
15270 IF ol(6)=0 OR ol(6)=ro THEN GOTO 15290
15280 PRINT "I can't see a sword here!":PRINT:RETURN
15290 PRINT od$(6):PRINT:RETURN
15300 IF a$<>"bath" AND a$<>"hold" THEN GOTO 15340
15310 IF ol(7)=0 OR ol(7)=ro OR ol(8)=0 OR ol(8)=ro THEN GOTO 15330
15320 PRINT "I can't see a batholder here!":PRINT:RETURN
15330 IF ol(7)=0 OR ol(7)=ro THEN PRINT od$(7):PRINT:RETURN
15335 IF ol(8)=0 OR ol(8)=ro THEN PRINT od$(8):PRINT:RETURN
15340 IF a$<>"bers" AND a$<>"8 be" THEN GOTO 15380
15350 IF ol(10)=0 OR ol(10)=ro THEN GOTO 15370
15360 PRINT "I can't see berserkers here!":PRINT:RETURN
15370 PRINT od$(10):PRINT:RETURN
15380 IF a$<>"ghos" AND a$<>"8 gh" THEN GOTO 15490
15390 IF ol(11)=0 OR ol(11)=ro THEN GOTO 15410
15400 PRINT "I can't see ghosts here!":PRINT:RETURN
15410 PRINT od$(11):PRINT:RETURN
15490 GOSUB 50000:RETURN
19500 a$=LEFT$(RIGHT$(y$,LEN(y$)-5),4)
19510 IF a$="plat"THEN GOSUB 19900:RETURN
19515 print "You can't read that!":print
19520 RETURN
19900 REM read plate
19910 x=0:IF ro=13 THEN x=23
19928 IF x=0 THEN PRINT "I can't see a plate here!":PRINT:RETURN
19929 CLS
19930 PRINT "Computer games lost their soul,"
19931 PRINT "just like humans did,"
19932 PRINT "when they both got big."
19933 PRINT "Too big to shine."
19934 PRINT
19935 PRINT "www.feralrebel.com"
19940 PRINT:PRINT "Press any key."
19945 WHILE INKEY$="":WEND
19970 GOSUB 28005
19980 RETURN
20000 IF y$="n" OR y$="north" OR LEFT$(y$,4)="go n" THEN GOSUB 24800:RETURN
20010 IF y$="s" OR y$="south" OR LEFT$(y$,4)="go s" THEN GOSUB 24840:RETURN
20020 IF y$="w" OR y$="west" OR LEFT$(y$,4)="go w" THEN GOSUB 24880:RETURN
20030 IF y$="e" OR y$="east" OR LEFT$(y$,4)="go e" THEN GOSUB 24920:RETURN
20040 IF y$="u" OR y$="up" OR LEFT$(y$,4)="go u" THEN GOSUB 24700:RETURN
20050 IF y$="d" OR y$="down" OR LEFT$(y$,4)="go d" THEN GOSUB 24740:RETURN
20060 IF y$="look" THEN GOSUB 28005:RETURN
20070 IF LEFT$(y$,5)="read "THEN GOSUB 19500:RETURN
20080 IF LEFT$(y$,5)="look "THEN GOSUB 15000:RETURN
20090 IF LEFT$(y$,4)="inve"THEN GOSUB 40000:RETURN
20100 IF LEFT$(y$,5)="take " THEN GOSUB 41000:RETURN
20110 IF LEFT$(y$,5)="drop " THEN GOSUB 42000:RETURN
20120 IF LEFT$(y$,4)="help" THEN GOSUB 43000:RETURN
20130 IF LEFT$(y$,3)="use" THEN GOSUB 46000:RETURN
20140 IF LEFT$(y$,4)="load" THEN GOSUB 44000:RETURN
20150 IF LEFT$(y$,4)="save" THEN GOSUB 45000:RETURN
20170 IF LEFT$(y$,6)="drink " THEN GOSUB 47000:RETURN
20180 IF LEFT$(y$,4)="eat " THEN GOSUB 48000:RETURN
20185 if left$(y$,4)="quit" or left$(y$,4)="exit" then gosub 62000:return
20190 GOTO 50000
24699 RETURN
24700 IF eu(ro) THEN ro=eu(ro):RETURN
24710 GOSUB 24960:RETURN
24740 IF ed(ro)=0 THEN GOTO 24750
24742 IF ro=21 THEN GOTO 59000
24750 GOSUB 24960:RETURN
24800 IF en(ro) THEN ro=en(ro):RETURN
24810 GOSUB 24960:RETURN
24840 IF es(ro) THEN ro=es(ro):RETURN
24850 GOSUB 24960:RETURN
24880 IF ew(ro) THEN ro=ew(ro):RETURN
24890 GOSUB 24960:RETURN
24920 IF ee(ro) THEN ro=ee(ro):RETURN
24930 GOSUB 24960:RETURN
24960 PRINT"You can't go that way!"
24965 PRINT
24970 RETURN
25000 INPUT a$
25010 y$=a$
25011 FOR I = 1 TO LEN(Y$)
25012 C$ = MID$(Y$, I, 1)
25013 IF C$ >= "A" AND C$ <= "Z" THEN C$ = CHR$(ASC(C$) + 32)
25014 MID$(Y$, I, 1) = C$
25015 NEXT I
25016 GOSUB 20000
25020 RETURN
28000 IF r2=ro THEN GOTO 28200
28005 r2=ro
28008 CLS
28020 PRINT lo$(ro)
28030 PRINT
28040 PRINT justify ld$(ro):PRINT
28045 bitblt ro,0,0
28050 y=0:FOR x=0 TO oc
28060 IF ol(x)=ro THEN y=y+1
28070 NEXT
28080 IF y=0 THEN GOTO 28200
28090 PRINT "You see:"
28100 FOR x=0 TO oc
28110 IF ol(x)=ro THEN PRINT ob$(x)
28120 NEXT
28130 PRINT
28200 RETURN
29000 color 15,0:SCREEN 1024,768
29010 txtwindow 1,31,128,48
29015 chdir "pics"
29020 for pic%=1 to 22
29030 if pic%<10 then lenname=1 else lenname=2
29040 loadbmp pic%,right$(str$(pic%),lenname)+".BMP"
29050 next
29060 chdir ".."
29990 RETURN
30000 DATA "A long stone","long","ston"
30002 DATA 1,18
30005 DATA "A long stone from Tetris"
30010 DATA "Glue","glue","glue"
30012 DATA 1,99
30015 DATA "A block of glue fallen down in Arkanoid"
30020 DATA "A health potion","heal","poti"
30022 DATA 1,10
30025 DATA "A full health potion from Gauntlet"
30030 DATA "A broken parachute","brok","para"
30032 DATA 1,8
30035 DATA "The parachute has a small rip in the middle of it"
30040 DATA "A fixed parachute","fixe","para"
30042 DATA 1,99
30045 DATA "The parachute is repaired with glue"
30050 DATA "A strange pill","stra","pill"
30052 DATA 1,1
30055 DATA "A strange pill from Pacman"
30060 DATA "A sword","swor","swor"
30062 DATA 1,19
30065 DATA "A sword from Prince of Persia"
30070 DATA "A batholder","bath","hold"
30072 DATA 0,14
30075 DATA "The batholder looks like it could hold along item"
30080 DATA "A batholder with a long stone","bath","hold"
30082 DATA 0,99
30085 DATA "The batholder is now functional"
30090 DATA "A plate","plat","plat"
30100 DATA 0,13
30110 DATA "There is something written on it. You may want to read it."
30120 DATA "8 Berserkers, ready to attack!","bers","8 be"
30130 DATA 0,9
30140 DATA "They seem to be very angry!"
30150 DATA "8 Ghosts, waiting for something","ghos","8 gh"
30160 DATA 0,99
30170 DATA "You remember them from a game!"
35000 DATA 00,04,00,00,00,00
35010 DATA 00,00,00,03,00,00
35020 DATA 00,06,02,00,00,00
35030 DATA 01,07,00,05,00,00
35040 DATA 00,00,04,06,00,00
35050 DATA 03,09,05,00,00,00
35060 DATA 04,10,00,08,00,00
35070 DATA 00,00,07,00,00,00
35080 DATA 06,12,00,00,00,00
35090 DATA 07,13,00,11,00,00
35100 DATA 00,00,10,12,00,00
35110 DATA 09,15,11,00,00,00
35120 DATA 10,16,00,14,00,00
35130 DATA 00,00,13,15,00,00
35140 DATA 12,18,14,00,00,00
35150 DATA 13,19,00,17,00,00
35160 DATA 00,00,16,18,00,00
35170 DATA 15,00,17,00,00,00
35180 DATA 16,00,00,20,00,00
35190 DATA 00,00,19,21,00,00
35200 DATA 00,00,20,00,00,22
35210 DATA 00,00,00,00,21,00
36000 DATA "Inventory"
36010 DATA "Pacman"
36020 DATA "Light Forest"
36030 DATA "Creepy Forest"
36040 DATA "Mossy Forest"
36050 DATA "Tall Forest"
36060 DATA "Green Forest"
36070 DATA "Dense Forest"
36080 DATA "Lemmings"
36090 DATA "Bard's Tale"
36100 DATA "Gauntlet"
36110 DATA "Noisy Forest"
36120 DATA "Uneven Forest"
36130 DATA "Deep Forest"
36140 DATA "Arkanoid"
36150 DATA "Untouched Forest"
36160 DATA "Sensory Forest"
36170 DATA "Silent Forest"
36180 DATA "Tetris"
36190 DATA "Prince"
36200 DATA "Thorny Forest"
36210 DATA "The Architect"
36220 DATA "The Roots"
37000 REM define room descriptions
37005 ld$(0)="Inventory"
37010 ld$(1)="You step into a clearing where the wind hums with rhythm. The air is charged, pulsing in waves, as if the forest is chewing through time itself."
37020 ld$(1)=ld$(1)+" Glowing paths wind between trees, sharp and narrow - a perfect maze worn smooth by something that circles always, and never rests."
37030 ld$(1)=ld$(1)+" Ghost-lights drift from trunk to trunk - watching, waiting. Hunger hangs in the air like static."
37040 ld$(2)="Sunlight falls freely through the canopy here, warm and weightless, scattering across the forest floor in shifting shapes."
37050 ld$(2)=ld$(2)+" The trees stand wide apart, their limbs raised not in warning, but in welcome. Here, silence is not heavy - it breathes with the rustle of leaves, the hush of wings, the whisper of peace."
37060 ld$(2)=ld$(2)+" You sense the forest watching still, but less like a sentinel, more like a patient friend."
37070 ld$(3)="Shadows drape themselves across every root and branch, moving, though the wind is still. Shapes flicker at the edge of your vision, never quite there."
37080 ld$(3)=ld$(3)+" The air is thick with silence that has weight, like it's listening - or has been waiting too long to speak at all."
37090 ld$(3)=ld$(3)+" Moss clings to the bark like something's trying to hold the forest from dying. Or waking."
37100 ld$(4)="Moss carpets the forest floor like sleeping velvet, swallowing each sound before it can echo. The ground feels softer than memory."
37110 ld$(4)=ld$(4)+" Branches sag beneath the weight of age, draped in green like ancient priests. Every stone and stump breathes beneath a layer of life."
37120 ld$(4)=ld$(4)+" The air is cool, damp with quiet grace. You walk as though inside the lungs of something vast and dreaming."
37130 ld$(5)="The trees rise like ancient towers, their trunks straight and endless, as if the sky were not above but deep in the earth instead."
37140 ld$(5)=ld$(5)+" Their bark is furrowed with time, a language of patience written by wind and rain. Light filters down in rare, thin threads."
37150 ld$(5)=ld$(5)+" It feels like a place not meant for men, but for thoughts that take decades to finish forming."
37160 ld$(6)="Leaves shimmer with impossible greens, each one glowing like a thought of spring. The forest here feels young, despite its ancient bones."
37170 ld$(6)=ld$(6)+" Every surface pulses with quiet energy - roots, bark, and even the air itself vibrate with silent music you can just barely feel."
37180 ld$(6)=ld$(6)+" You inhale and it tastes like renewal. Like a forest just born from the dream of rain."
37190 ld$(7)="Trees crowd so close, they seem to lean against each other, whispering secrets only roots can understand. The light struggles to get through."
37200 ld$(7)=ld$(7)+" Underfoot, the ground is tangled with roots and shadows. Paths shift, vanish, reappear like they were never real to begin with."
37210 ld$(7)=ld$(7)+" You push between the trunks like a bee through a living maze. Even your own footsteps feel lost."
37220 ld$(8)="Tiny trails crisscross the forest like etched circuits. Perfectly spaced holes dot the ground - too neat for nature to have planned alone."
37230 ld$(8)=ld$(8)+" Above, glowing shapes descend in silent lines. Some drift gently, parachutes of light catching them like soft memories of falling."
37240 ld$(8)=ld$(8)+" They move in loops that never end. Not by choice, but design - their purpose is written deeper than roots."
37250 ld$(9)="A crumbling street of cobblestone cuts through the woods. Lamps flicker, though no hands have lit them. A tavern door stands open, music faint beyond."
37260 ld$(9)=ld$(9)+" Stone statues of warriors lean against trees, swords raised. But one moves. And then another. They step forward as if woken from code."
37270 ld$(9)=ld$(9)+" Spells crackle like fireflies. In the distance, you hear a bard tuning a lute. He's playing for your soul."
37280 ld$(10)="The trees here are broken, scorched and split like pillars in a ruined temple. Cracks in the earth pulse red. A gate rattles nearby."
37290 ld$(10)=ld$(10)+" Monsters burst from stone totems, hungry and endless. Every second you delay adds another enemy. Somewhere, a voice yells "+CHR$(34)+"Wizard needs food - badly!"+CHR$(34)
37300 ld$(10)=ld$(10)+" You dodge between roots and fireballs as if the forest itself is testing your reflexes. This is not a dream. This is Gauntlet."
37310 ld$(11)="This part of the forest screams its own existence. Branches clash like swords, leaves hiss with every gust. No moment is quiet."
37320 ld$(11)=ld$(11)+" Birds argue overhead in harsh syllables. Even the insects seem to march in angry tempo. The ground pulses, as if drumming from below."
37330 ld$(11)=ld$(11)+" It is not threatening. Just too alive. Like a thousand thoughts all trying to be heard at once."
37340 ld$(12)="The forest lurches in all directions - no step is straight, no tree truly stands. Roots jut like bones, earth spawns beneath you."
37350 ld$(12)=ld$(12)+" Branches bend low on one side, sky wide and blinding on the other. Even shadows seem tilted, cast by a sun that spins sideways."
37360 ld$(12)=ld$(12)+" You find no center here. Only motion. And a forest that refuses to settle."
37370 ld$(13)="You find yourself in the heart of woods so old, even moss dares not grow freely. The air is dense - not with heat, but with memory."
37380 ld$(13)=ld$(13)+" Light filters down in fractured beams as if thinking twice before touching the ground. Roots twist in patterns no tree should know."
37390 ld$(13)=ld$(13)+" Something is here. Not watching. Waiting. As if the forest itself knows you're the one it needs."
37400 ld$(14)="The clearing opens like a perfect grid, each stone tile locked in place, moss creeping only where allowed. No line is random."
37410 ld$(14)=ld$(14)+" Above, glowing blocks hover in strange formation, shifting as if by unseen commands. A paddle of light hums at ground level."
37420 ld$(14)=ld$(14)+" You feel rhythm here - not music, but mechanics. As if nature paused to dream in blocks and motion."
37430 ld$(15)="The forest thickens, not in menace but in presence. Nothing broken, nothing cut. Branches arch with dignity. Roots rest untouched."
37440 ld$(15)=ld$(15)+" There are no trails. No echoes of feet. Even wind seems to ask permission before brushing the leaves."
37450 ld$(15)=ld$(15)+" You lower your breath. The silence here feels earned, like a secret kept by the earth itself."
37460 ld$(16)="The air here tingles on your skin before you even breathe it. Scents layer like song: damp bark, green fire, distant rain."
37470 ld$(16)=ld$(16)+" Every leaf glows, every root vibrates. A thousand whispers graze your thoughts. None speak words, yet all are urgent."
37480 ld$(16)=ld$(16)+" You blink and light refracts into taste. You move, and the forest inhales with you."
37490 ld$(17)="No birds. No wind. Even your heartbeat seems too loud here. The silence does not invite. It contains."
37500 ld$(17)=ld$(17)+" Branches hold their breath. Leaves stay motionless. The ground feels padded by years of unbroken hush."
37510 ld$(17)=ld$(17)+" You do not feel watched. You feel kept. As if sound was stolen long ago - and nothing dares take it back."
37520 ld$(18)="The forest opens into a space too exact. Stone blocks lie flush, patterned with intent. Moss creeps only in straight lines."
37530 ld$(18)=ld$(18)+" Above, giant forms rotate silently - stones, zigzag slabs. Drifting like they search for a perfect fit in the air."
37540 ld$(18)=ld$(18)+" You step carefully. It feels like moving could trigger a pattern older than logic, etched in root and memory."
37550 ld$(19)="Stone archways rise from tangled vines - some crumbled, some still sharp with edge. Platforms hang in air, daring memory."
37560 ld$(19)=ld$(19)+" Gaps yawn between mossy ledges, their depths dark with time. You feel the urge to run, to leap - and to look behind."
37570 ld$(19)=ld$(19)+" This place remembers motion. Every step feels tested, every silence taut with a blade unsprung."
37580 ld$(20)="Branches clutch at you with claws. Thorns line every path, crimson-tipped and sharp as unsaid truths."
37590 ld$(20)=ld$(20)+" Even the undergrowth bristles with spite. Each step must be chosen, earned, endured. Nothing flows. Everything resists."
37600 ld$(20)=ld$(20)+" You wonder if this place grew bitter, or was born this way, woven from refusal and roots."
37610 ld$(21)="The trees part with reverence, revealing a circle of stone sunk deep into moss - too perfect to be natural."
37620 ld$(21)=ld$(21)+" At its center, a hole yawns into shadow, swallowing light without echo. No steps. No ropes. Just the fall."
37630 ld$(21)=ld$(21)+" A hush settles on the forest. As if all it ever was - game, dream, memory - leads to this place."
37640 ld$(22)="The descent ends in a cavernous hollow, where roots hang like wires, pulsing with soft light. A forest beneath the forest, alive and strange."
37650 ld$(22)=ld$(22)+" Floppy disks spin between ferns. Ancient drives clatter in rhythm, echoing pulses that seem to answer your heartbeat. Lights blink in hues you've never named."
37660 ld$(22)=ld$(22)+" In the center, tangled in mycelium and root, lies a shape - metallic, immense, half grown into the earth. The code it once ran now loops in silence."
37670 ld$(22)=ld$(22)+" It doesn't move, but it feels you. Feels your steps. Feels that something old has arrived. Maybe even... hope."
37680 RETURN
40000 PRINT "You are carrying:"
40005 y=0
40010 FOR x=0 TO oc
40020 IF ol(x)=0 THEN PRINT ob$(x):y=y+1
40030 NEXT
40035 IF y=0 THEN PRINT "Nothing"
40040 PRINT
40050 RETURN
41000 a$=LEFT$(RIGHT$(y$,LEN(y$)-5),4)
41010 IF a$="brok" OR a$="fixe" OR a$="para" THEN GOTO 41700
41050 y=0
41100 FOR x=0 TO oc
41110 IF a$=s1$(x) OR a$=s2$(x) THEN GOSUB 41500:y=1
41120 NEXT
41130 IF y=0 THEN GOSUB 50000:RETURN
41140 RETURN
41500 IF y=1 THEN RETURN
41505 IF ol(x)=ro AND op(x)=0 THEN PRINT "You can't take this!":PRINT:RETURN
41507 IF ol(x)=0 THEN PRINT "You already have this item!":PRINT:RETURN
41508 IF ol(x)<>ro THEN PRINT "You can't see this item!":PRINT:RETURN
41510 IF ol(x)=ro AND op(x)=1 THEN GOSUB 41600
41520 RETURN
41600 ol(x)=0
41610 PRINT ob$(x)" taken!":PRINT
41620 RETURN
41700 IF ol(3)=0 OR ol(4)=0 THEN PRINT "You already have this item!":PRINT:RETURN
41705 IF ol(3)=ro THEN GOTO 41800
41710 IF ol(4)=ro THEN GOTO 41900
41720 PRINT "You can't take this!":PRINT:RETURN
41800 REM take broken parachute
41810 IF a$<>"brok" AND a$<>"para"THEN GOTO 41720
41820 ol(3)=0:PRINT ob$(3)" taken!":PRINT:RETURN
41900 REM take fixed parachute
41910 IF a$<>"fixe" AND a$<>"para"THEN GOTO 41720
41920 ol(4)=0:PRINT ob$(4)" taken!":PRINT:RETURN
42000 a$=LEFT$(RIGHT$(y$,LEN(y$)-5),4)
42050 y=0
42100 FOR x=0 TO oc
42110 IF a$=s1$(x) OR a$=s2$(x) THEN GOSUB 42500:y=1
42120 NEXT
42130 IF y=0 THEN GOSUB 50000:RETURN
42140 RETURN
42500 IF y=1 THEN RETURN
42505 IF ol(x)<>0 THEN PRINT "You don't have this item!":PRINT:RETURN
42510 ol(x)=ro:PRINT ob$(x)" dropped!":PRINT
42520 RETURN
43000 CLS
43010 PRINT "Commands:"
43020 PRINT
43030 PRINT "take <object>"
43040 PRINT "drop <object>"
43050 PRINT "look / look <object>"
43060 PRINT "use <object> with <object>"
43070 PRINT "read <object>"
43072 PRINT "drink <object>"
43074 PRINT "eat <object>"
43080 PRINT "inventory"
43090 PRINT "save"
43100 PRINT "load"
43110 PRINT "help"
43112 print "quit/exit"
43115 PRINT "[go] <n/s/w/e/u/d>"
43120 PRINT
43130 PRINT "Press any key."
43200 WHILE INKEY$="":WEND
43225 GOSUB 28005
43230 RETURN
44000 GOSUB 44800
44010 if a=0 then print:return
44040 iserror=0
44050 OPEN "I",#1,na$
44060 if iserror=1 then return
44110 FOR x=0 TO oc
44120 INPUT#1,ol(x)
44130 NEXT
44140 INPUT#1,ex
44150 INPUT#1,ro
44155 CLOSE #1
44160 r2=999
44170 RETURN
44800 INPUT "Game number (1-9), 0 for abort";a
44805 IF a<0 OR a>9 THEN GOTO 44800
44810 na$=RIGHT$(STR$(a),1)
44820 na$="game"+na$
44830 RETURN
44860 NEXT
45000 GOSUB 44800
45010 if a=0 then print:return
45040 OPEN "O",#1,na$
45050 FOR x=0 TO oc
45060 PRINT#1,ol(x)
45070 NEXT
45080 PRINT#1,ex
45090 PRINT#1,ro
45130 r2=999
45135 CLOSE #1
45140 RETURN
46000 t$=MID$(y$,5)
46010 x=1:s=0:s1=0:s2=0:er=0
46015 IF LEN(t$)=0 THEN er=1:GOTO 46900
46020 IF MID$(t$,x,1)=" "THEN GOSUB 46800:IF er=1 THEN GOTO 46900
46030 IF x=LEN(t$)THEN GOTO 46100
46040 x=x+1
46050 GOTO 46015
46100 IF s1=0 OR s2=0 THEN GOTO 46900
46105 IF er=1 THEN GOTO 46900
46110 o1$=LEFT$(t$,s1-1)
46120 o2$=RIGHT$(t$,LEN(t$)-s2)
46125 o1$=LEFT$(o1$,4)
46126 o2$=LEFT$(o2$,4)
46130 o1=999:o2=999
46140 FOR x=0 TO oc
46150 IF o1$=s1$(x) OR o1$=s2$(x) THEN o1=x
46160 IF o2$=s1$(x) OR o2$=s2$(x) THEN o2=x
46165 NEXT
46170 IF o1=999 OR o2=999 THEN GOTO 46900
46180 IF o1=0 AND o2=7 THEN GOTO 52000
46190 IF o1=0 AND o2=8 THEN GOTO 52000
46200 IF o1=7 AND o2=0 THEN GOTO 52000
46210 IF o1=8 AND o2=0 THEN GOTO 52000
46220 IF o1=1 AND o2=3 THEN GOTO 53000
46230 IF o1=1 AND o2=4 THEN GOTO 53000
46240 IF o1=3 AND o2=1 THEN GOTO 53000
46250 IF o1=4 AND o2=1 THEN GOTO 53000
46260 IF o1=6 AND o2=10 THEN GOTO 54000
46270 IF o1=10 AND o2=6 THEN GOTO 54000
46500 PRINT "You can't combine this!":PRINT:RETURN
46800 IF MID$(t$,x,6)=" with " THEN s2=x+5
46810 IF s=0 THEN s1=x
46820 s=s+1
46840 RETURN
46900 PRINT "Use what with what?":PRINT:RETURN
47000 a$=LEFT$(RIGHT$(y$,LEN(y$)-6),4)
47010 IF a$="poti" OR a$="heal" THEN GOTO 47045
47020 PRINT "You can't drink that!"
47030 PRINT
47040 RETURN
47045 IF ol(2)<>0 THEN GOTO 47300
47050 IF ol(11)<>9 THEN GOTO 47200
47060 PRINT "You drink the potion and feel your life coming back to you!"
47070 PRINT
47080 ol(2)=99
47090 RETURN
47200 PRINT "You don't see a reason to drink the health potion now."
47210 PRINT:RETURN
47300 PRINT "You don't have the health potion!":PRINT:RETURN
48000 a$=LEFT$(RIGHT$(y$,LEN(y$)-4),4)
48010 IF a$="pill" THEN GOTO 48045
48015 IF a$="ghos" OR a$="8 gh"THEN GOTO 48400
48020 PRINT "You can't eat that!"
48030 PRINT
48040 RETURN
48045 IF ol(5)<>0 THEN GOTO 48300
48047 IF ol(11)<>9 THEN GOTO 48200
48050 PRINT "You eat the pill. You feel like you could eat some... dead?"
48060 PRINT
48070 ol(5)=99
48080 RETURN
48200 PRINT "You don't see a reason to eat the pill now."
48210 PRINT:RETURN
48300 PRINT "You don't have the pill!":PRINT:RETURN
48400 IF ro<>9 THEN GOTO 48600
48410 IF ol(11)<>9 THEN GOTO 48600
48420 IF ol(5)<>99 THEN GOTO 48700
48430 IF ol(2)<>99 THEN GOTO 48800
48435 ol(11)=99:ex=1
48440 PRINT "You open your mouth."
48450 PRINT "The first ghost enters like a sigh."
48455 PRINT
48460 PRINT "The second, like fog."
48470 PRINT "They don't scream."
48480 PRINT "They shiver."
48490 PRINT
48500 PRINT "You feel them settle in your bones,"
48505 PRINT "not as hunger satisfied,"
48510 PRINT "but as something ancient returned."
48515 PRINT
48520 PRINT "Eight ghosts."
48525 PRINT "One you."
48535 PRINT "You are no longer alone."
48540 PRINT "You feel like you are on a quest now."
48545 PRINT:RETURN
48600 PRINT "There are no ghosts here!":PRINT:RETURN
48700 PRINT "You can't eat ghosts. Yet.":PRINT:RETURN
48800 PRINT "You feel too weak to eat the ghosts!":PRINT:RETURN
50000 PRINT "I don't quite understand...":PRINT:RETURN
52000 IF ol(0)<>0 THEN PRINT "You don't have the long stone!":PRINT:RETURN
52010 IF ro<>14 THEN PRINT "You don't see the batholder here!":PRINT:RETURN
52020 IF ol(8)=14 THEN PRINT "The batholder is already complete!":PRINT:RETURN
52030 ol(0)=99:ol(7)=99:ol(8)=14
52040 PRINT "As you press the stone into place, the forest exhales."
52060 PRINT "The ball hits a green Catch-brick and glue falls off the sky!"
52070 PRINT "The machinery has spoken."
52075 PRINT
52080 ol(1)=14
52090 GOSUB 28050
52100 RETURN
53000 IF ol(4)=0 THEN PRINT "The parachute is already fixed!":PRINT:RETURN
53010 IF ol(1)<>0 THEN PRINT "You don't have the glue!":PRINT:RETURN
53020 IF ol(3)<>0 THEN PRINT "You don't have the broken parachute!":PRINT:RETURN
53030 ol(3)=99:ol(4)=0:ol(1)=99
53040 PRINT "The glue sizzles, then settles."
53050 PRINT "Threads twitch."
53060 PRINT "A quiet 'pop' echoes in the air,"
53070 PRINT "and the parachute flutters open, perfectly patched."
53080 PRINT "Somewhere, a tiny voice shouts:"
53090 PRINT "Let's go!"
53100 PRINT
53110 GOSUB 28050
53130 RETURN
54000 IF ol(10)=99 THEN PRINT "The berserkers are gone!":PRINT:RETURN
54010 IF ro<>9 THEN PRINT "I can't see berserkers here!":PRINT:RETURN
54020 IF ol(6)<>0 THEN PRINT "You don't have the sword!":PRINT:RETURN
54030 ol(10)=99:ol(11)=9
54040 PRINT "A berserker hits the player for 24 damage points."
54050 PRINT "And again. And again. And again."
54060 PRINT "Finally, you manage to slay the berserkers. Barely."
54080 PRINT "You feel very, very weak."
54090 PRINT
54100 GOSUB 28050
54120 RETURN
59000 REM Going down to the Architect
59010 IF ex=0 THEN GOTO 59600
59015 IF ol(4)<>0 THEN GOTO 59700
59020 CLS
59025 bitblt 22,0,0
59030 PRINT "You descend."
59040 PRINT
59050 PRINT "Not down a staircase,"
59060 PRINT "but through a feeling,"
59070 PRINT "a thinning of the world."
59080 PRINT
59090 PRINT "The air smells like moss and memory."
59100 PRINT "The silence buzzes."
59110 PRINT
59120 PRINT "You are not alone."
59130 PRINT
59140 PRINT "The ghosts inside you shift,"
59150 PRINT "like thoughts you've never had."
59160 PRINT
59170 PRINT "Then - you see it."
59180 PRINT
59190 PRINT ">Press return"
59200 GOSUB 59900
59210 CLS
59220 PRINT "The Architect."
59230 PRINT
59240 PRINT "Not a being, not a god - but"
59250 PRINT "an overgrown Commodore 64."
59260 PRINT
59270 PRINT "Its screen flickers in green pulses."
59280 PRINT "Its vents breathe like bark."
59290 PRINT "Its keys are covered in lichen."
59300 PRINT
59310 PRINT "It is dreaming. Of you."
59320 PRINT
59330 PRINT "You reach for the the RETURN key."
59340 PRINT "You finger hover."
59350 PRINT:PRINT ">Press return"
59360 GOSUB 59900
59365 CLS
59370 PRINT "The ticking stops."
59380 PRINT
59390 PRINT "And in the final moment before the end,"
59400 PRINT "the forest exhales one last time."
59410 PRINT
59420 PRINT "Nature is nature."
59430 PRINT
59440 PRINT "The 8-bit world is the 8-bit world."
59450 PRINT
59460 PRINT "The program ends."
59462 print:print "Press any key."
59463 while INKEY$="":WEND
59465 txtwindow
59470 END
59600 PRINT "You are not on a quest!":PRINT:RETURN
59700 PRINT "You need a working parachute for that!":PRINT:RETURN
59900 WHILE INKEY$="":WEND
59930 RETURN
61000 print
61010 iserror=1
61025 print "Press any key!"
61028 while inkey$="":wend
61030 resume next
62000 print "Are you sure? (Y/N)"
62010 i$=lcase$(inkey$)
62020 if i$="y"then goto 65000
62030 if i$="n"then print:return
62040 goto 62010
65000 txtwindow
65010 end
65100 print:print
65110 resume 0
