Code:
1 'Bubble fight!!!
2 'Objective: Get away from "pricklies" and spikes. The longer you
3 ' stay airborne, the higher the score.
4 'Controls:
5 ' Left CTRL = move left
6 ' Right CTRL = move right
7 ' Right Space = Adjust height
8 '
9 'Dev: Richard Eric M. Lope BSN RN aka Relsoft/Jelly
10 'Creds : Plasma(Jon Petrosky) for SetVideoSeg
11 'Platform/Interpreter : QBASIC(The one that comes with windows)
12 'OS : DOS/Win9x
13 DEFINT A-Z
14 '$DYNAMIC
15 TYPE MineType: x AS SINGLE: y AS SINGLE: xv AS SINGLE: yv AS SINGLE: cx AS INTEGER: cy AS INTEGER: Hei AS INTEGER: Wid AS INTEGER: id AS INTEGER: angle AS INTEGER: Active AS INTEGER: Counter AS INTEGER: Frame AS INTEGER: SFrame AS INTEGER: END _
TYPE
16 TYPE BubbleType: x AS SINGLE: y AS SINGLE: xv AS SINGLE: yv AS SINGLE: Frame AS INTEGER: END TYPE
17 TYPE StarType: x AS SINGLE: y AS SINGLE: xv AS SINGLE: yv AS SINGLE: c AS INTEGER: END TYPE
18 CONST FALSE = 0, TRUE = NOT FALSE
19 CONST VIDEO = &HA000
20 CONST PI = 3.14151693#
21 CONST MAXMINES = 50
22 CONST MAXSTARS = 50
23 CONST xFRICTION = .008
24 CONST yFRICTION = .008
25 CONST GRAVITY = .012
26 CONST ACCEL = .02
27 DIM SHARED Mine(MAXMINES) AS MineType
28 DIM SHARED Stars(MAXSTARS) AS StarType
29 DIM SHARED LutCOS(359) AS SINGLE
30 DIM SHARED LutSIN(359) AS SINGLE
31 DIM SHARED VPAGE(32009) AS INTEGER 'SetVideoSeg Buffer
32 REDIM SHARED BubbleSpr(1 TO 1) AS INTEGER
33 REDIM SHARED BubbleIdx(1 TO 1) AS INTEGER
34 REDIM SHARED ExpSpr(1 TO 1) AS INTEGER
35 REDIM SHARED ExpIdx(1 TO 1) AS INTEGER
36 REDIM SHARED ExpMask(1 TO 1) AS INTEGER
37 REDIM SHARED BubbleMask(1 TO 1) AS INTEGER
38 REDIM SHARED MineSpr(1 TO 1) AS INTEGER
39 REDIM SHARED MineIdx(1 TO 1) AS INTEGER
40 REDIM SHARED MineMask(1 TO 1) AS INTEGER
41 REDIM SHARED SpikeSpr(1 TO 1) AS INTEGER
42 DIM SHARED Bubble AS BubbleType
43 DIM SHARED LAYER AS INTEGER
44 DIM SHARED Score&
45 DIM SHARED Lives
46 CLS
47 SCREEN 13
48 RANDOMIZE TIMER
49 GOSUB INIT
50 WaitON = TRUE
51 DO
52 FINISHED = FALSE
53 GOSUB ReInit
54 DO
55 Anicount = (Anicount AND 7) + 1
56 MineCount = (MineCount AND 63) + 1
57 IF MineCount = 1 THEN
58 GOSUB AddMine
59 END IF
60 DEF SEG = 0
61 IF PEEK(1047) AND 4 THEN 'CTRL
62 Bubble.xv = Bubble.xv - ACCEL
63 END IF
64 IF PEEK(1047) AND 8 THEN 'ALT
65 Bubble.xv = Bubble.xv + ACCEL
66 END IF
67 IF PEEK(1047) AND 2 THEN 'LShift
68 WaitON = NOT WaitON
69 END IF
70 IF (PEEK(1047) AND 1) THEN 'RShift
71 Bubble.yv = Bubble.yv - ((ACCEL * 255) * yFRICTION)
72 END IF
73 IF Anicount = 1 THEN
74 Bubble.Frame = (Bubble.Frame AND 1) + 1
75 END IF
76 Bubble.xv = Bubble.xv - Bubble.xv * xFRICTION
77 Bubble.yv = Bubble.yv + GRAVITY
78 Bubble.yv = Bubble.yv - (Bubble.yv * yFRICTION)
79 Bubble.x = Bubble.x + Bubble.xv
80 Bubble.y = Bubble.y + Bubble.yv
81 IF Bubble.x < 16 THEN
82 Bubble.x = 16
83 Bubble.xv = -Bubble.xv
84 ELSEIF Bubble.x > 283 THEN
85 Bubble.x = 283
86 Bubble.xv = -Bubble.xv
87 END IF
88 IF Bubble.y < 8 THEN
89 Bubble.y = 8
90 Bubble.yv = -Bubble.yv
91 ELSEIF Bubble.y > 171 THEN
92 Bubble.y = 171
93 BubbleExp = TRUE
94 Lives = Lives - 1
95 END IF
96 cx% = Bubble.x
97 cy% = Bubble.y
98 bcf% = Bubble.Frame
99 VidSegment% = LAYER
100 GOSUB SetVideoSeg
101 LINE (0, 0)-(319, 199), 0, BF
102 GOSUB DoStars
103 GOSUB DrawSpikes
104 GOSUB DoMines
105 GOSUB CollideMe
106 IF DoCollision THEN
107 BubbleExp = TRUE
108 Lives = Lives - 1
109 END IF
110 IF NOT BubbleExp THEN
111 PUT (cx%, cy%), BubbleMask(BubbleIdx(bcf%)), AND
112 PUT (cx%, cy%), BubbleSpr(BubbleIdx(bcf%)), OR
113 ELSE
114 ecx% = cx%
115 IF ecx% > 288 THEN ecx% = 288
116 ecy% = cy%
117 IF ecy% > 168 THEN ecy% = 168
118 ExpAnim% = (ExpAnim% MOD 10) + 1
119 IF ExpAnim% = 1 THEN ExpF% = (ExpF%) + 1
120 PUT (ecx%, ecy%), ExpMask(ExpIdx(ExpF%)), AND
121 PUT (ecx%, ecy%), ExpSpr(ExpIdx(ExpF%)), OR
122 IF ExpF% = 6 THEN FINISHED = TRUE
123 END IF
124 'Erase stuff
125 LINE (0, 0)-(15, 199), 0, BF 'Left
126 LINE (0, 0)-(319, 8), 0, BF 'top
127 LINE (304, 0)-(319, 199), 0, BF 'right
128 Xpos% = 0
129 Ypos% = 0
130 Text$ = "Score:" + LTRIM$(STR$(Score&))
131 col% = 35
132 GOSUB AFPrint
133 Xpos% = 0
134 Ypos% = 10
135 Text$ = "Lives:" + LTRIM$(STR$(Lives))
136 col% = 35
137 GOSUB AFPrint
138 'Calc FPS
139 FPS = FPS + 1
140 IF StartTime& + 1 < TIMER THEN
141 FPS2 = FPS
142 FPS = 0
143 StartTime& = TIMER
144 END IF
145 Xpos% = 0
146 Ypos% = 20
147 Text$ = "FPS:" + LTRIM$(STR$(FPS2))
148 col% = 23
149 GOSUB AFPrint
150 VidSegment% = VIDEO
151 GOSUB SetVideoSeg
152 IF WaitON THEN
153 WAIT &H3DA, 8
154 END IF
155 PUT (0, 0), VPAGE(6), PSET
156 IF INKEY$ = CHR$(27) THEN END
157 LOOP UNTIL FINISHED
158 VidSegment% = LAYER
159 GOSUB SetVideoSeg
160 Xpos% = 80
161 Ypos% = 50
162 Text$ = "Opps!!![Press Any Key]"
163 col% = 67
164 GOSUB AFPrint
165 VidSegment% = VIDEO
166 GOSUB SetVideoSeg
167 PUT (0, 0), VPAGE(6), PSET
168 c$ = INPUT$(1)
169 FOR i% = 2 TO 9
170 GFXSize% = i%
171 GFXx1% = 0
172 GFXy1% = 0
173 GFXx2% = 319
174 GFXy2% = 199
175 GOSUB GFX
176 WAIT &H3DA, 8
177 NEXT i%
178 LOOP WHILE Lives >= 0
179 CLS
180 SCREEN 13
181 PRINT "Patience pays."
182 PRINT "Try Again."
183 DEF SEG
184 CLS
185 SCREEN 0
186 WIDTH 80
187 LOCATE 1, 1
188 PRINT "Final Score:" + STR$(Score&)
189 PRINT "Relsoft 2003"
190 END
191 '****************Draw spikes***************************
192 DrawSpikes:
193 SpikeAnim% = (SpikeAnim% AND 7) + 1
194 IF SpikeAnim% = 1 THEN SpikeFrame% = (SpikeFrame% MOD 3) + 1
195 SpikeOff% = ((260 \ 2) * SpikeFrame%) + 1
196 spikeScrollCount% = (spikeScrollCount% AND 3) + 1
197 IF spikeScrollCount% = 1 THEN
198 spikeOffset% = (spikeOffset% - 1) AND 15
199 END IF
200 FOR spikeX% = 0 TO 18
201 PUT (spikeX% * 16 + spikeOffset%, 184), SpikeSpr(SpikeOff%), PSET
202 NEXT spikeX%
203 RETURN
204 '****************SetVideo SEG***************************
205 SetVideoSeg:
206 DEF SEG
207 IF VideoAddrOff& = 0 THEN
208 SCREEN 13
209 PSET (160, 100), 0
210 FOR Offset& = 0 TO 32764
211 IF PEEK(Offset&) = &HA0 THEN
212 IF PEEK(Offset& + 1) = &H7D THEN
213 IF PEEK(Offset& + 2) = &H0 THEN
214 IF PEEK(Offset& + 3) = &HA0 THEN
215 VideoAddrOff& = Offset& + 2
216 EXIT FOR
217 END IF
218 END IF
219 END IF
220 END IF
221 NEXT
222 END IF
223 POKE VideoAddrOff&, VidSegment% AND &HFF
224 POKE VideoAddrOff& + 1, (VidSegment% AND &HFF00&) \ &H100
225 RETURN
226 '****************GFX SEG**********************************
227 GFX:
228 FOR GFXXsize% = GFXx1% TO GFXx2% STEP GFXSize%
229 FOR GFXYsize% = GFXy1% TO GFXy2% STEP GFXSize%
230 P = POINT(GFXXsize%, GFXYsize%)
231 LINE (GFXXsize% - 1, GFXYsize% - 1)-(GFXXsize% + GFXSize% - 1, GFXYsize% + GFXSize% - 1), P, BF
232 NEXT GFXYsize%
233 NEXT GFXXsize%
234 RETURN
235 '****************ADD MINE********************************************
236 AddMine:
237 FOR i% = 0 TO MAXMINES
238 IF NOT Mine(i%).Active THEN
239 Mine(i%).id = INT(RND * 6)
240 Mine(i%).x = 344
241 Mine(i%).y = INT(RND * 184)
242 Mine(i%).xv = .12 + (RND * 2) / 5
243 Mine(i%).yv = .12 + (RND * 2) / 5
244 Mine(i%).Hei = 10 + (Int20)
245 Mine(i%).Wid = 10 + (20)
246 Mine(i%).angle = INT(RND * 359)
247 Mine(i%).Active = TRUE
248 Mine(i%).Counter = 0
249 Mine(i%).Frame = 1
250 IF Mine(i%).id = 0 THEN
251 Score& = Score& + 10
252 Mine(i%).SFrame = 0
253 ELSEIF Mine(i%).id = 1 THEN
254 Score& = Score& + 20
255 Mine(i%).SFrame = 2
256 ELSEIF Mine(i%).id = 2 THEN
257 Score& = Score& + 30
258 Mine(i%).SFrame = 4
259 ELSEIF Mine(i%).id = 3 THEN
260 Score& = Score& + 70
261 Mine(i%).SFrame = 6
262 ELSEIF Mine(i%).id = 4 THEN
263 Score& = Score& + 100
264 Mine(i%).SFrame = 8
265 ELSEIF Mine(i%).id = 5 THEN
266 Score& = Score& + 120
267 Mine(i%).SFrame = 8
268 ELSE
269 END IF
270 EXIT FOR
271 END IF
272 NEXT i%
273 RETURN
274 '****************Collide Me****************************************************
275 CollideMe:
276 DoCollision = FALSE
277 tbx% = Bubble.x
278 tby% = Bubble.y
279 BR% = 12 * 12
280 db! = SQR(BR%)
281 bcx% = tbx% + 10
282 bcy% = tby% + 10
283 FOR i = 0 TO MAXMINES
284 IF Mine(i).Active THEN
285 tcx% = Mine(i).cx + 8
286 tcy% = Mine(i).cy + 8
287 IF tcx% < bcx% + db! THEN
288 IF tcx% > bcx% - db! THEN
289 IF tcy% < bcy% + db! THEN
290 IF tcy% > bcy% - db! THEN
291 DoCollision = TRUE
292 EXIT FOR
293 END IF
294 END IF
295 END IF
296 END IF
297 END IF
298 NEXT i
299 RETURN
300 '****************Stariray*****************************************************
301 DoStars:
302 FOR S% = 0 TO MAXSTARS
303 Stars(S%).x = Stars(S%).x + Stars(S%).xv
304 Stars(S%).y = Stars(S%).y + Stars(S%).yv
305 IF Stars(S%).x < 0 OR Stars(S%).y > 180 THEN
306 Stars(S%).x = INT(RND * 520)
307 Stars(S%).y = 0
308 Stars(S%).xv = -(.01 + (RND * 1))
309 Stars(S%).yv = (.01 + (RND * 1))
310 Stars(S%).c = INT(RND * 255)
311 END IF
312 PSET (Stars(S%).x, Stars(S%).y), Stars(S%).c
313 NEXT S%
314 RETURN
315 '****************Init********************************************************
316 INIT:
317 FOR A% = 0 TO 359
318 LutCOS(A%) = COS(A% * PI / 180)
319 LutSIN(A%) = SIN(A% * PI / 180)
320 NEXT A%
321 FOR S% = 0 TO MAXSTARS
322 Stars(S%).x = INT(RND * 520)
323 Stars(S%).y = INT(RND * 180)
324 Stars(S%).xv = -(.01 + (RND * 1))
325 Stars(S%).yv = (.01 + (RND * 1))
326 Stars(S%).c = INT(RND * 255)
327 NEXT S%
328 RESTORE BUBBLEDATA
329 READ MaxElem%
330 REDIM BubbleSpr(1 TO MaxElem%) AS INTEGER
331 FOR i% = 1 TO MaxElem%
332 READ pixel2%
333 BubbleSpr(i%) = pixel2%
334 NEXT i%
335 REDIM Temp(1 TO 1000)
336 ptr& = 1
337 IndexNo = 1
338 LastInt = UBOUND(BubbleSpr)
339 DO
340 Temp(IndexNo) = ptr&
341 IndexNo = IndexNo + 1
342 x& = (BubbleSpr(ptr&) \ 8) * (BubbleSpr(ptr& + 1)) + 4
343 IF x& MOD 2 THEN x& = x& + 1
344 ptr& = ptr& + (x& \ 2)
345 LOOP WHILE ptr& < LastInt
346 LastImage = IndexNo - 1
347 REDIM BubbleIdx(1 TO LastImage) AS INTEGER
348 FOR n = 1 TO LastImage
349 BubbleIdx(n) = Temp(n)
350 NEXT n
351 ERASE Temp
352 REDIM BubbleMask(1 TO UBOUND(BubbleSpr)) AS INTEGER
353 FOR i = 1 TO UBOUND(BubbleSpr) 'Recopy values
354 BubbleMask(i) = BubbleSpr(i)
355 NEXT i
356 FOR i = 1 TO UBOUND(BubbleIdx) 'mask em. ;*)
357 W% = BubbleSpr(BubbleIdx(i)) \ 8
358 H% = BubbleSpr(BubbleIdx(i) + 1)
359 foo& = 0
360 FOR y = 0 TO H% - 1
361 FOR x = 0 TO W% - 1
362 DEF SEG = VARSEG(BubbleSpr(1))
363 c% = PEEK(VARPTR(BubbleSpr(BubbleIdx(i) + 2)) + foo&)
364 IF c <> 0 THEN
365 DEF SEG = VARSEG(BubbleMask(1))
366 POKE VARPTR(BubbleMask(BubbleIdx(i) + 2)) + foo&, 0
367 ELSE
368 DEF SEG = VARSEG(BubbleMask(1))
369 POKE VARPTR(BubbleMask(BubbleIdx(i) + 2)) + foo&, 255
370 END IF
371 foo& = foo& + 1
372 NEXT x
373 NEXT y
374 NEXT i
375 DEF SEG
376 RESTORE MINEDATA
377 READ MaxElem%
378 REDIM MineSpr(1 TO MaxElem%) AS INTEGER
379 FOR i% = 1 TO MaxElem%
380 READ pixel2%
381 MineSpr(i%) = pixel2%
382 NEXT i%
383 REDIM Temp(1 TO 1000)
384 ptr& = 1
385 IndexNo = 1
386 LastInt = UBOUND(MineSpr)
387 DO
388 Temp(IndexNo) = ptr&
389 IndexNo = IndexNo + 1
390 x& = (MineSpr(ptr&) \ 8) * (MineSpr(ptr& + 1)) + 4
391 IF x& MOD 2 THEN x& = x& + 1
392 ptr& = ptr& + (x& \ 2)
393 LOOP WHILE ptr& < LastInt
394 LastImage = IndexNo - 1
395 REDIM MineIdx(1 TO LastImage) AS INTEGER
396 FOR n = 1 TO LastImage
397 MineIdx(n) = Temp(n)
398 NEXT n
399 ERASE Temp
400 REDIM MineMask(1 TO UBOUND(MineSpr)) AS INTEGER
401 FOR i = 1 TO UBOUND(MineSpr) 'Recopy values
402 MineMask(i) = MineSpr(i)
403 NEXT i
404 FOR i = 1 TO UBOUND(MineIdx) 'mask em. ;*)
405 W% = MineSpr(MineIdx(i)) \ 8
406 H% = MineSpr(MineIdx(i) + 1)
407 foo& = 0
408 FOR y = 0 TO H% - 1
409 FOR x = 0 TO W% - 1
410 DEF SEG = VARSEG(MineSpr(1))
411 c% = PEEK(VARPTR(MineSpr(MineIdx(i) + 2)) + foo&)
412 IF c <> 0 THEN
413 DEF SEG = VARSEG(MineMask(1))
414 POKE VARPTR(MineMask(MineIdx(i) + 2)) + foo&, 0
415 ELSE
416 DEF SEG = VARSEG(MineMask(1))
417 POKE VARPTR(MineMask(MineIdx(i) + 2)) + foo&, 255
418 END IF
419 foo& = foo& + 1
420 NEXT x
421 NEXT y
422 NEXT i
423 DEF SEG
424 RESTORE SPIKEDATA
425 READ MaxElem%
426 REDIM SpikeSpr(1 TO MaxElem%) AS INTEGER
427 FOR i% = 1 TO MaxElem%
428 READ pixel2%
429 SpikeSpr(i%) = pixel2%
430 NEXT i%
431 RESTORE BUBEXP
432 READ MaxElem%
433 REDIM ExpSpr(1 TO MaxElem%) AS INTEGER
434 FOR i% = 1 TO MaxElem%
435 READ pixel2%
436 ExpSpr(i%) = pixel2%
437 NEXT i%
438 REDIM Temp(1 TO 1000)
439 ptr& = 1
440 IndexNo = 1
441 LastInt = UBOUND(ExpSpr)
442 DO
443 Temp(IndexNo) = ptr&
444 IndexNo = IndexNo + 1
445 x& = (ExpSpr(ptr&) \ 8) * (ExpSpr(ptr& + 1)) + 4
446 IF x& MOD 2 THEN x& = x& + 1
447 ptr& = ptr& + (x& \ 2)
448 LOOP WHILE ptr& < LastInt
449 LastImage = IndexNo - 1
450 REDIM ExpIdx(1 TO LastImage) AS INTEGER
451 FOR n = 1 TO LastImage
452 ExpIdx(n) = Temp(n)
453 NEXT n
454 ERASE Temp
455 REDIM ExpMask(1 TO UBOUND(ExpSpr)) AS INTEGER
456 FOR i = 1 TO UBOUND(ExpSpr) 'Recopy values
457 ExpMask(i) = ExpSpr(i)
458 NEXT i
459 FOR i = 1 TO UBOUND(ExpIdx) 'mask em. ;*)
460 W% = ExpSpr(ExpIdx(i)) \ 8
461 H% = ExpSpr(ExpIdx(i) + 1)
462 foo& = 0
463 FOR y = 0 TO H% - 1
464 FOR x = 0 TO W% - 1
465 DEF SEG = VARSEG(ExpSpr(1))
466 c% = PEEK(VARPTR(ExpSpr(ExpIdx(i) + 2)) + foo&)
467 IF c <> 0 THEN
468 DEF SEG = VARSEG(ExpMask(1))
469 POKE VARPTR(ExpMask(ExpIdx(i) + 2)) + foo&, 0
470 ELSE
471 DEF SEG = VARSEG(ExpMask(1))
472 POKE VARPTR(ExpMask(ExpIdx(i) + 2)) + foo&, 255
473 END IF
474 foo& = foo& + 1
475 NEXT x
476 NEXT y
477 NEXT i
478 DEF SEG
479 VPAGE(6) = 2560 'Width 320*8
480 VPAGE(7) = 200 'Height
481 LAYER = VARSEG(VPAGE(0)) + 1 'Buffer Seg(Ask Plasma)
482 Score& = 0
483 Lives = 2
484 RETURN
485 '****************Do Mines*****************************************************
486 DoMines:
487 xAnicount = (xAnicount AND 3) + 1
488 FOR i = 0 TO MAXMINES
489 IF Mine(i).Active THEN
490 GOSUB Checkid
491 IF tcx% >= 0 AND tcy% >= 0 AND tcx% < 305 AND tcy% < 184 THEN
492 IF xAnicount = 1 THEN
493 Mine(i).Frame = (Mine(i).Frame AND 1) + 1
494 END IF
495 cf% = Mine(i).Frame + Mine(i).SFrame
496 PUT (tcx%, tcy%), MineMask(MineIdx(cf%)), AND
497 PUT (tcx%, tcy%), MineSpr(MineIdx(cf%)), OR
498 END IF
499 IF Mine(i).x < 0 THEN
500 Mine(i).Active = FALSE
501 END IF
502 END IF
503 NEXT i
504 RETURN
505 '****************Check Id*****************************************************
506 Checkid:
507 'id
508 '0=Static
509 '1=vert
510 '2=Horz
511 '3=Circular
512 id = Mine(i).id
513 IF id = 0 THEN
514 Mine(i).x = Mine(i).x - Mine(i).xv
515 tcx% = Mine(i).x
516 tcy% = Mine(i).y
517 Mine(i).cx = tcx%
518 Mine(i).cy = tcy%
519 ELSEIF id = 1 THEN
520 Mine(i).x = Mine(i).x - .55
521 Mine(i).angle = Mine(i).angle - 1
522 IF Mine(i).angle < 0 THEN Mine(i).angle = 360 + Mine(i).angle
523 Mine(i).yv = LutSIN(Mine(i).angle) * 50
524 tcx% = Mine(i).x
525 tcy% = Mine(i).y + Mine(i).yv
526 Mine(i).cx = tcx%
527 Mine(i).cy = tcy%
528 ELSEIF id = 2 THEN
529 Mine(i).x = Mine(i).x - .55
530 Mine(i).angle = Mine(i).angle - 1
531 IF Mine(i).angle < 0 THEN Mine(i).angle = 360 + Mine(i).angle
532 Mine(i).xv = LutSIN(Mine(i).angle) * 50
533 tcx% = Mine(i).x + Mine(i).xv
534 tcy% = Mine(i).y
535 Mine(i).cx = tcx%
536 Mine(i).cy = tcy%
537 ELSEIF id = 3 THEN
538 Mine(i).x = Mine(i).x - .55
539 Mine(i).angle = Mine(i).angle - 1
540 IF Mine(i).angle < 0 THEN Mine(i).angle = 360 + Mine(i).angle
541 Mine(i).xv = LutCOS(Mine(i).angle) * 50
542 Mine(i).yv = LutSIN(Mine(i).angle) * 50
543 tcx% = Mine(i).x + Mine(i).xv
544 tcy% = Mine(i).y + Mine(i).yv
545 Mine(i).cx = tcx%
546 Mine(i).cy = tcy%
547 ELSEIF id = 4 THEN
548 Mine(i).x = Mine(i).x - .55
549 Mine(i).angle = (Mine(i).angle + 1) MOD 360
550 Mine(i).xv = LutCOS(Mine(i).angle) * 50
551 Mine(i).yv = LutSIN(Mine(i).angle) * 50
552 tcx% = Mine(i).x + Mine(i).xv
553 tcy% = Mine(i).y + Mine(i).yv
554 Mine(i).cx = tcx%
555 Mine(i).cy = tcy%
556 ELSEIF id = 5 THEN
557 Mine(i).x = Mine(i).x - .55
558 Mine(i).angle = (Mine(i).angle + 1) MOD 360
559 Mine(i).xv = .5
560 Mine(i).yv = LutSIN(Mine(i).angle) * 70
561 tcx% = Mine(i).x + Mine(i).xv
562 tcy% = Mine(i).y + Mine(i).yv
563 Mine(i).cx = tcx%
564 Mine(i).cy = tcy%
565 ELSE
566 END IF
567 RETURN
568 '****************AFPRINT******************************************************
569 AFPrint:
570 AFx% = Xpos%
571 AFy% = Ypos%
572 Spacing% = 8
573 FOR i% = 0 TO LEN(Text$) - 1
574 AFx% = AFx% + Spacing%
575 Offset% = 8 * ASC(MID$(Text$, i% + 1, 1)) + 14
576 FOR J% = 0 TO 7
577 DEF SEG = &HFFA6
578 Bit% = PEEK(Offset% + J%)
579 IF Bit% AND 1 THEN PSET (AFx%, AFy% + J%), col% + J%
580 IF Bit% AND 2 THEN PSET (AFx% - 1, AFy% + J%), col% + J%
581 IF Bit% AND 4 THEN PSET (AFx% - 2, AFy% + J%), col% + J%
582 IF Bit% AND 8 THEN PSET (AFx% - 3, AFy% + J%), col% + J%
583 IF Bit% AND 16 THEN PSET (AFx% - 4, AFy% + J%), col% + J%
584 IF Bit% AND 32 THEN PSET (AFx% - 5, AFy% + J%), col% + J%
585 IF Bit% AND 64 THEN PSET (AFx% - 6, AFy% + J%), col% + J%
586 IF Bit% AND 128 THEN PSET (AFx% - 7, AFy% + J%), col% + J%
587 NEXT J%
588 NEXT i%
589 DEF SEG
590 RETURN
591 '****************Re init******************************************************
592 ReInit:
593 Bubble.x = 100
594 Bubble.y = 30
595 Bubble.xv = 0
596 Bubble.yv = 0
597 Bubble.Frame = 1
598 BubbleExp = FALSE
599 FOR i = 0 TO MAXMINES
600 Mine(i).id = 0
601 Mine(i).x = 0
602 Mine(i).y = 0
603 Mine(i).cx = 0
604 Mine(i).cy = 0
605 Mine(i).xv = 0
606 Mine(i).yv = 0
607 Mine(i).Hei = 0
608 Mine(i).Wid = 0
609 Mine(i).angle = 0
610 Mine(i).Active = FALSE
611 Mine(i).Counter = 0
612 Mine(i).Frame = 1
613 Mine(i).SFrame = 0
614 NEXT i
615 RETURN
616 '****************Intro********************************************************
617 Intro:
618 RETURN
619 BUBBLEDATA:
620 DATA 404
621 DATA 160,20,0,4352,5395,6166,6425,6425,5656,4885,17,0,0,5393,6424,5656,5397,5397,6166,6169
622 DATA 4373,0,4352,5909,5398,4627,5395,4371,4881,5653,5399,17,5393,5399,4369,5907,6938,4889,0,4352
623 DATA 5909,4373,6163,4374,5649,7451,6427,4888,0,0,5649,4888,6421,21,6931,7198,4630,4370,0,0
624 DATA 5376,5401,6166,4371,7447,5660,17,0,0,0,4864,5656,5656,4881,6938,4374,0,0,0,0
625 DATA 4352,6166,5401,5905,5915,17,0,0,0,0,0,6421,5401,6418,5403,0,0,0,0,0
626 DATA 0,6421,5401,5649,4888,0,0,0,0,0,0,6421,5401,4352,4370,0,0,0,0,4625
627 DATA 17,6421,5656,17,4352,4370,0,0,4352,6166,4371,6166,6166,19,4608,5398,17,0,5393,6425
628 DATA 4883,5656,6421,21,4352,5909,4373,0,5650,4886,5393,5401,6163,4374,0,5393,4630,0,4625,17
629 DATA 5649,4888,5393,5399,17,4352,4370,0,0,4352,5909,4373,4352,5909,5398,4371,0,0,4881,5653
630 DATA 5399,17,0,5393,6424,5656,5397,5397,6166,6169,4373,0,0,4352,5395,6166,6425,6425,5656,4885
631 DATA 17,0,160,20,0,0,0,4881,5397,5397,4371,0,0,0,0,0,4881,6166,6425,6425
632 DATA 5656,4371,0,0,0,4881,6166,5656,5397,5397,6166,5656,4371,0,0,6419,5657,5397,4885,17
633 DATA 4881,6422,4889,0,4352,6422,5399,6935,6685,19,0,5649,5657,17,4864,5656,6677,7709,6685,19
634 DATA 0,4352,6166,19,5649,5400,7447,7198,4887,17,0,0,6163,4374,6163,5398,7707,5660,17,0
635 DATA 0,0,5649,4888,6421,5397,7196,4374,0,0,0,0,5376,5401,6421,4885,5656,17,0,0
636 DATA 0,0,5376,5401,6421,4373,4370,0,0,0,0,4625,5393,5401,6421,21,4352,4370,0,0
637 DATA 0,5907,5395,5401,6163,4374,4608,5398,17,0,4352,6166,5653,4888,5649,4888,4352,5909,4373,0
638 DATA 0,5656,6165,4374,4864,5656,17,5393,4630,4352,0,5376,6166,19,4352,6422,4374,4352,4370,4608
639 DATA 0,5910,5657,17,0,6419,5657,4371,0,4352,5909,6423,4889,0,0,4881,6166,5656,5397,5397
640 DATA 6166,5656,4371,0,0,0,4881,6166,6425,6425,5656,4371,0,0,0,0,0,4881,5397,5397
641 DATA 4371,0,0,0
642 MINEDATA:
643 DATA 1300
644 DATA 128,16,0,0,0,6400,0,0,0,0,0,0,0,17321,170,0,0,0,0,0
645 DATA 0,17177,25,0,0,0,0,0,5376,17180,-21988,0,0,0,0,0,-20566,17180,6684,169
646 DATA 0,0,0,-22016,7193,17219,7198,-21841,0,0,-22016,7193,17180,17731,17219,7196,-22247,0,17177,17219
647 DATA 17731,17731,17221,17219,17221,25,-22016,7193,17180,17731,17219,7196,-22503,0,0,-22528,7193,17182,7235,-22247
648 DATA 0,0,0,0,6569,17181,6428,168,0,0,0,0,-22528,17180,-21988,0,0,0,0,0
649 DATA 0,17177,25,0,0,0,0,0,0,17320,168,0,0,0,0,0,0,6400,0,0
650 DATA 0,0,0,0,0,0,0,0,0,0,128,16,0,0,0,0,0,0,0,0
651 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6400
652 DATA 0,0,0,0,0,0,0,7337,169,0,0,0,0,0,-21760,17583,-21735,0,0,0
653 DATA 0,0,6570,17480,6472,169,0,0,0,6400,17436,18500,17476,6429,0,0,0,0,-20715,17480
654 DATA 6472,168,0,0,0,0,-21760,17433,-21735,0,0,0,0,0,0,7338,168,0,0,0
655 DATA 0,0,0,6400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
656 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
657 DATA 128,16,0,0,0,6400,0,0,0,0,0,0,0,24489,170,0,0,0,0,0
658 DATA 0,24345,25,0,0,0,0,0,5376,24348,-21988,0,0,0,0,0,-20566,24348,6684,169
659 DATA 0,0,0,-22016,7193,24415,7198,-21841,0,0,-22016,7193,24348,23391,24415,7196,-22247,0,24345,24415
660 DATA 23391,23391,24411,24415,24411,25,-22016,7193,24348,23391,24415,7196,-22503,0,0,-22528,7193,24350,7263,-22247
661 DATA 0,0,0,0,6569,24349,6428,168,0,0,0,0,-22528,24348,-21988,0,0,0,0,0
662 DATA 0,24345,25,0,0,0,0,0,0,24488,168,0,0,0,0,0,0,6400,0,0
663 DATA 0,0,0,0,0,0,0,0,0,0,128,16,0,0,0,0,0,0,0,0
664 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6400
665 DATA 0,0,0,0,0,0,0,7337,169,0,0,0,0,0,-21760,24239,-21735,0,0,0
666 DATA 0,0,6570,24074,6410,169,0,0,0,6400,24092,2654,24158,6429,0,0,0,0,-20715,24074
667 DATA 6410,168,0,0,0,0,-21760,24089,-21735,0,0,0,0,0,0,7338,168,0,0,0
668 DATA 0,0,0,6400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
669 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
670 DATA 128,16,0,0,0,6400,0,0,0,0,0,0,0,20649,170,0,0,0,0,0
671 DATA 0,20505,25,0,0,0,0,0,5376,20508,-21988,0,0,0,0,0,-20566,20508,6684,169
672 DATA 0,0,0,-22016,7193,20560,7198,-21841,0,0,-22016,7193,20508,21328,20560,7196,-22247,0,20505,20560
673 DATA 21328,21328,20563,20560,20563,25,-22016,7193,20508,21328,20560,7196,-22445,0,0,-22528,7193,20510,7248,-22247
674 DATA 0,0,0,0,6569,20509,6428,168,0,0,0,0,-22528,20508,-21988,0,0,0,0,0
675 DATA 0,20505,25,0,0,0,0,0,0,20648,168,0,0,0,0,0,0,6400,0,0
676 DATA 0,0,0,0,0,0,0,0,0,0,128,16,0,0,0,0,0,0,0,0
677 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6400
678 DATA 0,0,0,0,0,0,0,7337,169,0,0,0,0,0,-21760,20655,-21735,0,0,0
679 DATA 0,0,6570,20563,6483,169,0,0,0,6400,20508,21328,20560,6429,0,0,0,0,-20715,20563
680 DATA 6483,168,0,0,0,0,-21760,20505,-21735,0,0,0,0,0,0,7338,168,0,0,0
681 DATA 0,0,0,6400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
682 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
683 DATA 128,16,0,0,0,6400,0,0,0,0,0,0,0,22441,170,0,0,0,0,0
684 DATA 0,22297,25,0,0,0,0,0,5376,22300,-21988,0,0,0,0,0,-20566,22300,6684,169
685 DATA 0,0,0,-22016,7193,22359,7198,-21841,0,0,-22016,7193,22300,22615,22359,7196,-22247,0,22297,22359
686 DATA 22615,22615,22360,22359,22615,25,-22016,7193,22300,22615,22359,7196,-22441,0,0,-22528,7193,22302,7255,-22247
687 DATA 0,0,0,0,6569,22301,6428,168,0,0,0,0,-22528,22300,-21988,0,0,0,0,0
688 DATA 0,22297,25,0,0,0,0,0,0,22440,168,0,0,0,0,0,0,6400,0,0
689 DATA 0,0,0,0,0,0,0,0,0,0,128,16,0,0,0,0,0,0,0,0
690 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6400
691 DATA 0,0,0,0,0,0,0,7337,169,0,0,0,0,0,-21760,22703,-21735,0,0,0
692 DATA 0,0,6570,22611,6483,169,0,0,0,6400,22556,21336,22616,6429,0,0,0,0,-20715,22611
693 DATA 6483,168,0,0,0,0,-21760,22553,-21735,0,0,0,0,0,0,7338,168,0,0,0
694 DATA 0,0,0,6400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
695 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
696 DATA 128,16,0,0,0,6400,0,0,0,0,0,0,0,7849,170,0,0,0,0,0
697 DATA 0,7961,25,0,0,0,0,0,5376,7964,-21988,0,0,0,0,0,-20566,7964,6684,169
698 DATA 0,0,0,-22016,7193,7967,7198,-21841,0,0,-22016,7193,7964,7711,7967,7196,-22247,0,7705,7967
699 DATA 7711,7967,7966,7967,7966,25,-22016,7193,7964,7711,7967,7196,-22503,0,0,-22528,7193,7966,7199,-22247
700 DATA 0,0,0,0,6569,7965,6428,168,0,0,0,0,-22528,7708,-21988,0,0,0,0,0
701 DATA 0,7961,25,0,0,0,0,0,0,8104,168,0,0,0,0,0,0,6400,0,0
702 DATA 0,0,0,0,0,0,0,0,0,0,128,16,0,0,0,0,0,0,0,0
703 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6400
704 DATA 0,0,0,0,0,0,0,7337,169,0,0,0,0,0,-22784,8111,-22759,0,0,0
705 DATA 0,0,6570,7964,6428,169,0,0,0,6400,7964,7711,7711,6429,0,0,0,0,-20715,7964
706 DATA 6428,168,0,0,0,0,-22784,7961,-22759,0,0,0,0,0,0,7338,168,0,0,0
707 DATA 0,0,0,6400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
708 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
709 SPIKEDATA:
710 DATA 520
711 DATA 128,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0
712 DATA 21,0,0,5376,0,5376,21,0,24,0,0,6400,0,5376,5401,0,5404,0,0,7189
713 DATA 0,6420,5400,0,5404,0,0,7189,0,6421,5404,0,5404,30133,-18984,7444,0,7189,5404,0
714 DATA 5404,8122,6685,7189,0,7189,5404,0,5407,7962,-17729,7957,0,7444,5404,0,5151,-16523,-18915,7956
715 DATA 0,7189,5407,0,5407,6656,117,7957,0,7957,5407,21,6431,-10024,-18984,7960,5376,7957,7196,5141
716 DATA 6431,7610,6842,7961,5397,7196,6421,5404,7199,7957,5407,7964,7189,5401,0,6421,8117,7960,6429,-19169
717 DATA 5401,0,0,0,-18923,7964,7355,5557,0,0,128,16,0,0,0,0,0,0,0,0
718 DATA 0,0,0,0,0,0,0,0,5376,0,6144,21,0,0,21,21,5376,0,6400,21
719 DATA 0,0,21,21,6144,21,7168,21,0,5376,5145,21,6400,21,7424,24,0,5376,5400,21
720 DATA 6144,21,7168,29977,-10059,5120,5145,21,6400,21,7168,7960,6847,5376,5401,21,6144,21,7936,7961
721 DATA -17891,5376,5144,25,6400,21,7936,-16615,-18915,5120,5405,24,7168,21,7936,6680,216,5120,5407,25
722 DATA 7936,24,7936,-19175,-10123,6400,5407,28,7168,5145,7936,5400,6842,6325,6431,21,0,6428,6421,5407
723 DATA -17889,7957,5404,0,0,5120,7449,6428,6429,7193,21,0,0,0,5397,6429,-17734,5401,0,0
724 DATA 128,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21
725 DATA 0,6400,21,0,5376,0,0,21,0,7168,21,0,5376,0,0,5401,0,7168,21,0
726 DATA 6165,0,0,5400,0,7424,24,0,6420,0,0,5401,0,7349,-10215,0,6421,0,0,5400
727 DATA 0,7194,6681,0,6420,0,0,5401,0,8122,-17896,0,6165,0,0,5404,0,8117,-18919,0
728 DATA 7445,0,0,6172,0,7936,25,0,7193,0,0,6431,0,8117,-10216,0,7961,0,0,6428
729 DATA 29973,8122,6681,5557,7960,0,0,7168,5145,7199,-17895,6421,31,0,0,0,5401,7199,6676,7189
730 DATA 0,0,0,0,6400,6429,-17899,25,0,0,128,16,0,0,0,0,0,0,0,0
731 DATA 0,0,0,0,0,0,0,0,5376,5376,0,0,5376,25,0,21,5120,5376,0,0
732 DATA 5376,24,0,21,5376,6165,21,0,5120,29,5376,25,5376,6421,21,0,6400,28,5376,24
733 DATA 5120,6165,21,-10058,6581,28,5120,25,5376,6421,21,8122,6173,29,5376,25,6400,6420,20,8122
734 DATA 6429,31,5376,24,6144,7189,21,7541,6335,31,5376,25,6400,7957,21,-17920,6421,31,5376,28
735 DATA 7168,7957,24,-10123,6326,31,6144,29,5120,7961,-19175,7610,6421,31,6421,31,0,7189,5407,7967
736 DATA 7957,5144,7193,0,0,5376,6172,7967,7193,6426,21,0,0,0,6421,7965,-17896,5397,0,0
737 BUBEXP:
738 DATA 3084
739 DATA 256,32,0,0,0,0,0,0,0,4625,4626,17,0,0,0,0,0,0,0,0
740 DATA 0,0,0,0,4352,5138,5141,18,0,0,0,0,0,0,0,0,0,0,0,0
741 DATA 4352,5652,5384,18,0,0,0,0,0,0,0,0,0,0,0,0,4608,5909,5399,4370
742 DATA 0,0,0,0,0,0,0,0,0,0,0,0,4608,6166,5656,4370,0,0,0,0
743 DATA 0,0,0,0,0,0,0,0,4881,6152,2072,4371,0,0,0,0,0,0,0,0
744 DATA 0,0,0,0,4881,6152,2072,4371,0,0,0,0,0,0,0,0,0,0,0,0
745 DATA 4881,6408,2073,4371,0,0,0,0,0,0,0,0,0,0,0,0,4881,6423,5913,4371
746 DATA 0,0,0,0,0,0,0,0,0,0,0,0,5137,6680,6170,4372,0,0,0,0
747 DATA 0,0,0,0,0,0,0,4352,5650,1817,6407,4630,17,0,0,0,0,0,0,0
748 DATA 0,0,0,4369,5908,7451,6941,5143,4370,0,0,0,0,0,0,0,0,4352,4369,5139
749 DATA 6408,7708,7198,5914,4884,4369,4369,4369,17,0,0,4352,4625,4882,5395,5896,1817,3870,7695,6684
750 DATA 2072,4885,4627,4626,4626,4370,4625,4882,5396,2070,6167,6938,7708,3855,3855,7454,6407,5912,5640,5397
751 DATA 5140,4627,5138,5653,5896,6424,6681,7431,3870,3855,3855,7695,1821,6426,5912,2071,5398,4628,5138,5653
752 DATA 5911,6424,6681,7175,3870,3855,3855,7695,6940,6426,5912,5640,5141,4627,4882,5396,5397,2070,5911,6680
753 DATA 7708,3855,3855,7198,6170,2071,5397,4884,4626,4370,4625,4626,4626,4882,5139,2069,1817,3870,7695,6428
754 DATA 5399,4883,4626,4369,17,0,0,4352,4369,4369,4369,4882,6422,7708,7454,2073,4628,4369,0,0
755 DATA 0,0,0,0,0,0,0,4369,5908,7451,1821,5144,4369,0,0,0,0,0,0,0
756 DATA 0,0,0,4352,5650,7193,6684,4872,17,0,0,0,0,0,0,0,0,0,0,0
757 DATA 5137,6936,6407,4629,0,0,0,0,0,0,0,0,0,0,0,0,4881,6679,5914,4372
758 DATA 0,0,0,0,0,0,0,0,0,0,0,0,4881,6408,2073,4371,0,0,0,0
759 DATA 0,0,0,0,0,0,0,0,4881,6152,2072,4371,0,0,0,0,0,0,0,0
760 DATA 0,0,0,0,4881,6166,5656,4370,0,0,0,0,0,0,0,0,0,0,0,0
761 DATA 4625,5910,5399,18,0,0,0,0,0,0,0,0,0,0,0,0,4625,5909,5128,18
762 DATA 0,0,0,0,0,0,0,0,0,0,0,0,4608,5653,4885,17,0,0,0,0
763 DATA 0,0,0,0,0,0,0,0,4608,5396,4628,17,0,0,0,0,0,0,0,0
764 DATA 0,0,0,0,4352,4626,4370,0,0,0,0,0,0,0,256,32,0,0,0,0
765 DATA 0,0,4352,4369,4369,17,0,0,0,0,0,0,0,0,0,0,4352,4625,4882,5139
766 DATA 4884,4627,4370,17,0,0,0,0,0,0,0,0,4625,5139,5653,5911,5911,5398,4884,4370
767 DATA 0,0,0,0,0,0,0,4625,5395,5896,6424,6682,6682,6169,2071,4885,4370,0,0,0
768 DATA 0,0,4352,5138,6152,6937,7175,7453,7453,1820,6427,2072,4628,17,0,0,0,0,4881,5909
769 DATA 6937,7452,7710,7710,7710,7710,7197,6427,5399,4371,0,0,0,4352,5394,6423,7431,7710,3855,3855
770 DATA 3855,3855,7710,1821,5913,4629,17,0,0,4608,5908,7193,7709,3855,3855,3855,3855,3855,3855,7454
771 DATA 6428,5143,18,0,0,4881,6408,7431,3855,3855,3855,3855,3855,3855,3855,3855,1821,2073,4371,0
772 DATA 4352,5394,6936,7709,3855,3855,3855,3855,3855,3855,3855,3855,7454,6171,4629,17,4352,2067,7193,3870
773 DATA 3855,3855,3855,3855,3855,3855,3855,3855,7695,6428,4872,17,4608,5908,7451,3870,3855,3855,3855,3855
774 DATA 3855,3855,3855,3855,7695,6941,5143,18,4608,6165,7687,3855,3855,3855,3855,3855,3855,3855,3855,3855
775 DATA 3855,7198,5657,18,4881,6422,7708,3855,3855,3855,3855,3855,3855,3855,3855,3855,3855,7454,2074,4371
776 DATA 4881,6679,7709,3855,3855,3855,3855,3855,3855,3855,3855,3855,3855,7454,5914,4371,5137,6679,7709,3855
777 DATA 3855,3855,3855,3855,3855,3855,3855,3855,3855,7439,5915,4372,5137,6935,3869,3855,3855,3855,3855,3855
778 DATA 3855,3855,3855,3855,3855,7439,5915,4372,4881,6679,7709,3855,3855,3855,3855,3855,3855,3855,3855,3855
779 DATA 3855,7454,5914,4371,4881,6664,7709,3855,3855,3855,3855,3855,3855,3855,3855,3855,3855,7454,2074,4371
780 DATA 4608,6422,7708,3855,3855,3855,3855,3855,3855,3855,3855,3855,3855,7198,5657,18,4608,5908,7451,3870
781 DATA 3855,3855,3855,3855,3855,3855,3855,3855,7695,6941,5143,18,4352,2067,7193,3870,3855,3855,3855,3855
782 DATA 3855,3855,3855,3855,7695,6428,4872,17,4352,5394,6936,7709,3855,3855,3855,3855,3855,3855,3855,3855
783 DATA 7454,6171,4629,17,0,4881,6408,7431,3855,3855,3855,3855,3855,3855,3855,3855,1821,2073,4371,0
784 DATA 0,4608,5908,7193,7709,3855,3855,3855,3855,3855,3855,7454,6428,5143,18,0,0,4352,5394,6423
785 DATA 7431,7710,3855,3855,3855,3855,7710,1821,5913,4629,17,0,0,0,4881,5909,6937,7452,7710,3870
786 DATA 7695,7710,7197,6427,5399,4371,0,0,0,0,4352,5138,6152,6937,7452,7453,7453,7197,6427,2072
787 DATA 4628,17,0,0,0,0,0,4625,5395,5896,6681,6938,6683,6426,2071,4885,4370,0,0,0
788 DATA 0,0,0,0,4625,5139,2070,5911,5911,5640,4884,4370,0,0,0,0,0,0,0,0
789 DATA 4352,4625,4882,5139,4884,4627,4370,17,0,0,0,0,0,0,0,0,0,0,4352,4369
790 DATA 4369,17,0,0,0,0,0,0,256,32,0,0,0,0,0,0,0,0,0,0
791 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
792 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
793 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369
794 DATA 4369,4626,4626,4369,4369,0,0,0,0,0,0,0,0,0,4352,4625,5139,5396,5397,4884
795 DATA 4370,17,0,0,0,0,0,0,0,0,4625,5139,5910,6167,6168,5655,4884,4370,0,0
796 DATA 0,0,0,0,0,4352,5139,5910,6681,1799,1799,6426,5655,4884,17,0,0,0,0,0
797 DATA 0,4625,2068,6680,7431,7709,7454,1821,6170,5128,4370,0,0,0,0,0,4352,5138,6152,7451
798 DATA 7710,3855,3855,7710,6941,2072,4628,17,0,0,0,0,4369,5395,6936,7709,3855,3855,3855,3855
799 DATA 7454,6171,4885,4369,0,0,0,0,4625,5908,7450,3870,3855,3855,3855,3855,7695,6685,5143,4370
800 DATA 0,0,0,0,4881,6422,7687,3855,3855,3855,3855,3855,3855,1822,5657,4371,0,0,0,0
801 DATA 5137,6679,7709,3855,3855,3855,3855,3855,3855,7454,5914,4372,0,0,0,0,5137,6935,3869,3855
802 DATA 3855,3855,3855,3855,3855,7439,5915,4372,0,0,0,0,5138,1816,3870,3855,3855,3855,3855,3855
803 DATA 3855,7695,6151,4628,0,0,0,0,5138,1816,3870,3855,3855,3855,3855,3855,3855,7695,6151,4628
804 DATA 0,0,0,0,5137,6935,3869,3855,3855,3855,3855,3855,3855,7439,5915,4372,0,0,0,0
805 DATA 4881,6679,7709,3855,3855,3855,3855,3855,3855,7454,5914,4372,0,0,0,0,4881,6166,7687,3855
806 DATA 3855,3855,3855,3855,3855,1822,5656,4371,0,0,0,0,4625,5908,7450,3870,3855,3855,3855,3855
807 DATA 7695,6685,5143,4370,0,0,0,0,4369,5651,1816,7709,3855,3855,3855,3855,7454,6151,4886,4369
808 DATA 0,0,0,0,4352,5138,6408,7431,7710,3855,3855,7710,1821,2073,4628,17,0,0,0,0
809 DATA 0,4881,2068,6680,7452,7709,7710,7197,6427,5399,4371,0,0,0,0,0,0,4352,5139,5910
810 DATA 6681,1819,1799,6426,5912,4885,17,0,0,0,0,0,0,0,4625,5395,5896,6167,6168,2071
811 DATA 5141,4371,0,0,0,0,0,0,0,0,4352,4625,5139,5140,5140,4884,4627,17,0,0
812 DATA 0,0,0,0,0,0,0,4369,4369,4626,4626,4369,4369,0,0,0,0,0,0,0
813 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
814 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
815 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
816 DATA 0,0,256,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
817 DATA 0,0,0,0,4352,4369,4369,4369,4369,4369,4369,17,0,0,0,0,0,0,0,0
818 DATA 4625,4626,4883,-4077,5104,4626,4626,4369,17,0,0,0,0,0,0,4352,4882,5140,-4884,-28692
819 DATA 5519,4884,4883,4626,4369,0,0,0,0,0,0,4625,5139,5653,-29042,-29042,5774,5397,5140,4883
820 DATA 4626,17,0,0,0,0,4352,4882,5396,-29298,-29556,-29299,2189,5640,5397,5140,4883,4370,0,0
821 DATA 0,0,4625,5139,2069,-29555,-29556,-29556,-23901,2071,5640,5397,4884,4370,17,0,0,4352,4882,5613
822 DATA -23032,-29531,-29556,-29556,-23901,5911,-22874,5640,5141,4627,4369,0,0,4625,-4845,-29041,-23130,-23388,-23388,-23388
823 DATA -23645,5911,-23131,6053,5384,4884,4370,0,4352,4882,-28691,-29298,-23387,6168,6168,6168,6168,6168,-23388,-23644
824 DATA 5655,5141,4371,17,4352,4882,-29163,-29556,-23412,6168,6424,6681,6682,6169,-23528,-29556,-22619,5141,4627,17
825 DATA 4352,5138,-29419,-29556,-23412,6424,6681,1799,1820,6427,-23528,-29556,-29300,5142,4627,17,4352,5138,-29163,-29556
826 DATA -23412,6424,7195,7453,7453,6684,-23527,-29556,-29300,5384,4627,17,4352,5138,-29163,-29555,-23412,6681,7452,7710
827 DATA 7710,1821,6170,-29532,-29300,5518,4628,17,4352,5138,2069,-29555,-23412,6937,7709,3855,3855,7198,6426,-29532
828 DATA -29556,5517,4628,17,4352,5138,-29163,-29555,-23412,6937,7709,3855,3855,7454,6427,-29532,-29556,5771,4884,17
829 DATA 4352,5138,-29163,-29555,-23412,6681,7708,3855,3855,7454,6427,-29532,-29556,2187,4885,17,4352,5138,2069,-29531
830 DATA -23412,6681,7431,7710,7710,7197,6426,-29532,-29556,2189,4885,17,4352,4882,5653,-29530,-23412,6424,1818,7452
831 DATA 7453,1820,6170,-29532,-29556,2189,4885,17,4352,4882,5396,-29432,-29556,6564,6682,6938,1799,6683,-23527,-29556
832 DATA -29813,5640,4885,17,4352,4882,5396,-29432,-29556,-23412,6425,6425,6425,6425,-23528,-29556,-24181,5398,4628,17
833 DATA 4352,4625,5396,-29418,-29556,-29556,-23388,-23388,-23388,-23388,-23388,-29556,2187,5141,4627,17,0,4625,5139,-29163
834 DATA -29555,-29556,-29556,-29556,-29556,-29556,-29556,-29556,5515,4884,4370,0,0,4369,4882,5396,-29944,-29556,-29556,-29556
835 DATA -29556,-29556,-29556,-29812,5142,4627,17,0,0,4352,4625,5139,-30187,-29813,-29557,-29556,-29556,-29556,-29299,2189
836 DATA 4885,4370,0,0,0,0,4369,4882,5396,2070,-29944,-29301,-23155,-22875,5640,5141,4627,17,0,0
837 DATA 0,0,4352,4625,5139,5396,5653,2056,5896,2071,5397,4884,4370,0,0,0,0,0,0,4369
838 DATA 4882,4883,5140,5397,5653,5398,4884,4627,17,0,0,0,0,0,0,4352,4625,4626,4882,4883
839 DATA 5139,4884,4626,4370,0,0,0,0,0,0,0,0,4369,4369,4369,4369,4369,4369,4369,17
840 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
841 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,32,0,0
842 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
843 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,4369,4369,4369
844 DATA 17,0,0,0,0,0,0,0,0,0,0,4352,4625,4626,4626,4626,4369,0,0,0
845 DATA 0,0,0,0,0,0,4369,4369,4882,-3821,-3342,5105,4370,4369,0,0,0,0,0,0
846 DATA 0,4369,4625,4626,5139,-3308,-2828,5363,4627,4370,4369,17,0,0,0,0,4352,4625,4882,4883
847 DATA 5140,5397,5397,5141,4884,4883,4626,4370,0,0,0,0,4369,4882,5139,5140,5397,5397,5397,5397
848 DATA 5140,-3564,-9510,4825,17,0,0,4352,4626,5139,5396,5397,5397,5397,5397,5397,5397,5397,-9229,-9766
849 DATA 4370,0,0,4352,4882,5396,5397,5654,5654,2056,5640,5654,5654,5398,-3051,-9509,4370,0,0,4352
850 DATA 4882,5396,5654,2070,-22873,-22874,5911,2056,2056,5640,-3051,-9509,4370,0,0,4352,4882,5396,2070,-23032
851 DATA -29299,-23131,6053,5911,2056,5640,-3051,-9765,4370,0,0,4369,4882,5396,2070,-23273,-29556,-29556,-23412,-23643
852 DATA 2071,5640,5397,5107,4370,0,4352,4625,5139,5396,2070,-29534,-29556,-29556,-29556,-23132,2214,5640,5397,5109
853 DATA 4370,0,4352,4882,5140,5396,2070,-29534,-29556,-29556,-29556,-23412,2214,5640,5397,-2059,4370,17,4352,4882
854 DATA 5140,5396,2070,-29534,-29556,-29556,-29556,-23412,2214,5640,5397,-7691,4627,17,4352,5139,-3308,5620,2070,-23390
855 DATA -29556,-29556,-29556,-23412,2214,5654,-3051,-7660,4832,17,4352,5139,-2829,5397,2070,-23529,-29532,-29556,-29556,-23156
856 DATA 2214,5640,5397,-2315,4832,17,4352,4882,-2829,5397,2070,-23529,-23388,-29556,-29556,-22875,2056,5640,5397,-2572
857 DATA 4855,17,4352,4882,-2830,5397,2070,-23389,-23388,-29532,-23156,2214,2056,5640,5397,-3084,4627,17,4352,4625
858 DATA -3086,5397,2070,-23130,-23388,-23644,6051,2056,2056,5640,5397,-3340,4627,17,0,4625,5139,5396,5653,-23032
859 DATA -23387,6051,2071,2056,2056,5398,-3051,4884,4370,0,0,4369,4882,5140,5397,2070,-22874,5911,2056,5654
860 DATA 5654,5397,5364,4627,17,0,0,4352,4625,5139,5397,5653,2056,2056,5654,5397,5397,-3051,4884,4370
861 DATA 0,0,0,0,4625,5139,5397,5397,5397,5397,5397,5141,5140,5140,4627,17,0,0,0,0
862 DATA 4625,5139,5140,-3052,5397,5397,5397,5140,4883,4883,4370,0,0,0,0,0,4352,4882,4883,5139
863 DATA -3085,-2828,-2572,5110,4626,4626,17,0,0,0,0,0,0,4625,4626,4882,-3821,5362,-2058,4831
864 DATA 4369,4369,0,0,0,0,0,0,0,4352,4369,4625,4626,4882,4627,4370,17,0,0,0
865 DATA 0,0,0,0,0,0,0,4352,4369,4369,4369,4369,0,0,0,0,0,0,0,0
866 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
867 DATA 0,0,0,0,0,0,0,0,0,0,256,32,0,0,0,0,0,0,0,0
868 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
869 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
870 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
871 DATA 0,0,4352,4369,4369,4369,17,0,0,0,0,0,0,0,0,0,0,0,4625,-9966
872 DATA -15421,4627,4369,0,0,0,0,0,0,0,0,0,0,4352,4625,-9511,-15164,5083,4370,4369
873 DATA 4369,0,0,0,0,0,0,0,4369,4369,4626,-9255,-15164,-3621,4627,4626,4370,17,0,0
874 DATA 0,0,0,4352,4626,4626,4626,-9254,-9253,-3342,4883,4883,4627,4370,0,0,0,0,0,4625
875 DATA -9768,5079,4882,5139,5140,5140,4883,-9709,-9509,4825,17,0,0,0,0,4625,-3879,5104,4883,-6381
876 DATA -5398,5140,5140,-15142,-15164,5082,4370,0,0,0,0,4625,4883,4883,4883,-6381,-5398,5140,5140,-15141
877 DATA -15164,5083,4370,0,0,0,4352,4625,4882,4883,4883,-6425,5350,5140,-3052,-15140,-15164,5083,4370,0
878 DATA 0,0,4369,4625,4882,4883,5139,5140,5140,-2828,-2828,-9252,-9253,4826,4369,0,0,4352,4626,4626
879 DATA 4882,5139,5140,5140,-3052,-2828,-2828,-3341,-3598,4627,17,0,0,4369,4626,4626,4883,5140,5397,5397
880 DATA 5397,-3051,-2828,-3342,5103,4627,17,0,0,4625,4883,4626,-3565,-2829,5397,5397,5397,-3051,-2828,-3342
881 DATA 4883,4627,17,0,0,4625,4627,4626,-9453,-8996,5620,5397,5397,5397,-2828,-3341,4883,4627,17,0
882 DATA 0,4625,4626,4626,-9453,-15164,5596,5397,5397,-3051,-8996,5085,4883,4627,17,0,0,4369,4626,4626
883 DATA -9709,-15164,-2852,-2828,5397,-9195,-15164,5083,4883,4627,17,0,0,4352,4369,4626,4882,-9253,-2852,5140
884 DATA 5140,-8973,-15164,5082,4883,4626,17,0,0,0,4352,4625,4882,-9453,5363,5140,4884,-9230,-15421,5081
885 DATA 4626,4370,17,0,0,0,0,4625,4626,4883,5140,4884,4883,4883,-9767,4626,4626,4370,0,0
886 DATA 0,0,0,4625,4626,4882,4883,4883,4883,4627,4626,4626,4626,4370,0,0,0,0,0,4625
887 DATA 4626,4626,4883,5105,4883,4626,4626,4882,4627,4370,0,0,0,0,0,4369,4626,4626,4882,-3599
888 DATA 4883,4626,4626,4882,4883,4370,0,0,0,0,0,4352,4369,4369,4625,4883,4883,4626,4625,4626
889 DATA 4626,4370,0,0,0,0,0,0,0,0,4369,4626,4626,4369,4369,4369,4369,17,0,0
890 DATA 0,0,0,0,0,0,4352,4369,4369,17,0,0,0,0,0,0,0,0,0,0
891 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
892 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
893 DATA 0,0,0,0