Odyssee
Listings

Odyssee — Kampf der Bruderschaft

Eine abenteuerliche Reise durch das Land des bösen Zauberers Saruman.

Bei Odyssee handelt es sich um eine Kombination aus Abenteuer- und Rollenspiel.

Als Auserwählter einer Bruderschaft erhalten Sie den Auftrag, das Land vom Zauberer zu befreien. Sie begeben sich auf die Reise, den Zauberer zu suchen und zu vernichten; dabei werden Sie gefährliche Situationen zu meistern haben, Feinden, aber auch Freunden begegnen.

Vor 20 Jahren hat der mächtige Zauberer Saruman die Herrschaft über das Land Sosaria an sich gerissen. Ihre Bruderschaft ist jedoch nicht länger gewillt, seine Tyrannei noch länger zu erdulden und hat Ihnen den Auftrag gegeben, den Zauberer zu suchen und zu vernichten. Auf Ihrer Reise begegnen Sie vielen Feinden und einigen Ordensbrüdern, aber auch unter diesen gibt es Verräter. Ausgerüstet sind Sie mit 400 Einheiten Kraft, 350 goldenen Münzen und 50 Vorratseinheiten. Sie werden schnell feststellen, daß Sie noch sehr schwach sind, aber es gibt in Dörfern und Städten Kleider, Waffen und Vorräte zu kaufen. Geld bekommen Sie in zahlreichen Kämpfen.

Eingabe und Speicherung

Zuerst muß man den »Creater« eingeben und speichern. Nach dem Starten prüft das Programm, ob alle DATA-Zeilen richtig eingegeben worden sind. Ist dies nicht der Fall, so erscheint eine Fehlermeldung. Stimmen die DATAs, dauert es noch etwa 3,5 Minuten, bis das Programm »World« auf Diskette gespeichert ist. »World« beinhaltet einen neuen Zeichensatz, eine Maschinensprache-Routine zum waagerechten Scrollen des Bildschirms und zirka 16 KByte, die die Landschaft der Odyssee ausmachen.

Die Odyssee ist das Hauptprogramm. Nach Eintippen und Speichern startet man es mit RUN. Zuerst gilt es, sich einen Spieler zu erstellen. Hier kann man 100 Punkte auf Stärke (Strength), Widerstandskraft (Stamina), Intelligenz (Intelligence) und Wissen (Wisdom) verteilen. Die Eingabe der Punkte muß immer zwei Ziffern lang sein. Falls man einmal zuviel Punkte (100) eingegeben hat, werden alle Kriterien wieder auf Null gesetzt, und man beginnt von vorne. Nun entschließt man sich noch zu einem fantasievollen Namen und muß jetzt erst einmal Geduld aufbringen, da man noch ungefähr eine Minute zu warten hat. Diese Wartezeit braucht jedoch nur beim 1. Spiel in Kauf genommen zu werden. Nun erscheint das Titelbild mit dem Hinweis darauf, daß der 2.Teil geladen wird. Ist der Ladevorgang abgeschlossen, kann das Spiel begonnen werden.

Änderungen für Kassette:

  1. CREATER; Zeile 265 SYS(57812)»WORLD«,1
  2. ODYSSEE:Die Änderungen stehen im Listing von Zeile 9299—9320

Bewegung der Spielfigur

Die Spielfigur wird ausschließlich über die Tastatur gesteuert. Hier die Belegung der einzelnen Tasten:
@ = Die Spielfigur bewegt sich nach Norden
/ = Die Spielfigur geht nach Süden
; = Die Spielfigur läuft nach Westen
: = Die Spielfigur schreitet nach Osten

A = angreifen (ATTACK)
Im unteren Fenster erscheint ATTACK —. Nun muß man eine Richtungstaste drücken (siehe oben), um dem Computer zu zeigen, in welche Richtung der Befehl zielen soll. Das Programm gibt daraufhin an, ob getroffen worden ist. Dies hängt von der Stärke des Spielers und von seinen Waffen ab. Ist ein Feind besiegt, so erhält man eine Anzahl von Goldstücken und, wenn man Glück hat, einen Matrosenanzug (BLUE TASSLE).
T = verhandeln (TRANSACT)
Nach Eingabe der Richtung, in die verhandelt werden soll, erscheint die Antwort im Textfenster. Falls sich in der angegebenen Richtung niemand aufhält, erscheint die Meldung: »NO RESPONSE«
E = betreten (ENTER)
Mit diesem Befehl kann man in Dörfer und Städte gelangen.
B = Schiff betreten (BOARD SHIP)
Um auf ein Schiff zu gelangen, muß man diesen Befehl benutzen. Man braucht aber einen Matrosenanzug (BLUE TASSLE), damit man von der Besatzung an Bord gelassen wird. Ausnahme ist, wenn man das Schiff in einem Dorf kauft.
X = Das vorher betretene Schiff wird verlassen.
Z = Inventar
Hier wird der Name des Spielers, seine Waffen, seine Kleidung, seine Eigenschaften, seine Kraft und die Sachen (TOOLS), die er bei sich trägt, auf dem Bildschirm angezeigt. Drückt man eine Taste, so dauert es noch einen Moment, bis das Spiel fortgesetzt werden kann.
U =Tür aufschließen (UNLOCK DOOR)
Eine Tür kann geöffnet werden, wenn man den Schlüssel zu ihr besitzt.
G = Zeigt an, wieviel Goldstücke man besitzt.
H = Gibt an, wieviel Kraft (POWER) man noch hat.
F = Zeigt die verbleibenden FOOD-Einheiten.
M = MAGIC MISSILE auslösen
Ein weißes Quadrat läuft über den Bildschirm und tötet alle Feinde und Freunde. Fürjedes Lebewesen erhält man 5 Goldstücke. Man kann es nur einmal benutzen.
R = Neues Spiel (RESTART GAME)
Hiermit kann ein neues Spiel begonnen werden, falls man in einer aussichtslosen Lage ist. Der Computer fragt, ob man sich sicher ist, daß man ein neues Spiel starten möchte. Antwortet man mit »Y«, so kann man sich eine neue Spielfigur erstellen.

Dörfer und Städte

In den Dörfern und Städten des Landes erhält man viele Gegenstände, die zur Lösung der Aufgabe beitragen. In jeder Stadt kann man Waffen und Kleider kaufen. Um seine Vorräte aufzufüllen oder seine Spielsucht zu befriedigen, muß man sich schon in die Dörfer bequemen.

Kauf einer Waffe: Man betritt eine Stadt und geht in den WEAPONSHOP, indem man eine 1 drückt. Aus den vier angebotenen Waffen wählt man sich eine aus, indem man die Ziffer der Waffe drückt. Der Ladeninhaber sagt den Preis, und man kann sich entscheiden, ob man die Waffe kaufen oder lieber seinen Geldbeutel schonen möchte.

Der Kauf eines Kleidungsstücks vollzieht sich genauso, wie der Erwerb einer Waffe.

Kaufen von Nahrung: In einem Dorf betritt man mit 1 den FOODSHOP und erfährt den Preis für 100 FOOD-Einheiten. Der Preisschwanktzwischen 32 und 52 Goldstücken und ist bei jedem Versuch anders. Scheint der Preis annehmbar, so beantwortet man die Frage ob man kaufen möchte mit »Y«, und der Computer zeigt an, wieviel Einheiten FOOD man besitzt.

Hat man einmal nichtgenug Geld, um den geforderten Preis zu bezahlen, erscheint die Fehlermeldung »YOU HAVE NOT ENOUGH MONEY«.

Freunde und Feinde

Zu Ihrem Unglück gibt es viele Ihnen feindlich gesonnene Krieger, die im Dienste des Zauberers stehen, jedoch nur wenige Ordensbrüder, die Ihnen aber wertvolle Dinge geben können. Manche dieser Ordensbrüder stehen Ihnen aber auch mißtrauisch gegenüber, so daß Sie von Ihnen Geheimwörterwissen wollen oder Sie nach Ihrer Intelligenz (INTELLIGENCE) oder nach Ihrem Wissen (WISDOM) beurteilen.

Werden Sie in einen Kampf mit den Feinden verstrickt, so erscheint im Textfenster immer HIT und MISS. HIT bedeutet, daß der Gegner Sie getroffen hat; MISS, daß er verfehlt hat. Wie oft Sie getroffen werden, hängt von der Dauer des Kampfes, IhrerWiderstandsfähigkeit (STAMINA) und Ihrer Kleidung ab.

Sie haben das Spiel verloren, wenn Sie keine Nahrung (FOOD) oder keine Kraft (POWER) mehr haben. FOOD verlieren Sie, wenn Sie durch das Land gehen (pro Schritt 0,2 Einheiten). Kraft verlieren Sie in den Kämpfen, wenn Sie getroffen werden.

Hilfsmittel

Die Hilfsmittel braucht man, um die gestellte Aufgabe zu lösen. Man erhält sie in Kämpfen, Dörfern und Städten und von den Ordensbrüdern. Wenn man »Z« drückt, werden sie unter TOOLS aufgelistet.

BLUE TASSLE: Matrosenanzug

Hat man keinen Matrosenanzug, läßt einen die Besatzung eines Schiffes nicht an Bord. Es erscheint die Meldung »THE CREW DOES NOT ALLOW THIS«.

MAGIC MISSILE: magische Waffe

Mit ihr vernichtet man alle Feinde, leider aber auch alle Freunde, die auf dem Bildschirm zu sehen sind. Für jeden Freund oder Feind erhält man durch diese Tötungsaktion 5 Goldstücke. Man kann sie also dazu benutzen, sich Geld zu verschaffen odereine ÜbermaChtvon Feindenzuvernichten.

KEY: Schlüssel

Braucht man um Türen zu öffnen.

GOLDEN KEY: goldener Schlüssel

Erklärt sich im Spielverlauf

SWIM-WEST: Schwimmweste

Hat man die Schwimmweste, kann man 12 Felder weit schwimmen. Danach löst sie sich in Luft auf.

BOOTS: Schuhe

Trägt man Schuhe, so kann man 2 Felder über felsigen Grund laufen. Danach sind sie verschlissen.

MARK OF FIRE:

Mit MARK OF FIRE kann man durch LAVA gehen.

Verschiedenes

Wie Sie vielleicht bemerkt haben, habe ich drei Einzeiler aus der Ausgabe 11/84 des 64’er Magazins in mein Programm übernommen. Im »Creater« istes die SAVE-Routine für Maschinenspracheprogramme und in der »Odyssee« der Einzeiler zum Kopieren des Basic ins RAM. Der Einzeiler, der die »Odyssee« überhaupt erst ermöglicht hat, ist der zum Feststellen eines Bildschirmbereiches von Peter Eckart.

(Jan Geißelmann/rg)

Erläuterung der Grafik

Ohne Hilfsmittel können Sie sich nur auf Gras fortbewegen. Bis auf Steinmauern können alle anderen Hindernisse überwunden werden. Energiemauern nehmen Ihnen 100 POWER-Einheiten ab.

Normales Zeichen
Spielfigur !
Der Ordensbruder "
Der Feind #
Eine Stadt $
Wasser %
Ein Schiff &
Ein Dorf /
Gras (
Fels )
Lava +
Energiemauer *
Zauber Saruman
Der dunkle Turm
Mauerstein ]
Schloß eines Lords '
Tür
Grafikbeschreibung
Variablen
K Variable für Kleidung
W Variable für Waffe
W$ augenblickliche Waffe
AR$ augenblickliches Kleidungsstück
G Gold
H Kraft
Y Y-Koordinate Bildschirm
T X-Koordinate Landschaft
V Vergleichsvariable
I,X,Z Laufvariablen
p Bildschirmposition Spielfigur
s Bildschirmposition bei Richtungsangabe
Y1 Y-Koordinate bei Richtungsangabe
V1 Zeichen unter Spielfigur
V2 letztes Zeichen unter Spielfigur
G(4) Kraft der Feinde
S%(64) Sprungadressen der Befehle
V$(1,4) Sachen in Dörfern und Städten
W$(2,4) Waffen und Kleidungsstücke
W(2,4) Preis für Waffen und Kleidungsstücke
Speicherbelegung
048—12287 Basic-Programm
12288—16383 Zeichensatz
16384—16695 Maschinensprache
16862—33001 Landschaft
Variablenliste
10 - 25 Variablen definieren
33 — 90 Bildschirmaufbau
100 reagieren auf Tastendruck
110 — 170 Angriff der Feinde
180 Spielfigur tot
210 — 230 Routine für Bewegung
1000 — 1080 Befehl ATTACK
1200 — 1290 Inventar
1400 — 1499 Befehl ENTER
1700 - 1720 Neues Spiel
2100 Anzeige von FOOD
2200 — 2297 Befehle TRANSACT
2300 - 2360 Befehl EXIT
2600 Anzeige von GOLD
2800 - 2870 Befehl BOARD SHIP
2900 Anzeige von POWER
3000 — 3020 Befehl UNLOCK DOOR
3600 — 3650 Befehl MAGIC MISSILE
4500 — 4540 Befehl WEST
4600 — 4610 Befehl NORTH
5000 — 5020 Befehl EAST
5500 — 5510 Befehl SOUTH
9000 - 9197 Spielfigur erstellen
9200 — 9300 Ladebild und Laden von Teil 2
15000— 15540 in Stadt oder Dorf
16000— 16050 im Schloß eines Lords
18000— 18040 Spiel gewonnen
60000- 60020 DATAs
Programmbeschreibung
1 rem ***************
2 rem *  odyssee :  *
3 rem *             *
4 rem *  mainprg.   *
5 rem ***************
6 :
7 :
8 :
9 ifz=0then9000
10 dimt(4),v$(1,4),w$(1,4),w(2,4),s%(64):ti$="000000":w$="hand":v1=40
15 g=350:y=9:w=3:f=50:t=17061:h=300:forz=1to4:g(z)=5:next:poke12762,0
16 forz=1to27:readz$:next:forz=0to63
17 s%(z)=50:next:s%(64)=100:forz=1to16
18 readi:s%(i)=i*100:next:forz=1to100
21 i=int(rnd(0)*20):x=int(rnd(0)*440+20):ifpeek(17001+(20-i)+x*20)<>40then21
22 poke17001+(20-i)+x*20,35:next:fori=0to1:forz=1to4:readw$(i,z),w(i,z):next:next
23 v$(0,1)="foodshop":v$(0,2)="pub":v$(1,1)="weaponshop":v$(1,2)="armourshop"
24 v$(1,4)="exit the town":poke788,52
25 v$(0,3)="talk to people":v$(1,3)=v$(0,3):v$(0,4)="exit the village"
26 printchr$(147):poke53265,11
33 i=t:forz=1to40:poke16604,i-256*int(i/256):poke16605,int(i/256):i=i+20
34 sys16484:next:poke1043+y*40,33:ifb=5thenpoke1043+y*40,38:poke55296+y*40,14
35 poke 214,20 : sys58640 : print "{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}";
40 poke53265,155:poke53272,29:goto 90
50 print"illegal command":goto90
60 print"not there":goto90
70 print"no way":goto90
80 print"pass"
90 print"cmd: ";
100 sys16674:p=1043+y*40:i=i+1:ifi<15thenz=peek(197):ta=z*100:goto s%(z)
110 i=0:ifpeek(p-1)=35then160
120 ifpeek(p+1)=35then160
130 ifpeek(p-40)=35then160
140 ifpeek(p+40)=35then160
150 goto100
160 i=int(rnd(0)*18):ifk+a(2)<ithenprint"hit":h=h-int(rnd(0)*5)-1:ifh<1then180
165 ifk+a(2)>i-1thenprint"missed"
170 print"cmd: ";:goto100
180 printn$" is dead":forz=1to10:poke198,0:next:wait198,1:run
210 i=v1:v1=peek(z)
211 ifb=0thenifpeek(z)=40thengoto x
212 ifb=5thenifpeek(z)=37thengoto x
213 ifpeek(z)=41and(spand2)=2then220
214 ifpeek(z)=37and(spand16)=16thensw=sw+1:goto2180
215 ifpeek(z)=37and(spand16)=16thengoto x
216 ifpeek(z)=42thenh=h-100:ifh<0then180
217 ifpeek(z)=42thengoto x
218 ifpeek(z)=43and(spand8)=8thengoto x
219 v1=i:goto70
220 bo=bo+1:ifbo=2thensp=sp-2
230 goto x
1000 print"attack --- ";:goto10000
1010 ifpeek(s)<>35thenprint"miss":goto90
1020 i=int(rnd(0)*20):ifw+a(1)>iorze=5thenprint"hit":ze=0:goto1040
1030 ze=ze+1:print"miss":goto90
1040 print"hit":g(z)=g(z)-1:ifg(z)<1theng(z)=int(rnd(0)*3)+3:goto1060
1050 forz=1to5:poke197,64:next:goto90
1060 i=int(rnd(0)*20):print" killed --- gold found :"i:g=g+i:pokes,40:u=40:p=35
1070 c=c+1:ifc=20thenprint"you get a blue tassle":sp=sp+1
1080 goto2110
1200 ifb=5thenprint"only on foot":goto90
1205 print"{clr}{rvon}"n$:print:print:print:print
1210 forz=1to5:printk$(z);b(z):next
1215 poke214,5:sys58640:printtab(29)"food :"int(f):printtab(29)"gold :"g
1217 printtab(29)"power:"h:print:print
1220 print:print:print"weapon : "w$
1230 print:print"armour : "ar$
1240 print:print"tools  : ";
1250 i=1:x=0:forz=1to7:if(spandi)=ithenx=x+1:printsp$(z)";";
1255 i=i*2:next
1260 ifx=0thenprint"no tool":goto1290
1270 print"{left} "
1290 poke198,0:wait198,1:goto26
1400 print"enter --- ";:goto10000
1410 ifpeek(s)=36thena$="a town.":a=1:goto1460
1420 ifpeek(s)=39thena$="a village.":a=0:goto1460
1430 ifpeek(s)=44then16000
1440 ifpeek(s)=31thent=26641:y=15:goto26
1450 goto60
1460 poke53272,21:print"{clr}you have entered "a$;:goto15000
1700 print"restart game --- are you sure ? ";
1710 poke198,0:wait198,1:getz$:ifz$="y"thenprintz$:run
1720 print"n":print"i knew it":goto90
2100 print"food: "int(f):goto90
2110 s=s-1024:i=int(s/40):z=t+(40-(s-i*40))*20-y1:pokez,u:goto90
2160 goto x
2180 ifsw=12thensp=sp-16
2190 goto x
2200 print"transact --- ";:goto10000
2210 print"ok":print"==> ";:ifpeek(s)=34then2215
2211 ifpeek(s)=35thenprint"nice day;today":goto90
2212 print"no response":goto90
2215 ify1=3anda(3)<16then20000
2220 ify1=12anda(5)<10then20010
2225 ify1=10andg<100thenprint"he wants to have 100 golden coins.":goto90
2227 ify1=10theng=g-100:print"he takes 100 coins":print"==> ";:goto2290
2230 ify1=2anda(5)<30then20010
2235 ify1=4anda(5)<20then20010
2240 ify1=13thenprint"he tells you a secret password.":a(5)=10:goto2295
2245 ify1=1thenprint"he gives you magical boots.":sp=spor2:goto2295
2250 ify1=9thenprint"he gives you a golden key":sp=spor32:goto2295
2255 ify1=19and(spand32)=32thenprint"he take the golden key.":sp=sp-32:goto2290
2257 ify1=19thenprint"he wants to have the golden key":goto90
2260 ify1=11thenprint"he gives you a key.":sp=spor6:goto2295
2265 ify1=0anda(4)<17thenprint"wisdom no high enough.":goto20005
2270 ify1=8anda(3)<22then20000
2275 ify1=6thenprint"he gives you a swim-west":sp=spor16:goto2295
2280 ify1=14thenprint"he stoles all your gold":g=0:goto2295
2285 ify1=5thenprint"he gives you a magic missile.":sp=spor4:goto2295
2290 print"you may pass"
2295 forz=1to16:pokes+54272,z:fori=1to50:next:next:u=40:p=34
2297 pokes+54272,13:pokes,40:goto2110
2300 print"exit ";:ifb=0thenprint"what ?":goto90
2305 print"ship --- ";:goto10000
2310 ifpeek(s)<>40then60
2320 y1=y:pokes,33:print"ok":ifs=p-40thens=p-40:y=y-1:goto2360
2330 ifs=p+1thens=p-1:t=t-20:poke16604,(t)and255:poke16605,int(t/256):sys16384:goto2360
2340 ifs=p+40theny=y+1:s=p-40:goto2360
2350 s=p+1:t=t+20:i=t+780:poke16604,iand255:poke16605,int(i/256):sys16484
2360 u=38:b=0:v1=40:goto2110
2600 print"gold: "g:goto90
2800 print"board ship --- ";:goto10000
2810 ifpeek(s)<>38then60
2820 if(spand1)<>1thenprint"no":print"==> the crew does not allow this":goto90
2830 print"ok":b=5:pokep,v1:poke54272+s,14:p=p+1:ifs=p-41theny=y-1:goto2870
2840 ifs=pthent=t-20:poke16604,(t)and255:poke16605,int(t/256):sys16384:goto2870
2850 ifs=p+39theny=y+1:goto2870
2860 t=t+20:i=t+780:poke16604,iand255:poke16605,int(i/256):sys16484:goto2870
2870 u=37:s=p-1:p=38:v1=37:goto2110
2900 print"power: "h:goto90
3000 print"unlock door --- ";:if(spand64)<>64thenprint"no key":goto90
3005 goto10000
3010 ifpeek(s)<>194then60
3020 print"ok":pokes,40:pokes-41,192:goto90
3600 if(spand4)<>4thenprint"no magic missile":goto90
3610 print"magic missile"
3620 forz=1024to1823:i=peek(z+54272):pokez+54272,1
3630 ifpeek(z)<>35andpeek(z)<>34then3640
3635 x=z-1024:n=int(x/40):poket+(40-(x-n*40))*20-n,40:g=g+5:pokez,40
3640 ifpeek(z)=30thengoto18000
3650 pokez+54272,i:next:sp=sp-4:goto90
4500 v2=v1
4505 z=1042+y*40:x=4510:goto210
4510 t=t+20:i=t+780:poke16604,iand255:poke16605,int(i/256):print"west"
4520 sys16484:pokep+1,v2:pokez+1,33+b
4530 f=f-.2:iff<0thenprint"no food --- ";:goto180
4540 goto90                           
4600 v2=v1:z=1043+y*40-40:x=4610:goto210
4610 print"north":pokez+40,v2:y=y-1:pokez,33+b:goto4530
5000 v2=v1
5005 z=1044+y*40:x=5010:goto210
5010 t=t-20:poke16604,(t)and255:poke16605,int(t/256):print"east":sys16384
5020 pokep-1,v2:pokez-1,33+b:goto4530
5500 v2=v1:z=1043+y*40+40:x=5510:goto210
5510 print"south":pokez-40,v2:y=y+1:poke1043+y*40,33+b:goto4530
9000 poke53280,0:poke53281,0:poke53272,21:printchr$(142),chr$(8):ar$="skin"
9010 poke95,0:poke96,160:poke90,0:poke91,192:poke88,0:poke89,192:sys41919
9020 gosub9500:k$(5)=k$(5)+"00"
9100 print"{clr}{wht}{down}{down}"tab(10)"creating a player":printtab(7)"=-=-=-=-=-=-=-=-=-=-=-="
9110 print:print:print:forz=1to5:printtab(10);k$(z):a$(z)="":next:i=7:s=0
9115 forz=1to4:poke214,i:sys58640
9120 printtab(25);:poke198,0:wait198,1:getz$
9130 ifz$=chr$(20)andlen(a$(z))thena$(z)=left$(a$(z),len(a$(z))-1):goto9165
9140 iflen(a$(z))=2thenprint:goto9170
9150 ifasc(z$)<48orasc(z$)>57then9120
9160 a$(z)=a$(z)+z$
9165 printz$;:goto9120
9170 a(z)=val(a$(z)):s=s+a(z):ifs>100then9100
9175 i=peek(214):poke214,20:sys58640:print"points left :      {left}{left}{left}{left}{left}"100-s:next
9180 input"{up}{up}{up}{up}{up}{up}your name ";n$
9184 ifpeek(2)=0thenforz=57344to65535:pokez,peek(z):next:poke59639,20
9185 gosub9500:a(1)=int(a(1)/5):a(2)=int(a(2)/5):poke2,1:poke1,53
9190 i=43168:pokei,32:pokei+1,192:pokei+2,2:i=704:pokei,32:pokei+1,138
9195 pokei+2,173:pokei+3,76:pokei+4,247:pokei+5,183:printchr$(147)
9197 forz=1to4:b(z)=a(z):next
9200 printtab(12)"{down}{down}{down}{wht}<<< odyssee >>>"
9210 print"{down}"tab(9)"<<<  please wait  >>>"
9220 printtab(6)"{down}<<< while loading part2 >>>"
9230 printtab(3)"{down}<<<  (c) by jan geiszelmann   >>>"
9240 print"{down}<<<-------------* 1984 *------------>>>"
9250 printtab(4)"{down}{down}{down}*******************************"
9260 printtab(4)"*                             *"
9270 printtab(4)"*******************************":print"{up}{up}"tab(6);
9280 forz=1to27:readz$
9290 forx=1to100:next:ifz$="x"thenprint" ";:next
9295 printz$;:next
9297 load"world",8,1
9299 rem fuer datasette : zeile 9297 loeschen und zeile 9300-9320 eingeben
9300 print:print:print:print"{blk}load"chr$(34)"world"chr$(34)",1,1{wht}{up}{up}";:poke631,13
9310 poke632,90:poke633,61:poke634,49:poke635,58:poke636,71:poke637,111
9320 poke638,49:poke639,13:poke198,10:end
9500 k$(1)="strenght.......":k$(2)="stamina........":k$(3)="intelligence..."
9510 k$(4)="wisdom.........":k$(5)="passwords......":sp$(1)="blue tassle"
9520 sp$(2)="boots":sp$(3)="magic missile":sp$(4)="mark of fire"
9530 sp$(5)="swim-west":sp$(6)="golden key":sp$(7)="key":return
10000 poke198,0:wait198,1:getz$
10010 ifz$="@"thens=p-40:print"north -- ";:z=1:y1=y-1:gotota+10
10020 ifz$=":"thens=p-1:print"west --- ";:z=2:y1=y:gotota+10
10030 ifz$=";"thens=p+1:print"east --- ";:z=3:y1=y:gotota+10
10040 ifz$="/"thens=p+40:print"south -- ";:z=4:y1=y+1:gotota+10
10050 goto80
15000 poke214,3:sys58640:print:v=1
15010 ify1=9thenv$(a,3)="buy a boat":v$(a,2)="talk to people":v=2
15020 ify1=1thenv=3
15030 ify1=17thenv$(a,3)="buy the mark of fire":v=4
15100 i=1:forz=1to4:printi"{left}.) "v$(a,z):i=i+1:next:print"{down}{down}what do you want ? ";
15110 poke198,0:wait198,1:getz$:ifval(z$)<1orval(z$)>4then15110
15120 printz$:print:print:onval(z$)goto15125,15127,15128,15370
15125 x=0:ona+1goto15230,15130
15127 x=1:ona+1goto15276,15130
15128 onvgoto15200,15330,15276,15400
15130 forz=1to4:printz"{left}.) "w$(x,z):next:print"{down}{down}your interest ? ";
15150 poke198,0:wait198,1:getz$:printz$:ifval(z$)<1orval(z$)>4then1460
15160 z=val(z$):print"{down}the "w$(x,z)" cost you"w(x,z)"{left}. ok ? ";:u=15170:goto15530
15170 i=w(x,z):u=15180:goto15500
15180 g=g-i:print"{down}ok!":ifx=0thenw$=w$(0,z):w=3+z*2:goto15520
15190 ar$=w$(1,z):k=z*2+1:goto15520
15200 print"the people here do not know anything.":goto15520
15230 p=int(rnd(0)*20)+32:print"100 food units cost you"p"{left}. ok ? ";
15235 u=15240:goto15530
15240 i=p:u=15250:f=f+100:goto15500
15250 print"{down}now you have"int(f)"food units":g=g-p:goto15520
15276 ifv<>2andv<>3then15280
15277 print"they tell you a secret password.":b(5)=v*10:goto15520
15280 p=int(rnd(0)*75)-50:ifg=0thenprint"no money !":goto1460
15282 print"gambling ...":forz=1to1000:next:i=0:u=15285:goto15500
15285 ifp<0thenprint"i'm sorry but you have lost";:goto15310
15290 ifp>0thenprint"ohh. you have won";:goto15312
15300 goto15282
15310 ifsgn(p)*p>gthenp=-1*g
15312 printp*sgn(p)"!"::g=g+p:goto15520
15315 goto15520
15330 print"{down}the boat cost 100 coins ! ok ? ";:u=15340:goto15530
15340 i=100:u=15350:goto15500
15350 g=g-100:y=9:b=5:t=21101:ri=0:v1=37:forz=1to500:next
15370 poke53272,29:goto23
15400 print"the mark of fire cost 50 ! ok ? ";:u=15410:goto15530
15410 u=15420:i=50:goto15500
15420 sp=spor8:g=g-i:goto15520
15500 ifg<ithenprint"{down}you have not enough money !":forz=1to500:next:goto1460
15510 goto u
15520 forz=1to700:next:goto1460
15530 poke198,0:wait198,1:getz$:ifz$<>"y"thenprint"n":goto15520
15540 printz$:goto u
16000 print"{clr}you have entered the castle of a lord"
16010 print"{down}{down}for 50 coins you get 1000 units of power"
16020 print"do you want ? ";
16030 poke198,0:wait198,1:getz$:ifz$<>"y"thenprint"n":forz=1to200:next:goto26
16040 ifg<50thenprint"you have not enough money":goto26
16050 printz$:forz=1to200:next:g=g-50:h=h+1000:goto26
18000 forz=1to16:fori=1to16::poke53280,i:next:poke53281,z:next
18010 print"{clr}congratulations "n$
18020 a$="{down}{down}{down}you have managed it to destroy the dark tower and to kill the"
18030 a$=a$+" wizard saruman.thepeople living in sosaria have made you  to "
18035 a$=a$+"their new king for the next 20 years.{down}{down}{rvon} end of report {down}{down}"
18040 forz=1to183:printmid$(a$,z,1);:fori=1to150:next:next:end
20000 print"you are not intelligent enough"
20005 printtab(4)"so that you may pass.":goto90
20010 print"you do not know the secret password.":goto90
60000 dataa,x,f,a,n,t,a,s,y,x,r,o,l,e,x,p,l,a,y,i,n,g,x,g,a,m,e
60010 data10,12,14,17,22,23,28,30,36,45,46,50,55,26,21,29,dagger
60020 data 50,axe,80,bow,100,gun,150,cloth,50,leather,80,chain,100,shield,150
Listing »Odyssee«. Beachten Sie beim Abtippen bitte den Checksummer.
1 rem ***************
2 rem *  odyssee :  *
3 rem *             *
4 rem *world-creater*
5 rem ***************
6 :
7 :
8 :
9 poke53280,0:poke53281,0
10 :
11 :
12 poke53280,0:poke53281,0:print"{clr}{wht}"tab(12)"<<< odyssee >>>{down}"
13 printtab(9)"<<< world-creater >>>"
14 printtab(6)"{down}<<< please wait 3.5 min >>>"
15 print"{down}{down}=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-="
16 poke214,20:sys58640:print"=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-="
17 poke214,9:sys58640:printtab(6)"verifying datas ..."
18 forz=1to255:readi:s=s+i:next:ifs<>25150thenb=1:goto25
19 s=0:forz=1to255:readi:s=s+i:next:ifs<>35192thenb=2:goto25
20 s=0:forz=1to255:readi:s=s+i:next:ifs<>24056thenb=3:goto25
21 s=0:forz=1to255:readi:s=s+i:next:ifs<>34311thenb=4:goto25
22 s=0:forz=1to255:readi:s=s+i:next:ifs<>29496thenb=5:goto25
23 s=0:forz=1to28:readi:s=s+i:next:ifs<>2922thenb=6:goto25
24 goto26
25 print"error in block"b:end
26 restore:printtab(6)"{down}defining new tokens ..."
27 forz=51200to51252:readx:pokez,x:s=s+x:next
28 s=0:sys51200:forz=12520to12647:readx:pokez,255-x:next:print
29 printtab(6)"creating the world ...{down}"
30 fori=16862to17420:pokei,37:next
31 fori=17421to26161:pokei,40:next
32 fori=26162to30008:pokei,37:next
33 fori=26645to28006:pokei,40:next
34 forz=30008to32014:pokez,40:next
35 forz=32015to33001:pokez,41:next
36 readz1,s1:ifz1=-1thenp=s1:goto36
37 ifz1=-2then43
38 ifz1=-3thenm=1:goto36
39 ifm=1thenpoke17001+(20-z1)+s1*20,p:goto36
40 readz2,s2:z1=z1-1:z2=z2-1:ifz1=z2then42
41 fori=17001+(20-z1)+s1*20to17001+(20-z2)+s2*20:pokei,p:next:goto36
42 fori=17001+(20-z1)+s1*20to17001+(20-z2)+s2*20step20:pokei,p:next:goto36
43 readz1,s1:ifz1=-2then47
44 p=17001+(20-z1)+s1*20:forz=ptop+120step20:pokez,41:next:p=p+39
45 forz=ptop+40step20:pokez,41:next:p=p+2:forz=ptop+40step20:pokez,41:next
46 goto43
47 readz1,s1:ifz1=-2then50
48 p=17001+(20-z1)+s1*20:forz=ptop+6:pokez,41:next:p=p-18:forz=ptop+2:pokez,41
49 next:p=p+40:forz=ptop+2:pokez,41:next:goto47
50 printtab(6)"reading assembler-data ...":forz=16384to16695:readi:pokez,i:next
51 printtab(6)"{down}saving ..."
52 sys(57812)"@:world",8
53 poke193,0:poke194,48:poke174,73:poke175,129:sys62957:end
54 rem ***** block 1 *****
55 data120,165,1,72,41,251,133,1,169,208,133,3,169,48,133,5,160,0,132,2,132,4
56 data162,32,177,2,145,4,200,208,249,230,3,230,5,202,208,242,104,133,1,173,24
57 data208,41,241,9,12,141,24,208,88,96
58 data129,129,129,255,24,24,24,255,24,153,153,126,24,60,36,36,219,219,255,255
59 data231,195,195,195,255,255,255,255,255,255,255,255,184,185,162,252,144,184
60 data168,168,152,152,254,153,152,188,164,164,56,57,18,60,56,48,40,40,231,189
61 data231,66,66,231,189,231,0,48,75,132,0,48,75,132,32,60,62,62,62,153,255,62
62 data32,114,119,7,64,228,238,14,64,0,2,16,0,128,4,0,65,78,8,168,7,182,144,18
63 data255,0,255,0,255,0,255,0,198,99,120,0,108,6,48,3,195,195,255,255,255,231
64 data195,195,-1,37,16,21,11,21,15,22,12,22,15,23,13,23,15,24,13,24,16,25,13
65 data25,17,26,14,26,18,27,15,27,16,28,16,52,15,39,15,41,17,28,17,54,18,28,18
66 data38,18,42,18,58,17,58,17,61,18,61,18,63,19,63,19,65,5,21,2,21,20,457,13
67 data457,13,135,1,135
68 rem ***** block 2 *****
69 data13,136,1,136,13,134,10,134,12,133,11,133,13,137,10,137,12,138,11
70 data138,3,223,1,223,6,224,1,224,20,225,1,225,16,226,4,226,14,227,7,227,20
71 data224,15,224,20,223,17,223,9,282,9,284,10,281,10,285,11,281,11,285,12,282
72 data12,284,1,311,1,313,9,312,2,312,9,313,2,313,9,314,2,314,20,311,16,311,20
73 data312,13,312,20,313,13,313,15,314,13,314,-1,242,10,311,10,315,12,311,12
74 data315,-1,42,20,423,1,423,20,424,1,424,15,439,3,439,15,455,3,455,3,440,3
75 data454,12,401,6,401,12,403,6,403,11,451,7,451,11,443,7,443,7,444,7,450,11
76 data444,11,450,-1,41,19,66,19,112,18,112,18,137,18,138,16,138,16,139
77 data16,147,18,148,16,148,4,229,1,229,4,227,4,228,6,399,1,399,6,405,1,405,8
78 data400,6,400,8,404,6,404,9,416,1,416,20,416,12,416,3,414,3,415,14,414,14
79 data415,18,411,8,411,10,408,10,410,14,39,5,39,3,39,1,39,7,41,2,41,7,42,7,43
80 data9,41,9,53,15,42,11,42,11,43,11,44,13,46,9,46,15
81 rem ***** block 3 *****
82 data48,11,48,13,50,9,50,15
83 data52,11,52,12,53,11,53,2,43,2,54,3,49,3,50,5,43,5,52,4,52,4,60,2,60,2,66,7
84 data45,7,57,6,54,6,60,3,56,2,56,16,58,16,59,15,54,15,58,14,55,9,55,8,58,8,61
85 data9,58,9,61,13,59,11,59,14,60,11,60,12,62,4,62,14,61,14,66,10,63,10,64,13
86 data64,12,64,17,70,13,70,14,71,13,71,18,72,14,72,15,73,14,73,12,73,1,73,6,72
87 data3,72,2,68,1,68,17,62,17,66,18,64,18,66,17,68,10,68,15,65,15,67,3,65,3,66
88 data4,64,4,69,8,70,2,70,9,71,8,71,11,69,11,72,13,66,9,66,8,64,8,69,6,64,6,68
89 data15,57,8,57,12,370,8,370,12,366,8,366,12,367,12,369,8,367,8,369,-1,42,12
90 data487,12,516,13,487,13,516,15,440,15,454,-1,43,20,382,1,383,20,383,1,383
91 data8,384,1,384,4,381,1,381,-1,29,40,486,1,486,40,518,1,518,1,486,1,518,19
92 data486,19,518,5,500,5,508,6,500,6,508,11,501,7,501,2,486,2,518,20,486
93 rem ***** block 4 *****
94 data20,518,10,500
95 data7,500,11,507,7,507,10,508,7,508,11,502,11,507,-1,37,3,509,3,516,4,509
96 data4,516,5,515,5,600,6,515,6,600,7,515,7,600,8,509,8,516,9,509,9,516,7,509
97 data5,509,9,510,5,510,-1,38,5,511,5,514,6,511,6,514,7,511,7,514,-3,0
98 data-1,41,0,54,3,43,3,47,14,61,15,63,2,60,7,53,-1,36,17,23,7,105,1,227,-1
99 data39,9,223,16,56,3,360,-1,31,8,447,-1,44,1,402,-1,41,7,283,12,283,6,64
100 data-1,34,3,39,12,73,2,43,4,64,6,65,19,66,11,67,14,71,10,311,8,402,13,56
101 data5,748,1,77,9,368,0,60,-1,30,7,504,-1,242,2,507,-1,194,3,507
102 data-2,0,4,102,10,102,2,160,7,160,12,160,17,160,4,200,17,200
103 data9,244,7,274,12,274,7,286,12,286,-2,0
104 data10,97,10,113,12,247,13,201,13,205,19,211,6,211,6,244,19,244,6,250,19
105 data250,12,241,12,253,6,283,19,283,-2,0
106 data169,4,141,37,64,141,40,64,162,1,142,36,64,142,42,64,202,142,39,64,142
107 data45,64,169,216,141,43,64,141                                         
108 rem ***** block 5 *****
109 data46,64,162,21,160,0,185,33,7,153,32,7,185
110 data33,219,153,32,219,200,192,39,208,239,202,208,5,169,0,76,200,64,173
111 data36,64,105,39,144,12,238,37,64,238,40,64,238,43,64,238,46,64,141,36
112 data64,141,42,64,141,39,64,141,45,64,206,45,64,206,39,64,76,33,64,169,3
113 data141,137,64,141,140,64,162,255,142,139,64,142,145,64,202,142,136,64
114 data142,142,64,169,215,141,143,64,141,146,64,162,21,160,40,185,30,7,153
115 data31,7,185,30,219,153,31,219,136,192,1,208,239,202,208,5,169,1,76,200
116 data64,173,136,64,105,39,144,12,238,137,64,238,140,64,238,143,64,238,146
117 data64,141,136,64,141,139,64,141,142,64,141,145,64,238,139,64,238,145,64
118 data76,133,64,240,5,169,0,76,209,64,169,39,141,223,64,169,4,141,224,64
119 data162,20,189,101,70,141,32,7,72,173,223,64,141,254,64,173,224,64,24,105
120 data212,141,255,64,104,201,37,208,5,169,14,76,253,64,169,13,141,248,218
121 data173,223,64,24,105,40,144,14,238,224,64,141,223,64,160,40,140
122 rem ***** block 6 *****
123 data5,65,76
124 data30,65,141,223,64,160,40,140,5,65,202,208,186,96,160,0,162,8,189,40
125 data49,140,15,3,42,234,109,15,3,157,40,49,202,208,239,96
126 :
127 :
128 :
129 ********************************
130 *        o d y s s e e         *
131 *                              *
132 *      w r i t t e n  b y      *
133 *                              *
134 * j a n  g e i s z e l m a n n *
135 *                              *
136 *          1 9 8 4             *
137 ********************************
138 *    josef-roemer strasse 17   *
139 *                              *
140 *   5060 bergisch gladbach 2   *
141 *                              *
142 *    telefon : 02202 / 53256   *
143 ********************************
Listing »World-Creater«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →