1 rem"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ 2 rem"┃ moria ┃ 3 rem"┃ --- adventure --- ┃ 4 rem"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ 5 rem"┃ (c)1986 by artsoft ltd. ┃ 6 rem"┃ moselweg 64 ┃ 7 rem"┃ 4800 bielefeld 11 ┃ 8 rem"┃ tel.:05205/65544 ┃ 9 rem"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 10 : 11 poke53280,0:poke53281,12:poke657,128 12 poke53272,25:poke646,1:poke53269,0 15 print"{blk}{clr}{down}{down}{down} Momentchen bitte..." 17 sys 58451 20 rem --- basic-erweiterung --- 22 data76,24,1,177,251,145,251,200,208,249,230,252,202,208,244,96,120,160,0,169 23 data160,132,251,133,252,162,32,32,11,1,169,224,132,251,133,252,162,32,32,11 24 data1,169,53,133,1,88,96:fori=264to310:readx:pokei,x:next:sys264 25 fori=710to730:readx:pokei,x:next 26 data208,3,76,29,168,32,192,2,32,19,166,56,165,95,233,1,164,96,76,36,168 27 poke40996,197:poke40997,2:poke1,54 28 fori=43168to43170:readx:pokei,x:next 29 fori=704to709:readx:pokei,x:next 30 data32,192,2,32,138,173,76,247,183 40 : 45 gosub 50000 50 z=2 60 poke198,0:goto 1300 100 rem --- befehlseingabe --- 105 v=0:g=0:o=0:p=0:r=0 110 x$="{rvof}{SHIFT-@} ":gosubc 120 b$="":s$="":x$="" 130 poke204,0:ti$="000000" 135 getx$ 140 ifti$>"000030"thenpoke204,1:poke781,24:sys59903:v=11:return 145 ifx$=""then135 150 i=asc(x$):l=len(b$) 155 ifi=13andl>0thenpoke204,1:print" {left}{left}.";:goto195 160 ifi=20andl>0thenpoke204,1:print" {left}{left} {left}";:b$=left$(b$,l-1):goto130 170 ifl>34thenpoke204,1:fori=1to35:printchr$(20);:next:goto120 175 ifi<65ori>90thenifi<>34andi<>32then135 180 ifi=32thenx$="{$a0}":print" ";:b$=b$+x$:goto135 185 ifi=34thenx$="'" 190 print"{rvon}"x$"{rvof}";:b$=b$+x$:goto135 195 ific=1thenic=0:return 200 rem --- befehlszerlegung --- 205 w1=1:s1=0:s2=0:s3=0:l=len(b$) 210 fori=1tol:ifmid$(b$,i,1)="'"thens1=s2:s2=i:s3=s3+1 215 next:ifs3=2thens$=mid$(b$,s1+1,s2-s1-1):b$=left$(b$,s1-1) 220 ifs3=1ors3>2thenx$="Falsches Eingabeformat.":gosubc:goto 100 230 l=len(b$):fori=1tol:ifmid$(b$,i,1)="{$a0}"thenw1=w1+1 235 next:ifw1>2thenx$="Bitte nur Zweiwortbefehle.":gosubc:goto 100 250 rem --- befehlscodierung --- 255 ic=0 260 goto300 265 x$=left$(b$,3):b$=right$(b$,4) 270 fori=1tovz:ifx$=left$(v$(i),3)thenv=i:i=vz:ic=1 275 next:ific=0thenx$="Unbekannter Befehl!":gosubc:goto100 277 ifw1=1thenreturn 280 ic=0:fori=1togz:ifb$=right$(g$(i),4)theng=i:i=gz:ic=1 285 next:fori=1tooz:ifb$=right$(o$(i),4)theno=i:i=oz:ic=1 290 next:fori=1topz:ifb$=right$(p$(i),4)thenp=i:i=pz:ic=1 295 next:ific=0thenx$="Unbekanntes Objekt!":gosubc:goto100 299 return 300 rem - richtungen - 310 fori=1to6:ifb$=r$(i)thenr=i:ic=1 320 next:ific=0then265 330 return 500 rem --- textscroll --- 510 forj1=21to24:poke781,j1-1:sys59888:poke172,peek(60656+j1) 520 poke780,peek(216+j1):sys59848:nextj1:poke781,24:sys59903 530 poke214,24:poke211,0:sys58640:printx$;:x$="":return 1000 rem --- hauptprogramm --- 1010 zz=zz+1:ic=0:ifzz>1thenf(2)=0 1100 gosub 100:rem befehlseingabe 1110 ifzz<3andr=0then1200 1120 ifp(1)=zthenta=1:goto45000 1125 ifp=2andp(2)=zthenta=2:goto45000 1130 ifp(3)=zthenta=3:goto45000 1135 ifp(6)=zthenta=4:goto45000 1140 ifp(7)=zthenta=5:goto45000 1145 ifp(8)=zthenta=6:goto45000 1150 ifz=2andf(3)=1andr<>4thenta=10:goto45000 1200 ifr=0then1500 1250 ifr(r)=0thenx$="Kein Weg in diese Richtung.":gosubc:goto1000 1255 ifo(3)=zandr=6thenx$="Die Platte versperrt den Weg.":gosubc:goto1000 1260 ifz=40andr=5andf(2)=0thenx$="Die =ffnung liegt zu hoch!":gosubc:goto1000 1265 ifr<>4then1290 1270 ifz=98andg(10)<>zthenta=8:goto45000 1275 ifz=99andp(2)=zthenta=9:goto45000 1280 ifz=101andf(6)=0thenx$="Die T]r ist verschlossen.":gosubc:goto1000 1285 ifz=105andr(r)=-9then46000 1290 ifz=56andr=5andet<5thenet=et+1:r(5)=56:goto1295 1292 ifz=56andr=6andet>1thenet=et-1:r(6)=56 1295 z=r(r) 1300 rem -- raumwechsel -- 1320 restore 10000+z 1330 fori=1to7:readr(i):next 1340 gosub 30000 1350 rem -- dinge im raum -- 1360 x$="Ich sehe: ":ic=0:fori=1topz:ifp(i)=zthenx$=x$+"{rvon}"+p$(i)+"{rvof}"+",":ic=1 1365 iflen(x$)>39thenx$=left$(x$,len(x$)-len(p$(i))-3):i=i-1:gosubc:x$="" 1370 next:fori=1tooz:ifo(i)=zthenx$=x$+"{rvon}"+o$(i)+"{rvof}"+",":ic=1 1375 iflen(x$)>39thenx$=left$(x$,len(x$)-len(o$(i))-3):i=i-1:gosubc:x$="" 1380 next:fori=1togz:ifg(i)=zthenx$=x$+"{rvon}"+g$(i)+"{rvof}"+",":ic=1 1385 iflen(x$)>39thenx$=left$(x$,len(x$)-len(g$(i))-3):i=i-1:gosubc:x$="" 1390 next:ifx$<>""thenx$=x$+"{left}." 1395 ific=0thenx$=x$+"{left} nichts besonderes." 1399 gosubc:zz=0 1400 rem -- besonderheiten -- 1410 ifp(1)=zthenx$="Die Spinne krabbelt auf Dich zu." 1415 ifp(2)=zthenx$="Der Balrog versperrt den Weg zur T]r." 1420 ifp(3)=zthenx$="Gollum will Dich erw]rgen." 1425 ifp(6)=zthenx$="Der Warg springt auf Dich zu." 1430 ifp(7)=zthenx$="Ein paar Orks kommen auf dich zu." 1435 ifp(8)=zthenx$="Orks mit Pfeil und Bogen st]rmen Dich.":ifg(5)<>-1thenta=6 1440 ifp(9)=zthenx$="Zuviele Orks rennen Dir entgegen.":ta=7 1450 ifx$<>""thengosubc:ifta>0then45000 1460 iff(4)=1thenp(5)=z 1470 iff(5)=1thenp(4)=z 1480 ifz=3andr=4thenx$="Jemand schl[gt die Tore hinter Dir zu.":gosubc 1490 goto1000 1500 rem --- reaktion auf befehle --- 1540 ifw1=1andv=20then1560 1550 ifw1=1thenifv=1orv=2orv=3orv=8orv=9orv>14thenx$=a$(4):gosubc:goto1000 1560 ifp<>0andp(p)<>zandp<>7thenx$=a$(1):gosubc:goto1000 1565 ifp=7andp(7)<>zandp(8)<>zthenx$=a$(1):gosubc:goto1000 1570 ifo<>0ando(o)<>zthenx$=a$(1):gosubc:goto1000 1580 ifg<>0andg(g)<>zthenifv=1thenx$=a$(1):gosubc:goto1000 1585 ifg<>0andg(g)<>-1thenifv=2orv=3orv=6orv=7thenx$=a$(3):gosubc:goto1000 1590 ifg<>0andg(g)<>-1thenifv=16orv=17orv=18thenx$=a$(3):gosubc:goto1000 2000 gosub 2000+v*100 2050 gosubc:ifid=1thenid=0:goto1300 2060 ifta>0then45000 2070 goto1000 2100 rem --- nimm --- 2110 ifg=0thenx$=a$(5):return 2120 ifgg=3thenx$="Ich kann nichts mehr tragen.":return 2130 g(g)=-1:x$="Ich nehme {rvon}"+g$(g)+"{rvof}":gg=gg+1 2140 fori=0to7:if(peek(2040+i)-159)=gthenpokevc+21,peek(vc+21)andnot2^i:i=7 2150 next:return 2200 rem --- lege --- 2210 ifg=0thenx$=a$(0):return 2220 g(g)=z:x$="Ich verliere {rvon}"+g$(g)+"{rvof}.":gg=gg-1:id=1:gosubc:forj=1to2000 2230 next:return 2300 goto 2200 2400 rem --- list --- 2410 x$="Ich trage {rvon}":ic=0:fori=1togz 2420 ifg(i)=-1thenific=1oric=2thengosubc:ic=ic+1:x$="{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rvon}"+g$(i) 2430 ifg(i)=-1andic=0thenx$=x$+g$(i):ic=1 2440 ific=3theni=gz 2450 next:ific=0thenx$=x$+"{rvof}nichts bei mir." 2460 return 2500 goto 2400 2550 rem -- lesen lassen -- 2552 ifb$="rift"ando(2)<>zthenx$="Gandalf sagt:'Sehe ich hier nicht!'.":return 2555 ifb$="rift"thenx$="Gandalf ]bersetzt aus dem Elbischen:":gosubc 2560 ifb$="rift"thenx$="'Da steht: Sprich,Freund,und tritt ein.":f(0)=1:return 2565 ifb$="buch"andg(2)<>-1thenx$=a$(3):return 2570 ifb$="buch"thenx$="Gandalf kann auch keine Zwergenrunen.":return 2572 ifb$="olle"andg(4)<>-1thenx$=a$(3):return 2575 ifb$="olle"thengosub43000:return 2580 x$="Gandalf sagt 'NEIN!'.":return 2600 rem --- sieh --- 2610 ifw1=1thenid=1:x$="OK.":return 2620 ifg=1andf(1)=0thenx$="Er ist voll.":return 2625 ifg=1thenx$="Er ist leer.":return 2630 ifg=2thenx$="Der Titel: {rvon}CHRONIK{$a0}VON{$a0}KHAZAD{rvof}-{rvon}DUM{rvof}.":gosubc 2635 ifg=2thenx$="Es ist in Zwergenrunen geschrieben.":return 2640 ifg=5thenx$="Es ist ein Mithril-Panzerhemd.":return 2645 ifg=9thenx$="Sie leuchtet nicht besonders hell.":return 2650 ifg=10thenx$="Sie sieht recht stabil aus.":return 2690 x$="Sieht ganz normal aus.":return 2700 goto 2600 2750 rem ------- 2755 ifp=0ando=0andg=0then2765 2760 x$=a$(0):return 2765 ifs$<>"freund"orz<>2orf(0)=0thenx$="Nichts passiert.":return 2770 x$="Ger[uschlos \ffnen sich die Tore Morias":f(3)=1:r(4)=3:return 2800 rem --- hebe --- 2805 ifo=3thenx$="Zum Heben ist die Platte zu schwer.":return 2810 ifg=0thenx$=a$(5):return 2820 ifg(g)=zthen2100 2830 ifg(g)<>-1thenx$=a$(3):return 2840 ifg<>3then 2890 2850 x$="Du hebst die Laterne h\her.":gosubc 2855 x$="Das Laternenlicht wird heller.":ifp(1)<>zthenreturn 2860 gosubc:x$="Die Spinne fl]chtet in einen geheimen":gosubc:x$="Ausgang." 2870 gosub40900:return 2890 x$="Du h[ltst den Gegenstand h\her.":return 2900 rem --- toete --- 2910 ifp=0thenx$=a$(0):return 2915 ifp=1orp=2orp=6thenx$="Das w[re zu gef[hrlich!":return 2920 ifp=4thenx$="Gimli erschl[gt Dich mit seiner Axt.":ta=20:return 2925 ifp=5thenx$="Gandalf t\tet Dich mit einem Blitz!":ta=20:return 2930 ifp=3andg(7)<>-1thenx$="Gollum ist st[rker und erw]rgt Dich.":ta=20:return 2935 ifp=3thenx$="Du erschl[gst Gollum mit dem Schwert.":p(3)=0:goto2970 2940 ifp<>7thenx$=a$(0):return 2945 ifp(7)=zandg(7)<>-1thenx$="Die Orks haben Dich verschleppt.":ta=20:return 2950 ifp(7)=zthenx$="Du spaltest die Orks mit dem Schwert.":p(7)=0:goto2980 2955 ifp(8)=zandg(7)<>-1thenx$="Ein Orkpfeil trifft Deinen Kopf.":ta=20:return 2960 ifp(8)=zthenx$="Du kannst die Orks ]berw[ltigen.":p(8)=0:goto2990 2970 pokevc+21,peek(vc+21)andnot2:return 2980 pokevc+21,peek(vc+21)andnot6:return 2990 pokevc+21,peek(vc+21)andnot12:return 3000 rem --- befehle --- 3005 ifw1=2then3300 3010 pokevc+21,0:poke53281,12:print"{blk}{clr}":print"{down}{rght}{rvon}ich{$a0}verstehe{$a0}folgende"; 3020 print"{$a0}verben{rvof}:" 3030 print:fori=1tovzstep2:print"{rght}{rvon}"v$(i)tab(20)v$(i+1):next 3040 print"{down}{down}{rvon}{rght}{rght}{rght}bitte{$a0}taste{$a0}dr]cken..." 3050 poke198,0:wait198,1:x$="":id=1:return 3100 rem --- warte --- 3110 ifz=2thenx$="Pl\tzlich kommen Arme aus dem See und":gosubc 3115 ifz=2thenx$="ziehen Dich hinein.":ta=20:return 3120 x$="Die Zeit vergeht.":gosubc:fori=1to3000:next:return 3200 rem --- ende --- 3210 x$="Willst Du wirklich aufh\ren ?":gosubc 3220 getx$:ifx$="n"thenx$="Wusste ich's doch...":return 3230 ifx$<>"j"then3220 3240 pokevc+21,0:print"{wht}{clr}{down}{rght}wiedersehn.{down}":poke44,8:poke53272,21:poke53281,6:end 3300 rem --- sage --- 3303 ifp=0then2750 3305 ifs$=""thenx$="Was willst Du denn nun sagen?":return 3310 x$="Du sagst '{rvon}"+s$+"{rvof}' zu {rvon}"+p$(p)+"{rvof}":gosubc 3315 ifp>6thenx$="Die Orks lassen nicht mit sich reden.":return 3320 ifp=6thenx$="Der Warg versteht Deine Sprache nicht.":return 3325 ifp=1thenx$="Die Spinne ist taub.":return 3330 ifp=2thenx$="Der Balrog lacht ]ber Deine Worte.":return 3335 ifp=3thenx$="Er sagt:Das ist der Dieb,mein Schatzzz.":return 3340 x$=left$(s$,3):b$=right$(s$,4) 3345 ifp=5then3405 3350 ifx$="lie"andb$="buch"thengosub42000:return 3380 x$="Gimli sagt 'NEIN!'.":return 3390 x$="":return 3400 goto3300 3405 ifx$<>"toe"orb$<>"warg"then3420 3407 if p(6)<>z thenx$="Er sagt:'Wo ist hier ein Warg?'":return 3410 x$="Gandalf streckt den Warg mit einem":gosubc:p(6)=0:id=1 3415 x$="Blitz nieder. Er will dich auf Deiner":gosubc 3417 x$="Reise durch Moria begleiten.":f(4)=1:gosubc:gosub40700:return 3420 ifx$="toe"thenx$="Er sagt:'Ich t\te nur in der Not.'":return 3425 ifx$="lie"then2550 3480 x$="Er sagt:'Das ist nicht meine Aufgabe.'" 3490 return 3500 rem --- beruehre --- 3510 ifo=0thenx$=a$(0):return 3520 ifo=5thenx$="Eine blasse Inschrift wird sichtbar.":o(2)=2 3530 ifo=5thenpokevc+21,peek(vc+21)or4:return 3540 ifo=3thenx$="Die Platte l\st sich langsam auf.":o(3)=0 3545 ifo=3thenpokevc+21,peek(vc+21)andnot4:return 3550 ifo=4thenx$="Du hast Dir die Pfoten verbrannt.":return 3590 x$="Nichts passiert.":return 3600 rem --- entleere --- 3610 ifg<>1thenx$=a$(0):return 3620 iff(1)=1thenx$="Der Wassereimer ist leer.":return 3630 x$="Bitte eingeben, wohin:":gosubc:ic=1:gosub100 3640 ifright$(b$,6)<>"balrog"thenx$="Du hast den Eimer entleert.":f(1)=1:return 3650 ifz<>99thenx$="Scherzkeks.":return 3660 x$="Der Balrog taumelt und st]rzt in den":gosubc:x$="Abgrund." 3690 f(1)=1:p(2)=0:pokevc+21,peek(vc+21)andnot3:return 3700 rem --- wirf --- 3710 ifg=0thenx$=a$(0):return 3720 ifg<>8then2200 3730 x$="Du wirfst das Seil.":ifz<>40thenreturn 3740 gosubc:x$="Es hat sich an der =ffnung verhakt.":f(2)=1:zz=0:g(8)=z:gg=gg-1 3750 return 3800 rem --- lies --- 3805 ifz>2thenifg(3)<>-1andg(9)<>-1thenx$="Es ist zu dunkel zum Lesen.":return 3810 ifo=2org=4thenx$="Ich kann keine Elbenrunen lesen.":return 3820 ifg=0thenx$=a$(0):return 3830 ifg=2thenx$="Ich kann Zwergenrunen nicht lesen.":return 3840 x$="Kann man nicht lesen.":return 3900 rem --- oeffne --- 3910 ifg=2thenx$="Du schl[gst es auf.":return 3920 ifo=0thenx$=a$(0):return 3930 ifo=1thenx$="Du alter Grabsch[nder!":return 3940 ifo=3thenx$=a$(5):return 3950 ifo=5thenx$="Ich sehe keinen T]rspalt. Sie scheint":gosubc 3955 ifo=5thenx$="mit Zauberworten verschl]sselt zu sein.":return 3960 ifo=6andg(6)<>-1thenx$="Ich kann ein Schloss erkennen!":return 3970 ifo=6thenx$="Die T]r springt leise auf.":f(6)=1:return 4000 rem --- hilfe --- 4010 ifz=2ando(2)=0thenx$="Die Tore scheinen verzaubert zu sein.":return 4015 ifp(7)=zthenx$="Bewaffnet h[ttest Du eine Chance.":return 4020 ifo(3)=zthenx$="Die Platte wurde von Elben geschmiedet.":return 4025 ifz=40thenx$="Vielleicht w]rde mir ein Seil helfen.":return 4030 ifp(1)=zthenx$="Lies mal die Schriftrolle...":return 4035 ifp(8)=zthenx$="Ich br[uchte einen Schutz gegen Pfeile.":return 4040 ifz=98thenx$=">ber Feuer kann ich auch nicht laufen.":return 4045 ifp(2)=zthenx$="Feuerwesen haben auch Schwachstellen.":return 4090 x$="Im Moment kann ich auch nichts helfen.":return 10000 rem --- spielkarte --- 10001 data,,,2,,,8 10002 data,,1,3,,,1 10003 data,,,4,,,2 10004 data8,,3,5,,, 10005 data,,4,6,,, 10006 data,,5,7,,, 10007 data,,6,,,18, 10008 data12,4,,9,,, 10009 data13,,8,10,,, 10010 data,,9,11,,, 10011 data,,10,,,, 10012 data,8,,,,, 10013 data15,9,,14,,, 10014 data16,,13,,,, 10015 data,13,,,,, 10016 data,14,,17,,, 10017 data,,16,,,, 10018 data,,,19,7,, 10019 data,21,18,20,,, 10020 data,,19,,,, 10021 data19,23,,22,,, 10022 data,24,21,,,, 10023 data21,,,,,, 10024 data22,,,25,,, 10025 data,,24,,,26, 10026 data27,,,29,25,, 10027 data,26,,28,,, 10028 data,,27,,,, 10029 data,30,26,32,,, 10030 data29,,,31,,, 10031 data,,30,,,, 10032 data,,29,33,,, 10033 data35,,32,34,,, 10034 data36,39,33,38,,, 10035 data,33,,,,,4 10036 data,34,,37,,, 10037 data,,36,,74,,5 10038 data,,34,47,,, 10039 data34,,,,,40, 10040 data,,,41,39,, 10041 data42,,40,,,, 10042 data,41,,,,43, 10043 data44,,,,42,, 10044 data,43,45,,,, 10045 data,,46,44,,, 10046 data,,,45,,,4 10047 data,,38,48,,, 10048 data,,47,49,,, 10049 data50,,48,,,, 10050 data51,49,,63,,, 10051 data59,50,52,,,, 10052 data53,,,51,,, 10053 data54,52,,,,, 10054 data,53,,55,,, 10055 data,,54,,56,,5 10056 data,,,,57,55,10 10057 data,,56,58,,, 10058 data,,57,,,,9 10059 data,51,,60,,, 10060 data,,59,61,,, 10061 data,62,60,,,, 10062 data61,,,,,, 10063 data64,,50,65,,, 10064 data,63,,,,, 10065 data,,63,66,,, 10066 data67,,65,70,,, 10067 data,66,,68,,, 10068 data69,,67,,,, 10069 data,68,,,,, 10070 data,,66,71,,, 10071 data72,,70,,,, 10072 data,71,,73,,, 10073 data,,72,,,, 10074 data,87,37,75,,, 10075 data,,74,,76,,5 10076 data,,75,77,,, 10077 data,,76,78,,, 10078 data,,77,,79,,5 10079 data80,,78,,,,4 10080 data81,79,,,,, 10081 data,80,,82,,, 10082 data,,81,83,,,4 10083 data,84,82,,,, 10084 data83,85,,,,, 10085 data84,86,,,,, 10086 data85,100,,,,, 10087 data74,,,88,,, 10088 data,91,87,89,,, 10089 data,,88,90,,, 10090 data,,89,,,, 10091 data88,,,92,,, 10092 data,95,91,,,, 10093 data,96,,94,,, 10094 data,,93,,,, 10095 data92,,,96,,, 10096 data93,,95,97,,, 10097 data,,96,98,,, 10098 data,,97,99,,,6 10099 data100,,98,101,,,7 10100 data86,99,,,,, 10101 data,,99,102,,,11 10102 data,,101,103,,, 10103 data,,102,104,,,2 10104 data,,103,105,,,2 10105 data,,104,-9,,,4 30000 rem ---- grafik-modul ---- 30010 pokevc+21,0:pokevc+23,0:pokevc+29,0:pokevc+16,0:pokevc+28,0:sp=0 30020 ifr(7)=0thenr(7)=3 30030 gosub 30000+r(7)*100 30040 poke646,0:poke647,0:if(peek(53281)andnot240)=0thenpoke646,1:poke647,1 30050 x$="M\gliche Richtungen: " 30052 fori=1to6:ifr(i)<>0thenx$=x$+chr$(asc(r$(i))+128)+"-" 30055 next:x$=left$(x$,len(x$)-1):gosubc 30060 iff(4)=1thenp(5)=0 30065 iff(5)=1thenp(4)=0 30070 gosub40300:gosub40500:gosub40600 30090 return 30100 rem --- tor --- 30110 poke53281,5:print"{blk}{clr}";:fori=1to13 30115 ifi<6thenprint"{lblu}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{lblu}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:goto30130 30120 ifi>9thenprint"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:goto30130 30125 print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"; 30130 next:print"{$a0}{$a0}{rvon}{CBM-@}{CBM-@}{CBM-P}{CBM-O}{CBM-I}{rvof}{CBM-U}{CBM-Y}{CBM-Y}{CBM-U}{CBM-Y}{CBM-T}{CBM-Y}{CBM-T} {wht}{CBM-D}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-F}{blk}{CBM-T}{CBM-Y}{CBM-Y}{CBM-U}{rvon}{CBM-I}{CBM-I}{rvof}{CBM-U}{rvon}{CBM-I}{CBM-O}{CBM-O}{CBM-P}{CBM-P}{CBM-@}{CBM-@}{CBM-P}{CBM-@}"; 30135 print"{rvof}{blu}{down}{down}{CBM-@}{CBM-P}{CBM-O}{CBM-O}{CBM-I}{CBM-I}{CBM-I}{rvon}{CBM-U}{CBM-U}{CBM-U}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-T}{CBM-T}{CBM-T}{CBM-T}@@@@@@{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-U}{CBM-U}{CBM-U}{rvof}{CBM-I}{CBM-I}{CBM-I}{CBM-O}{CBM-O}{CBM-P}{CBM-@}"; 30140 fori=1to3:print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30145 poke2040,62:poke2041,63:poke2042,171:poke2043,177:pokevc+39,0:pokevc+40,0 30150 pokevc+41,15:pokevc+42,11:pokevc+5,y(12):pokevc+6,160:pokevc+7,101 30155 pokevc,x(33):pokevc+1,y(33):pokevc+2,x(34):pokevc+3,y(34):pokevc+4,x(12) 30160 sp=4:pokevc+21,11+(o(2)=2)*-4:pokevc+29,15:pokevc+23,3 30165 x$="{blk}Die gewaltigen Tore von Moria.":gosubc 30170 iff(3)=0thenr(4)=0 30190 return 30200 rem --- heller gang --- 30210 poke53281,12:print"{blk}{clr}";:fori=8to18step2:print"{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"spc(i/2-4)"{gry3}{SHIFT-POUND}"; 30215 forj=1to24-i:print"{$a0}";:next:print"{CBM-POUND}"spc(i/2-4)"{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30220 print"{home}";:fori=1to14 30225 ifi>6thenprint"{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rght}{rght}{rght}{rght}{rght}{rght}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rght}{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:goto 30235 30230 print"{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"; 30235 next:fori=10to0step-2:print"{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"spc(i/2)"{gry3}~";:forj=1to16-i 30240 print"{$a0}";:next:print"{CBM-*}"spc(i/2)"{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30245 poke2040,177:pokevc+39,0:pokevc,x(18):pokevc+1,y(18):pokevc+29,1 30250 sp=1:pokevc+21,1 30255 x$="{blk}Ein heller Gang.":gosubc 30290 return 30300 rem --- dunkler gang --- 30310 poke53281,11:print"{blk}{clr}";:fori=8to18step2:print"{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"spc(i/2-4)"{gry2}{SHIFT-POUND}"; 30315 forj=1to24-i:print"{$a0}";:next:print"{CBM-POUND}"spc(i/2-4)"{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30320 print"{home}";:fori=1to6:print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"spc(18)"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30322 fori=7to14 30325 ifr(4)>0thenprint"{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rght}{rght}{rght}{rght}{rght}{rght}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rght}{rght}{rght}{rght}{rght}{rght}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:goto30335 30330 print"{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{rght}{rght}{rght}{rght}{rght}{gry2}{CBM-M}{rght}{rght}{rght}{rght}{rght}{rght}{CBM-G}{rght}{rght}{rght}{rght}{rght}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"; 30335 next:fori=10to0step-2:print"{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"spc(i/2)"{gry2}~";:forj=1to16-i 30340 print"{$a0}";:next:print"{CBM-*}"spc(i/2)"{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30345 ifr(1)=0then30360 30350 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}"spc(12);:fori=1to7:print"{blk}{rvof}{CBM-N}{$a0}{$a0}{CBM-H}{down}{left}{left}{left}{left}";:next 30355 print"{rvof}{CBM-N}{$a0}{CBM-POUND}{left}{left}{left}{down}{CBM-N}{CBM-POUND}{down}" 30360 ifr(2)=0then30375 30365 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}"spc(24);:fori=1to7:print"{blk}{rvof}{CBM-N}{$a0}{$a0}{CBM-H}{down}{left}{left}{left}{left}";:next 30370 print"{rght}{SHIFT-POUND}{$a0}{CBM-H}{left}{left}{down}{SHIFT-POUND}{CBM-H}" 30375 pokevc+39,(r(4)=0)*-11:pokevc,x(18):pokevc+1,y(18):pokevc+29,1:sp=1 30377 poke2040,177:gosub40800 30380 ifr(1)>0thenpoke2041,178:pokevc+40,0:pokevc+2,x(19):pokevc+3,y(19):sp=2 30385 ifr(2)>0thenpoke2040+sp,179:pokevc+39+sp,0:pokevc+2*sp,x(20) 30390 ifr(2)>0thenpokevc+1+2*sp,y(20):sp=sp+1 30395 pokevc+21,2^sp-1:x$="{blk}Ein dunkler Gang.":gosubc 30399 return 30400 rem --- raum mit saeulen --- 30410 poke53281,12:print"{blk}{clr}";:fori=1to5:printspc(i)"{rvon}{CBM-*}"spc(38-2*i)"{SHIFT-POUND}" 30415 next:printspc(6)"{up}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}":fori=1to10 30420 printspc(5)"{CBM-M}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-+}{CBM-G}":next 30425 fori=5to1step-1:printspc(i)"{rvon}{SHIFT-POUND}"spc(38-2*i)"{CBM-*}":next 30430 ifz=35orz=46orz=82then30455 30435 : 30440 fori=11to27step16:print"{home}"spc(i-1)"{down}{rvof}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{left}{left}{left}{left}{down}{rvon}{CBM-*}{rvof}{CBM-@}{CBM-@}{rvon}{SHIFT-POUND}":forj=1to14 30445 printspc(i)"{rvof}{CBM-G}{CBM-M}" 30450 next:printspc(i-1)"{rvon}{SHIFT-POUND}{rvof}{CBM-T}{CBM-T}{rvon}{CBM-*}{left}{left}{left}{left}{down}{rvof}{CBM-T}{CBM-T}{CBM-T}{CBM-T}":next 30455 ifr(1)>0thenprint"{home}{down}{down}{down}{down}{down} {CBM-M}{rvon}{CBM-*}{rvof}{down}{left}{left}{CBM-M} {rvon}{CBM-*}{rvof}{down}{left}{left}{left}{CBM-M}{CBM-T}{rvon}{CBM-F}{rvof}":fori=1to8:print" {CBM-M} {CBM-M}" 30460 ifr(1)>0thennext:print" {CBM-M}{CBM-@}{rvon}{CBM-V}{rvof}{down}{left}{left}{left}{CBM-M} {left}{left}{down}{left}{CBM-M} " 30465 ifr(2)>0thenprint"{home}"tab(37)"{down}{down}{down}{down}{down}{rvon}{SHIFT-POUND}{rvof}{CBM-G}{left}{left}{left}{down}{rvon}{SHIFT-POUND}{rvof} {CBM-G}{down}{left}{left}{left}{rvon}{CBM-D}{rvof}{CBM-T}{CBM-G}":fori=1to8 30470 ifr(2)>0thenprintspc(36)"{CBM-G} {CBM-G}":next:printtab(36)"{rvon}{CBM-C}{rvof}{CBM-@}{CBM-G}{down}{left}{left}{left} {CBM-G}{down}{left}{left} {CBM-G}" 30475 ifr(4)<>0thenprint"{home}"tab(17)"{down}{down}{down}{down}{down}{down}{down}{rvon}*{rvof}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{rvon}+" 30477 ifr(4)<>0thenfori=1to6:printspc(17)"{CBM-G}{rvon}@@@@{rvof}{CBM-M}":next:printspc(17)"{rvon}{CBM-E}{rvof}"; 30480 ifr(4)<>0thenprint" {rvon}{CBM-R}{rvof}{down}{down}{down}{down}{down}" 30482 ifz=35thenx$="{blk}Die Wachstube von Moria." 30483 ifz=46thenx$="{blk}Ein d]steres Kellergew\lbe." 30484 ifz=82thenx$="{blk}Die Archivkammer von Moria." 30485 ifz=79thenx$="{blk}Die 21. Halle von Moria." 30486 ifz=105thenx$="{blk}Die 1. Halle am Osttor von Moria." 30489 gosubc 30490 return 30500 rem --- treppe --- 30510 poke53281,0:print"{blk}{clr}{down}{down}{down}{down}":fori=4to15step2:printtab(19-i/2)"{gry2}~";:forj=1toi 30515 print"{$a0}";:next:print"{CBM-*}":printtab(19-i/2)"{gry1}";:forj=1toi+2:print"{$a0}";:next 30525 print:nexti:fori=0to2:printtab(11-i)"{rvon}{SHIFT-POUND}"spc(16+2*i)"{CBM-*}":next 30530 print"{home}"tab(17)"{rvon}{CBM-*}{rght}{rght}{rght}{rght}{SHIFT-POUND}{down}{left}{left}{left}{left}{left}{CBM-D}{rvof}{CBM-T}{CBM-T}{rvon}{CBM-F}":fori=0to2:printtab(18)"{CBM-G} {CBM-M}":next 30535 print"{home}";:fori=1to20:print"{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"spc(22)"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}":next 30540 fori=0to19:poke55296+i*40,11:poke55335+i*40,11:poke1024+i*40,96 30545 poke1063+i*40,96:next 30550 x$="{wht}Am Fusse einer steilen Treppe.":gosubc 30590 return 30600 rem --- raum mit feuer --- 30610 poke53281,15:print"{blk}{clr}";:fori=0to3:print"{rght}";:ifi=0then30620 30615 forj=1toi:print"{gry2}{$a0}";:next 30620 print"{gry2}{CBM-*}"spc(36-2*i)"{gry2}~":nexti:print"{home}{gry2}{down}"tab(38)"{$a0}{down}{left}{left}{$a0}{$a0}{down}{left}{left}{left}{$a0}{$a0}{$a0}" 30625 fori=1to4:print"{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}";:forj=1toi:print"{$a0}";:next:print"{left}{CBM-*}"; 30630 printspc(16-i*2)"~";:forj=1toi:print"{$a0}";:next:print"{left}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}":next 30635 fori=1to4:print"{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}{$a0}{$a0}{$a0}{$a0}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}{$a0}{$a0}{$a0}{$a0}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}":next 30640 print"{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}{$a0}{$a0}{$a0}{CBM-POUND} {SHIFT-POUND}{$a0}{$a0}{$a0}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}" 30645 print"{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}{$a0}{$a0}{CBM-POUND} {SHIFT-POUND}{$a0}{$a0}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}" 30650 print"{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}{$a0}{CBM-POUND}{blk}~{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-*}{gry2}{SHIFT-POUND}{$a0}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}" 30655 print"{rght}{rght}{rght}{rght}{rght}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry2}{CBM-POUND}{blk}~{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-*}{gry2}{SHIFT-POUND}{gry1}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}" 30660 print"{home}{down}{down}{down}{down}{gry2}";:fori=1to12:print"{rght}{$a0}{$a0}{$a0}{$a0}"spc(30)"{$a0}{$a0}{$a0}{$a0}":next 30665 print"{rght}{gry2}{$a0}{$a0}{$a0}{CBM-POUND}{down}{left}{left}{left}{left}{$a0}{$a0}{CBM-POUND}{down}{left}{left}{left}{$a0}{CBM-POUND}{down}{left}{left}{CBM-POUND}":print"{up}{up}{up}{up}"spc(35)"{SHIFT-POUND}{$a0}{$a0}{$a0}{down}{left}{left}{left}{SHIFT-POUND}{$a0}{$a0}{down}{left}{left}{SHIFT-POUND}{$a0}{down}{left}{SHIFT-POUND}" 30670 fori=0to19:poke55296+i*40,11:poke55335+i*40,11:poke1024+i*40,96 30675 poke1063+i*40,96:next:poke1024,227:poke1063,227 30680 x$="{blk}Die 2. Halle von Moria.":gosubc 30685 x$="Aus einer Spalte im Boden dringt Feuer.":gosubc:gosub40100 30690 return 30700 rem --- raum mit balrog --- 30710 poke53281,12:print"{blk}{clr}{gry1}";:fori=0to3:print" {$a0}{$a0}"spc(i)"{SHIFT-POUND}";:forj=1to32-i*2 30715 print"{$a0}";:next:print"{CBM-POUND}"spc(i)"{$a0}{$a0}":next:fori=1to15 30720 ifi<12thenprint"{rght}{gry1}{$a0}{$a0}{rght}{rght}{rght}{rght}{gry3}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry1}{rght}{rght}{rght}{rght}{$a0}{$a0}":goto30740 30725 print"{rght}{gry1}{$a0}{$a0}"spc(15-i)"~";:forj=1toi-11:print"{$a0}";:next:print"{left}{blk}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"; 30730 print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{gry1}";:forj=1toi-11:print"{$a0}";:next:print"{left}{CBM-*}"spc(15-i); 30735 print"{$a0}{$a0}" 30740 next:fori=0to18:poke55296+i*40,11:poke55335+i*40,11:poke1024+i*40,96 30745 poke1063+i*40,96:next:fori=0to39:poke56056+i,15:poke1784+i,96:next 30750 print"{home}{down}{down}{down}{down}{down}{down}{down}"tab(17)"{blk}{rvon}{CBM-D}{rvof}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{rvon}{CBM-F}{down}{left}{left}{left}{left}{left}{left}{rvof}{CBM-G}{rvon}EXIT{rvof}{CBM-M}{down}{left}{left}{left}{left}{left}{left}{CBM-G} {CBM-M}{down}{left}{left}{left}{left}{left}{left}{CBM-G}"; 30755 print" {CBM-C}{CBM-Y}{CBM-M}{down}{left}{left}{left}{left}{left}{left}{CBM-G} {CBM-M}{down}{left}{left}{left}{left}{left}{left}{CBM-G} {CBM-M}{down}{left}{left}{left}{left}{left}{left}{rvon}{CBM-C}{rvof}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{rvon}{CBM-V}{down}{left}{left}{left}{left}{left}{left}{gry3}{CBM-M}{brn}{CBM-J}@@{CBM-L}{gry3}{CBM-G}{down}"; 30760 print"{left}{left}{left}{left}{left}{left}{blk}{rvon}{CBM-L}{brn}{CBM-H}@@{CBM-N}{blk}{CBM-J}{down}{left}{left}{left}{left}{left}{left}{blk}{rvof}{CBM-K}{brn}{rvon}{CBM-G}@@{CBM-M}{blk}{CBM-K}{down}{left}{left}{left}{left}{left}{left}{blk}{rvof}{CBM-J}{brn}{rvon}@@@@{blk}{rvof}{CBM-L}{down}{left}{left}{left}{left}{left}{left}{blk}{rvof}{CBM-H}"; 30765 print"{brn}{rvon}@@@@{rvof}{blk}{CBM-N}{down}{left}{left}{left}{left}{left}{left}{gry3}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}" 30770 x$="{blk}In der 2. Halle vor Durins Br]cke.":gosubc 30775 ifp(2)=zthengosub40200 30790 return 30800 rem --- wald --- 30810 poke53281,0:print"{wht}{clr}";:fori=1to12:print"{blu}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next:print"{blu}{$a0}{$a0}{CBM-POUND}{SHIFT-POUND}{$a0}"; 30815 print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-POUND}{SHIFT-POUND}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";"{$a0}{CBM-POUND}{rght}{rght}{SHIFT-POUND}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-POUND}{rght}{rght}{SHIFT-POUND}{$a0}{$a0}{$a0}{$a0}{CBM-POUND}{SHIFT-POUND}{$a0}{$a0}"; 30820 print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-POUND}{SHIFT-POUND}{$a0}{$a0}{$a0}{$a0}";"{CBM-POUND}{rght}{rght}{rght}{rght}{SHIFT-POUND}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{CBM-POUND}{rght}{rght}{rght}{rght}{SHIFT-POUND}{$a0}{$a0}{CBM-POUND}{rght}{rght}{SHIFT-POUND}{$a0}{$a0}{$a0}{CBM-POUND}{SHIFT-POUND}{$a0}{$a0}{CBM-POUND}{rght}{rght}{SHIFT-POUND}{$a0}{$a0}{$a0}";"{rght}{rght}{rght}{rght}{rght}{rght}"; 30825 print"{SHIFT-POUND}{$a0}{$a0}{CBM-POUND}{SHIFT-POUND}{$a0}{$a0}{CBM-POUND}{rght}{rght}{rght}{rght}{rght}{rght}{SHIFT-POUND}{CBM-POUND}{rght}{rght}{rght}{rght}{SHIFT-POUND}{$a0}{CBM-POUND}{rght}{rght}{SHIFT-POUND}{CBM-POUND}{rght}{rght}{rght}{rght}{SHIFT-POUND}{CBM-POUND}{SHIFT-POUND}";"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{SHIFT-POUND}{CBM-POUND}{rght}{rght}{SHIFT-POUND}{CBM-POUND}{down}{down}{down}{down}{down}{down}{grn}" 30830 print"{CBM-P}{CBM-O}{CBM-O}{CBM-@}{CBM-P}{CBM-O}{CBM-I}{rvon}{CBM-U}{CBM-Y}{CBM-Y}{CBM-U}{CBM-Y}{CBM-T}@@{CBM-Y}{CBM-U}{rvof}{CBM-I}{CBM-O}{CBM-I}{rvon}{CBM-U}{CBM-Y}{CBM-U}{CBM-Y}{CBM-T}@{CBM-Y}{CBM-U}{rvof}{CBM-O}{CBM-P}{CBM-@}{CBM-@}{CBM-P}{CBM-O}{CBM-P}{CBM-O}{CBM-P}{CBM-@}{CBM-P}{CBM-O}"; 30835 fori=1to20:print"{grn}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}";:next 30840 x$="{wht}Im Wald auf der Lichtung der Warge.":gosubc 30890 return 30900 rem --- durins turm --- 30910 poke53281,12:print"{blk}{clr}{gry1}";:fori=0to3:printspc(i)"{SHIFT-POUND}";:forj=1to38-i*2 30915 print"{$a0}";:next:print"{CBM-POUND}"spc(i);:next:print"{rght}{rght}{rght}{rght}{wht}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}"; 30920 print"{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}":fori=1to10:print"{rght}{rght}{rght}{rght}{wht}{CBM--}{blu}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}"; 30925 print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{wht}{CBM--}":next:print"{rght}{rght}{rght}{rght}{wht}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}{CBM--}" 30930 fori=0to2:printtab(3-i)"{blk}~";:forj=1to32+i*2:print"{$a0}";:next:print"{CBM-*}":next 30935 print"~{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}":poke1823,95:poke56095,0 30940 print"{home}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{blu}{CBM-POUND}{SHIFT-POUND}{down}{left}{left} {SHIFT-POUND}"spc(20)"{CBM-POUND}{SHIFT-POUND}":print"{rght}{rght}{rght}{rght}{rght} {SHIFT-POUND}{rght}{rght}{rght}{rght}{rght}{rght}{CBM-POUND}{SHIFT-POUND}"; 30945 printspc(10)"{CBM-POUND} {SHIFT-POUND}":print"{rght}{rght}{rght}{rght}{rght} {SHIFT-POUND}{CBM-POUND}{SHIFT-POUND}{rght}{rght}{CBM-POUND} {SHIFT-POUND}{rght}{rght}{rght}{rght}{rght}{rght}{CBM-POUND}{SHIFT-POUND}{CBM-POUND} {SHIFT-POUND}{CBM-POUND}{SHIFT-POUND}" 30950 print"{rght}{rght}{rght}{rght}{rght} {SHIFT-POUND}{CBM-POUND} {SHIFT-POUND}{CBM-POUND}{SHIFT-POUND}{rght}{rght}{CBM-POUND} {SHIFT-POUND}" 30955 print"{rght}{rght}{rght}{rght}{rght} {SHIFT-POUND}{CBM-POUND} " 30960 fori=1to2:print"{rght}{rght}{rght}{rght}{rght} ":next 30965 x$="{blk}In Durins Turm auf der Silberzinne.":gosubc 30990 return 31000 rem --- endlose treppe --- 31010 poke53281,0:print"{blk}{clr}";:fori=2to20step2:printtab(19-i/2)"{gry2}~";:forj=1toi 31015 print"{$a0}";:next:print"{CBM-*}":printtab(19-i/2)"{gry1}";:forj=1toi+2:print"{$a0}";:next 31020 print:next:print"{up}{gry2}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"spc(22)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}":poke1823,100:poke56095,12 31025 x$="{wht}Auf der Endlosen Treppe.":gosubc 31090 return 31100 rem --- durins bruecke --- 31110 poke53281,12:print"{blk}{clr}";:print"{gry3}";:fori=0to19 31115 print"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}":ifi=16thenprint"{blk}"; 31120 next:fori=0to19:poke1063+i*40,96:poke55335+i*40,-15*(i<17):next 31125 print"{home}{gry2}":fori=0to18:printtab(14)"{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}{$a0}":ifi=13thenprint"{brn}"; 31130 next:printtab(14)"{up}{up}{up}{up}{up}{gry3}{$a0} {down}{left}{left}{gry3}{rvon}{CBM-M}{rvof}{brn}{CBM-M}{down}{left}{left}{blk}{rvon}{CBM-N}{rvof}{brn}{CBM-N}{down}{left}{left}{blk}{rvon}{CBM-L}{rvof}{brn}{CBM-L}{down}{left}{left}{blk}{CBM-K}{brn}{rvon}{CBM-K}" 31135 printtab(24)"{up}{up}{up}{up}{up}{gry3} {$a0}{down}{left}{left}{brn}{CBM-G}{gry3}{rvon}{CBM-G}{rvof}{down}{left}{left}{brn}{CBM-H}{blk}{rvon}{CBM-H}{rvof}{down}{left}{left}{brn}{CBM-J}{blk}{rvon}{CBM-J}{rvof}{down}{left}{left}{brn}{CBM-K}{blk}{rvon}{CBM-K}{rvof}{home}" 31140 printtab(14)"{blk}{rvon}{CBM-D}{rvof}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{rvon}{CBM-F}{rvof}":fori=1to12:printtab(14)"{CBM-G}"spc(10)"{CBM-M}":next 31145 printtab(14)"{rvon}{CBM-C}{rvof}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{rvon}{CBM-V}{rvof}{home}" 31150 printtab(16)"{down}{CBM-M} {CBM-G} {CBM-M} {CBM-G}{rvon}*{down}{left}{left}{left}{left}{left}{left}{left}{left}{rvof}{CBM-M}{rvon}{CBM-*}{rvof}{CBM-G} {rvon}+{rvof} {CBM-G}{CBM-G}{down}{left}{left}{left}{left}{left}{left}{left}{left}{CBM-M} {CBM-G}{rvon}{SHIFT-POUND}+{rvof} {CBM-G}{CBM-G}" 31155 printtab(20)"{down}{down}{blk}{rvon}@{CBM-I}{CBM-I}" 31160 x$="{blk}Auf Durins Br]cke ]ber einem Abgrund.":gosubc 31190 return 40000 rem --- special effects --- 40100 rem -- feuer -- 40110 ifg(10)=zthenpoke2040,169:pokevc+39,0:pokevc,172:pokevc+1,160:sp=1 40120 pokevc+23,peek(vc+23)or3+sp*3:pokevc+29,peek(vc+29)or3+sp*3 40130 fori=0to1:pokevc+(sp+i)*2,x(14+i):pokevc+(sp+i)*2+1,y(14+i) 40140 poke2040+i+sp,173:pokevc+39+sp+i,7:next:sp=sp+2:pokevc+21,2^sp-1 40150 fori=1to100:poke2038+sp,173+fnr(4):poke2039+sp,173+fnr(4):forj=1to10 40190 nextj,i:return 40200 rem -- balrog -- 40210 fori=0to1:poke2040+i,181+i:poke2042+i,173+i:pokevc+i*2,x(22+i) 40220 pokevc+i*2+1,y(22+i):pokevc+i*2+4,x(16+i):pokevc+i*2+5,y(16+i) 40230 pokevc+39+i,2:pokevc+41+i,7:next:pokevc+23,15:pokevc+29,15 40240 sp=4:pokevc+21,15 40250 fori=1to100:poke2042,173+fnr(4):poke2043,173+fnr(4):forj=1to10:nextj,i 40290 return 40300 rem -- lebewesen -- 40310 ifp(7)=zorp(8)=zorp(9)=zthengosub40400 40320 fori=1to6:ifi=2then40380 40330 ifp(i)<>zthen40380 40340 j=21+i:ifi=1thenj=21 40350 pokevc+23,peek(vc+23)or2^sp:pokevc+29,peek(vc+29)or2^sp 40360 poke2040+sp,159+j:pokevc+39+sp,peek(64*(159+j)+63) 40370 pokevc+2*sp,x(j):pokevc+2*sp+1,y(j):sp=sp+1:pokevc+21,2^sp-1 40380 next 40390 return 40400 rem -- orks -- 40420 poke2040+sp,187:poke2041+sp,188:pokevc+39+sp,9:pokevc+40+sp,9 40430 pokevc+2*sp,x(28):pokevc+2*sp+1,y(28):pokevc+2*sp+2,x(29) 40440 pokevc+2*sp+3,y(29):pokevc+23,peek(vc+23)or(2^sp+2^(sp+1)) 40450 pokevc+29,peek(vc+29)or(2^sp+2^(sp+1)):sp=sp+2:pokevc+21,2^sp-1 40490 return 40500 rem -- objekte -- 40510 fori=1to3:ifo(i)<>zori=2then40580 40520 pokevc+23,peek(vc+23)or2^sp:pokevc+29,peek(vc+29)or2^sp 40530 poke2040+sp,169+i:pokevc+39+sp,peek(64*(169+i)+63) 40540 pokevc+2*sp,x(10+i):pokevc+2*sp+1,y(10+i):sp=sp+1:pokevc+21,2^sp-1 40580 next 40590 return 40600 rem -- gegenstaende -- 40610 fori=1to10:ifg(i)<>zthen40680 40615 ifz=98andi=10then40680 40620 poke2040+sp,159+i:pokevc+39+sp,peek(64*(159+i)+63) 40630 pokevc+2*sp,x(i):pokevc+2*sp+1,y(i):sp=sp+1:pokevc+21,2^sp-1 40680 next 40690 return 40700 rem -- warg tot -- 40710 fori=0to7:ifpeek(2040+i)=186thenj=i:i=7 40720 next:fori=1to3000:next:fori=1to500:pokevc+39+j,1:pokevc+39+j,0:next 40730 return 40800 rem -- luken -- 40810 ifr(5)>0thenprint"{home}{down}"spc(16)"{gry2}{CBM-*}{blk}{SHIFT-POUND}{$a0}{$a0}{$a0}{$a0}{CBM-POUND}{gry2}~{down}{left}{left}{left}{left}{left}{left}{left}{CBM-*}{rvon}{CBM-C}{rvof}{CBM-@}{CBM-@}{rvon}{CBM-V}{rvof}~" 40820 ifr(6)>0thenprint"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"spc(17)"{gry2}{CBM-POUND}{rvon}{CBM-D}{rvof}{CBM-T}{CBM-T}{rvon}{CBM-F}{rvof}{SHIFT-POUND}{down}{left}{left}{left}{left}{left}{left}{left}{CBM-POUND}{blk}~{$a0}{$a0}{$a0}{$a0}{CBM-*}{gry2}{SHIFT-POUND}" 40830 return 40900 rem -- flucht der spinne -- 40910 fori=0to7:ifpeek(2040+i)=180thenj=i:i=7 40920 next:foric=0to1:x=peek(vc+j*2+1)-10:fori=-1.5to.8step.1 40930 l=int(30*cos(i)):pokevc+j*2,peek(vc+j*2)+2:pokevc+j*2+1,x-l:nexti,ic:ic=0 40940 pokevc+21,peek(vc+21)andnot2^j 40950 p(1)=47+fnr(8):ifp(1)=zthen40950 40960 return 42000 rem --- inhalt des buches --- 42005 ifg(3)<>-1andg(9)<>-1thenx$="Es ist zu dunkel zum Lesen.":return 42010 pokevc+21,0:poke53281,11 42015 print"{blk}{clr}{down}{rght}Gimli ]bersetzt eine Seite des Buches:" 42020 print"{down}{rght}{rght}TAGEBUCH DES ZWERGENHERRSCHERS BALIN," 42030 print" HERR VON MORIA" 42040 print"{down}Wir k\nnen nicht hinaus. Wir k\nnen" 42050 print"nicht hinaus. Sie haben die Br]cke und" 42060 print"die Zweite Halle genommen. Fr#r und L$ni"; 42070 print"und N#li fielen dort. Der See reicht bis"; 42080 print"zur Wand am Westtor. Der W[chter im" 42090 print"Wasser hat Oin gepackt. Wir k\nnen nicht"; 42100 print"hinaus.Das Ende kommt. Trommeln.Trommeln"; 42110 print"in der Tiefe." 42120 print"{down} S ie ko m me n." 42130 print"{down}{down}Hier enden die Aufzeichnungen." 42135 print"{down}Gimli gibt Dir das Buch zur]ck." 42137 iff(5)=0thenf(5)=1:print"Gimli will Dir durch Moria folgen." 42140 print"{down}{down}{rght}{rght}{rght}{rght}{rght}(Taste)";:poke198,0:wait198,1:id=1:return 43000 rem -- inhalt der schriftrolle -- 43005 ifg(3)<>-1andg(9)<>-1thenx$="Es ist zu dunkel zum Lesen.":return 43010 pokevc+21,0:poke53281,11 43020 print"{blk}{clr}Gandalf ]bersetzt den Inhalt der Rolle:" 43030 print"{down}{rght}{rght}{rght}{rght}Mein Freund Thrain," 43040 print"Ich schreibe Dir von Moria, der Zwergen-"; 43050 print"mine, die von Balin, dem Zwergenf]hrer," 43060 print"regiert wird. Diese Mine ist von vielen" 43070 print"Ungeheuern bev\lkert, und wir haben es" 43080 print"schwer, uns gegen sie zur Wehr zu" 43090 print"setzen. Eine Riesenspinne lauert uns" 43100 print"immer wieder auf, heimt]ckische Orks" 43110 print"stellen uns nach, aber das Schlimmste" 43120 print"ist ein Feuerwesen, gegen das wir alle" 43130 print"machtlos sind: Durins Fluch. Es heisst," 43140 print"dass die Spinne sehr lichtempfindlich" 43150 print"ist, aber unsere herk\mmlichen Fackeln" 43160 print"schaden ihr nicht. Da die Luft dort" 43170 print"sehr stickig ist, bleibt das Licht" 43180 print"unserer Fackeln dort ohnehin nur dann" 43190 print"einigermassen hell, wenn wir sie hoch-" 43200 print"heben. Ich h\re jemanden kommen - nein," 43210 print"das werden doch nicht etwa" 43220 print"{down}Hier endet der Text." 43230 print"Gandalf gibt Dir die Rolle zur]ck." 43240 print"{rght}{rght}{rght}{rght}(Taste){home}":poke198,0:wait198,1:id=1:return 45000 rem --- spieler tot --- 45010 gosub45100+ta*10:gosubc:gosubc:x$="Noch ein Spiel?":gosubc 45020 getx$:ifx$="n"then3240 45030 ifx$="j"thenrun 45040 goto45020 45100 : 45110 x$="Die Spinne Hat Dich gefressen.":return 45120 x$="Der Balrog hat Dich vernichtet.":return 45130 x$="Gollum hat Dich erw]rgt.":return 45140 x$="Der Warg hat dich get\tet.":return 45150 x$="Die Orks haben Dich gefangengenommen.":return 45160 x$="Ein Orkpfeil hat Dich durchbohrt.":return 45170 x$="Die Orkbande hat Dich get\tet.":return 45180 x$="Du bist in die Spalte gefallen.":return 45190 x$="Der Balrog wirft Dich in den Abgrund.":return 45200 x$="Du wirst von Armen in den See gezogen.":return 45300 x$="Du bist tot!":return 46000 rem --- gewonnen --- 46010 pokevc+21,0:poke53281,2:print"{wht}{clr}" 46020 print"{down}{rght}Du hast die Mine durchquert und somit" 46030 print"einen Abschnitt deiner Reise zur]ck-" 46040 print"gelegt. Wie es weitergeht, erf[hrst Du" 46050 print"im 4. Teiladventure der 'HERR DER" 46060 print"RINGE'-Serie. Bis dahin Auf Wiedersehn!":fori=0to3000:next 46070 poke198,0:wait198,1:poke44,8:poke53272,21:print"{clr}" 49999 end 50000 rem --- worttabellen --- 50010 restore 50000 50020 : 50030 data nimm,lege,verliere,list,inventar,siehe,untersuche,hebe,toete,befehle 50040 data warte,ende,sage,sprich,beruehre,entleere,wirf,lies,oeffne,hilfe 50100 vz=20:dimv$(vz):fori=1tovz:readv$(i):next 50110 data "einen{$a0}wassereimer",46 50115 data "ein{$a0}buch",79 50120 data "eine{$a0}laterne",35 50125 data "eine{$a0}schriftrolle",28 50130 data "ein{$a0}panzerhemd",73 50135 data "einen{$a0}schluessel",57 50140 data "ein{$a0}schwert",17 50145 data "ein{$a0}seil",62 50150 data "eine{$a0}fackel",23 50155 data "eine{$a0}steintafel",84 50200 gz=10:dimg$(gz),g(gz):fori=1togz:readg$(i),g(i):next 50210 data grabmal,82 50215 data inschrift,0 50220 data "unbewegliche{$a0}platte",39 50225 data feuer,98 50230 data "steinerne{$a0}tore",2 50235 data tuer,101 50300 oz=6:dimo$(oz),o(oz):fori=1tooz:reado$(i),o(i):next 50310 data riesenspinne,47 50315 data balrog,99 50320 data gollum,45 50325 data gimli,58 50330 data gandalf,1 50335 data warg,1 50340 data orks,6 50345 data orks,74 50350 data orks,86 50400 pz=9:dimp$(pz),p(pz):fori=1topz:readp$(i),p(i):next 50410 data n,s,w,o,h,r 50500 rz=6:dimr$(rz):fori=1torz:readr$(i):next 50600 rem --- sprite-positionen --- 50601 data 100,175, 170,180 50603 data 120,175, 150,180 50605 data 180,170, 170,160 50607 data 190,168, 170,170 50609 data 160,180, 155,170 50611 data 160,160, 160,101 50613 data 160,165, 136,136 50615 data 184,136, 138,166 50617 data 182,166, 160, 80 50619 data 126, 93, 218, 93 50621 data 160,160, 160,125 50623 data 160,167, 160,165 50625 data 130,163, 190,165 50627 data 85,133, 150,130 50629 data 190,155, 100,100 50631 data 100,100, 100,100 50633 data 24, 50, 248, 50 50650 dimx(34),y(34):fori=1to34:readx(i),y(i):next 50700 rem --- variablen --- 50710 vc=53248:sp=0:i=0:j=0:v=0:g=0:o=0:p=0:ic=0:c=500:gg=0:et=1 50800 deffnr(i)=int(rnd(1)*i):p(1)=47+fnr(8) 50900 rem --- strings --- 50910 a$(0)="Rede keinen Unsinn." 50920 a$(1)="Sehe ich hier nicht." 50930 a$(2)="Hast Du schon." 50940 a$(3)="Hast Du nicht bei Dir." 50950 a$(4)="Bitte Objekt angeben." 50960 a$(5)="Zu schwer." 59000 return