ESCAPE
»Escape« für den VC 20 ohne Erweiterung ist ein Spiel in Maschinensprache zum Trainieren des Reaktionsvermögens des Spielers.

Sie müssen versuchen, Ihr Raumschiff möglichst lange vor einer Kollision mit fremden Raumschiffen, Planetoiden und anderen kosmischen Erscheinungen zu retten. Gespielt wird mit einem Joystick. Für den VC 20-Besitzer ohne Joystick kann das Maschinenprogramm leicht durch eine geringfügige Änderung des Programms umgeschrieben werden. Das Eintippen und Abspeichem aller sieben Teilprogramme muß exakt in der Reihenfolge Listing 1 bis 7 erfolgen. Nachdem alle Teilprogramme abgespeichert worden sind, geht man wie folgt vor:
-
Alle Programme bis auf das letzte einladen und starten
-
Falls über Tastatur gespielt werden soll, müssen nun folgende Adressen geändert werden:
POKE 6404,197 POKE 6405,0 POKE 6407,18 POKE 6421,197 POKE 6422,0 POKE 6424,17 POKE 6437,9 POKE 6450,26 POKE 6463,64
statt dem Joystick werden nun folgende Tasten abgefragt: A, W, D, X.
- Letztes Programm einladen und starten.
Für einen geübten Programmierer läßt sich dieses Programm leicht in nur zwei Teilen (Anleitung und Hauptprogramm) abspeichern (durch ändern der Vektoren 43/44, 45/46 und SAVE"Escape",1,3). Die Programmversion mit den sechs einzelnen Teilprogrammen wurde deshalb gewählt, damit auch ungeübte Programmierer dieses Programm ohne Schwierigkeiten eingeben können.
Da das Maschinenprogramm einen Basicschutz für »Escape-6« enthält, muß dieses »Escape-6« genau eingegeben werden (auch die REM-Zeilen!).
Aber nun viel Spaß beim Spielen. Übrigens beträgt die bisher höchste erreichte Punktzahl 4410. Schaffen Sie mehr?
(Michale Werner/ev)X | für FOR-NEXT-Schleifen |
A$ | Zeitschleife, rotierender Text, Bewertung, Ja/Nein-Abfragen |
B$ | rotierender Titel |
L | Länge von A$, Anzahl der verschiedenen Zeichen |
A | Länge von B$, zufällige Position |
D$ | obere Begrenzung des rotierenden Titels |
E$ | untere Begrenzung des rotierenden Titels |
C$ | für Anfangen (j/n) |
F | Zeitschleife, Anzahl, Hindernisse, Tonhöhe |
G | Position der vier Raumbasen |
M | jeweilige Zeichen |
N | jeweilige Zeichenfarbe |
F | Anzahl der zu setzenden Hindernisse |
36879 | Bildschirmfarbe 238 und 25 und 8 (normal 27) |
36881 | Bildschirmverschieben 155-38 (normal 38) |
56 | Basic-Speicher Ende verschieben 21 (normal 30) |
775 | Listschutz 213 (normal 199) |
788 | RUN/STOP-Taste ausschalten 194 (normal 191) |
37150 | RESTORE-Taste ausschalten 2 (normal 130) |
5380-5470 | Scrollen des Bildschirms nach oben |
5471-5561 | Scrollen des Bildschirms nach unten |
5562-5658 | Scrollen des Bildschirms nach rechts |
5659-5755 | Scrollen des Bildschirms nach links |
5756-6066 | Bewegung der Raumschiffe |
6067-6097 | Punktewertung |
6098-6161 | Setzen neuer Raumschiffe |
6162-6192 | Basicprogrammschutz |
6193-6272 | Explosion und Herabziehen des Bildschirms |
6273-6300 | Bewegung der Hindernisse |
6301-6519 | Abfrage d. Joysticks u. Steuerung d. Unterprogramme |
6520-6546 | Rotieren des Triebwerkringes |
Speicherplatz des Basicprogramms:
4097-7307 | Basicprogramm zur Punktwertung und Setzen des Bildschirminhaltes zum Spiel |
Speicherplatz der benötigtem Sonderzeichen:
7176-7307 | definierte Zeichen für Spiel: |
Benutzte indirekte Adressenspeicher für Maschinensprache:
0-3 | 97-100 |
Speicher für Maschinensprache-»Variablen«:
826-847 | Zwischenspeicher für Zeichen beim Bildschirmscrollen |
848-869 | Farbzwischenspeicher für Farbe der Zeichen beim Bildschirmscrollen |
870 | augenblickliches Zeichen zur Bewegung der Raumschiffe |
871 | neue Flugrichtung der Raumschiffe (1-8) |
872 | verloren? wenn Inhalt 872 = 1, dann Rücksprung ins Basic |
873,874,875 | Punktezähler |
876,877 | Taktzahl für das Setzen neuer Raumschiffe |
878 | Triebwerkring rotieren (1-4) |
10 print"{clr}{blk}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}anleitung (j/n)?" 11 geta$:ifa$="j"thena=1:goto20 12 ifa$="n"then20 13 goto11 20 print"{down}{down}{down}{down}{rght}{rght}{rght}{rght}{red}copyright by{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}michael werner{down}{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}1983" 21 forx=1to3000:next 24 ifa=0then55 25 print"{clr}{blu}{rght}{down}sie haben sich durch {down}{rght}{rght}einen fehler ihres " 26 print"{pur}{down}{rght}hyperraumtriebwerkes{blu}{down}{rght}{rght}mit ihrem raumschiff" 28 print"{down}{rght}{rght}in einem verkehrs-{rght}{rght}{rght}{rght}{down}reichen sektor der{down}{rght}{rght}{rght}{rght}{rght}galaxis verirrt." 30 print"{down}dieser sektor wird von{rght}{rght}{rght}{down}einer unterent-{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}wickelten rasse" 31 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}{rght}{red}{rvon}space{rvof}":wait197,32 33 print"{clr}{blu}{down}{rght}bevoelkert." 34 print"{down}{rght}deren raumschiffe{down}{rght}{rght}{rght}{rght}{rght}werden mit veralteten{down}{rght}{rght}{rght}{pur}atomtriebwerken" 35 print"{down}{blu}betrieben. also hueten{down}{rght}{rght}sie sich davor mit{down}{rght}{rght}{rght}diesen fremden raum-" 36 print"{down}{rght}schiffen zusammenzu-{down}{rght}{rght}stossen!" 37 print"{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{red}{rvon}shift{rvof}{blu}":wait654,1 40 print"{clr}{down}{rght}{rght}{rght}sie steuern ihr{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}raumschiff mit {down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{pur}joy-stick{blu}." 41 print"{down}{rght}versuchen sie moeg-{down}{rght}{rght}{rght}{rght}lichst lange durch {down}{rght}gekonnte manoever den" 42 print"{down}{rght}fremden raumschiffen {down}{rght}auszuweichen. passen{down}{rght}{rght}sie hierbei auch auf" 43 print"{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{pur}{rvon}return{rvof}{blu}":wait197,15 45 print"{clr}{down}{rght}die sich staendig{down}{rght}{rght}{rght}{rght}veraendernden hinder-{down}{rght}{rght}nisse (manchmal fast" 46 print"{down}{rght}unsichtbar) auf.{down}{rght}{rght}{rght}{rght}{rght}{rght}ausserdem koennen sie{down}{rght}{rght}{pur}nicht{blu} ueber den" 47 print"{down}{rght}weltraummuell,ueber{down}{rght}{rght}die planeten und ueber{down}{rght}die basen der fremden" 48 print"{rght}rasse hinwegfliegen!" 49 print"{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{red}{rvon}space{rvof}{blu}":wait197,32 50 print"{clr}{down}{rght}also,{pur}captain{blu},ver-{rght}{rght}{rght}{rght}{down}suchen sie ihr glueck!{down}{red}aber achtung:{blu}" 51 print"{down}solange sie sich {red}nicht{blu}{down} bewegen,bekommen sie{down}{rght}{rght}{rght}auch {red}keine{blu} punkte!" 55 print"{down}{rght}{rght}{rght}{rght}{grn}nun bitte die {down}{rght}{rght}{rght}{rght}{rght}{rght}folgenden 6 kurz-" 56 print"{down}{rght}programme einladen {down}{rght}{rght}{rght}{rght}und auch {blk}starten{blu}!!{up}{left}":new
0 print"{clr}" 1 clr:poke56,21:forx=0to511:poke7168+x,peek(32768+x):next:forx=0to131:reada 2 poke7176+x,a:next 3 data0,48,121,251,174,251,121,48,240,184,248,232,120,4,3,2,56,108,254,238,124,16,56,108 4 data15,29,31,23,30,32,192,64,12,158,223,117,223,158,12,0,64,192,32,30,23,31,29,15 5 data54,28,8,62,119,127,54,28,2,3,4,120,232,248,184,240,60,126,255,153,255,126,189,129 6 data136,73,43,31,255,19,246,124,17,146,212,248,255,200,111,62,58,31,21,250,31,43,73 7 data136,92,248,168,95,248,212,146,17,16,20,88,63,252,26,40,8,0,78,124,48,26,30,12,0 8 data44,2,40,128,66,16,5,144,153,51,102,204 9 forx=5380to5561:reada:pokex,a:next 10 data162,0,189,0,30,157,58,3,189,0,150,157,80,3,232,224,22,208,239,160,24,169,32,145 11 data0,162,0,189,22,30,157,0,30,189,22,150,157,0,150,232,224,255,208,239,169,9,145,0 12 data169,0,145,2,162,0,189,21,31,157,255,30,189,21,151,157,255,150,232,224,251,208,239 13 data162,0,189,58,3,157,228,31,189,80,3,157,228,151,232,224,22,208,239,96 14 data162,0,189,228,31,157,58,3,189,228,151,157,80,3,232,224,22,208,239,160,24,169,32 15 data145,0,162,255,189,228,30,157,250,30,189,228,150,157,250,150,202,224,0,208,239 16 data169,9,145,0,169,0,145,2,162,229,189,255,29,157,21,30,189,255,149,157,21,150,202 17 data224,0,208,239,162,0,189,58,3,157,0,30,189,80,3,157,0,150,232,224,22,208,239,96
0 print"{clr}{down}{down}{rght}{down}{down}{down}{down}{down}{down}{down}{down}{red}{rght}{rght}{rght}bitte warten!!" 1 poke56,21:forx=5562to5870:reada:pokex,a:next 2 data169,0,133,97,133,99,169,30,133,98,169,150,133,100,162,0,160,24,169,32,145,0,160,21 3 data177,97,141,58,3,177,99,141,80,3,136,177,97,200,145,97,136,177,99,200,145,99,136 4 data192,0,208,239,173,58,3,145,97,173,80,3,145,99,160,24,169,9,145,0,169,0,145,2,165 5 data97,24,105,22,144,4,230,98,230,100,133,97,165,99,24,105,22,133,99,232,224,23,208 6 data176,96,169,0,133,97,133,99,169,30,133,98,169,150,133,100,162,0,160,24,169,32,145 7 data0,160,0,177,97,141,58,3,177,99,141,80,3,200,177,97,136,145,97,200,177,99,136,145 8 data99,200,192,21,208,239,173,58,3,145,97,173,80,3,145,99,160,24,169,9,145,0,169,0,145 9 data2,165,97,24,105,22,144,4,230,98,230,100,133,97,165,99,24,105,22,133,99,232,224,23 10 data208,176,96,169,255,133,97,133,99,169,29,133,98,169,149,133,100,162,0,160,1,177 11 data97,201,5,16,4,105,4,145,97,200,232,224,23,208,240,160,24,177,97,201,1,208,7,141 12 data102,3,160,23,208,31,201,2,208,7,141,102,3,160,1,208,20,201,3,208,7,141,102,3,160 13 data2,208,9,201,4,208,8,141,102,3,160,3,32,103,23,165,97,24,105,1,144,4,230,98,230 14 data100,133,97,165,99,24,105,1,133,99,165,97,201,226,208,181,165,98,201,31,208,175
0 print"{clr}{down}{down}{rght}{rght}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{red}bitte warten!!" 1 poke56,21:forx=5871to6161:reada:pokex,a:next 2 data169,202,133,97,133,99,169,31,133,98,169,151,133,100,162,0,160,23,177,97,201,9,16,8 3 data201,5,48,4,233,4,145,97,200,232,224,23,208,236,160,24,177,97,201,5,208,7,141,102,3 4 data160,25,208,31,201,6,208,7,141,102,3,160,47,208,20,201,7,208,7,141,102,3,160,46,208 5 data9,201,8,208,8,141,102,3,160,45,32,103,23,165,97,56,233,1,176,4,198,98,198,100,133 6 data97,165,99,56,233,1,133,99,165,97,201,231,208,181,165,98,201,29,208,175,96,174,103 7 data3,224,8,240,5,238,103,3,208,5,162,1,142,103,3,177,97,201,32,208,16,173,102,3,145 8 data97,169,2,145,99,160,24,169,32,145,97,96,201,9,208,8,169,1,141,104,3,24,144,243,201 9 data14,240,13,201,15,240,9,201,16,240,5,201,9,48,1,96,160,24,173,103,3,145,97,96 10 data173,105,3,24,105,3,144,3,238,106,3,141,105,3,173,106,3,201,255,240,1,96,169,0,141 11 data106,3,238,107,3,96,169,100,133,97,133,99,169,30,133,98,169,150,133,100,173,108,3 12 data24,105,1,144,3,238,109,3,141,108,3,173,108,3,201,50,240,1,96,172,36,145,177,97 13 data201,32,240,1,96,173,103,3,145,97,169,2,145,99,169,0,141,108,3,141,109,3,96
0 print"{clr}{red}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}bitte warten!!" 1 poke56,21:forx=6162to6371:reada:pokex,a:next 2 data173,100,20,201,0,240,3,76,34,253,173,101,20,201,0,240,3,24,144,243,173,102,20,201 3 data0,240,3,24,144,233,96,162,0,160,0,173,36,145,141,15,144,173,36,145,141,12,144,201 4 data128,48,246,200,192,255,208,235,232,224,150,208,228,162,191,142,20,3,169,238,141 5 data15,144,169,0,133,161,165,161,201,1,208,250,169,38,141,17,144,24,105,1,201,180,208 6 data1,96,162,0,160,0,200,192,255,208,251,232,224,10,208,244,24,144,228 7 data234,234,234,110,128,28,46,129,28,110,130,28,46,131,28,110,132,28,46,133,28,110,134 8 data28,46,135,28,96,169,0,141,104,3,141,105,3,141,106,3,141,107,3,141,108,3,141,109,3 9 data169,238,141,15,144,169,15,141,14,144,169,194,141,20,3,169,2,141,30,145,169,21 10 data133,56,169,1,141,110,3,169,1,141,103,3,169,229,133,0,133,2,169,30,133,1,169 11 data150,133,3,32,18,24
0 print"{clr}{red}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}bitte warten!!" 1 poke56,21:forx=6372to6546:reada:pokex,a:next:poke775,213 2 data32,179,23,32,124,22,32,210,23,32,129,24,32,120,25,173,104,3,201,1,208,4,32,49,24 3 data96,169,127,141,34,145,173,32,145,201,119,208,5,160,25,76,66,25,169,255,141,34,145 4 data173,31,145,201,110,208,5,160,23,76,66,25,201,46,240,247,201,122,208,5,160,2,76 5 data66,25,201,58,240,247,201,118,208,5,160,46,76,66,25,201,54,240,247,201,24,240,165 6 data177,0,201,32,240,7,201,9,176,155,76,250,24,169,255,141,12,144,192,23,208,3,32,186 7 data21,192,2,208,3,32,95,21,192,46,208,3,32,4,21,192,25,208,3,32,27,22,169,0,141,12 8 data144,76,228,24,174,110,3,224,4,240,5,238,110,3,208,5,162,1,142,110,3,174,110,3,189 9 data135,28,141,75,28,96
0 print"{clr}":poke36879,8:a$=" von michael werner ":l=20:b$=" * escape * ":a=18:f=50 1 poke56,21:restore:d$="{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}":e$="{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}" 2 a$=right$(a$,1)+left$(a$,l-1):b$=right$(b$,a-1)+left$(b$,1) 3 print"{wht}{home}";a$;left$(a$,2):print"{yel}{down}{down}{down}";d$;b$;left$(b$,4);e$ 4 print"{red}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}anfangen(j)?":getc$:ifc$="j"then7 5 print"{wht}{down}{down}{down}{down}{down}{down}{down}";a$;left$(a$,2):forx=1tof:next:f=f-1:goto2 7 print"{clr}":poke36869,255:poke36878,15:poke36879,238:poke7933,9:poke38653,0 8 readg:ifg>0thenpoke30720+g,0:poke30721+g,0:poke30742+g,0:poke30743+g,0 9 ifg>0thenpokeg,10:pokeg+1,11:pokeg+22,12:pokeg+23,13:goto8 10 f=0:l=0:m=14:n=7:data7721,7815,7962,8064,0,16,1,15,4 11 a=int(rnd(1)*506)+7680:ifpeek(a)<>32then11 12 pokea,m:pokea+30720,n:f=f+1:iff<5then11 13 l=l+1:ifl<3thenreadm:readn:f=0:goto11 14 sys6301:poke788,194:poke36869,240 15 f=peek(873)+256*peek(874)+4096*peek(875):iff>2200thena$="sogar":goto20 16 iff>1600thena$="unerwartet":goto20 17 iff>1000thena$="muehevoll":goto20 18 iff<500thena$="nur":goto20 19 a$="gerade" 20 poke36879,25:print"{clr}{grn}{down}{down}{down}{down}sie konnten ";a$ 21 print"{red}{down}{down}{rght}";f;"{grn}{left}{left}{down}{left}{left}{down}{down}punkte erreichen!!" 22 print"{down}{down}{down}{pur}trauen sie sich noch ?{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{blk}(j/n)" 23 f=128:forg=155to38step-1:f=f+1:poke36876,f:poke36881,g:next 24 poke36876,0:geta$:ifa$="j"thenrun 25 ifa$="n"thenpoke788,34 26 goto24 27 rem m. werner 28 rem paradeis 38 29 rem 8120 weilheim
