Mario, die unheimliche Mine
Im Land der Fantasie liegt die Mine »Mario«. Finden sie den richtigen Weg durch das ausgedehnte Gangsystem.

Mario ist ein Grafik-Adventure für den C 64. Das Spiel ist in normalem C 64-Basic geschrieben und füllt fast den gesamten Basic-Speicherplatz des Computers. Es finden 24 Sprites Verwendung, deren Daten bei Bedarf eingeschaltet werden. Deshalb muß der Spieler zu Beginn eine knappe viertel Minute warten, während dessen er Gelegenheit hat, die Anleitung zu lesen. Lesern von J. R. Tolkien werden gewisse Parallelen zu dem Buch »Der Herr der Ringe« auffallen. Das ist nicht ganz zufällig, denn die verlassene Mine namens Mario ist in gewissem Sinne der Zwergenmine Moria aus diesem Buch nachempfunden. Wer überhaupt nicht mehr weiter weiß, sollte sich dieses Buch ausleihen. Dort kann er einige Hilfen für das Adventure finden.
Das Spiel versteht 19 Befehle. Diese lauten:
NIMM, VERLIERE, HEBE, ENTLEERE, WIRF, LIES (diese Befehle werden von einem Gegenstand gefolgt)
OEFFNE (eine Tür oder ein Tor)
BRINGE … UM (dazwischen steht ein Lebewesen)
SPEICHERE, LADE (für das Speichern und Laden eines Spielstandes, um nicht immer wieder von vorn anfangen zu müssen). Diese Befehle können erst eingegeben werden, wenn man in die Mine eingedrungen ist. Besitzer einer Diskettenstation müssen die Zeilen 16520 (Öffnen der Datei für Speichern) und 16620 (Öffnen der Datei für Laden) entsprechend ändern.
SAGE (wird von beliebigen Worten gefolgt, die aber nicht in normalen Anführungszeichen stehen sollten).
HILF (hier gibt der Computer Hilfen oder Erklärungen, denen man aber nicht immer trauen sollte)
LIST (zeigt die getragenen Gegenstände auf)
N, S, O, W, H (hoch), R (runter).
Man kann höchstens drei Gegenstände auf einmal tragen. Wenn das Anfangsbild erstellt ist, muß eine Taste gedrückt werden, da danach soviel Text erscheint, daß eine vernünftige Grafik zusammen mit dem Text nicht möglich wäre. Vorsicht mit der Rechtschreibung! Der Computer achtet genau auf die richtige Schreibweise der Befehle.
Zu jedem Raum, in dem man sich befindet, wird ein Bild gezeigt, das die Spielsituation verdeutlicht. Insgesamt gibt es sechs voneinander völlig verschiedene Bilder. Es gibt jedoch wesentlich mehr Räume, da die Bilder manchmal nur leicht abgewandelt werden, wenn man in einen anderen Raum kommt.
Bei dem Weg durch die Mine wird man unter anderem von Orks, einer Riesenspinne und einem schrecklichen Feuerwesen behindert. Mehr soll hier nicht verraten werden. Aufpassen muß man auch bei den Himmelsrichtungen. Der Spieler sieht die Räume so, daß Osten immer in Blickrichtung liegt.
Erläuterungen zum Ablaufschema des Programms
Zunächst springt das Programm in Zeile 9000, wo die Erläuterungen für den Spieler am Bildschirm ausgegeben werden, danach liest es die Daten der Sprites und wartet auf einen Tastendruck. Es zeichnet das Anfangsbild und geht zu Zeile 6000, wo mittels eines GET-Befehls das Kommando eingegeben wird. Sobald »Return« gedrückt wird, erfolgt die Auswertung. Hat man das Tor geöffnet und den Befehl »0« eingegeben, wird das nächste Bild gezeichnet und es folgt der Sprung in Zeile 15030, wo für alle Räume, außer dem Anfangsbild, das Kommando mittels INPUT-Befehl eingelesen wird. In den darauffolgenden Zeilen wird für jeden möglichen Befehl geprüft, ob er identisch mit dem eingegebenen Kommando ist und die entsprechende Reaktion auslöst Wenn man einen neuen Raum betritt, geht das Programm zu Zeile 10200, von wo aus dann in die Unterprogramme zum Zeichnen der Räume verteilt wird. Von diesen werden die Unterprogramme ab Zeile 10000, 10100, 10300 und 11000 angesprochen:
10000 | berechnet mittels C(X,Y) die Gegenstände, stellt sie mittels einer Verzweigung in die Unterprogramme ab 5000 dar |
10100 | berechnet mittels D(X,Y) die Ausgänge aus den Räumen, besetzt eventuell die Merker B(1) bis B(6) |
10300 | sucht nach Besonderheiten (E(X,Y)), verzweigt in die Unterprogramme zu ihrer Darstellung |
11000 | stellt fest, ob wegen irgendwelcher Besonderheiten der Tod des Spielers eingetreten ist. Wenn ja, dann gibt es zu dem Unterprogramm ab Zeile 8000, das das Spiel beendet und auf Wunsch des Spielers neu startet. Wenn nein, erfolgt ein Rücksprung. |
Sonder-Unterprogramme (Inhalt der Schriftrolle, des Buches, Flucht der Spinne etc.) werden von den Auswertungszeilen zum INPUT-Befehl direkt aufgerufen.
Das Feuer in einem Raum besteht aus 4 Sprites, die nacheinander erscheinen und deshalb eine Bewegung vortäuschen.
Obwohl die Mine mehrere Ebenen hat, gibt es zur Bestimmung der Position des Spielers nur zwei Variablen, X und Y Dies geschah aus Speicherplatzgründen. Wenn man in die nächste Ebene kommt, dann wird einfach der Y-Wert auf einen Wert gebracht, der in der vorhergehenden Ebene gar nicht vorkommen kann. So wurde die Positionsbestimmung mit nur zwei Variablen möglich.
(Frank Leggewie/Harald Bornfleth/rg)70 | READ- und DATA-Zellen 70 Sprite Ralbog 1 80 Sprite Ralbog 2 90 Sprite Berg 1 109 Sprite Berg 2 119 Sprite Torbogen vorne 129 Sprite Torbogen links 139 Sprite Torbogen rechts 149 Sprite Spinne 159 Sprite Ork 169 Sprite Panzerhemd 179 Sprite Feuer 1 189 Sprite Feuer 2 199 Sprite Feuer 3 209 Sprite Feuer 4 219 SpriteUhr 229 Sprite Seil 239 Sprite Schwert 249 SpriteSchriftrolle 259 Sprite Buch 269 Sprite Schlüssel 279 SpriteEimer 289 Sprite Fackel 292 SprltePlatte 296 Sprite Laterne 300 Ausgänge der Räume 400 Gegenstände (Strings) |
421 | Besonderheiten einlesen |
430 | Gegenstände einlesen |
1000 | Anfangsbild zeichnen |
1500 | Bild »Heller Gang« zeichnen |
2000 | Bild »Dunkler Gang« zeichnen |
3000 | Bild »Raum mit Säulen« zeichnen |
4000 | Treppe zeichnen |
4100 | »Raum mit Feuer« zeichnen |
4500 | »Raum mit Ralbog« zeichnen |
5000 | Darstellung der Gegenstände 5000 Spinne 5100 Orks 5200 Schwert 5250 Eimer 5300 Laterne 5350 Platte 5400 Schlüssel 5500 Fackel 5600 Panzerhemd 5700 Uhr 5800 Seil 5900 Schriftrolle 5950 Buch |
6000 | Kommandoauswertung für Anfangsbild (GET-Befehl) |
8000 | Tod, Frage nach neuem Spiel und Variablenbesetzung |
9000 | Start, Erklärungen für Spieler |
10000 | Errechnung der im Raum befindlichen Gegenstände |
10100 | Errechnung der Raumausgänge |
10200 | Verteiler in die Unterprogramme ab Zeile 1500 |
10300 | Errechnung der im Raum befindlichen Besonderheiten |
10400 | Nehmen von Gegenständen |
10600 | Verlieren von Gegenständen |
11000 | Feststellung, ob Tod des Spielers eingetreten ist |
15000 | Erfragen und Auswertung derKommandos 15040 O 15100 W 15200 N 15300 S 15400 Nimm 15500 Verliere 15600 Oeffne 15700 List 15800 R 15900 Sage 16000 Bringe um 16200 Hebe 16300 Entleere 16400 Hilf 16500 Speichere 16600 Lade 16700 Wirf 16800 H 16900 Lies |
20100 | Geworfenes Seil nehmen (Variablenumbesetzungen) |
20200 | Flucht der Spinne (Ermittlung des neuen Ortes) |
22300 | Darstellung Ralbog |
23000 | Inhalt der Schriftrolle |
23200 | Inhalt des Buches |
24000 | Sieg des Spielers |
Numerische Variablen | |
A(23,63) | Werte der Sprites |
8(6) | Merker für Ausgänge aus Räumen |
C(6,12) | Gegenstände in den einzelnen Räumen |
D(6,12) | Ausgänge aus den einzelnen Räumen |
E(6,12) | Besonderheiten in den einzelnen Räumen |
HV | Hilfsvariable |
HW | Hilfsvariable |
L1 | Laufvariable |
LW | Laufvariable |
LV | Laufvariable |
M | X-Position Spinne (Zufallszahl) |
M1 | Merker für gehobene Laterne |
M2 | MerkerfürErschöpfung |
M3 | Merker für mehrmaliges Betreten des 1. Raumes |
M4 | Merker für Wasser im Eimer |
M5 | Merker für Raum mit Feuerabgrund |
M6 | Merker für geworfenes Seil |
M7 | Zahl der absolvierten Spiele |
N | Y-Position Spinne (Zufallszahl) |
TU | Merker für offenes/geschlossenes Anfangs/Endtor |
X | Position Spieler |
Y | Position Spieler |
String-Variablen | |
A$ | Zeichen |
A$(10) | Gegenstände |
B$ | Befehl |
C$ | Filename |
FG$ | Besonderheiten in einem Raum |
GD$ | Eingegebener Gegenstand (zum Beispiel hinter NIMM) |
GE$ | Gegenstände in einem Raum |
GS$(1O) | Gegenstände, die man bei sich trägt |
Rl$ | Richtungen |
Bedeutung gesetzter Bits bei den Variablen C(X,Y), D(X,Y) und E(X,Y)
C(X,Y) |
2↑ |
0 Schriftrolle |
1 Schwert |
2 Fackel |
3 Panzerhemd |
4 Schlüssel |
5 Laterne |
6 Buch |
7 Platte |
8 Eimer |
9 Uhr |
10 Seil |
D(X,Y) |
2↑ |
0 / |
1 Ausgang links (Norden) |
2 Ausgang rechts (Süden) |
3 Ausgang hinten (Westen) |
4 Ausgang vorn (Osten) |
5 Nach unten |
6 Nach oben |
E(X,Y) |
2↑ |
0 Orks |
1 Orks mit Pfeil und Bogen |
2 Zuviele Orks |
3 Unbewegliche Platte |
4 Ralbog |
5 Spinne |
Die Werte X und Y stellen die jeweilige Position des Spielers dar.
0 rem *** mario - ein adventure fuer den commodore 64 *** 1 rem by harald bornfleth,im herzenacker 39,6535 gau-algesheim,tel.06725/3803 2 dim a(23,63),a$(10),c(6,12),d(6,12),e(6,12):vi=53248:x=-2:y=3 20 gosub 9000 30 print"{rvon} einen moment bitte "; 40 ifm7>0then421 70 forlv=1to54:reada(23,lv):next 71 data,127,2,,255,2,,255,2,1,231,2,1,231,130,1,227,194,1,227,194,3,195,194,3 72 data195,194,3,193,228,3,193,226,3,193,226,7,129,225,7,128,241,7,128,241 73 data7,128,241,15,,121,15,,121 80 forlv=1to63:reada(0,lv):next 81 data,62,,,127,,,107,,,62,,,62,,,28,,1,255,128,3,255,192,7,255,224,6,127,96,6 82 data126,96,6,126,96,6,126,96,6,126,96,6,126,96,6,126,96,6,126,96,6,126,96 83 data255,126,248,6,126,100,,126,4 90 for lv=1to49:reada(1,lv):next 100 data0,0,1,0,0,3,0,0,3,0,0,7,0,0,7,0,4,15,0,14,15,0,14,31,0,31,31,0,31,63 101 data0,63,191,8,63,255,28,127,255,60,127,255,62,255,255,126,255,255,127 102 forlv=50to63 103 a(1,lv)=255 104 next 109 forlv=1to30:reada(2,lv):next 110 data128,0,3,192,0,7,224,0,15,240,0,15,248,0,31,252,4,63,254,14,63,255,15 111 data127,255,159,255,255,223,255 112 forlv=31 to63:a(2,lv)=255:next 119 forlv=28to54:reada(3,lv):next 120 data0,126,0,3,255,192,7,255,224,15,255,240,31,255,248,63,255,252,127,255 121 data254,127,255,254,127,255,254 122 forlv=55to63:a(3,lv)=255:next 129 forlv=46to63:reada(4,lv):next 130 data0,224,0,1,252,0,1,255,0,1,255,128,1,255,128,1,255,128 139 forlv=46to63:reada(5,lv):next 140 data0,7,0,0,63,128,0,255,128,1,255,128,1,255,128,1,255,128 149 forlv=10to63:reada(6,lv):next 150 data0,60,0,1,255,128,3,60,192,6,219,96,14,219,112,15,60,240,31,255,248 151 data35,255,196,66,36,66,132,66,33,136,66,17,136,129,17,144,129,9,144,129,9 152 data144,129,9,144,129,9,144,129,9,144,129,9 159 forlv=1to63:reada(7,lv):next 160 data8,28,8,8,62,28,8,127,62,8,42,8,8,62,8,8,34,8,8,62,8,28,28,8,31,255,252 161 data31,255,252,8,127,8,,127,8,,127,8,,127,8,,127,8,,119,8,,99,8,,99,8,,99,8 162 data,99,8,3,227,232 169 for lv=19to48:reada(8,lv):next 170 data3,231,192,7,255,224,15,255,240,31,255,248,63,255,252,127,255,254,253 171 data255,191,121,255,159,49,255,142,1,255,232 172 for lv=49 to 63step3:a(8,lv)=1:a(8,lv+1)=255:a(8,lv+2)=128:next 179 forlv=29to63:reada(9,lv):next 180 data6,0,0,6,0,0,15,0,9,47,128,15,127,140,31,255,142,31,255,30,63,255,190 181 data63,255,255,127,255,254,127,255,255,255,255,255 189 forlv=34to63:reada(10,lv):next 190 data4,130,0,15,198,12,15,215,14,31,223,158,31,255,190,63,255,190,63,255,255 191 data127,255,255,127,255,255,255,255,255 199 forlv=28to63:reada(11,lv):next 200 data2,0,0,7,64,0,15,224,0,31,225,0,31,227,16,31,243,24,63,247,188,63,255 201 data188,63,255,254,127,255,254,127,255,255,255,255,255 209 forlv=22to63:reada(12,lv):next 210 data2,0,0,7,0,0,7,128,0,15,160,0,31,240,0,31,240,0,31,240,128,63,241,200 211 data63,249,220,63,251,220,127,251,254,127,255,254,255,255,255,255,255,255 219 for lv=1to54:reada(13,lv):next 220 data15,255,240,31,255,248,63,255,252,122,16,94,240,,15,224,,7,240,,15 221 data224,,7,224,,7,224,,7,241,248,15,224,4,7,224,2,7,224,1,7,240,,143 222 data224,,71,240,,15,250,8,95 223 forlv=55to63:a(13,lv)=255:next 229 forlv=1to63:reada(14,lv):next 230 data0,127,224,7,128,24,8,,4,16,63,194,33,192,33,34,,17,68,63,9,136,64,137 231 data136,28,73,145,,73,145,16,137,145,15,9,72,128,18,72,96,100,36,31,132 232 data35,,8,16,192,48,8,63,192,4,,,3,128,,,127,255 239 forlv=19to63:reada(15,lv):next 240 data30,,,30,,,30,,,30,,,31,255,252,255,255,254,255,255,255,255,255,255 241 data255,255,254,31,255,252,30,,,30,,,30,,,30,,,,, 249 forlv=1to63:reada(16,lv):next 250 data,,,,3,128,,15,224,,31,240,,63,248,,127,248,,255,248,1,255,240,7,255,240 251 data24,255,224,32,63,224,71,31,192,72,159,128,144,79,,147,78,,144,76,,72,88, 252 data71,144,,32,32,,24,192,,7,, 259 forlv=14to63:reada(17,lv):next 260 data15,255,,16,3,,40,7,,83,229,,128,135,1,99,118,2,16,22,4,231,244,8,,60 261 data19,11,72,36,148,112,71,159,144,128,,224,255,255,32,255,255,64,128,1,128 262 data255,255,128 269 forlv=31to63:reada(18,lv):next 270 data7,128,,31,224,,56,112,,96,31,254,192,15,255,192,15,255,192,15,255 271 data96,24,227,56,48,227,31,224,227,7,128,3 279 forlv=4to59:reada(19,lv):next 280 data3,255,192,28,,56,31,255,248,16,255,8,16,,16,8,,16,8,,16,8,,16,4,,16 281 data4,,32,4,,32,4,,32,2,,32,2,,64,2,,64,2,,64,2,,64,1,195,128,,60 289 forlv=24to63:reada(20,lv):next 290 data16,,,24,,,24,,,88,,,228,,1,52,,1,252,,1,252,0,3,254,0,3,239 291 data127,255,254,255,255,254,255,255,250,127,255,252 292 forlv=1to63:reada(21,lv):next 293 data,126,,,255,,,255,,1,255,128,1,255,128,3,255,192,3,255,192,7,255,224,7 294 data255,224,15,255,240,15,255,240,31,255,248,31,255,248,63,255,252,63,255 295 data252,127,255,254,127,255,254,255,255,255,128,,1,128,,1,255,255,255 296 forlv=1to63:reada(22,lv):next 297 data,24,,,24,,,24,,,60,,,126,,,255,,1,255,128,3,255,192,7,255,224,15,255 298 data240,15,255,240,12,24,48,12,24,48,12,24,48,15,255,240,15,255,240,12,24,48 299 data12,24,48,12,24,48,15,255,240,15,255,240 300 forlv=0to12:forlw=0to6:readd(lw,lv):next:next 310 data4,20,8,16,28,24,8 320 data6,6,16,28,30,60,12 330 data22,26,24,10,18,26,14 340 data26,24,24,24,24,44,2 345 data,,,,,18,8 350 data20,28,12,,,, 355 data6,2,22,8,,, 360 data22,24,30,12,,, 370 data18,24,26,10,,, 375 data,,4,,,, 380 data4,,6,,,, 385 data22,16,18,24,,, 390 data2,,,,,, 400 forlv=0to10:reada$(lv):next 410 dataschriftrolle,schwert,fackel,panzerhemd,schluessel,laterne,buch,platte 420 dataeimer,uhr,seil 421 e(6,0)=4:e(0,1)=2:e(2,2)=1:e(6,2)=2:e(2,3)=1:e(6,4)=8:e(5,1)=64:e(1,6)=64 422 e(2,6)=32:e(3,6)=8:e(1,7)=4:e(2,7)=1:e(0,10)=4:e(2,10)=1:e(3,11)=16 423 e(0,12)=4 430 c(0,0)=1:c(2,0)=2:c(3,0)=8:c(2,1)=4:c(4,1)=1024:c(6,3)=16 440 c(1,5)=512:c(3,7)=32:c(0,11)=192:c(2,9)=256 500 print"{up} {up}bitte eine taste druecken" 510 geta$:ifa$=""then510 1000 poke53281,5:poke53280,0:pokevi+21,0 1010 print"{clr}{blk}"; 1020 forlv=1to13 1025 iflv<6thenprint"{rvon}{lblu} {blk} {lblu} {blk} ";:goto1040 1027 iflv>9thenprint"{rvon} {gry1} {blk} ";:goto 1040 1030 print"{rvon} "; 1040 next 1050 print"{blu}{down}{down}{down}{down}"; 1060 print"{rvof}{CBM-@}{CBM-@}{CBM-P}{CBM-P}{CBM-O}{CBM-O}{CBM-I}{CBM-I}{rvon}{CBM-U}{CBM-U}{CBM-Y}{CBM-Y}{CBM-T}{CBM-T} {CBM-T}{CBM-T}{CBM-Y}{CBM-Y}{CBM-U}{CBM-U}{rvof}{CBM-I}{CBM-I}{CBM-O}{CBM-O}{CBM-P}{CBM-P}{CBM-@}{CBM-@}"; 1070 forlv=1to6 1080 print"{rvon} "; 1090 next 1095 print"{rvon} ";:poke2023,160 1100 poke2040,13:poke2041,14:poke2042,15 1110 forlv=0to62:poke832+lv,a(1,lv+1):next 1120 forlv=0to62:poke896+lv,a(2,lv+1):next 1130 forlv=0to62:poke960+lv,a(3,lv+1):next 1140 pokevi+29,7:pokevi+23,7:pokevi+39,0:pokevi+40,0:pokevi+41,11:pokevi+21,7 1150 pokevi,24:pokevi+1,50:pokevi+2,248:pokevi+3,50:pokevi+4,160:pokevi+5,80 1160 get a$:ifa$=""then 1160 1165 pokevi+21,0 1170 print:print"{blk}{rvof}du stehst vor dem tor von mario. davor" 1180 print"liegt ein dunkler, unheimlicher see." 1190 print"moegliche richtungen:w. 1200 print"dangalf uebersetzt die worte,die auf" 1210 print"dem tor geschrieben sind, aus dem elbi- schen:" 1220 print"'sprich,'freund',und tritt ein.'" 1410 goto6000 1500 poke53280,0:poke53281,12:pokevi+21,0:pokevi+23,1:pokevi+29,1:poke204,1 1510 print"{clr}";:forlv=8to18step2:print"{gry1}{rvon} "; 1520 printspc(lv/2-4)"{gry3}{rvof}{CBM-*}";:forl1=1to24-lv:print"{rvon} ";:next:print"{rvof}{SHIFT-POUND}"; 1530 printspc(lv/2-4)"{rvon}{gry1} ";:next 1540 print"{home}";:forlv=1to15 1545 iflv>6thenprint"{rvon}{gry1} {rght}{rght}{rght}{rght}{rght}{rght}{blk} {rght}{rght}{rght}{rght}{rght}{rght}{gry1} ";:goto1560 1550 print"{rvon}{gry1} {rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} "; 1560 next 1570 forlv=10to0step-2 1580 print"{gry1}{rvon} ";spc(lv/2)"{gry3}{SHIFT-POUND}";:forl1=1to16-lv:print"{rvon} ";:next 1590 print"{rvon}{CBM-*}";spc(lv/2)"{rvon}{gry1} ";:next 1600 poke2040,13:pokevi,160:pokevi+1,64:pokevi+39,0 1610 forlv=0to62:poke832+lv,a(3,lv+1):next:pokevi+21,1 1620 print"{rvof}{blk}ein heller gang."; 1625 ifm3=0thenprint"ploetzlich schlaegt je- mand das eingangstor zu.":m3=1 1630 print"richtungen: o":ri$="o" 1640 gosub11000:goto15000 2000 poke53280,0:poke53281,11:pokevi+21,0:pokevi+23,1:pokevi+29,1 2010 print"{clr}";:forlv=8to18step2:print"{blk}{rvon} "; 2020 printspc(lv/2-4)"{gry2}{rvof}{CBM-*}";:forl1=1to24-lv:print"{rvon} ";:next:print"{rvof}{SHIFT-POUND}"; 2030 printspc(lv/2-4)"{rvon}{blk} ";:next 2040 print"{home}";:forlv=1to6 2050 print"{rvon}{blk} {rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} ";:next 2060 hv=d(x,y):hv=(hvand159) 2063 ifhv>=16thenb(4)=1 2064 forlv=7to15 2065 ifb(4)=1thenprint"{rvon}{blk} {rght}{rght}{rght}{rght}{rght}{rght}{blk} {rght}{rght}{rght}{rght}{rght}{rght}{blk} ";:goto2069 2066 print"{rvon}{blk} {rght}{rght}{rght}{rght}{rght}{rght}{gry1} {rght}{rght}{rght}{rght}{rght}{rght}{blk} "; 2069 next 2070 forlv=10to0step-2 2080 print"{blk}{rvon} ";spc(lv/2)"{gry2}{SHIFT-POUND}";:forl1=1to16-lv:print"{rvon} ";:next 2090 print"{rvon}{CBM-*}";spc(lv/2)"{rvon}{blk} ";:next 2100 poke2040,13:pokevi,160:pokevi+1,64 2105 ifb(4)=1thenpokevi+39,0 2106 ifb(4)=0thenpokevi+39,11 2110 forlv=0to62:poke832+lv,a(3,lv+1):next:pokevi+21,1 2115 gosub10100 2120 ifb(1)=0then 2200 2130 b(1)=0 2135 print"{home}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}{down}{down}{down}{down}{down}{down}{down}{down}"; 2140 forlv=1to7:print"{blk}{rvof}{CBM-M}{rvon} {rvof}{CBM-G}{down}{left}{left}{left}{left}";:next 2150 print"{rvof}{CBM-M}{rvon} {rvof}{SHIFT-POUND}{left}{left}{left}{down}{CBM-M}{SHIFT-POUND}{down}" 2160 poke2041,14:pokevi+2,112:pokevi+3,80:pokevi+40,0 2170 forlv=0to62:poke896+lv,a(4,lv+1):next 2180 pokevi+23,3:pokevi+29,3:pokevi+21,3 2190 ri$=ri$+"n" 2200 ifb(2)=0then2300 2210 b(2)=0 2220 print"{home}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}{down}{down}{down}{down}{down}{down}{down}{down}"; 2230 forlv=1to7:print"{blk}{rvof}{CBM-M}{rvon} {rvof}{CBM-G}{down}{left}{left}{left}{left}";:next 2240 print"{rght}{rvof}{CBM-*}{rvon} {rvof}{CBM-G}{left}{left}{down}{CBM-*}{CBM-G}{down}" 2250 poke2042,15:pokevi+4,208:pokevi+5,80:pokevi+41,0 2260 forlv=0to62:poke960+lv,a(5,lv+1):next 2270 pokevi+23,7:pokevi+29,7:pokevi+21,peek(vi+21)+4 2280 ri$=ri$+"-s" 2300 ifb(3)>0thenb(3)=0:ri$=ri$+"-w" 2310 ifb(4)>0thenb(4)=0:ri$=ri$+"-o" 2315 ifb(6)>0thenb(6)=0:ri$=ri$+"-h" 2320 ifb(5)=0then2400 2330 b(5)=0:ri$=ri$+"-r" 2340 print"{home}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"; 2350 print"{gry2}{rvon}{CBM-Q}{SHIFT-*}{CBM-W}{left}{left}{left}{left}{down}{blk}{SHIFT-POUND}B B{CBM-*}{left}{left}{left}{left}{down}{left}{left}{SHIFT-POUND} {CBM-Q}{SHIFT-*}{CBM-W} {CBM-*}" 2400 print"{rvof}{blk}{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}ein dunkler gang."; 2410 print"{blk}richtungen:";ri$ 2420 gosub 10000 2430 print"{blk}gegenstaende:";ge$ 2440 gosub10300 2450 print"{blk}besonderheiten:"; 2460 if fg$=""then fg$="keine" 2470 printfg$ 2480 gosub11000:goto15000 3000 print"{clr}{blk}";:poke53280,0:poke53281,12:pokevi+21,0 3010 for lv=1to5:printspc(lv-1)"M"spc(39-2*lv)"N":next 3020 printspc(5)"O{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}P" 3030 for lv=1to8:printspc(5)"{CBM-G}"spc(27)"{CBM-M}":next 3035 printspc(5)"L{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{SHIFT-@}" 3040 forlv=5to1step-1:printspc(lv-1)"N"spc(39-2*lv)"M":next 3050 for lw=10 to 25 step 15 3060 print"{home}{down}"spc(lw)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}{left}{left}{left}{left}{down}M{CBM-P}{CBM-P}N" 3065 for lv=1to14 3067 if lv=3thenprintspc(lw)"P O":goto 3080 3068 if lv=12 then printspc(lw)"{SHIFT-@} L":goto 3080 3070 printspc(lw)"{CBM-M} {CBM-G}" 3080 next 3090 printspc(lw)"N{CBM-Y}{CBM-Y}M{left}{left}{left}{left}{down}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 3095 next lw 3097 gosub10100 3100 if b(1)=0then3200 3110 b(1)=0 3120 print"{home}{down}{down}{down}{down}{down}{CBM-M}M{down}{left}{left}{CBM-M} M{down}{left}{left}{left}{CBM-M}{CBM-Y}P" 3130 forlv=1to8:print"{CBM-M} {CBM-M}":next 3140 print"{CBM-M}{CBM-P}{SHIFT-@}{down}{left}{left}{left}{CBM-M} {left}{left}{down}{left}{CBM-M} " 3145 ri$=ri$+"-n" 3200 ifb(2)=0then3300 3210 b(2)=0 3220 print"{home}{down}{down}{down}{down}{down}"tab(37)"N{CBM-G}{left}{left}{left}{down}N {CBM-G}{down}{left}{left}{left}O{CBM-Y}{CBM-G}" 3230 forlv=1to8:printtab(36)"{CBM-G} {CBM-G}":next 3240 printtab(36)"L{CBM-P}{CBM-G}{down}{left}{left}{left} {CBM-G}{down}{left}{left} {CBM-G}" 3250 ri$=ri$+"-s" 3300 ifb(4)=0then3400 3310 b(4)=0 3320 print"{home}{down}{down}{down}{down}{down}{down}"tab(17)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{down}{left}{left}{left}{left}{left}{left}{CBM-M}M{CBM-@}{CBM-@}{CBM-@}N{CBM-G}" 3330 forlv=1to6:printtab(16)"{CBM-M}{CBM-M} {CBM-G}{CBM-G}":next 3340 printtab(16)"{SHIFT-@}N{CBM-T}{CBM-T}{CBM-T}ML{down}{down}{down}{down}{down}" 3350 ri$=ri$+"-o" 3400 ifb(6)>0thenb(6)=0:ri$=ri$+"-h" 3500 print"{blk}ein raum mit saeulen,der durch schaechtebeleuchtet wird."; 3510 print"{blk}richtungen:";ri$ 3520 gosub 10000 3530 print"{blk}gegenstaende:";ge$ 3540 gosub 10300 3545 if fg$=""then fg$="keine" 3550 print"{blk}besonderheiten:";fg$ 3560 gosub11000:goto15000 4000 print"{clr}{gry2}";:poke53280,0:poke53281,0 4010 print:pokevi+21,0 4020 forlv=2to20step2 4030 printtab(19-lv/2)"{gry2}{rvon}{SHIFT-POUND}";:forlw=1tolv:print"{rvon} ";:next:print"{rvon}{CBM-*}" 4040 printtab(19-lv/2)"{gry1}";:forlw=1tolv+2:print"{rvon} ";:next:print 4045 next lv 4050 print"{gry2}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}"; 4060 ri$="w-o-n-s" 4070 print"eine treppe, sonst ist alles dunkel." 4080 print"richtungen:";ri$;" ; nichts besonderes" 4090 gosub 10000 4092 print"{gry2}gegenstaende";ge$ 4097 gosub11000:goto15000 4100 pokevi+21,0:poke53281,15:poke53280,0 4120 print"{clr}{blk}"; 4130 forlv=0to3 4132 if lv=0then 4140 4135 forlw=1tolv 4137 print"{gry2}{rvon} ";:next 4140 print"{gry2}{rvon}{CBM-*}"spc(37-2*lv)"{gry2}{rvon}{SHIFT-POUND}" 4150 nextlv 4155 print"{home}{gry2}{down}"tab(38)"{rvon} {down}{left}{left} {down}{left}{left}{left} " 4160 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2}{CBM-*}{rvof} {rvon}{SHIFT-POUND}{gry1} " 4165 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {CBM-*}{rvof} {rvon}{SHIFT-POUND} {gry1} " 4170 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {CBM-*}{rvof} {rvon}{SHIFT-POUND} {gry1} " 4175 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {CBM-*}{rvof} {rvon}{SHIFT-POUND} {gry1} " 4180 forlv=1to5:print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {blk} {gry2} {gry1} ":next 4185 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {rvof}{SHIFT-POUND} {CBM-*}{rvon} {gry1} " 4190 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {rvof}{SHIFT-POUND} {CBM-*}{rvon} {gry1} " 4195 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2} {rvof}{SHIFT-POUND}{blk}{rvon}{SHIFT-POUND} {CBM-*}{gry2}{rvof}{CBM-*}{rvon} {gry1} " 4197 print"{rght}{rght}{rght}{rght}{gry1}{rvon} {gry2}{rvof}{SHIFT-POUND}{rvon}{blk}{SHIFT-POUND} {CBM-*}{gry2}{rvof}{CBM-*}{rvon}{gry1} " 4200 print"{home}{down}{down}{down}{down}{gry2}";:forlv=1to13 4210 print"{rvon} "spc(31)"{rvon} " 4220 next 4230 print"{rvon}{gry2} {rvof}{SHIFT-POUND}{down}{left}{left}{left}{left}{rvon} {rvof}{SHIFT-POUND}{down}{left}{left}{left}{rvon} {rvof}{SHIFT-POUND}{down}{left}{left}{SHIFT-POUND}" 4240 print"{up}{up}{up}{up}"spc(35)"{CBM-*}{rvon} {rvof}{down}{left}{left}{left}{CBM-*}{rvon} {rvof}{down}{left}{left}{CBM-*}{rvon} {rvof}{down}{left}{CBM-*}" 4250 forlv=0to20:poke1063+40*lv,160:poke55335+40*lv,12:next 4260 poke1063+40*21,95:poke55335+40*21,12 4265 ifm5=2thenri$="w-o":goto4275 4270 ri$="w-o-n" 4275 print"{up}{up}{up}{up}{up}{up}{up}{up}{up}{up}{up}{up}{up}{rght}{CBM-*}{down}{left} {CBM-*}{down}{left}{left} {down}{left}{left} {down}{left}{left} {down}{left}{left} {down}{left}{left} {down}{left}{left} {down}{left}{left} {down}{left}{left} {rvon}{SHIFT-POUND}{down}{left}{left}{SHIFT-POUND}{down}{down}" 4300 poke2040,11:poke2041,11:poke2042,13:poke2043,13:poke2044,14:poke2045,14 4310 poke2046,15:poke2047,15 4320 forlv=vi+39tovi+46:pokelv,7:next 4330 forlv=vitovi+12step4:pokelv,132:pokelv+1,144:pokelv+2,180:pokelv+3,144 4340 next 4350 forlv=0to62:poke704+lv,a(9,lv+1):next 4360 forlv=0to62:poke832+lv,a(10,lv+1):next 4370 forlv=0to62:poke896+lv,a(11,lv+1):next 4380 forlv=0to62:poke960+lv,a(12,lv+1):next 4390 pokevi+23,255:pokevi+29,255 4400 l1=0 4410 forlv=0to6step2 4420 pokevi+21,2^lv+2^(lv+1) 4430 next 4440 l1=l1+1 4450 forlv=4to2step-2 4460 pokevi+21,2^lv+2^(lv+1) 4470 next 4480 ifl1<7then4410 4481 print"{blk}ein raum mit einem schmalen abgrund, ausdem feuer dringt." 4482 print"{blk}richtungen:";ri$" besonderheiten:feuer" 4483 gosub10000 4484 print"{blk}gegenstaende:";ge$ 4486 gosub11000:goto15000 4500 print"{clr}{blk}";:poke53280,0:poke53281,12:pokevi+21,0 4510 for lv=0to4 4520 printtab(lv)"M"spc(37-2*lv)"N":next 4530 printtab(5)"O{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}P" 4540 forlv=1to9:printtab(5)"{CBM-G}"spc(27)"{CBM-M}":next 4550 printtab(5)"L{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P} {CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{SHIFT-@}" 4560 forlv=0to4 4570 printtab(4-lv)"{rvon}{SHIFT-POUND}";:forl1=1tolv 4580 if lv=0then 4600 4590 print"{rvon} ";:nextl1 4600 print:next lv 4610 print"{up}{up}{up}{up}{up}";:forlv=0to4 4620 printtab(34);:forl1=1tolv 4630 if lv=0then goto 4650 4640 print"{rvon} ";:next l1 4650 print"{rvon}{CBM-*}" 4660 next lv 4670 print"{up}{up}{up}{up}{up}";:forlv=1to5 4680 printtab(5)"{gry1}{rvon} " 4690 next 4695 print"{up}{up}{up}{up}{up}"; 4700 printtab(18)"{gry2}{rvon} {down}{left}{left}{left}{left}{left}{gry1}{CBM-M}{gry2} {gry1}{CBM-G}{down}{left}{left}{left}{left}{left}{left}{CBM-L}{gry2} {gry1}{CBM-J}{down}{left}{left}{left}{left}{left}{left}{rvof}{CBM-K}{rvon}{gry2} {gry1}{CBM-K}" 4710 printtab(17)"{gry1}{CBM-J}{gry2} {gry1}{CBM-L}" 4720 print"{up}{up}{up}{up}{up}{up}{up}{up}{up}{up}";:forlv=1to5 4730 printtab(18)"{rvon}{orng} " 4740 next 4750 printtab(17)"{blk}{up}{SHIFT-@}{up}{left}{CBM-M}{up}{left}{CBM-M}{up}{left}{CBM-M}{up}{left}{CBM-M}{up}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{down}{CBM-G}{down}{left}{CBM-G}{down}{left}{CBM-G}{down}{left}{CBM-G}{down}{left}L{down}{down}{down}{down}{down}" 4760 print"eine schmale bruecke fuehrt auf eine tuer zu."; 4770 ife(x,y)>0thenprint"ein ungeheuer versperrt den weg" 4780 print"richtungen:w-o":ri$="w-o" 4790 gosub10000 4800 print"{blk}gegenstaende:";ge$ 4805 gosub 10300 4810 print"besonderheiten:";fg$ 4820 gosub11000:goto15000 5000 poke 2043,11:forlv=0to62:poke704+lv,a(6,lv+1):next 5020 pokevi+23,peek(vi+23)or8:pokevi+6,160:pokevi+7,134:pokevi+42,11 5030 pokevi+29,peek(vi+29)or8:pokevi+21,peek(vi+21)or8 5040 return 5100 poke2043,11:poke2044,11:forlv=0to62:poke704+lv,a(7,lv+1):next 5120 pokevi+6,160:pokevi+7,132:pokevi+8,160:pokevi+9,175 5125 if(d(x,y)and16)=16thenpokevi+42,11:pokevi+43,11:goto5127 5126 pokevi+42,0:pokevi+43,0 5127 pokevi+23,peek(vi+23)or24:pokevi+29,peek(vi+29)or24 5130 pokevi+21,peek(vi+21)or24 5140 return 5200 pokevi+44,11 5220 poke2045,11:forl1=0to62:poke704+l1,a(15,l1+1):next 5230 pokevi+10,200:pokevi+11,180:pokevi+21,peek(vi+21)or32 5240 return 5250 poke2045,14:forl1=0to62:poke896+l1,a(19,l1+1):next 5270 pokevi+44,6:pokevi+10,140:pokevi+11,170 5280 pokevi+21,peek(vi+21)or32:return 5300 poke2047,11:forl1=0to62:poke704+l1,a(22,l1+1):next 5320 pokevi+46,0:pokevi+14,196:pokevi+15,191:pokevi+21,peek(vi+21)or128 5321 pokevi+23,peek(vi+23)and127:pokevi+29,peek(vi+29)and127 5322 ifx>0andx<3andy=11thenprint"{rvon}{yel}{up}{up}{up}{up}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} {down}{down}{down}":goto5330 5324 print"{rvon}{yel}{up}{up}{up}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} {down}{down}" 5330 return 5350 poke2040,14:forl1=0to62:poke896+l1,a(21,l1+1):next 5370 pokevi+39,2:pokevi,157:pokevi+1,161:pokevi+21,peek(vi+21)or1 5380 pokevi+29,peek(vi+29)or1:pokevi+23,peek(vi+23)and254:return 5400 poke2046,11:forl1=0to62:poke704+l1,a(18,l1+1):next 5420 pokevi+45,0:pokevi+12,180:pokevi+13,180:pokevi+21,peek(vi+21)or64:return 5500 poke2047,11:forl1=0to62:poke704+l1,a(20,l1+1):next 5520 pokevi+46,7:pokevi+14,200:pokevi+15,180:pokevi+21,peek(vi+21)or128:return 5600 poke 2047,11:forl1=0to62:poke704+l1,a(8,l1+1):next 5615 if peek(vi+21)>127then 5620 5617 pokevi+21,peek(vi+21)+128 5620 poke vi+46,0:poke vi+14,174:pokevi+15,167 5630 return 5700 forl1=0to62:poke704+l1,a(13,l1+1):next 5720 poke2046,11:pokevi+12,160:pokevi+13,170:pokevi+45,0 5760 pokevi+21,peek(vi+21)or64:pokevi+23,peek(vi+23)and191 5770 pokevi+29,peek(vi+29)and191:return 5800 forl1=0to62:poke704+l1,a(14,l1+1):next 5820 poke2047,11:pokevi+14,165:pokevi+15,155:pokevi+46,15 5830 pokevi+21,peek(vi+21)or128:return 5900 poke2046,11:forl1=0to62:poke704+l1,a(16,l1+1):next 5920 pokevi+45,11:pokevi+12,123:pokevi+13,197 5930 pokevi+21,peek(vi+21)or64:return 5950 poke2047,13:forl1=0to62:poke832+l1,a(17,l1+1):next 5970 pokevi+46,11:pokevi+14,138:pokevi+15,180:pokevi+21,peek(vi+21)or128:return 6000 ti$="000000":tu=0 6020 poke207,0:poke204,0 6030 print"{blk}{rvof}kommando? "; 6035 b$="":lv=0 6040 get a$ 6042 ifval(ti$)<45 then 6047 6043 print"ploetzlich kommen arme aus dem see und reissen dich hinein":goto8000 6047 ifa$=""then 6040 6050 ifa$<>" "anda$<>chr$(20)anda$<>"'"and a$<>chr$(13)then 6060 6055 goto 6080 6060 ifasc(a$)<65orasc(a$)>90then a$="" 6080 printa$; 6090 ifa$=chr$(20)andb$>""then lv=lv-1:b$=left$(b$,lv):a$="" 6100 ifa$=chr$(13)thenprint:goto6130 6105 if a$>""then lv=lv+1 6110 b$=b$+a$ 6120 goto 6040 6130 ifleft$(b$,4)<>"sage"then 6170 6140 ifright$(b$,6)<>"freund"andright$(b$,7)<>"freund'"then 6160 6150 print"das tor ist offen! moegliche richtungen:w-o":tu=1:goto 6030 6160 printright$(b$,len(b$)-5):goto6030 6170 ifleft$(b$,6)<>"bringe"orright$(b$,2)<>"um"then 6200 6180 ifmid$(b$,8,7)<>"dangalf"then print"nicht moeglich!":goto 6030 6190 print"dangalf hat dich mit einem blitz zu bo- den geworfen. ploetzlich " 6195 print"kommen arme aus dem see und ziehen dich hinein.":goto8000 6200 if b$<>"w"then 6230 6210 print"warge haben dich gefressen.":goto8000 6230 if b$="oeffne tor"then print"so einfach geht das nicht!":goto 6030 6240 if b$="hilf"then print"es handelt sich wohl um ein tor, das" 6250 if b$="hilf"then print"mit zauberworten verschluesselt ist.":goto 6030 6260 if b$="o"and tu=1then x=x+1:goto 1500 6290 ifb$="speichere"orb$="lade"thenprint"noch unmoeglich!":goto6030 6295 print"wie bitte???":goto6030 8000 pokevi+21,0 8005 print"{down}{down}{down}{down}{down}du bist tot.{down}{down}" 8010 print"willst du ein neues spiel?" 8020 geta$:ifa$="j"then8040 8030 ifa$<>"n"then8020 8035 end 8040 ifm7>4thenrun 8050 ri$="":ge$="":gd$="":tu=0:x=-2:y=3:m1=0:m2=0:m3=0:m4=0:m5=0:m6=0:fg$="" 8060 d(6,4)=8:d(0,6)=6:d(3,6)=8:d(0,11)=22:c$="":forlv=1to3:gs$(lv)="":next 8070 forlv=0to6:forl1=0to12:c(lv,l1)=0:e(lv,l1)=0:next 8080 m7=m7+1:goto20 9000 poke53280,0:poke53281,14 9020 print"{clr}{blu}sie stehen vor dem tor von mario, einer alten zwergenmine." 9030 print"da sie dofro,den hobbit darstellen, darf ich sie hoffentlich duzen." 9040 print"was hobbits fuer wesen sind, darueber informiert man sich am" 9050 print"besten in j.r.r. tolkiens 'der herr der ringe'.in deiner begleitung" 9060 print"befindet sich dangalf,ein sehr alter und weiser zauberer." 9070 print"dein ziel ist es, durch die mine zu kom-men. dabei sind die" 9080 print"himmelsrichtungen etwas ungewoehnlich: {down}o{down}s{down}{left}{left}w{up}{left}{left}n" 9085 print"{down}befehle: oeffne hilf(wenn du nicht wei-ter weisst) nimm list"; 9086 print"(gegenstaende auf-listen)"; 9087 print" verliere hebe entleere spei-chere lade wirf lies bringe um" 9088 print"sage(danach bitte kein gaensefuss) n s o w r(runter) h(hoch)" 9090 return 10000 hv=c(x,y):forlv=10to0step-1 10025 ifhv<2^lvthen 10040 10026 on lv+1gosub5900,5200,5500,5600,5400,5300,5950,5350,5250,5700,5800 10030 ge$=ge$+a$(lv):ge$=ge$+" ":hv=hv-2^lv 10040 next:return 10100 hv=d(x,y):forlv=6to1step-1 10130 ifhv>=2^lvthenb(lv)=1:hv=hv-2^lv 10140 next:return 10200 ge$="":ri$="":fg$="" 10230 if y=11 and x=1then 4000 10235 if x=-1then 1500 10240 if y=11 and x=2then 4100 10245 if x=-2then 1000 10250 ify=11andx=3then 4500 10260 if y>8then 3000 10270 goto2000 10300 hw=0:hv=0:forlv=0to5 10315 if e(x,y)<>2^lvthen 10320 10317 hw=lv:lv=5:hv=1 10320 next:ifhv<1thenreturn 10330 if hw<3then gosub5100:fg$="orks" 10332 if hw=5then gosub5000:fg$="riesenspinne" 10333 ifx=3andy=6andd(x,y)<32thengosub22300:fg$="unbewegliche platte" 10334 ifx=6andy=4andd(x,y)<32thengosub22300:fg$="unbewegliche platte" 10335 ifhw=4thengosub22400:fg$="ralbog" 10350 return 10400 ifgd$<>"seil"then10405 10402 ifx=6andy=4then20000 10403 ifx=3andy=6then20100 10405 ifx<0thenprint"nicht moeglich!":goto15030 10410 hv=c(x,y):hw=0:forlv=10to0step-1 10420 ifgd$<>a$(lv)then 10450 10430 if hv>=2^lvthenlv=0:hw=1:goto10455 10450 if hv>=2^lvthen hv=hv-2^lv 10455 next 10457 ifhw=1then10470 10458 ifgd$="platte"andx=6andy=4thenprint"sie ist nicht beweglich!":goto15030 10459 ifgd$="platte"andx=3andy=6thenprint"sie ist nicht beweglich!":goto15030 10460 print"das ist hier nicht zu sehen":return 10470 if gs$(1)=""then gs$(1)=gd$:goto10520 10480 if gs$(2)=""then gs$(2)=gd$:goto10520 10490 if gs$(3)=""then gs$(3)=gd$:goto10520 10500 print"du traegst zu viel":forlv=1to1500:next:return 10520 forlv=0to10:ifa$(lv)=gd$then c(x,y)=c(x,y)-2^lv 10530 next 10532 ifm6=1thenm6=0:c(x,y)=c(x,y)+1024 10534 ifm5=1andgd$="platte"thenm5=0 10540 return 10600 if gs$(1)=gd$then 10650 10620 if gs$(2)=gd$then 10660 10630 if gs$(3)=gd$then10670 10640 print"ich trage das nicht":return 10650 gs$(1)="":goto 10690 10660 gs$(2)="":goto 10690 10670 gs$(3)="" 10690 ifx>-1then10710 10692 print"ein arm hat die tuer aufgerissen,den ge-genstand genommen und sie"; 10695 print"wieder zugewor- fen.":forlv=1to3500:next:return 10710 forlv=0to10:ifa$(lv)=gd$then c(x,y)=c(x,y)+2^lv 10720 next 10725 ifgd$="laterne"thenm1=0 10727 ifgd$="platte"andx=2andy=11andm5=0thenm5=1 10730 return 11000 ifx=2andy=2then 11070 11040 ifx=2andy=3then 11070 11050 ifx=2andy=7then 11070 11060 ifx=2andy=10then 11070 11065 goto11100 11070 hw=0:forlv=1to3:ifgs$(lv)="schwert"then hw=1 11080 next:ifhw=1thenreturn 11085 ife(x,y)=0thenreturn 11090 print"orks haben dich gefangengenommen":goto8000 11100 ifx=0andy=1then 11120 11110 ifx=6andy=2then 11120 11115 goto11160 11120 hw=0:forlv=1to3:ifgs$(lv)="panzerhemd"then hw=1 11125 next:ifhw=1then11130 11126 ife(x,y)=0thenreturn 11127 print"orks mit pfeil und bogen haben dich beschossen":goto8000 11130 hw=0:forlv=1to3:if gs$(lv)="schwert"then hw=1 11140 next:ifhw=1thenreturn 11145 ife(x,y)=0thenreturn 11150 print"orks haben dich gefangengenommen":goto 8000 11160 ifx=6andy=0then 11190 11170 ifx=1andy=7then 11190 11180 ifx=0andy=10then 11190 11185 ifx=0andy=12then 11190 11187 goto11210 11190 print"zuviele orks stuermten euch entgegen.":goto8000 11210 if x<>3ory<>11then 11240 11220 hw=0:forlv=1to3:ifgs$(lv)="platte"then hw=1 11230 next:ifhw=1thenreturn 11232 if e(x,y)=0then return 11235 print"das dunkle feuer des ralbogs hat dich vernichtet.":goto8000 11240 ifx<0thenreturn 11242 ife(x,y)=32then 11250 11245 goto11280 11250 hw=0:forlv=1to3 11260 if gs$(lv)="laterne"andm1=1then hw=1 11262 next:ifhw=0then11275 11264 print"die laterne hat eine magische wirkung auf die augen der spinne."; 11266 print"die spinne ist geblendet und fluechtet in einen gehei- men ausgang" 11268 pokevi+21,peek(vi+21)and247:gosub20200:return 11275 print"die riesenspinne hat dich gefressen":goto8000 11280 if m2>5then print"du bist vor erschoepfung zusammengebrochen":goto8000 11290 if x=4andy=2then 11304 11300 if x=1andy=6then 11304 11302 goto11310 11304 pokevi+21,0 11305 print"{clr}du bist in eine fallgrube gelaufen.":goto8000 11310 return 15000 rem 15030 input"{rvof}kommando";b$ 15040 ifb$<>"o"then 15100 15060 hw=0:forlv=1to8:if mid$(ri$,lv,1)="o"thenhw=1:lv=8 15070 next:ifhw=1then15076 15075 print"nicht moeglich":goto15030 15076 ifx<0then15090 15077 ife(x,y)=1ore(x,y)=2ore(x,y)=4then15075 15078 ifm5=2andx=2andy=11then15094 15079 ifx=4andy=11then15095 15080 if x<>3ory<>11then 15090 15082 ife(x,y)<>0thenprint"der ralbog hat dich vernichtet.":goto8000 15083 hw=0:forlv=1to3:if gs$(lv)<>""thenhw=1 15086 next:ifhw=1thenprint"die bruecke ist gebrochen!":goto8000 15088 x=x+1:print"{blk}du stehst auf der bruecke!":goto15030 15090 ifx<>2ory<>11then15094 15091 ifm5=0thenprint"du bist in den abgrund gestuerzt!":goto8000 15092 print"du bist im hintergrund des raumes":forlv=1to2500:next 15093 m5=2:goto10200 15094 x=x+1:ri$="":goto10200 15095 if tu=2andx=4andy=11then 24000 15100 ifb$<>"w"then 15200 15120 hw=0:forlv=1to8:if mid$(ri$,lv,1)="w"thenhw=1 15130 next:ifhw=1then15137 15135 print"nicht moeglich":goto15030 15137 ife(x,y)=1ore(x,y)=2ore(x,y)=4then15135 15138 ifx<>2ory<>11then15150 15139 ifm5<2then15150 15140 if(c(x,y)and128)=0then15145 15142 print"du stehst vor dem feuer":forlv=1to2000:next:m5=1:goto10200 15145 print"du bist in den abgrund gefallen!":goto8000 15150 x=x-1:ri$="":goto10200 15200 ifb$<>"n"then 15300 15220 hw=0:forlv=1to8:if mid$(ri$,lv,1)="n"thenhw=1 15230 next:ifhw=1then15236 15235 print"nicht moeglich":goto15030 15236 ife(x,y)=1ore(x,y)=2ore(x,y)=4then15235 15237 ifx=1andy=11then print"du bist in einen abgrund gestuerzt":goto8000 15240 y=y-1:ri$="":goto10200 15300 ifb$<>"s"then 15400 15320 hw=0:forlv=1to8:if mid$(ri$,lv,1)="s"thenhw=1 15330 next:ifhw=1then15336 15335 print"nicht moeglich":goto15030 15336 ife(x,y)=1ore(x,y)=2ore(x,y)=4then15335 15337 ifx=1andy=11then print"du bist in einen abgrund gestuerzt":goto8000 15340 y=y+1:ri$="":goto10200 15400 if left$(b$,4)<>"nimm"then 15500 15401 iflen(b$)<5then15030 15402 b$=right$(b$,len(b$)-5) 15403 hw=0:forlv=0to10 15404 ifb$=a$(lv)thengd$=b$:hw=1 15405 next:ifhw=1then15415 15410 print"ich sehe das hier nicht":goto15030 15415 gosub10400:goto10200 15500 ifleft$(b$,8)<>"verliere"then 15600 15501 iflen(b$)<9then15030 15502 b$=right$(b$,len(b$)-9) 15503 hw=0:forlv=0to10 15504 ifb$=a$(lv)thengd$=b$:hw=1 15505 next:ifhw=1then15520 15512 print"ich sehe das hier nicht!":goto15030 15520 gosub10600:goto10200 15600 ifleft$(b$,6)<>"oeffne"then 15700 15610 if right$(b$,4)="tuer"then 15620 15615 print"geht nicht":goto15030 15620 ifx=4andy=11thenprint"die tuer ist offen! richtungen:w-o":ri$="w-o" 15630 ifx=4andy=11thentu=2:goto15030 15640 if x=3andy=11then print"die bruecke ist dazwischen!":goto15030 15700 if b$<>"list"then 15800 15710 print"du traegst:" 15720 printgs$(1):printgs$(2):printgs$(3) 15730 goto15030 15800 if b$<>"r"then15900 15810 if x=5andy=1then 15850 15820 if x=5andy=3then 15850 15830 if x=6andy=4then 15870 15840 if x=3andy=6then 15870 15845 print"nicht moeglich":goto15030 15850 print"{clr}du bist in die keller der orks geraten und bist entdeckt worden." 15860 goto8000 15870 hw=0:forlv=1to10:ifmid$(ri$,lv,1)="r"thenhw=1 15880 next:ifhw=1then15890 15885 print"nicht moeglich":goto15030 15890 if x=6then x=0:y=6:goto15897 15895 x=0:y=11 15897 print"du bist geklettert,ploetzlich ist die leiter zusammengekracht."; 15898 print"du bist unsanft aufgekommen.":forlv=1to5000:next:goto10200 15900 if left$(b$,4)<>"sage"then16000 15902 iflen(b$)<5then15030 15905 printright$(b$,len(b$)-5) 15910 if x=6andy=4then15940 15920 if x=3andy=6then15940 15930 print"es ist nichts geschehen.":goto15030 15940 if right$(b$,6)<>"freund"andright$(b$,7)<>"freund'"then15930 15950 hw=0:forlv=1to3:ifgs$(lv)="schluessel"thenhw=1 15960 next:ifhw=1then15980 15970 print"ich kann ein schloss erkennen!":goto15030 15980 print"die platte loest sich auf!" 15985 forlw=1to1500:next 15990 d(x,y)=d(x,y)or32:goto10200 16000 if left$(b$,6)<>"bringe"orright$(b$,2)<>"um"then16200 16005 ifx=-1thenprint"hier ist noch friedenszone":goto15030 16007 ifmid$(b$,8,4)="orks"ande(x,y)=0then15030 16110 ifmid$(b$,8,4)="orks"then print"sie sind tot!":m2=m2+1:e(x,y)=0:goto10200 16120 ifmid$(b$,8,7)="dangalf"thenprint"dangalf hat dich erschlagen":goto8000 16160 ifmid$(b$,8,6)<>"ralbog"ore(x,y)<>16then16180 16170 print"der ralbog hat sich erst halb totgelacht dann hat er dich mit" 16175 print"einem peitschenhieb in den abgrund befoerdert.":goto8000 16180 ifmid$(b$,8,5)="dofro"ormid$(b$,8,4)="dich"thenprint"selbstmord":goto8000 16197 print"was soll ich toeten?":goto15030 16200 ifleft$(b$,4)<>"hebe"then16300 16201 iflen(b$)<5then15030 16202 b$=right$(b$,len(b$)-5) 16220 hw=0:forlv=1to3:ifgs$(lv)=b$thenhw=1 16230 next:ifhw=1then16240 16235 print"ich trage das nicht!":goto15030 16240 ifb$="platte"then print"zum heben ist sie zu schwer!":goto15030 16250 if b$="laterne"then m1=1:print"das laternenlicht wird heller":goto15030 16260 print"ok.":goto15030 16300 ifleft$(b$,8)<>"entleere"then16400 16310 if right$(b$,5)="eimer"orright$(b$,11)="wassereimer"then16321 16320 print"wie soll das gehen?":goto15030 16321 hw=0:forlv=1to3:ifgs$(lv)="eimer"thenhw=1 16322 next:ifhw=1then16325 16323 goto16320 16325 ifm4=1thenprint"er ist schon leer!":goto15030 16330 input"{blk}{rvof}wohin";b$ 16340 ifb$="ralbog"orb$="ueber ralbog"thenm4=1:goto16380 16345 ifx<>3ory<>11thenprint"das hat nichts veraendert.":m4=1:goto15030 16350 print"der ralbog hat dich angegriffen.":goto8000 16380 ifx<>3ory<>11then print"du spassvogel!":goto15030 16390 print"der ralbog taumelt und faellt in den abgrund!":e(x,y)=0 16391 forlv=1to2500:next:goto10200 16400 ifb$<>"hilf"then16500 16405 ifx<0then print"du bist auf dem richtigen weg.":goto15030 16410 ifx=0andy=0thenprint"lies doch mal":goto15030 16415 ifx=0andy=11thenprint"lies doch mal":goto15030 16420 ifx=5andy=1thenprint"schau mal unten nach.":goto15030 16430 ifx=5andy=3thenprint"schau mal unten nach.":goto15030 16440 ifx=6andy=4thenprint"vielleicht musst du ein zauberwort sagen":goto15030 16450 ifx=2andy=6thenprint"spinnen sind nuetzliche tiere!":goto15030 16460 if x=3andy=6thenprint"vielleicht musst du ein zauberwort sagen":goto15030 16470 ifx=1andy=11thenprint"der weg nach norden scheint der richtige":goto15030 16480 ifx=3andy=11thenprint"feuerwesen haben auch schwachstellen.":goto15030 16481 ifx=0andy=1ande(x,y)>0then16498 16482 ifx=2andy=2ande(x,y)>0then16498 16483 ifx=2andy=3ande(x,y)>0then16498 16484 ifx=6andy=2ande(x,y)>0then16498 16485 ifx=2andy=7ande(x,y)>0then16498 16486 ifx=2andy=10ande(x,y)>0then16498 16495 goto16499 16498 print"die orks haben dich umzingelt undsperren den ausgang.":goto15030 16499 print"du machst deine sache gut.":goto15030 16500 ifb$<>"speichere"then16600 16510 input"unter welchem namen";c$ 16515 print"spule das band richtig und druecke taste":geta$:ifa$=""then16515 16520 open1,1,1,c$ 16530 forl1=0to6:forlw=0to12:print#1,c(l1,lw):next:next 16540 forl1=0to6:forlw=0to12:print#1,e(l1,lw):next:next 16550 forl1=1to3 16551 ifgs$(l1)=""thenprint#1,"a":goto16555 16552 print#1,gs$(l1) 16555 next 16560 print#1,m1:print#1,m2:print#1,m3:print#1,m4:print#1,m5:print#1,m6 16561 print#1,tu:print#1,x:print#1,y:print#1,d(6,4):print#1,d(0,6) 16580 print#1,d(3,6):print#1,d(0,11):close1:goto10200 16600 ifb$<>"lade"then16700 16610 input"unter welchem namen";c$ 16615 print"spule das band richtig und druecke taste":geta$:ifa$=""then16615 16620 open1,1,0,c$ 16630 forl1=0to6:forlw=0to12:input#1,c(l1,lw):next:next 16640 forl1=0to6:forlw=0to12:input#1,e(l1,lw):next:next 16650 forl1=1to3:input#1,gs$(l1) 16651 ifgs$(l1)="a"thengs$(l1)="" 16655 next 16660 input#1,m1:input#1,m2:input#1,m3:input#1,m4:input#1,m5:input#1,m6 16662 input#1,tu:input#1,x:input#1,y:input#1,d(6,4):input#1,d(0,6) 16680 input#1,d(3,6):input#1,d(0,11):close1 16690 goto10200 16700 ifleft$(b$,4)<>"wirf"then16800 16710 iflen(b$)<5then15030 16720 b$=right$(b$,len(b$)-5):hv=0 16725 forlv=1to3:ifgs$(lv)=b$thenhv=1 16730 next:ifhv=1then16740 16735 print"ich sehe das nicht":goto15030 16740 ifb$="seil"then16750 16745 gd$=b$:gosub10600:goto10200 16750 ifx=0andy=6then16770 16760 ifx=0andy=11then16770 16765 gd$=b$:gosub10600:goto10200 16770 print"das seil hat sich oben verhakt!":d(x,y)=d(x,y)or64 16771 ifgs$(1)="seil"thengs$(1)="" 16772 ifgs$(2)="seil"thengs$(2)="" 16773 ifgs$(3)="seil"thengs$(3)="" 16775 forlv=1to2500:next 16780 goto10200 16800 ifb$<>"h"then16900 16810 hv=0:forlv=1to10:ifmid$(ri$,lv,1)="h"thenhv=1 16820 next:ifhv=1then16840 16830 print"nicht moeglich!":goto15030 16840 ifx=0andy=11thenx=3:y=6:goto10200 16850 ifx=0andy=6thenx=6:y=4:goto10200 16900 ifleft$(b$,4)<>"lies"then17000 16910 ifright$(b$,4)="buch"then16960 16920 ifright$(b$,12)<>"schriftrolle"thenprint"nicht moeglich!":goto15030 16930 hw=0:forlv=1to3:ifgs$(lv)="schriftrolle"thenhw=1 16940 next 16945 if hw=1then16950 16947 print"ich trage das nicht!":goto15030 16950 hw=0:forlv=1to3:ifgs$(lv)="fackel"orgs$(lv)="laterne"thenhw=1 16952 next 16954 ifhw=1then23000 16956 print"es ist zu dunkel,ich kann nichts sehen!":goto15030 16960 hw=0:forlv=1to3:ifgs$(lv)="buch"thenhw=1 16970 next 16975 if hw=1then16980 16977 goto16947 16980 goto23200 17000 print"wie bitte???":goto15030 20000 if(c(x,y)and1024)=1024then10405 20010 ifd(0,6)<64thengoto15030 20015 ifgs$(1)>""andgs$(2)>""andgs$(3)>""then15030 20020 d(0,6)=d(0,6)-64:m6=1:goto10470 20100 if(c(x,y)and1024)=1024then10405 20110 ifd(0,11)<64then15030 20115 ifgs$(1)>""andgs$(2)>""andgs$(3)>""then15030 20120 d(0,11)=d(0,11)-64:m6=1:goto10470 20200 e(x,y)=0 20220 m=int(rnd(1)*4) 20225 n=int(rnd(1)*4)+5 20230 ife(m,n)>0then20220 20235 e(m,n)=32 20240 return 22300 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"spc(17)"{gry2}{SHIFT-POUND} {CBM-*}{down}{left}{left}{left}{left}{left}{left}{left}{SHIFT-POUND} {CBM-*}{down}{left}{left}{left}{left}{left}{left}{left}{left}"; 22320 print"{blk}{rvon} {down}{down}" 22330 return 22400 poke2040,11:poke2041,13:poke2042,14:poke2043,14 22420 forl1=0to62:poke704+l1,a(0,l1+1):poke832+l1,a(23,l1+1) 22425 poke896+l1,a(11,l1+1):next 22430 pokevi+39,2:pokevi+40,2:pokevi,160:pokevi+2,160:pokevi+1,121:pokevi+3,163 22435 pokevi+41,7:pokevi+42,7:pokevi+4,153:pokevi+6,193:pokevi+5,179 22437 pokevi+7,179 22440 pokevi+23,(peek(vi+23)and243)or3:pokevi+29,(peek(vi+29)and243)or3 22450 pokevi+21,peek(vi+21)or15 22460 print"{home}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{blk}{CBM-@}{CBM-@}{CBM-P}{CBM-P}{CBM-O}{CBM-O}{CBM-I}{CBM-I}{rvon}{CBM-U}{CBM-U}{CBM-Y}{CBM-Y}{CBM-T}{CBM-T} {CBM-T}{CBM-T}{CBM-Y}{CBM-Y}{CBM-U}{CBM-U}{rvof}{CBM-I}{CBM-I}{CBM-O}{CBM-O}{CBM-P}{CBM-P}{CBM-@}{CBM-@}" 22470 print"{rvon}{rght}{rght}{rght}{rght}{SHIFT-POUND} {CBM-*}" 22480 forlv=1to4:print"{rvon}{rght}{rght}{rght}{rght} ":next 22490 forlv=1to4:printspc(3+lv)"{rvof}{CBM-*}";:forl1=1to32-2*lv:print"{rvon} ";:next 22500 print"{rvof}{SHIFT-POUND}":next 22510 forlv=1to7:print"{rvon}{blk}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} ":next:print"{down}{down}{down}" 22520 return 23000 poke53280,0:poke53281,4:pokevi+21,0 23020 print"{clr}{wht}"chr$(14) 23030 print"Mein Freund Thrain," 23040 print"ich schreibe Dir von Mario, der Zwergen-"; 23050 print"mine, die von Balin, dem Zwergenfuehrer,"; 23060 print"regiert wird. Diese Mine ist von vielen" 23070 print"Ungeheuern bevoelkert, und wir haben es" 23080 print"schwer, uns gegen sie zur Wehr zu" 23090 print"setzen. Eine Riesenspinne lauert uns" 23100 print"immer wieder auf, heimtueckische Orks" 23110 print"stellen uns nach, aber das Schlimmste" 23120 print"ist ein Feuerwesen, gegen das wir alle" 23130 print"machtlos sind. Es heisst, dass die Spin-"; 23140 print"ne sehr lichtempfindlich ist, aber" 23150 print"unsere herkoemmlichen Fackeln schaden" 23160 print"ihr nicht. Da die Luft dort sehr stickig"; 23163 print"ist,bleibt das Licht unserer Fackeln" 23166 print"dort ohnehin nur dann einigermassen hellwenn wir sie hochheben." 23170 print"Ich hoere jemand kommen-nein, das werdendoch nicht etwa" 23190 geta$:ifa$=""then23190 23195 printchr$(142):goto10200 23200 poke53281,1:poke53280,9:pokevi+21,0 23220 print"{clr}{blu}"chr$(14) 23230 print"TAGEBUCH DES ZWERGENHERRSCHERS{$a0}BALIN," 23240 print" HERR VON MARIO" 23250 print"Wir koennen nicht hinaus.Wir koennen" 23260 print"nicht hinaus.Sie haben die Bruecke und" 23270 print"die zweite Halle genommen.Frar und Loni" 23280 print"und Nali fielen dort.Der See reicht bis" 23290 print"zur Wand am Westtor.Der Waechter im" 23300 print"Wasser hat Oin gepackt.Wir koennen nicht"; 23310 print"hinaus.Das Ende kommt.Trommeln.Trommeln" 23320 print"in der Tiefe." 23330 print" S ie ko m me n." 23340 goto23190 24000 pokevi+21,0:poke53281,14:poke53280,0 24020 print"{clr}{wht}du bist aus der mine entkommen!" 24030 print"du hast das ziel erreicht und eine" 24040 print"etappe deines weges zurueckgelegt. wie" 24050 print"es weitergeht,kannst du in dem buch" 24060 print" 'der herr der ringe'" 24070 print"weiterlesen, wenn es dir gefallen hat."
0 REM *** MARIO - EIN ADVENTURE FUER DEN COMMODORE 64 *** 1 REM BY HARALD BORNFLETH,IM HERZENACKER 39,6535 GAU-ALGESHEIM,TEL.06725/3803 2 DIM A(23,63),A$(10),C(6,12),D(6,12),E(6,12):VI=53248:X=-2:Y=3 20 GOSUB 9000 30 PRINT"{RVSON,11SPACE}EINEN MOMENT BITTE{11SPACE}"; 40 IF M7>0 THEN421 70 FOR LV=1 TO54:READ A(23,LV):NEXT 71 DATA ,127,2,,255,2,,255,2,1,231,2,1,231,130,1,227,194,1,227,194,3,195,194,3 72 DATA 195,194,3,193,228,3,193,226,3,193,226,7,129,225,7,128,241,7,128,241 73 DATA 7,128,241,15,,121,15,,121 80 FOR LV=1 TO63:READ A(0,LV):NEXT 81 DATA ,62,,,127,,,107,,,62,,,62,,,28,,1,255,128,3,255,192,7,255,224,6,127,96,6 82 DATA 126,96,6,126,96,6,126,96,6,126,96,6,126,96,6,126,96,6,126,96,6,126,96 83 DATA 255,126,248,6,126,100,,126,4 90 FOR LV=1 TO49:READ A(1,LV):NEXT 100 DATA 0,0,1,0,0,3,0,0,3,0,0,7,0,0,7,0,4,15,0,14,15,0,14,31,0,31,31,0,31,63 101 DATA 0,63,191,8,63,255,28,127,255,60,127,255,62,255,255,126,255,255,127 102 FOR LV=50 TO63 103 A(1,LV)=255 104 NEXT 109 FOR LV=1 TO30:READ A(2,LV):NEXT 110 DATA 128,0,3,192,0,7,224,0,15,240,0,15,248,0,31,252,4,63,254,14,63,255,15 111 DATA 127,255,159,255,255,223,255 112 FOR LV=31 TO63:A(2,LV)=255:NEXT 119 FOR LV=28 TO54:READ A(3,LV):NEXT 120 DATA 0,126,0,3,255,192,7,255,224,15,255,240,31,255,248,63,255,252,127,255 121 DATA 254,127,255,254,127,255,254 122 FOR LV=55 TO63:A(3,LV)=255:NEXT 129 FOR LV=46 TO63:READ A(4,LV):NEXT 130 DATA 0,224,0,1,252,0,1,255,0,1,255,128,1,255,128,1,255,128 139 FOR LV=46 TO63:READ A(5,LV):NEXT 140 DATA 0,7,0,0,63,128,0,255,128,1,255,128,1,255,128,1,255,128 149 FOR LV=10 TO63:READ A(6,LV):NEXT 150 DATA 0,60,0,1,255,128,3,60,192,6,219,96,14,219,112,15,60,240,31,255,248 151 DATA 35,255,196,66,36,66,132,66,33,136,66,17,136,129,17,144,129,9,144,129,9 152 DATA 144,129,9,144,129,9,144,129,9,144,129,9 159 FOR LV=1 TO63:READ A(7,LV):NEXT 160 DATA 8,28,8,8,62,28,8,127,62,8,42,8,8,62,8,8,34,8,8,62,8,28,28,8,31,255,252 161 DATA 31,255,252,8,127,8,,127,8,,127,8,,127,8,,127,8,,119,8,,99,8,,99,8,,99,8 162 DATA ,99,8,3,227,232 169 FOR LV=19 TO48:READ A(8,LV):NEXT 170 DATA 3,231,192,7,255,224,15,255,240,31,255,248,63,255,252,127,255,254,253 171 DATA 255,191,121,255,159,49,255,142,1,255,232 172 FOR LV=49 TO 63STEP 3:A(8,LV)=1:A(8,LV+1)=255:A(8,LV+2)=128:NEXT 179 FOR LV=29 TO63:READ A(9,LV):NEXT 180 DATA 6,0,0,6,0,0,15,0,9,47,128,15,127,140,31,255,142,31,255,30,63,255,190 181 DATA 63,255,255,127,255,254,127,255,255,255,255,255 189 FOR LV=34 TO63:READ A(10,LV):NEXT 190 DATA 4,130,0,15,198,12,15,215,14,31,223,158,31,255,190,63,255,190,63,255,255 191 DATA 127,255,255,127,255,255,255,255,255 199 FOR LV=28 TO63:READ A(11,LV):NEXT 200 DATA 2,0,0,7,64,0,15,224,0,31,225,0,31,227,16,31,243,24,63,247,188,63,255 201 DATA 188,63,255,254,127,255,254,127,255,255,255,255,255 209 FOR LV=22 TO63:READ A(12,LV):NEXT 210 DATA 2,0,0,7,0,0,7,128,0,15,160,0,31,240,0,31,240,0,31,240,128,63,241,200 211 DATA 63,249,220,63,251,220,127,251,254,127,255,254,255,255,255,255,255,255 219 FOR LV=1 TO54:READ A(13,LV):NEXT 220 DATA 15,255,240,31,255,248,63,255,252,122,16,94,240,,15,224,,7,240,,15 221 DATA 224,,7,224,,7,224,,7,241,248,15,224,4,7,224,2,7,224,1,7,240,,143 222 DATA 224,,71,240,,15,250,8,95 223 FOR LV=55 TO63:A(13,LV)=255:NEXT 229 FOR LV=1 TO63:READ A(14,LV):NEXT 230 DATA 0,127,224,7,128,24,8,,4,16,63,194,33,192,33,34,,17,68,63,9,136,64,137 231 DATA 136,28,73,145,,73,145,16,137,145,15,9,72,128,18,72,96,100,36,31,132 232 DATA 35,,8,16,192,48,8,63,192,4,,,3,128,,,127,255 239 FOR LV=19 TO63:READ A(15,LV):NEXT 240 DATA 30,,,30,,,30,,,30,,,31,255,252,255,255,254,255,255,255,255,255,255 241 DATA 255,255,254,31,255,252,30,,,30,,,30,,,30,,,,, 249 FOR LV=1 TO63:READ A(16,LV):NEXT 250 DATA ,,,,3,128,,15,224,,31,240,,63,248,,127,248,,255,248,1,255,240,7,255,240 251 DATA 24,255,224,32,63,224,71,31,192,72,159,128,144,79,,147,78,,144,76,,72,88, 252 DATA 71,144,,32,32,,24,192,,7,, 259 FOR LV=14 TO63:READ A(17,LV):NEXT 260 DATA 15,255,,16,3,,40,7,,83,229,,128,135,1,99,118,2,16,22,4,231,244,8,,60 261 DATA 19,11,72,36,148,112,71,159,144,128,,224,255,255,32,255,255,64,128,1,128 262 DATA 255,255,128 269 FOR LV=31 TO63:READ A(18,LV):NEXT 270 DATA 7,128,,31,224,,56,112,,96,31,254,192,15,255,192,15,255,192,15,255 271 DATA 96,24,227,56,48,227,31,224,227,7,128,3 279 FOR LV=4 TO59:READ A(19,LV):NEXT 280 DATA 3,255,192,28,,56,31,255,248,16,255,8,16,,16,8,,16,8,,16,8,,16,4,,16 281 DATA 4,,32,4,,32,4,,32,2,,32,2,,64,2,,64,2,,64,2,,64,1,195,128,,60 289 FOR LV=24 TO63:READ A(20,LV):NEXT 290 DATA 16,,,24,,,24,,,88,,,228,,1,52,,1,252,,1,252,0,3,254,0,3,239 291 DATA 127,255,254,255,255,254,255,255,250,127,255,252 292 FOR LV=1 TO63:READ A(21,LV):NEXT 293 DATA ,126,,,255,,,255,,1,255,128,1,255,128,3,255,192,3,255,192,7,255,224,7 294 DATA 255,224,15,255,240,15,255,240,31,255,248,31,255,248,63,255,252,63,255 295 DATA 252,127,255,254,127,255,254,255,255,255,128,,1,128,,1,255,255,255 296 FOR LV=1 TO63:READ A(22,LV):NEXT 297 DATA ,24,,,24,,,24,,,60,,,126,,,255,,1,255,128,3,255,192,7,255,224,15,255 298 DATA 240,15,255,240,12,24,48,12,24,48,12,24,48,15,255,240,15,255,240,12,24,48 299 DATA 12,24,48,12,24,48,15,255,240,15,255,240 300 FOR LV=0 TO12:FOR LW=0 TO6:READ D(LW,LV):NEXT :NEXT 310 DATA 4,20,8,16,28,24,8 320 DATA 6,6,16,28,30,60,12 330 DATA 22,26,24,10,18,26,14 340 DATA 26,24,24,24,24,44,2 345 DATA ,,,,,18,8 350 DATA 20,28,12,,,, 355 DATA 6,2,22,8,,, 360 DATA 22,24,30,12,,, 370 DATA 18,24,26,10,,, 375 DATA ,,4,,,, 380 DATA 4,,6,,,, 385 DATA 22,16,18,24,,, 390 DATA 2,,,,,, 400 FOR LV=0 TO10:READ A$(LV):NEXT 410 DATA SCHRIFTROLLE,SCHWERT,FACKEL,PANZERHEMD,SCHLUESSEL,LATERNE,BUCH,PLATTE 420 DATA EIMER,UHR,SEIL 421 E(6,0)=4:E(0,1)=2:E(2,2)=1:E(6,2)=2:E(2,3)=1:E(6,4)=8:E(5,1)=64:E(1,6)=64 422 E(2,6)=32:E(3,6)=8:E(1,7)=4:E(2,7)=1:E(0,10)=4:E(2,10)=1:E(3,11)=16 423 E(0,12)=4 430 C(0,0)=1:C(2,0)=2:C(3,0)=8:C(2,1)=4:C(4,1)=1024:C(6,3)=16 440 C(1,5)=512:C(3,7)=32:C(0,11)=192:C(2,9)=256 500 PRINT"{UP,40SPACE,UP}BITTE EINE TASTE DRUECKEN" 510 GET A$:IF A$="" THEN510 1000 POKE 53281,5:POKE 53280,0:POKE VI+21,0 1010 PRINT"{CLR,BLACK}"; 1020 FOR LV=1 TO13 1025 IF LV<6 THENPRINT"{RVSON,LIG.BLUE,6SPACE,BLACK,22SPACE,LIG.BLUE,6SPACE,BLACK,6SPACE}";:GOTO 1040 1027 IF LV>9 THENPRINT"{RVSON,17SPACE,GREY1,6SPACE,BLACK,17SPACE}";:GOTO 1040 1030 PRINT"{RVSON,40SPACE}"; 1040 NEXT 1050 PRINT"{BLUE,4DOWN}"; 1060 PRINT"{RVOFF}@@PPOOII{RVSON}UUYYTT{SPACE,11SPACE}TTYYUU{RVOFF}IIOOPP@@"; 1070 FOR LV=1 TO6 1080 PRINT"{RVSON,40SPACE}"; 1090 NEXT 1095 PRINT"{RVSON,39SPACE}";:POKE 2023,160 1100 POKE 2040,13:POKE 2041,14:POKE 2042,15 1110 FOR LV=0 TO62:POKE 832+LV,A(1,LV+1):NEXT 1120 FOR LV=0 TO62:POKE 896+LV,A(2,LV+1):NEXT 1130 FOR LV=0 TO62:POKE 960+LV,A(3,LV+1):NEXT 1140 POKE VI+29,7:POKE VI+23,7:POKE VI+39,0:POKE VI+40,0:POKE VI+41,11:POKE VI+21,7 1150 POKE VI,24:POKE VI+1,50:POKE VI+2,248:POKE VI+3,50:POKE VI+4,160:POKE VI+5,80 1160 GET A$:IF A$="" THEN 1160 1165 POKE VI+21,0 1170 PRINT:PRINT"{BLACK,RVOFF}DU STEHST VOR DEM TOR VON MARIO. DAVOR" 1180 PRINT"LIEGT EIN DUNKLER, UNHEIMLICHER SEE." 1190 PRINT"MOEGLICHE RICHTUNGEN:W. 1200 PRINT"DANGALF UEBERSETZT DIE WORTE,DIE AUF" 1210 PRINT"DEM TOR GESCHRIEBEN SIND, AUS DEM ELBI- SCHEN:" 1220 PRINT"'SPRICH,'FREUND',UND TRITT EIN.'" 1410 GOTO 6000 1500 POKE 53280,0:POKE 53281,12:POKE VI+21,0:POKE VI+23,1:POKE VI+29,1:POKE 204,1 1510 PRINT"{CLR}";:FOR LV=8 TO18STEP 2:PRINT"{GREY1,RVSON,11SPACE}"; 1520 PRINTSPC( LV/2-4)"{GREY3,RVOFF}*";:FOR L1=1 TO24-LV:PRINT"{RVSON,SPACE}";:NEXT :PRINT"{RVOFF}£"; 1530 PRINTSPC( LV/2-4)"{RVSON,GREY1,11SPACE}";:NEXT 1540 PRINT"{HOME}";:FOR LV=1 TO15 1545 IF LV>6 THENPRINT"{RVSON,GREY1,11SPACE,6RIGHT,BLACK,6SPACE,6RIGHT,GREY1,11SPACE}";:GOTO 1560 1550 PRINT"{RVSON,GREY1,11SPACE,18RIGHT,11SPACE}"; 1560 NEXT 1570 FOR LV=10 TO0STEP -2 1580 PRINT"{GREY1,RVSON,11SPACE}";SPC( LV/2)"{GREY3}£";:FOR L1=1 TO16-LV:PRINT"{RVSON,SPACE}";:NEXT 1590 PRINT"{RVSON}*";SPC( LV/2)"{RVSON,GREY1,11SPACE}";:NEXT 1600 POKE 2040,13:POKE VI,160:POKE VI+1,64:POKE VI+39,0 1610 FOR LV=0 TO62:POKE 832+LV,A(3,LV+1):NEXT :POKE VI+21,1 1620 PRINT"{RVOFF,BLACK}EIN HELLER GANG."; 1625 IF M3=0 THENPRINT"PLOETZLICH SCHLAEGT JE- MAND DAS EINGANGSTOR ZU.":M3=1 1630 PRINT"RICHTUNGEN: O":RI$="O" 1640 GOSUB 11000:GOTO 15000 2000 POKE 53280,0:POKE 53281,11:POKE VI+21,0:POKE VI+23,1:POKE VI+29,1 2010 PRINT"{CLR}";:FOR LV=8 TO18STEP 2:PRINT"{BLACK,RVSON,11SPACE}"; 2020 PRINTSPC( LV/2-4)"{GREY2,RVOFF}*";:FOR L1=1 TO24-LV:PRINT"{RVSON,SPACE}";:NEXT :PRINT"{RVOFF}£"; 2030 PRINTSPC( LV/2-4)"{RVSON,BLACK,11SPACE}";:NEXT 2040 PRINT"{HOME}";:FOR LV=1 TO6 2050 PRINT"{RVSON,BLACK,11SPACE,18RIGHT,11SPACE}";:NEXT 2060 HV=D(X,Y):HV=(HVAND 159) 2063 IF HV>=16 THENB(4)=1 2064 FOR LV=7 TO15 2065 IF B(4)=1 THENPRINT"{RVSON,BLACK,11SPACE,6RIGHT,BLACK,6SPACE,6RIGHT,BLACK,11SPACE}";:GOTO 2069 2066 PRINT"{RVSON,BLACK,11SPACE,6RIGHT,GREY1,6SPACE,6RIGHT,BLACK,11SPACE}"; 2069 NEXT 2070 FOR LV=10 TO0STEP -2 2080 PRINT"{BLACK,RVSON,11SPACE}";SPC( LV/2)"{GREY2}£";:FOR L1=1 TO16-LV:PRINT"{RVSON,SPACE}";:NEXT 2090 PRINT"{RVSON}*";SPC( LV/2)"{RVSON,BLACK,11SPACE}";:NEXT 2100 POKE 2040,13:POKE VI,160:POKE VI+1,64 2105 IF B(4)=1 THENPOKE VI+39,0 2106 IF B(4)=0 THENPOKE VI+39,11 2110 FOR LV=0 TO62:POKE 832+LV,A(3,LV+1):NEXT :POKE VI+21,1 2115 GOSUB 10100 2120 IF B(1)=0 THEN 2200 2130 B(1)=0 2135 PRINT"{HOME,12RIGHT,9DOWN}"; 2140 FOR LV=1 TO7:PRINT"{BLACK,RVOFF}M{RVSON,2SPACE,RVOFF}G{DOWN,4LEFT}";:NEXT 2150 PRINT"{RVOFF}M{RVSON,SPACE,RVOFF}£{3LEFT,DOWN}M£{DOWN}" 2160 POKE 2041,14:POKE VI+2,112:POKE VI+3,80:POKE VI+40,0 2170 FOR LV=0 TO62:POKE 896+LV,A(4,LV+1):NEXT 2180 POKE VI+23,3:POKE VI+29,3:POKE VI+21,3 2190 RI$=RI$+"N" 2200 IF B(2)=0 THEN2300 2210 B(2)=0 2220 PRINT"{HOME,24RIGHT,9DOWN}"; 2230 FOR LV=1 TO7:PRINT"{BLACK,RVOFF}M{RVSON,2SPACE,RVOFF}G{DOWN,4LEFT}";:NEXT 2240 PRINT"{RIGHT,RVOFF}*{RVSON,SPACE,RVOFF}G{2LEFT,DOWN}*G{DOWN}" 2250 POKE 2042,15:POKE VI+4,208:POKE VI+5,80:POKE VI+41,0 2260 FOR LV=0 TO62:POKE 960+LV,A(5,LV+1):NEXT 2270 POKE VI+23,7:POKE VI+29,7:POKE VI+21,PEEK (VI+21)+4 2280 RI$=RI$+"-S" 2300 IF B(3)>0 THENB(3)=0:RI$=RI$+"-W" 2310 IF B(4)>0 THENB(4)=0:RI$=RI$+"-O" 2315 IF B(6)>0 THENB(6)=0:RI$=RI$+"-H" 2320 IF B(5)=0 THEN2400 2330 B(5)=0:RI$=RI$+"-R" 2340 PRINT"{HOME,19RIGHT,17DOWN}"; 2350 PRINT"{GREY2,RVSON}Q*W{4LEFT,DOWN,BLACK}£B B*{4LEFT,DOWN,2LEFT}£ Q*W *" 2400 PRINT"{RVOFF,BLACK,HOME,21DOWN}EIN DUNKLER GANG."; 2410 PRINT"{BLACK}RICHTUNGEN:";RI$ 2420 GOSUB 10000 2430 PRINT"{BLACK}GEGENSTAENDE:";GE$ 2440 GOSUB 10300 2450 PRINT"{BLACK}BESONDERHEITEN:"; 2460 IF FG$="" THEN FG$="KEINE" 2470 PRINTFG$ 2480 GOSUB 11000:GOTO 15000 3000 PRINT"{CLR,BLACK}";:POKE 53280,0:POKE 53281,12:POKE VI+21,0 3010 FOR LV=1 TO5:PRINTSPC( LV-1)"M"SPC( 39-2*LV)"N":NEXT 3020 PRINTSPC( 5)"OYYYYYYYYYYYYYYYYYYYYYYYYYYYP" 3030 FOR LV=1 TO8:PRINTSPC( 5)"G"SPC( 27)"M":NEXT 3035 PRINTSPC( 5)"LPPPPPPPPPPPPPPPPPPPPPPPPPPP@" 3040 FOR LV=5 TO1STEP -1:PRINTSPC( LV-1)"N"SPC( 39-2*LV)"M":NEXT 3050 FOR LW=10 TO 25 STEP 15 3060 PRINT"{HOME,DOWN}"SPC( LW)"@@@@{4LEFT,DOWN}MPPN" 3065 FOR LV=1 TO14 3067 IF LV=3 THENPRINTSPC( LW)"P{2SPACE}O":GOTO 3080 3068 IF LV=12 THEN PRINTSPC( LW)"@{2SPACE}L":GOTO 3080 3070 PRINTSPC( LW)"M{2SPACE}G" 3080 NEXT 3090 PRINTSPC( LW)"NYYM{4LEFT,DOWN}TTTT" 3095 NEXT LW 3097 GOSUB 10100 3100 IF B(1)=0 THEN3200 3110 B(1)=0 3120 PRINT"{HOME,5DOWN}MM{DOWN,2LEFT}M M{DOWN,3LEFT}MYP" 3130 FOR LV=1 TO8:PRINT"M M":NEXT 3140 PRINT"MP@{DOWN,3LEFT}M{2SPACE,2LEFT,DOWN,LEFT}M " 3145 RI$=RI$+"-N" 3200 IF B(2)=0 THEN3300 3210 B(2)=0 3220 PRINT"{HOME,5DOWN}"TAB( 37)"NG{3LEFT,DOWN}N G{DOWN,3LEFT}OYG" 3230 FOR LV=1 TO8:PRINTTAB( 36)"G G":NEXT 3240 PRINTTAB( 36)"LPG{DOWN,3LEFT,2SPACE}G{DOWN,2LEFT,SPACE}G" 3250 RI$=RI$+"-S" 3300 IF B(4)=0 THEN3400 3310 B(4)=0 3320 PRINT"{HOME,6DOWN}"TAB( 17)"@@@@@{DOWN,6LEFT}MM@@@NG" 3330 FOR LV=1 TO6:PRINTTAB( 16)"MM{3SPACE}GG":NEXT 3340 PRINTTAB( 16)"@NTTTML{5DOWN}" 3350 RI$=RI$+"-O" 3400 IF B(6)>0 THENB(6)=0:RI$=RI$+"-H" 3500 PRINT"{BLACK}EIN RAUM MIT SAEULEN,DER DURCH SCHAECHTEBELEUCHTET WIRD."; 3510 PRINT"{BLACK}RICHTUNGEN:";RI$ 3520 GOSUB 10000 3530 PRINT"{BLACK}GEGENSTAENDE:";GE$ 3540 GOSUB 10300 3545 IF FG$="" THEN FG$="KEINE" 3550 PRINT"{BLACK}BESONDERHEITEN:";FG$ 3560 GOSUB 11000:GOTO 15000 4000 PRINT"{CLR,GREY2}";:POKE 53280,0:POKE 53281,0 4010 PRINT:POKE VI+21,0 4020 FOR LV=2 TO20STEP 2 4030 PRINTTAB( 19-LV/2)"{GREY2,RVSON}£";:FOR LW=1 TOLV:PRINT"{RVSON,SPACE}";:NEXT :PRINT"{RVSON}*" 4040 PRINTTAB( 19-LV/2)"{GREY1}";:FOR LW=1 TOLV+2:PRINT"{RVSON,SPACE}";:NEXT :PRINT 4045 NEXT LV 4050 PRINT"{GREY2}TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"; 4060 RI$="W-O-N-S" 4070 PRINT"EINE TREPPE, SONST IST ALLES DUNKEL." 4080 PRINT"RICHTUNGEN:";RI$;" ; NICHTS BESONDERES" 4090 GOSUB 10000 4092 PRINT"{GREY2}GEGENSTAENDE";GE$ 4097 GOSUB 11000:GOTO 15000 4100 POKE VI+21,0:POKE 53281,15:POKE 53280,0 4120 PRINT"{CLR,BLACK}"; 4130 FOR LV=0 TO3 4132 IF LV=0 THEN 4140 4135 FOR LW=1 TOLV 4137 PRINT"{GREY2,RVSON,SPACE}";:NEXT 4140 PRINT"{GREY2,RVSON}*"SPC( 37-2*LV)"{GREY2,RVSON}£" 4150 NEXT LV 4155 PRINT"{HOME,GREY2,DOWN}"TAB( 38)"{RVSON,SPACE,DOWN,2LEFT,2SPACE,DOWN,3LEFT,3SPACE}" 4160 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2}*{RVOFF,15SPACE,RVSON}£{GREY1,7SPACE}" 4165 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,SPACE}*{RVOFF,13SPACE,RVSON}£{SPACE,GREY1,7SPACE}" 4170 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,2SPACE}*{RVOFF,11SPACE,RVSON}£{2SPACE,GREY1,7SPACE}" 4175 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,3SPACE}*{RVOFF,9SPACE,RVSON}£{3SPACE,GREY1,7SPACE}" 4180 FOR LV=1 TO5:PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,4SPACE,BLACK,9SPACE,GREY2,4SPACE,GREY1,7SPACE}":NEXT 4185 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,3SPACE,RVOFF}£{9SPACE}*{RVSON,3SPACE,GREY1,7SPACE}" 4190 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,2SPACE,RVOFF}£{11SPACE}*{RVSON,2SPACE,GREY1,7SPACE}" 4195 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,SPACE,RVOFF}£{BLACK,RVSON}£{11SPACE}*{GREY2,RVOFF}*{RVSON,SPACE,GREY1,7SPACE}" 4197 PRINT"{4RIGHT,GREY1,RVSON,7SPACE,GREY2,RVOFF}£{RVSON,BLACK}£{13SPACE}*{GREY2,RVOFF}*{RVSON,GREY1,7SPACE}" 4200 PRINT"{HOME,4DOWN,GREY2}";:FOR LV=1 TO13 4210 PRINT"{RVSON,4SPACE}"SPC( 31)"{RVSON,4SPACE}" 4220 NEXT 4230 PRINT"{RVSON,GREY2,3SPACE,RVOFF}£{DOWN,4LEFT,RVSON,2SPACE,RVOFF}£{DOWN,3LEFT,RVSON,SPACE,RVOFF}£{DOWN,2LEFT}£" 4240 PRINT"{4UP}"SPC( 35)"*{RVSON,3SPACE,RVOFF,DOWN,3LEFT}*{RVSON,2SPACE,RVOFF,DOWN,2LEFT}*{RVSON,SPACE,RVOFF,DOWN,LEFT}*" 4250 FOR LV=0 TO20:POKE 1063+40*LV,160:POKE 55335+40*LV,12:NEXT 4260 POKE 1063+40*21,95:POKE 55335+40*21,12 4265 IF M5=2 THENRI$="W-O":GOTO 4275 4270 RI$="W-O-N" 4275 PRINT"{13UP,RIGHT}*{DOWN,LEFT,SPACE}*{DOWN,2LEFT,2SPACE,DOWN,2LEFT,2SPACE,DOWN,2LEFT,2SPACE,DOWN,2LEFT,2SPACE,DOWN,2LEFT,2SPACE,DOWN,2LEFT,2SPACE,DOWN,2LEFT,2SPACE,DOWN,2LEFT,SPACE,RVSON}£{DOWN,2LEFT}£{2DOWN}" 4300 POKE 2040,11:POKE 2041,11:POKE 2042,13:POKE 2043,13:POKE 2044,14:POKE 2045,14 4310 POKE 2046,15:POKE 2047,15 4320 FOR LV=VI+39 TOVI+46:POKE LV,7:NEXT 4330 FOR LV=VI TOVI+12STEP 4:POKE LV,132:POKE LV+1,144:POKE LV+2,180:POKE LV+3,144 4340 NEXT 4350 FOR LV=0 TO62:POKE 704+LV,A(9,LV+1):NEXT 4360 FOR LV=0 TO62:POKE 832+LV,A(10,LV+1):NEXT 4370 FOR LV=0 TO62:POKE 896+LV,A(11,LV+1):NEXT 4380 FOR LV=0 TO62:POKE 960+LV,A(12,LV+1):NEXT 4390 POKE VI+23,255:POKE VI+29,255 4400 L1=0 4410 FOR LV=0 TO6STEP 2 4420 POKE VI+21,2^LV+2^(LV+1) 4430 NEXT 4440 L1=L1+1 4450 FOR LV=4 TO2STEP -2 4460 POKE VI+21,2^LV+2^(LV+1) 4470 NEXT 4480 IF L1<7 THEN4410 4481 PRINT"{BLACK}EIN RAUM MIT EINEM SCHMALEN ABGRUND, AUSDEM FEUER DRINGT." 4482 PRINT"{BLACK}RICHTUNGEN:";RI$" BESONDERHEITEN:FEUER" 4483 GOSUB 10000 4484 PRINT"{BLACK}GEGENSTAENDE:";GE$ 4486 GOSUB 11000:GOTO 15000 4500 PRINT"{CLR,BLACK}";:POKE 53280,0:POKE 53281,12:POKE VI+21,0 4510 FOR LV=0 TO4 4520 PRINTTAB( LV)"M"SPC( 37-2*LV)"N":NEXT 4530 PRINTTAB( 5)"OYYYYYYYYYYYYYYYYYYYYYYYYYYYP" 4540 FOR LV=1 TO9:PRINTTAB( 5)"G"SPC( 27)"M":NEXT 4550 PRINTTAB( 5)"LPPPPPPPPPPPP{4SPACE}PPPPPPPPPPP@" 4560 FOR LV=0 TO4 4570 PRINTTAB( 4-LV)"{RVSON}£";:FOR L1=1 TOLV 4580 IF LV=0 THEN 4600 4590 PRINT"{RVSON,SPACE}";:NEXT L1 4600 PRINT:NEXT LV 4610 PRINT"{5UP}";:FOR LV=0 TO4 4620 PRINTTAB( 34);:FOR L1=1 TOLV 4630 IF LV=0 THEN GOTO 4650 4640 PRINT"{RVSON,SPACE}";:NEXT L1 4650 PRINT"{RVSON}*" 4660 NEXT LV 4670 PRINT"{5UP}";:FOR LV=1 TO5 4680 PRINTTAB( 5)"{GREY1,RVSON,29SPACE}" 4690 NEXT 4695 PRINT"{5UP}"; 4700 PRINTTAB( 18)"{GREY2,RVSON,4SPACE,DOWN,5LEFT,GREY1}M{GREY2,4SPACE,GREY1}G{DOWN,6LEFT}L{GREY2,4SPACE,GREY1}J{DOWN,6LEFT,RVOFF}K{RVSON,GREY2,4SPACE,GREY1}K" 4710 PRINTTAB( 17)"{GREY1}J{GREY2,4SPACE,GREY1}L" 4720 PRINT"{10UP}";:FOR LV=1 TO5 4730 PRINTTAB( 18)"{RVSON,ORANGE,4SPACE}" 4740 NEXT 4750 PRINTTAB( 17)"{BLACK,UP}@{UP,LEFT}M{UP,LEFT}M{UP,LEFT}M{UP,LEFT}M{UP}PPPP{DOWN}G{DOWN,LEFT}G{DOWN,LEFT}G{DOWN,LEFT}G{DOWN,LEFT}L{5DOWN}" 4760 PRINT"EINE SCHMALE BRUECKE FUEHRT AUF EINE{4SPACE}TUER ZU."; 4770 IF E(X,Y)>0 THENPRINT"EIN UNGEHEUER VERSPERRT DEN WEG" 4780 PRINT"RICHTUNGEN:W-O":RI$="W-O" 4790 GOSUB 10000 4800 PRINT"{BLACK}GEGENSTAENDE:";GE$ 4805 GOSUB 10300 4810 PRINT"BESONDERHEITEN:";FG$ 4820 GOSUB 11000:GOTO 15000 5000 POKE 2043,11:FOR LV=0 TO62:POKE 704+LV,A(6,LV+1):NEXT 5020 POKE VI+23,PEEK (VI+23)OR 8:POKE VI+6,160:POKE VI+7,134:POKE VI+42,11 5030 POKE VI+29,PEEK (VI+29)OR 8:POKE VI+21,PEEK (VI+21)OR 8 5040 RETURN 5100 POKE 2043,11:POKE 2044,11:FOR LV=0 TO62:POKE 704+LV,A(7,LV+1):NEXT 5120 POKE VI+6,160:POKE VI+7,132:POKE VI+8,160:POKE VI+9,175 5125 IF (D(X,Y)AND 16)=16 THENPOKE VI+42,11:POKE VI+43,11:GOTO 5127 5126 POKE VI+42,0:POKE VI+43,0 5127 POKE VI+23,PEEK (VI+23)OR 24:POKE VI+29,PEEK (VI+29)OR 24 5130 POKE VI+21,PEEK (VI+21)OR 24 5140 RETURN 5200 POKE VI+44,11 5220 POKE 2045,11:FOR L1=0 TO62:POKE 704+L1,A(15,L1+1):NEXT 5230 POKE VI+10,200:POKE VI+11,180:POKE VI+21,PEEK (VI+21)OR 32 5240 RETURN 5250 POKE 2045,14:FOR L1=0 TO62:POKE 896+L1,A(19,L1+1):NEXT 5270 POKE VI+44,6:POKE VI+10,140:POKE VI+11,170 5280 POKE VI+21,PEEK (VI+21)OR 32:RETURN 5300 POKE 2047,11:FOR L1=0 TO62:POKE 704+L1,A(22,L1+1):NEXT 5320 POKE VI+46,0:POKE VI+14,196:POKE VI+15,191:POKE VI+21,PEEK (VI+21)OR 128 5321 POKE VI+23,PEEK (VI+23)AND 127:POKE VI+29,PEEK (VI+29)AND 127 5322 IF X>0AND X<3AND Y=11 THENPRINT"{RVSON,YELLOW,4UP,22RIGHT,2SPACE,3DOWN}":GOTO 5330 5324 PRINT"{RVSON,YELLOW,3UP,22RIGHT,2SPACE,2DOWN}" 5330 RETURN 5350 POKE 2040,14:FOR L1=0 TO62:POKE 896+L1,A(21,L1+1):NEXT 5370 POKE VI+39,2:POKE VI,157:POKE VI+1,161:POKE VI+21,PEEK (VI+21)OR 1 5380 POKE VI+29,PEEK (VI+29)OR 1:POKE VI+23,PEEK (VI+23)AND 254:RETURN 5400 POKE 2046,11:FOR L1=0 TO62:POKE 704+L1,A(18,L1+1):NEXT 5420 POKE VI+45,0:POKE VI+12,180:POKE VI+13,180:POKE VI+21,PEEK (VI+21)OR 64:RETURN 5500 POKE 2047,11:FOR L1=0 TO62:POKE 704+L1,A(20,L1+1):NEXT 5520 POKE VI+46,7:POKE VI+14,200:POKE VI+15,180:POKE VI+21,PEEK (VI+21)OR 128:RETURN 5600 POKE 2047,11:FOR L1=0 TO62:POKE 704+L1,A(8,L1+1):NEXT 5615 IF PEEK (VI+21)>127 THEN 5620 5617 POKE VI+21,PEEK (VI+21)+128 5620 POKE VI+46,0:POKE VI+14,174:POKE VI+15,167 5630 RETURN 5700 FOR L1=0 TO62:POKE 704+L1,A(13,L1+1):NEXT 5720 POKE 2046,11:POKE VI+12,160:POKE VI+13,170:POKE VI+45,0 5760 POKE VI+21,PEEK (VI+21)OR 64:POKE VI+23,PEEK (VI+23)AND 191 5770 POKE VI+29,PEEK (VI+29)AND 191:RETURN 5800 FOR L1=0 TO62:POKE 704+L1,A(14,L1+1):NEXT 5820 POKE 2047,11:POKE VI+14,165:POKE VI+15,155:POKE VI+46,15 5830 POKE VI+21,PEEK (VI+21)OR 128:RETURN 5900 POKE 2046,11:FOR L1=0 TO62:POKE 704+L1,A(16,L1+1):NEXT 5920 POKE VI+45,11:POKE VI+12,123:POKE VI+13,197 5930 POKE VI+21,PEEK (VI+21)OR 64:RETURN 5950 POKE 2047,13:FOR L1=0 TO62:POKE 832+L1,A(17,L1+1):NEXT 5970 POKE VI+46,11:POKE VI+14,138:POKE VI+15,180:POKE VI+21,PEEK (VI+21)OR 128:RETURN 6000 TI$="000000":TU=0 6020 POKE 207,0:POKE 204,0 6030 PRINT"{BLACK,RVOFF}KOMMANDO? "; 6035 B$="":LV=0 6040 GET A$ 6042 IF VAL (TI$)<45 THEN 6047 6043 PRINT"PLOETZLICH KOMMEN ARME AUS DEM SEE UND REISSEN DICH HINEIN":GOTO 8000 6047 IF A$="" THEN 6040 6050 IF A$<>" "AND A$<>CHR$ (20)AND A$<>"'"AND A$<>CHR$ (13) THEN 6060 6055 GOTO 6080 6060 IF ASC (A$)<65OR ASC (A$)>90 THEN A$="" 6080 PRINTA$; 6090 IF A$=CHR$ (20)AND B$>"" THEN LV=LV-1:B$=LEFT$ (B$,LV):A$="" 6100 IF A$=CHR$ (13) THENPRINT:GOTO 6130 6105 IF A$>"" THEN LV=LV+1 6110 B$=B$+A$ 6120 GOTO 6040 6130 IF LEFT$ (B$,4)<>"SAGE" THEN 6170 6140 IF RIGHT$ (B$,6)<>"FREUND"AND RIGHT$ (B$,7)<>"FREUND'" THEN 6160 6150 PRINT"DAS TOR IST OFFEN! MOEGLICHE RICHTUNGEN:W-O":TU=1:GOTO 6030 6160 PRINTRIGHT$ (B$,LEN (B$)-5):GOTO 6030 6170 IF LEFT$ (B$,6)<>"BRINGE"OR RIGHT$ (B$,2)<>"UM" THEN 6200 6180 IF MID$ (B$,8,7)<>"DANGALF" THEN PRINT"NICHT MOEGLICH!":GOTO 6030 6190 PRINT"DANGALF HAT DICH MIT EINEM BLITZ ZU BO- DEN GEWORFEN. PLOETZLICH " 6195 PRINT"KOMMEN ARME AUS DEM SEE UND ZIEHEN DICH HINEIN.":GOTO 8000 6200 IF B$<>"W" THEN 6230 6210 PRINT"WARGE HABEN DICH GEFRESSEN.":GOTO 8000 6230 IF B$="OEFFNE TOR" THEN PRINT"SO EINFACH GEHT DAS NICHT!":GOTO 6030 6240 IF B$="HILF" THEN PRINT"ES HANDELT SICH WOHL UM EIN TOR, DAS" 6250 IF B$="HILF" THEN PRINT"MIT ZAUBERWORTEN VERSCHLUESSELT IST.":GOTO 6030 6260 IF B$="O"AND TU=1 THEN X=X+1:GOTO 1500 6290 IF B$="SPEICHERE"OR B$="LADE" THENPRINT"NOCH UNMOEGLICH!":GOTO 6030 6295 PRINT"WIE BITTE???":GOTO 6030 8000 POKE VI+21,0 8005 PRINT"{5DOWN}DU BIST TOT.{2DOWN}" 8010 PRINT"WILLST DU EIN NEUES SPIEL?" 8020 GET A$:IF A$="J" THEN8040 8030 IF A$<>"N" THEN8020 8035 END 8040 IF M7>4 THENRUN 8050 RI$="":GE$="":GD$="":TU=0:X=-2:Y=3:M1=0:M2=0:M3=0:M4=0:M5=0:M6=0:FG$="" 8060 D(6,4)=8:D(0,6)=6:D(3,6)=8:D(0,11)=22:C$="":FOR LV=1 TO3:GS$(LV)="":NEXT 8070 FOR LV=0 TO6:FOR L1=0 TO12:C(LV,L1)=0:E(LV,L1)=0:NEXT 8080 M7=M7+1:GOTO 20 9000 POKE 53280,0:POKE 53281,14 9020 PRINT"{CLR,BLUE}SIE STEHEN VOR DEM TOR VON MARIO, EINER ALTEN ZWERGENMINE." 9030 PRINT"DA SIE DOFRO,DEN HOBBIT DARSTELLEN, DARF ICH SIE HOFFENTLICH DUZEN." 9040 PRINT"WAS HOBBITS FUER WESEN SIND, DARUEBER{3SPACE}INFORMIERT MAN SICH AM" 9050 PRINT"BESTEN IN J.R.R. TOLKIENS 'DER HERR DER RINGE'.IN DEINER BEGLEITUNG" 9060 PRINT"BEFINDET SICH DANGALF,EIN SEHR ALTER UND WEISER ZAUBERER." 9070 PRINT"DEIN ZIEL IST ES, DURCH DIE MINE ZU KOM-MEN. DABEI SIND DIE" 9080 PRINT"HIMMELSRICHTUNGEN ETWAS UNGEWOEHNLICH:{6SPACE,DOWN}O{DOWN}S{DOWN,2LEFT}W{UP,2LEFT}N" 9085 PRINT"{DOWN}BEFEHLE: OEFFNE{2SPACE}HILF(WENN DU NICHT WEI-TER WEISST) NIMM{SPACE,SPACE}LIST"; 9086 PRINT"(GEGENSTAENDE AUF-LISTEN)"; 9087 PRINT"{2SPACE}VERLIERE{2SPACE}HEBE{2SPACE}ENTLEERE{2SPACE}SPEI-CHERE{2SPACE}LADE{2SPACE}WIRF{2SPACE}LIES{2SPACE}BRINGE UM" 9088 PRINT"SAGE(DANACH BITTE KEIN GAENSEFUSS){2SPACE}N{2SPACE}S{2SPACE}O{2SPACE}W{2SPACE}R(RUNTER){2SPACE}H(HOCH)" 9090 RETURN 10000 HV=C(X,Y):FOR LV=10 TO0STEP -1 10025 IF HV<2^LV THEN 10040 10026 ON LV+1GOSUB 5900,5200,5500,5600,5400,5300,5950,5350,5250,5700,5800 10030 GE$=GE$+A$(LV):GE$=GE$+" ":HV=HV-2^LV 10040 NEXT :RETURN 10100 HV=D(X,Y):FOR LV=6 TO1STEP -1 10130 IF HV>=2^LV THENB(LV)=1:HV=HV-2^LV 10140 NEXT :RETURN 10200 GE$="":RI$="":FG$="" 10230 IF Y=11 AND X=1 THEN 4000 10235 IF X=-1 THEN 1500 10240 IF Y=11 AND X=2 THEN 4100 10245 IF X=-2 THEN 1000 10250 IF Y=11AND X=3 THEN 4500 10260 IF Y>8 THEN 3000 10270 GOTO 2000 10300 HW=0:HV=0:FOR LV=0 TO5 10315 IF E(X,Y)<>2^LV THEN 10320 10317 HW=LV:LV=5:HV=1 10320 NEXT :IF HV<1 THENRETURN 10330 IF HW<3 THEN GOSUB 5100:FG$="ORKS" 10332 IF HW=5 THEN GOSUB 5000:FG$="RIESENSPINNE" 10333 IF X=3AND Y=6AND D(X,Y)<32 THENGOSUB 22300:FG$="UNBEWEGLICHE PLATTE" 10334 IF X=6AND Y=4AND D(X,Y)<32 THENGOSUB 22300:FG$="UNBEWEGLICHE PLATTE" 10335 IF HW=4 THENGOSUB 22400:FG$="RALBOG" 10350 RETURN 10400 IF GD$<>"SEIL" THEN10405 10402 IF X=6AND Y=4 THEN20000 10403 IF X=3AND Y=6 THEN20100 10405 IF X<0 THENPRINT"NICHT MOEGLICH!":GOTO 15030 10410 HV=C(X,Y):HW=0:FOR LV=10 TO0STEP -1 10420 IF GD$<>A$(LV) THEN 10450 10430 IF HV>=2^LV THENLV=0:HW=1:GOTO 10455 10450 IF HV>=2^LV THEN HV=HV-2^LV 10455 NEXT 10457 IF HW=1 THEN10470 10458 IF GD$="PLATTE"AND X=6AND Y=4 THENPRINT"SIE IST NICHT BEWEGLICH!":GOTO 15030 10459 IF GD$="PLATTE"AND X=3AND Y=6 THENPRINT"SIE IST NICHT BEWEGLICH!":GOTO 15030 10460 PRINT"DAS IST HIER NICHT ZU SEHEN":RETURN 10470 IF GS$(1)="" THEN GS$(1)=GD$:GOTO 10520 10480 IF GS$(2)="" THEN GS$(2)=GD$:GOTO 10520 10490 IF GS$(3)="" THEN GS$(3)=GD$:GOTO 10520 10500 PRINT"DU TRAEGST ZU VIEL":FOR LV=1 TO1500:NEXT :RETURN 10520 FOR LV=0 TO10:IF A$(LV)=GD$ THEN C(X,Y)=C(X,Y)-2^LV 10530 NEXT 10532 IF M6=1 THENM6=0:C(X,Y)=C(X,Y)+1024 10534 IF M5=1AND GD$="PLATTE" THENM5=0 10540 RETURN 10600 IF GS$(1)=GD$ THEN 10650 10620 IF GS$(2)=GD$ THEN 10660 10630 IF GS$(3)=GD$ THEN10670 10640 PRINT"ICH TRAGE DAS NICHT":RETURN 10650 GS$(1)="":GOTO 10690 10660 GS$(2)="":GOTO 10690 10670 GS$(3)="" 10690 IF X>-1 THEN10710 10692 PRINT"EIN ARM HAT DIE TUER AUFGERISSEN,DEN GE-GENSTAND GENOMMEN UND SIE"; 10695 PRINT"WIEDER ZUGEWOR-{2SPACE}FEN.":FOR LV=1 TO3500:NEXT :RETURN 10710 FOR LV=0 TO10:IF A$(LV)=GD$ THEN C(X,Y)=C(X,Y)+2^LV 10720 NEXT 10725 IF GD$="LATERNE" THENM1=0 10727 IF GD$="PLATTE"AND X=2AND Y=11AND M5=0 THENM5=1 10730 RETURN 11000 IF X=2AND Y=2 THEN 11070 11040 IF X=2AND Y=3 THEN 11070 11050 IF X=2AND Y=7 THEN 11070 11060 IF X=2AND Y=10 THEN 11070 11065 GOTO 11100 11070 HW=0:FOR LV=1 TO3:IF GS$(LV)="SCHWERT" THEN HW=1 11080 NEXT :IF HW=1 THENRETURN 11085 IF E(X,Y)=0 THENRETURN 11090 PRINT"ORKS HABEN DICH GEFANGENGENOMMEN":GOTO 8000 11100 IF X=0AND Y=1 THEN 11120 11110 IF X=6AND Y=2 THEN 11120 11115 GOTO 11160 11120 HW=0:FOR LV=1 TO3:IF GS$(LV)="PANZERHEMD" THEN HW=1 11125 NEXT :IF HW=1 THEN11130 11126 IF E(X,Y)=0 THENRETURN 11127 PRINT"ORKS MIT PFEIL UND BOGEN HABEN DICH BESCHOSSEN":GOTO 8000 11130 HW=0:FOR LV=1 TO3:IF GS$(LV)="SCHWERT" THEN HW=1 11140 NEXT :IF HW=1 THENRETURN 11145 IF E(X,Y)=0 THENRETURN 11150 PRINT"ORKS HABEN DICH GEFANGENGENOMMEN":GOTO 8000 11160 IF X=6AND Y=0 THEN 11190 11170 IF X=1AND Y=7 THEN 11190 11180 IF X=0AND Y=10 THEN 11190 11185 IF X=0AND Y=12 THEN 11190 11187 GOTO 11210 11190 PRINT"ZUVIELE ORKS STUERMTEN EUCH ENTGEGEN.":GOTO 8000 11210 IF X<>3OR Y<>11 THEN 11240 11220 HW=0:FOR LV=1 TO3:IF GS$(LV)="PLATTE" THEN HW=1 11230 NEXT :IF HW=1 THENRETURN 11232 IF E(X,Y)=0 THEN RETURN 11235 PRINT"DAS DUNKLE FEUER DES RALBOGS HAT DICH VERNICHTET.":GOTO 8000 11240 IF X<0 THENRETURN 11242 IF E(X,Y)=32 THEN 11250 11245 GOTO 11280 11250 HW=0:FOR LV=1 TO3 11260 IF GS$(LV)="LATERNE"AND M1=1 THEN HW=1 11262 NEXT :IF HW=0 THEN11275 11264 PRINT"DIE LATERNE HAT EINE MAGISCHE WIRKUNG{3SPACE}AUF DIE AUGEN DER SPINNE."; 11266 PRINT"DIE SPINNE IST GEBLENDET UND FLUECHTET IN EINEN GEHEI- MEN AUSGANG" 11268 POKE VI+21,PEEK (VI+21)AND 247:GOSUB 20200:RETURN 11275 PRINT"DIE RIESENSPINNE HAT DICH GEFRESSEN":GOTO 8000 11280 IF M2>5 THEN PRINT"DU BIST VOR ERSCHOEPFUNG ZUSAMMENGEBROCHEN":GOTO 8000 11290 IF X=4AND Y=2 THEN 11304 11300 IF X=1AND Y=6 THEN 11304 11302 GOTO 11310 11304 POKE VI+21,0 11305 PRINT"{CLR}DU BIST IN EINE FALLGRUBE GELAUFEN.":GOTO 8000 11310 RETURN 15000 REM 15030 INPUT"{RVOFF}KOMMANDO";B$ 15040 IF B$<>"O" THEN 15100 15060 HW=0:FOR LV=1 TO8:IF MID$ (RI$,LV,1)="O" THENHW=1:LV=8 15070 NEXT :IF HW=1 THEN15076 15075 PRINT"NICHT MOEGLICH":GOTO 15030 15076 IF X<0 THEN15090 15077 IF E(X,Y)=1OR E(X,Y)=2OR E(X,Y)=4 THEN15075 15078 IF M5=2AND X=2AND Y=11 THEN15094 15079 IF X=4AND Y=11 THEN15095 15080 IF X<>3OR Y<>11 THEN 15090 15082 IF E(X,Y)<>0 THENPRINT"DER RALBOG HAT DICH VERNICHTET.":GOTO 8000 15083 HW=0:FOR LV=1 TO3:IF GS$(LV)<>"" THENHW=1 15086 NEXT :IF HW=1 THENPRINT"DIE BRUECKE IST GEBROCHEN!":GOTO 8000 15088 X=X+1:PRINT"{BLACK}DU STEHST AUF DER BRUECKE!":GOTO 15030 15090 IF X<>2OR Y<>11 THEN15094 15091 IF M5=0 THENPRINT"DU BIST IN DEN ABGRUND GESTUERZT!":GOTO 8000 15092 PRINT"DU BIST IM HINTERGRUND DES RAUMES":FOR LV=1 TO2500:NEXT 15093 M5=2:GOTO 10200 15094 X=X+1:RI$="":GOTO 10200 15095 IF TU=2AND X=4AND Y=11 THEN 24000 15100 IF B$<>"W" THEN 15200 15120 HW=0:FOR LV=1 TO8:IF MID$ (RI$,LV,1)="W" THENHW=1 15130 NEXT :IF HW=1 THEN15137 15135 PRINT"NICHT MOEGLICH":GOTO 15030 15137 IF E(X,Y)=1OR E(X,Y)=2OR E(X,Y)=4 THEN15135 15138 IF X<>2OR Y<>11 THEN15150 15139 IF M5<2 THEN15150 15140 IF (C(X,Y)AND 128)=0 THEN15145 15142 PRINT"DU STEHST VOR DEM FEUER":FOR LV=1 TO2000:NEXT :M5=1:GOTO 10200 15145 PRINT"DU BIST IN DEN ABGRUND GEFALLEN!":GOTO 8000 15150 X=X-1:RI$="":GOTO 10200 15200 IF B$<>"N" THEN 15300 15220 HW=0:FOR LV=1 TO8:IF MID$ (RI$,LV,1)="N" THENHW=1 15230 NEXT :IF HW=1 THEN15236 15235 PRINT"NICHT MOEGLICH":GOTO 15030 15236 IF E(X,Y)=1OR E(X,Y)=2OR E(X,Y)=4 THEN15235 15237 IF X=1AND Y=11 THEN PRINT"DU BIST IN EINEN ABGRUND GESTUERZT":GOTO 8000 15240 Y=Y-1:RI$="":GOTO 10200 15300 IF B$<>"S" THEN 15400 15320 HW=0:FOR LV=1 TO8:IF MID$ (RI$,LV,1)="S" THENHW=1 15330 NEXT :IF HW=1 THEN15336 15335 PRINT"NICHT MOEGLICH":GOTO 15030 15336 IF E(X,Y)=1OR E(X,Y)=2OR E(X,Y)=4 THEN15335 15337 IF X=1AND Y=11 THEN PRINT"DU BIST IN EINEN ABGRUND GESTUERZT":GOTO 8000 15340 Y=Y+1:RI$="":GOTO 10200 15400 IF LEFT$ (B$,4)<>"NIMM" THEN 15500 15401 IF LEN (B$)<5 THEN15030 15402 B$=RIGHT$ (B$,LEN (B$)-5) 15403 HW=0:FOR LV=0 TO10 15404 IF B$=A$(LV) THENGD$=B$:HW=1 15405 NEXT :IF HW=1 THEN15415 15410 PRINT"ICH SEHE DAS HIER NICHT":GOTO 15030 15415 GOSUB 10400:GOTO 10200 15500 IF LEFT$ (B$,8)<>"VERLIERE" THEN 15600 15501 IF LEN (B$)<9 THEN15030 15502 B$=RIGHT$ (B$,LEN (B$)-9) 15503 HW=0:FOR LV=0 TO10 15504 IF B$=A$(LV) THENGD$=B$:HW=1 15505 NEXT :IF HW=1 THEN15520 15512 PRINT"ICH SEHE DAS HIER NICHT!":GOTO 15030 15520 GOSUB 10600:GOTO 10200 15600 IF LEFT$ (B$,6)<>"OEFFNE" THEN 15700 15610 IF RIGHT$ (B$,4)="TUER" THEN 15620 15615 PRINT"GEHT NICHT":GOTO 15030 15620 IF X=4AND Y=11 THENPRINT"DIE TUER IST OFFEN! RICHTUNGEN:W-O":RI$="W-O" 15630 IF X=4AND Y=11 THENTU=2:GOTO 15030 15640 IF X=3AND Y=11 THEN PRINT"DIE BRUECKE IST DAZWISCHEN!":GOTO 15030 15700 IF B$<>"LIST" THEN 15800 15710 PRINT"DU TRAEGST:" 15720 PRINTGS$(1):PRINTGS$(2):PRINTGS$(3) 15730 GOTO 15030 15800 IF B$<>"R" THEN15900 15810 IF X=5AND Y=1 THEN 15850 15820 IF X=5AND Y=3 THEN 15850 15830 IF X=6AND Y=4 THEN 15870 15840 IF X=3AND Y=6 THEN 15870 15845 PRINT"NICHT MOEGLICH":GOTO 15030 15850 PRINT"{CLR}DU BIST IN DIE KELLER DER ORKS GERATEN{SPACE,SPACE}UND BIST ENTDECKT WORDEN." 15860 GOTO 8000 15870 HW=0:FOR LV=1 TO10:IF MID$ (RI$,LV,1)="R" THENHW=1 15880 NEXT :IF HW=1 THEN15890 15885 PRINT"NICHT MOEGLICH":GOTO 15030 15890 IF X=6 THEN X=0:Y=6:GOTO 15897 15895 X=0:Y=11 15897 PRINT"DU BIST GEKLETTERT,PLOETZLICH IST DIE{3SPACE}LEITER ZUSAMMENGEKRACHT."; 15898 PRINT"DU BIST UNSANFT{2SPACE}AUFGEKOMMEN.":FOR LV=1 TO5000:NEXT :GOTO 10200 15900 IF LEFT$ (B$,4)<>"SAGE" THEN16000 15902 IF LEN (B$)<5 THEN15030 15905 PRINTRIGHT$ (B$,LEN (B$)-5) 15910 IF X=6AND Y=4 THEN15940 15920 IF X=3AND Y=6 THEN15940 15930 PRINT"ES IST NICHTS GESCHEHEN.":GOTO 15030 15940 IF RIGHT$ (B$,6)<>"FREUND"AND RIGHT$ (B$,7)<>"FREUND'" THEN15930 15950 HW=0:FOR LV=1 TO3:IF GS$(LV)="SCHLUESSEL" THENHW=1 15960 NEXT :IF HW=1 THEN15980 15970 PRINT"ICH KANN EIN SCHLOSS ERKENNEN!":GOTO 15030 15980 PRINT"DIE PLATTE LOEST SICH AUF!" 15985 FOR LW=1 TO1500:NEXT 15990 D(X,Y)=D(X,Y)OR 32:GOTO 10200 16000 IF LEFT$ (B$,6)<>"BRINGE"OR RIGHT$ (B$,2)<>"UM" THEN16200 16005 IF X=-1 THENPRINT"HIER IST NOCH FRIEDENSZONE":GOTO 15030 16007 IF MID$ (B$,8,4)="ORKS"AND E(X,Y)=0 THEN15030 16110 IF MID$ (B$,8,4)="ORKS" THEN PRINT"SIE SIND TOT!":M2=M2+1:E(X,Y)=0:GOTO 10200 16120 IF MID$ (B$,8,7)="DANGALF" THENPRINT"DANGALF HAT DICH ERSCHLAGEN":GOTO 8000 16160 IF MID$ (B$,8,6)<>"RALBOG"OR E(X,Y)<>16 THEN16180 16170 PRINT"DER RALBOG HAT SICH ERST HALB TOTGELACHT DANN HAT ER DICH MIT" 16175 PRINT"EINEM PEITSCHENHIEB IN DEN ABGRUND{6SPACE}BEFOERDERT.":GOTO 8000 16180 IF MID$ (B$,8,5)="DOFRO"OR MID$ (B$,8,4)="DICH" THENPRINT"SELBSTMORD":GOTO 8000 16197 PRINT"WAS SOLL ICH TOETEN?":GOTO 15030 16200 IF LEFT$ (B$,4)<>"HEBE" THEN16300 16201 IF LEN (B$)<5 THEN15030 16202 B$=RIGHT$ (B$,LEN (B$)-5) 16220 HW=0:FOR LV=1 TO3:IF GS$(LV)=B$ THENHW=1 16230 NEXT :IF HW=1 THEN16240 16235 PRINT"ICH TRAGE DAS NICHT!":GOTO 15030 16240 IF B$="PLATTE" THEN PRINT"ZUM HEBEN IST SIE ZU SCHWER!":GOTO 15030 16250 IF B$="LATERNE" THEN M1=1:PRINT"DAS LATERNENLICHT WIRD HELLER":GOTO 15030 16260 PRINT"OK.":GOTO 15030 16300 IF LEFT$ (B$,8)<>"ENTLEERE" THEN16400 16310 IF RIGHT$ (B$,5)="EIMER"OR RIGHT$ (B$,11)="WASSEREIMER" THEN16321 16320 PRINT"WIE SOLL DAS GEHEN?":GOTO 15030 16321 HW=0:FOR LV=1 TO3:IF GS$(LV)="EIMER" THENHW=1 16322 NEXT :IF HW=1 THEN16325 16323 GOTO 16320 16325 IF M4=1 THENPRINT"ER IST SCHON LEER!":GOTO 15030 16330 INPUT"{BLACK,RVOFF}WOHIN";B$ 16340 IF B$="RALBOG"OR B$="UEBER RALBOG" THENM4=1:GOTO 16380 16345 IF X<>3OR Y<>11 THENPRINT"DAS HAT NICHTS VERAENDERT.":M4=1:GOTO 15030 16350 PRINT"DER RALBOG HAT DICH ANGEGRIFFEN.":GOTO 8000 16380 IF X<>3OR Y<>11 THEN PRINT"DU SPASSVOGEL!":GOTO 15030 16390 PRINT"DER RALBOG TAUMELT UND FAELLT IN DEN ABGRUND!":E(X,Y)=0 16391 FOR LV=1 TO2500:NEXT :GOTO 10200 16400 IF B$<>"HILF" THEN16500 16405 IF X<0 THEN PRINT"DU BIST AUF DEM RICHTIGEN WEG.":GOTO 15030 16410 IF X=0AND Y=0 THENPRINT"LIES DOCH MAL":GOTO 15030 16415 IF X=0AND Y=11 THENPRINT"LIES DOCH MAL":GOTO 15030 16420 IF X=5AND Y=1 THENPRINT"SCHAU MAL UNTEN NACH.":GOTO 15030 16430 IF X=5AND Y=3 THENPRINT"SCHAU MAL UNTEN NACH.":GOTO 15030 16440 IF X=6AND Y=4 THENPRINT"VIELLEICHT MUSST DU EIN ZAUBERWORT SAGEN":GOTO 15030 16450 IF X=2AND Y=6 THENPRINT"SPINNEN SIND NUETZLICHE TIERE!":GOTO 15030 16460 IF X=3AND Y=6 THENPRINT"VIELLEICHT MUSST DU EIN ZAUBERWORT SAGEN":GOTO 15030 16470 IF X=1AND Y=11 THENPRINT"DER WEG NACH NORDEN SCHEINT DER RICHTIGE":GOTO 15030 16480 IF X=3AND Y=11 THENPRINT"FEUERWESEN HABEN AUCH SCHWACHSTELLEN.":GOTO 15030 16481 IF X=0AND Y=1AND E(X,Y)>0 THEN16498 16482 IF X=2AND Y=2AND E(X,Y)>0 THEN16498 16483 IF X=2AND Y=3AND E(X,Y)>0 THEN16498 16484 IF X=6AND Y=2AND E(X,Y)>0 THEN16498 16485 IF X=2AND Y=7AND E(X,Y)>0 THEN16498 16486 IF X=2AND Y=10AND E(X,Y)>0 THEN16498 16495 GOTO 16499 16498 PRINT"DIE ORKS HABEN DICH UMZINGELT UNDSPERREN DEN AUSGANG.":GOTO 15030 16499 PRINT"DU MACHST DEINE SACHE GUT.":GOTO 15030 16500 IF B$<>"SPEICHERE" THEN16600 16510 INPUT"UNTER WELCHEM NAMEN";C$ 16515 PRINT"SPULE DAS BAND RICHTIG UND DRUECKE TASTE":GET A$:IF A$="" THEN16515 16520 OPEN 1,1,1,C$ 16530 FOR L1=0 TO6:FOR LW=0 TO12:PRINT#1,C(L1,LW):NEXT :NEXT 16540 FOR L1=0 TO6:FOR LW=0 TO12:PRINT#1,E(L1,LW):NEXT :NEXT 16550 FOR L1=1 TO3 16551 IF GS$(L1)="" THENPRINT#1,"A":GOTO 16555 16552 PRINT#1,GS$(L1) 16555 NEXT 16560 PRINT#1,M1:PRINT#1,M2:PRINT#1,M3:PRINT#1,M4:PRINT#1,M5:PRINT#1,M6 16561 PRINT#1,TU:PRINT#1,X:PRINT#1,Y:PRINT#1,D(6,4):PRINT#1,D(0,6) 16580 PRINT#1,D(3,6):PRINT#1,D(0,11):CLOSE 1:GOTO 10200 16600 IF B$<>"LADE" THEN16700 16610 INPUT"UNTER WELCHEM NAMEN";C$ 16615 PRINT"SPULE DAS BAND RICHTIG UND DRUECKE TASTE":GET A$:IF A$="" THEN16615 16620 OPEN 1,1,0,C$ 16630 FOR L1=0 TO6:FOR LW=0 TO12:INPUT#1,C(L1,LW):NEXT :NEXT 16640 FOR L1=0 TO6:FOR LW=0 TO12:INPUT#1,E(L1,LW):NEXT :NEXT 16650 FOR L1=1 TO3:INPUT#1,GS$(L1) 16651 IF GS$(L1)="A" THENGS$(L1)="" 16655 NEXT 16660 INPUT#1,M1:INPUT#1,M2:INPUT#1,M3:INPUT#1,M4:INPUT#1,M5:INPUT#1,M6 16662 INPUT#1,TU:INPUT#1,X:INPUT#1,Y:INPUT#1,D(6,4):INPUT#1,D(0,6) 16680 INPUT#1,D(3,6):INPUT#1,D(0,11):CLOSE 1 16690 GOTO 10200 16700 IF LEFT$ (B$,4)<>"WIRF" THEN16800 16710 IF LEN (B$)<5 THEN15030 16720 B$=RIGHT$ (B$,LEN (B$)-5):HV=0 16725 FOR LV=1 TO3:IF GS$(LV)=B$ THENHV=1 16730 NEXT :IF HV=1 THEN16740 16735 PRINT"ICH SEHE DAS NICHT":GOTO 15030 16740 IF B$="SEIL" THEN16750 16745 GD$=B$:GOSUB 10600:GOTO 10200 16750 IF X=0AND Y=6 THEN16770 16760 IF X=0AND Y=11 THEN16770 16765 GD$=B$:GOSUB 10600:GOTO 10200 16770 PRINT"DAS SEIL HAT SICH OBEN VERHAKT!":D(X,Y)=D(X,Y)OR 64 16771 IF GS$(1)="SEIL" THENGS$(1)="" 16772 IF GS$(2)="SEIL" THENGS$(2)="" 16773 IF GS$(3)="SEIL" THENGS$(3)="" 16775 FOR LV=1 TO2500:NEXT 16780 GOTO 10200 16800 IF B$<>"H" THEN16900 16810 HV=0:FOR LV=1 TO10:IF MID$ (RI$,LV,1)="H" THENHV=1 16820 NEXT :IF HV=1 THEN16840 16830 PRINT"NICHT MOEGLICH!":GOTO 15030 16840 IF X=0AND Y=11 THENX=3:Y=6:GOTO 10200 16850 IF X=0AND Y=6 THENX=6:Y=4:GOTO 10200 16900 IF LEFT$ (B$,4)<>"LIES" THEN17000 16910 IF RIGHT$ (B$,4)="BUCH" THEN16960 16920 IF RIGHT$ (B$,12)<>"SCHRIFTROLLE" THENPRINT"NICHT MOEGLICH!":GOTO 15030 16930 HW=0:FOR LV=1 TO3:IF GS$(LV)="SCHRIFTROLLE" THENHW=1 16940 NEXT 16945 IF HW=1 THEN16950 16947 PRINT"ICH TRAGE DAS NICHT!":GOTO 15030 16950 HW=0:FOR LV=1 TO3:IF GS$(LV)="FACKEL"OR GS$(LV)="LATERNE" THENHW=1 16952 NEXT 16954 IF HW=1 THEN23000 16956 PRINT"ES IST ZU DUNKEL,ICH KANN NICHTS SEHEN!":GOTO 15030 16960 HW=0:FOR LV=1 TO3:IF GS$(LV)="BUCH" THENHW=1 16970 NEXT 16975 IF HW=1 THEN16980 16977 GOTO 16947 16980 GOTO 23200 17000 PRINT"WIE BITTE???":GOTO 15030 20000 IF (C(X,Y)AND 1024)=1024 THEN10405 20010 IF D(0,6)<64 THENGOTO 15030 20015 IF GS$(1)>""AND GS$(2)>""AND GS$(3)>"" THEN15030 20020 D(0,6)=D(0,6)-64:M6=1:GOTO 10470 20100 IF (C(X,Y)AND 1024)=1024 THEN10405 20110 IF D(0,11)<64 THEN15030 20115 IF GS$(1)>""AND GS$(2)>""AND GS$(3)>"" THEN15030 20120 D(0,11)=D(0,11)-64:M6=1:GOTO 10470 20200 E(X,Y)=0 20220 M=INT (RND (1)*4) 20225 N=INT (RND (1)*4)+5 20230 IF E(M,N)>0 THEN20220 20235 E(M,N)=32 20240 RETURN 22300 PRINT"{HOME,18DOWN}"SPC( 17)"{GREY2}£{SPACE,3SPACE}*{DOWN,7LEFT}£{6SPACE}*{DOWN,8LEFT}"; 22320 PRINT"{BLACK,RVSON,8SPACE,2DOWN}" 22330 RETURN 22400 POKE 2040,11:POKE 2041,13:POKE 2042,14:POKE 2043,14 22420 FOR L1=0 TO62:POKE 704+L1,A(0,L1+1):POKE 832+L1,A(23,L1+1) 22425 POKE 896+L1,A(11,L1+1):NEXT 22430 POKE VI+39,2:POKE VI+40,2:POKE VI,160:POKE VI+2,160:POKE VI+1,121:POKE VI+3,163 22435 POKE VI+41,7:POKE VI+42,7:POKE VI+4,153:POKE VI+6,193:POKE VI+5,179 22437 POKE VI+7,179 22440 POKE VI+23,(PEEK (VI+23)AND 243)OR 3:POKE VI+29,(PEEK (VI+29)AND 243)OR 3 22450 POKE VI+21,PEEK (VI+21)OR 15 22460 PRINT"{HOME,3DOWN,5RIGHT,BLACK}@@PPOOII{RVSON}UUYYTT{SPACE,SPACE}TTYYUU{RVOFF}IIOOPP@@" 22470 PRINT"{RVSON,4RIGHT}£{30SPACE}*" 22480 FOR LV=1 TO4:PRINT"{RVSON,4RIGHT,32SPACE}":NEXT 22490 FOR LV=1 TO4:PRINTSPC( 3+LV)"{RVOFF}*";:FOR L1=1 TO32-2*LV:PRINT"{RVSON,SPACE}";:NEXT 22500 PRINT"{RVOFF}£":NEXT 22510 FOR LV=1 TO7:PRINT"{RVSON,BLACK,8RIGHT,24SPACE}":NEXT :PRINT"{3DOWN}" 22520 RETURN 23000 POKE 53280,0:POKE 53281,4:POKE VI+21,0 23020 PRINT"{CLR,WHITE}"CHR$ (14) 23030 PRINT"MEIN FREUND THRAIN," 23040 PRINT"ICH SCHREIBE DIR VON MARIO, DER ZWERGEN-"; 23050 PRINT"MINE, DIE VON BALIN, DEM ZWERGENFUEHRER,"; 23060 PRINT"REGIERT WIRD. DIESE MINE IST VON VIELEN" 23070 PRINT"UNGEHEUERN BEVOELKERT, UND WIR HABEN ES" 23080 PRINT"SCHWER, UNS GEGEN SIE ZUR WEHR ZU" 23090 PRINT"SETZEN. EINE RIESENSPINNE LAUERT UNS" 23100 PRINT"IMMER WIEDER AUF, HEIMTUECKISCHE ORKS" 23110 PRINT"STELLEN UNS NACH, ABER DAS SCHLIMMSTE" 23120 PRINT"IST EIN FEUERWESEN, GEGEN DAS WIR ALLE" 23130 PRINT"MACHTLOS SIND. ES HEISST, DASS DIE SPIN-"; 23140 PRINT"NE SEHR LICHTEMPFINDLICH IST, ABER" 23150 PRINT"UNSERE HERKOEMMLICHEN FACKELN SCHADEN" 23160 PRINT"IHR NICHT. DA DIE LUFT DORT SEHR STICKIG"; 23163 PRINT"IST,BLEIBT DAS LICHT UNSERER FACKELN" 23166 PRINT"DORT OHNEHIN NUR DANN EINIGERMASSEN HELLWENN WIR SIE HOCHHEBEN." 23170 PRINT"ICH HOERE JEMAND KOMMEN-NEIN, DAS WERDENDOCH NICHT ETWA" 23190 GET A$:IF A$="" THEN23190 23195 PRINTCHR$ (142):GOTO 10200 23200 POKE 53281,1:POKE 53280,9:POKE VI+21,0 23220 PRINT"{CLR,BLUE}"CHR$ (14) 23230 PRINT"TAGEBUCH DES ZWERGENHERRSCHERS{SHIFT-SPACE}BALIN," 23240 PRINT"{9SPACE}HERR VON MARIO" 23250 PRINT"WIR KOENNEN NICHT HINAUS.WIR KOENNEN" 23260 PRINT"NICHT HINAUS.SIE HABEN DIE BRUECKE UND" 23270 PRINT"DIE ZWEITE HALLE GENOMMEN.FRAR UND LONI" 23280 PRINT"UND NALI FIELEN DORT.DER SEE REICHT BIS" 23290 PRINT"ZUR WAND AM WESTTOR.DER WAECHTER IM" 23300 PRINT"WASSER HAT OIN GEPACKT.WIR KOENNEN NICHT"; 23310 PRINT"HINAUS.DAS ENDE KOMMT.TROMMELN.TROMMELN" 23320 PRINT"IN DER TIEFE." 23330 PRINT"{3SPACE}S IE KO M ME N." 23340 GOTO 23190 24000 POKE VI+21,0:POKE 53281,14:POKE 53280,0 24020 PRINT"{CLR,WHITE}DU BIST AUS DER MINE ENTKOMMEN!" 24030 PRINT"DU HAST DAS ZIEL ERREICHT UND EINE" 24040 PRINT"ETAPPE DEINES WEGES ZURUECKGELEGT. WIE" 24050 PRINT"ES WEITERGEHT,KANNST DU IN DEM BUCH" 24060 PRINT"{7SPACE}'DER HERR DER RINGE'" 24070 PRINT"WEITERLESEN, WENN ES DIR GEFALLEN HAT."