rem ---  magic blocks  ---
rem written by roland kunz
rem     (c)2018 rksoft

0 poke56,191:clr:gosub2000:gosub90:vol8
1 li=0:gosub1000:sc=0:li=4:ro=1
2 di=0:gosub100:a=m:c=m:u=0:p=0:ti$="000000":i=.:ifco=1then19:else21

rem --- time ---
3 u=ti:bo=bo-m:on-(bo<1)goS4:?h$tab(19);:?using"###";bo:return

rem --- collision: blocks & door & spikes ---
4 i=-(n*(p=79orbo<m)orm*(p=75)):a=m:char,x,y,p$(r+m):return

rem --- collision: 1up ---
5 sound1,1000,4:li=li-(li<99):?chr$(19)chr$(5)tab(7);:?using"##";li:return

rem --- collision: diamonds & key ---
6 di=di-(p<>27):sc=sc-150*(p=27):sO1,1000,4:on-(p=27)goS23:reT

rem --- rechts ---
7 on-(r<>.)goto24:p=peek(v+x+n+y*z):on-(p>dandp<e)gO4:on-((p=27orp=35)orn*(p=58))goS6,5
8 x=x+n:a=3-a:char,x-n,y,c$+p$(r+a):sound1,10,2:return

rem --- links ---
9 on-(r<>3)goto25:p=peek(v+x-n+y*z):on-(p>dandp<e)gO4:on-((p=27orp=35)orn*(p=58))goS6,5
10 a=3-a:x=x-n:char,x,y,p$(r+a)+chr$(145)+c$:sound1,10,2:return

rem --- jump ---
11 p=pE(v+x+y*z-z2):on-((p>dandp<e)ory<4)gO4:y=y-n:on-((p=27orp=35)orn*(p=58))goS6,5
12 char,x,y,p$(r+2)+u$+c$:sO1,400,2:on-(s<.)goto9:goto7

rem --- falling ---
13 j=.:dowhilej<m:p=peek(v+x+y*z+z2):j=-(y>22orp>d):y=y-n*(j<m):sO1,400-j*10,2
14 on-((p=27orp=35)orn*(p=58))goS6,5:char,x,y-n,c$+chr$(17)+u$+p$(r+2):loop:gO4

rem --- create magicstone ---
15 p=pE(v+x+(s*n)+y*z):on-(p<>39andp<>71)gO4:on-(p=39)gO17:chA,x,y,p$(r+3):mb=mb-(mb<99)
16 chA,x+(s*n),y,s$(1):fOj=7to0step-3:sO3,j*100,3:nEj:chA,x+(s*n),y,c$:goS94:return
17 on-(mb<m)gO4:char,x,y,p$(r+3):char,x+(s*n),y,s$(1):forj=0to7step3:sO3,j*100,3:nEj
18 char,x+(s*n),y,s$(2):mb=mb+(mb>.):gosub94:return

rem --- game loop (joystick) ---
19 dowhilei<m:onj(joy(1)and127)goS4,7,9,11:on-(joy(1)>127andy>2)goS15:p=pE(v+x+y*z+z2)
20 on-((p<d orp>e)andy<23andi<m)goS13:on-(u<ti-60)goS3:loop:on-(i>m)goto40:goto60

rem --- game loop (keyboard) ---
21 dowhilei<m:onk(peek(198))goS4,7,9,11:on-(peek(1347)=nandy>2)goS15:p=pE(v+x+y*z+z2)
22 on-((p<d orp>e)andy<23andi<m)goS13:on-(u<ti-60)goS3:loop:on-(i>m)goto40:goto60

rem --- show door ---
23 sound3,400,8:char,x1,y1,e$:?h$;:?using"   ######";sc:return

rem --- rotate player to right ---
24 forj=0to5:char,x,y,p$(7):next:char,x,y,p$(1):a=m:r=0:s=m:return

rem --- rotate player to left ---
25 forj=0to5:char,x,y,p$(7):next:char,x,y,p$(4):a=m:r=3:s=-m:return

rem --- killed ---
40 gosub80:on-(peek(v+x+y*z+z)<d)gosub13:char,x,y,p$(9):fori=0to400:next
41 char,x,y,p$(10):li=li-1:on-(li<0)goto50:gosub92
42 ifbo<1thenfori=0to7:color1,2,i:char,15,10,"life  out!":next
43 forj=0to500:next:goto2

rem --- game over ---
50 fori=1to7:color1,2,i:char,15,12,"game  over":next:ifhi<scthenhi=sc:gosub93
51 fori=0to1000:next:goto1

rem --- complete room ---
60 char,x,y,c$:x=x1:y=y1:gosub80:char,x,y,p$(7):fori=0to100:nexti
61 gosub95:fori=0to7:color1,5,i:char,15,6,"well done!":next
62 fori=0to7:color1,8,i:char,6,8,"----------------------------":next
63 fori=0to7:color1,4,i:char,10,10,"":?using"   bonus - ### * 10";bo:next
64 fori=0to7:color1,7,i:char,10,12,"":?using"diamonds -  ## * 50";di:next
65 fori=0to7:color1,6,i:char,10,14,"":?using"  blocks -  ## * 100";mb:next
66 fori=0to7:color1,8,i:char,6,16,"----------------------------":next
67 t=bo*10+di*50+mb*100:fori=0to7:color1,2,i:char,28,18,"":?using"######";t:next
68 dowhilet>999:t=t-1000:sc=sc-1000*(sc<999999):gosub72:loop
69 dowhilet>99:t=t-100:sc=sc-100*(sc<999999):gosub72:loop
70 dowhilet>9:t=t-10:sc=sc-10*(sc<999999):gosub72:loop
71 dowhilet>0:t=t-1:sc=sc-1*(sc<999999):gosub72:loop:fori=.to1500:nexti:ro=ro+1:goto2
72 sound1,800,2:sound2,840,2:sound1,820,2:sound2,860,2:?h$;:?using"   ######";sc
73 char,28,18,"":?using"######";t:return

rem --- rotate wizard ---
80 fori=0to2:char,x,y,p$(1):forj=0to30:nextj:char,x,y,p$(8)
81 forj=0to30:nextj:char,x,y,p$(4):forj=0to30:nextj:char,x,y,p$(7)
82 forj=0to30:nextj,i:return

rem --- hud ---
90 ?chr$(147):fori=0to4:char,3,3+i*4,t2$:?tab(35)t2$;:next:char,3,23,t$:?tab(35)t$;
91 color1,8,7:?chr$(19)tab(3)"1up"tab(18)"bonus  room     top"
92 ?chr$(19)chr$(5)tab(6);:?using"*##";li
93 ?h$;:?using"   ######    *##   ###    ##   ######";sc,mb,bo,ro,hi
94 ?chr$(19)tab(11)s$(2):?h$;tab(13);:?using"*##";mb:return
95 fori=0to21:char,5,3+i,"                              ":next:return

rem --- init screen ---
100 pO65286,0:?chr$(19)chr$(154):fOi=0to21:chA,5,3+i,"''''''''''''''''''''''''''''''":nE
101 ifro>16thenro=1
102 onrogoS110,117,122,127,134,141,146,151,157,162,167,173,179,185,190,197
103 ifhi<scthenhi=sc
104 r=-3*(x>20):s=(x>20)or-(x<21):a=m:char,x,y,p$(r+m):gosub92:poke65286,27:return

rem --- screen 1 ---
110 char,0,3,"":?tab(5)t$t$t$t$t$c$c$up$c$c$t$t$t$t$t$:?:?tab(5)t$d$d$d$s$(2);
111 ?c$d$d$d$c$s$(2)d$d$d$t$:?:?tab(5)t$d$d$d$s$(2)c$d$d$d$c$s$(2)d$d$d$t$:?:?tab(5);
112 ?t$t$t$t$t$tab(25)t$t$t$t$t$:?:?tab(5)t$c$c$c$t$t$t$c$s$(2)t$t$c$c$c$t$:?:?tab(5);
113 ?t$c$c$c$s$(2)c$c$s$(2)c$c$s$(2)c$k$c$t$:?:?tab(5)t$c$c$c$t$t$t$t$t$t$t$c$c$c$t$:?
114 ?tab(5)t$t$t$t$t$t$c$c$c$t$t$s$(2)c$t$t$:?:?tab(5)t$t$t$c$c$t$c$c$c$t$c$c$t$t$t$:?
115 ?tab(5)t$t$t$t$tab(27)t$t$t$t$:?:?tab(5);:fori=0to14:?t$;:next
116 bo=199:x=9:y=15:x1=19:y1=19:mb=0:color3,3,3:return

rem --- screen 2 ---
117 char,0,7,"":?tab(7)d$d$c$c$t$t$t$t$t$c$c$d$d$:?
118 ?tab(7)d$d$c$c$s$(2)d$d$d$s$(2)c$c$d$d$:?:?tab(7)d$d$c$c$t$t$t$t$t$c$c$d$d$:?
119 ?tab(17)t$t$t$:?:?:?:?tab(11)t$t$t$c$c$c$t$t$t$:?
120 ?tab(11)s$(2)c$s$(2)s$(2)s$(2)s$(2)s$(2)k$s$(2):?:?tab(11)t$t$t$c$d$c$t$t$t$:?
121 ?tab(11)d$d$d$c$c$c$d$d$d$;:bo=199:x=13:y=19:x1=19:y1=3:mb=0:color3,3,2:return

rem --- screen 3 ---
122 char,0,5,"":?tab(7)d$d$tab(19)up$tab(31)k$:?:?tab(7)t$t$d$d$tab(25)d$d$s$(2)s$(2):?
123 ?tab(7)d$d$t$t$d$tab(23)d$s$(2)s$(2)d$d$:?:?tab(15)t$t$c$s$(2)s$(2):?:?:?
124 ?tab(15)s$(2)s$(2)s$(2)t$t$:?:?tab(11)s$(2)s$(2)s$(2)s$(2)s$(2)s$(2)s$(2)t$t$:?
125 ?tab(7)s$(2)s$(2)d$c$c$d$d$d$c$c$d$t$t$:?:?tab(7)d$d$c$c$c$d$d$d$c$c$c$d$d$;
126 bo=199:x=7:y=17:x1=31:y1=17:mb=0:color3,3,1:return

rem --- screen 4 ---
127 char,0,3,"":?tab(7)d$d$d$d$d$c$s$(2)s$(2)s$(2)c$c$d$:?
128 ?tab(7)d$d$d$d$d$c$t$s$(2)t$c$d$t$d$:?:?tab(19)t$t$t$:?
129 ?tab(5)t$t$t$t$t$t$t$t$t$t$t$t$t$c$s$(2):?:?tab(5)t$t$t$t$tab(27)t$t$t$:?
130 ?tab(9)s$(2)s$(2)tab(27)t$:?:?tab(7)d$t$t$tab(27)t$c$t$t$:?:?tab(7);
131 ?d$d$d$t$t$t$t$t$t$t$c$c$m$m$:?:?tab(11)d$s$(2)s$(2)s$(2)s$(2)s$(2)s$(2)s$(2)
132 ?:?tab(13)s$(2)s$(2)s$(2)s$(2)s$(2)s$(2)s$(2)c$c$c$k$:?
133 ?tab(5)t$t$m$m$t$t$t$t$t$t$t$t$t$t$t$;:bo=119:x=5:y=7:x1=25:y1=13:mb=2:coL3,4,3:reT

rem --- screen 5 ---
134 char,5,3,"":fori=0to14:?m$;:next:?:?:?:?:?tab(7)t$s$(2)s$(2)s$(2)s$(2)s$(2)t$;
135 ?s$(2)s$(2)s$(2)s$(2)s$(2)t$:?:?tab(7)s$(2)c$d$d$d$c$s$(2)c$d$d$d$c$s$(2):?
136 ?tab(7)s$(2)c$t$s$(2)t$c$s$(2)c$t$s$(2)t$c$s$(2):?:?tab(7)s$(2)c$s$(2)k$s$(2)c$;
137 ?s$(2)c$s$(2)c$s$(2)c$s$(2):?:?tab(7)s$(2)c$t$s$(2)t$c$s$(2)c$t$s$(2)t$c$s$(2):?
138 ?tab(7)s$(2)c$d$d$d$c$s$(2)c$d$d$d$c$s$(2):?:?tab(7)t$s$(2)s$(2)s$(2)s$(2)s$(2)t$;
139 ?s$(2)s$(2)s$(2)s$(2)s$(2)t$:?:?:?:?tab(5);:fori=0to14:?m$;:next
140 bo=139:x=9:y=17:x1=25:y1=13:mb=0:color3,4,2:return

rem --- screen 6 ---
141 char,5,3,"":fori=0to14:?m$;:next:?:?:?tab(7)d$d$d$c$c$d$d$d$c$c$d$d$d$:?
142 ?tab(7)d$d$d$c$c$d$d$d$c$c$d$d$d$:?:?:?:?tab(9)t$c$c$c$s$(2)s$(2)s$(2)c$c$c$t$:?
143 ?tab(13)t$t$s$(2)c$s$(2)t$t$:?:?tab(13)t$d$d$k$d$d$t$:?:?tab(13)t$t$t$t$t$t$t$:?
144 ?tab(9)t$tab(29)t$:?:?tab(13)t$t$c$s$(2)c$t$t$;:bo=139:x=9:y=17:x1=29:y1=17:mb=4
145 color3,4,1:return

rem --- screen 7 ---
146 char,0,3,"":?tab(27)d$d$d$:?:?tab(27)d$up$d$:?:?tab(27)d$d$d$:?
147 ?tab(9)t$t$t$t$t$:?:?tab(9)s$(2)s$(2)s$(2)c$t$m$:?:?tab(9)t$t$t$c$c$t$t$:?
148 ?tab(15)t$k$c$c$t$:?:?tab(5)t$t$t$t$c$c$t$t$c$c$t$:?:?tab(19)t$t$c$s$(2):?
149 ?tab(21)t$t$t$:?:?tab(25)t$;:bo=99:x=7:y=23:x1=31:y1=21:mb=7
150 color3,5,3:return

rem --- screen 8 ---
151 char,5,3,"":?d$d$d$tab(19)m$tab(29)d$d$d$:?:?tab(5)d$t$d$tab(29)d$t$d$:?
152 ?tab(5)d$d$d$c$c$t$c$c$c$t$c$c$d$d$d$:?:?tab(15)t$c$c$c$t$:?:?tab(13)t$m$c$d$c$m$t$
153 ?:?tab(13)t$c$d$d$d$c$t$:?:?tab(5)t$s$(2)c$t$m$d$d$d$d$d$m$t$c$s$(2)t$:?
154 ?tab(11)t$c$c$d$d$d$c$c$t$:?:?tab(7)s$(2)s$(2)t$c$c$d$d$d$c$c$t$s$(2)s$(2):?
155 ?tab(5)s$(2)s$(2)c$t$tab(27)t$c$s$(2)s$(2):?:?tab(7)s$(2)s$(2)t$tab(27)t$s$(2)s$(2);
156 ?k$;:bo=129:x=19:y=23:x1=5:y1=23:mb=10:color3,5,2:return

rem --- screen 9 ---
157 char,21,5,"":?m$c$c$t$t$t$:?:?tab(21)s$(2)tab(33)k$:?:?tab(17)m$c$c$t$t$:?
158 ?tab(17)s$(2):?:?tab(13)m$c$c$t$t$c$c$c$d$d$:?:?tab(13)s$(2)tab(27)d$d$d$:?
159 ?tab(15)t$t$c$c$c$d$d$d$d$:?:?tab(5)s$(2)s$(2)tab(23)d$d$d$d$d$:?
160 ?tab(7)s$(2)c$t$t$c$c$c$d$d$d$d$d$d$:?:?tab(5)s$(2)s$(2);
161 bo=119:x=19:y=23:x1=5:y1=21:mb=0:color3,5,1:return

rem --- screen 10 ---
162 char,5,5,"":?d$d$d$:?:?tab(5)d$d$d$tab(29)m$:?:?tab(5)t$t$t$t$tab(27)t$t$:?
163 ?tab(23)t$m$:?:?tab(11)s$(2)s$(2)s$(2)m$m$m$m$s$(2)t$t$s$(2)s$(2):?
164 ?tab(17)s$(2)s$(2)s$(2)s$(2)c$t$d$d$d$:?:?tab(5)t$t$t$tab(29)d$d$d$:?
165 ?tab(5)d$d$d$tab(25)t$t$t$t$t$:?:?tab(5)d$d$d$tab(23)t$c$s$(2)c$k$:?:?tab(5)d$d$d$;
166 bo=99:x=17:y=23:x1=29:y1=11:mb=3:color3,6,3:return

rem --- screen 11 ---
167 char,5,3,"":?m$m$c$c$up$tab(31)m$m$:?:?tab(11)s$(2)s$(2)s$(2)c$c$c$s$(2)s$(2)s$(2):?
168 ?tab(5)d$d$tab(31)d$d$:?:?tab(5)s$(2)s$(2)s$(2)c$c$c$s$(2)s$(2)s$(2)c$c$c$s$(2);
169 ?s$(2)s$(2):?:?tab(13)d$d$c$c$c$d$d$:?:?tab(11)s$(2)s$(2)t$c$k$c$t$s$(2)s$(2):?
170 ?tab(5)d$d$tab(31)d$d$:?:?tab(5)s$(2)s$(2)t$c$c$c$s$(2)s$(2)s$(2)c$c$c$t$s$(2)s$(2)
171 ?:?tab(13)d$d$c$c$c$d$d$:?:?tab(11)s$(2)s$(2)s$(2)c$c$c$s$(2)s$(2)s$(2):?
172 ?tab(5)m$m$tab(31)m$m$;:bo=99:x=19:y=23:x1=19:y1=5:mb=0:color3,6,2:return

rem --- screen 12 ---
173 char,25,3,"":?d$:?:?tab(7)d$tab(19)d$tab(29)t$s$(2)t$:?:?tab(13)d$tab(23)t$s$(2)t$:?
174 ?tab(5)t$s$(2)t$c$c$c$t$s$(2)s$(2)c$c$c$c$d$:?:?tab(11)t$s$(2)t$c$c$c$c$d$:?
175 ?tab(7)d$c$c$c$c$s$(2)s$(2)t$c$c$c$t$s$(2)t$:?:?tab(13)d$c$c$c$c$t$s$(2)t$c$c$up$:?
176 ?tab(5)t$s$(2)t$c$c$c$t$s$(2)s$(2):?:?tab(11)t$s$(2)t$c$c$c$c$d$:?:?tab(17)s$(2);
177 ?s$(2)t$:?:?tab(7)k$tab(23)s$(2)s$(2)s$(2);:bo=99:x=33:y=23:x1=29:y1=3:mb=0
178 color3,6,1:return

rem --- screen 13 ---
179 char,9,5,"":?s$(2)t$t$t$t$c$t$t$t$t$s$(2):?:?tab(5)s$(2)c$t$d$d$d$s$(2)c$s$(2)d$d$;
180 ?d$t$c$s$(2):?:?tab(9)t$t$d$t$t$c$t$t$d$t$t$:?:?tab(9)t$d$d$d$t$k$t$d$d$d$t$:?
181 ?tab(7)s$(2)c$t$s$(2)s$(2)t$c$t$s$(2)s$(2)t$c$s$(2):?:?tab(5)m$c$s$(2)c$c$s$(2)t$;
182 ?c$t$s$(2)c$c$s$(2)c$m$:?:?tab(5)t$s$(2)t$t$c$c$s$(2)s$(2)s$(2)c$c$t$t$s$(2)t$:?
183 ?tab(17)s$(2)c$s$(2):?:?tab(7)s$(2)t$t$t$s$(2)s$(2)c$s$(2)s$(2)t$t$t$s$(2);
184 bo=99:x=19:y=23:x1=19:y1=19:mb=0:color3,7,3:return

rem --- screen 14 ---
185 char,19,3,t$+k$:?:?:?tab(5)s$(2)d$t$d$s$(2)d$t$c$s$(2)d$t$d$s$(2)d$t$:?:?:?
186 ?tab(5)d$t$d$s$(2)d$t$d$m$d$t$d$s$(2)d$t$d$:?:?:?:?tab(5)s$(2)d$t$d$s$(2)d$t$d$;
187 ?s$(2)d$t$d$s$(2)d$t$:?:?:?:?tab(5)d$t$d$s$(2)d$m$d$s$(2)d$m$d$s$(2)d$t$d$:?:?:?
188 ?tab(5)s$(2)c$t$d$s$(2)d$t$d$s$(2)d$t$d$s$(2)c$t$;:bo=129:x=19:y=23:x1=17:y1=3:mb=0
189 color3,7,2:return

rem --- screen 15 ---
190 char,19,3,"":?m$c$c$c$k$:?:?tab(7)s$(2)s$(2)c$m$c$c$t$c$c$m$c$s$(2)s$(2):?
191 ?tab(7)s$(2)s$(2)s$(2)s$(2)s$(2)d$d$d$s$(2)s$(2)s$(2)s$(2)s$(2):?
192 ?tab(7)s$(2)d$t$c$c$c$t$c$c$c$t$d$s$(2):?:?tab(7)t$c$c$c$t$s$(2)c$s$(2)t$c$c$c$t$:?
193 ?tab(11)t$s$(2)s$(2)s$(2)t$s$(2)s$(2)s$(2)t$:?:?tab(7)s$(2)s$(2)d$d$t$c$c$c$t$d$d$;
194 ?s$(2)s$(2):?:?tab(11)t$d$s$(2)m$t$m$s$(2)d$t$:?:?tab(5)s$(2)t$c$c$c$t$s$(2)s$(2);
195 ?s$(2)t$c$c$c$t$s$(2):?:?tab(5)s$(2)s$(2)s$(2)t$c$c$s$(2)t$s$(2)c$c$t$s$(2)s$(2);
196 ?s$(2);:bo=119:x=19:y=23:x1=11:y1=3:mb=0:color3,7,1:return

rem --- screen 16 ---
197 char,5,3,"":?k$tab(23)up$c$t$:?:?tab(5)t$t$t$tab(23)t$c$t$:?:?tab(19)t$t$d$d$:?
198 ?tab(9)s$(2)s$(2)s$(2)c$c$c$c$d$d$t$:?:?tab(23)t$t$d$d$:?:?tab(13)s$(2)s$(2)s$(2);
199 ?c$c$c$c$d$d$t$:?:?tab(27)t$t$d$d$:?:?tab(17)s$(2)s$(2)s$(2)c$c$c$c$d$d$:?:?:?
200 ?tab(21)s$(2)s$(2)s$(2):?:?tab(5)m$m$m$m$m$m$;:bo=99:x=33:y=23:x1=31:y1=5:mb=0
201 color3,8,3:return

rem --- title ---
1000 poke65286,0:co=0:color3,7,3
1001 pO65286,0:goS95:chA,0,3,"":coL1,8:?tab(8)"XXZYZYZWYZ  ";:coL1,6,5:?"WZW YZYZWWYZ"
1002 coL1,8:?tab(8)"WWWWWW WWW"spc(2);:coL1,6,5:?"W"+chr$(124)+"W WWWWW"+chr$(124)+"W "
1003 coL1,8:?tab(8)"WWWXWWWWW "spc(2);:coL1,6,5:?"WZW WWW WZ"+chr$(123)+"Z"
1004 coL1,8:?tab(8)"WWWWWWWWWW"spc(2);:coL1,6,5:?"WWW WWWWWW W"
1005 coL1,8:?tab(8)"WWWWW"+chr$(123)+"WW"+chr$(123)+chr$(124)spc(2);:coL1,6,5:?"W";
1006 ?chr$(124)+"XW"+chr$(123)+chr$(124)+chr$(123)+chr$(124)+"WW"+chr$(123)+chr$(124)
1007 coL1,2:char,6,9,"-starring little archimedes-":color1,2,3:char,13,24,"@2018 rksoft"
1008 char,5,11,"":fori=0to14:?t$;:next:?:?:?tab(5)c$c$c$c$t$t$t$t$t$t$c$c$c$c$c$:?
1009 ?tab(5)c$c$c$c$s$(2)c$c$c$c$s$(2)c$c$c$c$c$:?
1010 ?tab(5)c$c$c$c$s$(2)d$d$d$k$s$(2)c$c$c$c$e$:?:?tab(5);:fori=0to14:?t$;:next
1011 char,5,17,p$(1):poke65286,27
1012 gosub1020:ifco>0thenreturn
1013 poke65286,0:gosub95:char,13,3,"":?d$chr$(17)chr$(5)" - 50 points":?
1014 ?tab(13)k$chr$(17)chr$(5)" - 150 points":?
1015 ?tab(13)up$chr$(17)chr$(5)" - extra life":?:?tab(13)e$chr$(17)chr$(5)" - exit":?
1016 ?tab(13)s$(2)chr$(17)chr$(5)" - magic block":?
1017 ?tab(13)m$chr$(17)chr$(5)" - lost a life":poke65286,27
1018 gosub1020:ifco>0thenreturn
1019 goto1001
1020 j=1:t=1:fori=0to200:co=-(2*(peek(1347)=2)or(joy(1)=128)):j=j+t:ifco>0theni=200
1021 color1,2,j:char,7,22,"press ] or fire to start!":ifj<1orj>6thent=-t:nexti:reT
1022 nexti:return

rem --- init ---
2000 poke65286,0:ifpeek(49152)<>126thenload"gfx",8,1
2001 poke65298,peek(65298)and251:poke65299,peek(65299)and3or192:poke65301,0:poke65305,0
2002 poke65302,6:poke65303,113:poke65287,peek(65287)and64or24
2003 dima,c,d,e,i,j,m,n,p,r,s,t,u,v,x,y,x1,y1,z,z1,fa(5)
2004 dimbo,c$,u$,p$(10),mb,s$(2),t$,j(8),k(128),m$,up$,sc,li,di,co,ro,r$,h$,x$,t2$
2005 u$=chr$(17)+chr$(157)+chr$(157):r$=chr$(29):x$=chr$(145)
2006 p$(1)=chr$(150)+chr$(176)+chr$(177)+u$+chr$(178)+chr$(179)
2007 p$(2)=chr$(150)+chr$(176)+chr$(177)+u$+chr$(180)+chr$(181)
2008 p$(3)=chr$(150)+chr$(176)+chr$(177)+u$+chr$(182)+chr$(183)
2009 p$(4)=chr$(150)+chr$(184)+chr$(185)+u$+chr$(186)+chr$(187)
2010 p$(5)=chr$(150)+chr$(184)+chr$(185)+u$+chr$(188)+chr$(189)
2011 p$(6)=chr$(150)+chr$(184)+chr$(185)+u$+chr$(190)+chr$(191)
2012 p$(7)=chr$(150)+chr$(166)+chr$(167)+u$+chr$(168)+chr$(169)
2013 p$(8)=chr$(150)+chr$(162)+chr$(163)+u$+chr$(164)+chr$(165)
2014 p$(9)=chr$(150)+chr$(170)+chr$(171)+u$+chr$(172)+chr$(173)
2015 p$(10)=chr$(154)+"''"+u$+chr$(150)+chr$(174)+chr$(175)
2016 c$=chr$(154)+"''"+u$+"''"+x$:s$(1)=chr$(153)+"ST"+u$+"UV"+x$
2017 s$(2)=chr$(153)+"GH"+u$+"IJ"+x$:t$=chr$(149)+"AB"+u$+"CD"+x$
2018 t2$=chr$(149)+"AB"+u$+chr$(125)+chr$(126)+u$+chr$(125)+chr$(126)+u$+"CD"+x$+x$+x$
2019 d$=chr$(154)+"#"+chr$(151)+"$"+u$+"%"+chr$(154)+"&"+x$
2020 k$=chr$(149)+"["+chr$(92)+u$+"''"+x$
2021 e$=chr$(150)+"KL"+u$+"MN"+x$:m$=chr$(149)+"OP"+u$+"QR"+x$
2022 up$=chr$(155)+":;"+u$+"<="+x$:h$=chr$(19)+chr$(17)+chr$(5)
2023 fa(1)=1:fa(2)=7:fa(3)=4:fa(4)=8:fa(5)=2
2024 fori=0to8:j(i)=1:next:fori=0to64:k(i)=1:nexti:k(51)=2:k(48)=3:k(43)=4
2025 j(3)=2:j(7)=3:j(1)=4:j(2)=4:j(8)=4
2026 pudef"0":hi=10000:v=3072:m=1:n=2:d=64:e=128:z=40:z2=80
2027 key1,chr$(147)+"pO65298,196:pO65299,208:pO65286,27:pO65287,8"+chr$(13):return
