Raumschlacht auf dem VC 20
Kämpfen Sie sich durch einen Asteroidengürtel. Nur so können Sie mit Ihren fünf Raumschiffen überleben.
Asteroids ist ein typisches Action-Spiel in Maschinensprache. Der Spieler steuert ein Raumschiff in der Mitte des Spielfeldes, das sich um seine eigene Achse in alle Richtungen drehen läßt. Ihre Aufgabe ist es, zu verhindern, daß das Raumschiff durch herannahende Asteroiden zerstört wird. Es gilt nun, diese vorher durch Abschießen zu zerstören. Ab und zu verstecken sich auch Ufos unter den Asteroiden, deren Abschuß eine besonders hohe Punktzahl bringt. Am Anfang erscheinen nur einige große Asteroiden. Je besser der Spieler nun ist, desto mehr Asteroiden erscheinen – nun auch kleinere – und desto schneller wird das Spiel. Man hat fünf Raumschiffe zur Verfügung. Bei über 1000 Punkten gibt es Bonus-Raumschiffe. Ist ein Abschießen eines herannahenden Asteroiden nicht mehr möglich, kann mit der SPACE-Taste (Hyperspace) ein Raumsprung in die obere Bildschirmebene vollzogen werden (beziehungsweise wieder in die Position in der Bildschirmmitte). Dabei besteht jedoch das Risiko, daß Ihr Raumschiff zerstört wird. – Mit der Taste »F7« wird der Antrieb des Raumschiffes eingeschaltet. Er bewirkt, daß sich das Raumschiff langsam in die jeweilige Schußrichtung bewegt.
Eingabe des Programms:
Das Programm benötigt mindestens eine 8 KByte Erweiterung. Mit ihr wird das Programm wie folgt geladen:
Im Direktmodus bitte folgendes eingeben:
POKE 44,32:POKE 8192,0:NEW:POKE 648,30:SYS 58648.
Dann wird das Programm »Asteroids Loader« (Listing 1) eingetippt und gespeichert beziehungsweise geladen. Es enthält Prüfsummen, die auf einen Eingabefehler aufmerksam machen.
Jetzt wird mit dem Befehl RUN das Programm »Loader« gestartet. Wenn es dazu auffordert, ist NEW und <RETURN> einzugeben. Anschließend ist noch die Zeile
POKE 44,33:POKE 8448,0:NEW
erforderlich. Nun läßt sich das Hauptprogramm »Main Program« (Listing 2) eingeben und speichern, beziehungsweise von Kassette laden. Dieses startet man einfach mit RUN. Alles weitere wird im Programm erklärt.
Mit einer 16 KByte-Erweiterung ist vor dem Laden des Loader-Programms die Zeile:
POKE 44,33: POKE 8448,0:NEW:POKE 648,30: SYS 58648
einzugeben. Anschließend tippt man das Programm »Loader« ab und startet es mit RUN. Wenn das Programm dazu auffordert, gibt man NEW ein und lädt das Hauptprogramm ohne zusätzliche Befehle.
Durch Änderung des Wertes 70 in Zeile 12040 kann die Geschwindigkeit verändert werden (bis ...85). Wenn das Spiel nicht so schnell werden soll, kann dies geändert werden, indem im Hauptprogramm in Zeile 20010 der zweite Wert (3) erhöht wird, zum Beispiel auf 15.
(Claus Neupert/ah)1 rem **************************************
2 rem
3 rem >> asteroids << [data-loader]
4 rem
5 rem
6 rem 1985 by c. neupert
7 rem
8 rem
9 rem **************************************
10 dim h(75):for i=0 to 9
20 h(48+i)=i:h(65+i)=i+10:next i
30 for i=5420 to 7399: read a$
40 h=asc(left$(a$,1)):l=asc(right$(a$,1))
50 d=h(h)*16+h(l): s=s+d: poke i,d
60 a=a+1: if a<20 then next: a=-1
65 print "zeile ";1000+z;
70 read v: z=z+1:if v=s then 85
80 print" fehler !";999+z:stop
85 if a<0 then 100
90 s=0:a=0:print:next
100 print"{clr}{down}{down}geben sie jetzt 'new'":print"{down}ein und laden sie das":
110 print"{down}hauptprogramm !"
120 end
990 rem
991 rem decimal address 5420 to 7399
992 rem
1000 data ad,58,1d,d0,01,60,ce,42,1d,30,01,60,a9,19,8d,42,1d,20,52,17, 1608
1001 data a9,20,91,fb,ae,e4,03,bd,e6,03,20,da,1b,a5,fc,30,1d,c9,1e,30, 2474
1002 data 19,c9,20,10,15,b1,fb,8d,41,1d,ad,e4,03,91,fb,a5,fb,8d,dc,03, 2538
1003 data a5,fc,8d,dd,03,60,20,52,17,18,90,ea,da,1b,a5,fc,c9,1e,30,18, 2382
1004 data a5,c5,c9,3f,d0,03,8d,58,1d,c9,20,d0,04,8d,56,1d,60,ad,e2,03, 2294
1005 data 85,00,20,2c,1a,20,00,19,ad,56,1d,c9,02,d0,01,60,20,26,16,20, 1212
1006 data 52,17,b1,fb,c9,08,30,07,a9,03,8d,56,1d,60,ea,a4,fe,a2,96,ca, 2487
1007 data d0,fd,88,d0,f8,20,2c,15,ad,41,1d,c9,20,d0,e5,a4,00,c0,01,f0, 2684
1008 data 07,88,84,00,18,90,bf,ea,20,58,1b,20,44,16,20,26,16,18,90,9c, 1553
1009 data ae,df,03,d0,01,60,bd,3c,03,85,fb,bd,64,03,85,fc,a9,20,a0,00, 2379
1010 data 91,fb,bd,8c,03,20,37,1b,f0,0b,8e,f0,03,a0,00,8c,df,03,4c,e5, 2309
1011 data 18,4c,d8,18,a0,00,a9,15,91,fb,a5,fb,9d,3c,03,a5,fc,9d,64,03, 2399
1012 data ce,0b,90,60,90,60,8c,0b,90,31,ae,e3,03,f0,04,ce,e3,03,60,a2, 2383
1013 data 03,8e,e3,03,ad,0d,90,30,01,60,38,e9,04,8d,0d,90,60,ea,ea,ea, 2239
1014 data a9,f2,cd,0a,90,d0,06,a9,bf,8d,0a,90,60,8d,0a,90,60,8d,0a,90, 2421
1015 data 60,31,36,30,20,a5,fb,48,a5,fc,48,a2,20,a9,00,20,e8,1a,a2,1a, 2097
1016 data a9,16,20,e8,1a,a2,1a,a9,d4,20,e8,1a,a2,17,a9,17,20,e8,1a,a2, 2169
1017 data 17,a9,fe,20,e8,1a,a2,1a,a9,18,20,e8,1a,a2,17,a9,d2,20,e8,1a, 2261
1018 data a2,1a,a9,2c,20,e8,1a,a2,17,a9,d6,20,e8,1a,68,85,fc,68,85,fb, 2526
1019 data 60,ea,ea,ea,ea,38,e9,0c,aa,bd,4c,1d,20,da,1b,20,c7,1a,a5,fc, 2748
1020 data 30,39,c9,1e,30,35,a0,04,a2,00,86,01,20,5d,16,a9,9b,8d,0d,90, 1667
1021 data a9,0f,8d,38,1d,a2,dc,ca,d0,fd,c8,20,5d,16,ce,38,1d,d0,f2,a9, 2712
1022 data 20,85,01,a0,01,20,5d,16,a9,19,8d,0c,90,8d,0b,90,20,a8,02,60, 1559
1023 data c9,15,d0,06,a9,03,8d,56,1d,60,c9,0c,30,03,4c,ad,16,20,c7,1a, 1752
1024 data a5,fc,30,33,c9,1e,30,2f,a0,00,a9,17,91,fb,a9,02,20,f8,1a,a9, 2236
1025 data b7,8d,0d,90,a9,28,8d,38,1d,a2,ff,ca,d0,fd,ce,38,1d,d0,f6,a9, 2910
1026 data 46,20,a8,02,a9,01,20,f8,1a,a9,20,a0,00,91,fb,60,ad,f0,03,30, 2065
1027 data 08,cd,e2,03,10,03,4c,c0,17,60,ad,dc,03,85,fb,ad,dd,03,85,fc, 2410
1028 data a0,00,60,36,33,a0,00,8c,0c,90,8c,0b,90,4c,f8,16,ee,48,d1,8c, 2117
1029 data e8,e0,14,30,02,a2,00,60,ea,ea,e8,e0,03,30,02,a2,00,60,ea,ea, 2487
1030 data ee,4b,1d,ae,4b,1d,e0,05,30,03,18,90,1b,ee,fb,03,ae,fb,03,e0, 2239
1031 data 05,30,0b,a2,00,8e,fb,03,a9,0c,99,b4,03,60,a9,08,99,b4,03,60, 1844
1032 data 4c,c4,18,a2,00,8e,4b,1d,a9,15,99,b4,03,ad,f0,03,8d,df,03,60, 2109
1033 data 4c,8a,18,e0,04,30,02,a2,00,e8,8e,fa,03,e0,01,f0,35,e0,02,f0, 2289
1034 data 5e,e0,03,f0,03,4c,df,17,4c,60,18,ae,f4,03,20,70,17,8e,f4,03, 2059
1035 data bd,ce,1d,ac,f0,03,99,3c,03,a9,1f,99,64,03,ae,f8,03,20,7a,17, 2113
1036 data 8e,f8,03,bd,67,1d,18,90,25,ea,ae,f1,03,ac,f0,03,20,70,17,8e, 2295
1037 data f1,03,bd,6a,1d,99,3c,03,bd,7e,1d,99,64,03,ae,f5,03,20,7a,17, 1983
1038 data 8e,f5,03,bd,5e,1d,99,8c,03,4c,84,17,ea,ea,ea,ae,f2,03,ac,f0, 2762
1039 data 03,20,70,17,8e,f2,03,bd,92,1d,99,3c,03,a9,1e,99,64,03,ae,f6, 2012
1040 data 03,20,7a,17,8e,f6,03,bd,61,1d,99,8c,03,4c,84,17,ea,ea,ea,ea, 2349
1041 data ae,f3,03,ac,f0,03,20,70,17,8e,f3,03,bd,a6,1d,99,3c,03,bd,ba, 2365
1042 data 1d,99,64,03,ae,f7,03,20,7a,17,8e,f7,03,bd,64,1d,99,8c,03,4c, 1968
1043 data 84,17,ac,f0,03,10,01,60,ea,ee,e2,03,cc,e2,03,30,01,60,ce,e2, 2394
1044 data 03,ad,e2,03,c9,27,30,02,60,ea,ae,fa,03,4c,c3,17,8b,17,ad,98, 2233
1045 data 17,c9,05,10,03,ee,98,17,a5,fe,c9,03,10,01,60,c6,00,c6,00,60, 1889
1046 data ad,df,03,f0,08,a9,00,8d,4b,1d,4c,91,17,4c,af,17,ea,ea,ea,ea, 2515
1047 data ee,4a,1d,a9,17,cd,4a,1d,f0,03,4c,0c,16,a9,00,8d,4a,1d,8d,0b, 1759
1048 data 90,8e,f0,03,8d,df,03,4c,c0,17,ec,e2,03,30,01,60,4c,c0,17,0e, 2102
1049 data a6,00,bd,b4,03,c9,15,d0,03,4c,e0,15,c9,0c,f0,4a,c9,0b,f0,06, 2277
1050 data a8,c8,98,18,90,02,a9,08,9d,b4,03,bd,3c,03,85,fb,bd,64,03,85, 2268
1051 data fc,a0,00,a9,20,91,fb,bd,8c,03,20,37,1b,f0,06,8e,f0,03,4c,c0, 2354
1052 data 17,a6,00,bd,b4,03,a0,00,91,fb,a5,fb,9d,3c,03,a5,fc,9d,64,03, 2430
1053 data 60,ea,ea,ea,ea,ea,ea,ea,ea,ea,a9,00,8d,f9,03,bd,3c,03,85,fb, 3400
1054 data 85,01,bd,64,03,85,02,85,fc,20,1f,1b,a9,e9,20,1c,1b,a9,01,20, 1727
1055 data 1c,1b,a9,01,20,1c,1b,a9,16,20,1c,1b,a9,fe,20,1c,1b,a9,16,20, 1323
1056 data 1c,1b,a9,01,20,1c,1b,a9,01,20,1c,1b,a5,01,85,fb,a5,02,85,fc, 1671
1057 data bd,8c,03,20,da,1b,bd,8c,03,20,da,1b,a0,00,b1,fb,c9,20,f0,18, 2303
1058 data c9,08,30,14,ee,f9,03,ac,f9,03,c0,08,10,0a,b9,e6,03,9d,8c,03, 2135
1059 data 18,90,cd,ea,a5,01,85,fb,a5,02,85,fc,a6,00,bd,8c,03,20,37,1b, 2321
1060 data f0,06,20,46,1b,4c,c0,17,20,26,1b,a0,0f,a9,e9,20,f3,1b,a0,10, 1818
1061 data a9,01,20,f3,1b,a0,11,a9,01,20,f3,1b,a0,0d,a9,14,20,f3,1b,a0, 1945
1062 data 0e,a9,02,20,f3,1b,a0,14,a9,16,20,f3,1b,a0,13,a9,ff,20,f3,1b, 2065
1063 data a0,12,a9,ff,20,f3,1b,ea,ea,60,a9,00,ea,ea,ea,60,60,ea,ea,ea, 3233
1064 data ae,de,03,d0,01,60,ad,e0,03,85,fb,ad,e1,03,85,fc,a5,03,20,da, 2692
1065 data 1b,a5,fc,30,5f,c9,1e,30,5b,c9,20,10,57,ee,5d,1d,a2,0d,ec,5d, 2157
1066 data 1d,f0,4d,48,a5,fb,48,ad,e0,03,85,fb,ad,e1,03,85,fc,a0,00,b1, 2813
1067 data fb,c9,16,d0,04,a9,20,91,fb,91,fb,68,85,fb,68,85,fc,b1,fb,c9, 3285
1068 data 20,30,1b,ae,0c,90,ca,ca,ca,8e,0c,90,ce,0b,90,a9,16,91,fb,a5, 2454
1069 data fb,8d,e0,03,a5,fc,8d,e1,03,60,a0,00,8c,de,03,4c,61,17,ea,ea, 2690
1070 data a2,00,8e,0c,90,8e,0b,90,8e,de,03,ad,e0,03,85,fb,ad,e1,03,85, 2442
1071 data fc,a1,fb,c9,16,f0,01,60,a9,20,81,fb,60,ea,ea,ae,e2,03,bd,3c, 3021
1072 data 03,c5,fb,d0,07,bd,64,03,c5,fc,f0,06,ca,e0,00,d0,ed,e8,8e,f0, 3138
1073 data 03,4c,44,17,ea,ea,ea,ea,20,da,1b,a5,01,c9,20,f0,01,8a,a2,00, 2323
1074 data 81,fb,98,ea,a8,a5,fc,18,69,78,85,fc,98,a2,00,81,fb,a5,fc,38, 3152
1075 data e9,78,85,fc,60,a4,fe,a2,64,ca,10,fd,88,10,f8,4c,e0,15,ea,ea, 3174
1076 data 20,da,1b,a9,20,a0,00,91,fb,60,a5,fb,9d,3c,03,a5,fc,9d,64,03, 2443
1077 data a9,0c,18,90,1a,ea,ea,20,da,1b,a5,fc,30,08,c9,1e,30,04,c9,20, 2109
1078 data 30,06,a5,00,8d,f0,03,60,4c,22,1a,a0,00,91,fb,60,ea,ea,ea,ea, 2423
1079 data a5,c5,c9,21,f0,09,c9,22,f0,1b,c9,23,f0,3d,60,ae,e4,03,e0,00, 2609
1080 data f0,07,ca,8e,e4,03,18,90,1a,a2,07,8e,e4,03,18,90,12,ae,e4,03, 2149
1081 data e0,07,f0,04,e8,18,90,e7,a2,00,8e,e4,03,ea,ea,ad,dc,03,85,fb, 2889
1082 data ad,dd,03,85,fc,a2,00,ad,e4,03,81,fb,60,ea,ea,ae,de,03,e0,00, 2915
1083 data f0,01,60,e8,8e,de,03,ae,dc,03,8e,e0,03,ae,dd,03,8e,e1,03,ae, 2644
1084 data e4,03,bd,e6,03,85,03,a9,f5,8d,0c,90,a9,f2,8d,0b,90,a9,00,8d, 2517
1085 data 5d,1d,60,ce,cc,c1,cc,c4,8c,dd,30,0a,18,65,fb,85,fb,90,02,e6, 2776
1086 data fc,60,18,65,fb,85,fb,b0,02,c6,fc,60,ea,ea,ea,20,da,1b,98,a0, 3123
1087 data 00,91,fb,60,32,0b,73,17,00,10,28,44,82,82,fe,82,00,1e,22,42, 1589
1088 data a2,14,08,10,78,24,22,21,22,24,78,00,10,08,14,a2,42,22,1e,00, 955
1089 data 41,7f,41,41,22,14,08,00,08,10,28,45,42,44,78,00,00,0f,12,22, 838
1090 data 42,22,12,0f,00,78,44,42,45,28,10,08,20,50,88,87,41,22,44,38, 1126
1091 data 0c,52,a1,82,84,48,28,18,1c,22,44,82,e1,11,0a,04,18,14,12,21, 1264
1092 data 41,85,4a,30,c0,1f,22,24,12,09,90,49,48,25,14,22,42,44,28,48, 1266
1093 data 3c,02,e1,21,12,21,c1,06,00,03,07,04,08,31,46,88,70,93,0e,04, 1124
1094 data 60,90,09,64,e0,10,30,c0,80,80,40,80,44,64,12,0a,05,02,02,01, 1483
1095 data 04,09,33,c4,18,20,40,80,08,10,10,a0,40,00,00,00,18,18,24,3c, 916
1096 data 42,ff,e7,7e,00,00,00,30,30,00,00,00,e0,cc,0c,20,80,84,31,10, 1571
1097 data 01,00,64,60,08,02,8e,38,50,48,84,08,48,48,24,08,08,40,60,90, 1197
1098 data 60,0c,04,00,42,2c,41,35,2c,46,43,2c,33,30,2c,35,46,2c,43,39, 999
10 rem ************************
15 rem *
20 rem asteroids main program *
25 rem *
30 rem *
31 rem
32 rem 1985 by claus neupert *
33 rem humboldtstr. 44 *
34 rem 4600 dortmund 1 *
35 rem *
36 rem *
37 rem ************************
40 rem
50 rem poke 55,40:poke 56,21
60 rem poke 648,30:sys 58648
65 gosub 15000
70 gosub 10000
80 gosub 11000
90 gosub 12000
200 poke 6040,1:poke 6027,10:poke 7514,0:poke 7515,0
300 s1=36876:s2=36875:s3=36874:sn=36877:sl=36878:c=30720
310 ra=5:hs=0:ht=0
400 poke 994,38:for i=1 to 38:poke 1008,i:sys 6080:next:poke254,33:poke 994,5
500 poke 36878,15:poke 36879,8:poke 36869,255:print"{clr}{wht}":poke 988,253:poke 989,30:hs=1
505 poke 7510,0:poke 7512,0:poke 990,0:poke 991,0:poke 996,0
506 poke 7489,32:poke 197,64
510 poke peek(988)+256*peek(989),peek(996):
520 sys5500
530 if peek(7510)=3 then 700
540 if peek(7510)=2 then 800
550 if peek(7510)=32 then poke 7510,0:goto 1200
700 poke s1,0:pokes2,0:pokes3,0:m=peek(988)+256*peek(989)
703 pokesl,15:pokem,25:poke m+c,7:pokesn,128:::::forq=1to20:
704 pokesl,15-int(q/1.333):::::
705 for o=1to16:if o/2=int(o/2)then poke m+c,5:goto710
706 poke m+c,2
710 next:next:pokesn,0:pokesl,15:pokem+c,1:gosub2000:poke988,253:poke989,30
715 zs=peek(7514)+256*peek(7515):bs=int(zs/(1000*hs)):if bs>=1 then ra=ra+1:hs=hs*3
717 if ra>8 then ra=10
720 ra=ra-1:if ra=0 then 1500
725 for i=1 to ra:poke7704+i,0:next i:for j=1 to 800:next j
730 x=peek(994):poke994,38:fori=1to38:poke1008,i:sys6080:next:poke994,x:goto500
800 pokes1,0:pokes2,0:pokes3,0:po=peek(828+peek(991))+256*peek(868+peek(991))
805 pokepo,24:pokepo+c,7:pokesl,15:pokesn,200:forl=15to0step-1
810 pokesl,l:pokesn,150+3*l:::::
820 forlx=1to15:iflx/2=int(lx/2)thenpokepo+c,4:pokepo,24:goto830
825 pokepo+c,2:pokepo,26
830 nextlx:nextl:pokesn,0:pokesl,15:pokepo,32:pokepo+c,1
840 poke1008,peek(991):poke991,0:sys6080:sc=sc+250:goto505
1200 pf=1:hs=hs+1:ht=1:poke7512,0:ifhs/2=int(hs/2)then1250
1202 for n=7703 to 7745:if peek(n)=32 then 1210
1205 next
1210 po=peek(988)+256*peek(989):poke po,32:po=n:if rnd(1)<.30 then hs=0:goto700
1215 poke po,peek(996):ph=int(po/256):pl=po-ph*256
1216 poke 988,pl:poke 989,ph:goto 505
1250 po=peek(988)+256*peek(989):poke po,32:po=253+256*30:poke 988,253:poke 989,30
1260 ifpeek(po)=32 and rnd(1)<.75 then 1215
1270 goto 700
1500 poke36869,240:print"{clr}{down}{rght}{rght}{rght}{red}****************":printtab(3)"*"tab(18)"*"
1502 printtab(3)"*"tab(18)"*":printtab(3)"*"tab(18)"*"
1504 print"{rght}{rght}{rght}****************"
1505 print"{home}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{wht}game over"
1510 gosub4000
1550 print"{down}{down}{down}{down}{down}{yel}>> score: << {wht}"peek(7514)+256*peek(7515)+sc
1580 gosub2000
1590 print"{cyn}{down}{down}{down}{rght}{rght}{rght}{rght} {rght}again (y/n) ?"
1600 geta$:ifa$=""then1600
1610 ifa$="y"then90
1620 ifa$="n"thenend
1630 goto1600
2000 return
3000 rem
3010 ifi=1200thenpoke36874,0:poke36876,0:goto3110
3020 k=k+z:ifk=0ork=250thenz=-z
3030 k1=128ork2:k2=160ork:k3=128ork/2:k4=180ork3:k5=170ork1
3040 ifi<256ori>1200then3110
3050 ifi=1024thengosub3300:poke36878,10
3100 poke36874,k1:poke36876,k3:poke36874,k2:poke36876,k2:poke36874,k3:poke36876,k1
3110 poke36875,k4:poke36875,k5
3120 return
3300 return
4000 poke36878,15:fori=250to130step-2
4010 poke36876,i:poke36875,128ori:poke36874,240andi:next:poke36876,0
4020 poke36875,0:poke36874,0:poke36878,15:return
4999 stop
10000 print"{clr}":poke36879,8:poke36869,240:poke36878,15:z=1
10005 c$="{wht}{red}{cyn}{pur}{grn}{blu}{yel}"
10010 fori=1to20:printmid$(c$,int(rnd(1)*7)+1,1);"*";:next
10020 print:print:print:print"{wht}{rght}a s t e r o i d s"
10030 print:print:print
10040 fori=1to20:printmid$(c$,int(rnd(1)*7)+1,1);"*";:next:print
10050 print"{down}{down}{down}{down}{down}{wht}{rght}{rght}{rght}by c. neupert"
10060 print"{down}{down}{down}{down}{rght}{rght}{rght}{cyn}{rght}{rght}{rght}hit any key"
10070 geta$:ifa$=""thengosub3000:goto10070
10080 poke36876,0:poke36875,0:poke36874,0:return
11000 print"{clr}{down}{rght}{rght}{rght}{red}**asteroids**"
11010 print"{down}{down}{wht}z - rotate left"
11020 print"{down}c - rotate right"
11030 print"{down}b - fire":print"{down}{down}{rvon}space{rvof} - hyperspace"
11040 print"{down}{rvon}f7{rvof} - thrust"
11050 print"{down}{down}{down}{down}{rght}{rght}{rght}{rght}{cyn}hit any key"
11060 geta$:ifa$=""then11060
11070 return
12000 print"{clr}{down}{wht}choose:":print:print:print
12010 print"1 - slow":print:print"2 - medium"
12020 print:print"3 - fast"
12030 geta$:ifa$=""orval(a$)=0orval(a$)>3then12030
12040 k=(4-val(a$))*70:poke 5558,k:return
15000 restore:for i=0 to 59:read n:poke 680+i,n:next
15010 for i=0 to 19
15020 o=7680+int(rnd(1)*18)+2
15030 u=8164+int(rnd(1)*18)+2
15040 l=7724+int(rnd(1)*19)*22
15050 r=7745+int(rnd(1)*19)*22
15070 lh=int(l/256):ll=(l/256-lh)*256
15080 oh=int(o/256):ol=(o/256-oh)*256
15090 uh=int(u/256):ul=(u/256-uh)*256
15095 rh=int(r/256):rl=(r/256-rh)*256
15100 poke 7530+i,ll:poke 7550+i,lh:poke 7570+i,ol
15110 poke 7590+i,rl:poke 7610+i,rh: poke 7630+i,ul
15120 next i
15130 for i=0 to 2:read nu,nl,no,nr
15140 poke 7527+i,nu:poke 7518+i,nl: poke 7521+i,no:poke 7524+i,nr: next i
15150 for i=0 to 7:poke 1009+i,0:next: poke 1018,0:poke 1019,0
15160 for i=0 to 8:read n:poke 997+i,n:next i
15170 for i=0 to 9: read n: poke 7500+i,n:next i
15200 poke 7489,32:poke 7512,0:poke 1008,1:poke 7490,0:poke 7499,0:poke 7498,0
15300 for i=7168+32*8 to 7168+32*8+7:poke i,0:next i
15900 return
20000 data 24,109,90,29,141,90,29,176,1,96,238,91,29,165,254
20010 data 201,3,48,4,198,254,198,254,173,226,3,201,35,16,8
20020 data 201,35,240,4,238,226,3,234,173,152,23,201,5,240,13
20030 data 201,5,16,9,238,152,23,234,234,234,234,234,234,96,96
20040 rem
20050 data 235,235,21,255,234,1,22,233,233,23,23,21
20060 data 0,234,235,1,23,22,21,255,233
20070 data 0,1,255,23,22,21,235,234,233,0