Merge branch 'master' of ssh://svjatoslav.eu:10006/home/n0/git/qbasicapps
[qbasicapps.git] / games / platform / platform.bas
1 ' Super Mario style game\r
2 ' by Svjatoslav Agejenko 1999\r
3 \r
4 DECLARE SUB CL ()\r
5 DECLARE SUB esc ()\r
6 DECLARE SUB aargh ()\r
7 DECLARE SUB die ()\r
8 \r
9 \r
10 DECLARE SUB dead ()\r
11 DEFINT A-Z\r
12 DECLARE SUB level1 ()\r
13 DECLARE SUB nait (zaz%)\r
14 DECLARE SUB wiew1 (a1%, b1%, c1%, d1%, a$)\r
15 DECLARE SUB level ()\r
16 DECLARE SUB save (a$)\r
17 DECLARE SUB picedit ()\r
18 DECLARE SUB wiew (a1%, b1%, c1%, d1%, a$)\r
19 DECLARE SUB intro ()\r
20 DECLARE SUB inpur ()\r
21 DECLARE SUB mousedriver (AX%, bx%, cx%, dx%, lb%, rb%, EX%)\r
22 DECLARE SUB tahed ()\r
23 \r
24 DIM SHARED sj$\r
25 DIM SHARED ekraan\r
26 DIM SHARED text$(1 TO 500)\r
27 DIM SHARED pikkus\r
28 \r
29 \r
30 DIM SHARED ruum(-5 TO 20, -5 TO 20) AS STRING\r
31 DIM SHARED ruum1(-5 TO 20, -5 TO 20) AS STRING\r
32 DIM SHARED maa(1 TO 11, 1 TO 10) AS STRING * 15\r
33 DIM SHARED maa1(1 TO 10) AS INTEGER\r
34 DIM SHARED maailm AS INTEGER\r
35 DIM SHARED maailm1 AS INTEGER\r
36 DIM SHARED text5(1 TO 15) AS STRING * 15\r
37 DIM SHARED pilv(2100)\r
38 DIM SHARED kast(202)\r
39 DIM SHARED tellis(202)\r
40 DIM SHARED poosas(1000)\r
41 DIM SHARED puu(2000)\r
42 DIM SHARED tuhi(202)\r
43 DIM SHARED munt(202)\r
44 DIM SHARED munt1(400)\r
45 DIM SHARED munt2(200)\r
46 DIM SHARED mari0(402)\r
47 DIM SHARED mari(202, 1 TO 5)\r
48 DIM SHARED koll(1 TO 230, 1 TO 10)\r
49 DIM SHARED koll1(1 TO 202, 1 TO 5)\r
50 DIM SHARED kolla(1 TO 10)\r
51 DIM SHARED kollb(1 TO 10)\r
52 DIM SHARED kollal(1 TO 10)\r
53 DIM SHARED kolled(1 TO 10)\r
54 \r
55 DIM SHARED rahaz(1 TO 5)\r
56 DIM SHARED number(100, 0 TO 11)\r
57 DIM SHARED elud\r
58 \r
59 DIM SHARED raha\r
60 DIM SHARED clra, clrb\r
61 DIM SHARED a1, b1\r
62 \r
63 DIM SHARED prog\r
64 prog = 1\r
65 SCREEN 13\r
66 maailm = 1\r
67 maailm1 = 1\r
68 level1\r
69 1\r
70 ekraan = 13: zpqf = 4\r
71 \r
72 FOR a = 0 TO 254\r
73 OUT &H3C8, a\r
74 OUT &H3C9, 0\r
75 OUT &H3C9, 0\r
76 OUT &H3C9, 0\r
77 NEXT a\r
78 OUT &H3C8, 255\r
79 OUT &H3C9, 60\r
80 OUT &H3C9, 60\r
81 OUT &H3C9, 60\r
82 LOCATE 20, 3\r
83 COLOR 255\r
84 PRINT "LOADING "\r
85 \r
86 \r
87 CL\r
88 wiew 0, 0, 1, 1, "pilv"\r
89 GET (1, 1)-(109, 35), pilv\r
90 CL\r
91 wiew 0, 0, 1, 1, "kast"\r
92 GET (1, 2)-(20, 21), kast\r
93 CL\r
94 wiew 0, 0, 1, 1, "tellis"\r
95 GET (1, 2)-(20, 21), tellis\r
96 CL\r
97 GET (1, 2)-(20, 21), tuhi\r
98 wiew 0, 0, 1, 1, "mario1"\r
99 GET (1, 2)-(20, 21), mari(202, 1)\r
100 CL\r
101 wiew1 0, 0, 1, 1, "mario1"\r
102 GET (3, 2)-(22, 21), mari(202, 2)\r
103 CL\r
104 wiew 0, 0, 1, 1, "mario2"\r
105 GET (1, 2)-(20, 21), mari(202, 3)\r
106 CL\r
107 wiew1 0, 0, 1, 1, "mario2"\r
108 GET (3, 2)-(22, 21), mari(202, 4)\r
109 CL\r
110 wiew 0, 0, 1, 1, "poosas"\r
111 GET (1, 1)-(60, 21), poosas\r
112 CL\r
113 wiew 0, 0, 1, 1, "puu"\r
114 GET (1, 1)-(40, 60), puu\r
115 CL\r
116 wiew 0, 0, 1, 1, "munt"\r
117 GET (1, 1)-(10, 11), munt\r
118 CL\r
119 wiew 0, 0, 1, 1, "munt1"\r
120 GET (0, 2)-(20, 11), munt1\r
121 CL\r
122 wiew 0, 0, 1, 1, "munt2"\r
123 GET (0, 2)-(20, 11), munt2\r
124 \r
125 CL\r
126 wiew 0, 0, 1, 1, "0"\r
127 GET (0, 2)-(10, 11), number(100, 0)\r
128 CL\r
129 wiew 0, 0, 1, 1, "1"\r
130 GET (0, 2)-(10, 11), number(100, 1)\r
131 CL\r
132 wiew 0, 0, 1, 1, "2"\r
133 GET (0, 2)-(10, 11), number(100, 2)\r
134 CL\r
135 wiew 0, 0, 1, 1, "3"\r
136 GET (0, 2)-(10, 11), number(100, 3)\r
137 CL\r
138 wiew 0, 0, 1, 1, "4"\r
139 GET (0, 2)-(10, 11), number(100, 4)\r
140 CL\r
141 wiew 0, 0, 1, 1, "5"\r
142 GET (0, 2)-(10, 11), number(100, 5)\r
143 CL\r
144 wiew 0, 0, 1, 1, "6"\r
145 GET (0, 2)-(10, 11), number(100, 6)\r
146 CL\r
147 wiew 0, 0, 1, 1, "7"\r
148 GET (0, 2)-(10, 11), number(100, 7)\r
149 CL\r
150 wiew 0, 0, 1, 1, "8"\r
151 GET (0, 2)-(10, 11), number(100, 8)\r
152 CL\r
153 GET (0, 2)-(10, 11), number(100, 10)\r
154 wiew 0, 0, 1, 1, "9"\r
155 GET (0, 2)-(10, 11), number(100, 9)\r
156 \r
157 CL\r
158 wiew 0, 0, 1, 1, "tigu"\r
159 GET (1, 2)-(20, 21), koll1(202, 1)\r
160 CL\r
161 wiew 0, 0, 1, 1, "tigu1"\r
162 GET (3, 2)-(22, 21), koll1(202, 2)\r
163 CL\r
164 wiew1 0, 0, 1, 1, "tigu"\r
165 GET (1, 2)-(20, 21), koll1(202, 3)\r
166 CL\r
167 wiew1 0, 0, 1, 1, "tigu1"\r
168 GET (3, 2)-(22, 21), koll1(202, 4)\r
169 \r
170 SCREEN 0\r
171 SCREEN 13\r
172 level\r
173 a1 = 50\r
174 b1 = 50\r
175 edasi = 0\r
176 liig = 1\r
177 ov1 = 1\r
178 ov2 = 2\r
179 raha = 0\r
180 elud = 3\r
181 z = 1\r
182 nait 0\r
183 12\r
184 IF b1 > 0 THEN GET (a1, b1)-(a1 + 20, b1 + 20), mari0: PUT (a1, b1), mari(202, liig), OR\r
185 \r
186 FOR ox = 1 TO 10\r
187 IF kollb(ox) < 170 AND z = 1 THEN\r
188   kollb(ox) = kollb(ox) + kollal(ox)\r
189   kolla(ox) = kolla(ox) + kolled(ox)\r
190   GET (kolla(ox), kollb(ox))-(kolla(ox) + 20, kollb(ox) + 20), koll(202, ox)\r
191   IF kolled(ox) <= 0 THEN kolll = 1 ELSE kolll = 3\r
192   IF zz > 2 THEN kolll = kolll + 1: IF zz = 3 THEN kollal(ox) = kollal(ox) + 1\r
193   PUT (kolla(ox), kollb(ox)), koll1(202, kolll)\r
194 END IF\r
195 NEXT ox\r
196 SOUND 0, .5\r
197 z = z + 1\r
198 IF z > 3 THEN z = 1\r
199 IF z = 1 THEN\r
200 zz = zz + 1\r
201 IF zz > 5 THEN zz = 0\r
202 alla = alla + 1\r
203 IF edasi > 0 THEN edasi = edasi - 1: zy = zy + 1\r
204 IF edasi < 0 THEN edasi = edasi + 1: zy = zy + 1\r
205 IF zy > 2 THEN zy = 1\r
206 IF zy = 2 THEN ov1 = 1: ov2 = 2\r
207 IF zy = 1 THEN ov1 = 3: ov2 = 4\r
208 \r
209 FOR ox = 1 TO 10\r
210 IF kollb(ox) < 170 THEN\r
211 IF ruum((kolla(ox) + 20) / 20, (kollb(ox) + 9) / 20) = "m" THEN kollal(ox) = -1\r
212 IF kolla(ox) > 270 THEN kolled(ox) = -1\r
213 IF kolla(ox) < 2 THEN kolled(ox) = 1\r
214 IF ruum((kolla(ox) + 28) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = -1\r
215 IF ruum((kolla(ox) + 10) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = 1\r
216 IF kolla(ox) - 20 < a1 AND kolla(ox) + 20 > a1 AND kollb(ox) - 5 < b1 AND kollb(ox) + 20 > b1 THEN aargh: dead: GOTO 12\r
217 END IF\r
218 NEXT ox\r
219 END IF\r
220 \r
221 IF ruum((a1 + 15) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0\r
222 IF ruum((a1 + 25) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0\r
223 IF ruum((a1 + 20) / 20, (b1 - 8) / 20) = "m" THEN alla = 1: ao = 20\r
224 IF ruum((a1 + 28) / 20, (b1) / 20) = "m" THEN edasi = -1: qa = 1\r
225 IF ruum((a1 + 10) / 20, (b1) / 20) = "m" THEN edasi = 1: qa = 1\r
226 \r
227 IF ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "o" THEN alla = 1: ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "": ruum((a1 + 20) / 20, (b1 - 8) / 20) = "2": clra = ((a1 + 20) / 20) - 1: clrb = (b1 - 8) / 20: clr = 1:  SOUND 50, .5\r
228 IF ruum((a1 + 20) / 20, (b1) / 20) = "1" THEN ruum((a1 + 20) / 20, (b1) / 20) = "2": clra = ((a1 + 21) / 20) - 1: clrb = (b1) / 20: clr = 1: raha = raha + 1: nait 1: SOUND 1000, 1: SOUND 2000, 1\r
229 ao = ao + 1\r
230 a$ = INKEY$\r
231 IF a$ = CHR$(0) + "H" AND ao < 10 THEN alla = -6\r
232 IF a$ = CHR$(0) + "M" AND qa = 0 THEN edasi = edasi + 3: liig = ov1\r
233 IF a$ = CHR$(0) + "K" AND qa = 0 THEN edasi = edasi - 3: liig = ov2\r
234 IF a$ = CHR$(27) THEN esc\r
235 IF a$ = "+" AND qa = 0 THEN maailm = maailm + 1: level: GOTO 12\r
236 IF qa <> 0 THEN qa = 0\r
237 IF edasi > 5 THEN edasi = 3\r
238 IF edasi < -5 THEN edasi = -3\r
239 IF alla > 3 THEN alla = 3\r
240 \r
241 IF b1 > 0 THEN PUT (a1, b1), mari0, PSET\r
242 \r
243 IF z = 1 THEN\r
244 FOR ox = 10 TO 1 STEP -1\r
245 IF kollb(ox) < 170 THEN PUT (kolla(ox), kollb(ox)), koll(202, ox), PSET\r
246 NEXT ox\r
247 END IF\r
248 \r
249 \r
250 b1 = b1 + alla\r
251 a1 = a1 + edasi\r
252 IF clr > 0 THEN clr = 0: PUT (clra * 20, clrb * 20), tuhi, PSET\r
253 IF a1 > 280 THEN maailm = maailm + 1: level: a1 = 3\r
254 IF a1 < 2 THEN maailm = maailm - 1: level: a1 = 279\r
255 IF b1 > 170 THEN FOR a = 3000 TO 500 STEP -100: SOUND a, .3: NEXT a: dead\r
256 GOTO 12\r
257 \r
258 SUB aargh\r
259 a = 1700\r
260 b = 1900\r
261 FOR c = 1 TO 50\r
262 a = a + 3\r
263 b = b - 5\r
264 SOUND a, .2\r
265 SOUND b, .2\r
266 NEXT c\r
267 END SUB\r
268 \r
269 SUB CL\r
270 LINE (0, 0)-(319, 150), 0, BF\r
271 LOCATE 20, 10 + prog\r
272 prog = prog + 1\r
273 PRINT "."\r
274 END SUB\r
275 \r
276 SUB dead\r
277 IF maailm > 1 THEN maailm = maailm - 1\r
278 \r
279 level\r
280 a1 = 20\r
281 b1 = 100\r
282 elud = elud - 1\r
283 nait 0\r
284 END SUB\r
285 \r
286 SUB die\r
287 DIM diep(1 TO 2000)\r
288 GET (0, 0)-(150, 20), diep\r
289 LOCATE 1, 1\r
290 PRINT "You are    "\r
291 LOCATE 2, 1\r
292 PRINT " killed!   "\r
293 \r
294 FOR x = 0 TO 80\r
295 FOR y = 0 TO 16\r
296 IF POINT(x, y) > 0 THEN LINE (x * 5, y * 5 + 50)-(x * 5 + 4, y * 5 + 54), 4, BF\r
297 NEXT y\r
298 NEXT x\r
299 PUT (0, 0), diep, PSET\r
300 \r
301 FOR a = 1 TO 100\r
302 x = RND * 290 + 4\r
303 y = RND * 170 + 4\r
304 GET (x, y)-(x + 20, y + 20), diep\r
305 x = x + RND * 4 - 2\r
306 y = y + RND * 4 - 1\r
307 PUT (x, y), diep, PSET\r
308 NEXT a\r
309 FOR a = 1 TO 50\r
310 a$ = INKEY$\r
311 NEXT a\r
312 a$ = INPUT$(1)\r
313 \r
314 FOR a = 0 TO 100\r
315 SOUND 0, .05\r
316 LINE (0, a)-(320, a), 4\r
317 LINE (0, 200 - a)-(320, 200 - a), 4\r
318 NEXT a\r
319 FOR a = 32 TO 0 STEP -1\r
320 SOUND 0, .5\r
321 OUT &H3C8, 4\r
322 OUT &H3C9, a\r
323 OUT &H3C9, 0\r
324 OUT &H3C9, 0\r
325 NEXT a\r
326 END\r
327 \r
328 END SUB\r
329 \r
330 SUB esc\r
331 FOR b = 0 TO 20\r
332 FOR a = b TO 200 STEP 20\r
333 LINE (0, a)-(320, a), 0\r
334 NEXT a\r
335 SOUND 0, .5\r
336 NEXT b\r
337 SYSTEM\r
338 \r
339 END SUB\r
340 \r
341 SUB inpur\r
342 sj$ = ""\r
343 WHILE sj$ = ""\r
344 sj$ = INKEY$\r
345 WEND\r
346 END SUB\r
347 \r
348 SUB intro\r
349 CLS\r
350 wiew 2, 2, 10, 1, "win.i01"\r
351 END SUB\r
352 \r
353 SUB level\r
354 IF maailm > 10 THEN\r
355 CLS\r
356 PRINT "Mission complete!"\r
357 PRINT "Game over"\r
358 END\r
359 END IF\r
360 \r
361 FOR a = 1 TO 10\r
362 text5(a + 1) = maa(a, maailm)\r
363 NEXT a\r
364 \r
365 FOR a = 1 TO 10\r
366 FOR b = 1 TO 15\r
367 IF ruum(b, a - 2) = "2" THEN MID$(maa(a, maailm1), b) = " "\r
368 NEXT b\r
369 NEXT a\r
370 maailm1 = maailm\r
371 \r
372 FOR a = -3 TO 20\r
373 FOR b = -3 TO 20\r
374 ruum(a, b) = ""\r
375 ruum1(a, b) = ""\r
376 NEXT b\r
377 NEXT a\r
378 \r
379 FOR a = 1 TO 10\r
380 kollb(a) = 1000\r
381 kolled(a) = 1\r
382 kollal(a) = 0\r
383 NEXT a\r
384 \r
385 CLS\r
386 PAINT (1, 1), maa1(maailm)\r
387 GET (1, 2)-(20, 21), tuhi\r
388 FOR a = 2 TO 10\r
389 FOR b = 1 TO 15\r
390 c$ = RIGHT$(LEFT$(text5(a), b), 1)\r
391 IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR\r
392 IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR\r
393 IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR\r
394 IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1"\r
395 IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m"\r
396 IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o"\r
397 IF c$ = " " THEN ruum(b, a) = " "\r
398 \r
399 IF c$ = "1" THEN kolla(1) = (b - 1) * 20: kollb(1) = (a - 2) * 20: GET (kolla(1), kollb(1))-(kolla(1) + 20, kollb(1) + 20), koll(202, 1)\r
400 IF c$ = "2" THEN kolla(2) = (b - 1) * 20: kollb(2) = (a - 2) * 20: GET (kolla(2), kollb(2))-(kolla(2) + 20, kollb(2) + 20), koll(202, 2)\r
401 IF c$ = "3" THEN kolla(3) = (b - 1) * 20: kollb(3) = (a - 2) * 20: GET (kolla(3), kollb(3))-(kolla(3) + 20, kollb(3) + 20), koll(202, 3)\r
402 IF c$ = "4" THEN kolla(4) = (b - 1) * 20: kollb(4) = (a - 2) * 20: GET (kolla(4), kollb(4))-(kolla(4) + 20, kollb(4) + 20), koll(202, 4)\r
403 IF c$ = "5" THEN kolla(5) = (b - 1) * 20: kollb(5) = (a - 2) * 20: GET (kolla(5), kollb(5))-(kolla(5) + 20, kollb(5) + 20), koll(202, 5)\r
404 IF c$ = "6" THEN kolla(6) = (b - 1) * 20: kollb(6) = (a - 2) * 20: GET (kolla(6), kollb(6))-(kolla(6) + 20, kollb(6) + 20), koll(202, 6)\r
405 IF c$ = "7" THEN kolla(7) = (b - 1) * 20: kollb(7) = (a - 2) * 20: GET (kolla(7), kollb(7))-(kolla(7) + 20, kollb(7) + 20), koll(202, 7)\r
406 IF c$ = "8" THEN kolla(8) = (b - 1) * 20: kollb(8) = (a - 2) * 20: GET (kolla(8), kollb(8))-(kolla(8) + 20, kollb(8) + 20), koll(202, 8)\r
407 IF c$ = "9" THEN kolla(9) = (b - 1) * 20: kollb(9) = (a - 2) * 20: GET (kolla(9), kollb(9))-(kolla(9) + 20, kollb(9) + 20), koll(202, 9)\r
408 IF c$ = "0" THEN kolla(10) = (b - 1) * 20: kollb(10) = (a - 2) * 20: GET (kolla(10), kollb(10))-(kolla(10) + 20, kollb(10) + 20), koll(202, 10)\r
409 NEXT b\r
410 NEXT a\r
411 nait 0\r
412 END SUB\r
413 \r
414 SUB level1\r
415 maa1(1) = 1\r
416 maa(1, 1) = "m              "\r
417 maa(2, 1) = "m  -      -    "\r
418 maa(3, 1) = "m              "\r
419 maa(4, 1) = "m     $ $ $ $  "\r
420 maa(5, 1) = "m    $ $ $ $   "\r
421 maa(6, 1) = "m +     momom  "\r
422 maa(7, 1) = "m              "\r
423 maa(8, 1) = "m    .   .     "\r
424 maa(9, 1) = "mmmmmmmmmmmmmmm"\r
425 \r
426 maa1(2) = 1\r
427 maa(1, 2) = " $2-           "\r
428 maa(2, 2) = " o$            "\r
429 maa(3, 2) = "  o$     -     "\r
430 maa(4, 2) = "   o$        3 "\r
431 maa(5, 2) = "    o  o1      "\r
432 maa(6, 2) = " +         mmom"\r
433 maa(7, 2) = "     omom  m   "\r
434 maa(8, 2) = "    $ $ $ $ m  "\r
435 maa(9, 2) = "mmmm         mm"\r
436 \r
437 maa1(3) = 1\r
438 maa(1, 3) = "          mmmmm"\r
439 maa(2, 3) = "-    $ $  mmmmm"\r
440 maa(3, 3) = "    $ $ $ mmmmm"\r
441 maa(4, 3) = "     $ $  mmmmm"\r
442 maa(5, 3) = " .        mmmmm"\r
443 maa(6, 3) = "mmmm  1    mmmm"\r
444 maa(7, 3) = "     mm       m"\r
445 maa(8, 3) = "          mmm  "\r
446 maa(9, 3) = "mmm       mmmmm"\r
447 \r
448 maa1(4) = 0\r
449 maa(1, 4) = "mmmmmmmmmmmmmmm"\r
450 maa(2, 4) = "m$    $ $ $ $  "\r
451 maa(3, 4) = "mm  $m $4$ $ $ "\r
452 maa(4, 4) = "m$m  mmmmmommmm"\r
453 maa(5, 4) = "m$ 3      2   m"\r
454 maa(6, 4) = "m1 ooooooomo  m"\r
455 maa(7, 4) = "mooo$$$$$$$m  m"\r
456 maa(8, 4) = "              m"\r
457 maa(9, 4) = "mmmmmmmmmmmmmmm"\r
458 \r
459 maa1(5) = 0\r
460 maa(1, 5) = "mmmmmmmmmmmmmmm"\r
461 maa(2, 5) = "   m           "\r
462 maa(3, 5) = "m  m  1 3  mmmm"\r
463 maa(4, 5) = "m  m  mmm  o  m"\r
464 maa(5, 5) = "m  m4567892o  m"\r
465 maa(6, 5) = "m  mooooommo  m"\r
466 maa(7, 5) = "m            mm"\r
467 maa(8, 5) = "m           mmm"\r
468 maa(9, 5) = "mmmm  mmm  mmmm"\r
469 \r
470 maa1(6) = 1\r
471 maa(1, 6) = "m              "\r
472 maa(2, 6) = " -     $ -     "\r
473 maa(3, 6) = "m   $     $    "\r
474 maa(4, 6) = "m    o   o  $  "\r
475 maa(5, 6) = "m  o       o   "\r
476 maa(6, 6) = "m          +   "\r
477 maa(7, 6) = "m              "\r
478 maa(8, 6) = "mm 1 m 2  m    "\r
479 maa(9, 6) = "mmmmmmmmmmmmmmm"\r
480 \r
481 maa1(7) = 1\r
482 maa(1, 7) = "       -       "\r
483 maa(2, 7) = "  -            "\r
484 maa(3, 7) = "             1m"\r
485 maa(4, 7) = "            2mm"\r
486 maa(5, 7) = "           3mmm"\r
487 maa(6, 7) = "   o   +  4mmmm"\r
488 maa(7, 7) = "  ooo    5mmmmm"\r
489 maa(8, 7) = "        6mmmmmm"\r
490 maa(9, 7) = "mmmmmmmmmmmmmmm"\r
491 \r
492 maa1(8) = 1\r
493 maa(1, 8) = "  mmmmmmmmmmmmm"\r
494 maa(2, 8) = "  m123m456m789 "\r
495 maa(3, 8) = "  mm$mmm$mmm$mm"\r
496 maa(4, 8) = "  mm$$$$$$$$$$m"\r
497 maa(5, 8) = "  mmom$mmm$mmmm"\r
498 maa(6, 8) = "   o$$$$$$$$$ o"\r
499 maa(7, 8) = "   omooooooo  o"\r
500 maa(8, 8) = "        - m    "\r
501 maa(9, 8) = "mmmmmmmmmmmmmmm"\r
502 \r
503 maa1(9) = 0\r
504 maa(1, 9) = "          12345"\r
505 maa(2, 9) = "          6789 "\r
506 maa(3, 9) = "             mm"\r
507 maa(4, 9) = "           m   "\r
508 maa(5, 9) = "         m     "\r
509 maa(6, 9) = "       m       "\r
510 maa(7, 9) = "     m         "\r
511 maa(8, 9) = "   m           "\r
512 maa(9, 9) = "mm             "\r
513 \r
514 maa1(10) = 1\r
515 maa(1, 10) = "m              "\r
516 maa(2, 10) = "   -           "\r
517 maa(3, 10) = "m      -       "\r
518 maa(4, 10) = "m        +     "\r
519 maa(5, 10) = "m              "\r
520 maa(6, 10) = "m  +     2     "\r
521 maa(7, 10) = "m       mmm    "\r
522 maa(8, 10) = "m     .   1    "\r
523 maa(9, 10) = "mmmmmmmmmmm  mm"\r
524 END SUB\r
525 \r
526 SUB load (a$)\r
527 OPEN a$ FOR INPUT AS #2\r
528 INPUT #2, pikkus\r
529 FOR a = 1 TO pikkus\r
530 LINE INPUT #2, text$(a)\r
531 NEXT a\r
532 CLOSE\r
533 END SUB\r
534 \r
535 SUB nait (zaz)\r
536 IF elud < 0 THEN die\r
537 PUT (0, 180), munt1, PSET\r
538 rahaz(1) = rahaz(1) + zaz\r
539 FOR b = 1 TO 3\r
540 IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1\r
541 IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: elud = elud + 1\r
542 NEXT b\r
543 LOCATE 1, 1\r
544 r = 3\r
545 FOR a = 1 TO 2\r
546 r = r - 1\r
547 PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET\r
548 NEXT a\r
549 IF elud > 10 THEN elud = 10\r
550 PUT (43, 180), number(100, 10), PSET\r
551 PUT (53, 180), munt2, PSET\r
552 PUT (73, 180), number(100, elud), PSET\r
553 END SUB\r
554 \r
555 SUB save (a$)\r
556 OPEN a$ FOR OUTPUT AS #2\r
557 PRINT #2, pikkus\r
558 FOR a = 1 TO pikkus\r
559 PRINT #2, text$(a)\r
560 NEXT a\r
561 CLOSE\r
562 END SUB\r
563 \r
564 DEFSNG A-Z\r
565 SUB tahed\r
566 CLS\r
567 t = 13\r
568 FOR a = 1 TO 80 STEP 8\r
569 FOR b = 1 TO 20\r
570 t = t + 1\r
571 LOCATE b, a\r
572 PRINT CHR$(t); t\r
573 NEXT b\r
574 NEXT a\r
575 \r
576 END SUB\r
577 \r
578 DEFINT A-Z\r
579 SUB wiew (a1, b1, c1, d1, a$)\r
580 laius1 = c1 - a1\r
581 pikkus1 = d1 - b1\r
582 OPEN a$ + ".i01" FOR INPUT AS #1\r
583 INPUT #1, pikkus\r
584 FOR a = 1 TO pikkus\r
585 LINE INPUT #1, z$\r
586 FOR b = 1 TO LEN(z$)\r
587 LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1) - 1, b1 + ((a + 1) * d1)), ASC(RIGHT$(LEFT$(z$, b), 1)) - 40, BF\r
588 NEXT b\r
589 NEXT a\r
590 CLOSE\r
591 END SUB\r
592 \r
593 SUB wiew1 (a1, b1, c1, d1, a$)\r
594 a1 = a1 * 8\r
595 b1 = b1 * 8\r
596 laius1 = c1 - a1\r
597 pikkus1 = d1 - b1\r
598 OPEN a$ + ".i01" FOR INPUT AS #1\r
599 INPUT #1, pikkus\r
600 FOR a = 1 TO pikkus\r
601 LINE INPUT #1, z$\r
602 FOR b = LEN(z$) TO 1 STEP -1\r
603 LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF\r
604 NEXT b\r
605 NEXT a\r
606 CLOSE\r
607 END SUB\r