Home » Archimedes archive » Archimedes World » AW-1991-02.adf » !AWFeb91/Goodies/StarFight/!StarFight/GAMECODE

!AWFeb91/Goodies/StarFight/!StarFight/GAMECODE

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1991-02.adf
Filename: !AWFeb91/Goodies/StarFight/!StarFight/GAMECODE
Read OK:
File size: 1B4DD bytes
Load address: FFFFFB41
Exec address: 9AECCF55
File contents
   10 REM >GAMECODE
   20 REM (C) Copyright
   30 REM N.WESTLEY & C.WESTLEY
   40 REM Warning !    STARFIGHT must be RUN first
   50 
   60 PROCassemble
   70 CALL gamecode
   80 
   90 END
  100 
  110 REM  ****************************************************************
  120 
  130 DEF PROCassemble
  140 DIM CODE% &24000
  150 FOR PASS=0 TO 2 STEP 2
  160 P%=CODE%
  170 [ OPT PASS
  180 .gamecode
  190 STMFD R13!,{R14}           ;  Save Return address to BASIC
  200 MOV R0,#200 : MOV R1,#3    ;  ESCAPE disabled / BREAK clears memory
  210 SWI "OS_Byte"
  220 MOV R0,#9                  ;  MODE
  230 SWI &100+22
  240 SWI "OS_WriteC"
  250 SWI "OS_RemoveCursors"     ;  OFF
  260 SWI &100+5                 ;  VDU 5
  270 SWI &100+18
  280 MOV R0,#3
  290 SWI "OS_WriteC"
  300 MOV R0,#3
  310 SWI "OS_WriteC"
  320 BL change_palette          ;  initialise palette
  330 B name_entered
  340 
  350 .game_start
  360 BL print_wave
  370 BL reset_var_addr          ;  address of start of variables
  380 BL init_wave_vars          ;  resets all variables to current wave
  390 BL load_newaddr : BL usership
  400 BL prepare_wave            ;  delay before start
  410 BL reset_var_addr
  420 MOV R0,#1                  ;  R0=1 THEN see program_variables routine
  430 BL init_wave_vars
  440 B display                  ;  PLAY GAME
  450 
  460 ; **********************************************************************
  470 
  480 
  490 .getloc
  500 STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
  510 ADD R10,R9,#9
  520 LDRB R1,[R2,R10]          ;   check if sprite is onscreen
  530 CMP R1,#0 : BNE onscreen
  540 MOV R1,#1 : STRB R1,[R2,R10]       ;  is now on screen
  550 .onscreen
  560 ADD R10,R9,#8
  570 LDRB R1,[R2,R10]          ;   pattern pointer
  580 STMFD R13!,{R14} : BL directive_pattern : LDMFD R13!,{R14}
  590 LDRB R4,[R3,R1]           ;   pattern data byte
  600 CMP R4,#32 : BNE this_number
  610  ;   offscreen - end of pattern for this sprite ELSE branch
  620 .offscreen
  630 ADD R10,R9,#9
  640 MOV R11,#2                ;   dead
  650 STRB R11,[R2,R10]
  660 STMFD R13!,{R14} : BL load_last_sprite : ADD R11,R11,#1 : BL store_last_sprite : LDMFD R13!,{R14} ; Check for end of pattern - for last sprite
  670 .this_number
  680 ANDS R4,R4,#4             ;  across, check sign of X co-ordinate
  690 BEQ xplus                 ;  BIT 3 set if minus so no branch
  700 
  710 .xminus
  720 LDRB R4,[R3,R1]
  730 AND R4,R4,#3
  740 ADD R4,R4,R4
  750 ADD R10,R9,#0
  760 LDR R0,[R2,R10]
  770 SUB R0,R0,R4
  780 B yvalue
  790 .xplus
  800 LDRB R4,[R3,R1]
  810 AND R4,R4,#3
  820 ADD R4,R4,R4              ;   multiply by 2
  830 ADD R10,R9,#0
  840 LDR R0,[R2,R10]
  850 ADD R0,R0,R4
  860 .yvalue
  870 LDRB R5,[R3,R1]           ;   down
  880 ANDS R5,R5,#32
  890 BEQ yplus
  900 .yminus
  910 LDRB R5,[R3,R1]
  920 AND R5,R5,#24
  930 MOV R5,R5,LSR #2
  940 MOV R6,#160 : MUL R7,R5,R6
  950 SUB R0,R0,R7
  960 ADD R10,R9,#0
  970 STR R0,[R2,R10]            ;   location of screen address
  980 B bomb_drop_check
  990 .yplus
 1000 LDRB R5,[R3,R1]
 1010 AND R5,R5,#24
 1020 MOV R5,R5,LSR #2           ;   divide by 4
 1030 MOV R6,#160 : MUL R7,R5,R6
 1040 ADD R0,R0,R7
 1050 ADD R10,R9,#0
 1060 STR R0,[R2,R10]            ;   location of screen address
 1070 
 1080 .bomb_drop_check
 1090 STMFD R13!,{R14,R1-R7} : BL random_generator : LDMFD R13!,{R14,R1-R7}
 1100 ADR R5,random_numbers
 1110 LDRB R6,bomb_drop_pos                ;   count for pattern positions to release bombs
 1120 .b
 1130 LDRB R4,[R5],#1
 1140 CMP R4,#0 : BEQ zero_pos   ;  start of pattern
 1150 CMP R1,R4
 1160 BEQ new_bomb
 1170 .zero_pos
 1180 SUBS R6,R6,#1
 1190 BNE b
 1200 B no_bomb
 1210 .new_bomb
 1220 LDRB R4,no_alien_bombs
 1230 MOV R5,R4,LSL#3            ;   8 bytes for each bomb dropped
 1240 ADD R4,R4,#1               ;   increment the no. of alien bombs on screen
 1250 STRB R4,no_alien_bombs
 1260 STMFD R13!,{R14} : BL directive_ab : LDMFD R13!,{R14}
 1270 ADD R4,R4,R5
 1280 .cyan
 1290 LDRB R5,cyan_counter : CMP R5,#0 : BEQ red    ; no cyan bomb
 1300 SUBS R5,R5,#1 : STRB R5,cyan_counter
 1310 BNE red
 1320 LDRB R5,Ccyan_counter : STRB R5,cyan_counter
 1330 MOV R5,#12 : STRB R5,[R4,#4]
 1340 B got_colour
 1350 .red
 1360 LDRB R5,red_counter : CMP R5,#0 : BEQ yellow   ;   no red bomb
 1370 SUBS R5,R5,#1 : STRB R5,red_counter
 1380 BNE yellow
 1390 LDRB R5,Cred_counter : STRB R5,red_counter
 1400 MOV R5,#24 : STRB R5,[R4,#4]
 1410 B got_colour
 1420 .yellow MOV R5,#0 : STRB R5,[R4,#4]
 1430 .got_colour
 1440 LDRB R5,bombs_speed : SUBS R5,R5,#1 : STRB R5,bombs_speed
 1450 BNE slow_bomb
 1460 LDRB R5,Cbombs_speed : STRB R5,bombs_speed
 1470 MOV R5,#2  : STRB R5,[R4,#5]
 1480 B fast_bomb
 1490 .slow_bomb
 1500 MOV R5,#1  : STRB R5,[R4,#5]
 1510 .fast_bomb
 1520 
 1530 STMFD R13!,{R14,R0-R2}
 1540 MOV R1,R0 : ADD R1,R1,#1920 : ADD R1,R1,#3     ;  place bombs below centre of alien sprite
 1550 STR R1,[R4]             ;   stores address alien reached when dropping
 1560 BL print_bomb : LDMFD R13!,{R15,R0-R2}
 1570 .no_bomb
 1580 MOV R15,R14
 1590 .no_alien_bombs EQUB 0
 1600 .cyan_counter   EQUB 4       ;   cyan bomb dropped every so many
 1610 .Ccyan_counter  EQUB 4
 1620 .red_counter     EQUB 8      ;   red bomb dropped every so many
 1630 .Cred_counter    EQUB 8
 1640 .bombs_speed     EQUB 10     ;   160= 1 line, 320= 2 lines on every 10'th bomb
 1650 .Cbombs_speed    EQUB 10
 1660 .bomb_drop_pos   EQUB 2      ;   positions in which to drop bombs, set to two
 1670 ALIGN
 1680
 1690 .directive_alien_bombs
 1700 LDRB R1,no_alien_bombs
 1710 MOV R15,R14
 1720 
 1730 .random_generator     ;   generate random numbers in pattern loop each    time character is moved, these are the positions the bombs are dropped.
 1740 LDRB R5,no_random_numbers       ;   number of random numbers to generate
 1750 LDRB R7,no_range
 1760 ADR R6,random_numbers ;   store for random numbers
 1770 .rgloop
 1780 MOV R1,#8             ;   initialise bit count
 1790 MOV R3,#&80000000     ;   msb set to 1 for TST
 1800 .begin
 1810 LDR R2,shiftreg
 1820 TST R2,R3
 1830 BEQ zerobit           ;   IF msb =0 Branch to zerobit
 1840 LDR R4,constant
 1850 EORS R2,R2,R4         ;   EOR bottom 3 bits of shiftreg with constant
 1860 .zerobit
 1870 MOVS R2,R2,LSL #1     ;   Rotate shiftreg 1 bit left
 1880 STR R2,shiftreg       ;   store random number
 1890 SUBS R1,R1,#1         ;   continue for 8 bits
 1900 BNE begin
 1910 MOV R2,R2,LSR #24     ;   Shift HI BYTE to LOW BYTE
 1920 .check_range
 1930 CMP R2,R7             ;   check random number range
 1940 BLE within_range
 1950 SUB R2,R2,R7          ;   random no. = random no. - 94
 1960 B check_range
 1970 .within_range
 1980 STRB R2,[R6,R5]       ;   store random no.
 1990 SUBS R5,R5,#1         ;   NEXT number
 2000 BNE rgloop
 2010 MOV R15,R14
 2020 
 2030 .shiftreg EQUD RND
 2040 .constant EQUD &0076B553
 2050 .random_numbers EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 2060 .no_random_numbers EQUB 2
 2070 .no_range EQUB 94
 2080 ALIGN
 2090
 2100 .display
 2110 ADD R8,R8,#1
 2120 STMFD R13!,{R14}:BL load_no_of_sprites:LDMFD R13!,{R14}
 2130 CMP R8,R10 : SUBEQ R8,R8,#1
 2140 MOV R9,#1 : STREQB R9,section_flag
 2150 MOV R12,#1 : MOV R9,#0
 2160 .loop
 2170 STMFD R13!,{R14,R0-R7} : BL change_palette : LDMFD R13!,{R14,R0-R7}
 2180
 2190 STMFD R13!,{R9,R8}: BL explosion_check : BL bomb_explo_check : BL cluster_check : LDMFD R13!,{R9,R8}
 2200 LDRB R10,section_flag : CMP R10,#1 : BEQ blackout                               ;     first set in pattern
 2210 CMP R8,R12 : BNE blackout
 2220 LDRB R10,delay : CMP R10,#0 : BEQ over2
 2230 SUB R10,R10,#1 : STRB R10,delay
 2240 MOV R12,#1 : MOV R9,#0
 2250 CMP R8,R12 : BEQ print
 2260 B blackout
 2270 .over2
 2280 LDRB R10,space : STRB R10,delay
 2290 CMP R8,R12 : BEQ print              ; check if last one in loop
 2300 
 2310 .blackout
 2320 STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
 2330 ADD R10,R9,#9 : LDRB R11,[R2,R10] : CMP R11,#4 : BEQ over    ; explosion
 2340 CMP R11,#2 : BEQ over    ;    dead / offscreen
 2350 ADD R10,R9,#0 : LDR R1,[R2,R10]
 2360 ADD R10,R9,#4
 2370 BL draw
 2380 
 2390 .print BL getloc        ;   before calculating new address the sprite is                                    removed from screen in routine blackout
 2400 ADD R10,R9,#9 : LDRB R11,[R2,R10] : CMP R11,#4 : BEQ over    ; explosion
 2410 CMP R11,#2 : BEQ over    ;    dead / offscreen
 2420 ADD R10,R9,#8 : ADD R1,R1,#1 : STRB R1,[R2,R10]     ; increment pattern pointer
 2430 ADD R10,R9,#0 : LDR R1,[R2,R10]    ;  location of screen address
 2440 ADD R10,R9,#4
 2450 STMFD R13!,{R14,R0-R8} : BL move_stars : LDMFD R13!,{R14,R0-R8}
 2460 BL draw
 2470 STMFD R13!,{R14} : BL load_dead : LDMFD R13!,{R14} : CMP R1,#1 : BLEQ usership_explosion
 2480 STMFD R13!,{R14} : BL load_dead : LDMFD R13!,{R14} : CMP R1,#1 : BEQ usership_DEAD
 2490 STMFD R13!,{R8,R9}: BL test_keypress : LDMFD R13!,{R8,R9}
 2500 MOV R0,#129 : LDR R1,escape : MOV R2,#255 : SWI "OS_Byte"  ; ESCAPE
 2510 CMP R1,#255 : BLEQ self_destruct
 2520 BL usership_collision
 2530 .usership_DEAD
 2540 BL load_no_of_bullets : CMP R2,#0 : STMFD R13!,{R8,R9} : BLNE inner : LDMFD R13!,{R8,R9}
 2550 BL drop_bombs            ;   alien bombs are moved futher down the screen
 2560 BL slow
 2570 .over
 2580 STMFD R13!,{R14} : BL load_no_of_sprites : LDMFD R13!,{R14}
 2590 SUB R10,R10,#1
 2600 STMFD R13!,{R14} : BL load_last_sprite : LDMFD R13!,{R14}
 2610 CMP R10,R11 : BEQ continue_play
 2620 CMP R8,R12 : BEQ display    ; no more sprites in this section
 2630 ADD R12,R12,#1 : ADD R9,R9,#12 : B loop     ;   next sprite
 2640 .space EQUB 7
 2650 .delay EQUB 7
 2660 .section_flag EQUB 0
 2670 ALIGN
 2680
 2690 .test_keypress
 2700 STMFD R13!,{R14}
 2710 SWI "OS_Mouse"
 2720 CMP R2,#3 : BNE tkover
 2730 BL fire : BL right
 2740 .tkover
 2750 CMP R2,#6 : BNE tkover2
 2760 BL fire : BL left
 2770 .tkover2
 2780 CMP R2,#1 : BLEQ right
 2790 CMP R2,#4 : BLEQ left
 2800 CMP R2,#2 : BLEQ fire
 2810 MOV R0,#129 : LDR R1,upkey : MOV R2,#255 : SWI "OS_Byte"
 2820 CMP R1,#255 : BLEQ up
 2830 MOV R0,#129 : LDR R1,downkey : MOV R2,#255 : SWI "OS_Byte"
 2840 CMP R1,#255 : BLEQ down
 2850 MOV R0,#129 : LDR R1,pausekey : MOV R2,#255 : SWI "OS_Byte"
 2860 CMP R1,#255 : STMFD R13!,{R14} : BLEQ pause : LDMFD R13!,{R14}
 2870 STMFD R13!,{R14,R0-R12} : BLEQ pause : LDMFD R13!,{R14,R0-R12}
 2880 MOV R0,#15 : MOV R1,#0 : SWI "OS_Byte"
 2890 LDMFD R13!,{R15}
 2900 .upkey    EQUD &FFFFFFBE           ;  A - INKEY value (-66)
 2910 .downkey  EQUD &FFFFFF9E           ;  Z - INKEY value (-98)
 2920 .pausekey EQUD &FFFFFFC8           ;  P - INKEY value (-56)
 2930 .escape   EQUD &FFFFFF8F           ;  ESC - INKEY value (-113)
 2940
 2950 .draw
 2960 STMFD R13!,{R14} : BL directive_sprites_data : LDMFD R13!,{R14}
 2970 MOV R3,#12
 2980 .eight
 2990 MOV R4,#8
 3000 .twelve
 3010 LDRB R5,[R2],#1
 3020 LDRB R6,[R1,#1]
 3030 EOR R5,R5,R6
 3040 STRB R5,[R1,#1]!
 3050 SUBS R4,R4,#1
 3060 BNE twelve
 3070 ADD R1,R1,#152           ;   160 pixels across
 3080 SUBS R3,R3,#1
 3090 BNE eight
 3100 MOV R15,R14
 3110
 3120 .slow
 3130 MOV R5,#255
 3140 .slow1
 3150 MOV R6,#100
 3160 .slow2
 3170 SUBS R6,R6,#5 : BNE slow2
 3180 SUBS R5,R5,#1 : BNE slow1
 3190 MOV R15,R14
 3200 
 3210 .initial_stars
 3220 ADR R1,stars_address
 3230 ADR R2,stars_speed
 3240 MOV R3,#43
 3250 .next_star
 3260 LDR R5,[R1],#4
 3270 LDRB R6,[R5]
 3280 LDR R7,[R2],#4 : CMP R7,#160
 3290 MOVGT R4,#&77 : MOVLE R4,#7
 3300 EOR R6,R6,R4
 3310 STRB R6,[R5]
 3320 SUBS R3,R3,#1
 3330 BNE next_star
 3340 MOV R15,R14
 3350 
 3360 .move_stars
 3370 LDR R1,stars_delay : SUBS R1,R1,#1 : STR R1,stars_delay
 3380 MOVNE R15,R14 : MOV R1,#2 : STR R1,stars_delay
 3390 ADR R1,stars_address
 3400 ADR R2,stars_speed
 3410 MOV R3,#43
 3420 .next_move
 3430 LDR R5,[R1]
 3440 LDRB R6,[R5]
 3450 LDR R7,[R2],#4 : CMP R7,#160
 3460 MOVGT R4,#&77 : MOVLE R4,#7
 3470 EOR R6,R6,R4
 3480 STRB R6,[R5]
 3490 ADD R5,R5,R7
 3500 LDR R8,first_addr
 3510 CMP R5,R8
 3520 LDRGE R8,stars_down
 3530 SUBGE R5,R5,R8
 3540 STR R5,[R1],#4
 3550 LDRB R6,[R5]
 3560 EOR R6,R6,R4
 3570 STRB R6,[R5]
 3580 SUBS R3,R3,#1
 3590 BNE next_move
 3600 MOV R15,R14
 3610 
 3620 .first_addr EQUD &1FE1FFF
 3630 .stars_down EQUD 40020
 3640 .stars_delay EQUD 2
 3650 .stars_address
 3660 EQUD &1FDBDFE: EQUD &1FDFEB0: EQUD &1FDFF50: EQUD &1FDC829: EQUD &1FDAD3B: EQUD &1FDB121: EQUD &1FDB1C1
 3670 EQUD &1FDCE6E: EQUD &1FDB932: EQUD &1FDB9D2: EQUD &1FE12D1: EQUD &1FE00A3: EQUD &1FE0143: EQUD &1FDCAC8
 3680 EQUD &1FDBE60: EQUD &1FDBF00: EQUD &1FDE20E: EQUD &1FDDF76: EQUD &1FDE016: EQUD &1FDEAA1: EQUD &1FDEB41: EQUD &1FE1DAD
 3690 EQUD &1FE075C: EQUD &1FE07FC: EQUD &1FE1A2F: EQUD &1FE1ACF: EQUD &1FE138E: EQUD &1FDE9C5: EQUD &1FDC313
 3700 EQUD &1FDB3D5: EQUD &1FDB475: EQUD &1FDEE16: EQUD &1FDEEB6: EQUD &1FDA94C: EQUD &1FE0552: EQUD &1FDD78C
 3710 EQUD &1FE00DE: EQUD &1FE0CC8: EQUD &1FE0D68: EQUD &1FE1008: EQUD &1FDDB7E: EQUD &1FDD5C6: EQUD &1FDD666
 3720 
 3730 .stars_speed
 3740 EQUD 160: EQUD 320: EQUD 320:EQUD 160: EQUD 160: EQUD 320: EQUD 320: EQUD 160: EQUD 480: EQUD 480: EQUD 160: EQUD 320: EQUD 320: EQUD 160
 3750 EQUD 480: EQUD 480: EQUD 160: EQUD 320: EQUD 320: EQUD 320: EQUD 320: EQUD 160: EQUD 480: EQUD 480: EQUD 320: EQUD 320: EQUD 160: EQUD 160: EQUD 160
 3760 EQUD 320: EQUD 320: EQUD 320: EQUD 320:EQUD 160: EQUD 160: EQUD 160: EQUD 160: EQUD 480: EQUD 480:EQUD 160: EQUD 160: EQUD 320: EQUD 320
 3770 
 3780 
 3790 .drop_bombs
 3800 STMFD R13!,{R14} : BL directive_ab : LDMFD R13!,{R14}
 3810 LDRB R5,no_alien_bombs
 3820 CMP R5,#0 : MOVEQ R15,R14
 3830 MOV R2,#1
 3840 LDR R6,screen_bottom
 3850 LDR R10,leftside  : ADD R10,R10,#1600          ;   move check point (leftside) to   bottom level of usership
 3860 LDR R11,rightside : ADD R11,R11,#1760          ;   move check point (rightside) to   bottom level of usership plus 160 for a two line gap, as bombs drop by two pixels max.
 3870 .next_bomb
 3880 LDR R1,[R4]
 3890 STMFD R13!,{R14,R1-R6} : BL print_bomb : LDMFD R13!,{R14,R1-R6}
 3900 LDRB R7,[R4,#5]   ;   bomb speed
 3910 CMP R7,#1 : ADDEQ R1,R1,#160   ;  1 line  - slow
 3920 CMP R7,#2 : ADDEQ R1,R1,#320   ;  2 lines - fast
 3930 CMP R10,R1 : BGT check_screenbottom
 3940 CMP R11,R1 : BGT on_level
 3950 .check_screenbottom      ;  below or on level with ship
 3960 CMP R6,R1
 3970 BLE on_level
 3980 
 3990 .check_for_red
 4000 STMFD R13!,{R1-R6,R10,R11}
 4010 LDRB R2,[R4,#4] : CMP R2,#24 : BNE not_red
 4020 SUB R10,R10,#8000    ;  correct height for cluster explosion
 4030 SUB R11,R11,#8000
 4040 CMP R10,R1 : BGT wrong_height
 4050 CMP R11,R1 : BLT wrong_height
 4060 
 4070 LDRB R5,cluster_bombs : CMP R5,#2 : BEQ not_red   ;  enough red bombs
 4080 ADD R5,R5,#1 : STRB R5,cluster_bombs
 4090 STMFD R13!,{R14} : BL initialise_cluster : LDMFD R13!,{R14}
 4100 LDMFD R13!,{R1-R6,R10,R11}
 4110 B one_less_bomb
 4120 
 4130 
 4140 .wrong_height
 4150 .not_red
 4160 LDMFD R13!,{R1-R6,R10,R11}
 4170 
 4180 B mbover
 4190 .on_level
 4200 STMFD R13!,{R14,R1-R6} : LDRB R2,[R4,#4] : CMP R2,#12 : BLEQ bomb_explosion : LDMFD R13!,{R14,R1-R6}
 4210 .one_less_bomb
 4220 STMFD R13!,{R14,R1-R6} : BL memmove_bombs : LDMFD R13!,{R14,R1-R6}
 4230 SUB R2,R2,#1:SUB R5,R5,#1
 4240 B mbover2
 4250 .mbover
 4260 STMFD R13!,{R14,R1-R6} : BL print_bomb : LDMFD R13!,{R14,R1-R6}
 4270 STR R1,[R4],#8
 4280 .mbover2
 4290 ADD R2,R2,#1 : CMP R2,R5 : BLE next_bomb
 4300 MOV R15,R14
 4310 .screen_bottom EQUD &1FE1AFF
 4320 
 4330 .print_bomb
 4340 LDRB R2,[R4,#4]
 4350 ADR R3,yellowbomb
 4360 ADD R3,R3,R2
 4370 MOV R0,#0
 4380 MOV R2,#6
 4390 .pbloop
 4400 MOV R5,#2
 4410 .pbloop2
 4420 LDRB R4,[R3],#1
 4430 LDRB R6,[R1,#1]
 4440 CMP R6,#0 : BEQ Bskip
 4450 EORS R4,R4,R6
 4460 MOVNE R0,#1
 4470 .Bskip
 4480 STRB R4,[R1,#1]!
 4490 SUBS R5,R5,#1
 4500 BNE pbloop2
 4510 ADD R1,R1,#158
 4520 SUBS R2,R2,#1
 4530 BNE pbloop
 4540 CMP R0,#0 : BEQ bomb_clear
 4550 STMFD R13!,{R14,R1} : BL load_dead : MOV R2,R1 : LDMFD R13!,{R14,R1}
 4560 CMP R2,#1 : BEQ bomb_clear
 4570 STMFD R13!,{R14,R1-R6} : BL bomb_hit : LDMFD R13!,{R14,R1-R6}
 4580 .bomb_clear
 4590 MOV R15,R14
 4600 .yellowbomb EQUD &03300330 : EQUD &03300330 : EQUD &03300330
 4610 .cyanbomb   EQUD &06600660 : EQUD &06600660 : EQUD &06600660
 4620 .redbomb    EQUD &01100110 : EQUD &01100110 : EQUD &01100110
 4630 
 4640 .bomb_hit
 4650 STMFD R13!,{R14}:BL bomb_hit_coordinates : LDMFD R13!,{R14}
 4660 .BX_check
 4670 LDR R1,X_bullet
 4680 LDR R2,X_usership
 4690 LDRB R3,bullet_width
 4700 LDRB R4,usership_width
 4710 CMP R1,R2
 4720 BGT usership_left
 4730 ADD R1,R1,R3
 4740 CMP R1,R2
 4750 BLT no_collision
 4760 B BY_check
 4770 
 4780 .usership_left
 4790 ADD R2,R2,R4
 4800 CMP R1,R2
 4810 BGT no_collision
 4820 
 4830 .BY_check
 4840 LDR R1,Y_bullet
 4850 LDR R2,Y_usership
 4860 LDRB R3,bullet_height
 4870 LDRB R4,usership_height
 4880 CMP R1,R2
 4890 BLT usership_higher
 4900 SUB R1,R1,R3
 4910 CMP R1,R2
 4920 BGT no_collision
 4930 B B_clear
 4940 
 4950 .usership_higher
 4960 SUB R2,R2,R4
 4970 CMP R1,R2
 4980 BLT no_collision
 4990 .B_clear
 5000 
 5010 MOV R0,#1 : STRB R0,dead
 5020 MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
 5030 STMFD R13!,{R1-R8,R14} : BL initialise_particles : BL particle_spread : LDMFD R13!,{R1-R8,R14}
 5040 
 5050 .no_collision
 5060 
 5070 MOV R15,R14
 5080 
 5090 .memmove_bombs
 5100 LDRB R1,no_alien_bombs
 5110 CMP R2,R1 : BEQ last_bomb
 5120 ADD R2,R2,#1
 5130 .mbloop
 5140 LDR R3,[R4,#8]!         ;   4 Byte Bombs Address
 5150 STR R3,[R4,#-8]
 5160 LDR R3,[R4,#4]          ;   4 Byte Bomb Info - colour,timer,frame pointer
 5170 STR R3,[R4,#-4]
 5180 ADD R2,R2,#1
 5190 CMP R2,R1
 5200 BLE mbloop
 5210 .last_bomb
 5220 SUB R1,R1,#1
 5230 STRB R1,no_alien_bombs
 5240 MOV R15,R14
 5250
 5260 .bomb_explosion
 5270 SUB R1,R1,#964      ; on level with top of bullet
 5280 LDRB R2,no_bombs_explo
 5290 ADR R3,bombs_exploaddr : ADD R3,R3,R2,LSL #3 : STR R1,[R3]
 5300 MOV R5,#25 : STRB R5,[R3,#4]        ;   bombs explosion timer
 5310 MOV R5,#0  : STRB R5,[R3,#5]        ;   bombs frame pointer
 5320 ADD R2,R2,#1 :STRB R2,no_bombs_explo
 5330 
 5340 STMFD R13!,{R14} : BL explosion_bomb : LDMFD R13!,{R14}
 5350 MOV R0,#3:MOV R1,#7:RSB R1,R1,#0:MOV R2,#1:MOV R3,#14:SWI "Sound_Control"      ;  white explosion sound
 5360 MOV R15,R14
 5370 
 5380 .program_variables
 5390 ; all program variables are initialised here except byte and seperate alien_bomb_variables
 5400 
 5410 ;  constant variables are set first
 5420 CMP R0,#1
 5430 MOV R1,#0
 5440 STRB R1,no_alien_bombs
 5450 STRB R1,section_flag
 5460 STRB R1,no_bombs_explo
 5470 STRB R1,cluster_bombs
 5480 STRNEB R1,no_of_bullets
 5490 STRNEB R1,gap
 5500 STRB R1,bullet_on_screen
 5510 STRB R1,memory_move
 5520 STRB R1,hit
 5530 STRB R1,last_sprite
 5540 STRB R1,dead
 5550
 5560 ;  variables set by user
 5570 STRB R2,cyan_counter
 5580 STRB R2,Ccyan_counter
 5590 STRB R3,red_counter
 5600 STRB R3,Cred_counter
 5610 STRB R4,bombs_speed
 5620 STRB R4,Cbombs_speed
 5630 STRB R5,bomb_drop_pos
 5640 STRB R6,no_random_numbers
 5650 STRB R7,no_range
 5660 STRB R8,space
 5670 STRB R9,delay
 5680 STRB R10,no_of_sprites
 5690
 5700 .renew_vars
 5710 LDRNE R1,Cleftside : STRNE R1,leftside
 5720 LDRNE R1,Crightside : STRNE R1,rightside
 5730 LDRNE R1,Cnewaddr : STRNE R1,newaddr : STRNE R1,oldaddr
 5740 LDRB R1,Cusership_frames : STRB R1,usership_frames
 5750 LDRB R1,Cusership_timer : STRB R1,usership_timer
 5760
 5770 MOV R15,R14
 5780 
 5790 .leftside   EQUD &1FE1427
 5800 .rightside  EQUD &1FE14AF
 5810 .Cleftside  EQUD &1FE1427
 5820 .Crightside EQUD &1FE14AF
 5830 .Cnewaddr   EQUD &1FE146B
 5840 .Cusership_frames EQUB 10
 5850 .Cusership_timer  EQUB 6
 5860 ALIGN
 5870
 5880 .bomb_explo_check
 5890 LDRB R7,no_bombs_explo : CMP R7,#0 : BEQ no_explosion
 5900 STMFD R13!,{R14} : BL directive_explosion : MOV R8,R2 : LDMFD R13!,{R14}
 5910 ADR R3,bombs_exploaddr
 5920 MOV R4,#0
 5930 .bec_loop
 5940 MOV R5,#0 : ADD R5,R3,R4,LSL #3
 5950 LDRB R6,[R5,#4] : SUBS R6,R6,#1 : STRB R6,[R5,#4] : BNE next_check
 5960 MOV R6,#25 : STRB R6,[R5,#4]     ;   reset bomb timer for next frame
 5970 
 5980 LDRB R6,[R5,#5]           ;  frame pointer
 5990 MOV  R2,#140              ;  data in each frame
 6000 MLA R2,R6,R2,R8 : LDR R1,[R5]
 6010 STMFD R13!,{R14,R0-R6} : BL eb_frame : LDMFD R13!,{R14,R0-R6}
 6020 CMP R6,#3 : BNE next_explo
 6030 STMFD R13!,{R14,R1-R4} : BL memmove_bombsexplo : LDMFD R13!,{R14,R1-R4}
 6040 SUB R4,R4,#1
 6050 B next_check
 6060 .next_explo
 6070 ADD R6,R6,#1 : STRB R6,[R5,#5]   ;  next frame
 6080 MOV  R2,#140
 6090 MLA R2,R6,R2,R8 : LDR R1,[R5]
 6100 STMFD R13!,{R14,R0-R6} : BL eb_frame : LDMFD R13!,{R14,R0-R6}
 6110 
 6120 .next_check
 6130 ADD R4,R4,#1 : CMP R4,R7 : BNE bec_loop
 6140 .no_explosion
 6150 MOV R15,R14
 6160 
 6170 .no_bombs_explo   EQUB 0
 6180 ALIGN
 6190 .bombs_exploaddr
 6200 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 6210 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 6220 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 6230 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 6240 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 6250 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 6260 
 6270 .memmove_bombsexplo
 6280 ; R7 = no_bombs_explo
 6290 MOV R2,#1
 6300 CMP R2,R7 : BEQ last_explo
 6310 .mbeloop
 6320 LDR R4,[R3,#8]!         ;   4 Byte Bombs Address
 6330 STR R4,[R3,#-8]
 6340 LDR R4,[R3,#4]          ;   4 Byte Bomb Info - colour,timer,frame pointer
 6350 STR R4,[R3,#-4]
 6360 ADD R2,R2,#1
 6370 CMP R2,R7
 6380 BLE mbeloop
 6390 .last_explo
 6400 SUB R7,R7,#1
 6410 STRB R7,no_bombs_explo
 6420 MOV R15,R14
 6430 
 6440 .explosion_bomb
 6450 ;   R1 - address of explosion
 6460 STMFD R13!,{R14} : BL directive_explosion : LDMFD R13!,{R14}
 6470 .eb_frame
 6480 STMFD R13!,{R1}       ;   store explosion address
 6490 MOV R0,#0
 6500 MOV R3,#14
 6510 .eb_eight
 6520 MOV R4,#10
 6530 .eb_twelve
 6540 LDRB R5,[R2],#1
 6550 CMP R5,#&03 : MOVEQ R5,#&07
 6560 CMP R5,#&33 : MOVEQ R5,#&77
 6570 LDRB R6,[R1,#1]
 6580 CMP R5,#0 : EOREQ R5,R5,R6 : BEQ eb_byte_ok
 6590 CMP R6,#0 : BEQ eb_byte_ok
 6600 EORS R5,R5,R6
 6610 MOVNE R0,#1
 6620 .eb_byte_ok
 6630 STRB R5,[R1,#1]!
 6640 SUBS R4,R4,#1
 6650 BNE eb_twelve
 6660 ADD R1,R1,#150           ;   160 pixels across
 6670 SUBS R3,R3,#1
 6680 BNE eb_eight
 6690 LDMFD R13!,{R1}          ;  restore explosion address
 6700 CMP R0,#1 : BNE explo_clear
 6710 LDRB R2,dead : CMP R2,#1 : BEQ explo_clear
 6720 STMFD R13!,{R14,R1-R6} : BL explo_hit : LDMFD R13!,{R14,R1-R6}
 6730 .explo_clear
 6740 MOV R15,R14
 6750 
 6760 .explo_hit
 6770 ;  R1   -   bomb address,  reloaded from stack in previous routine
 6780 STMFD R13!,{R14}:BL explo_hit_coordinates : LDMFD R13!,{R14}
 6790 
 6800 .EX_check
 6810 LDR R1,X_explosion
 6820 LDR R2,X_usership
 6830 LDRB R3,explosion_width
 6840 LDRB R4,usership_width
 6850 CMP R1,R2
 6860 BGT explosion_left
 6870 ADD R1,R1,R3
 6880 CMP R1,R2
 6890 BLT no_explo
 6900 B EY_check
 6910 
 6920 .explosion_left
 6930 ADD R2,R2,R4
 6940 CMP R1,R2
 6950 BGT no_explo
 6960 
 6970 .EY_check
 6980 LDR R1,Y_explosion
 6990 LDR R2,Y_usership
 7000 LDRB R3,explosion_height
 7010 LDRB R4,usership_height
 7020 CMP R1,R2
 7030 BLT explosion_higher
 7040 SUB R1,R1,R3
 7050 CMP R1,R2
 7060 BGT no_explo
 7070 B E_clear
 7080 
 7090 .explosion_higher
 7100 SUB R2,R2,R4
 7110 CMP R1,R2
 7120 BLT no_explo
 7130 .E_clear
 7140 
 7150 MOV R0,#1 : STRB R0,dead
 7160 MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
 7170 STMFD R13!,{R1-R8,R14} : BL initialise_particles : BL particle_spread : LDMFD R13!,{R1-R8,R14}
 7180 
 7190 .no_explo
 7200 
 7210 
 7220 MOV R15,R14
 7230 
 7240 .initialise_cluster
 7250 ; R1 - start address of cluster bomb
 7260 STMFD R13!,{R14,R1-R6} : BL print_bomb : LDMFD R13!,{R14,R1-R6}
 7270 ADD R1,R1,#1
 7280 ADR R2,cluster_addr
 7290 LDRB R3,cluster_bombs : SUB R3,R3,#1
 7300 MOV R5,#48 : MLA R2,R3,R5,R2
 7310 MOV R3,#6
 7320 MOV R5,#1
 7330 .icloop
 7340 MOV R4,#2
 7350 .icloop2
 7360 STR R1,[R2],#4
 7370 ADD R1,R1,#1
 7380 SUBS R4,R4,#1
 7390 BNE icloop2
 7400 ADD R1,R1,#158
 7410 SUBS R3,R3,#1
 7420 BNE icloop
 7430 ADR R2,cluster_frames
 7440 LDRB R3,cluster_bombs : SUB R3,R3,#1
 7450 MOV R5,#4 : MLA R2,R3,R5,R2
 7460 MOV R5,#&0A00 : STR R5,[R2]  ; reset delay and frames
 7470 MOV R15,R14
 7480 
 7490 .cluster_spread
 7500 ;  R1   cluster addresses
 7510 ;  R2   cluster paths
 7520 BNV end
 7530 ADR R3,redbomb
 7540 MOV R4,#12       ; no of pixels in cluster
 7550 .csloop
 7560 LDR R8,[R2],#4       ;  data for a single pixel path
 7570 CMP R8,#&B : BNE check_cluster_end
 7580 STMFD R13!,{R14,R1-R8} : BL cluster_blast : LDMFD R13!,{R14,R1-R8}
 7590 ADD R3,R3,#1 : ADD R1,R1,#4
 7600 B last_cframe
 7610 .check_cluster_end
 7620 CMP R8,#&E :  ADDEQ R3,R3,#1 :ADDEQ R1,R1,#4 : BEQ last_cframe
 7630 LDRB R5,[R3],#1      ;  colour = red
 7640 LDR R6,[R1]          ;  address held in R1
 7650 LDRB R7,[R6]         ;  contents of screen in R7
 7660 EOR R7,R7,R5         ;  colour pixel black
 7670 STRB R7,[R6]         ;  blank out pixel on screen
 7680 ADD R6,R6,R8         ;  add offset path to current address
 7690 STR R6,[R1],#4       ;  store new address
 7700 CMP R8,#0 : BEQ last_cframe
 7710 LDRB R7,[R6]         ;  contents of screen in R7
 7720 EOR R7,R7,R5         ;  obtain correct colour
 7730 STRB R7,[R6]         ;  store colour byte to screen
 7740 .last_cframe
 7750 SUBS R4,R4,#1        ;  NEXT pixel
 7760 BNE csloop
 7770 MOV R15,R14
 7780 
 7790 .cluster_check
 7800 LDRB R4,cluster_bombs : CMP R4,#0 : BEQ no_clusters
 7810 MOV R7,#0
 7820 .next_cluster
 7830 ADR R3,cluster_frames
 7840 MOV R5,#4 : MLA R3,R7,R5,R3
 7850 LDRB R5,[R3,#1] : SUBS R5,R5,#1 : STRB R5,[R3,#1] : BNE next2_cluster
 7860 MOV R5,#10 : STRB R5,[R3,#1]      ;   delay
 7870 STMFD R13!,{R14} : BL directive_clpaths :LDMFD R13!,{R14}
 7880 ADR R1,cluster_addr
 7890 MOV R5,#48 : MLA R1,R7,R5,R1    ; 48 bytes each set of 12 cluster addresses
 7900 LDRB R5,[R3] : MOV R6,#48 : MLA R2,R5,R6,R2  ; 48 bytes each frame
 7910 CMP R5,#26 : BEQ End_cluster
 7920 ADD R5,R5,#1 : STRB R5,[R3]
 7930 
 7940 STMFD R13!,{R14,R1-R8} : BL cluster_spread : LDMFD R13!,{R14,R1-R8}
 7950 B next2_cluster
 7960 .End_cluster
 7970 MOV R5,#0 : STRB R5,[R3]
 7980 LDRB R5,cluster_bombs : SUBS R5,R5,#1 : STRB R5,cluster_bombs
 7990 BEQ no_clusters
 8000 SUB R4,R4,#1:SUB R7,R7,#1
 8010 STMFD R13!,{R14,R1-R8} : BL cluster_memmove : LDMFD R13!,{R14,R1-R8}
 8020 .next2_cluster
 8030 ADD R7,R7,#1 : CMP R7,R4 : BNE next_cluster
 8040 .no_clusters
 8050 MOV R15,R14
 8060 
 8070 .cluster_memmove
 8080 ADR R1,cluster_frames
 8090 LDR R2,[R1,#4] : STR R2,[R1]
 8100 ADR R1,cluster_addr : ADD R1,R1,#48
 8110 MOV R2,#12
 8120 .cmloop
 8130 LDR R3,[R1],#4
 8140 STR R3,[R1,#-52]
 8150 SUBS R2,R2,#1
 8160 BNE cmloop
 8170 
 8180 MOV R15,R14
 8190 
 8200 .cluster_bombs EQUB 0
 8210 ALIGN
 8220 .cluster_frames EQUD &00000A00
 8230                 EQUD &00000A00
 8240 .cluster_addr
 8250 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 8260 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 8270 
 8280 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 8290 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 8300 
 8310 .cluster_blast
 8320 MOV R0,#0
 8330 ;  R1 - holds address where cluster data addresses are held
 8340 LDR R2,[R1]    ;  address of seperate pixel in cluster
 8350 ADR R3,data_blast
 8360 MOV R4,#5
 8370 .dbloop
 8380 MOV R5,#4
 8390 .dbloop2
 8400 LDRB R6,[R2]         ;    contents of screen
 8410 LDRB R7,[R3],#1      ;    colour
 8420 CMP R7,#0 : EOREQ R7,R6,R7 : BEQ cb_skip
 8430 CMP R6,#0 : BEQ cb_skip
 8440 EORS R7,R6,R7
 8450 MOVNE R0,#1
 8460 .cb_skip
 8470 STRB R7,[R2],#1
 8480 SUBS R5,R5,#1
 8490 BNE dbloop2
 8500 ADD R2,R2,#156
 8510 SUBS R4,R4,#1
 8520 BNE dbloop
 8530 CMP R0,#0 : BEQ cluster_clear
 8540 LDRB R2,dead : CMP R2,#1 : BEQ cluster_clear
 8550 STMFD R13!,{R14,R1-R6} : LDR R1,[R1] : BL cluster_hit : LDMFD R13!,{R14,R1-R6}
 8560 .cluster_clear
 8570 MOV R0,#2 :MOV R1,#10:RSB R1,R1,#0:MOV R2,#10:MOV R3,#10:SWI "Sound_Control"     ;  cluster sound
 8580 MOV R15,R14
 8590 
 8600 .data_blast
 8610 EQUD &00113110
 8620 EQUD &11377331
 8630 EQUD &13773311
 8640 EQUD &01333110
 8650 EQUD &00111100
 8660 
 8670 .cluster_hit
 8680 ;  R1  -   a seperate blast address
 8690 STMFD R13!,{R14}:BL cluster_hit_coordinates : LDMFD R13!,{R14}
 8700 
 8710 .CLX_check
 8720 LDR R1,X_blast
 8730 LDR R2,X_usership
 8740 LDRB R3,blast_width
 8750 LDRB R4,usership_width
 8760 CMP R1,R2
 8770 BGT blast_left
 8780 ADD R1,R1,R3
 8790 CMP R1,R2
 8800 BLT no_blast
 8810 B CLY_check
 8820 
 8830 .blast_left
 8840 ADD R2,R2,R4
 8850 CMP R1,R2
 8860 BGT no_blast
 8870 
 8880 .CLY_check
 8890 LDR R1,Y_blast
 8900 LDR R2,Y_usership
 8910 LDRB R3,blast_height
 8920 LDRB R4,usership_height
 8930 CMP R1,R2
 8940 BLT blast_higher
 8950 SUB R1,R1,R3
 8960 CMP R1,R2
 8970 BGT no_blast
 8980 B CL_clear
 8990 
 9000 .blast_higher
 9010 SUB R2,R2,R4
 9020 CMP R1,R2
 9030 BLT no_blast
 9040 .CL_clear
 9050 
 9060 MOV R0,#1 : STRB R0,dead
 9070 MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
 9080 STMFD R13!,{R1-R8,R14} : BL initialise_particles : BL particle_spread : LDMFD R13!,{R1-R8,R14}
 9090 
 9100 .no_blast
 9110 
 9120 
 9130 MOV R15,R14
 9140 
 9150 
 9160 .explosion_check
 9170 LDRB R1,no_of_sprites
 9180 STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
 9190 .ecloop
 9200 LDRB R3,[R2,#9]                 ;   explosion flag
 9210 CMP R3,#4 : BNE ecover          ;   no explosion
 9220 LDRB R3,[R2,#10]                ;   explosion timer
 9230 SUB R3,R3,#1
 9240 STRB R3,[R2,#10]
 9250 CMP R3,#0 : BNE ecover          ;   explosion still onscreen so branch
 9260 .explosion_finishes
 9270 
 9280 LDRB R3,[R2,#11]    ;   frame pointer
 9290 STMFD R13!,{R14,R2} : BL directive_explosion : MOV R4,R2 :LDMFD R13!,{R14,R2}    ;   start of explosion data
 9300 STMFD R13!,{R1-R7,R14} : LDR R1,[R2] : MOV R2,#140 : MLA R2,R3,R2,R4 : BL frame : LDMFD R13!,{R1-R7,R14}
 9310 
 9320 CMP R3,#5 : BEQ frame_finish     ;   end of explosion
 9330 MOV R11,#15: STRB R11,[R2,#10]   ;   explosion time
 9340 ADD R3,R3,#1 :STRB R3,[R2,#11]   ;   frame pointer
 9350 STMFD R13!,{R1-R7,R14} : LDR R1,[R2] : MOV R2,#140 : MLA R2,R3,R2,R4 : BL frame : LDMFD R13!,{R1-R7,R14}
 9360 B ecover
 9370 .frame_finish                    ;   explosion animation ends
 9380 MOV R3,#2 : STRB R3,[R2,#9]      ;   dead
 9390 .ecover
 9400 ADD R2,R2,#12
 9410 SUB R1,R1,#1
 9420 CMP R1,#1:BNE ecloop
 9430 MOV R15,R14
 9440 
 9450 .fire
 9460 LDRB R1,gap : CMP R1,#0: BNE floop           ; check spacing
 9470 MOV R1,#41 : STRB R1,gap
 9480 MOV R0,#1 :MOV R1,#7:RSB R1,R1,#0:MOV R2,#1:MOV R3,#7 :SWI "Sound_Control"      ;   bullet sound
 9490 LDRB R1,no_of_bullets : ADD R1,R1,#1 :STRB R1,no_of_bullets
 9500 STRB R1,bullet_on_screen
 9510 SUB R1,R1,#1 : MOV R2,R1, LSL #2 : ADR R3,bullet_address : ADD R3,R3,R2
 9520 BNV end:BNV end
 9530 LDR R1,newaddr:SUB R1,R1,#800 : ADD R1,R1,#3     ; calculate address
 9540 STR R1,[R3]
 9550 .inner
 9560 LDRB R1,gap : CMP R1,#0 : BEQ fover
 9570 .floop
 9580 LDRB R1,gap : SUB R1,R1,#1 : STRB R1,gap
 9590 .fover
 9600 LDRB R8,no_of_bullets
 9610 CMP R8,#0 : BEQ nothing_to_print        ; no_bullets, safety for gap at start of fire routine, incase of a brach to floop when gap>0 AND bullets=0
 9620 MOV R9,#0
 9630 .floop2
 9640 MOV R4,R9, LSL#2
 9650 ADR R5,bullet_address
 9660 ADD R10,R5,R4
 9670 LDR R7,[R10]
 9680 STMFD R13!,{R14}
 9690 LDRB R1,bullet_on_screen
 9700 SUB R5,R8,#1 : CMP R5,R9 : BNE new_bullet2
 9710 SUBS R1,R1,R8 : BEQ new_bullet
 9720 BL print_bullet
 9730 .new_bullet
 9740 MOV R1,#0 : STRB R1,bullet_on_screen
 9750 B new_bullet3
 9760 .new_bullet2
 9770 BL print_bullet
 9780 .new_bullet3
 9790 SUB R7,R7,#160 : STR R7,[R10]
 9800 LDR R1,top_of_screen : CMP R7,R1: BLPL print_bullet
 9810 BPL top
 9820 MOV R1,#1 : STRB R1,memory_move
 9830 .top
 9840 LDRB R1,memory_move : CMP R1,#1 : MOVEQ R1,#0 : STREQB R1,hit   ;               prevents memory_move repeat  as top_of_screen is set and also hit.
 9850 LDRB R1,hit : CMP R1,#1 : BLEQ explode
 9860 LDMFD R13!,{R14}
 9870 ADD R9,R9,#1 : CMP R9,R8 : BNE floop2
 9880 LDRB R1,memory_move : CMP R1,#1 : STMFD R13!,{R14} : BLEQ move_memory : LDMFD R13!,{R14}
 9890 .nothing_to_print
 9900 MOV R15,R14
 9910 
 9920 .print_bullet
 9930                ;  plots to opposite side of each byte to centre bullet                            above ship ....  as centre of ship splits two bytes
 9940 MOV R0,#1      ;  a hit
 9950 MOV R1,R7
 9960 MOV R3,#6
 9970 ADR R6,bulletdata
 9980 .bloop
 9990 MOV R4,#2
10000 .bloop2
10010 LDRB R2,[R6],#1
10020 LDRB R5,[R1,#1]
10030 CMP R5,#0 : BEQ skip
10040 EOR R2,R2,R5
10050 CMP R5,#&07 : BEQ skip
10060 CMP R5,#&70 : BEQ skip
10070 CMP R5,#&77 : BEQ skip
10080 CMP R2,#0
10090 STRNEB R0,hit
10100 .skip
10110 STRB R2,[R1,#1]!
10120 SUBS R4,R4,#1
10130 BNE bloop2
10140 ADD R1,R1,#158
10150 SUBS R3,R3,#1
10160 BNE bloop
10170 MOV R15,R14
10180 
10190 .move_memory
10200 LDRB R1,no_of_bullets
10210 CMP R1,#1 : BEQ no_more
10220 MOV R2,R1
10230 ADR R3,bullet_address
10240 .mmloop
10250 LDR R4,[R3,#4]!
10260 STR R4,[R3,#-4]
10270 SUB R2,R2,#1
10280 CMP R2,#1
10290 BNE mmloop
10300 .no_more
10310 SUB R1,R1,#1
10320 STRB R1,no_of_bullets
10330 MOV R1,#0
10340 STRB R1,memory_move
10350 MOV R15,R14
10360 
10370 .explode
10380 LDRB R1,no_of_bullets : CMP R1,#0 : BEQ eloop
10390  ;     don't reprint bullet as reached top of screen so address is out of              bounds
10400 STMFD R13!,{R14} : BL print_bullet
10410 MOV R1,#0 : STRB R1,hit            ;  first before print_bullet due to hitflag
10420 SUB R1,R8,#1 : STRB R1,no_of_bullets
10430 CMP R1,#0 : STREQB R1,gap
10440 CMP R1,R9 : BEQ eloop    ;   checks for last bullet in round fired, so    when returning from routine R9 is added to equal R8.
10450 MOV R8,R1
10460 
10470 ADD R2,R1,#1
10480 ADD R1,R9,#1
10490 ADR R3,bullet_address
10500 MOV R4,R9, LSL #2
10510 ADD R3,R3,R4                 ;  bullet numbers address to start
10520 .eeloop
10530 LDR R4,[R3,#4]!
10540 STR R4,[R3,#-4]
10550 SUB R2,R2,#1
10560 CMP R2,R1
10570 BNE eeloop
10580 
10590 .eloop
10600 LDRB R1,bullet_on_screen : CMP R1,#0 : SUBNE R1,R1,#1
10610 STRB R1,bullet_on_screen ;   a new on screen at same time as collision of other bullets
10620 
10630 .remove_sprite
10640  ;  get X and Y co-ordinates of bullet
10650 MOV R1,R7          ;  bullet address
10660 ADR R2,X_bullet
10670 ADR R3,Y_bullet
10680 BL get_coordinates
10690 
10700 SUB R7,R7,#160      ; subtract 160 from bullet_addres .....  may have reached top of screen - therefore out of bounds area
10710 LDRB R1,no_of_sprites
10720 STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
10730 MOV R3,#1
10740 .rloop
10750 LDRB R4,[R2,#9]
10760 CMP R4,#1 : BNE rover      ; 0 value - offscreen /  2 value - dead
10770 
10780 STMFD R13!,{R1-R4}
10790 MOV R0,#1              ;    A Survivor, for now!
10800 LDR R1,[R2,#0]         ;    current sprites address
10810 ADR R2,X_sprite
10820 ADR R3,Y_sprite
10830 BL get_coordinates
10840 .X_check
10850 LDR R1,X_bullet
10860 LDR R2,X_sprite
10870 LDRB R3,bullet_width
10880 LDRB R4,sprite_width
10890 CMP R1,R2
10900 BGT sprite_left
10910 ADD R1,R1,R3
10920 CMP R1,R2
10930 BLT not_this_sprite
10940 B Y_check
10950 
10960 .sprite_left
10970 ADD R2,R2,R4
10980 CMP R1,R2
10990 BGT not_this_sprite
11000 
11010 .Y_check
11020 LDR R1,Y_bullet
11030 LDR R2,Y_sprite
11040 LDRB R3,bullet_height
11050 LDRB R4,sprite_height
11060 CMP R1,R2
11070 BLT sprite_higher
11080 SUB R1,R1,R3
11090 CMP R1,R2
11100 BGT not_this_sprite
11110 B clear
11120 
11130 .sprite_higher
11140 SUB R2,R2,R4
11150 CMP R1,R2
11160 BLT not_this_sprite
11170 .clear
11180 
11190 MOV R0,#0
11200 
11210 .not_this_sprite
11220 LDMFD R13!,{R1-R4}
11230 CMP R0,#0 : BNE rover
11240 STMFD R13!,{R1-R4} : MOV R10,#4 : LDR R1,[R2] : BL draw : LDMFD R13!,{R1-R4}
11250 MOV R11,#4 : STRB R11,[R2,#9]    ;   explosion
11260 MOV R11,#15: STRB R11,[R2,#10]   ;   explosion time
11270 MOV R11,#0 : STRB R11,[R2,#11]   ;   frame pointer ( 48 bytes each frame)
11280 LDRB R11,last_sprite : ADD R11,R11,#1 : STRB R11,last_sprite   ;                Check for end of pattern - for last sprite
11290 STMFD R13!,{R0-R7} : LDR R1,[R2] : BL explosion  : BL increase_score : LDMFD R13!,{R0-R7}
11300 MOV R0,#3:MOV R1,#10:RSB R1,R1,#0:MOV R2,#1:MOV R3,#10:SWI "Sound_Control"      ;  yellow explosion sound
11310 LDMFD R13!,{R15}   ;  one hit one alien ship
11320 .rover
11330 ADD R2,R2,#12:ADD R3,R3,#1
11340 CMP R3,R1 : BNE rloop
11350 LDMFD R13!,{R15}
11360 
11370 .cluster_hit_coordinates
11380 ADR R2,X_blast
11390 ADR R3,Y_blast
11400 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
11410 LDR R1,newaddr
11420 ADR R2,X_usership
11430 ADR R3,Y_usership
11440 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
11450 MOV R15,R14
11460 
11470 .explo_hit_coordinates
11480 ADR R2,X_explosion
11490 ADR R3,Y_explosion
11500 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
11510 LDR R1,newaddr
11520 ADR R2,X_usership
11530 ADR R3,Y_usership
11540 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
11550 MOV R15,R14
11560 
11570 .bomb_hit_coordinates
11580 ADR R2,X_bullet
11590 ADR R3,Y_bullet
11600 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
11610 LDR R1,newaddr
11620 ADR R2,X_usership
11630 ADR R3,Y_usership
11640 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
11650 MOV R15,R14
11660 
11670 .get_coordinates
11680  ;  R1 - address on screen  R2 - X offset addr  R3 - Y offset addr
11690 LDR R4,address
11700 SUB R4,R1,R4           ;    screen address - start of screen
11710 MOV R5,#160            ;    divisor
11720 MOV R6,#1<<31          ;    counter for each bit
11730 MOV R10,#0             ;    remainder
11740 MOV R11,#0             ;    quotient
11750 .division_loop
11760 MOVS R4,R4,ASL#1
11770 ADC R10,R10,R10
11780 CMP R10,R5
11790 SUBGE R10,R10,R5       ;    remainder
11800 ORRGE R11,R11,R6       ;    quotient
11810 MOVS R6,R6,LSR#1
11820 BNE division_loop
11830 MOV R10,R10,LSL#3 : STR R10,[R2]
11840 STR R10,[R2,#0]
11850 RSB R11,R11,#255
11860 MOV R11,R11,LSL#2 : STR R11,[R3]
11870 MOV R15,R14
11880
11890 .store_no_of_bullets
11900 MOV R2,#0
11910 STRB R2,no_of_bullets
11920 MOV R15,R14
11930
11940 .load_no_of_bullets
11950 LDRB R2,no_of_bullets
11960 MOV R15,R14
11970 
11980 .load_dead
11990 LDRB R1,dead
12000 MOV R15,R14
12010
12020 .bulletdata EQUD &07700770 : EQUD &07700770 : EQUD &07700770
12030 .top_of_screen EQUD &1FDA800
12040 .bullet_address EQUD 0
12050                 EQUD 0
12060                 EQUD 0
12070                 EQUD 0
12080                 EQUD 0
12090 .no_of_bullets EQUB 0
12100 .gap EQUB 0
12110 .bullet_on_screen EQUB 0
12120 .memory_move EQUB 0
12130 .hit EQUB 0
12140 .dead EQUB 0
12150 ALIGN
12160 
12170  ;  memory locations for sprite collision identification
12180 .address EQUD &1FD8000
12190 .X_bullet         EQUD 0
12200 .Y_bullet         EQUD 0
12210 .X_sprite         EQUD 0
12220 .Y_sprite         EQUD 0
12230 .X_usership       EQUD 0
12240 .Y_usership       EQUD 0
12250 .X_explosion      EQUD 0
12260 .Y_explosion      EQUD 0
12270 .X_blast          EQUD 0
12280 .Y_blast          EQUD 0
12290 .bullet_width     EQUB 16         ;  constant values
12300 .bullet_height    EQUB 24
12310 .sprite_width     EQUB 64
12320 .sprite_height    EQUB 48
12330 .usership_width   EQUB 64
12340 .usership_height  EQUB 64
12350 .explosion_width  EQUB 80
12360 .explosion_height EQUB 56
12370 .blast_width      EQUB 32
12380 .blast_height     EQUB 16
12390 ALIGN
12400 
12410 .left
12420 LDR R1,leftside : LDR R2,oldaddr : CMP R1,R2 : MOVEQ R15,R14
12430 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
12440 LDR R1,newaddr : SUB R1,R1,#1 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
12450 
12460 .right
12470 LDR R1,rightside : LDR R2,oldaddr : CMP R1,R2 : MOVEQ R15,R14
12480 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
12490 LDR R1,newaddr : ADD R1,R1,#1 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
12500 
12510 .up
12520 LDR R1,top_of_screen : ADD R1,R1,#160 : LDR R2,oldaddr : CMP R1,R2 : MOVGT R15,R14
12530 LDR R1,rightside : SUB R1,R1,#160 : STR R1,rightside
12540 LDR R1,leftside  : SUB R1,R1,#160 : STR R1,leftside
12550 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
12560 LDR R1,newaddr : SUB R1,R1,#160 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
12570 
12580 .down
12590 LDR R1,screen_bottom : SUB R1,R1,#1760 : LDR R2,oldaddr : CMP R1,R2 : MOVLT R15,R14
12600 LDR R1,rightside : ADD R1,R1,#160 : STR R1,rightside
12610 LDR R1,leftside  : ADD R1,R1,#160 : STR R1,leftside
12620 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
12630 LDR R1,newaddr : ADD R1,R1,#160 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
12640 
12650 .usership
12660 ADR R2,shipsdata
12670 MOV R3,#16               ;   height
12680 .ueight
12690 MOV R4,#8
12700 .utwelve
12710 LDRB R5,[R2],#1
12720 LDRB R6,[R1,#1]
12730 EOR R5,R5,R6
12740 STRB R5,[R1,#1]!
12750 SUBS R4,R4,#1
12760 BNE utwelve
12770 ADD R1,R1,#152           ;   160 pixels across
12780 SUBS R3,R3,#1
12790 BNE ueight
12800 MOV R15,R14
12810 
12820 .usership_collision
12830 LDRB R1,dead : CMP R1,#1 : MOVEQ R15,R14
12840 LDR R1,newaddr
12850 ADR R2,shipsdata
12860 MOV R3,#16
12870 .uceight
12880 MOV R4,#8
12890 .uctwelve
12900 LDRB R5,[R2],#1
12910 LDRB R6,[R1,#1]!
12920 CMP R5,#0 : BEQ UCskip           ;    no collision on black around ship
12930 EORS R5,R5,R6
12940 BNE collision
12950 .UCskip
12960 SUBS R4,R4,#1
12970 BNE uctwelve
12980 ADD R1,R1,#152
12990 SUBS R3,R3,#1
13000 BNE uceight
13010 B check_ok
13020 .collision
13030 STMFD R13!,{R14} : BL check_collision : LDMFD R13!,{R14}
13040 .check_ok
13050 MOV R15,R14
13060 
13070 .check_collision
13080 
13090 LDR R1,newaddr
13100 ADR R2,X_usership
13110 ADR R3,Y_usership
13120 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
13130 
13140 LDRB R1,no_of_sprites
13150 STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
13160 MOV R3,#1
13170 .ccloop
13180 LDRB R4,[R2,#9]
13190 CMP R4,#1 : BNE ccover      ; 0 value - offscreen /  2 value - dead
13200 
13210 STMFD R13!,{R1-R4,R14}
13220 MOV R0,#1
13230 LDR R1,[R2,#0]
13240 ADR R2,X_sprite
13250 ADR R3,Y_sprite
13260 BL get_coordinates
13270 .X_col_check
13280 LDR R1,X_usership
13290 LDR R2,X_sprite
13300 LDRB R3,usership_width
13310 LDRB R4,sprite_width
13320 CMP R1,R2
13330 BGT usership_right
13340 ADD R1,R1,R3
13350 CMP R1,R2
13360 BLT no_col
13370 B Y_col_check
13380 
13390 .usership_right
13400 ADD R2,R2,R4
13410 CMP R1,R2
13420 BGT no_col
13430 
13440 .Y_col_check
13450 LDR R1,Y_usership
13460 LDR R2,Y_sprite
13470 LDRB R3,usership_height
13480 LDRB R4,sprite_height
13490 CMP R1,R2
13500 BLT usership_lower
13510 SUB R1,R1,R3
13520 CMP R1,R2
13530 BGT no_col
13540 B uc_clear
13550 
13560 .usership_lower
13570 SUB R2,R2,R4
13580 CMP R1,R2
13590 BLT no_col
13600 .uc_clear
13610 
13620 MOV R0,#0
13630 
13640 .no_col
13650 LDMFD R13!,{R1-R4,R14}
13660 CMP R0,#0 : BNE ccover
13670 
13680 STMFD R13!,{R1-R4,R14} : MOV R10,#4 : LDR R1,[R2] : BL draw : LDMFD R13!,{R1-R4,R14}
13690 MOV R11,#4 : STRB R11,[R2,#9]    ;   explosion
13700 MOV R11,#15: STRB R11,[R2,#10]   ;   explosion time
13710 MOV R11,#0 : STRB R11,[R2,#11]   ;   frame pointer ( 48 bytes each frame)
13720 LDRB R11,last_sprite : ADD R11,R11,#1 : STRB R11,last_sprite   ;                Check for end of pattern - for last sprite
13730 STMFD R13!,{R0-R8,R14} : LDR R1,[R2] : BL explosion : BL increase_score : BL initialise_particles : BL particle_spread : LDMFD R13!,{R0-R8,R14}
13740 MOV R0,#1 : STRB R0,dead
13750 MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
13760 MOV R15,R14     ;   usership is dead so additional collisions impossible
13770 .ccover
13780 ADD R2,R2,#12:ADD R3,R3,#1
13790 CMP R3,R1 : BNE ccloop
13800
13810 MOV R15,R14
13820
13830 .load_last_sprite
13840 LDRB R11,last_sprite
13850 MOV R15,R14
13860 
13870 .store_last_sprite
13880 STRB R11,last_sprite
13890 MOV R15,R14
13900 
13910 .load_no_of_sprites
13920 LDRB R10,no_of_sprites
13930 MOV R15,R14
13940 
13950 
13960 .no_of_sprites EQUB 50    ; total sprites in pattern = no_of_sprites - 1
13970 .last_sprite EQUB 0
13980 .usership_frames  EQUB 10         ;  no of frames in explosion
13990 .usership_timer   EQUB 6           ;  time between each frame
14000 ALIGN
14010 
14020 .newaddr EQUD &1FE146B
14030 .oldaddr EQUD &1FE146B
14040 
14050 .load_newaddr
14060 LDR R1,newaddr
14070 MOV R15,R14
14080 
14090 .directive_shipsdata
14100 ADR R3,shipsdata
14110 MOV R15,R14
14120 
14130 ;   Ships Data
14140 .shipsdata
14150 EQUD &00030000:EQUD &00003000
14160 EQUD &00030000:EQUD &00003000
14170 EQUD &00030000:EQUD &00003000
14180 EQUD &00033000:EQUD &00033000
14190 EQUD &00033000:EQUD &00033000
14200 EQUD &00033300:EQUD &00333000
14210 EQUD &00034300:EQUD &00343000
14220 EQUD &00034330:EQUD &03343000
14230 EQUD &30034430:EQUD &03443003
14240 EQUD &30034433:EQUD &33443003
14250 EQUD &30034443:EQUD &34443003
14260 EQUD &33334443:EQUD &34443333
14270 EQUD &33344443:EQUD &34444333
14280 EQUD &00334433:EQUD &33443300
14290 EQUD &00033330:EQUD &03333000
14300 EQUD &00003300:EQUD &00330000
14310 
14320 .self_destruct
14330 MOV R0,#1:STRB R0,dead
14340 STMFD R13!,{R1-R8,R14}
14350 BL initialise_particles
14360 BL particle_spread
14370 MOV R0,#1 : STRB R0,lives
14380 MOV R0,#32 : STRB R0,Clives
14390 MOV R0,#49 : STRB R0,Clives+1
14400 MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
14410 LDMFD R13!,{R1-R8,R15}
14420
14430 .usership_explosion
14440 LDRB R1,usership_frames
14450 CMP R1,#0     : BEQ no_more_frames
14460 LDRB R2,usership_timer
14470 CMP R2,#0     : BNE decrement_timer
14480 MOV R2,#6     : STRB R2,usership_timer
14490 SUBS R1,R1,#1 : STRB R1,usership_frames
14500 
14510 STMFD R13!,{R8,R14} : BL particle_spread : LDMFD R13!,{R8,R14}
14520
14530 B next_frame
14540 .decrement_timer
14550 SUB R2,R2,#1 : STRB R2,usership_timer
14560 B next_frame
14570 .no_more_frames
14580 STMFD R13!,{R14} : BL load_wave_finished : LDMFD R13!,{R14} : CMP R1,#1 : BEQ continue_play
14590 CMP R8,#0 : BEQ next_frame
14600 ADD R1,R8,#1 : STRB R1,no_of_sprites
14610 B next_frame
14620 .continue_play
14630 LDRB R1,dead : CMP R1,#0 : BEQ next_wave
14640 BL lives_minus
14650 CMP R1,#0 : BEQ game_over
14660 BL plot_border
14670 BL print_lives
14680 BL print_score
14690 BL plot_wave
14700 BL initial_stars
14710 MOV R0,#0 : BL repeat_wave
14720 LDR R1,newaddr
14730 BL usership
14740 MOV R1,#0 : STRB R1,dead
14750 MOV R1,#300
14760 .wait
14770 STMFD R13!,{R1,R14}
14780 BL move_stars
14790 BL change_palette
14800 BL load_no_of_bullets : CMP R2,#0 : BLNE inner
14810 MOV R5,#400 : BL slow1 : BL test_keypress
14820 LDMFD R13!,{R1,R14}
14830 SUBS R1,R1,#1 : BNE wait
14840 MOV R0,#1 : BL repeat_wave
14850 B display
14860 .next_frame
14870 MOV R15,R14
14880
14890 .lives_plus
14900 LDRB R0,Clives+1 : ADD R0,R0,#1 : STRB R0,Clives+1
14910 CMP R0,#58 : BNE plus_done
14920 MOV R0,#48 : STRB R0,Clives+1
14930 LDRB R0,Clives : CMP R0,#32
14940 MOVEQ R0,#49 : STREQB R0,Clives
14950 ADDNE R0,R0,#1 : STRNEB R0,Clives
14960
14970 .plus_done
14980 LDRB R1,lives : ADD R1,R1,#1 : STRB R1,lives
14990 MOV R15,R14
15000
15010 .lives_minus
15020 LDRB R0,Clives+1 : SUB R0,R0,#1 : STRB R0,Clives+1
15030 CMP R0,#47 : BNE minus_done
15040 MOV R0,#57 : STRB R0,Clives+1
15050 LDRB R0,Clives : CMP R0,#49
15060 MOVEQ R0,#32 : STREQB R0,Clives
15070 SUBNE R0,R0,#1 : STRNEB R0,Clives
15080
15090 .minus_done
15100 LDRB R1,lives : SUB R1,R1,#1 : STRB R1,lives
15110 MOV R15,R14
15120
15130 .print_lives
15140 SWI &100+18
15150 MOV R0,#3
15160 SWI "OS_WriteC"
15170 MOV R0,#136
15180 SWI "OS_WriteC"
15190 SWI &100+18
15200 MOV R0,#0
15210 SWI "OS_WriteC"
15220 MOV R0,#3
15230 SWI "OS_WriteC"
15240 MOV R0,#4
15250 MOV R1,#172
15260 MOV R2,#880
15270 SWI "OS_Plot"
15280 ADR R0,Blives
15290 SWI "OS_Write0"
15300 MOV R15,R14
15310
15320 .lives  EQUB 3
15330 .Blives EQUB 127  :EQUB 127
15340 .Clives EQUS " 3" :EQUB 0
15350 ALIGN
15360 
15370 .reset_lives
15380 MOV R1,#3 : STRB R1,lives
15390 MOV R1,#51 : STRB R1,Clives+1
15400 MOV R1,#32 : STRB R1,Clives
15410 MOV R15,R14
15420
15430 .initialise_particles
15440 LDR R1,newaddr : ADD R1,R1,#1
15450 ADR R2,particles_addresses
15460 BNV end
15470 MOV R3,#16
15480 .iploop
15490 MOV R4,#8
15500 .iploop2
15510 STR R1,[R2],#4
15520 ADD R1,R1,#1
15530 SUBS R4,R4,#1
15540 BNE iploop2
15550 ADD R1,R1,#152
15560 SUBS R3,R3,#1
15570 BNE iploop
15580 MOV R15,R14
15590 
15600 .particle_spread
15610 ADR R1,particles_addresses
15620 BNV end
15630 ADR R2,particles_paths
15640 ADR R3,shipsdata
15650 MOV R4,#128
15660 .psloop
15670 LDRB R5,[R3],#1
15680 LDR R6,[R1]
15690 LDRB R7,[R6]
15700 EOR R7,R7,R5
15710 STRB R7,[R6]
15720 LDR R8,[R2],#4
15730 ADD R6,R6,R8
15740 STR R6,[R1],#4
15750 LDRB R7,usership_frames : CMP R7,#0 : BEQ last_frame
15760 LDRB R7,[R6]
15770 EOR R7,R7,R5
15780 STRB R7,[R6]
15790 .last_frame
15800 SUBS R4,R4,#1
15810 BNE psloop
15820 MOV R15,R14
15830 
15840 .explosion
15850 ;   R1 - address of explosion
15860 ADR R2,explosion_data
15870 .frame
15880 MOV R3,#14
15890 .x_eight
15900 MOV R4,#10
15910 .x_twelve
15920 LDRB R5,[R2],#1
15930 LDRB R7,[R1,#1] : EOR R5,R5,R7
15940 STRB R5,[R1,#1]!
15950 SUBS R4,R4,#1
15960 BNE x_twelve
15970 ADD R1,R1,#150           ;   160 pixels across
15980 SUBS R3,R3,#1
15990 BNE x_eight
16000 MOV R15,R14
16010 
16020 .directive_explosion
16030 ADR R2,explosion_data
16040 MOV R15,R14
16050 
16060 ;   Data for exposion frames
16070 .explosion_data
16080 
16090 ;   Frame One    ************************************************
16100 EQUD &00000000:EQUD &00000000:EQUW &0000
16110 EQUD &00000000:EQUD &00000000:EQUW &0000
16120 EQUD &00000000:EQUD &00000000:EQUW &0000
16130 EQUD &00000000:EQUD &00001313:EQUW &0000
16140 EQUD &11000000:EQUD &00013133:EQUW &0000
16150 EQUD &31100000:EQUD &01333333:EQUW &0000
16160 EQUD &33100000:EQUD &13333333:EQUW &0001
16170 EQUD &33000000:EQUD &13333133:EQUW &0000
16180 EQUD &31000000:EQUD &01333333:EQUW &0000
16190 EQUD &10000000:EQUD &00113333:EQUW &0000
16200 EQUD &00000000:EQUD &00001330:EQUW &0000
16210 EQUD &00000000:EQUD &00000000:EQUW &0000
16220 EQUD &00000000:EQUD &00000000:EQUW &0000
16230 EQUD &00000000:EQUD &00000000:EQUW &0000
16240 
16250 ;   Frame Two    ***********************************************
16260 EQUD &00000000:EQUD &00000000:EQUW &0000
16270 EQUD &00000000:EQUD &00000000:EQUW &0000
16280 EQUD &00000000:EQUD &00000000:EQUW &0000
16290 EQUD &00000000:EQUD &00013311:EQUW &0000
16300 EQUD &10000000:EQUD &00113333:EQUW &0000
16310 EQUD &31100000:EQUD &01333333:EQUW &0000
16320 EQUD &33100000:EQUD &11333333:EQUW &0000
16330 EQUD &33310000:EQUD &11333333:EQUW &0000
16340 EQUD &31100000:EQUD &01133133:EQUW &0000
16350 EQUD &31000000:EQUD &00133333:EQUW &0000
16360 EQUD &10000000:EQUD &00111333:EQUW &0000
16370 EQUD &00000000:EQUD &00001110:EQUW &0000
16380 EQUD &00000000:EQUD &00000000:EQUW &0000
16390 EQUD &00000000:EQUD &00000000:EQUW &0000
16400 
16410 ;   Frame Three  ***********************************************
16420 EQUD &00000000:EQUD &00000000:EQUW &0000
16430 EQUD &00000000:EQUD &00000000:EQUW &0000
16440 EQUD &00000000:EQUD &00000110:EQUW &0000
16450 EQUD &00000000:EQUD &00001111:EQUW &0000
16460 EQUD &11100000:EQUD &00113333:EQUW &0000
16470 EQUD &33110000:EQUD &01131333:EQUW &0000
16480 EQUD &31100000:EQUD &13333113:EQUW &0000
16490 EQUD &33110000:EQUD &11133333:EQUW &0000
16500 EQUD &13310000:EQUD &00313333:EQUW &0000
16510 EQUD &33100000:EQUD &00133331:EQUW &0000
16520 EQUD &11000000:EQUD &00011133:EQUW &0000
16530 EQUD &00000000:EQUD &00000111:EQUW &0000
16540 EQUD &00000000:EQUD &00000000:EQUW &0000
16550 EQUD &00000000:EQUD &00000000:EQUW &0000
16560 
16570 ;   Frame Four   ***********************************************
16580 EQUD &00000000:EQUD &00000000:EQUW &0000
16590 EQUD &00000000:EQUD &00011133:EQUW &0000
16600 EQUD &01000000:EQUD &11133333:EQUW &0000
16610 EQUD &31100000:EQUD &13333333:EQUW &0000
16620 EQUD &31100000:EQUD &33131333:EQUW &0001
16630 EQUD &13333000:EQUD &33313333:EQUW &0011
16640 EQUD &31333100:EQUD &33333333:EQUW &0033
16650 EQUD &33333300:EQUD &33333331:EQUW &0001
16660 EQUD &13333100:EQUD &13333113:EQUW &0003
16670 EQUD &31331000:EQUD &13333333:EQUW &0001
16680 EQUD &33311000:EQUD &11333333:EQUW &0000
16690 EQUD &31100000:EQUD &03131333:EQUW &0000
16700 EQUD &10000000:EQUD &00013331:EQUW &0000
16710 EQUD &00000000:EQUD &00000000:EQUW &0000
16720 
16730 ;   Frame Five  ***********************************************
16740 EQUD &00000000:EQUD &00000000:EQUW &0000
16750 EQUD &31000000:EQUD &00011133:EQUW &0000
16760 EQUD &11100000:EQUD &11133333:EQUW &0000
16770 EQUD &33311000:EQUD &13333333:EQUW &0011
16780 EQUD &33333100:EQUD &33131333:EQUW &0131
16790 EQUD &13333310:EQUD &33313333:EQUW &1311
16800 EQUD &31333130:EQUD &33333333:EQUW &1333
16810 EQUD &33333331:EQUD &33333331:EQUW &0131
16820 EQUD &13333130:EQUD &33333313:EQUW &0113
16830 EQUD &31331300:EQUD &33333333:EQUW &0131
16840 EQUD &33333300:EQUD &33333333:EQUW &0311
16850 EQUD &33310300:EQUD &33333331:EQUW &0013
16860 EQUD &33330000:EQUD &03331331:EQUW &0001
16870 EQUD &10000000:EQUD &00011100:EQUW &0000
16880 
16890 ;   Frame Six    ***********************************************
16900 EQUD &33000000:EQUD &00110313:EQUW &0000
16910 EQUD &31311100:EQUD &01111133:EQUW &0033
16920 EQUD &33133310:EQUD &11133333:EQUW &0311
16930 EQUD &33331310:EQUD &13333333:EQUW &3331
16940 EQUD &33333330:EQUD &33131333:EQUW &3333
16950 EQUD &13333310:EQUD &33313333:EQUW &1311
16960 EQUD &31333333:EQUD &33333333:EQUW &1333
16970 EQUD &33333331:EQUD &33333331:EQUW &1333
16980 EQUD &13333133:EQUD &33333313:EQUW &0133
16990 EQUD &31331330:EQUD &33333333:EQUW &0133
17000 EQUD &33333330:EQUD &33333333:EQUW &3311
17010 EQUD &33313300:EQUD &33333331:EQUW &3113
17020 EQUD &33333000:EQUD &13331331:EQUW &0311
17030 EQUD &13000000:EQUD &03131100:EQUW &0003
17040 
17050 .directive_particles
17060 ADR R1,particles_addresses
17070 ADR R2,particles_paths
17080 MOV R15,R14
17090 
17100 ; Usership explosion data
17110 .particles_paths
17120 EQUD 0:EQUD 0:EQUD 161:EQUD 0:EQUD 0:EQUD -1:EQUD 0:EQUD 0
17130 EQUD 0:EQUD 0:EQUD -322:EQUD 0:EQUD 0:EQUD -159:EQUD 0:EQUD 0
17140 EQUD 0:EQUD 0:EQUD -322:EQUD 0:EQUD 0:EQUD -159:EQUD 0:EQUD 0
17150 EQUD 0:EQUD -1:EQUD -159:EQUD 0:EQUD 0:EQUD -160:EQUD -161:EQUD 0
17160 EQUD 0:EQUD 159:EQUD -1:EQUD 0:EQUD 0:EQUD -160:EQUD 1:EQUD 0
17170 EQUD 0:EQUD -320:EQUD 1:EQUD 0:EQUD 0:EQUD 160:EQUD 161:EQUD 0
17180 EQUD 0:EQUD -161:EQUD -320:EQUD 0:EQUD 0:EQUD -1:EQUD 1:EQUD 0
17190 EQUD -1:EQUD 480:EQUD -161:EQUD 0:EQUD 0:EQUD 161:EQUD 1:EQUD -159
17200 EQUD 160:EQUD 159:EQUD -2:EQUD 161:EQUD 320:EQUD 318:EQUD 2:EQUD 161
17210 EQUD -160:EQUD -318:EQUD 1:EQUD -480:EQUD 160:EQUD 159:EQUD -1:EQUD -161
17220 EQUD -161:EQUD -1:EQUD 477:EQUD 160:EQUD 161:EQUD 1:EQUD -159:EQUD -160
17230 EQUD 1:EQUD -1:EQUD 160:EQUD -477:EQUD 159:EQUD 1:EQUD 2:EQUD 160
17240 EQUD -160:EQUD -159:EQUD -161:EQUD 161:EQUD -1:EQUD 322:EQUD 160:EQUD 161
17250 EQUD 159:EQUD -159:EQUD -2:EQUD 0:EQUD 0:EQUD 160:EQUD 1:EQUD 159
17260 EQUD -1:EQUD -160:EQUD 161:EQUD 0:EQUD 0:EQUD 318:EQUD 2:EQUD -1
17270 EQUD 0:EQUD 318:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD -161:EQUD 0
17280 
17290 ; Usership particle addresses on screen
17300 .particles_addresses
17310 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17320 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17330 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17340 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17350 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17360 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17370 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17380 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17390 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17400 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17410 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17420 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17430 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17440 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17450 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17460 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
17470 
17480 .directive_clpaths
17490 ADR R2,cluster_paths
17500 MOV R15,R14
17510 
17520 .cluster_paths
17530  ;    cluster data paths
17540 EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
17550 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17560 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17570 EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
17580 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17590 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17600 EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
17610 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17620 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17630 EQUD 1:EQUD 160:EQUD -2:EQUD 161:EQUD 2:EQUD -2:EQUD 3:EQUD 159:EQUD 159:EQUD 161:EQUD 3:EQUD 160
17640 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17650 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17660 EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
17670 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17680 EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
17690 EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
17700 EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 160:EQUD 160:EQUD 160:EQUD 0
17710 EQUD 640:EQUD 160:EQUD 320:EQUD 160:EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 0:EQUD 0:EQUD 0:EQUD &B
17720 EQUD 480:EQUD 160:EQUD 160:EQUD 160:EQUD 320:EQUD 320:EQUD 160:EQUD 0:EQUD &B:EQUD &B:EQUD &B:EQUD &B
17730 EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 320:EQUD 0:EQUD 0:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B
17740 EQUD 0:EQUD 160:EQUD 0:EQUD 0:EQUD 160:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B
17750 EQUD &B:EQUD 0:EQUD &B:EQUD &B:EQUD 0:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E
17760 EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E
17770 EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E
17780 EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E
17790 EQUD &E:EQUD &B:EQUD &E:EQUD &E:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E
17800 
17810 
17820 .directive_ab
17830 ADR R4,alien_bombs
17840 MOV R15,R14
17850 
17860 ;    Alien bullets are stored here .................
17870 .alien_bombs
17880 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17890 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17900 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17910 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17920 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17930 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17940 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17950 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17960 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17970 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17980 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
17990 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
18000 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
18010 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
18020 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
18030 EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
18040
18050 .directive_byte
18060 ADR R2,byte
18070 MOV R15,R14
18080 
18090 ;  ALIEN SHIPS ADDRESSES stored here as well as info on these ships
18100 .byte
18110 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18120 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18130 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18140 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18150 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18160 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18170 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18180 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18190 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18200 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18210 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18220 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18230 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18240 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18250 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18260 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18410 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18411 EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
18412
18420 .change_palette
18430 LDR R1,palette_delay
18440 SUBS R1,R1,#1 : STR R1,palette_delay
18450 MOVNE R15,R14
18460 MOV R1,#100 : STR R1,palette_delay
18470 
18480 STMFD R13!,{R14}
18490 LDRB R1,inc_or_dec
18500 CMP R1,#1 : BLEQ increment
18510 LDRB R1,inc_or_dec
18520 CMP R1,#2 : BLEQ decrement
18530
18540 LDRB R5,pal_red
18550 LDRB R6,pal_green
18560 LDRB R7,pal_blue
18570 BL eight_to_fifteen
18580 LDMFD R13!,{R15}
18590 
18600 .palette_delay EQUD 1
18610 
18620 .increment
18630 LDRB R2,colour
18640 LDRB R1,rgb
18650 ADD R1,R1,#1 : STRB R1,rgb
18660 CMP R2,#1 : MOVEQ R5,R1 : STREQB R5,pal_red
18670 CMP R2,#2 : MOVEQ R6,R1 : STREQB R6,pal_green
18680 CMP R2,#3 : MOVEQ R7,R1 : STREQB R7,pal_blue
18690 CMP R1,#16 : BNE pal_inc
18700 
18710 ADR R3,pal_data : LDRB R4,pal_pointer : ADD R3,R3,R4
18720 LDRB R5,[R3,#0] : STRB R5,colour
18730 LDRB R5,[R3,#1] : STRB R5,inc_or_dec
18740 CMP R5,#1 : MOVEQ R5,#0 : MOVNE R5,#16
18750 STRB R5,rgb
18760 ADD R4,R4,#2
18770 CMP R4,#16 : MOVEQ R4,#0 : STRB R4,pal_pointer
18780 .pal_inc
18790 MOV R15,R14
18800 
18810 .decrement
18820 LDRB R2,colour
18830 LDRB R1,rgb
18840 SUB R1,R1,#1 : STRB R1,rgb
18850 CMP R2,#1 : MOVEQ R5,R1 : STREQB R5,pal_red
18860 CMP R2,#2 : MOVEQ R6,R1 : STREQB R6,pal_green
18870 CMP R2,#3 : MOVEQ R7,R1 : STREQB R7,pal_blue
18880 CMP R1,#0 : BNE pal_dec
18890
18900 ADR R3,pal_data : LDRB R4,pal_pointer : ADD R3,R3,R4
18910 LDRB R5,[R3,#0] : STRB R5,colour
18920 LDRB R5,[R3,#1] : STRB R5,inc_or_dec
18930 CMP R5,#1 : MOVEQ R5,#0 : MOVNE R5,#16
18940 STRB R5,rgb
18950 ADD R4,R4,#2
18960 CMP R4,#16 : MOVEQ R4,#0 : STRB R4,pal_pointer
18970 .pal_dec
18980 MOV R15,R14
18990 
19000 .pal_red    EQUB 16
19010 .pal_green  EQUB 0
19020 .pal_blue   EQUB 0
19030 .rgb        EQUB 0    ; range 0 to 16
19040 .colour     EQUB 2    ; chosen colour red,green or blue
19050 .inc_or_dec EQUB 1    ; increment or decrement chosen colour
19060 .pal_pointer EQUB 2   ; pointer to pal_data
19070 .pal_data  EQUB 2:EQUB 1:EQUB 3:EQUB 1:EQUB 1:EQUB 2:EQUB 3:EQUB 2:EQUB 3:EQUB 1:EQUB 1:EQUB 1:EQUB 2:EQUB 2:EQUB 3:EQUB 2
19080 ALIGN
19090 
19100 .eight_to_fifteen
19110 MOV R1,#8
19120 .next_colour
19130 MUL R2,R5,R1      ;  red = colour * red
19140 MUL R3,R6,R1      ;  green = colour * green
19150 MUL R4,R7,R1      ;  blue = colour * blue
19160 
19170 .write_palette
19180 SWI &100+19
19190 MOV R0,R1         ;   colour
19200 SWI "OS_WriteC"
19210 SWI &100+16
19220 MOV R0,R2         ;   red
19230 SWI "OS_WriteC"
19240 MOV R0,R3         ;   green
19250 SWI "OS_WriteC"
19260 MOV R0,R4         ;   blue
19270 SWI "OS_WriteC"
19280 
19290 ADD R1,R1,#1
19300 CMP R1,#16
19310 BNE next_colour
19320 MOV R15,R14
19330 
19340 
19350 .reset_lws
19360 ;  reset lives=3, score=0, wave=1   for  start of game
19370 MOV R1,#1 : STRB R1,wave
19380 MOV R1,#49 : STRB R1,Cwave+1
19390 MOV R1,#32 : STRB R1,Cwave
19400 STRB R1,players_score   : STRB R1,players_score+1
19410 STRB R1,players_score+2 : STRB R1,players_score+3
19420 STRB R1,players_score+4
19430 MOV R1,#0 : STR R1,score : STR R1,extra_ship
19440 MOV R1,#48 : STRB R1,players_score+5
19450 B reset_lives
19460
19470 .pause
19480 SWI &100+18
19490 MOV R0,#0
19500 SWI "OS_WriteC"
19510 MOV R0,#128
19520 SWI "OS_WriteC"
19530 .key
19540 MOV R0,#129 : LDR R1,hiscorekey : MOV R2,#255 : SWI "OS_Byte"
19550 CMP R1,#255 : BNE next_key
19560 MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
19570 STMFD R13!,{R14}
19580 LDR R1,screen_start
19590 LDR R2,memory2_start
19600 LDR R3,screen_end
19610 BL store_screen
19620 BL screen_wither
19630 MOV R1,#0 : STRB R1,BHflag
19640 BL wither_on_screen
19650 .pc2
19660 MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
19670 BL change_palette
19680 MOV R0,#129:MOV R1,#1:MOV R2,#0:SWI "OS_Byte"
19690 CMP R2,#0 : BNE pc2
19700 BL screen_wither
19710 MOV R3,#8
19720 .next_bit3
19730 LDR R1,memory2_start
19740 LDR R2,memory2_end
19750 LDR R7,screen_start
19760 BL wither_memory    ;    wither memory contents &1E000 to &28000
19770 SUBS R3,R3,#1
19780 BNE next_bit3
19790 LDR R1,memory2_start
19800 LDR R2,screen_start
19810 LDR R3,memory2_end
19820 BL write_screen
19830
19840 LDMFD R13!,{R14}
19850 .next_key
19860 MOV R0,#129 : LDR R1,spacekey : MOV R2,#255 : SWI "OS_Byte"
19870 CMP R1,#255 : BNE key
19880 MOV R15,R14
19890 .spacekey   EQUD &FFFFFF9D        ; SPACE BAR - Inkey Value (-99)
19900 .hiscorekey EQUD &FFFFFFAB        ;         H - Inkey Value (-85)
19910 
19920 .game_over
19930 BL print_lives
19940 MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
19950 SWI "OS_RemoveCursors"
19960 SWI &100+18
19970 MOV R0,#0
19980 SWI "OS_WriteC"
19990 MOV R0,#128
20000 SWI "OS_WriteC"
20010
20020 SWI &100+31
20030 MOV R0,#16
20040 SWI "OS_WriteC"
20050 MOV R0,#14
20060 SWI "OS_WriteC"
20070 SWI "OS_WriteS"
20080 EQUS ("GAME OVER") : EQUB 0
20090 
20100 ;   check if score is to be inserted into hiscore table
20110 ADR R1,scores
20120 BL directive_players_score
20130 MOV R8,#0
20140 .check_score
20150 MOV R5,#6                ;  6 characters in score
20160 MOV R3,R1
20170 MOV R4,R2
20180 .next_char
20190 LDRB R6,[R3],#1
20200 LDRB R7,[R4],#1
20210 CMP R6,R7
20220 BGT next_score
20230 BLT score_in
20240 SUBEQS R5,R5,#1
20250 BNE next_char
20260 B score_in               ;  insert score in hiscore table
20270 .next_score
20280 ADD R8,R8,#1             ;  flag for names
20290 CMP R8,#10 : BEQ score_out
20300 ADD R1,R1,#8
20310 B check_score
20320 .score_in
20330
20340 BL enter_name
20350
20360 CMP R8,#9 : BEQ store_name   ; bottom of hiscore table
20370 .move_table                  ; move scores < players score down one
20380 MOV R6,#8
20390 .move_names
20400 ADR  R1,names : MOV R9,#16 : MLA R1,R9,R6,R1
20410 MOV R5,#15
20420 .next_nchar
20430 LDRB R4,[R1],#1
20440 STRB R4,[R1,#15]
20450 SUBS R5,R5,#1
20460 BNE next_nchar
20470 SUB R6,R6,#1 : CMP R6,R8
20480 BGE move_names
20490 
20500 MOV R6,#8
20510 .move_scores
20520 ADR  R1,scores : MOV R9,#8 : MLA R1,R9,R6,R1
20530 MOV R5,#6
20540 .next_schar
20550 LDRB R4,[R1],#1
20560 STRB R4,[R1,#7]
20570 SUBS R5,R5,#1
20580 BNE next_schar
20590 SUB R6,R6,#1 : CMP R6,R8
20600 BGE move_scores
20610 
20620 .store_name                  ;  store players name
20630 ADR R1,names : MOV R9,#16 : MLA R1,R9,R8,R1
20640 ADR R2,players_name
20650 MOV R3,#15
20660 .next_char
20670 LDRB R4,[R2],#1
20680 CMP R4,#&D        ;   string entered is terminated by RETURN char.
20690 BEQ spaces
20700 STRB R4,[R1],#1
20710 SUBS R3,R3,#1
20720 BNE next_char
20730 B store_score
20740 .spaces           ;   blanks out rest of previous name
20750 MOV R4,#32
20760 STRB R4,[R1],#1
20770 SUBS R3,R3,#1
20780 BNE spaces
20790 
20800 .store_score                 ;  store players score
20810 ADR R1,scores : MOV R9,#8 : MLA R1,R9,R8,R1
20820 BL directive_players_score
20830 MOV R3,#6
20840 .next_byte
20850 LDRB R4,[R2],#1
20860 STRB R4,[R1],#1
20870 SUBS R3,R3,#1
20880 BNE next_byte
20890 B name_entered
20900 
20910 .score_out        ;   score not inserted in hiscore table
20920 SWI &100+31
20930 MOV R0,#7
20940 SWI "OS_WriteC"
20950 MOV R0,#27
20960 SWI "OS_WriteC"
20970 SWI "OS_WriteS"
20980 EQUS ("<Press any key to continue>") : EQUB 0
20990 MOV R0,#15:MOV R1,#0:SWI "OS_Byte" : SWI 4
21000
21010 .name_entered
21020 BL screen_wither
21030 MOV R1,#0 : STRB R1,BHflag
21040 BL wither_on_screen
21050 .pc
21060 MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
21070 BL change_palette
21080 MOV R0,#129:MOV R1,#1:MOV R2,#0:SWI "OS_Byte"
21090 CMP R2,#0 : BNE pc
21100 BL screen_wither
21110 MOV R1,#1 : STRB R1,BHflag
21120 BL wither_on_screen
21130
21140 B game_start
21150 
21160 .enter_name
21170 SWI &100+31
21180 MOV R0,#5
21190 SWI "OS_WriteC"
21200 MOV R0,#24
21210 SWI "OS_WriteC"
21220 SWI "OS_WriteS"
21230 EQUS ("Enter your name: ") : EQUB 0
21240 
21250 ADR R0,players_name
21260 MOV R1,#15
21270 MOV R2,#32
21280 MOV R3,#126
21290 SWI "OS_ReadLine"
21300 MOV R15,R14
21310 .players_name  EQUS "----- NICK -----"
21320 .BHflag EQUB 0 : ALIGN    ;  IF =0 print hiscores ELSE IF =1 plot border
21330
21340 .wither_on_screen
21350 ;   set up bank 2 for display to allow bank 1 to be accessed
21360 MOV R0,#112        ;    write bank 2
21370 MOV R1,#2
21380 SWI "OS_Byte"
21390
21400 SWI &100+12        ;    CLS
21410
21420 MOV R0,#113        ;    display bank 2
21430 MOV R1,#2
21440 SWI "OS_Byte"
21450 
21460 ;   bank 1 is SCREEN SHADOW MODE starting at &1FD8000
21470 MOV R0,#112        ;    write bank 1
21480 MOV R1,#1
21490 SWI "OS_Byte"
21500 STMFD R13!,{R14}
21510 LDRB R1,BHflag : CMP R1,#1
21520 BEQ wither_on_border
21530 BL plot_screen           ;    plot hiscore graphics screen
21540 BL hiscore_table         ;    print hiscore table off screen
21550 B wither_on_hiscores
21560 .wither_on_border
21570 BL plot_border           ;    plot border off screen
21580 BL reset_lws             ;    resets   lives=3, score=0, wave=1
21590 BL print_lives
21600 BL print_score
21610 BL plot_wave
21620 BL initial_stars
21630 .wither_on_hiscores
21640 LDR R1,screen_start
21650 LDR R2,memory_start
21660 LDR R3,screen_end
21670 BL store_screen      ;    store away screen to be withered
21680 LDMFD R13!,{R14}
21690
21700 SWI &100+18          ;    reset background colour
21710 MOV R0,#0
21720 SWI "OS_WriteC"
21730 MOV R0,#128
21740 SWI "OS_WriteC"
21750 SWI &100+12          ;    CLS - clear bank 1
21760 MOV R0,#113          ;    display bank 1
21770 MOV R1,#1
21780 SWI "OS_Byte"
21790 
21800 STMFD R13!,{R14}
21810 MOV R3,#8
21820 .next_bit
21830 LDR R1,memory_start
21840 LDR R2,memory_end
21850 LDR R7,screen_start
21860 BL wither_memory     ;    wither memory contents &14000 to &1E000
21870 SUBS R3,R3,#1
21880 BNE next_bit
21890 LDR R1,memory_start
21900 LDR R2,screen_start
21910 LDR R3,memory_end
21920 BL write_screen
21930 LDMFD R13!,{R14}
21940 MOV R15,R14
21950 
21960 .hiscore_table
21970 MOV R0,#4
21980 MOV R1,#320
21990 MOV R2,#872
22000 SWI "OS_Plot"
22010 SWI "OS_WriteS"
22020 EQUS ("Top scores so far:") : EQUB 0
22030 
22040 MOV R5,#10         ;  top ten scores
22050 MOV R6,#11         ;  X TAB
22060 ADR R1,scores      ;  pointer to scores
22070 ADR R2,names       ;  pointer to names
22080 .hsloop
22090 
22100 SWI &100+31
22110 MOV R0,#9
22120 SWI "OS_WriteC"
22130 MOV R0,R6
22140 SWI "OS_WriteC"
22150 
22160 MOV R0,R1
22170 SWI "OS_Write0"
22180 MOV R1,R0
22190 MOV R0,R2
22200 SWI "OS_Write0"
22210 MOV R2,R0
22220 ADD R6,R6,#1
22230 
22240 SUBS R5,R5,#1
22250 BNE hsloop
22260 
22270 MOV R0,#4
22280 MOV R1,#208
22290 MOV R2,#104
22300 SWI "OS_Plot"
22310 SWI "OS_WriteS"
22320 EQUS ("<Press any key to continue>") : EQUB 0
22330
22340 MOV R15,R14
22350 
22360 .scores
22370 EQUS " 30000" : EQUB 32 : EQUB 0
22380 EQUS " 20000" : EQUB 32 : EQUB 0
22390 EQUS " 10000" : EQUB 32 : EQUB 0
22400 EQUS "  7000" : EQUB 32 : EQUB 0
22410 EQUS "  6000" : EQUB 32 : EQUB 0
22420 EQUS "  5000" : EQUB 32 : EQUB 0
22430 EQUS "  4000" : EQUB 32 : EQUB 0
22440 EQUS "  3000" : EQUB 32 : EQUB 0
22450 EQUS "  2000" : EQUB 32 : EQUB 0
22460 EQUS "  1000" : EQUB 32 : EQUB 0
22470 ALIGN
22480 
22490 .names
22500 EQUS "--ACCEPTABLE   " : EQUB 0
22510 EQUS "--AVERAGE      " : EQUB 0
22520 EQUS "--MEDICORE     " : EQUB 0
22530 EQUS "--NOT QUITE    " : EQUB 0
22540 EQUS "--TRY HARDER   " : EQUB 0
22550 EQUS "--POOR         " : EQUB 0
22560 EQUS "--SLOPPY       " : EQUB 0
22570 EQUS "--MISERABLE    " : EQUB 0
22580 EQUS "--TERRIBLE     " : EQUB 0
22590 EQUS "--PATHETIC     " : EQUB 0
22600 ALIGN
22610 
22620 .screen_wither
22630 MOV R3,#8
22640 LDR R2,screen_end
22650 .scr_shift
22660 LDR R1,screen_start
22670 .scr_shift2
22680 LDR R4,[R1],#4
22690 LDRB R5,count : CMP R5,#2 : BEQ scr_right
22700 MOV R4,R4,LSL #4
22710 STR R4,[R1,#-4]
22720 LDRB R7,count2 : SUBS R7,R7,#1 : STRB R7,count2 : BNE scr_left
22730 MOV R7,#40 : STRB R7,count2
22740 ADD R5,R5,#1 : STRB R5,count
22750 B scr_left
22760 .scr_right
22770 MOV R4,R4,LSR #4
22780 STR R4,[R1,#-4]
22790 LDRB R7,count2 : SUBS R7,R7,#1 : STRB R7,count2 : BNE scr_left
22800 MOV R7,#40 : STRB R7,count2
22810 SUB R5,R5,#1 : STRB R5,count
22820 .scr_left
22830 CMP R1,R2
22840 BNE scr_shift2
22850 SUBS R3,R3,#1
22860 BNE scr_shift
22870 MOV R15,R14
22880 
22890 .wither_memory
22900 .mem_shift
22910 LDR R4,[R1],#4
22920 LDRB R5,count : CMP R5,#2 : BEQ mem_right
22930 MOV R8,R3
22940 .mem_left2
22950 MOV R4,R4,LSL #4
22960 SUBS R8,R8,#1 : BNE mem_left2
22970 STR R4,[R7],#4
22980 LDRB R6,count2 : SUBS R6,R6,#1 : STRB R6,count2 : BNE mem_left
22990 MOV R6,#40 : STRB R6,count2
23000 ADD R5,R5,#1 : STRB R5,count
23010 B mem_left
23020 .mem_right
23030 MOV R8,R3
23040 .mem_right2
23050 MOV R4,R4,LSR #4
23060 SUBS R8,R8,#1 : BNE mem_right2
23070 STR R4,[R7],#4
23080 LDRB R6,count2 : SUBS R6,R6,#1 : STRB R6,count2 : BNE mem_left
23090 MOV R6,#40 : STRB R6,count2
23100 SUB R5,R5,#1 : STRB R5,count
23110 .mem_left
23120 CMP R1,R2
23130 BNE mem_shift
23140 MOV R15,R14
23150 
23160 .count EQUB 1                ;  1 = leftshift , 2 = rightshift
23170 .count2 EQUB 40              ;  40 = 1 line,40 words per line
23180 ALIGN
23190 
23200 .store_screen
23210 LDR R4,[R1],#4
23220 STR R4,[R2],#4
23230 CMP R1,R3
23240 BLT store_screen
23250 MOV R15,R14
23260 
23270 .write_screen
23280 LDR R4,[R1],#4
23290 STR R4,[R2],#4
23300 CMP R1,R3
23310 BLT write_screen
23320 MOV R15,R14
23330 
23340 .screen_start  EQUD &1FD8000
23350 .memory_start  EQUD memory
23360 .memory2_start EQUD memory+&A000
23370 .screen_end    EQUD &1FE2000
23380 .memory2_end   EQUD memory+&14000
23390 .memory_end    EQUD memory+&A000
23400 
23410 .plot_border
23420 MOV R0,#34
23430 ADR R2,sprite
23440 LDR R3,X_Coordinate
23450 LDR R4,Y_Coordinate
23460 MOV R5,#0            ; GCOL action
23470 SWI "OS_SpriteOp"
23480 MOV R15,R14
23490 .sprite EQUS "GAMESCR" : EQUB 32 : ALIGN
23500 .X_Coordinate EQUD 0
23510 .Y_Coordinate EQUD 0
23520 
23530 .plot_screen
23540 MOV R0,#34
23550 ADR R2,sprite2
23560 LDR R3,X_Coordinate
23570 LDR R4,Y_Coordinate
23580 MOV R5,#0            ; GCOL action
23590 SWI "OS_SpriteOp"
23600 MOV R15,R14
23610 .sprite2 EQUS "HISCR" : EQUB 32 : ALIGN
23620
23630 .increase_score
23640 LDR R1,score : LDRB R2,score_increment
23650 MOV R3,#10 : MUL R3,R2,R3
23660 ADD R1,R1,R3 : STR R1,score
23670 LDR R4,extra_ship
23680 ADD R4,R4,R3 : STR R4,extra_ship
23690 CMP R4,#4000 : BLT no_extra_ship
23700 MOV R4,#0 : STR R4,extra_ship
23710 STMFD R13!,{R14,R1-R3}
23720 BL lives_plus
23730 BL print_lives
23740 LDMFD R13!,{R14,R1-R3}
23750
23760 ;  score range = 999990, steps of 10,20......90
23770
23780 .no_extra_ship
23790 ADR R1,players_score+4
23800 .next_num
23810 LDRB R3,[R1]
23820 CMP R3,#32 : BNE no_space
23830 ADD R3,R2,#48 : STRB R3,[R1]
23840 B print_score
23850 .no_space
23860 ADD R3,R3,#1
23870 CMP R3,#58 : BNE next_inc
23880 MOV R3,#48
23890 LDRB R4,[R1,#-1] : CMP R4,#32
23900 MOVEQ R4,#49 : ADDNE R4,R4,#1 : STRB R4,[R1,#-1]
23910 .next_inc
23920 STRB R3,[R1]
23930 SUBS R2,R2,#1 : BNE no_space
23940 .check_nine
23950 LDRB R4,[R1,#-1]!
23960 CMP R4,#58 : BLT print_score
23970 MOV R3,#48 : STRB R3,[R1]
23980 LDRB R4,[R1,#-1] : CMP R4,#32
23990 MOVEQ R4,#49 : ADDNE R4,R4,#1 : STRB R4,[R1,#-1]
24000 B check_nine
24010 .print_score
24020 SWI &100+18
24030 MOV R0,#3
24040 SWI "OS_WriteC"
24050 MOV R0,#136
24060 SWI "OS_WriteC"
24070 SWI &100+18
24080 MOV R0,#0
24090 SWI "OS_WriteC"
24100 MOV R0,#3
24110 SWI "OS_WriteC"
24120
24130 MOV R0,#4
24140 MOV R1,#832
24150 MOV R2,#908
24160 SWI "OS_Plot"
24170
24180 ADR R0,blank_score
24190 SWI "OS_Write0"
24200 MOV R15,R14
24210 .score EQUD 0
24220 .extra_ship EQUD 0
24230 .blank_score   EQUB 127:EQUB 127:EQUB 127:EQUB 127:EQUB 127:EQUB 127
24240 .players_score EQUS "     0" : EQUB 0
24250 .score_increment EQUB 1      ;  value >1 OR <9
24260 ALIGN
24270
24280 .directive_players_score
24290 ADR R2,players_score
24300 MOV R15,R14
24310
24320 .directive_pattern
24330 ADR R3,pattern
24340 MOV R15,R14
24350
24360 .pattern
24370 EQUB 0     ;   initial  position
24380 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24390 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24400 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24410 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24420 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24430 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24440 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24450 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24460 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24470 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24480 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24490 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24500 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24510 EQUB 32      ; end of pattern marker
24520 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24530 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24540 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24550 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24560 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24570 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24580 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24590 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24600 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24610 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24620 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24630 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24640 EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
24650 EQUB 32      ; end of pattern marker
24660 ALIGN
24670
24680
24690 ; *****************************************************************
24700 .next_wave
24710 MOV R1,#1 : STRB R1,wave_finished     ;   set
24720 BL clear_screen
24730 SWI &100+18
24740 MOV R0,#3
24750 SWI "OS_WriteC"
24760 MOV R0,#3
24770 SWI "OS_WriteC"
24780 BL wave_counter
24790 LDRB R1,wave : CMP R1,#22    ; waves end sequence
24800 MOVEQ R1,#1 : STREQB R1,wave : BLEQ reset_var_addr    ;  repeats waves,   resets wave to 1 so end of sequence can be found to reset waves
24810 BL print_wave
24820 BL plot_wave
24830 BL prepare_wave
24840 MOV R0,#1        ;  Flag to prevent changes to bullets and usership
24850 BL init_wave_vars
24860 MOV R1,#0 : STRB R1,wave_finished     ;   cancel
24870 B display
24880 .wave_finished EQUB 0
24890 ALIGN
24900
24910 .load_wave_finished
24920 LDRB R1,wave_finished
24930 MOV R15,R14
24940 ; *****************************************************************
24950
24960 .end
24970 LDMFD R13!,{R15}
24980
24990
25000 ;  clear existing bombs yet, are still lethal although alien ship have vanished
25010
25020 .clear_screen
25030 STMFD R13!,{R14}
25040 .next_moves
25050 BL move_stars
25060 BL drop_bombs
25070 BL explosion_check
25080 BL bomb_explo_check
25090 BL cluster_check
25100 BL inner
25110 BL load_dead : CMP R1,#1 : BLEQ usership_explosion
25120 BL load_dead : CMP R1,#1 : BEQ  no_keys
25130 BL test_keypress
25140 .no_keys
25150 MOV R5,#280 : BL slow1
25160 BL directive_alien_bombs
25170 CMP R1,#0 :BNE next_moves
25180
25190 ; A loop of 260 as cluster explosion has 26 frames & a delay of 20
25200 ; So a saftey loop to make sure everything is counted for especially the  alien explosions as there is no counter for them to see if there is any left
25210
25220 MOV R1,#260 : STR R1,final_loop
25230 .final_screen_clear
25240 BL move_stars
25250 BL drop_bombs
25260 BL explosion_check
25270 BL bomb_explo_check
25280 BL cluster_check
25290 BL inner
25300 BL load_dead : CMP R1,#1 : BLEQ usership_explosion
25310 BL load_dead : CMP R1,#1 : BEQ  no_keys2
25320 BL test_keypress
25330 .no_keys2
25340 MOV R5,#380 : BL slow1
25350 LDR R1,final_loop
25360 SUBS R1,R1,#1
25370 STR R1,final_loop
25380 BNE final_screen_clear
25390 LDMFD R13!,{R15}
25400 .final_loop EQUD 260
25410
25420 .prepare_wave
25430 LDR R1,time_out
25440 .wave_delay
25450 STMFD R13!,{R1,R14}
25460 BL move_stars
25470 BL change_palette
25480 BL load_no_of_bullets : CMP R2,#0 : BLNE inner
25490 MOV R5,#400 : BL slow1 : BL test_keypress
25500 LDMFD R13!,{R1,R14}
25510 SUBS R1,R1,#1 : BNE wave_delay
25520 SWI &100+18
25530 MOV R0,#3
25540 SWI "OS_WriteC"
25550 MOV R0,#3
25560 SWI "OS_WriteC"
25570 STMFD R13!,{R14} : BL print_wave
25580 LDMFD R13!,{R15}
25590 .time_out EQUD 700
25600
25610 .wave_counter
25620 LDRB R0,Cwave+1 : ADD R0,R0,#1 : STRB R0,Cwave+1
25630 CMP R0,#58 : BNE count_done
25640 MOV R0,#48 : STRB R0,Cwave+1
25650 LDRB R0,Cwave : CMP R0,#32
25660 MOVEQ R0,#49 : STREQB R0,Cwave
25670 ADDNE R0,R0,#1 : STRNEB R0,Cwave
25680 .count_done
25690 LDRB R0,wave  : ADD R0,R0,#1 : STRB R0,wave
25700 MOV R15,R14
25710
25720 .print_wave
25730 SWI &100+31
25740 MOV R0,#10
25750 SWI "OS_WriteC"
25760 MOV R0,#15
25770 SWI "OS_WriteC"
25780 SWI "OS_WriteS"
25790 EQUS ("PREPARE FOR WAVE ") : EQUB 0
25800
25810 LDRB R0,Cwave
25820 SWI "OS_WriteC"
25830 LDRB R0,Cwave+1
25840 SWI "OS_WriteC"
25850 MOV R15,R14
25860
25870 .plot_wave
25880 SWI &100+18
25890 MOV R0,#3
25900 SWI "OS_WriteC"
25910 MOV R0,#136
25920 SWI "OS_WriteC"
25930 SWI &100+18
25940 MOV R0,#0
25950 SWI "OS_WriteC"
25960 MOV R0,#3
25970 SWI "OS_WriteC"
25980 MOV R0,#4
25990 MOV R1,#1000 : ADD R1,R1,#160
26000 MOV R2,#880
26010 SWI "OS_Plot"
26020 ADR R0,Bwave
26030 SWI "OS_Write0"
26040 MOV R15,R14
26050
26060 .wave  EQUB 1
26070 .Bwave EQUB 127:EQUB 127
26080 .Cwave EQUS " 1" : EQUB 0
26090 ALIGN
26100
26110 .init_wave_vars
26120 LDR R1,var_addr
26130 STR R1,var_addr2
26140 B new_wave
26150 .repeat_wave
26160 LDR R1,var_addr2
26170 .new_wave
26180 LDRB R2,[R1],#1  : STRB R2,score_increment
26190 LDRB R2,[R1],#1
26200 LDRB R3,[R1],#1
26210 LDRB R4,[R1],#1
26220 LDRB R5,[R1],#1
26230 LDRB R6,[R1],#1
26240 LDRB R7,[R1],#1
26250 LDRB R8,[R1],#1
26260 LDRB R9,[R1],#1
26270 LDRB R10,[R1],#1
26280 STMFD R13!,{R14,R1} : BL program_variables : LDMFD R13!,{R14,R1}
26290
26300 ;   initialise byte, 12 bytes for each sprite
26310 SUB R10,R10,#2
26320 MOV R8,#12 : MUL R11,R8,R10
26330 LDRB R8,[R1],#1     ; how many different sprites onscreen
26340 MOV R7,R1 : ADD R1,R1,#9    ; each sprite has a number
26350 LDR R3,[R1],#4      ; if different then sprites are split
26360 LDR R4,[R1],#4
26370 LDR R5,[R1],#4
26380 LDR R6,[R1],#4
26390 STR R1,var_addr    ; stores current position in variables
26400 MVN  R9,#0
26410 MOV R1,#0
26420 STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
26430 .loop
26440                    ;    first sprite
26450 ADD R9,R9,#1
26460 LDRB R10,[R7,R9]
26470 CMP R9,R8 : MVNEQ R9,#0
26480 STR R3,[R2,#0]
26490 STR R10,[R2,#4]
26500 STR R5,[R2,#8]
26510                    ;    second sprite
26520 ADD R9,R9,#1
26530 LDRB R10,[R7,R9]
26540 CMP R9,R8 : MVNEQ R9,#0
26550 STR R4,[R2,#12]
26560 STR R10,[R2,#16]
26570 STR R6,[R2,#20]
26580
26590 ADD R2,R2,#24:ADD R1,R1,#24 : CMP R1,R11
26600 BLS loop
26610 .mainloop
26620 MOV R8,#0                    ; sprite_no
26630 MOV R9,#0 :MOV R10,#0        ; pattern bytes pointer,  R9 - set to current sprite added to offset to give final result in R10
26640
26650 LDR R1,var_addr
26660 LDRB R2,[R1],#1
26670 BNV end:BNV end
26680 ADR R3,pattern
26690 .pattern_write
26700 LDRB R4,[R1],#1
26710 STRB R4,[R3],#1
26720 SUBS R2,R2,#1
26730 BNE pattern_write
26740 STR R1,var_addr
26750 MOV R15,R14
26760
26770 .reset_var_addr
26780 ADR R1,variables
26790 STR R1,var_addr
26800 STR R1,var_addr2
26810 MOV R15,R14
26820 
26830 .var_addr  EQUD variables
26840 .var_addr2 EQUD variables
26850
26860 .variables
26870 
26880 ; **********   WAVE 1
26890 EQUB 1
26900 EQUB 0 : EQUB 0 : EQUB 20 : EQUB 3 : EQUB 1 : EQUB 94 : EQUB 7 : EQUB 7 :EQUB 35
26910 EQUB 0
26920 EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
26930 EQUD &1FD8000 : EQUD &1FD8000 : EQUD 0 : EQUD 0
26940 ; pattern
26950 EQUB 95
26960 EQUB 0
26970 EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27
26980 EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 26:EQUB 26
26990 EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17
27000 EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 8
27010 EQUB 5:EQUB 5:EQUB 5:EQUB 5:EQUB 6:EQUB 6:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
27020 EQUB 6:EQUB 6:EQUB 6:EQUB 5:EQUB 5:EQUB 5:EQUB 40:EQUB 40:EQUB 40:EQUB 40:EQUB 40
27030 EQUB 40:EQUB 40:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 49:EQUB 49:EQUB 49
27040 EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 58:EQUB 58:EQUB 58
27050 EQUB 58:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
27060 EQUB 59:EQUB 59:EQUB 59:EQUB 59
27070 EQUB 32
27080
27090
27100 ; **********   WAVE 2
27110 EQUB 1
27120 EQUB 0 : EQUB 0 : EQUB 25 : EQUB 2 : EQUB 2 : EQUB 101 : EQUB 3 : EQUB 3 : EQUB 36
27130 EQUB 1
27140 EQUB 1 : EQUB 2 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
27150 EQUD &1FDE188 : EQUD &1FDCD76 : EQUD 0 : EQUD 52
27160 EQUB 103
27170 EQUB 0
27180 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
27190 EQUB 50:EQUB 50:EQUB 2:EQUB 18:EQUB 18
27200 EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17
27210 EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17
27220 EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 3:EQUB 3:EQUB 3
27230 EQUB 50:EQUB 50:EQUB 50:EQUB 50
27240 EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49
27250 EQUB 50:EQUB 50:EQUB 2:EQUB 18
27260 EQUB 32
27270 EQUB 0
27280 EQUB 54:EQUB 4:EQUB 22:EQUB 22
27290 EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21
27300 EQUB 54:EQUB 54:EQUB 54:EQUB 54
27310 EQUB 7:EQUB 7:EQUB 7:EQUB 54:EQUB 54:EQUB 54:EQUB 54
27320 EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53
27330 EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53
27340 EQUB 54:EQUB 54:EQUB 6:EQUB 22:EQUB 22
27350 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
27360 EQUB 32:EQUB 0
27370
27380
27390 ; **********   WAVE 3
27400 EQUB 1
27410 EQUB 0 : EQUB 0 : EQUB 25 : EQUB 3 : EQUB 2 : EQUB 125 : EQUB 6 : EQUB 7: EQUB 36
27420 EQUB 0
27430 EQUB 8 : EQUB 0 : EQUB 1 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
27440 EQUD &1FE12E7 : EQUD &1FE136F : EQUD 0 : EQUD 67
27450 EQUB 127
27460 EQUB 0
27470 EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56
27480 EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56
27490
27500 EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40
27510 EQUB 56:EQUB 40:EQUB 57:EQUB 57
27520 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 58:EQUB 58:EQUB 58
27530 EQUB 3:EQUB 3
27540 EQUB 26:EQUB 26:EQUB 26:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
27550 EQUB 25:EQUB 25:EQUB 24:EQUB 24
27560 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
27570 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
27580 EQUB 32
27590 EQUB 0
27600 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
27610 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
27620 EQUB 56:EQUB 56:EQUB 61:EQUB 61
27630 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 62:EQUB 62:EQUB 62
27640 EQUB 7:EQUB 7
27650 EQUB 30:EQUB 30:EQUB 30:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
27660 EQUB 29:EQUB 29:EQUB 24:EQUB 24
27670 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
27680 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
27690 EQUB 32:EQUB 0
27700
27710
27720 ; **********   WAVE 4
27730 EQUB 1
27740 EQUB 0 : EQUB 0 : EQUB 25 : EQUB 3 : EQUB 2 : EQUB 61 : EQUB 1 : EQUB 1: EQUB 35
27750 EQUB 1
27760 EQUB 3 : EQUB 4 : EQUB 1 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
27770 EQUD &1FDBB68 : EQUD &1FDD950 : EQUD 0 : EQUD 32
27780 EQUB 63
27790 EQUB 0
27800 EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 3:EQUB 3:EQUB 3
27810 EQUB 50:EQUB 50:EQUB 50:EQUB 50:EQUB 50:EQUB 50:EQUB 3:EQUB 3:EQUB 3
27820 EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 3:EQUB 3:EQUB 3
27830 EQUB 50:EQUB 50
27840 EQUB 32
27850 EQUB 0
27860 EQUB 22:EQUB 22
27870 EQUB 7:EQUB 7:EQUB 7:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54
27880 EQUB 7:EQUB 7:EQUB 7:EQUB 22:EQUB 22:EQUB 22:EQUB 22:EQUB 22:EQUB 22
27890 EQUB 7:EQUB 7:EQUB 7:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54
27900 EQUB 32:EQUB 0
27910
27920
27930 ; **********   WAVE 5
27940 EQUB 1
27950 EQUB 0 : EQUB 0 : EQUB 25 : EQUB 3 : EQUB 3 : EQUB 107 : EQUB 8 : EQUB 8 :EQUB 35
27960 EQUB 0
27970 EQUB 9 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
27980 EQUD &1FE0209 : EQUD &1FE0209 : EQUD 0 : EQUD 0
27990 EQUB 111
28000 EQUB 0
28010 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 51:EQUB 51:EQUB 51:EQUB 43:EQUB 43:EQUB 43
28020 EQUB 3:EQUB 3
28030 EQUB 11:EQUB 11:EQUB 11:EQUB 19:EQUB 19:EQUB 19:EQUB 27:EQUB 27:EQUB 27:EQUB 27
28040 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
28050 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 55:EQUB 55:EQUB 55:EQUB 47:EQUB 47:EQUB 47
28060 EQUB 7:EQUB 7
28070 EQUB 15:EQUB 15:EQUB 15:EQUB 23:EQUB 23:EQUB 23:EQUB 31:EQUB 31:EQUB 31:EQUB 31
28080 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
28090 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 51:EQUB 51:EQUB 51:EQUB 43:EQUB 43:EQUB 43
28100 EQUB 3:EQUB 3
28110 EQUB 11:EQUB 11:EQUB 11:EQUB 19:EQUB 19:EQUB 19:EQUB 27:EQUB 27:EQUB 27:EQUB 27
28120 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
28130 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 55:EQUB 55:EQUB 55:EQUB 47:EQUB 47:EQUB 47
28140 EQUB 7:EQUB 7
28150 EQUB 15:EQUB 15:EQUB 15:EQUB 23:EQUB 23:EQUB 23:EQUB 31:EQUB 31:EQUB 31:EQUB 31
28160 EQUB 32:EQUB 0:EQUB 0:EQUB 0
28170
28180
28190 ; **********   WAVE 6
28200 EQUB 2
28210 EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 103 : EQUB 6 : EQUB 6: EQUB 40
28220 EQUB 1
28230 EQUB 3 : EQUB 4 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
28240 EQUD &1FE12E7 : EQUD &1FE12E7 : EQUD 0 : EQUD 0
28250 EQUB 107
28260 EQUB 0
28270 EQUB 3:EQUB 3:EQUB 42:EQUB 42:EQUB 42:EQUB 42:EQUB 42:EQUB 42
28280 EQUB 42:EQUB 42:EQUB 42
28290 EQUB 57:EQUB 57:EQUB 57:EQUB 57
28300 EQUB 56:EQUB 56:EQUB 56
28310 EQUB 61:EQUB 61:EQUB 61:EQUB 61
28320 EQUB 46:EQUB 46:EQUB 46:EQUB 46
28330 EQUB 54:EQUB 54:EQUB 54:EQUB 54
28340 EQUB 49:EQUB 49:EQUB 49:EQUB 49
28350 EQUB 56:EQUB 56:EQUB 56
28360 EQUB 53:EQUB 53:EQUB 53:EQUB 53
28370 EQUB 50:EQUB 50:EQUB 50:EQUB 50
28380 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
28390 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
28400 EQUB 18:EQUB 18:EQUB 18:EQUB 18
28410 EQUB 21:EQUB 21:EQUB 21:EQUB 21
28420 EQUB 24:EQUB 24:EQUB 24:EQUB 24
28430 EQUB 17:EQUB 17:EQUB 17:EQUB 17
28440 EQUB 22:EQUB 22:EQUB 22:EQUB 22
28450 EQUB 14:EQUB 14:EQUB 14:EQUB 14
28460 EQUB 23:EQUB 23:EQUB 23:EQUB 23
28470 EQUB 24:EQUB 24:EQUB 24
28480 EQUB 25:EQUB 25:EQUB 25:EQUB 25
28490 EQUB 10:EQUB 10:EQUB 10
28500 EQUB 10:EQUB 10:EQUB 10:EQUB 10:EQUB 10:EQUB 10
28510 EQUB 3:EQUB 3:EQUB 3:EQUB 3
28520 EQUB 32
28530
28540
28550 ; **********   WAVE 7
28560 EQUB 2
28570 EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 124 : EQUB 6 : EQUB 6 : EQUB 40
28580 EQUB 1
28590 EQUB 7 : EQUB 9 : EQUB 1 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
28600 EQUD &1FD8000 : EQUD &1FD8000 : EQUD 0 : EQUD 0
28610 EQUB 127
28620 EQUB 0
28630 EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26
28640 EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26
28650 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
28660 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
28670 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
28680 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 5
28690 EQUB 13:EQUB 13:EQUB 13:EQUB 13:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 9:EQUB 9:EQUB 9:EQUB 9
28700 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
28710 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
28720 EQUB 41:EQUB 41:EQUB 41:EQUB 41:EQUB 40:EQUB 40:EQUB 40:EQUB 40:EQUB 45:EQUB 45:EQUB 45:EQUB 45
28730 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
28740 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
28750 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
28760 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
28770 EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58
28780 EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58
28790 EQUB 32:EQUB 0:EQUB 0
28800
28810 
28820 ; **********   WAVE 8
28830 EQUB 2
28840 EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 82 : EQUB 7 : EQUB 7 :EQUB 40
28850 EQUB 1
28860 EQUB 4 : EQUB 9 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
28870 EQUD &1FDD507 : EQUD &1FDD507 : EQUD 0 : EQUD 0
28880 EQUB 83
28890 EQUB 0
28900 EQUB 3:EQUB 3:EQUB 3:EQUB 3
28910 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
28920 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
28930 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
28940 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
28950 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
28960 EQUB 3:EQUB 3:EQUB 3
28970 EQUB 24:EQUB 24:EQUB 16
28980 EQUB 7:EQUB 7:EQUB 7
28990 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
29000 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
29010 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
29020 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
29030 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
29040 EQUB 7:EQUB 7:EQUB 7:EQUB 7
29050 EQUB 32
29060
29070
29080 ; **********   WAVE 9
29090 EQUB 2
29100 EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 66 : EQUB 3 : EQUB 3 : EQUB 40
29110 EQUB 1
29120 EQUB 7 : EQUB 9 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
29130 EQUD &1FE14C8 : EQUD &1FE154C : EQUD 0 : EQUD 39
29140 EQUB 67
29150 EQUB 0
29160 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
29170 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
29180 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
29190 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
29200 EQUB 32
29210 EQUB 0
29220 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
29230 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
29240 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
29250 EQUB 32
29260
29270
29280 ; **********   WAVE 10
29290 EQUB 3
29300 EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 91 : EQUB 8 : EQUB 8 : EQUB 50
29310 EQUB 1
29320 EQUB 5 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
29330 EQUD &1FD8046 : EQUD &1FD8046 : EQUD 0 : EQUD 47
29340 EQUB 95
29350 EQUB 0
29360 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
29370 EQUB 30:EQUB 30:EQUB 29:EQUB 26:EQUB 26:EQUB 26
29380 EQUB 30:EQUB 31:EQUB 31:EQUB 30:EQUB 30:EQUB 27:EQUB 27
29390 EQUB 7
29400 EQUB 31:EQUB 31:EQUB 31:EQUB 30:EQUB 30:EQUB 27:EQUB 27:EQUB 27
29410 EQUB 7
29420 EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 30:EQUB 30:EQUB 27:EQUB 27:EQUB 27
29430 EQUB 7
29440 EQUB 31:EQUB 31
29450 EQUB 32
29460 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
29470 EQUB 26:EQUB 26:EQUB 25:EQUB 30:EQUB 30:EQUB 30
29480 EQUB 3
29490 EQUB 26:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 30:EQUB 30
29500 EQUB 3
29510 EQUB 27:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 31:EQUB 31:EQUB 31
29520 EQUB 3
29530 EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 31:EQUB 31:EQUB 31
29540 EQUB 3
29550 EQUB 27:EQUB 27
29560 EQUB 32:EQUB 0:EQUB 0:EQUB 0
29570
29580
29590 ; **********   WAVE 11
29600 EQUB 3
29610 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 122 : EQUB 7 : EQUB 7 :EQUB 50
29620 EQUB 1
29630 EQUB 8 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
29640 EQUD &1FE1428 : EQUD &1FE1428 : EQUD 0 : EQUD 0
29650 EQUB 123
29660 EQUB 0
29670 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
29680 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
29690 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
29700 EQUB 56:EQUB 56:EQUB 59:EQUB 59:EQUB 58
29710 EQUB 3:EQUB 3:EQUB 3:EQUB 27:EQUB 27
29720 EQUB 24:EQUB 24:EQUB 24
29730 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
29740 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
29750 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
29760 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
29770 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
29780 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
29790 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
29800 EQUB 56:EQUB 56:EQUB 56
29810 EQUB 59:EQUB 59:EQUB 3:EQUB 3:EQUB 3
29820 EQUB 26:EQUB 27:EQUB 27:EQUB 24:EQUB 24
29830 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
29840 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
29850 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
29860 EQUB 32
29870
29880
29890 ; **********   WAVE 12
29900 EQUB 3
29910 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 97 : EQUB 6 : EQUB 6 : EQUB 50
29920 EQUB 2
29930 EQUB 4 : EQUB 5 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
29940 EQUD &1FDF088 : EQUD &1FDF10B : EQUD 0 : EQUD 50
29950 EQUB 99
29960 EQUB 0
29970 EQUB 1:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
29980 EQUB 43:EQUB 43:EQUB 51:EQUB 51:EQUB 56:EQUB 54:EQUB 54:EQUB 53:EQUB 53
29990 EQUB 7:EQUB 7:EQUB 7:EQUB 7
30000 EQUB 51:EQUB 51:EQUB 51:EQUB 43:EQUB 43:EQUB 43
30010 EQUB 56:EQUB 56:EQUB 56
30020 EQUB 47:EQUB 47:EQUB 47:EQUB 55:EQUB 55:EQUB 55
30030 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
30040 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
30050 EQUB 32
30060 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
30070 EQUB 47:EQUB 47:EQUB 55:EQUB 55:EQUB 56:EQUB 50:EQUB 50:EQUB 49:EQUB 49
30080 EQUB 3:EQUB 3:EQUB 3:EQUB 3
30090 EQUB 55:EQUB 55:EQUB 55:EQUB 47:EQUB 47:EQUB 47
30100 EQUB 56:EQUB 56:EQUB 56
30110 EQUB 43:EQUB 43:EQUB 43:EQUB 51:EQUB 51:EQUB 51
30120 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
30130 EQUB 61:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
30140 EQUB 32:EQUB 0
30150
30160
30170 ; **********   WAVE 13
30180 EQUB 3
30190 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 63 : EQUB 8 : EQUB 8 : EQUB 50
30200 EQUB 2
30210 EQUB 6 : EQUB 7 : EQUB 8 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
30220 EQUD &1FE0D48 : EQUD &1FE0D48 : EQUD 0 : EQUD 0
30230 EQUB 67
30240 EQUB 0
30250 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
30260 EQUB 43:EQUB 43:EQUB 43:EQUB 43
30270 EQUB 50:EQUB 50:EQUB 50:EQUB 50
30280 EQUB 56:EQUB 56:EQUB 56:EQUB 56
30290 EQUB 54:EQUB 54:EQUB 54:EQUB 54
30300 EQUB 47:EQUB 47:EQUB 47:EQUB 47
30310 EQUB 46:EQUB 46:EQUB 46:EQUB 46
30320 EQUB 53:EQUB 53:EQUB 53:EQUB 53
30330 EQUB 56:EQUB 56:EQUB 56:EQUB 56
30340 EQUB 49:EQUB 49:EQUB 49:EQUB 49
30350 EQUB 42:EQUB 42:EQUB 42:EQUB 42
30360 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
30370 EQUB 3:EQUB 3:EQUB 3:EQUB 3
30380 EQUB 32:EQUB 0:EQUB 0:EQUB 0
30390
30400
30410 ; **********   WAVE 14
30420 EQUB 3
30430 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 166 : EQUB 5 : EQUB 1 : EQUB 50
30440 EQUB 3
30450 EQUB 0 : EQUB 1 : EQUB 9 : EQUB 7 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
30460 EQUD &1FD8045 : EQUD &1FD8045 : EQUD 0 : EQUD 86
30470 EQUB 167
30480 EQUB 0
30490 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
30500 EQUB 18:EQUB 17:EQUB 18:EQUB 5:EQUB 5:EQUB 5
30510 EQUB 22:EQUB 22:EQUB 21:EQUB 8:EQUB 17:EQUB 18:EQUB 18
30520 EQUB 3:EQUB 3
30530 EQUB 10:EQUB 10:EQUB 10:EQUB 9:EQUB 9:EQUB 9
30540 EQUB 16:EQUB 16
30550 EQUB 13:EQUB 13:EQUB 13:EQUB 14:EQUB 14:EQUB 14
30560 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
30570 EQUB 22:EQUB 22:EQUB 22:EQUB 21:EQUB 21:EQUB 21
30580 EQUB 24:EQUB 24:EQUB 24
30590 EQUB 17:EQUB 17:EQUB 17:EQUB 18:EQUB 18:EQUB 18
30600 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
30610 EQUB 3:EQUB 3:EQUB 3:EQUB 3
30620 EQUB 18:EQUB 18:EQUB 17:EQUB 17:EQUB 18:EQUB 24:EQUB 24:EQUB 24
30630 EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16
30640 EQUB 32
30650 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
30660 EQUB 22:EQUB 21:EQUB 22:EQUB 1:EQUB 1:EQUB 1
30670 EQUB 18::EQUB 18:EQUB 17:EQUB 8:EQUB 21:EQUB 22:EQUB 22
30680 EQUB 7:EQUB 7
30690 EQUB 14:EQUB 14:EQUB 14:EQUB 13:EQUB 13:EQUB 13
30700 EQUB 16:EQUB 16
30710 EQUB 9:EQUB 9:EQUB 9:EQUB 10:EQUB 10:EQUB 10
30720 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
30730 EQUB 18:EQUB 18:EQUB 18:EQUB 17:EQUB 17:EQUB 17
30740 EQUB 24:EQUB 24:EQUB 24
30750 EQUB 21:EQUB 21:EQUB 21:EQUB 22:EQUB 22:EQUB 22
30760 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
30770 EQUB 7:EQUB 7
30780 EQUB 22:EQUB 22:EQUB 21:EQUB 21:EQUB 22:EQUB 24:EQUB 24:EQUB 24
30790 EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16
30800 EQUB 32
30810
30820 
30830 ; **********   WAVE 15
30840 EQUB 3
30850 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 4 : EQUB 3 : EQUB 95 : EQUB 8 : EQUB 8 :EQUB 50
30860 EQUB 0
30870 EQUB 7 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
30880 EQUD &1FE15AB : EQUD &1FE15AB : EQUD 0 : EQUD 0
30890 EQUB 99
30900 EQUB 0
30910 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
30920 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
30930 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
30940 EQUB 58:EQUB 58:EQUB 57:EQUB 57:EQUB 58:EQUB 58
30950 EQUB 2:EQUB 2
30960 EQUB 26:EQUB 26:EQUB 25:EQUB 25:EQUB 26:EQUB 26
30970 EQUB 16:EQUB 16
30980 EQUB 30:EQUB 30:EQUB 29:EQUB 30:EQUB 30
30990 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
31000 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 5
31010 EQUB 22:EQUB 22:EQUB 22:EQUB 14:EQUB 14:EQUB 14
31020 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31030 EQUB 18:EQUB 18:EQUB 18:EQUB 10:EQUB 10:EQUB 10
31040 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31050 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31060 EQUB 32:EQUB 0:EQUB 0:EQUB 0
31070
31080
31090 ; **********   WAVE 16
31100 EQUB 3
31110 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 4 : EQUB 3 : EQUB 114 : EQUB 9 : EQUB 9 : EQUB 50
31120 EQUB 1
31130 EQUB 2 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
31140 EQUD &1FE1388 : EQUD &1FE1388 : EQUD 0 : EQUD 0
31150 EQUB 115
31160 EQUB 0
31170 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31180 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31190 EQUB 25
31200 EQUB 59:EQUB 59:EQUB 59
31210 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
31220 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
31230
31240 EQUB 59:EQUB 59:EQUB 59
31250 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31260 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31270 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31280 EQUB 59:EQUB 59:EQUB 59:EQUB 59
31290 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
31300 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
31310 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
31320 EQUB 59:EQUB 59:EQUB 59:EQUB 59
31330 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31340 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31350 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31360 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31370 EQUB 3:EQUB 3:EQUB 3
31380 EQUB 32
31390
31400 
31410 ; **********   WAVE 17
31420 EQUB 4
31430 EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 122 : EQUB 8 : EQUB 8 : EQUB 50
31440 EQUB 1
31450 EQUB 3 : EQUB 4 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
31460 EQUD &1FDA8A8 : EQUD &1FDA8A8 : EQUD 0 : EQUD 0
31470 EQUB 123
31480 EQUB 0
31490 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31500 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31510 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
31520 EQUB 25:EQUB 25
31530 EQUB 3:EQUB 3:EQUB 3:EQUB 3
31540 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31550 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31560 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31570 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31580 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31590 EQUB 3:EQUB 3:EQUB 3:EQUB 3
31600 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
31610 EQUB 57:EQUB 57
31620 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31630 EQUB 56:EQUB 56:EQUB 56:EQUB 56
31640 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
31650 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
31660 EQUB 56:EQUB 56:EQUB 56:EQUB 56
31670 EQUB 32
31680
31690 
31700 ; **********   WAVE 18
31710 EQUB 4
31720 EQUB 4 : EQUB 8 : EQUB 6 : EQUB 5 : EQUB 4 : EQUB 209 : EQUB 9 : EQUB 9 :EQUB 50
31730 EQUB 3
31740 EQUB 4 : EQUB 6 : EQUB 7 : EQUB 8 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
31750 EQUD &1FE14C8 : EQUD &1FE14C8 : EQUD 0 : EQUD 0
31760 EQUB 211
31770 EQUB 0
31780 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31790 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31800 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31810 EQUB 56:EQUB 56
31820 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31830 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31840 EQUB 3:EQUB 3
31850 EQUB 24:EQUB 24:EQUB 24:EQUB 24
31860 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
31870 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
31880 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31890 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31900 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
31910 EQUB 3:EQUB 3:EQUB 3
31920 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31930 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
31940 EQUB 56
31950 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31960 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
31970 EQUB 24:EQUB 24:EQUB 24:EQUB 24
31980 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
31990 EQUB 7:EQUB 7:EQUB 7
32000 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32010 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32020 EQUB 3:EQUB 3:EQUB 3
32030 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32040 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32050 EQUB 24:EQUB 24:EQUB 24:EQUB 24
32060 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32070 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32080 EQUB 32:EQUB 0
32090
32100
32110 ; **********   WAVE 19
32120 EQUB 4
32130 EQUB 4 : EQUB 8 : EQUB 6 : EQUB 4 : EQUB 4 : EQUB 125 : EQUB 4 : EQUB 4 : EQUB 50
32140 EQUB 3
32150 EQUB 0 : EQUB 0 : EQUB 2 : EQUB 3 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
32160 EQUD &1FE1451 : EQUD &1FE1485 : EQUD 0 : EQUD 64
32170 EQUB 127
32180 EQUB 0
32190 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32200 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
32210 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32220 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
32230 EQUB 3:EQUB 3:EQUB 3:EQUB 3
32240 EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31
32250 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32260 EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27
32270 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32280 EQUB 32
32290 EQUB 0
32300 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32310 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
32320 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32330 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
32340 EQUB 7:EQUB 7:EQUB 7:EQUB 7
32350 EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27
32360 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32370 EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31
32380 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32390 EQUB 32:EQUB 0
32400
32410 
32420 ; **********   WAVE 20
32430 EQUB 5
32440 EQUB 4 : EQUB 6 : EQUB 6 : EQUB 5 : EQUB 4 : EQUB 129 : EQUB 8 : EQUB 8 :EQUB 50
32450 EQUB 3
32460 EQUB 5 : EQUB 1 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
32470 EQUD &1FD8008 : EQUD &1FD8008 : EQUD 0 : EQUD 0
32480 EQUB 131
32490 EQUB 0
32500 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32510 EQUB 27:EQUB 27:EQUB 26
32520 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32530 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32540 EQUB 26:EQUB 27:EQUB 27:EQUB 24:EQUB 31:EQUB 31:EQUB 30
32550 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32560 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32570 EQUB 30:EQUB 31:EQUB 31:EQUB 24:EQUB 27:EQUB 27:EQUB 26
32580 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32590 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32600 EQUB 26:EQUB 27:EQUB 27:EQUB 24:EQUB 31:EQUB 31:EQUB 30
32610 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32620 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32630 EQUB 30:EQUB 31:EQUB 31:EQUB 24:EQUB 27:EQUB 27:EQUB 26
32640 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32650 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
32660 EQUB 32:EQUB 0
32670
32680
32690 ; **********   WAVE 21
32700 EQUB 6
32710 EQUB 4 : EQUB 12 : EQUB 6 : EQUB 6 : EQUB 5 : EQUB 157 : EQUB 9 : EQUB 9 : EQUB 50
32720 EQUB 8
32730 EQUB 0 : EQUB 2 : EQUB 3 : EQUB 4 : EQUB 5 : EQUB 6 : EQUB 7 : EQUB 8 : EQUB 9
32740 EQUD &1FE14C7 : EQUD &1FE14C7 : EQUD 0 : EQUD 0
32750 EQUB 159
32760 EQUB 0
32770 EQUB 56:EQUB 56
32780 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32790 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32800 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
32810 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32820 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32830 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32840 EQUB 2:EQUB 3:EQUB 3:EQUB 3
32850 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32860 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
32870 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32880 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32890 EQUB 3:EQUB 3:EQUB 3:EQUB 3
32900 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32910 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
32920 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
32930 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32940 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32950 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32960 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
32970 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32980 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
32990 EQUB 7:EQUB 7
33000 EQUB 32:EQUB 0
33010
33020 ALIGN
33030
33040
33050
33060 .directive_sprites_data
33070 LDRB R3,[R2,R10]     ;    sprites number
33080 MOV R4,#96           ;    offset for each sprite
33090 MUL R3,R4,R3
33100 ADR R2,sprites_data
33110 ADD R2,R2,R3
33120 MOV R15,R14
33130 
33140 ;  DATA stored here for PATTERNS and SHIPS
33150 
33160 ;   Srite Data
33170 .sprites_data
33180 EQUD &33333000:EQUD &00033333
33190 EQUD &20003330:EQUD &03330002
33200 EQUD &06660233:EQUD &33206660
33210 EQUD &06600233:EQUD &33200660
33220 EQUD &00002333:EQUD &33320000
33230 EQUD &32233330:EQUD &03333223
33240 EQUD &33223000:EQUD &00032233
33250 EQUD &33322300:EQUD &00322330
33260 EQUD &00332230:EQUD &03223300
33270 EQUD &00003223:EQUD &32230000
33280 EQUD &00003223:EQUD &32230000
33290 EQUD &00033330:EQUD &03333000
33300 
33310 EQUD &00555000:EQUD &00055500
33320 EQUD &05515500:EQUD &00551550
33330 EQUD &55111550:EQUD &05511155
33340 EQUD &11333155:EQUD &55133311
33350 EQUD &33311550:EQUD &05511333
33360 EQUD &31115500:EQUD &00551113
33370 EQUD &55115500:EQUD &00551155
33380 EQUD &00551550:EQUD &05515500
33390 EQUD &00051155:EQUD &55115000
33400 EQUD &00051550:EQUD &05515000
33410 EQUD &00055500:EQUD &00555000
33420 EQUD &00005000:EQUD &00050000
33430 
33440 EQUD &00444000:EQUD &00044400
33450 EQUD &04666440:EQUD &04466640
33460 EQUD &04677664:EQUD &46677640
33470 EQUD &46777664:EQUD &46677764
33480 EQUD &46666440:EQUD &04466664
33490 EQUD &22264000:EQUD &00046222
33500 EQUD &22264000:EQUD &00046222
33510 EQUD &46226440:EQUD &04462264
33520 EQUD &46222664:EQUD &46622264
33530 EQUD &04622664:EQUD &46622640
33540 EQUD &04666440:EQUD &04466640
33550 EQUD &00444000:EQUD &00044400
33560 
33570 EQUD &00555555:EQUD &55555500
33580 EQUD &55111550:EQUD &05511155
33590 EQUD &17715000:EQUD &00051771
33600 EQUD &11150050:EQUD &05005111
33610 EQUD &55501500:EQUD &00510555
33620 EQUD &00051550:EQUD &05515000
33630 EQUD &00511115:EQUD &51111500
33640 EQUD &00555550:EQUD &05555500
33650 EQUD &00000015:EQUD &51000000
33660 EQUD &00000155:EQUD &55100000
33670 EQUD &00111550:EQUD &05511100
33680 EQUD &00555500:EQUD &00555500
33690 
33700 EQUD &00000220:EQUD &02200000
33710 EQUD &02200032:EQUD &23000220
33720 EQUD &00222232:EQUD &23222200
33730 EQUD &00021120:EQUD &02112000
33740 EQUD &00021120:EQUD &02112000
33750 EQUD &02222200:EQUD &00222220
33760 EQUD &20000000:EQUD &00000002
33770 EQUD &00222000:EQUD &00022200
33780 EQUD &33333220:EQUD &02233333
33790 EQUD &22222222:EQUD &22222222
33800 EQUD &00000022:EQUD &22000000
33810 EQUD &00022220:EQUD &02222000
33820
33830 EQUD &06000600:EQUD &00600060
33840 EQUD &66606260:EQUD &06260666
33850 EQUD &66662226:EQUD &62226666
33860 EQUD &63662226:EQUD &62226636
33870 EQUD &33362664:EQUD &46626333
33880 EQUD &33666644:EQUD &44666633
33890 EQUD &66660046:EQUD &64006666
33900 EQUD &66000046:EQUD &64000066
33910 EQUD &00000460:EQUD &06400000
33920 EQUD &06644660:EQUD &06644660
33930 EQUD &06666600:EQUD &00666660
33940 EQUD &00660000:EQUD &00006600
33950 
33960 EQUD &00111011:EQUD &11011100
33970 EQUD &01010100:EQUD &00101010
33980 EQUD &10101111:EQUD &11110101
33990 EQUD &11066661:EQUD &16666011
34000 EQUD &11666110:EQUD &01166611
34010 EQUD &00111011:EQUD &11011100
34020 EQUD &00050110:EQUD &01105000
34030 EQUD &05501101:EQUD &10110550
34040 EQUD &00111001:EQUD &10011100
34050 EQUD &00000110:EQUD &01100000
34060 EQUD &05111100:EQUD &00111150
34070 EQUD &00011000:EQUD &00011000
34080 
34090 EQUD &00000020:EQUD &02000000
34100 EQUD &00002212:EQUD &21220000
34110 EQUD &00022112:EQUD &21122000
34120 EQUD &00221112:EQUD &21112200
34130 EQUD &00221120:EQUD &02112200
34140 EQUD &02221200:EQUD &00212220
34150 EQUD &22332220:EQUD &02223322
34160 EQUD &33333322:EQUD &22333333
34170 EQUD &22222220:EQUD &02222222
34180 EQUD &00002220:EQUD &02220000
34190 EQUD &00000220:EQUD &02200000
34200 EQUD &00022200:EQUD &00222000
34210 
34220 EQUD &77716600:EQUD &00661777
34230 EQUD &77111660:EQUD &06611177
34240 EQUD &71111166:EQUD &66111117
34250 EQUD &77111046:EQUD &64011177
34260 EQUD &77100466:EQUD &66400177
34270 EQUD &00004666:EQUD &66640000
34280 EQUD &00446660:EQUD &06664400
34290 EQUD &00466600:EQUD &00666400
34300 EQUD &00446600:EQUD &00664400
34310 EQUD &00046600:EQUD &00664000
34320 EQUD &00046600:EQUD &00664000
34330 EQUD &00666000:EQUD &00066600
34340 
34350 EQUD &00055550:EQUD &05555000
34360 EQUD &05511115:EQUD &51111550
34370 EQUD &51177715:EQUD &51777115
34380 EQUD &51777715:EQUD &51777715
34390 EQUD &51171115:EQUD &51117115
34400 EQUD &05111550:EQUD &05511150
34410 EQUD &00555005:EQUD &50055500
34420 EQUD &00000555:EQUD &55500000
34430 EQUD &00550515:EQUD &51505500
34440 EQUD &05115115:EQUD &51151150
34450 EQUD &00551550:EQUD &05115500
34460 EQUD &00005500:EQUD &00550000
34470 
34480
34490
34500
34510 ; screen memory is saved here so they can be withered on & off
34520
34530 .memory
34540
34550 
34560 ]
34570
34580 REM Two screens each &A000  (40K) are set aside
34590 P%=P%+&14000
34600 NEXT
34610 ENDPROC

 � >GAMECODE
 � (C) Copyright
 � N.WESTLEY & C.WESTLEY
(/ � Warning !    STARFIGHT must be RUN first
2 
< �assemble
F � gamecode
P 
Z �
d 
nH �  ****************************************************************
x 
� � �assemble
� � CODE% &24000
� � PASS=0 � 2 � 2
�
 P%=CODE%
� [ OPT PASS
� .gamecode
�? STMFD R13!,{R14}           ;  Save Return address to BASIC
�H MOV R0,#200 : MOV R1,#3    ;  ESCAPE disabled / BREAK clears memory
� SWI "OS_Byte"
�$ MOV R0,#9                  ;  �
� SWI &100+22
� SWI "OS_WriteC"
�$ SWI "OS_RemoveCursors"     ;  �
& SWI &100+5                 ;  � 5
 SWI &100+18
 MOV R0,#3
" SWI "OS_WriteC"
, MOV R0,#3
6 SWI "OS_WriteC"
@5 BL change_palette          ;  initialise palette
J B name_entered
T 
^ .game_start
h BL print_wave
r@ BL reset_var_addr          ;  address of start of variables
|G BL init_wave_vars          ;  resets all variables to current wave
�" BL load_newaddr : BL usership
�5 BL prepare_wave            ;  delay before start
� BL reset_var_addr
�G MOV R0,#1                  ;  R0=1 � see program_variables routine
� BL init_wave_vars
�, B display                  ;  PLAY GAME
� 
�M ; **********************************************************************
� 
� 
� .getloc
�< STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
� ADD R10,R9,#9
> LDRB R1,[R2,R10]          ;   check if sprite is onscreen
 CMP R1,#0 : BNE onscreen
; MOV R1,#1 : STRB R1,[R2,R10]       ;  is now on screen
& .onscreen
0 ADD R10,R9,#8
:2 LDRB R1,[R2,R10]          ;   pattern pointer
D? STMFD R13!,{R14} : BL directive_pattern : LDMFD R13!,{R14}
N4 LDRB R4,[R3,R1]           ;   pattern data byte
X! CMP R4,#32 : BNE this_number
b=  ;   offscreen - end of pattern for this sprite � branch
l .offscreen
v ADD R10,R9,#9
�' MOV R11,#2                ;   dead
� STRB R11,[R2,R10]
�� STMFD R13!,{R14} : BL load_last_sprite : ADD R11,R11,#1 : BL store_last_sprite : LDMFD R13!,{R14} ; Check for end of pattern - for last sprite
� .this_number
�C �S R4,R4,#4             ;  across, check sign of X co-ordinate
�A BEQ xplus                 ;  BIT 3 set if minus so no branch
� 
� .xminus
� LDRB R4,[R3,R1]
� � R4,R4,#3
� ADD R4,R4,R4
� ADD R10,R9,#0
� LDR R0,[R2,R10]
 SUB R0,R0,R4

 B yvalue
 .xplus
  LDRB R4,[R3,R1]
* � R4,R4,#3
40 ADD R4,R4,R4              ;   multiply by 2
> ADD R10,R9,#0
H LDR R0,[R2,R10]
R ADD R0,R0,R4
\ .yvalue
f' LDRB R5,[R3,R1]           ;   down
p �S R5,R5,#32
z BEQ yplus
� .yminus
� LDRB R5,[R3,R1]
� � R5,R5,#24
� MOV R5,R5,LSR #2
� MOV R6,#160 : MUL R7,R5,R6
� SUB R0,R0,R7
� ADD R10,R9,#0
�> STR R0,[R2,R10]            ;   location of screen address
� B bomb_drop_check
� .yplus
� LDRB R5,[R3,R1]
� � R5,R5,#24
�/ MOV R5,R5,LSR #2           ;   divide by 4
 MOV R6,#160 : MUL R7,R5,R6
 ADD R0,R0,R7
 ADD R10,R9,#0
$> STR R0,[R2,R10]            ;   location of screen address
. 
8 .bomb_drop_check
BJ STMFD R13!,{R14,R1-R7} : BL random_generator : LDMFD R13!,{R14,R1-R7}
L ADR R5,random_numbers
VZ LDRB R6,bomb_drop_pos                ;   count for pattern positions to release bombs
` .b
j LDRB R4,[R5],#1
t3 CMP R4,#0 : BEQ zero_pos   ;  start of pattern
~ CMP R1,R4
� BEQ new_bomb
� .zero_pos
� SUBS R6,R6,#1
�
 BNE b
� B no_bomb
� .new_bomb
� LDRB R4,no_alien_bombs
�A MOV R5,R4,LSL#3            ;   8 bytes for each bomb dropped
�N ADD R4,R4,#1               ;   increment the no. of alien bombs on screen
� STRB R4,no_alien_bombs
�: STMFD R13!,{R14} : BL directive_ab : LDMFD R13!,{R14}
� ADD R4,R4,R5

 .cyan

A LDRB R5,cyan_counter : CMP R5,#0 : BEQ red    ; no cyan bomb
) SUBS R5,R5,#1 : STRB R5,cyan_counter
 BNE red
(1 LDRB R5,Ccyan_counter : STRB R5,cyan_counter
2! MOV R5,#12 : STRB R5,[R4,#4]
< B got_colour
F	 .red
PC LDRB R5,red_counter : CMP R5,#0 : BEQ yellow   ;   no red bomb
Z( SUBS R5,R5,#1 : STRB R5,red_counter
d BNE yellow
n/ LDRB R5,Cred_counter : STRB R5,red_counter
x! MOV R5,#24 : STRB R5,[R4,#4]
� B got_colour
�( .yellow MOV R5,#0 : STRB R5,[R4,#4]
� .got_colour
�> LDRB R5,bombs_speed : SUBS R5,R5,#1 : STRB R5,bombs_speed
� BNE slow_bomb
�/ LDRB R5,Cbombs_speed : STRB R5,bombs_speed
�! MOV R5,#2  : STRB R5,[R4,#5]
� B fast_bomb
� .slow_bomb
�! MOV R5,#1  : STRB R5,[R4,#5]
� .fast_bomb
� 
� STMFD R13!,{R14,R0-R2}
_ MOV R1,R0 : ADD R1,R1,#1920 : ADD R1,R1,#3     ;  place bombs below centre of alien sprite
K STR R1,[R4]             ;   stores address alien reached when dropping
+ BL print_bomb : LDMFD R13!,{R15,R0-R2}
"
 .no_bomb
, MOV R15,R14
6 .no_alien_bombs EQUB 0
@E .cyan_counter   EQUB 4       ;   cyan bomb dropped every so many
J .Ccyan_counter  EQUB 4
TD .red_counter     EQUB 8      ;   red bomb dropped every so many
^ .Cred_counter    EQUB 8
hS .bombs_speed     EQUB 10     ;   160= 1 line, 320= 2 lines on every 10'th bomb
r .Cbombs_speed    EQUB 10
|R .bomb_drop_pos   EQUB 2      ;   positions in which to drop bombs, set to two
�
 ALIGN
�
� .directive_alien_bombs
� LDRB R1,no_alien_bombs
� MOV R15,R14
� 
– .random_generator     ;   generate random numbers in pattern loop each    time character is moved, these are the positions the bombs are dropped.
�M LDRB R5,no_random_numbers       ;   number of random numbers to generate
� LDRB R7,no_range
�7 ADR R6,random_numbers ;   store for random numbers
� .rgloop
�3 MOV R1,#8             ;   initialise bit count
�3 MOV R3,#&80000000     ;   msb set to 1 for TST
 .begin
 LDR R2,shiftreg
 TST R2,R3
&9 BEQ zerobit           ;   � msb =0 Branch to zerobit
0 LDR R4,constant
:F �S R2,R2,R4         ;   � bottom 3 bits of shiftreg with constant
D
 .zerobit
N9 MOVS R2,R2,LSL #1     ;   Rotate shiftreg 1 bit left
X2 STR R2,shiftreg       ;   store random number
b2 SUBS R1,R1,#1         ;   continue for 8 bits
l BNE begin
v8 MOV R2,R2,LSR #24     ;   Shift HI BYTE to LOW BYTE
� .check_range
�8 CMP R2,R7             ;   check random number range
� BLE within_range
�; SUB R2,R2,R7          ;   random no. = random no. - 94
� B check_range
� .within_range
�/ STRB R2,[R6,R5]       ;   store random no.
�' SUBS R5,R5,#1         ;   � number
� BNE rgloop
� MOV R15,R14
� 
� .shiftreg EQUD �
� .constant EQUD &0076B553
7 .random_numbers EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 .no_random_numbers EQUB 2
 .no_range EQUB 94
 
 ALIGN
*
4
 .display
> ADD R8,R8,#1
H< STMFD R13!,{R14}:BL load_no_of_sprites:LDMFD R13!,{R14}
R  CMP R8,R10 : SUBEQ R8,R8,#1
\' MOV R9,#1 : STREQB R9,section_flag
f MOV R12,#1 : MOV R9,#0
p
 .loop
zH STMFD R13!,{R14,R0-R7} : BL change_palette : LDMFD R13!,{R14,R0-R7}
�
�i STMFD R13!,{R9,R8}: BL explosion_check : BL bomb_explo_check : BL cluster_check : LDMFD R13!,{R9,R8}
�o LDRB R10,section_flag : CMP R10,#1 : BEQ blackout                               ;     first set in pattern
� CMP R8,R12 : BNE blackout
�, LDRB R10,delay : CMP R10,#0 : BEQ over2
�$ SUB R10,R10,#1 : STRB R10,delay
� MOV R12,#1 : MOV R9,#0
� CMP R8,R12 : BEQ print
� B blackout
� .over2
�$ LDRB R10,space : STRB R10,delay
�D CMP R8,R12 : BEQ print              ; check if last one in loop
� 
	 .blackout
	< STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
	M ADD R10,R9,#9 : LDRB R11,[R2,R10] : CMP R11,#4 : BEQ over    ; explosion
	$3 CMP R11,#2 : BEQ over    ;    dead / offscreen
	.$ ADD R10,R9,#0 : LDR R1,[R2,R10]
	8 ADD R10,R9,#4
	B BL draw
	L 
	V� .print BL getloc        ;   before calculating new address the sprite is                                    removed from screen in routine blackout
	`M ADD R10,R9,#9 : LDRB R11,[R2,R10] : CMP R11,#4 : BEQ over    ; explosion
	j3 CMP R11,#2 : BEQ over    ;    dead / offscreen
	tT ADD R10,R9,#8 : ADD R1,R1,#1 : STRB R1,[R2,R10]     ; increment pattern pointer
	~E ADD R10,R9,#0 : LDR R1,[R2,R10]    ;  location of screen address
	� ADD R10,R9,#4
	�D STMFD R13!,{R14,R0-R8} : BL move_stars : LDMFD R13!,{R14,R0-R8}
	� BL draw
	�] STMFD R13!,{R14} : BL load_dead : LDMFD R13!,{R14} : CMP R1,#1 : BLEQ usership_explosion
	�W STMFD R13!,{R14} : BL load_dead : LDMFD R13!,{R14} : CMP R1,#1 : BEQ usership_DEAD
	�> STMFD R13!,{R8,R9}: BL test_keypress : LDMFD R13!,{R8,R9}
	�H MOV R0,#129 : LDR R1,escape : MOV R2,#255 : SWI "OS_Byte"  ; ESCAPE
	�% CMP R1,#255 : BLEQ self_destruct
	� BL usership_collision
	� .usership_DEAD
	�] BL load_no_of_bullets : CMP R2,#0 : STMFD R13!,{R8,R9} : BLNE inner : LDMFD R13!,{R8,R9}
	�N BL drop_bombs            ;   alien bombs are moved futher down the screen
 BL slow


 .over
@ STMFD R13!,{R14} : BL load_no_of_sprites : LDMFD R13!,{R14}
 SUB R10,R10,#1
(> STMFD R13!,{R14} : BL load_last_sprite : LDMFD R13!,{R14}
2$ CMP R10,R11 : BEQ continue_play
<B CMP R8,R12 : BEQ display    ; no more sprites in this section
F@ ADD R12,R12,#1 : ADD R9,R9,#12 : B loop     ;   next sprite
P .space EQUB 7
Z .delay EQUB 7
d .section_flag EQUB 0
n
 ALIGN
x
� .test_keypress
� STMFD R13!,{R14}
� SWI "OS_Mouse"
� CMP R2,#3 : BNE tkover
� BL fire : BL right
� .tkover
� CMP R2,#6 : BNE tkover2
� BL fire : BL left
�
 .tkover2
� CMP R2,#1 : BLEQ right
� CMP R2,#4 : BLEQ left
� CMP R2,#2 : BLEQ fire
�= MOV R0,#129 : LDR R1,upkey : MOV R2,#255 : SWI "OS_Byte"
 CMP R1,#255 : BLEQ up
? MOV R0,#129 : LDR R1,downkey : MOV R2,#255 : SWI "OS_Byte"
 CMP R1,#255 : BLEQ down
"@ MOV R0,#129 : LDR R1,pausekey : MOV R2,#255 : SWI "OS_Byte"
,C CMP R1,#255 : STMFD R13!,{R14} : BLEQ pause : LDMFD R13!,{R14}
6C STMFD R13!,{R14,R0-R12} : BLEQ pause : LDMFD R13!,{R14,R0-R12}
@+ MOV R0,#15 : MOV R1,#0 : SWI "OS_Byte"
J LDMFD R13!,{R15}
T< .upkey    EQUD &FFFFFFBE           ;  A - � value (-66)
^< .downkey  EQUD &FFFFFF9E           ;  Z - � value (-98)
h< .pausekey EQUD &FFFFFFC8           ;  P - � value (-56)
r? .escape   EQUD &FFFFFF8F           ;  ESC - � value (-113)
|
�
 .draw
�D STMFD R13!,{R14} : BL directive_sprites_data : LDMFD R13!,{R14}
� MOV R3,#12
� .eight
� MOV R4,#8
� .twelve
� LDRB R5,[R2],#1
� LDRB R6,[R1,#1]
� � R5,R5,R6
� STRB R5,[R1,#1]!
� SUBS R4,R4,#1
� BNE twelve
�3 ADD R1,R1,#152           ;   160 pixels across
 SUBS R3,R3,#1
 BNE eight
 MOV R15,R14
&
0
 .slow
: MOV R5,#255
D .slow1
N MOV R6,#100
X .slow2
b SUBS R6,R6,#5 : BNE slow2
l SUBS R5,R5,#1 : BNE slow1
v MOV R15,R14
� 
� .initial_stars
� ADR R1,stars_address
� ADR R2,stars_speed
� MOV R3,#43
� .next_star
� LDR R5,[R1],#4
� LDRB R6,[R5]
�! LDR R7,[R2],#4 : CMP R7,#160
�  MOVGT R4,#&77 : MOVLE R4,#7
� � R6,R6,R4
� STRB R6,[R5]
� SUBS R3,R3,#1

 BNE next_star

 MOV R15,R14

 

  .move_stars

*< LDR R1,stars_delay : SUBS R1,R1,#1 : STR R1,stars_delay

43 MOVNE R15,R14 : MOV R1,#2 : STR R1,stars_delay

> ADR R1,stars_address

H ADR R2,stars_speed

R MOV R3,#43

\ .next_move

f LDR R5,[R1]

p LDRB R6,[R5]

z! LDR R7,[R2],#4 : CMP R7,#160

�  MOVGT R4,#&77 : MOVLE R4,#7

� � R6,R6,R4

� STRB R6,[R5]

� ADD R5,R5,R7

� LDR R8,first_addr

� CMP R5,R8

� LDRGE R8,stars_down

� SUBGE R5,R5,R8

� STR R5,[R1],#4

� LDRB R6,[R5]

� � R6,R6,R4

� STRB R6,[R5]

� SUBS R3,R3,#1
 BNE next_move
 MOV R15,R14
 
$ .first_addr EQUD &1FE1FFF
. .stars_down EQUD 40020
8 .stars_delay EQUD 2
B .stars_address
Ll EQUD &1FDBDFE: EQUD &1FDFEB0: EQUD &1FDFF50: EQUD &1FDC829: EQUD &1FDAD3B: EQUD &1FDB121: EQUD &1FDB1C1
Vl EQUD &1FDCE6E: EQUD &1FDB932: EQUD &1FDB9D2: EQUD &1FE12D1: EQUD &1FE00A3: EQUD &1FE0143: EQUD &1FDCAC8
`{ EQUD &1FDBE60: EQUD &1FDBF00: EQUD &1FDE20E: EQUD &1FDDF76: EQUD &1FDE016: EQUD &1FDEAA1: EQUD &1FDEB41: EQUD &1FE1DAD
jl EQUD &1FE075C: EQUD &1FE07FC: EQUD &1FE1A2F: EQUD &1FE1ACF: EQUD &1FE138E: EQUD &1FDE9C5: EQUD &1FDC313
tl EQUD &1FDB3D5: EQUD &1FDB475: EQUD &1FDEE16: EQUD &1FDEEB6: EQUD &1FDA94C: EQUD &1FE0552: EQUD &1FDD78C
~l EQUD &1FE00DE: EQUD &1FE0CC8: EQUD &1FE0D68: EQUD &1FE1008: EQUD &1FDDB7E: EQUD &1FDD5C6: EQUD &1FDD666
� 
� .stars_speed
�� EQUD 160: EQUD 320: EQUD 320:EQUD 160: EQUD 160: EQUD 320: EQUD 320: EQUD 160: EQUD 480: EQUD 480: EQUD 160: EQUD 320: EQUD 320: EQUD 160
�� EQUD 480: EQUD 480: EQUD 160: EQUD 320: EQUD 320: EQUD 320: EQUD 320: EQUD 160: EQUD 480: EQUD 480: EQUD 320: EQUD 320: EQUD 160: EQUD 160: EQUD 160
�� EQUD 320: EQUD 320: EQUD 320: EQUD 320:EQUD 160: EQUD 160: EQUD 160: EQUD 160: EQUD 480: EQUD 480:EQUD 160: EQUD 160: EQUD 320: EQUD 320
� 
� 
� .drop_bombs
�: STMFD R13!,{R14} : BL directive_ab : LDMFD R13!,{R14}
� LDRB R5,no_alien_bombs
� CMP R5,#0 : �Q R15,R14
� MOV R2,#1
 LDR R6,screen_bottom

q LDR R10,leftside  : ADD R10,R10,#1600          ;   move check point (leftside) to   bottom level of usership
� LDR R11,rightside : ADD R11,R11,#1760          ;   move check point (rightside) to   bottom level of usership plus 160 for a two line gap, as bombs drop by two pixels max.
 .next_bomb
( LDR R1,[R4]
2D STMFD R13!,{R14,R1-R6} : BL print_bomb : LDMFD R13!,{R14,R1-R6}
<% LDRB R7,[R4,#5]   ;   bomb speed
F5 CMP R7,#1 : ADDEQ R1,R1,#160   ;  1 line  - slow
P5 CMP R7,#2 : ADDEQ R1,R1,#320   ;  2 lines - fast
Z( CMP R10,R1 : BGT check_screenbottom
d CMP R11,R1 : BGT on_level
n< .check_screenbottom      ;  below or on level with ship
x CMP R6,R1
� BLE on_level
� 
� .check_for_red
� STMFD R13!,{R1-R6,R10,R11}
�/ LDRB R2,[R4,#4] : CMP R2,#24 : BNE not_red
�A SUB R10,R10,#8000    ;  correct height for cluster explosion
� SUB R11,R11,#8000
�" CMP R10,R1 : BGT wrong_height
�" CMP R11,R1 : BLT wrong_height
� 
�J LDRB R5,cluster_bombs : CMP R5,#2 : BEQ not_red   ;  enough red bombs
�) ADD R5,R5,#1 : STRB R5,cluster_bombs
�@ STMFD R13!,{R14} : BL initialise_cluster : LDMFD R13!,{R14}
 LDMFD R13!,{R1-R6,R10,R11}
 B one_less_bomb
 
" 
, .wrong_height
6
 .not_red
@ LDMFD R13!,{R1-R6,R10,R11}
J 
T
 B mbover
^ .on_level
hi STMFD R13!,{R14,R1-R6} : LDRB R2,[R4,#4] : CMP R2,#12 : BLEQ bomb_explosion : LDMFD R13!,{R14,R1-R6}
r .one_less_bomb
|G STMFD R13!,{R14,R1-R6} : BL memmove_bombs : LDMFD R13!,{R14,R1-R6}
� SUB R2,R2,#1:SUB R5,R5,#1
� B mbover2
� .mbover
�D STMFD R13!,{R14,R1-R6} : BL print_bomb : LDMFD R13!,{R14,R1-R6}
� STR R1,[R4],#8
�
 .mbover2
�- ADD R2,R2,#1 : CMP R2,R5 : BLE next_bomb
� MOV R15,R14
�! .screen_bottom EQUD &1FE1AFF
� 
� .print_bomb
� LDRB R2,[R4,#4]
� ADR R3,yellowbomb
 ADD R3,R3,R2
 MOV R0,#0
 MOV R2,#6
& .pbloop
0 MOV R5,#2
:
 .pbloop2
D LDRB R4,[R3],#1
N LDRB R6,[R1,#1]
X CMP R6,#0 : BEQ Bskip
b �S R4,R4,R6
l MOVNE R0,#1
v .Bskip
� STRB R4,[R1,#1]!
� SUBS R5,R5,#1
� BNE pbloop2
� ADD R1,R1,#158
� SUBS R2,R2,#1
� BNE pbloop
� CMP R0,#0 : BEQ bomb_clear
�I STMFD R13!,{R14,R1} : BL load_dead : MOV R2,R1 : LDMFD R13!,{R14,R1}
� CMP R2,#1 : BEQ bomb_clear
�B STMFD R13!,{R14,R1-R6} : BL bomb_hit : LDMFD R13!,{R14,R1-R6}
� .bomb_clear
� MOV R15,R14
�A .yellowbomb EQUD &03300330 : EQUD &03300330 : EQUD &03300330
A .cyanbomb   EQUD &06600660 : EQUD &06600660 : EQUD &06600660
A .redbomb    EQUD &01100110 : EQUD &01100110 : EQUD &01100110
 
  .bomb_hit
*@ STMFD R13!,{R14}:BL bomb_hit_coordinates : LDMFD R13!,{R14}
4 .BX_check
> LDR R1,X_bullet
H LDR R2,X_usership
R LDRB R3,bullet_width
\ LDRB R4,usership_width
f CMP R1,R2
p BGT usership_left
z ADD R1,R1,R3
� CMP R1,R2
� BLT no_collision
� B BY_check
� 
� .usership_left
� ADD R2,R2,R4
� CMP R1,R2
� BGT no_collision
� 
� .BY_check
� LDR R1,Y_bullet
� LDR R2,Y_usership
� LDRB R3,bullet_height
 LDRB R4,usership_height
 CMP R1,R2
 BLT usership_higher
$ SUB R1,R1,R3
. CMP R1,R2
8 BGT no_collision
B B B_clear
L 
V .usership_higher
` SUB R2,R2,R4
j CMP R1,R2
t BLT no_collision
~
 .B_clear
� 
� MOV R0,#1 : STRB R0,dead
�f MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
�c STMFD R13!,{R1-R8,R14} : BL initialise_particles : BL particle_spread : LDMFD R13!,{R1-R8,R14}
� 
� .no_collision
� 
� MOV R15,R14
� 
� .memmove_bombs
� LDRB R1,no_alien_bombs
� CMP R2,R1 : BEQ last_bomb
 ADD R2,R2,#1

 .mbloop
5 LDR R3,[R4,#8]!         ;   4 Byte Bombs Address
 STR R3,[R4,#-8]
(N LDR R3,[R4,#4]          ;   4 Byte Bomb Info - colour,timer,frame pointer
2 STR R3,[R4,#-4]
< ADD R2,R2,#1
F CMP R2,R1
P BLE mbloop
Z .last_bomb
d SUB R1,R1,#1
n STRB R1,no_alien_bombs
x MOV R15,R14
�
� .bomb_explosion
�6 SUB R1,R1,#964      ; on level with top of bullet
� LDRB R2,no_bombs_explo
�? ADR R3,bombs_exploaddr : ADD R3,R3,R2,LSL #3 : STR R1,[R3]
�B MOV R5,#25 : STRB R5,[R3,#4]        ;   bombs explosion timer
�@ MOV R5,#0  : STRB R5,[R3,#5]        ;   bombs frame pointer
�) ADD R2,R2,#1 :STRB R2,no_bombs_explo
� 
�< STMFD R13!,{R14} : BL explosion_bomb : LDMFD R13!,{R14}
�l MOV R0,#3:MOV R1,#7:RSB R1,R1,#0:MOV R2,#1:MOV R3,#14:SWI "Sound_Control"      ;  white explosion sound
� MOV R15,R14
� 
 .program_variables
_ ; all program variables are initialised here except byte and seperate alien_bomb_variables
 
"( ;  constant variables are set first
, CMP R0,#1
6 MOV R1,#0
@ STRB R1,no_alien_bombs
J STRB R1,section_flag
T STRB R1,no_bombs_explo
^ STRB R1,cluster_bombs
h STRNEB R1,no_of_bullets
r STRNEB R1,gap
| STRB R1,bullet_on_screen
� STRB R1,memory_move
� STRB R1,hit
� STRB R1,last_sprite
� STRB R1,dead
�
� ;  variables set by user
� STRB R2,cyan_counter
� STRB R2,Ccyan_counter
� STRB R3,red_counter
� STRB R3,Cred_counter
� STRB R4,bombs_speed
� STRB R4,Cbombs_speed
� STRB R5,bomb_drop_pos
 STRB R6,no_random_numbers
 STRB R7,no_range
 STRB R8,space
& STRB R9,delay
0 STRB R10,no_of_sprites
:
D .renew_vars
N+ LDRNE R1,Cleftside : STRNE R1,leftside
X- LDRNE R1,Crightside : STRNE R1,rightside
b< LDRNE R1,Cnewaddr : STRNE R1,newaddr : STRNE R1,oldaddr
l7 LDRB R1,Cusership_frames : STRB R1,usership_frames
v5 LDRB R1,Cusership_timer : STRB R1,usership_timer
�
� MOV R15,R14
� 
� .leftside   EQUD &1FE1427
� .rightside  EQUD &1FE14AF
� .Cleftside  EQUD &1FE1427
� .Crightside EQUD &1FE14AF
� .Cnewaddr   EQUD &1FE146B
� .Cusership_frames EQUB 10
� .Cusership_timer  EQUB 6
�
 ALIGN
�
� .bomb_explo_check
: LDRB R7,no_bombs_explo : CMP R7,#0 : BEQ no_explosion
M STMFD R13!,{R14} : BL directive_explosion : MOV R8,R2 : LDMFD R13!,{R14}
 ADR R3,bombs_exploaddr
  MOV R4,#0
* .bec_loop
4$ MOV R5,#0 : ADD R5,R3,R4,LSL #3
>G LDRB R6,[R5,#4] : SUBS R6,R6,#1 : STRB R6,[R5,#4] : BNE next_check
HI MOV R6,#25 : STRB R6,[R5,#4]     ;   reset bomb timer for next frame
R 
\/ LDRB R6,[R5,#5]           ;  frame pointer
f4 MOV  R2,#140              ;  data in each frame
p" MLA R2,R6,R2,R8 : LDR R1,[R5]
zB STMFD R13!,{R14,R0-R6} : BL eb_frame : LDMFD R13!,{R14,R0-R6}
� CMP R6,#3 : BNE next_explo
�L STMFD R13!,{R14,R1-R4} : BL memmove_bombsexplo : LDMFD R13!,{R14,R1-R4}
� SUB R4,R4,#1
� B next_check
� .next_explo
�3 ADD R6,R6,#1 : STRB R6,[R5,#5]   ;  next frame
� MOV  R2,#140
�" MLA R2,R6,R2,R8 : LDR R1,[R5]
�B STMFD R13!,{R14,R0-R6} : BL eb_frame : LDMFD R13!,{R14,R0-R6}
� 
� .next_check
�, ADD R4,R4,#1 : CMP R4,R7 : BNE bec_loop
� .no_explosion
 MOV R15,R14
 
 .no_bombs_explo   EQUB 0
$
 ALIGN
. .bombs_exploaddr
8J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
BJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
LJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
VJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
`J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
jJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
t 
~ .memmove_bombsexplo
� ; R7 = no_bombs_explo
� MOV R2,#1
� CMP R2,R7 : BEQ last_explo
�
 .mbeloop
�5 LDR R4,[R3,#8]!         ;   4 Byte Bombs Address
� STR R4,[R3,#-8]
�N LDR R4,[R3,#4]          ;   4 Byte Bomb Info - colour,timer,frame pointer
� STR R4,[R3,#-4]
� ADD R2,R2,#1
� CMP R2,R7
� BLE mbeloop
� .last_explo
 SUB R7,R7,#1

 STRB R7,no_bombs_explo
 MOV R15,R14
 
( .explosion_bomb
2" ;   R1 - address of explosion
<A STMFD R13!,{R14} : BL directive_explosion : LDMFD R13!,{R14}
F .eb_frame
P6 STMFD R13!,{R1}       ;   store explosion address
Z MOV R0,#0
d MOV R3,#14
n .eb_eight
x MOV R4,#10
� .eb_twelve
� LDRB R5,[R2],#1
� CMP R5,#&03 : �Q R5,#&07
� CMP R5,#&33 : �Q R5,#&77
� LDRB R6,[R1,#1]
�. CMP R5,#0 : �EQ R5,R5,R6 : BEQ eb_byte_ok
� CMP R6,#0 : BEQ eb_byte_ok
� �S R5,R5,R6
� MOVNE R0,#1
� .eb_byte_ok
� STRB R5,[R1,#1]!
� SUBS R4,R4,#1
� BNE eb_twelve
3 ADD R1,R1,#150           ;   160 pixels across
 SUBS R3,R3,#1
 BNE eb_eight
": LDMFD R13!,{R1}          ;  restore explosion address
,  CMP R0,#1 : BNE explo_clear
6/ LDRB R2,dead : CMP R2,#1 : BEQ explo_clear
@C STMFD R13!,{R14,R1-R6} : BL explo_hit : LDMFD R13!,{R14,R1-R6}
J .explo_clear
T MOV R15,R14
^ 
h .explo_hit
rG ;  R1   -   bomb address,  reloaded from stack in previous routine
|A STMFD R13!,{R14}:BL explo_hit_coordinates : LDMFD R13!,{R14}
� 
� .EX_check
� LDR R1,X_explosion
� LDR R2,X_usership
� LDRB R3,explosion_width
� LDRB R4,usership_width
� CMP R1,R2
� BGT explosion_left
� ADD R1,R1,R3
� CMP R1,R2
� BLT no_explo
� B EY_check
� 
 .explosion_left
 ADD R2,R2,R4
 CMP R1,R2
& BGT no_explo
0 
: .EY_check
D LDR R1,Y_explosion
N LDR R2,Y_usership
X LDRB R3,explosion_height
b LDRB R4,usership_height
l CMP R1,R2
v BLT explosion_higher
� SUB R1,R1,R3
� CMP R1,R2
� BGT no_explo
� B E_clear
� 
� .explosion_higher
� SUB R2,R2,R4
� CMP R1,R2
� BLT no_explo
�
 .E_clear
� 
� MOV R0,#1 : STRB R0,dead
�f MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
c STMFD R13!,{R1-R8,R14} : BL initialise_particles : BL particle_spread : LDMFD R13!,{R1-R8,R14}
 
 .no_explo
  
* 
4 MOV R15,R14
> 
H .initialise_cluster
R) ; R1 - start address of cluster bomb
\D STMFD R13!,{R14,R1-R6} : BL print_bomb : LDMFD R13!,{R14,R1-R6}
f ADD R1,R1,#1
p ADR R2,cluster_addr
z) LDRB R3,cluster_bombs : SUB R3,R3,#1
�! MOV R5,#48 : MLA R2,R3,R5,R2
� MOV R3,#6
� MOV R5,#1
� .icloop
� MOV R4,#2
�
 .icloop2
� STR R1,[R2],#4
� ADD R1,R1,#1
� SUBS R4,R4,#1
� BNE icloop2
� ADD R1,R1,#158
� SUBS R3,R3,#1
� BNE icloop
 ADR R2,cluster_frames
) LDRB R3,cluster_bombs : SUB R3,R3,#1
  MOV R5,#4 : MLA R2,R3,R5,R2
$: MOV R5,#&0A00 : STR R5,[R2]  ; reset delay and frames
. MOV R15,R14
8 
B .cluster_spread
L ;  R1   cluster addresses
V ;  R2   cluster paths
` BNV end
j ADR R3,redbomb
t/ MOV R4,#12       ; no of pixels in cluster
~ .csloop
�9 LDR R8,[R2],#4       ;  data for a single pixel path
�' CMP R8,#&B : BNE check_cluster_end
�G STMFD R13!,{R14,R1-R8} : BL cluster_blast : LDMFD R13!,{R14,R1-R8}
�  ADD R3,R3,#1 : ADD R1,R1,#4
� B last_cframe
� .check_cluster_end
�C CMP R8,#&E :  ADDEQ R3,R3,#1 :ADDEQ R1,R1,#4 : BEQ last_cframe
�) LDRB R5,[R3],#1      ;  colour = red
�/ LDR R6,[R1]          ;  address held in R1
�5 LDRB R7,[R6]         ;  contents of screen in R7
�- � R7,R7,R5         ;  colour pixel black
�6 STRB R7,[R6]         ;  blank out pixel on screen
? ADD R6,R6,R8         ;  add offset path to current address

. STR R6,[R1],#4       ;  store new address
  CMP R8,#0 : BEQ last_cframe
5 LDRB R7,[R6]         ;  contents of screen in R7
(0 � R7,R7,R5         ;  obtain correct colour
28 STRB R7,[R6]         ;  store colour byte to screen
< .last_cframe
F$ SUBS R4,R4,#1        ;  � pixel
P BNE csloop
Z MOV R15,R14
d 
n .cluster_check
x8 LDRB R4,cluster_bombs : CMP R4,#0 : BEQ no_clusters
� MOV R7,#0
� .next_cluster
� ADR R3,cluster_frames
�  MOV R5,#4 : MLA R3,R7,R5,R3
�J LDRB R5,[R3,#1] : SUBS R5,R5,#1 : STRB R5,[R3,#1] : BNE next2_cluster
�0 MOV R5,#10 : STRB R5,[R3,#1]      ;   delay
�> STMFD R13!,{R14} : BL directive_clpaths :LDMFD R13!,{R14}
� ADR R1,cluster_addr
�P MOV R5,#48 : MLA R1,R7,R5,R1    ; 48 bytes each set of 12 cluster addresses
�G LDRB R5,[R3] : MOV R6,#48 : MLA R2,R5,R6,R2  ; 48 bytes each frame
�! CMP R5,#26 : BEQ End_cluster
�  ADD R5,R5,#1 : STRB R5,[R3]
� 
H STMFD R13!,{R14,R1-R8} : BL cluster_spread : LDMFD R13!,{R14,R1-R8}
 B next2_cluster
 .End_cluster
" MOV R5,#0 : STRB R5,[R3]
,B LDRB R5,cluster_bombs : SUBS R5,R5,#1 : STRB R5,cluster_bombs
6 BEQ no_clusters
@ SUB R4,R4,#1:SUB R7,R7,#1
JI STMFD R13!,{R14,R1-R8} : BL cluster_memmove : LDMFD R13!,{R14,R1-R8}
T .next2_cluster
^0 ADD R7,R7,#1 : CMP R7,R4 : BNE next_cluster
h .no_clusters
r MOV R15,R14
| 
� .cluster_memmove
� ADR R1,cluster_frames
�! LDR R2,[R1,#4] : STR R2,[R1]
�( ADR R1,cluster_addr : ADD R1,R1,#48
� MOV R2,#12
� .cmloop
� LDR R3,[R1],#4
� STR R3,[R1,#-52]
� SUBS R2,R2,#1
� BNE cmloop
� 
� MOV R15,R14
� 
  .cluster_bombs EQUB 0
 
 ALIGN
 # .cluster_frames EQUD &00000A00
 &#                 EQUD &00000A00
 0 .cluster_addr
 :0 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 D0 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 N 
 X0 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 b0 EQUD 0:EQUD 0 :EQUD 0:EQUD 0 :EQUD 0:EQUD 0
 l 
 v .cluster_blast
 � MOV R0,#0
 �@ ;  R1 - holds address where cluster data addresses are held
 �; LDR R2,[R1]    ;  address of seperate pixel in cluster
 � ADR R3,data_blast
 � MOV R4,#5
 � .dbloop
 � MOV R5,#4
 �
 .dbloop2
 �1 LDRB R6,[R2]         ;    contents of screen
 �% LDRB R7,[R3],#1      ;    colour
 �+ CMP R7,#0 : �EQ R7,R6,R7 : BEQ cb_skip
 � CMP R6,#0 : BEQ cb_skip
 � �S R7,R6,R7
! MOVNE R0,#1
!
 .cb_skip
! STRB R7,[R2],#1
!  SUBS R5,R5,#1
!* BNE dbloop2
!4 ADD R2,R2,#156
!> SUBS R4,R4,#1
!H BNE dbloop
!R" CMP R0,#0 : BEQ cluster_clear
!\1 LDRB R2,dead : CMP R2,#1 : BEQ cluster_clear
!fS STMFD R13!,{R14,R1-R6} : LDR R1,[R1] : BL cluster_hit : LDMFD R13!,{R14,R1-R6}
!p .cluster_clear
!zf MOV R0,#2 :MOV R1,#10:RSB R1,R1,#0:MOV R2,#10:MOV R3,#10:SWI "Sound_Control"     ;  cluster sound
!� MOV R15,R14
!� 
!� .data_blast
!� EQUD &00113110
!� EQUD &11377331
!� EQUD &13773311
!� EQUD &01333110
!� EQUD &00111100
!� 
!� .cluster_hit
!�( ;  R1  -   a seperate blast address
!�C STMFD R13!,{R14}:BL cluster_hit_coordinates : LDMFD R13!,{R14}
!� 
" .CLX_check
" LDR R1,X_blast
" LDR R2,X_usership
"$ LDRB R3,blast_width
". LDRB R4,usership_width
"8 CMP R1,R2
"B BGT blast_left
"L ADD R1,R1,R3
"V CMP R1,R2
"` BLT no_blast
"j B CLY_check
"t 
"~ .blast_left
"� ADD R2,R2,R4
"� CMP R1,R2
"� BGT no_blast
"� 
"� .CLY_check
"� LDR R1,Y_blast
"� LDR R2,Y_usership
"� LDRB R3,blast_height
"� LDRB R4,usership_height
"� CMP R1,R2
"� BLT blast_higher
"� SUB R1,R1,R3
# CMP R1,R2
#
 BGT no_blast
# B CL_clear
# 
#( .blast_higher
#2 SUB R2,R2,R4
#< CMP R1,R2
#F BLT no_blast
#P .CL_clear
#Z 
#d MOV R0,#1 : STRB R0,dead
#nf MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
#xc STMFD R13!,{R1-R8,R14} : BL initialise_particles : BL particle_spread : LDMFD R13!,{R1-R8,R14}
#� 
#� .no_blast
#� 
#� 
#� MOV R15,R14
#� 
#� 
#� .explosion_check
#� LDRB R1,no_of_sprites
#�< STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
#� .ecloop
#�7 LDRB R3,[R2,#9]                 ;   explosion flag
#�5 CMP R3,#4 : BNE ecover          ;   no explosion
$8 LDRB R3,[R2,#10]                ;   explosion timer
$ SUB R3,R3,#1
$ STRB R3,[R2,#10]
$"K CMP R3,#0 : BNE ecover          ;   explosion still onscreen so branch
$, .explosion_finishes
$6 
$@* LDRB R3,[R2,#11]    ;   frame pointer
$Jq STMFD R13!,{R14,R2} : BL directive_explosion : MOV R4,R2 :LDMFD R13!,{R14,R2}    ;   start of explosion data
$Tm STMFD R13!,{R1-R7,R14} : LDR R1,[R2] : MOV R2,#140 : MLA R2,R3,R2,R4 : BL frame : LDMFD R13!,{R1-R7,R14}
$^ 
$h: CMP R3,#5 : BEQ frame_finish     ;   end of explosion
$r8 MOV R11,#15: STRB R11,[R2,#10]   ;   explosion time
$|7 ADD R3,R3,#1 :STRB R3,[R2,#11]   ;   frame pointer
$�m STMFD R13!,{R1-R7,R14} : LDR R1,[R2] : MOV R2,#140 : MLA R2,R3,R2,R4 : BL frame : LDMFD R13!,{R1-R7,R14}
$�
 B ecover
$�B .frame_finish                    ;   explosion animation ends
$�. MOV R3,#2 : STRB R3,[R2,#9]      ;   dead
$� .ecover
$� ADD R2,R2,#12
$� SUB R1,R1,#1
$� CMP R1,#1:BNE ecloop
$� MOV R15,R14
$� 
$�
 .fire
$�A LDRB R1,gap : CMP R1,#0: BNE floop           ; check spacing
$� MOV R1,#41 : STRB R1,gap
%e MOV R0,#1 :MOV R1,#7:RSB R1,R1,#0:MOV R2,#1:MOV R3,#7 :SWI "Sound_Control"      ;   bullet sound
%@ LDRB R1,no_of_bullets : ADD R1,R1,#1 :STRB R1,no_of_bullets
% STRB R1,bullet_on_screen
%&L SUB R1,R1,#1 : MOV R2,R1, LSL #2 : ADR R3,bullet_address : ADD R3,R3,R2
%0 BNV end:BNV end
%:I LDR R1,newaddr:SUB R1,R1,#800 : ADD R1,R1,#3     ; calculate address
%D STR R1,[R3]
%N .inner
%X( LDRB R1,gap : CMP R1,#0 : BEQ fover
%b .floop
%l- LDRB R1,gap : SUB R1,R1,#1 : STRB R1,gap
%v .fover
%� LDRB R8,no_of_bullets
%�� CMP R8,#0 : BEQ nothing_to_print        ; no_bullets, safety for gap at start of fire routine, incase of a brach to floop when gap>0 � bullets=0
%� MOV R9,#0
%� .floop2
%� MOV R4,R9, LSL#2
%� ADR R5,bullet_address
%� ADD R10,R5,R4
%� LDR R7,[R10]
%� STMFD R13!,{R14}
%� LDRB R1,bullet_on_screen
%�/ SUB R5,R8,#1 : CMP R5,R9 : BNE new_bullet2
%�# SUBS R1,R1,R8 : BEQ new_bullet
%� BL print_bullet
& .new_bullet
&) MOV R1,#0 : STRB R1,bullet_on_screen
& B new_bullet3
&  .new_bullet2
&* BL print_bullet
&4 .new_bullet3
&>" SUB R7,R7,#160 : STR R7,[R10]
&H8 LDR R1,top_of_screen : CMP R7,R1: BLPL print_bullet
&R BPL top
&\$ MOV R1,#1 : STRB R1,memory_move
&f	 .top
&p� LDRB R1,memory_move : CMP R1,#1 : �Q R1,#0 : STREQB R1,hit   ;               prevents memory_move repeat  as top_of_screen is set and also hit.
&z+ LDRB R1,hit : CMP R1,#1 : BLEQ explode
&� LDMFD R13!,{R14}
&�* ADD R9,R9,#1 : CMP R9,R8 : BNE floop2
&�] LDRB R1,memory_move : CMP R1,#1 : STMFD R13!,{R14} : BLEQ move_memory : LDMFD R13!,{R14}
&� .nothing_to_print
&� MOV R15,R14
&� 
&� .print_bullet
&Êš                ;  plots to opposite side of each byte to centre bullet                            above ship ....  as centre of ship splits two bytes
&� MOV R0,#1      ;  a hit
&� MOV R1,R7
&� MOV R3,#6
&� ADR R6,bulletdata
&� .bloop
' MOV R4,#2
' .bloop2
' LDRB R2,[R6],#1
'$ LDRB R5,[R1,#1]
'. CMP R5,#0 : BEQ skip
'8 � R2,R2,R5
'B CMP R5,#&07 : BEQ skip
'L CMP R5,#&70 : BEQ skip
'V CMP R5,#&77 : BEQ skip
'` CMP R2,#0
'j STRNEB R0,hit
't
 .skip
'~ STRB R2,[R1,#1]!
'� SUBS R4,R4,#1
'� BNE bloop2
'� ADD R1,R1,#158
'� SUBS R3,R3,#1
'� BNE bloop
'� MOV R15,R14
'� 
'� .move_memory
'� LDRB R1,no_of_bullets
'� CMP R1,#1 : BEQ no_more
'� MOV R2,R1
'� ADR R3,bullet_address
( .mmloop
(
 LDR R4,[R3,#4]!
( STR R4,[R3,#-4]
( SUB R2,R2,#1
(( CMP R2,#1
(2 BNE mmloop
(<
 .no_more
(F SUB R1,R1,#1
(P STRB R1,no_of_bullets
(Z MOV R1,#0
(d STRB R1,memory_move
(n MOV R15,R14
(x 
(�
 .explode
(�2 LDRB R1,no_of_bullets : CMP R1,#0 : BEQ eloop
(�b  ;     don't reprint bullet as reached top of screen so address is out of              bounds
(�' STMFD R13!,{R14} : BL print_bullet
(�S MOV R1,#0 : STRB R1,hit            ;  first before print_bullet due to hitflag
(�) SUB R1,R8,#1 : STRB R1,no_of_bullets
(� CMP R1,#0 : STREQB R1,gap
(ȃ CMP R1,R9 : BEQ eloop    ;   checks for last bullet in round fired, so    when returning from routine R9 is added to equal R8.
(� MOV R8,R1
(� 
(� ADD R2,R1,#1
(� ADD R1,R9,#1
(� ADR R3,bullet_address
) MOV R4,R9, LSL #2
)D ADD R3,R3,R4                 ;  bullet numbers address to start
) .eeloop
)" LDR R4,[R3,#4]!
), STR R4,[R3,#-4]
)6 SUB R2,R2,#1
)@ CMP R2,R1
)J BNE eeloop
)T 
)^ .eloop
)h: LDRB R1,bullet_on_screen : CMP R1,#0 : SUBNE R1,R1,#1
)r\ STRB R1,bullet_on_screen ;   a new on screen at same time as collision of other bullets
)| 
)� .remove_sprite
)�+  ;  get X and Y co-ordinates of bullet
)�) MOV R1,R7          ;  bullet address
)� ADR R2,X_bullet
)� ADR R3,Y_bullet
)� BL get_coordinates
)� 
)� SUB R7,R7,#160      ; subtract 160 from bullet_addres .....  may have reached top of screen - therefore out of bounds area
)� LDRB R1,no_of_sprites
)�< STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
)� MOV R3,#1
)� .rloop
)� LDRB R4,[R2,#9]
*G CMP R4,#1 : BNE rover      ; 0 value - offscreen /  2 value - dead
* 
* STMFD R13!,{R1-R4}
*&5 MOV R0,#1              ;    A Survivor, for now!
*08 LDR R1,[R2,#0]         ;    current sprites address
*: ADR R2,X_sprite
*D ADR R3,Y_sprite
*N BL get_coordinates
*X
 .X_check
*b LDR R1,X_bullet
*l LDR R2,X_sprite
*v LDRB R3,bullet_width
*� LDRB R4,sprite_width
*� CMP R1,R2
*� BGT sprite_left
*� ADD R1,R1,R3
*� CMP R1,R2
*� BLT not_this_sprite
*� B Y_check
*� 
*� .sprite_left
*� ADD R2,R2,R4
*� CMP R1,R2
*� BGT not_this_sprite
*� 
+
 .Y_check
+ LDR R1,Y_bullet
+ LDR R2,Y_sprite
+  LDRB R3,bullet_height
+* LDRB R4,sprite_height
+4 CMP R1,R2
+> BLT sprite_higher
+H SUB R1,R1,R3
+R CMP R1,R2
+\ BGT not_this_sprite
+f B clear
+p 
+z .sprite_higher
+� SUB R2,R2,R4
+� CMP R1,R2
+� BLT not_this_sprite
+� .clear
+� 
+� MOV R0,#0
+� 
+� .not_this_sprite
+� LDMFD R13!,{R1-R4}
+� CMP R0,#0 : BNE rover
+�Q STMFD R13!,{R1-R4} : MOV R10,#4 : LDR R1,[R2] : BL draw : LDMFD R13!,{R1-R4}
+�3 MOV R11,#4 : STRB R11,[R2,#9]    ;   explosion
+�8 MOV R11,#15: STRB R11,[R2,#10]   ;   explosion time
,N MOV R11,#0 : STRB R11,[R2,#11]   ;   frame pointer ( 48 bytes each frame)
, LDRB R11,last_sprite : ADD R11,R11,#1 : STRB R11,last_sprite   ;                Check for end of pattern - for last sprite
,^ STMFD R13!,{R0-R7} : LDR R1,[R2] : BL explosion  : BL increase_score : LDMFD R13!,{R0-R7}
,$n MOV R0,#3:MOV R1,#10:RSB R1,R1,#0:MOV R2,#1:MOV R3,#10:SWI "Sound_Control"      ;  yellow explosion sound
,.1 LDMFD R13!,{R15}   ;  one hit one alien ship
,8 .rover
,B ADD R2,R2,#12:ADD R3,R3,#1
,L CMP R3,R1 : BNE rloop
,V LDMFD R13!,{R15}
,` 
,j .cluster_hit_coordinates
,t ADR R2,X_blast
,~ ADR R3,Y_blast
,�9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
,� LDR R1,newaddr
,� ADR R2,X_usership
,� ADR R3,Y_usership
,�9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
,� MOV R15,R14
,� 
,� .explo_hit_coordinates
,� ADR R2,X_explosion
,� ADR R3,Y_explosion
,�9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
,� LDR R1,newaddr
- ADR R2,X_usership
-
 ADR R3,Y_usership
-9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
- MOV R15,R14
-( 
-2 .bomb_hit_coordinates
-< ADR R2,X_bullet
-F ADR R3,Y_bullet
-P9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
-Z LDR R1,newaddr
-d ADR R2,X_usership
-n ADR R3,Y_usership
-x9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
-� MOV R15,R14
-� 
-� .get_coordinates
-�G  ;  R1 - address on screen  R2 - X offset addr  R3 - Y offset addr
-� LDR R4,address
-�A SUB R4,R1,R4           ;    screen address - start of screen
-�( MOV R5,#160            ;    divisor
-�5 MOV R6,#1<<31          ;    counter for each bit
-�* MOV R10,#0             ;    remainder
-�) MOV R11,#0             ;    quotient
-� .division_loop
-� MOVS R4,R4,ASL#1
-� ADC R10,R10,R10
. CMP R10,R5
.* SUBGE R10,R10,R5       ;    remainder
.( �RGE R11,R11,R6       ;    quotient
." MOVS R6,R6,LSR#1
., BNE division_loop
.6% MOV R10,R10,LSL#3 : STR R10,[R2]
.@ STR R10,[R2,#0]
.J RSB R11,R11,#255
.T% MOV R11,R11,LSL#2 : STR R11,[R3]
.^ MOV R15,R14
.h
.r .store_no_of_bullets
.| MOV R2,#0
.� STRB R2,no_of_bullets
.� MOV R15,R14
.�
.� .load_no_of_bullets
.� LDRB R2,no_of_bullets
.� MOV R15,R14
.� 
.� .load_dead
.� LDRB R1,dead
.� MOV R15,R14
.�
.�A .bulletdata EQUD &07700770 : EQUD &07700770 : EQUD &07700770
.�! .top_of_screen EQUD &1FDA800
/ .bullet_address EQUD 0
/                 EQUD 0
/                 EQUD 0
/&                 EQUD 0
/0                 EQUD 0
/: .no_of_bullets EQUB 0
/D .gap EQUB 0
/N .bullet_on_screen EQUB 0
/X .memory_move EQUB 0
/b .hit EQUB 0
/l .dead EQUB 0
/v
 ALIGN
/� 
/�=  ;  memory locations for sprite collision identification
/� .address EQUD &1FD8000
/� .X_bullet         EQUD 0
/� .Y_bullet         EQUD 0
/� .X_sprite         EQUD 0
/� .Y_sprite         EQUD 0
/� .X_usership       EQUD 0
/� .Y_usership       EQUD 0
/� .X_explosion      EQUD 0
/� .Y_explosion      EQUD 0
/� .X_blast          EQUD 0
/� .Y_blast          EQUD 0
09 .bullet_width     EQUB 16         ;  constant values
0 .bullet_height    EQUB 24
0 .sprite_width     EQUB 64
0  .sprite_height    EQUB 48
0* .usership_width   EQUB 64
04 .usership_height  EQUB 64
0> .explosion_width  EQUB 80
0H .explosion_height EQUB 56
0R .blast_width      EQUB 32
0\ .blast_height     EQUB 16
0f
 ALIGN
0p 
0z
 .left
0�> LDR R1,leftside : LDR R2,oldaddr : CMP R1,R2 : �Q R15,R14
0�4 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
0�e LDR R1,newaddr : SUB R1,R1,#1 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
0� 
0� .right
0�? LDR R1,rightside : LDR R2,oldaddr : CMP R1,R2 : �Q R15,R14
0�4 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
0�e LDR R1,newaddr : ADD R1,R1,#1 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
0� 
0� .up
0�W LDR R1,top_of_screen : ADD R1,R1,#160 : LDR R2,oldaddr : CMP R1,R2 : MOVGT R15,R14
0�9 LDR R1,rightside : SUB R1,R1,#160 : STR R1,rightside
0�8 LDR R1,leftside  : SUB R1,R1,#160 : STR R1,leftside
14 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
1g LDR R1,newaddr : SUB R1,R1,#160 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
1 
1$
 .down
1.X LDR R1,screen_bottom : SUB R1,R1,#1760 : LDR R2,oldaddr : CMP R1,R2 : MOVLT R15,R14
189 LDR R1,rightside : ADD R1,R1,#160 : STR R1,rightside
1B8 LDR R1,leftside  : ADD R1,R1,#160 : STR R1,leftside
1L4 STMFD R13!,{R14} : LDR R1,oldaddr : BL usership
1Vg LDR R1,newaddr : ADD R1,R1,#160 : STR R1,newaddr : STR R1,oldaddr : BL usership : LDMFD R13!,{R15}
1` 
1j .usership
1t ADR R2,shipsdata
1~( MOV R3,#16               ;   height
1� .ueight
1� MOV R4,#8
1�
 .utwelve
1� LDRB R5,[R2],#1
1� LDRB R6,[R1,#1]
1� � R5,R5,R6
1� STRB R5,[R1,#1]!
1� SUBS R4,R4,#1
1� BNE utwelve
1�3 ADD R1,R1,#152           ;   160 pixels across
1� SUBS R3,R3,#1
1� BNE ueight
2 MOV R15,R14
2
 
2 .usership_collision
2* LDRB R1,dead : CMP R1,#1 : �Q R15,R14
2( LDR R1,newaddr
22 ADR R2,shipsdata
2< MOV R3,#16
2F
 .uceight
2P MOV R4,#8
2Z .uctwelve
2d LDRB R5,[R2],#1
2n LDRB R6,[R1,#1]!
2xL CMP R5,#0 : BEQ UCskip           ;    no collision on black around ship
2� �S R5,R5,R6
2� BNE collision
2� .UCskip
2� SUBS R4,R4,#1
2� BNE uctwelve
2� ADD R1,R1,#152
2� SUBS R3,R3,#1
2� BNE uceight
2� B check_ok
2� .collision
2�= STMFD R13!,{R14} : BL check_collision : LDMFD R13!,{R14}
2� .check_ok
2� MOV R15,R14
3 
3 .check_collision
3 
3" LDR R1,newaddr
3, ADR R2,X_usership
36 ADR R3,Y_usership
3@9 STMFD R13!,{R14}:BL get_coordinates:LDMFD R13!,{R14}
3J 
3T LDRB R1,no_of_sprites
3^< STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
3h MOV R3,#1
3r .ccloop
3| LDRB R4,[R2,#9]
3�H CMP R4,#1 : BNE ccover      ; 0 value - offscreen /  2 value - dead
3� 
3� STMFD R13!,{R1-R4,R14}
3� MOV R0,#1
3� LDR R1,[R2,#0]
3� ADR R2,X_sprite
3� ADR R3,Y_sprite
3� BL get_coordinates
3� .X_col_check
3� LDR R1,X_usership
3� LDR R2,X_sprite
3� LDRB R3,usership_width
3� LDRB R4,sprite_width
4 CMP R1,R2
4 BGT usership_right
4 ADD R1,R1,R3
4& CMP R1,R2
40 BLT no_col
4: B Y_col_check
4D 
4N .usership_right
4X ADD R2,R2,R4
4b CMP R1,R2
4l BGT no_col
4v 
4� .Y_col_check
4� LDR R1,Y_usership
4� LDR R2,Y_sprite
4� LDRB R3,usership_height
4� LDRB R4,sprite_height
4� CMP R1,R2
4� BLT usership_lower
4� SUB R1,R1,R3
4� CMP R1,R2
4� BGT no_col
4� B uc_clear
4� 
4� .usership_lower
5 SUB R2,R2,R4
5 CMP R1,R2
5 BLT no_col
5  .uc_clear
5* 
54 MOV R0,#0
5> 
5H .no_col
5R LDMFD R13!,{R1-R4,R14}
5\ CMP R0,#0 : BNE ccover
5f 
5pY STMFD R13!,{R1-R4,R14} : MOV R10,#4 : LDR R1,[R2] : BL draw : LDMFD R13!,{R1-R4,R14}
5z3 MOV R11,#4 : STRB R11,[R2,#9]    ;   explosion
5�8 MOV R11,#15: STRB R11,[R2,#10]   ;   explosion time
5�N MOV R11,#0 : STRB R11,[R2,#11]   ;   frame pointer ( 48 bytes each frame)
5� LDRB R11,last_sprite : ADD R11,R11,#1 : STRB R11,last_sprite   ;                Check for end of pattern - for last sprite
5�� STMFD R13!,{R0-R8,R14} : LDR R1,[R2] : BL explosion : BL increase_score : BL initialise_particles : BL particle_spread : LDMFD R13!,{R0-R8,R14}
5� MOV R0,#1 : STRB R0,dead
5�f MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
5�M MOV R15,R14     ;   usership is dead so additional collisions impossible
5� .ccover
5� ADD R2,R2,#12:ADD R3,R3,#1
5� CMP R3,R1 : BNE ccloop
5�
5� MOV R15,R14
5�
6 .load_last_sprite
6 LDRB R11,last_sprite
6 MOV R15,R14
6$ 
6. .store_last_sprite
68 STRB R11,last_sprite
6B MOV R15,R14
6L 
6V .load_no_of_sprites
6` LDRB R10,no_of_sprites
6j MOV R15,R14
6t 
6~ 
6�M .no_of_sprites EQUB 50    ; total sprites in pattern = no_of_sprites - 1
6� .last_sprite EQUB 0
6�C .usership_frames  EQUB 10         ;  no of frames in explosion
6�B .usership_timer   EQUB 6           ;  time between each frame
6�
 ALIGN
6� 
6� .newaddr EQUD &1FE146B
6� .oldaddr EQUD &1FE146B
6� 
6� .load_newaddr
6� LDR R1,newaddr
6� MOV R15,R14
7 
7
 .directive_shipsdata
7 ADR R3,shipsdata
7 MOV R15,R14
7( 
72 ;   Ships Data
7< .shipsdata
7F" EQUD &00030000:EQUD &00003000
7P" EQUD &00030000:EQUD &00003000
7Z" EQUD &00030000:EQUD &00003000
7d" EQUD &00033000:EQUD &00033000
7n" EQUD &00033000:EQUD &00033000
7x" EQUD &00033300:EQUD &00333000
7�" EQUD &00034300:EQUD &00343000
7�" EQUD &00034330:EQUD &03343000
7�" EQUD &30034430:EQUD &03443003
7�" EQUD &30034433:EQUD &33443003
7�" EQUD &30034443:EQUD &34443003
7�" EQUD &33334443:EQUD &34443333
7�" EQUD &33344443:EQUD &34444333
7�" EQUD &00334433:EQUD &33443300
7�" EQUD &00033330:EQUD &03333000
7�" EQUD &00003300:EQUD &00330000
7� 
7� .self_destruct
7� MOV R0,#1:STRB R0,dead
8 STMFD R13!,{R1-R8,R14}
8 BL initialise_particles
8 BL particle_spread
8" MOV R0,#1 : STRB R0,lives
8,  MOV R0,#32 : STRB R0,Clives
86" MOV R0,#49 : STRB R0,Clives+1
8@f MOV R0,#4:MOV R1,#15:RSB R1,R1,#0:MOV R2,#1:MOV R3,#25:SWI "Sound_Control"      ;  usership sound
8J LDMFD R13!,{R1-R8,R15}
8T
8^ .usership_explosion
8h LDRB R1,usership_frames
8r' CMP R1,#0     : BEQ no_more_frames
8| LDRB R2,usership_timer
8�( CMP R2,#0     : BNE decrement_timer
8�+ MOV R2,#6     : STRB R2,usership_timer
8�, SUBS R1,R1,#1 : STRB R1,usership_frames
8� 
8�C STMFD R13!,{R8,R14} : BL particle_spread : LDMFD R13!,{R8,R14}
8�
8� B next_frame
8� .decrement_timer
8�* SUB R2,R2,#1 : STRB R2,usership_timer
8� B next_frame
8� .no_more_frames
8�` STMFD R13!,{R14} : BL load_wave_finished : LDMFD R13!,{R14} : CMP R1,#1 : BEQ continue_play
8� CMP R8,#0 : BEQ next_frame
9) ADD R1,R8,#1 : STRB R1,no_of_sprites
9 B next_frame
9 .continue_play
9&- LDRB R1,dead : CMP R1,#0 : BEQ next_wave
90 BL lives_minus
9: CMP R1,#0 : BEQ game_over
9D BL plot_border
9N BL print_lives
9X BL print_score
9b BL plot_wave
9l BL initial_stars
9v MOV R0,#0 : BL repeat_wave
9� LDR R1,newaddr
9� BL usership
9� MOV R1,#0 : STRB R1,dead
9� MOV R1,#300
9�
 .wait
9� STMFD R13!,{R1,R14}
9� BL move_stars
9� BL change_palette
9�3 BL load_no_of_bullets : CMP R2,#0 : BLNE inner
9�. MOV R5,#400 : BL slow1 : BL test_keypress
9� LDMFD R13!,{R1,R14}
9� SUBS R1,R1,#1 : BNE wait
9� MOV R0,#1 : BL repeat_wave
: B display
: .next_frame
: MOV R15,R14
: 
:* .lives_plus
:47 LDRB R0,Clives+1 : ADD R0,R0,#1 : STRB R0,Clives+1
:> CMP R0,#58 : BNE plus_done
:H" MOV R0,#48 : STRB R0,Clives+1
:R  LDRB R0,Clives : CMP R0,#32
:\! �Q R0,#49 : STREQB R0,Clives
:f& ADDNE R0,R0,#1 : STRNEB R0,Clives
:p
:z .plus_done
:�1 LDRB R1,lives : ADD R1,R1,#1 : STRB R1,lives
:� MOV R15,R14
:�
:� .lives_minus
:�7 LDRB R0,Clives+1 : SUB R0,R0,#1 : STRB R0,Clives+1
:�  CMP R0,#47 : BNE minus_done
:�" MOV R0,#57 : STRB R0,Clives+1
:�  LDRB R0,Clives : CMP R0,#49
:�! �Q R0,#32 : STREQB R0,Clives
:�& SUBNE R0,R0,#1 : STRNEB R0,Clives
:�
:� .minus_done
:�1 LDRB R1,lives : SUB R1,R1,#1 : STRB R1,lives
; MOV R15,R14
;
; .print_lives
;$ SWI &100+18
;. MOV R0,#3
;8 SWI "OS_WriteC"
;B MOV R0,#136
;L SWI "OS_WriteC"
;V SWI &100+18
;` MOV R0,#0
;j SWI "OS_WriteC"
;t MOV R0,#3
;~ SWI "OS_WriteC"
;� MOV R0,#4
;� MOV R1,#172
;� MOV R2,#880
;� SWI "OS_Plot"
;� ADR R0,Blives
;� SWI "OS_Write0"
;� MOV R15,R14
;�
;� .lives  EQUB 3
;�  .Blives EQUB 127  :EQUB 127
;� .Clives EQUS " 3" :EQUB 0
;�
 ALIGN
< 
<
 .reset_lives
< MOV R1,#3 : STRB R1,lives
<" MOV R1,#51 : STRB R1,Clives+1
<(  MOV R1,#32 : STRB R1,Clives
<2 MOV R15,R14
<<
<F .initialise_particles
<P" LDR R1,newaddr : ADD R1,R1,#1
<Z ADR R2,particles_addresses
<d BNV end
<n MOV R3,#16
<x .iploop
<� MOV R4,#8
<�
 .iploop2
<� STR R1,[R2],#4
<� ADD R1,R1,#1
<� SUBS R4,R4,#1
<� BNE iploop2
<� ADD R1,R1,#152
<� SUBS R3,R3,#1
<� BNE iploop
<� MOV R15,R14
<� 
<� .particle_spread
<� ADR R1,particles_addresses
= BNV end
= ADR R2,particles_paths
= ADR R3,shipsdata
=" MOV R4,#128
=, .psloop
=6 LDRB R5,[R3],#1
=@ LDR R6,[R1]
=J LDRB R7,[R6]
=T � R7,R7,R5
=^ STRB R7,[R6]
=h LDR R8,[R2],#4
=r ADD R6,R6,R8
=| STR R6,[R1],#4
=�9 LDRB R7,usership_frames : CMP R7,#0 : BEQ last_frame
=� LDRB R7,[R6]
=� � R7,R7,R5
=� STRB R7,[R6]
=� .last_frame
=� SUBS R4,R4,#1
=� BNE psloop
=� MOV R15,R14
=� 
=� .explosion
=�" ;   R1 - address of explosion
=� ADR R2,explosion_data
=� .frame
> MOV R3,#14
>
 .x_eight
> MOV R4,#10
>& .x_twelve
>0 LDRB R5,[R2],#1
>:! LDRB R7,[R1,#1] : � R5,R5,R7
>D STRB R5,[R1,#1]!
>N SUBS R4,R4,#1
>X BNE x_twelve
>b3 ADD R1,R1,#150           ;   160 pixels across
>l SUBS R3,R3,#1
>v BNE x_eight
>� MOV R15,R14
>� 
>� .directive_explosion
>� ADR R2,explosion_data
>� MOV R15,R14
>� 
>�! ;   Data for exposion frames
>� .explosion_data
>� 
>�F ;   Frame One    ************************************************
>�- EQUD &00000000:EQUD &00000000:EQUW &0000
>�- EQUD &00000000:EQUD &00000000:EQUW &0000
>�- EQUD &00000000:EQUD &00000000:EQUW &0000
?- EQUD &00000000:EQUD &00001313:EQUW &0000
?- EQUD &11000000:EQUD &00013133:EQUW &0000
?- EQUD &31100000:EQUD &01333333:EQUW &0000
? - EQUD &33100000:EQUD &13333333:EQUW &0001
?*- EQUD &33000000:EQUD &13333133:EQUW &0000
?4- EQUD &31000000:EQUD &01333333:EQUW &0000
?>- EQUD &10000000:EQUD &00113333:EQUW &0000
?H- EQUD &00000000:EQUD &00001330:EQUW &0000
?R- EQUD &00000000:EQUD &00000000:EQUW &0000
?\- EQUD &00000000:EQUD &00000000:EQUW &0000
?f- EQUD &00000000:EQUD &00000000:EQUW &0000
?p 
?zE ;   Frame Two    ***********************************************
?�- EQUD &00000000:EQUD &00000000:EQUW &0000
?�- EQUD &00000000:EQUD &00000000:EQUW &0000
?�- EQUD &00000000:EQUD &00000000:EQUW &0000
?�- EQUD &00000000:EQUD &00013311:EQUW &0000
?�- EQUD &10000000:EQUD &00113333:EQUW &0000
?�- EQUD &31100000:EQUD &01333333:EQUW &0000
?�- EQUD &33100000:EQUD &11333333:EQUW &0000
?�- EQUD &33310000:EQUD &11333333:EQUW &0000
?�- EQUD &31100000:EQUD &01133133:EQUW &0000
?�- EQUD &31000000:EQUD &00133333:EQUW &0000
?�- EQUD &10000000:EQUD &00111333:EQUW &0000
?�- EQUD &00000000:EQUD &00001110:EQUW &0000
?�- EQUD &00000000:EQUD &00000000:EQUW &0000
@- EQUD &00000000:EQUD &00000000:EQUW &0000
@ 
@E ;   Frame Three  ***********************************************
@$- EQUD &00000000:EQUD &00000000:EQUW &0000
@.- EQUD &00000000:EQUD &00000000:EQUW &0000
@8- EQUD &00000000:EQUD &00000110:EQUW &0000
@B- EQUD &00000000:EQUD &00001111:EQUW &0000
@L- EQUD &11100000:EQUD &00113333:EQUW &0000
@V- EQUD &33110000:EQUD &01131333:EQUW &0000
@`- EQUD &31100000:EQUD &13333113:EQUW &0000
@j- EQUD &33110000:EQUD &11133333:EQUW &0000
@t- EQUD &13310000:EQUD &00313333:EQUW &0000
@~- EQUD &33100000:EQUD &00133331:EQUW &0000
@�- EQUD &11000000:EQUD &00011133:EQUW &0000
@�- EQUD &00000000:EQUD &00000111:EQUW &0000
@�- EQUD &00000000:EQUD &00000000:EQUW &0000
@�- EQUD &00000000:EQUD &00000000:EQUW &0000
@� 
@�E ;   Frame Four   ***********************************************
@�- EQUD &00000000:EQUD &00000000:EQUW &0000
@�- EQUD &00000000:EQUD &00011133:EQUW &0000
@�- EQUD &01000000:EQUD &11133333:EQUW &0000
@�- EQUD &31100000:EQUD &13333333:EQUW &0000
@�- EQUD &31100000:EQUD &33131333:EQUW &0001
@�- EQUD &13333000:EQUD &33313333:EQUW &0011
A- EQUD &31333100:EQUD &33333333:EQUW &0033
A
- EQUD &33333300:EQUD &33333331:EQUW &0001
A- EQUD &13333100:EQUD &13333113:EQUW &0003
A- EQUD &31331000:EQUD &13333333:EQUW &0001
A(- EQUD &33311000:EQUD &11333333:EQUW &0000
A2- EQUD &31100000:EQUD &03131333:EQUW &0000
A<- EQUD &10000000:EQUD &00013331:EQUW &0000
AF- EQUD &00000000:EQUD &00000000:EQUW &0000
AP 
AZD ;   Frame Five  ***********************************************
Ad- EQUD &00000000:EQUD &00000000:EQUW &0000
An- EQUD &31000000:EQUD &00011133:EQUW &0000
Ax- EQUD &11100000:EQUD &11133333:EQUW &0000
A�- EQUD &33311000:EQUD &13333333:EQUW &0011
A�- EQUD &33333100:EQUD &33131333:EQUW &0131
A�- EQUD &13333310:EQUD &33313333:EQUW &1311
A�- EQUD &31333130:EQUD &33333333:EQUW &1333
A�- EQUD &33333331:EQUD &33333331:EQUW &0131
A�- EQUD &13333130:EQUD &33333313:EQUW &0113
A�- EQUD &31331300:EQUD &33333333:EQUW &0131
A�- EQUD &33333300:EQUD &33333333:EQUW &0311
A�- EQUD &33310300:EQUD &33333331:EQUW &0013
A�- EQUD &33330000:EQUD &03331331:EQUW &0001
A�- EQUD &10000000:EQUD &00011100:EQUW &0000
A� 
A�E ;   Frame Six    ***********************************************
B- EQUD &33000000:EQUD &00110313:EQUW &0000
B- EQUD &31311100:EQUD &01111133:EQUW &0033
B- EQUD &33133310:EQUD &11133333:EQUW &0311
B"- EQUD &33331310:EQUD &13333333:EQUW &3331
B,- EQUD &33333330:EQUD &33131333:EQUW &3333
B6- EQUD &13333310:EQUD &33313333:EQUW &1311
B@- EQUD &31333333:EQUD &33333333:EQUW &1333
BJ- EQUD &33333331:EQUD &33333331:EQUW &1333
BT- EQUD &13333133:EQUD &33333313:EQUW &0133
B^- EQUD &31331330:EQUD &33333333:EQUW &0133
Bh- EQUD &33333330:EQUD &33333333:EQUW &3311
Br- EQUD &33313300:EQUD &33333331:EQUW &3113
B|- EQUD &33333000:EQUD &13331331:EQUW &0311
B�- EQUD &13000000:EQUD &03131100:EQUW &0003
B� 
B� .directive_particles
B� ADR R1,particles_addresses
B� ADR R2,particles_paths
B� MOV R15,R14
B� 
B� ; Usership explosion data
B� .particles_paths
B�? EQUD 0:EQUD 0:EQUD 161:EQUD 0:EQUD 0:EQUD -1:EQUD 0:EQUD 0
B�B EQUD 0:EQUD 0:EQUD -322:EQUD 0:EQUD 0:EQUD -159:EQUD 0:EQUD 0
B�B EQUD 0:EQUD 0:EQUD -322:EQUD 0:EQUD 0:EQUD -159:EQUD 0:EQUD 0
B�F EQUD 0:EQUD -1:EQUD -159:EQUD 0:EQUD 0:EQUD -160:EQUD -161:EQUD 0
CB EQUD 0:EQUD 159:EQUD -1:EQUD 0:EQUD 0:EQUD -160:EQUD 1:EQUD 0
CC EQUD 0:EQUD -320:EQUD 1:EQUD 0:EQUD 0:EQUD 160:EQUD 161:EQUD 0
CC EQUD 0:EQUD -161:EQUD -320:EQUD 0:EQUD 0:EQUD -1:EQUD 1:EQUD 0
C&G EQUD -1:EQUD 480:EQUD -161:EQUD 0:EQUD 0:EQUD 161:EQUD 1:EQUD -159
C0I EQUD 160:EQUD 159:EQUD -2:EQUD 161:EQUD 320:EQUD 318:EQUD 2:EQUD 161
C:M EQUD -160:EQUD -318:EQUD 1:EQUD -480:EQUD 160:EQUD 159:EQUD -1:EQUD -161
CDL EQUD -161:EQUD -1:EQUD 477:EQUD 160:EQUD 161:EQUD 1:EQUD -159:EQUD -160
CNF EQUD 1:EQUD -1:EQUD 160:EQUD -477:EQUD 159:EQUD 1:EQUD 2:EQUD 160
CXN EQUD -160:EQUD -159:EQUD -161:EQUD 161:EQUD -1:EQUD 322:EQUD 160:EQUD 161
CbF EQUD 159:EQUD -159:EQUD -2:EQUD 0:EQUD 0:EQUD 160:EQUD 1:EQUD 159
ClE EQUD -1:EQUD -160:EQUD 161:EQUD 0:EQUD 0:EQUD 318:EQUD 2:EQUD -1
CvA EQUD 0:EQUD 318:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD -161:EQUD 0
C� 
C�, ; Usership particle addresses on screen
C� .particles_addresses
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
C�< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D < EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D*< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D4< EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
D> 
DH .directive_clpaths
DR ADR R2,cluster_paths
D\ MOV R15,R14
Df 
Dp .cluster_paths
Dz  ;    cluster data paths
D�l EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�l EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�l EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�f EQUD 1:EQUD 160:EQUD -2:EQUD 161:EQUD 2:EQUD -2:EQUD 3:EQUD 159:EQUD 159:EQUD 161:EQUD 3:EQUD 160
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�p EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
D�l EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
Ep EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
Ep EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640:EQUD 640
El EQUD 1:EQUD 160:EQUD 159:EQUD 161:EQUD 2:EQUD 161:EQUD 160:EQUD 159:EQUD 159:EQUD 161:EQUD 161:EQUD 160
E$n EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 160:EQUD 160:EQUD 160:EQUD 0
E.i EQUD 640:EQUD 160:EQUD 320:EQUD 160:EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 0:EQUD 0:EQUD 0:EQUD &B
E8j EQUD 480:EQUD 160:EQUD 160:EQUD 160:EQUD 320:EQUD 320:EQUD 160:EQUD 0:EQUD &B:EQUD &B:EQUD &B:EQUD &B
EBg EQUD 320:EQUD 160:EQUD 160:EQUD 160:EQUD 320:EQUD 0:EQUD 0:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B
ELc EQUD 0:EQUD 160:EQUD 0:EQUD 0:EQUD 160:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B
EVb EQUD &B:EQUD 0:EQUD &B:EQUD &B:EQUD 0:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E
E`d EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E
Ejd EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E
Etd EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E
E~d EQUD &E:EQUD &B:EQUD &E:EQUD &E:EQUD &B:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E:EQUD &E
E� 
E� 
E� .directive_ab
E� ADR R4,alien_bombs
E� MOV R15,R14
E� 
E�9 ;    Alien bullets are stored here .................
E� .alien_bombs
E�B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
E�B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
E�B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
E�B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
F
B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
F(B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
F2B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
F<B EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FFB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FPB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FZB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FdB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
FnB EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0  :EQUD 0:EQUD 0
Fx
F� .directive_byte
F� ADR R2,byte
F� MOV R15,R14
F� 
F�H ;  ALIEN SHIPS ADDRESSES stored here as well as info on these ships
F�
 .byte
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
F�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
GJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
GJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
GJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G"J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G,J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G6J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G@J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
GJJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
GTJ EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G�J EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
G�
G� .change_palette
G� LDR R1,palette_delay
H) SUBS R1,R1,#1 : STR R1,palette_delay
H MOVNE R15,R14
H' MOV R1,#100 : STR R1,palette_delay
H& 
H0 STMFD R13!,{R14}
H: LDRB R1,inc_or_dec
HD CMP R1,#1 : BLEQ increment
HN LDRB R1,inc_or_dec
HX CMP R1,#2 : BLEQ decrement
Hb
Hl LDRB R5,pal_red
Hv LDRB R6,pal_green
H� LDRB R7,pal_blue
H� BL eight_to_fifteen
H� LDMFD R13!,{R15}
H� 
H� .palette_delay EQUD 1
H� 
H� .increment
H� LDRB R2,colour
H� LDRB R1,rgb
H� ADD R1,R1,#1 : STRB R1,rgb
H�- CMP R2,#1 : �Q R5,R1 : STREQB R5,pal_red
H�/ CMP R2,#2 : �Q R6,R1 : STREQB R6,pal_green
H�. CMP R2,#3 : �Q R7,R1 : STREQB R7,pal_blue
I CMP R1,#16 : BNE pal_inc
I 
I9 ADR R3,pal_data : LDRB R4,pal_pointer : ADD R3,R3,R4
I % LDRB R5,[R3,#0] : STRB R5,colour
I*) LDRB R5,[R3,#1] : STRB R5,inc_or_dec
I4( CMP R5,#1 : �Q R5,#0 : MOVNE R5,#16
I> STRB R5,rgb
IH ADD R4,R4,#2
IR0 CMP R4,#16 : �Q R4,#0 : STRB R4,pal_pointer
I\
 .pal_inc
If MOV R15,R14
Ip 
Iz .decrement
I� LDRB R2,colour
I� LDRB R1,rgb
I� SUB R1,R1,#1 : STRB R1,rgb
I�- CMP R2,#1 : �Q R5,R1 : STREQB R5,pal_red
I�/ CMP R2,#2 : �Q R6,R1 : STREQB R6,pal_green
I�. CMP R2,#3 : �Q R7,R1 : STREQB R7,pal_blue
I� CMP R1,#0 : BNE pal_dec
I�
I�9 ADR R3,pal_data : LDRB R4,pal_pointer : ADD R3,R3,R4
I�% LDRB R5,[R3,#0] : STRB R5,colour
I�) LDRB R5,[R3,#1] : STRB R5,inc_or_dec
I�( CMP R5,#1 : �Q R5,#0 : MOVNE R5,#16
I� STRB R5,rgb
J ADD R4,R4,#2
J0 CMP R4,#16 : �Q R4,#0 : STRB R4,pal_pointer
J
 .pal_dec
J$ MOV R15,R14
J. 
J8 .pal_red    EQUB 16
JB .pal_green  EQUB 0
JL .pal_blue   EQUB 0
JV* .rgb        EQUB 0    ; range 0 to 16
J`< .colour     EQUB 2    ; chosen colour red,green or blue
JjA .inc_or_dec EQUB 1    ; increment or decrement chosen colour
Jt0 .pal_pointer EQUB 2   ; pointer to pal_data
J~ .pal_data  EQUB 2:EQUB 1:EQUB 3:EQUB 1:EQUB 1:EQUB 2:EQUB 3:EQUB 2:EQUB 3:EQUB 1:EQUB 1:EQUB 1:EQUB 2:EQUB 2:EQUB 3:EQUB 2
J�
 ALIGN
J� 
J� .eight_to_fifteen
J� MOV R1,#8
J� .next_colour
J�, MUL R2,R5,R1      ;  red = colour * red
J�0 MUL R3,R6,R1      ;  green = colour * green
J�. MUL R4,R7,R1      ;  blue = colour * blue
J� 
J� .write_palette
J� SWI &100+19
J�! MOV R0,R1         ;   colour
K SWI "OS_WriteC"
K
 SWI &100+16
K MOV R0,R2         ;   red
K SWI "OS_WriteC"
K(  MOV R0,R3         ;   green
K2 SWI "OS_WriteC"
K< MOV R0,R4         ;   blue
KF SWI "OS_WriteC"
KP 
KZ ADD R1,R1,#1
Kd CMP R1,#16
Kn BNE next_colour
Kx MOV R15,R14
K� 
K� 
K� .reset_lws
K�; ;  reset lives=3, score=0, wave=1   for  start of game
K� MOV R1,#1 : STRB R1,wave
K�! MOV R1,#49 : STRB R1,Cwave+1
K� MOV R1,#32 : STRB R1,Cwave
K�6 STRB R1,players_score   : STRB R1,players_score+1
K�6 STRB R1,players_score+2 : STRB R1,players_score+3
K� STRB R1,players_score+4
K�1 MOV R1,#0 : STR R1,score : STR R1,extra_ship
K�) MOV R1,#48 : STRB R1,players_score+5
K� B reset_lives
L
L .pause
L SWI &100+18
L" MOV R0,#0
L, SWI "OS_WriteC"
L6 MOV R0,#128
L@ SWI "OS_WriteC"
LJ	 .key
LTB MOV R0,#129 : LDR R1,hiscorekey : MOV R2,#255 : SWI "OS_Byte"
L^ CMP R1,#255 : BNE next_key
Lh' MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
Lr STMFD R13!,{R14}
L| LDR R1,screen_start
L� LDR R2,memory2_start
L� LDR R3,screen_end
L� BL store_screen
L� BL screen_wither
L� MOV R1,#0 : STRB R1,BHflag
L� BL wither_on_screen
L�	 .pc2
L�' MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
L� BL change_palette
L�2 MOV R0,#129:MOV R1,#1:MOV R2,#0:SWI "OS_Byte"
L� CMP R2,#0 : BNE pc2
L� BL screen_wither
L� MOV R3,#8
M .next_bit3
M LDR R1,memory2_start
M LDR R2,memory2_end
M& LDR R7,screen_start
M0E BL wither_memory    ;    wither memory contents &1E000 to &28000
M: SUBS R3,R3,#1
MD BNE next_bit3
MN LDR R1,memory2_start
MX LDR R2,screen_start
Mb LDR R3,memory2_end
Ml BL write_screen
Mv
M� LDMFD R13!,{R14}
M� .next_key
M�@ MOV R0,#129 : LDR R1,spacekey : MOV R2,#255 : SWI "OS_Byte"
M� CMP R1,#255 : BNE key
M� MOV R15,R14
M�F .spacekey   EQUD &FFFFFF9D        ; SPACE BAR - Inkey Value (-99)
M�F .hiscorekey EQUD &FFFFFFAB        ;         H - Inkey Value (-85)
M� 
M� .game_over
M� BL print_lives
M�' MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
M� SWI "OS_RemoveCursors"
M� SWI &100+18
N MOV R0,#0
N SWI "OS_WriteC"
N MOV R0,#128
N  SWI "OS_WriteC"
N*
N4 SWI &100+31
N> MOV R0,#16
NH SWI "OS_WriteC"
NR MOV R0,#14
N\ SWI "OS_WriteC"
Nf SWI "OS_WriteS"
Np  EQUS ("GAME OVER") : EQUB 0
Nz 
N�< ;   check if score is to be inserted into hiscore table
N� ADR R1,scores
N� BL directive_players_score
N� MOV R8,#0
N� .check_score
N�6 MOV R5,#6                ;  6 characters in score
N� MOV R3,R1
N� MOV R4,R2
N� .next_char
N� LDRB R6,[R3],#1
N� LDRB R7,[R4],#1
N� CMP R6,R7
N� BGT next_score
O BLT score_in
O SUBEQS R5,R5,#1
O BNE next_char
O$> B score_in               ;  insert score in hiscore table
O. .next_score
O8/ ADD R8,R8,#1             ;  flag for names
OB CMP R8,#10 : BEQ score_out
OL ADD R1,R1,#8
OV B check_score
O` .score_in
Oj
Ot BL enter_name
O~
O�; CMP R8,#9 : BEQ store_name   ; bottom of hiscore table
O�H .move_table                  ; move scores < players score down one
O� MOV R6,#8
O� .move_names
O�1 ADR  R1,names : MOV R9,#16 : MLA R1,R9,R6,R1
O� MOV R5,#15
O� .next_nchar
O� LDRB R4,[R1],#1
O� STRB R4,[R1,#15]
O� SUBS R5,R5,#1
O� BNE next_nchar
O� SUB R6,R6,#1 : CMP R6,R8
P BGE move_names
P
 
P MOV R6,#8
P .move_scores
P(1 ADR  R1,scores : MOV R9,#8 : MLA R1,R9,R6,R1
P2 MOV R5,#6
P< .next_schar
PF LDRB R4,[R1],#1
PP STRB R4,[R1,#7]
PZ SUBS R5,R5,#1
Pd BNE next_schar
Pn SUB R6,R6,#1 : CMP R6,R8
Px BGE move_scores
P� 
P�7 .store_name                  ;  store players name
P�0 ADR R1,names : MOV R9,#16 : MLA R1,R9,R8,R1
P� ADR R2,players_name
P� MOV R3,#15
P� .next_char
P� LDRB R4,[R2],#1
P�B CMP R4,#&D        ;   string entered is terminated by � char.
P� BEQ spaces
P� STRB R4,[R1],#1
P� SUBS R3,R3,#1
P� BNE next_char
P� B store_score
Q; .spaces           ;   blanks out rest of previous name
Q MOV R4,#32
Q STRB R4,[R1],#1
Q" SUBS R3,R3,#1
Q, BNE spaces
Q6 
Q@8 .store_score                 ;  store players score
QJ0 ADR R1,scores : MOV R9,#8 : MLA R1,R9,R8,R1
QT BL directive_players_score
Q^ MOV R3,#6
Qh .next_byte
Qr LDRB R4,[R2],#1
Q| STRB R4,[R1],#1
Q� SUBS R3,R3,#1
Q� BNE next_byte
Q� B name_entered
Q� 
Q�> .score_out        ;   score not inserted in hiscore table
Q� SWI &100+31
Q� MOV R0,#7
Q� SWI "OS_WriteC"
Q� MOV R0,#27
Q� SWI "OS_WriteC"
Q� SWI "OS_WriteS"
Q�2 EQUS ("<Press any key to continue>") : EQUB 0
Q�/ MOV R0,#15:MOV R1,#0:SWI "OS_Byte" : SWI 4
R
R .name_entered
R BL screen_wither
R& MOV R1,#0 : STRB R1,BHflag
R0 BL wither_on_screen
R: .pc
RD' MOV R0,#15:MOV R1,#0:SWI "OS_Byte"
RN BL change_palette
RX2 MOV R0,#129:MOV R1,#1:MOV R2,#0:SWI "OS_Byte"
Rb CMP R2,#0 : BNE pc
Rl BL screen_wither
Rv MOV R1,#1 : STRB R1,BHflag
R� BL wither_on_screen
R�
R� B game_start
R� 
R� .enter_name
R� SWI &100+31
R� MOV R0,#5
R� SWI "OS_WriteC"
R� MOV R0,#24
R� SWI "OS_WriteC"
R� SWI "OS_WriteS"
R�( EQUS ("Enter your name: ") : EQUB 0
R� 
S ADR R0,players_name
S MOV R1,#15
S MOV R2,#32
S  MOV R3,#126
S* SWI "OS_ReadLine"
S4 MOV R15,R14
S>+ .players_name  EQUS "----- NICK -----"
SHH .BHflag EQUB 0 : ALIGN    ;  � =0 print hiscores � � =1 plot border
SR
S\ .wither_on_screen
SfA ;   set up bank 2 for display to allow bank 1 to be accessed
Sp) MOV R0,#112        ;    write bank 2
Sz MOV R1,#2
S� SWI "OS_Byte"
S�
S� SWI &100+12        ;    �
S�
S�+ MOV R0,#113        ;    display bank 2
S� MOV R1,#2
S� SWI "OS_Byte"
S� 
S�7 ;   bank 1 is SCREEN SHADOW � starting at &1FD8000
S�) MOV R0,#112        ;    write bank 1
S� MOV R1,#1
S� SWI "OS_Byte"
S� STMFD R13!,{R14}
T LDRB R1,BHflag : CMP R1,#1
T BEQ wither_on_border
T? BL plot_screen           ;    plot hiscore graphics screen
T$A BL hiscore_table         ;    print hiscore table off screen
T. B wither_on_hiscores
T8 .wither_on_border
TB9 BL plot_border           ;    plot border off screen
TLD BL reset_lws             ;    resets   lives=3, score=0, wave=1
TV BL print_lives
T` BL print_score
Tj BL plot_wave
Tt BL initial_stars
T~ .wither_on_hiscores
T� LDR R1,screen_start
T� LDR R2,memory_start
T� LDR R3,screen_end
T�? BL store_screen      ;    store away screen to be withered
T� LDMFD R13!,{R14}
T�
T�6 SWI &100+18          ;    reset background colour
T� MOV R0,#0
T� SWI "OS_WriteC"
T� MOV R0,#128
T� SWI "OS_WriteC"
T�/ SWI &100+12          ;    � - clear bank 1
U- MOV R0,#113          ;    display bank 1
U
 MOV R1,#1
U SWI "OS_Byte"
U 
U( STMFD R13!,{R14}
U2 MOV R3,#8
U< .next_bit
UF LDR R1,memory_start
UP LDR R2,memory_end
UZ LDR R7,screen_start
UdF BL wither_memory     ;    wither memory contents &14000 to &1E000
Un SUBS R3,R3,#1
Ux BNE next_bit
U� LDR R1,memory_start
U� LDR R2,screen_start
U� LDR R3,memory_end
U� BL write_screen
U� LDMFD R13!,{R14}
U� MOV R15,R14
U� 
U� .hiscore_table
U� MOV R0,#4
U� MOV R1,#320
U� MOV R2,#872
U� SWI "OS_Plot"
U� SWI "OS_WriteS"
V) EQUS ("Top scores so far:") : EQUB 0
V 
V) MOV R5,#10         ;  top ten scores
V"  MOV R6,#11         ;  X TAB
V,, ADR R1,scores      ;  pointer to scores
V6+ ADR R2,names       ;  pointer to names
V@ .hsloop
VJ 
VT SWI &100+31
V^ MOV R0,#9
Vh SWI "OS_WriteC"
Vr MOV R0,R6
V| SWI "OS_WriteC"
V� 
V� MOV R0,R1
V� SWI "OS_Write0"
V� MOV R1,R0
V� MOV R0,R2
V� SWI "OS_Write0"
V� MOV R2,R0
V� ADD R6,R6,#1
V� 
V� SUBS R5,R5,#1
V� BNE hsloop
V� 
V� MOV R0,#4
W MOV R1,#208
W MOV R2,#104
W SWI "OS_Plot"
W& SWI "OS_WriteS"
W02 EQUS ("<Press any key to continue>") : EQUB 0
W:
WD MOV R15,R14
WN 
WX .scores
Wb% EQUS " 30000" : EQUB 32 : EQUB 0
Wl% EQUS " 20000" : EQUB 32 : EQUB 0
Wv% EQUS " 10000" : EQUB 32 : EQUB 0
W�% EQUS "  7000" : EQUB 32 : EQUB 0
W�% EQUS "  6000" : EQUB 32 : EQUB 0
W�% EQUS "  5000" : EQUB 32 : EQUB 0
W�% EQUS "  4000" : EQUB 32 : EQUB 0
W�% EQUS "  3000" : EQUB 32 : EQUB 0
W�% EQUS "  2000" : EQUB 32 : EQUB 0
W�% EQUS "  1000" : EQUB 32 : EQUB 0
W�
 ALIGN
W� 
W� .names
W�$ EQUS "--ACCEPTABLE   " : EQUB 0
W�$ EQUS "--AVERAGE      " : EQUB 0
W�$ EQUS "--MEDICORE     " : EQUB 0
X$ EQUS "--NOT QUITE    " : EQUB 0
X$ EQUS "--TRY HARDER   " : EQUB 0
X$ EQUS "--POOR         " : EQUB 0
X $ EQUS "--SLOPPY       " : EQUB 0
X*$ EQUS "--MISERABLE    " : EQUB 0
X4$ EQUS "--TERRIBLE     " : EQUB 0
X>$ EQUS "--PATHETIC     " : EQUB 0
XH
 ALIGN
XR 
X\ .screen_wither
Xf MOV R3,#8
Xp LDR R2,screen_end
Xz .scr_shift
X� LDR R1,screen_start
X� .scr_shift2
X� LDR R4,[R1],#4
X�. LDRB R5,count : CMP R5,#2 : BEQ scr_right
X� MOV R4,R4,LSL #4
X� STR R4,[R1,#-4]
X�C LDRB R7,count2 : SUBS R7,R7,#1 : STRB R7,count2 : BNE scr_left
X�  MOV R7,#40 : STRB R7,count2
X�! ADD R5,R5,#1 : STRB R5,count
X� B scr_left
X� .scr_right
X� MOV R4,R4,LSR #4
X� STR R4,[R1,#-4]
YC LDRB R7,count2 : SUBS R7,R7,#1 : STRB R7,count2 : BNE scr_left
Y  MOV R7,#40 : STRB R7,count2
Y! SUB R5,R5,#1 : STRB R5,count
Y$ .scr_left
Y. CMP R1,R2
Y8 BNE scr_shift2
YB SUBS R3,R3,#1
YL BNE scr_shift
YV MOV R15,R14
Y` 
Yj .wither_memory
Yt .mem_shift
Y~ LDR R4,[R1],#4
Y�. LDRB R5,count : CMP R5,#2 : BEQ mem_right
Y� MOV R8,R3
Y� .mem_left2
Y� MOV R4,R4,LSL #4
Y�" SUBS R8,R8,#1 : BNE mem_left2
Y� STR R4,[R7],#4
Y�C LDRB R6,count2 : SUBS R6,R6,#1 : STRB R6,count2 : BNE mem_left
Y�  MOV R6,#40 : STRB R6,count2
Y�! ADD R5,R5,#1 : STRB R5,count
Y� B mem_left
Y� .mem_right
Y� MOV R8,R3
Z .mem_right2
Z
 MOV R4,R4,LSR #4
Z# SUBS R8,R8,#1 : BNE mem_right2
Z STR R4,[R7],#4
Z(C LDRB R6,count2 : SUBS R6,R6,#1 : STRB R6,count2 : BNE mem_left
Z2  MOV R6,#40 : STRB R6,count2
Z<! SUB R5,R5,#1 : STRB R5,count
ZF .mem_left
ZP CMP R1,R2
ZZ BNE mem_shift
Zd MOV R15,R14
Zn 
ZxC .count EQUB 1                ;  1 = leftshift , 2 = rightshift
Z�B .count2 EQUB 40              ;  40 = 1 line,40 words per line
Z�
 ALIGN
Z� 
Z� .store_screen
Z� LDR R4,[R1],#4
Z� STR R4,[R2],#4
Z� CMP R1,R3
Z� BLT store_screen
Z� MOV R15,R14
Z� 
Z� .write_screen
Z� LDR R4,[R1],#4
Z� STR R4,[R2],#4
[ CMP R1,R3
[ BLT write_screen
[ MOV R15,R14
[" 
[,! .screen_start  EQUD &1FD8000
[6 .memory_start  EQUD memory
[@% .memory2_start EQUD memory+&A000
[J! .screen_end    EQUD &1FE2000
[T& .memory2_end   EQUD memory+&14000
[^% .memory_end    EQUD memory+&A000
[h 
[r .plot_border
[| MOV R0,#34
[� ADR R2,sprite
[� LDR R3,X_Coordinate
[� LDR R4,Y_Coordinate
[�$ MOV R5,#0            ; � action
[� SWI "OS_SpriteOp"
[� MOV R15,R14
[�- .sprite EQUS "GAMESCR" : EQUB 32 : ALIGN
[� .X_Coordinate EQUD 0
[� .Y_Coordinate EQUD 0
[� 
[� .plot_screen
[� MOV R0,#34
[� ADR R2,sprite2
\ LDR R3,X_Coordinate
\ LDR R4,Y_Coordinate
\$ MOV R5,#0            ; � action
\& SWI "OS_SpriteOp"
\0 MOV R15,R14
\:, .sprite2 EQUS "HISCR" : EQUB 32 : ALIGN
\D
\N .increase_score
\X+ LDR R1,score : LDRB R2,score_increment
\b MOV R3,#10 : MUL R3,R2,R3
\l  ADD R1,R1,R3 : STR R1,score
\v LDR R4,extra_ship
\�% ADD R4,R4,R3 : STR R4,extra_ship
\�% CMP R4,#4000 : BLT no_extra_ship
\�" MOV R4,#0 : STR R4,extra_ship
\� STMFD R13!,{R14,R1-R3}
\� BL lives_plus
\� BL print_lives
\� LDMFD R13!,{R14,R1-R3}
\�
\�4 ;  score range = 999990, steps of 10,20......90
\�
\� .no_extra_ship
\� ADR R1,players_score+4
\� .next_num
] LDRB R3,[R1]
] CMP R3,#32 : BNE no_space
]! ADD R3,R2,#48 : STRB R3,[R1]
]  B print_score
]* .no_space
]4 ADD R3,R3,#1
]> CMP R3,#58 : BNE next_inc
]H MOV R3,#48
]R" LDRB R4,[R1,#-1] : CMP R4,#32
]\2 �Q R4,#49 : ADDNE R4,R4,#1 : STRB R4,[R1,#-1]
]f .next_inc
]p STRB R3,[R1]
]z! SUBS R2,R2,#1 : BNE no_space
]� .check_nine
]� LDRB R4,[R1,#-1]!
]�! CMP R4,#58 : BLT print_score
]� MOV R3,#48 : STRB R3,[R1]
]�" LDRB R4,[R1,#-1] : CMP R4,#32
]�2 �Q R4,#49 : ADDNE R4,R4,#1 : STRB R4,[R1,#-1]
]� B check_nine
]� .print_score
]� SWI &100+18
]� MOV R0,#3
]� SWI "OS_WriteC"
]� MOV R0,#136
]� SWI "OS_WriteC"
^ SWI &100+18
^ MOV R0,#0
^ SWI "OS_WriteC"
^$ MOV R0,#3
^. SWI "OS_WriteC"
^8
^B MOV R0,#4
^L MOV R1,#832
^V MOV R2,#908
^` SWI "OS_Plot"
^j
^t ADR R0,blank_score
^~ SWI "OS_Write0"
^� MOV R15,R14
^� .score EQUD 0
^� .extra_ship EQUD 0
^�I .blank_score   EQUB 127:EQUB 127:EQUB 127:EQUB 127:EQUB 127:EQUB 127
^�* .players_score EQUS "     0" : EQUB 0
^�2 .score_increment EQUB 1      ;  value >1 � <9
^�
 ALIGN
^�
^� .directive_players_score
^� ADR R2,players_score
^� MOV R15,R14
^�
_ .directive_pattern
_
 ADR R3,pattern
_ MOV R15,R14
_
_(
 .pattern
_2% EQUB 0     ;   initial  position
_<J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_FJ EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_PJ EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_ZJ EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_dJ EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_nJ EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_xJ EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�. EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�) EQUB 32      ; end of pattern marker
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
_�J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`"J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`,J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`6J EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`@. EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0:EQUB 0
`J) EQUB 32      ; end of pattern marker
`T
 ALIGN
`^
`h
`rH ; *****************************************************************
`| .next_wave
`�2 MOV R1,#1 : STRB R1,wave_finished     ;   set
`� BL clear_screen
`� SWI &100+18
`� MOV R0,#3
`� SWI "OS_WriteC"
`� MOV R0,#3
`� SWI "OS_WriteC"
`� BL wave_counter
`�6 LDRB R1,wave : CMP R1,#22    ; waves end sequence
`� �Q R1,#1 : STREQB R1,wave : BLEQ reset_var_addr    ;  repeats waves,   resets wave to 1 so end of sequence can be found to reset waves
`� BL print_wave
`� BL plot_wave
`� BL prepare_wave
aH MOV R0,#1        ;  Flag to prevent changes to bullets and usership
a BL init_wave_vars
a5 MOV R1,#0 : STRB R1,wave_finished     ;   cancel
a& B display
a0 .wave_finished EQUB 0
a:
 ALIGN
aD
aN .load_wave_finished
aX LDRB R1,wave_finished
ab MOV R15,R14
alH ; *****************************************************************
av
a�	 .end
a� LDMFD R13!,{R15}
a�
a�
a�T ;  clear existing bombs yet, are still lethal although alien ship have vanished
a�
a� .clear_screen
a� STMFD R13!,{R14}
a� .next_moves
a� BL move_stars
a� BL drop_bombs
a� BL explosion_check
a� BL bomb_explo_check
b BL cluster_check
b
 BL inner
b7 BL load_dead : CMP R1,#1 : BLEQ usership_explosion
b , BL load_dead : CMP R1,#1 : BEQ  no_keys
b* BL test_keypress
b4
 .no_keys
b> MOV R5,#280 : BL slow1
bH BL directive_alien_bombs
bR CMP R1,#0 :BNE next_moves
b\
bfG ; A loop of 260 as cluster explosion has 26 frames & a delay of 20
bp� ; So a saftey loop to make sure everything is counted for especially the  alien explosions as there is no counter for them to see if there is any left
bz
b�$ MOV R1,#260 : STR R1,final_loop
b� .final_screen_clear
b� BL move_stars
b� BL drop_bombs
b� BL explosion_check
b� BL bomb_explo_check
b� BL cluster_check
b�
 BL inner
b�7 BL load_dead : CMP R1,#1 : BLEQ usership_explosion
b�- BL load_dead : CMP R1,#1 : BEQ  no_keys2
b� BL test_keypress
b� .no_keys2
b� MOV R5,#380 : BL slow1
c LDR R1,final_loop
c SUBS R1,R1,#1
c STR R1,final_loop
c$ BNE final_screen_clear
c. LDMFD R13!,{R15}
c8 .final_loop EQUD 260
cB
cL .prepare_wave
cV LDR R1,time_out
c` .wave_delay
cj STMFD R13!,{R1,R14}
ct BL move_stars
c~ BL change_palette
c�3 BL load_no_of_bullets : CMP R2,#0 : BLNE inner
c�. MOV R5,#400 : BL slow1 : BL test_keypress
c� LDMFD R13!,{R1,R14}
c�# SUBS R1,R1,#1 : BNE wave_delay
c� SWI &100+18
c� MOV R0,#3
c� SWI "OS_WriteC"
c� MOV R0,#3
c� SWI "OS_WriteC"
c�% STMFD R13!,{R14} : BL print_wave
c� LDMFD R13!,{R15}
c� .time_out EQUD 700
d
d
 .wave_counter
d5 LDRB R0,Cwave+1 : ADD R0,R0,#1 : STRB R0,Cwave+1
d  CMP R0,#58 : BNE count_done
d(! MOV R0,#48 : STRB R0,Cwave+1
d2 LDRB R0,Cwave : CMP R0,#32
d<  �Q R0,#49 : STREQB R0,Cwave
dF% ADDNE R0,R0,#1 : STRNEB R0,Cwave
dP .count_done
dZ0 LDRB R0,wave  : ADD R0,R0,#1 : STRB R0,wave
dd MOV R15,R14
dn
dx .print_wave
d� SWI &100+31
d� MOV R0,#10
d� SWI "OS_WriteC"
d� MOV R0,#15
d� SWI "OS_WriteC"
d� SWI "OS_WriteS"
d�( EQUS ("PREPARE FOR WAVE ") : EQUB 0
d�
d� LDRB R0,Cwave
d� SWI "OS_WriteC"
d� LDRB R0,Cwave+1
d� SWI "OS_WriteC"
d� MOV R15,R14
e
e .plot_wave
e SWI &100+18
e" MOV R0,#3
e, SWI "OS_WriteC"
e6 MOV R0,#136
e@ SWI "OS_WriteC"
eJ SWI &100+18
eT MOV R0,#0
e^ SWI "OS_WriteC"
eh MOV R0,#3
er SWI "OS_WriteC"
e| MOV R0,#4
e�" MOV R1,#1000 : ADD R1,R1,#160
e� MOV R2,#880
e� SWI "OS_Plot"
e� ADR R0,Bwave
e� SWI "OS_Write0"
e� MOV R15,R14
e�
e� .wave  EQUB 1
e� .Bwave EQUB 127:EQUB 127
e� .Cwave EQUS " 1" : EQUB 0
e�
 ALIGN
e�
e� .init_wave_vars
f LDR R1,var_addr
f STR R1,var_addr2
f B new_wave
f& .repeat_wave
f0 LDR R1,var_addr2
f: .new_wave
fD/ LDRB R2,[R1],#1  : STRB R2,score_increment
fN LDRB R2,[R1],#1
fX LDRB R3,[R1],#1
fb LDRB R4,[R1],#1
fl LDRB R5,[R1],#1
fv LDRB R6,[R1],#1
f� LDRB R7,[R1],#1
f� LDRB R8,[R1],#1
f� LDRB R9,[R1],#1
f� LDRB R10,[R1],#1
f�E STMFD R13!,{R14,R1} : BL program_variables : LDMFD R13!,{R14,R1}
f�
f�2 ;   initialise byte, 12 bytes for each sprite
f� SUB R10,R10,#2
f�  MOV R8,#12 : MUL R11,R8,R10
f�> LDRB R8,[R1],#1     ; how many different sprites onscreen
f�; MOV R7,R1 : ADD R1,R1,#9    ; each sprite has a number
f�> LDR R3,[R1],#4      ; if different then sprites are split
f� LDR R4,[R1],#4
g LDR R5,[R1],#4
g LDR R6,[R1],#4
g> STR R1,var_addr    ; stores current position in variables
g  MVN  R9,#0
g* MOV R1,#0
g4< STMFD R13!,{R14} : BL directive_byte : LDMFD R13!,{R14}
g>
 .loop
gH)                    ;    first sprite
gR ADD R9,R9,#1
g\ LDRB R10,[R7,R9]
gf CMP R9,R8 : MVNEQ R9,#0
gp STR R3,[R2,#0]
gz STR R10,[R2,#4]
g� STR R5,[R2,#8]
g�*                    ;    second sprite
g� ADD R9,R9,#1
g� LDRB R10,[R7,R9]
g� CMP R9,R8 : MVNEQ R9,#0
g� STR R4,[R2,#12]
g� STR R10,[R2,#16]
g� STR R6,[R2,#20]
g�
g�- ADD R2,R2,#24:ADD R1,R1,#24 : CMP R1,R11
g�
 BLS loop
g� .mainloop
g�- MOV R8,#0                    ; sprite_no
h� MOV R9,#0 :MOV R10,#0        ; pattern bytes pointer,  R9 - set to current sprite added to offset to give final result in R10
h
h LDR R1,var_addr
h$ LDRB R2,[R1],#1
h. BNV end:BNV end
h8 ADR R3,pattern
hB .pattern_write
hL LDRB R4,[R1],#1
hV STRB R4,[R3],#1
h` SUBS R2,R2,#1
hj BNE pattern_write
ht STR R1,var_addr
h~ MOV R15,R14
h�
h� .reset_var_addr
h� ADR R1,variables
h� STR R1,var_addr
h� STR R1,var_addr2
h� MOV R15,R14
h� 
h� .var_addr  EQUD variables
h� .var_addr2 EQUD variables
h�
h� .variables
h� 
i ; **********   WAVE 1
i
 EQUB 1
iU EQUB 0 : EQUB 0 : EQUB 20 : EQUB 3 : EQUB 1 : EQUB 94 : EQUB 7 : EQUB 7 :EQUB 35
i EQUB 0
i(S EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
i24 EQUD &1FD8000 : EQUD &1FD8000 : EQUD 0 : EQUD 0
i< ; pattern
iF EQUB 95
iP EQUB 0
iZL EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27
idL EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 26:EQUB 26
inL EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17
ixU EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 8
i�_ EQUB 5:EQUB 5:EQUB 5:EQUB 5:EQUB 6:EQUB 6:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
i�V EQUB 6:EQUB 6:EQUB 6:EQUB 5:EQUB 5:EQUB 5:EQUB 40:EQUB 40:EQUB 40:EQUB 40:EQUB 40
i�L EQUB 40:EQUB 40:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 49:EQUB 49:EQUB 49
i�L EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 58:EQUB 58:EQUB 58
i�L EQUB 58:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
i�$ EQUB 59:EQUB 59:EQUB 59:EQUB 59
i� EQUB 32
i�
i�
i� ; **********   WAVE 2
i� EQUB 1
i�W EQUB 0 : EQUB 0 : EQUB 25 : EQUB 2 : EQUB 2 : EQUB 101 : EQUB 3 : EQUB 3 : EQUB 36
i� EQUB 1
jS EQUB 1 : EQUB 2 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
j5 EQUD &1FDE188 : EQUD &1FDCD76 : EQUD 0 : EQUD 52
j
 EQUB 103
j" EQUB 0
j,, EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
j6+ EQUB 50:EQUB 50:EQUB 2:EQUB 18:EQUB 18
j@L EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17
jJ< EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17:EQUB 17
jT9 EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 3:EQUB 3:EQUB 3
j^$ EQUB 50:EQUB 50:EQUB 50:EQUB 50
jhD EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49:EQUB 49
jr# EQUB 50:EQUB 50:EQUB 2:EQUB 18
j| EQUB 32
j� EQUB 0
j�# EQUB 54:EQUB 4:EQUB 22:EQUB 22
j�D EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21:EQUB 21
j�$ EQUB 54:EQUB 54:EQUB 54:EQUB 54
j�9 EQUB 7:EQUB 7:EQUB 7:EQUB 54:EQUB 54:EQUB 54:EQUB 54
j�< EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53
j�L EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53:EQUB 53
j�+ EQUB 54:EQUB 54:EQUB 6:EQUB 22:EQUB 22
j�, EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
j� EQUB 32:EQUB 0
j�
j�
j� ; **********   WAVE 3
k EQUB 1
kV EQUB 0 : EQUB 0 : EQUB 25 : EQUB 3 : EQUB 2 : EQUB 125 : EQUB 6 : EQUB 7: EQUB 36
k EQUB 0
k&S EQUB 8 : EQUB 0 : EQUB 1 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
k05 EQUD &1FE12E7 : EQUD &1FE136F : EQUD 0 : EQUD 67
k:
 EQUB 127
kD EQUB 0
kND EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56
kX4 EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56
kb
klD EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40:EQUB 56:EQUB 56:EQUB 40
kv$ EQUB 56:EQUB 40:EQUB 57:EQUB 57
k�D EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 58:EQUB 58:EQUB 58
k� EQUB 3:EQUB 3
k�D EQUB 26:EQUB 26:EQUB 26:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
k�$ EQUB 25:EQUB 25:EQUB 24:EQUB 24
k�D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
k�D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
k� EQUB 32
k� EQUB 0
k�D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
k�D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
k�$ EQUB 56:EQUB 56:EQUB 61:EQUB 61
k�D EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 62:EQUB 62:EQUB 62
k� EQUB 7:EQUB 7
lD EQUB 30:EQUB 30:EQUB 30:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
l$ EQUB 29:EQUB 29:EQUB 24:EQUB 24
lD EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
l D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
l* EQUB 32:EQUB 0
l4
l>
lH ; **********   WAVE 4
lR EQUB 1
l\U EQUB 0 : EQUB 0 : EQUB 25 : EQUB 3 : EQUB 2 : EQUB 61 : EQUB 1 : EQUB 1: EQUB 35
lf EQUB 1
lpS EQUB 3 : EQUB 4 : EQUB 1 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
lz5 EQUD &1FDBB68 : EQUD &1FDD950 : EQUD 0 : EQUD 32
l� EQUB 63
l� EQUB 0
l�I EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 3:EQUB 3:EQUB 3
l�I EQUB 50:EQUB 50:EQUB 50:EQUB 50:EQUB 50:EQUB 50:EQUB 3:EQUB 3:EQUB 3
l�I EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 18:EQUB 3:EQUB 3:EQUB 3
l� EQUB 50:EQUB 50
l� EQUB 32
l� EQUB 0
l� EQUB 22:EQUB 22
l�I EQUB 7:EQUB 7:EQUB 7:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54
l�I EQUB 7:EQUB 7:EQUB 7:EQUB 22:EQUB 22:EQUB 22:EQUB 22:EQUB 22:EQUB 22
l�I EQUB 7:EQUB 7:EQUB 7:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54:EQUB 54
l� EQUB 32:EQUB 0
m
m
m ; **********   WAVE 5
m$ EQUB 1
m.V EQUB 0 : EQUB 0 : EQUB 25 : EQUB 3 : EQUB 3 : EQUB 107 : EQUB 8 : EQUB 8 :EQUB 35
m8 EQUB 0
mBS EQUB 9 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
mL4 EQUD &1FE0209 : EQUD &1FE0209 : EQUD 0 : EQUD 0
mV
 EQUB 111
m` EQUB 0
mjT EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 51:EQUB 51:EQUB 51:EQUB 43:EQUB 43:EQUB 43
mt EQUB 3:EQUB 3
m~T EQUB 11:EQUB 11:EQUB 11:EQUB 19:EQUB 19:EQUB 19:EQUB 27:EQUB 27:EQUB 27:EQUB 27
m�4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
m�T EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 55:EQUB 55:EQUB 55:EQUB 47:EQUB 47:EQUB 47
m� EQUB 7:EQUB 7
m�T EQUB 15:EQUB 15:EQUB 15:EQUB 23:EQUB 23:EQUB 23:EQUB 31:EQUB 31:EQUB 31:EQUB 31
m�4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
m�T EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 51:EQUB 51:EQUB 51:EQUB 43:EQUB 43:EQUB 43
m� EQUB 3:EQUB 3
m�T EQUB 11:EQUB 11:EQUB 11:EQUB 19:EQUB 19:EQUB 19:EQUB 27:EQUB 27:EQUB 27:EQUB 27
m�4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
m�T EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 55:EQUB 55:EQUB 55:EQUB 47:EQUB 47:EQUB 47
m� EQUB 7:EQUB 7
m�T EQUB 15:EQUB 15:EQUB 15:EQUB 23:EQUB 23:EQUB 23:EQUB 31:EQUB 31:EQUB 31:EQUB 31
n! EQUB 32:EQUB 0:EQUB 0:EQUB 0
n

n
n ; **********   WAVE 6
n( EQUB 2
n2V EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 103 : EQUB 6 : EQUB 6: EQUB 40
n< EQUB 1
nFS EQUB 3 : EQUB 4 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
nP4 EQUD &1FE12E7 : EQUD &1FE12E7 : EQUD 0 : EQUD 0
nZ
 EQUB 107
nd EQUB 0
nnB EQUB 3:EQUB 3:EQUB 42:EQUB 42:EQUB 42:EQUB 42:EQUB 42:EQUB 42
nx EQUB 42:EQUB 42:EQUB 42
n�$ EQUB 57:EQUB 57:EQUB 57:EQUB 57
n� EQUB 56:EQUB 56:EQUB 56
n�$ EQUB 61:EQUB 61:EQUB 61:EQUB 61
n�$ EQUB 46:EQUB 46:EQUB 46:EQUB 46
n�$ EQUB 54:EQUB 54:EQUB 54:EQUB 54
n�$ EQUB 49:EQUB 49:EQUB 49:EQUB 49
n� EQUB 56:EQUB 56:EQUB 56
n�$ EQUB 53:EQUB 53:EQUB 53:EQUB 53
n�$ EQUB 50:EQUB 50:EQUB 50:EQUB 50
n�. EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
n�. EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
n�$ EQUB 18:EQUB 18:EQUB 18:EQUB 18
n�$ EQUB 21:EQUB 21:EQUB 21:EQUB 21
o$ EQUB 24:EQUB 24:EQUB 24:EQUB 24
o$ EQUB 17:EQUB 17:EQUB 17:EQUB 17
o$ EQUB 22:EQUB 22:EQUB 22:EQUB 22
o"$ EQUB 14:EQUB 14:EQUB 14:EQUB 14
o,$ EQUB 23:EQUB 23:EQUB 23:EQUB 23
o6 EQUB 24:EQUB 24:EQUB 24
o@$ EQUB 25:EQUB 25:EQUB 25:EQUB 25
oJ EQUB 10:EQUB 10:EQUB 10
oT4 EQUB 10:EQUB 10:EQUB 10:EQUB 10:EQUB 10:EQUB 10
o^  EQUB 3:EQUB 3:EQUB 3:EQUB 3
oh EQUB 32
or
o|
o� ; **********   WAVE 7
o� EQUB 2
o�W EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 124 : EQUB 6 : EQUB 6 : EQUB 40
o� EQUB 1
o�S EQUB 7 : EQUB 9 : EQUB 1 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
o�4 EQUD &1FD8000 : EQUD &1FD8000 : EQUD 0 : EQUD 0
o�
 EQUB 127
o� EQUB 0
o�D EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26
o�4 EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26:EQUB 26
o�D EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
o�4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
o�D EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
p. EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 5
p\ EQUB 13:EQUB 13:EQUB 13:EQUB 13:EQUB 8:EQUB 8:EQUB 8:EQUB 8:EQUB 9:EQUB 9:EQUB 9:EQUB 9
pC EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
p&< EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
p0d EQUB 41:EQUB 41:EQUB 41:EQUB 41:EQUB 40:EQUB 40:EQUB 40:EQUB 40:EQUB 45:EQUB 45:EQUB 45:EQUB 45
p:' EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
pDD EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
pN4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
pXD EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
pb4 EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58
pl< EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58:EQUB 58
pv EQUB 32:EQUB 0:EQUB 0
p�
p� 
p� ; **********   WAVE 8
p� EQUB 2
p�U EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 82 : EQUB 7 : EQUB 7 :EQUB 40
p� EQUB 1
p�S EQUB 4 : EQUB 9 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
p�4 EQUD &1FDD507 : EQUD &1FDD507 : EQUD 0 : EQUD 0
p� EQUB 83
p� EQUB 0
p�  EQUB 3:EQUB 3:EQUB 3:EQUB 3
p�< EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
p�4 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
q5 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
q< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
q4 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
q  EQUB 3:EQUB 3:EQUB 3
q* EQUB 24:EQUB 24:EQUB 16
q4 EQUB 7:EQUB 7:EQUB 7
q>4 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
qH4 EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
qR5 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
q\4 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
qf4 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
qp  EQUB 7:EQUB 7:EQUB 7:EQUB 7
qz EQUB 32
q�
q�
q� ; **********   WAVE 9
q� EQUB 2
q�V EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 66 : EQUB 3 : EQUB 3 : EQUB 40
q� EQUB 1
q�S EQUB 7 : EQUB 9 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
q�5 EQUD &1FE14C8 : EQUD &1FE154C : EQUD 0 : EQUD 39
q� EQUB 67
q� EQUB 0
q�L EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
q�L EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
q�L EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
rL EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
r EQUB 32
r EQUB 0
r$L EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
r.L EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
r8L EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
rB EQUB 32
rL
rV
r` ; **********   WAVE 10
rj EQUB 3
rtV EQUB 4 : EQUB 0 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 91 : EQUB 8 : EQUB 8 : EQUB 50
r~ EQUB 1
r�S EQUB 5 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
r�5 EQUD &1FD8046 : EQUD &1FD8046 : EQUD 0 : EQUD 47
r� EQUB 95
r� EQUB 0
r�L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
r�4 EQUB 30:EQUB 30:EQUB 29:EQUB 26:EQUB 26:EQUB 26
r�< EQUB 30:EQUB 31:EQUB 31:EQUB 30:EQUB 30:EQUB 27:EQUB 27
r� EQUB 7
r�D EQUB 31:EQUB 31:EQUB 31:EQUB 30:EQUB 30:EQUB 27:EQUB 27:EQUB 27
r� EQUB 7
r�L EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 30:EQUB 30:EQUB 27:EQUB 27:EQUB 27
r� EQUB 7
s EQUB 31:EQUB 31
s
 EQUB 32
sL EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
s4 EQUB 26:EQUB 26:EQUB 25:EQUB 30:EQUB 30:EQUB 30
s( EQUB 3
s2< EQUB 26:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 30:EQUB 30
s< EQUB 3
sFD EQUB 27:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 31:EQUB 31:EQUB 31
sP EQUB 3
sZL EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 26:EQUB 26:EQUB 31:EQUB 31:EQUB 31
sd EQUB 3
sn EQUB 27:EQUB 27
sx! EQUB 32:EQUB 0:EQUB 0:EQUB 0
s�
s�
s� ; **********   WAVE 11
s� EQUB 3
s�V EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 122 : EQUB 7 : EQUB 7 :EQUB 50
s� EQUB 1
s�S EQUB 8 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
s�4 EQUD &1FE1428 : EQUD &1FE1428 : EQUD 0 : EQUD 0
s�
 EQUB 123
s� EQUB 0
s�D EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
s�D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
s�< EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
t, EQUB 56:EQUB 56:EQUB 59:EQUB 59:EQUB 58
t) EQUB 3:EQUB 3:EQUB 3:EQUB 27:EQUB 27
t EQUB 24:EQUB 24:EQUB 24
t"< EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
t,D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
t64 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
t@5 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
tJ4 EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
tTD EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
t^< EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
th EQUB 56:EQUB 56:EQUB 56
tr) EQUB 59:EQUB 59:EQUB 3:EQUB 3:EQUB 3
t|, EQUB 26:EQUB 27:EQUB 27:EQUB 24:EQUB 24
t�< EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29:EQUB 29
t�D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
t�D EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
t� EQUB 32
t�
t�
t� ; **********   WAVE 12
t� EQUB 3
t�V EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 97 : EQUB 6 : EQUB 6 : EQUB 50
t� EQUB 2
t�S EQUB 4 : EQUB 5 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
t�5 EQUD &1FDF088 : EQUD &1FDF10B : EQUD 0 : EQUD 50
t� EQUB 99
u EQUB 0
u5 EQUB 1:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
uL EQUB 43:EQUB 43:EQUB 51:EQUB 51:EQUB 56:EQUB 54:EQUB 54:EQUB 53:EQUB 53
u&  EQUB 7:EQUB 7:EQUB 7:EQUB 7
u04 EQUB 51:EQUB 51:EQUB 51:EQUB 43:EQUB 43:EQUB 43
u: EQUB 56:EQUB 56:EQUB 56
uD4 EQUB 47:EQUB 47:EQUB 47:EQUB 55:EQUB 55:EQUB 55
uN4 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
uX4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
ub EQUB 32
ul5 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
uvL EQUB 47:EQUB 47:EQUB 55:EQUB 55:EQUB 56:EQUB 50:EQUB 50:EQUB 49:EQUB 49
u�  EQUB 3:EQUB 3:EQUB 3:EQUB 3
u�4 EQUB 55:EQUB 55:EQUB 55:EQUB 47:EQUB 47:EQUB 47
u� EQUB 56:EQUB 56:EQUB 56
u�4 EQUB 43:EQUB 43:EQUB 43:EQUB 51:EQUB 51:EQUB 51
u�< EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
u�4 EQUB 61:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
u� EQUB 32:EQUB 0
u�
u�
u� ; **********   WAVE 13
u� EQUB 3
u�V EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 63 : EQUB 8 : EQUB 8 : EQUB 50
u� EQUB 2
vS EQUB 6 : EQUB 7 : EQUB 8 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
v4 EQUD &1FE0D48 : EQUD &1FE0D48 : EQUD 0 : EQUD 0
v EQUB 67
v  EQUB 0
v*C EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
v4$ EQUB 43:EQUB 43:EQUB 43:EQUB 43
v>$ EQUB 50:EQUB 50:EQUB 50:EQUB 50
vH$ EQUB 56:EQUB 56:EQUB 56:EQUB 56
vR$ EQUB 54:EQUB 54:EQUB 54:EQUB 54
v\$ EQUB 47:EQUB 47:EQUB 47:EQUB 47
vf$ EQUB 46:EQUB 46:EQUB 46:EQUB 46
vp$ EQUB 53:EQUB 53:EQUB 53:EQUB 53
vz$ EQUB 56:EQUB 56:EQUB 56:EQUB 56
v�$ EQUB 49:EQUB 49:EQUB 49:EQUB 49
v�$ EQUB 42:EQUB 42:EQUB 42:EQUB 42
v�C EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
v�  EQUB 3:EQUB 3:EQUB 3:EQUB 3
v�! EQUB 32:EQUB 0:EQUB 0:EQUB 0
v�
v�
v� ; **********   WAVE 14
v� EQUB 3
v�W EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 166 : EQUB 5 : EQUB 1 : EQUB 50
v� EQUB 3
v�S EQUB 0 : EQUB 1 : EQUB 9 : EQUB 7 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
v�5 EQUD &1FD8045 : EQUD &1FD8045 : EQUD 0 : EQUD 86
w
 EQUB 167
w EQUB 0
w4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
w$1 EQUB 18:EQUB 17:EQUB 18:EQUB 5:EQUB 5:EQUB 5
w.; EQUB 22:EQUB 22:EQUB 21:EQUB 8:EQUB 17:EQUB 18:EQUB 18
w8 EQUB 3:EQUB 3
wB1 EQUB 10:EQUB 10:EQUB 10:EQUB 9:EQUB 9:EQUB 9
wL EQUB 16:EQUB 16
wV4 EQUB 13:EQUB 13:EQUB 13:EQUB 14:EQUB 14:EQUB 14
w`. EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
wj4 EQUB 22:EQUB 22:EQUB 22:EQUB 21:EQUB 21:EQUB 21
wt EQUB 24:EQUB 24:EQUB 24
w~4 EQUB 17:EQUB 17:EQUB 17:EQUB 18:EQUB 18:EQUB 18
w�C EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
w�  EQUB 3:EQUB 3:EQUB 3:EQUB 3
w�D EQUB 18:EQUB 18:EQUB 17:EQUB 17:EQUB 18:EQUB 24:EQUB 24:EQUB 24
w�4 EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16
w� EQUB 32
w�4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
w�1 EQUB 22:EQUB 21:EQUB 22:EQUB 1:EQUB 1:EQUB 1
w�< EQUB 18::EQUB 18:EQUB 17:EQUB 8:EQUB 21:EQUB 22:EQUB 22
w� EQUB 7:EQUB 7
w�4 EQUB 14:EQUB 14:EQUB 14:EQUB 13:EQUB 13:EQUB 13
w� EQUB 16:EQUB 16
w�1 EQUB 9:EQUB 9:EQUB 9:EQUB 10:EQUB 10:EQUB 10
x. EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
x
4 EQUB 18:EQUB 18:EQUB 18:EQUB 17:EQUB 17:EQUB 17
x EQUB 24:EQUB 24:EQUB 24
x4 EQUB 21:EQUB 21:EQUB 21:EQUB 22:EQUB 22:EQUB 22
x(C EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
x2 EQUB 7:EQUB 7
x<D EQUB 22:EQUB 22:EQUB 21:EQUB 21:EQUB 22:EQUB 24:EQUB 24:EQUB 24
xF4 EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16:EQUB 16
xP EQUB 32
xZ
xd 
xn ; **********   WAVE 15
xx EQUB 3
x�U EQUB 4 : EQUB 8 : EQUB 10 : EQUB 4 : EQUB 3 : EQUB 95 : EQUB 8 : EQUB 8 :EQUB 50
x� EQUB 0
x�S EQUB 7 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
x�4 EQUD &1FE15AB : EQUD &1FE15AB : EQUD 0 : EQUD 0
x� EQUB 99
x� EQUB 0
x�D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
x�D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
x�D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
x�4 EQUB 58:EQUB 58:EQUB 57:EQUB 57:EQUB 58:EQUB 58
x� EQUB 2:EQUB 2
x�4 EQUB 26:EQUB 26:EQUB 25:EQUB 25:EQUB 26:EQUB 26
x� EQUB 16:EQUB 16
y, EQUB 30:EQUB 30:EQUB 29:EQUB 30:EQUB 30
y< EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
y' EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 5
y"4 EQUB 22:EQUB 22:EQUB 22:EQUB 14:EQUB 14:EQUB 14
y,4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
y64 EQUB 18:EQUB 18:EQUB 18:EQUB 10:EQUB 10:EQUB 10
y@C EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
yJC EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
yT! EQUB 32:EQUB 0:EQUB 0:EQUB 0
y^
yh
yr ; **********   WAVE 16
y| EQUB 3
y�W EQUB 4 : EQUB 8 : EQUB 10 : EQUB 4 : EQUB 3 : EQUB 114 : EQUB 9 : EQUB 9 : EQUB 50
y� EQUB 1
y�S EQUB 2 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
y�4 EQUD &1FE1388 : EQUD &1FE1388 : EQUD 0 : EQUD 0
y�
 EQUB 115
y� EQUB 0
y�4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
y�4 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
y� EQUB 25
y� EQUB 59:EQUB 59:EQUB 59
y�D EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
y�< EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
y�
z EQUB 59:EQUB 59:EQUB 59
z< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
z< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
z&4 EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
z0$ EQUB 59:EQUB 59:EQUB 59:EQUB 59
z:< EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
zD< EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
zN4 EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61:EQUB 61
zX$ EQUB 59:EQUB 59:EQUB 59:EQUB 59
zb< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
zl< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
zv< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
z�< EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
z� EQUB 3:EQUB 3:EQUB 3
z� EQUB 32
z�
z� 
z� ; **********   WAVE 17
z� EQUB 4
z�W EQUB 4 : EQUB 8 : EQUB 10 : EQUB 3 : EQUB 3 : EQUB 122 : EQUB 8 : EQUB 8 : EQUB 50
z� EQUB 1
z�S EQUB 3 : EQUB 4 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
z�4 EQUD &1FDA8A8 : EQUD &1FDA8A8 : EQUD 0 : EQUD 0
z�
 EQUB 123
z� EQUB 0
{L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
{D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
{L EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25:EQUB 25
{  EQUB 25:EQUB 25
{*  EQUB 3:EQUB 3:EQUB 3:EQUB 3
{4L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
{>4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
{H5 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
{RL EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
{\4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
{f  EQUB 3:EQUB 3:EQUB 3:EQUB 3
{pL EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57:EQUB 57
{z EQUB 57:EQUB 57
{�L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
{�$ EQUB 56:EQUB 56:EQUB 56:EQUB 56
{�J EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
{�J EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
{�$ EQUB 56:EQUB 56:EQUB 56:EQUB 56
{� EQUB 32
{�
{� 
{� ; **********   WAVE 18
{� EQUB 4
{�U EQUB 4 : EQUB 8 : EQUB 6 : EQUB 5 : EQUB 4 : EQUB 209 : EQUB 9 : EQUB 9 :EQUB 50
{� EQUB 3
{�S EQUB 4 : EQUB 6 : EQUB 7 : EQUB 8 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
|4 EQUD &1FE14C8 : EQUD &1FE14C8 : EQUD 0 : EQUD 0
|
 EQUB 211
| EQUB 0
|$L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
|.L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
|8L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
|B EQUB 56:EQUB 56
|LJ EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
|VJ EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
|` EQUB 3:EQUB 3
|j$ EQUB 24:EQUB 24:EQUB 24:EQUB 24
|tJ EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
|~C EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
|�L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
|�L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
|�4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
|� EQUB 3:EQUB 3:EQUB 3
|�L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
|�L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
|� EQUB 56
|�J EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
|�. EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
|�$ EQUB 24:EQUB 24:EQUB 24:EQUB 24
|�J EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
|� EQUB 7:EQUB 7:EQUB 7
}L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
}
, EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
} EQUB 3:EQUB 3:EQUB 3
}L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
}(J EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
}2$ EQUB 24:EQUB 24:EQUB 24:EQUB 24
}<< EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
}F< EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
}P EQUB 32:EQUB 0
}Z
}d
}n ; **********   WAVE 19
}x EQUB 4
}�V EQUB 4 : EQUB 8 : EQUB 6 : EQUB 4 : EQUB 4 : EQUB 125 : EQUB 4 : EQUB 4 : EQUB 50
}� EQUB 3
}�S EQUB 0 : EQUB 0 : EQUB 2 : EQUB 3 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
}�5 EQUD &1FE1451 : EQUD &1FE1485 : EQUD 0 : EQUD 64
}�
 EQUB 127
}� EQUB 0
}�4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
}�< EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
}�T EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
}�4 EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
}�  EQUB 3:EQUB 3:EQUB 3:EQUB 3
}�< EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31
}�< EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
~4 EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27
~D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
~ EQUB 32
~" EQUB 0
~,4 EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
~6< EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
~@T EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
~J4 EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63:EQUB 63
~T  EQUB 7:EQUB 7:EQUB 7:EQUB 7
~^< EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27:EQUB 27
~h< EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
~r4 EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31:EQUB 31
~|D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
~� EQUB 32:EQUB 0
~�
~� 
~� ; **********   WAVE 20
~� EQUB 5
~�U EQUB 4 : EQUB 6 : EQUB 6 : EQUB 5 : EQUB 4 : EQUB 129 : EQUB 8 : EQUB 8 :EQUB 50
~� EQUB 3
~�S EQUB 5 : EQUB 1 : EQUB 6 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0 : EQUB 0
~�4 EQUD &1FD8008 : EQUD &1FD8008 : EQUD 0 : EQUD 0
~�
 EQUB 131
~� EQUB 0
~�L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
~� EQUB 27:EQUB 27:EQUB 26
J EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
5 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
< EQUB 26:EQUB 27:EQUB 27:EQUB 24:EQUB 31:EQUB 31:EQUB 30
&J EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
05 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
:< EQUB 30:EQUB 31:EQUB 31:EQUB 24:EQUB 27:EQUB 27:EQUB 26
DJ EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
N5 EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
X< EQUB 26:EQUB 27:EQUB 27:EQUB 24:EQUB 31:EQUB 31:EQUB 30
bJ EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
l5 EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
v< EQUB 30:EQUB 31:EQUB 31:EQUB 24:EQUB 27:EQUB 27:EQUB 26
�J EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
�J EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3:EQUB 3
� EQUB 32:EQUB 0
�
�
� ; **********   WAVE 21
� EQUB 6
�W EQUB 4 : EQUB 12 : EQUB 6 : EQUB 6 : EQUB 5 : EQUB 157 : EQUB 9 : EQUB 9 : EQUB 50
� EQUB 8
�S EQUB 0 : EQUB 2 : EQUB 3 : EQUB 4 : EQUB 5 : EQUB 6 : EQUB 7 : EQUB 8 : EQUB 9
�4 EQUD &1FE14C7 : EQUD &1FE14C7 : EQUD 0 : EQUD 0
�
 EQUB 159
� EQUB 0
� EQUB 56:EQUB 56
�L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
�L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
� , EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
�*, EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
�4L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
�>L EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
�H  EQUB 2:EQUB 3:EQUB 3:EQUB 3
�R\ EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
�\, EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
�f4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
�p4 EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
�z  EQUB 3:EQUB 3:EQUB 3:EQUB 3
��L EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
��D EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56:EQUB 56
��, EQUB 59:EQUB 59:EQUB 59:EQUB 59:EQUB 59
��< EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
��D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
��D EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
��, EQUB 24:EQUB 24:EQUB 24:EQUB 24:EQUB 24
��J EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
��J EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7:EQUB 7
�� EQUB 7:EQUB 7
�� EQUB 32:EQUB 0
��
��
 ALIGN
�
�
�
�$ .directive_sprites_data
�.- LDRB R3,[R2,R10]     ;    sprites number
�85 MOV R4,#96           ;    offset for each sprite
�B MUL R3,R4,R3
�L ADR R2,sprites_data
�V ADD R2,R2,R3
�` MOV R15,R14
�j 
�t, ;  � stored here for PATTERNS and SHIPS
�~ 
�� ;   Srite Data
�� .sprites_data
��" EQUD &33333000:EQUD &00033333
��" EQUD &20003330:EQUD &03330002
��" EQUD &06660233:EQUD &33206660
��" EQUD &06600233:EQUD &33200660
��" EQUD &00002333:EQUD &33320000
��" EQUD &32233330:EQUD &03333223
��" EQUD &33223000:EQUD &00032233
��" EQUD &33322300:EQUD &00322330
��" EQUD &00332230:EQUD &03223300
��" EQUD &00003223:EQUD &32230000
�" EQUD &00003223:EQUD &32230000
�
" EQUD &00033330:EQUD &03333000
� 
�" EQUD &00555000:EQUD &00055500
�(" EQUD &05515500:EQUD &00551550
�2" EQUD &55111550:EQUD &05511155
�<" EQUD &11333155:EQUD &55133311
�F" EQUD &33311550:EQUD &05511333
�P" EQUD &31115500:EQUD &00551113
�Z" EQUD &55115500:EQUD &00551155
�d" EQUD &00551550:EQUD &05515500
�n" EQUD &00051155:EQUD &55115000
�x" EQUD &00051550:EQUD &05515000
��" EQUD &00055500:EQUD &00555000
��" EQUD &00005000:EQUD &00050000
�� 
��" EQUD &00444000:EQUD &00044400
��" EQUD &04666440:EQUD &04466640
��" EQUD &04677664:EQUD &46677640
��" EQUD &46777664:EQUD &46677764
��" EQUD &46666440:EQUD &04466664
��" EQUD &22264000:EQUD &00046222
��" EQUD &22264000:EQUD &00046222
��" EQUD &46226440:EQUD &04462264
��" EQUD &46222664:EQUD &46622264
��" EQUD &04622664:EQUD &46622640
�" EQUD &04666440:EQUD &04466640
�" EQUD &00444000:EQUD &00044400
� 
�"" EQUD &00555555:EQUD &55555500
�," EQUD &55111550:EQUD &05511155
�6" EQUD &17715000:EQUD &00051771
�@" EQUD &11150050:EQUD &05005111
�J" EQUD &55501500:EQUD &00510555
�T" EQUD &00051550:EQUD &05515000
�^" EQUD &00511115:EQUD &51111500
�h" EQUD &00555550:EQUD &05555500
�r" EQUD &00000015:EQUD &51000000
�|" EQUD &00000155:EQUD &55100000
��" EQUD &00111550:EQUD &05511100
��" EQUD &00555500:EQUD &00555500
�� 
��" EQUD &00000220:EQUD &02200000
��" EQUD &02200032:EQUD &23000220
��" EQUD &00222232:EQUD &23222200
��" EQUD &00021120:EQUD &02112000
��" EQUD &00021120:EQUD &02112000
��" EQUD &02222200:EQUD &00222220
��" EQUD &20000000:EQUD &00000002
��" EQUD &00222000:EQUD &00022200
��" EQUD &33333220:EQUD &02233333
��" EQUD &22222222:EQUD &22222222
�" EQUD &00000022:EQUD &22000000
�" EQUD &00022220:EQUD &02222000
�
�&" EQUD &06000600:EQUD &00600060
�0" EQUD &66606260:EQUD &06260666
�:" EQUD &66662226:EQUD &62226666
�D" EQUD &63662226:EQUD &62226636
�N" EQUD &33362664:EQUD &46626333
�X" EQUD &33666644:EQUD &44666633
�b" EQUD &66660046:EQUD &64006666
�l" EQUD &66000046:EQUD &64000066
�v" EQUD &00000460:EQUD &06400000
��" EQUD &06644660:EQUD &06644660
��" EQUD &06666600:EQUD &00666660
��" EQUD &00660000:EQUD &00006600
�� 
��" EQUD &00111011:EQUD &11011100
��" EQUD &01010100:EQUD &00101010
��" EQUD &10101111:EQUD &11110101
��" EQUD &11066661:EQUD &16666011
��" EQUD &11666110:EQUD &01166611
��" EQUD &00111011:EQUD &11011100
��" EQUD &00050110:EQUD &01105000
��" EQUD &05501101:EQUD &10110550
��" EQUD &00111001:EQUD &10011100
�" EQUD &00000110:EQUD &01100000
�" EQUD &05111100:EQUD &00111150
�" EQUD &00011000:EQUD &00011000
�  
�*" EQUD &00000020:EQUD &02000000
�4" EQUD &00002212:EQUD &21220000
�>" EQUD &00022112:EQUD &21122000
�H" EQUD &00221112:EQUD &21112200
�R" EQUD &00221120:EQUD &02112200
�\" EQUD &02221200:EQUD &00212220
�f" EQUD &22332220:EQUD &02223322
�p" EQUD &33333322:EQUD &22333333
�z" EQUD &22222220:EQUD &02222222
��" EQUD &00002220:EQUD &02220000
��" EQUD &00000220:EQUD &02200000
��" EQUD &00022200:EQUD &00222000
�� 
��" EQUD &77716600:EQUD &00661777
��" EQUD &77111660:EQUD &06611177
��" EQUD &71111166:EQUD &66111117
��" EQUD &77111046:EQUD &64011177
��" EQUD &77100466:EQUD &66400177
��" EQUD &00004666:EQUD &66640000
��" EQUD &00446660:EQUD &06664400
��" EQUD &00466600:EQUD &00666400
��" EQUD &00446600:EQUD &00664400
�" EQUD &00046600:EQUD &00664000
�" EQUD &00046600:EQUD &00664000
�" EQUD &00666000:EQUD &00066600
�$ 
�." EQUD &00055550:EQUD &05555000
�8" EQUD &05511115:EQUD &51111550
�B" EQUD &51177715:EQUD &51777115
�L" EQUD &51777715:EQUD &51777715
�V" EQUD &51171115:EQUD &51117115
�`" EQUD &05111550:EQUD &05511150
�j" EQUD &00555005:EQUD &50055500
�t" EQUD &00000555:EQUD &55500000
�~" EQUD &00550515:EQUD &51505500
��" EQUD &05115115:EQUD &51151150
��" EQUD &00551550:EQUD &05115500
��" EQUD &00005500:EQUD &00550000
�� 
��
��
��
��C ; screen memory is saved here so they can be withered on & off
��
�� .memory
��
�� 
� ]
�

�2 � Two screens each &A000  (40K) are set aside
� P%=P%+&14000
�( �
�2 �
�
00000000  0d 00 0a 10 20 f4 20 3e  47 41 4d 45 43 4f 44 45  |.... . >GAMECODE|
00000010  0d 00 14 14 20 f4 20 28  43 29 20 43 6f 70 79 72  |.... . (C) Copyr|
00000020  69 67 68 74 0d 00 1e 1c  20 f4 20 4e 2e 57 45 53  |ight.... . N.WES|
00000030  54 4c 45 59 20 26 20 43  2e 57 45 53 54 4c 45 59  |TLEY & C.WESTLEY|
00000040  0d 00 28 2f 20 f4 20 57  61 72 6e 69 6e 67 20 21  |..(/ . Warning !|
00000050  20 20 20 20 53 54 41 52  46 49 47 48 54 20 6d 75  |    STARFIGHT mu|
00000060  73 74 20 62 65 20 52 55  4e 20 66 69 72 73 74 0d  |st be RUN first.|
00000070  00 32 05 20 0d 00 3c 0e  20 f2 61 73 73 65 6d 62  |.2. ..<. .assemb|
00000080  6c 65 0d 00 46 0f 20 d6  20 67 61 6d 65 63 6f 64  |le..F. . gamecod|
00000090  65 0d 00 50 05 20 0d 00  5a 06 20 e0 0d 00 64 05  |e..P. ..Z. ...d.|
000000a0  20 0d 00 6e 48 20 f4 20  20 2a 2a 2a 2a 2a 2a 2a  | ..nH .  *******|
000000b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000000e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 00 78 05 20 0d 00  |*********..x. ..|
000000f0  82 10 20 dd 20 f2 61 73  73 65 6d 62 6c 65 0d 00  |.. . .assemble..|
00000100  8c 13 20 de 20 43 4f 44  45 25 20 26 32 34 30 30  |.. . CODE% &2400|
00000110  30 0d 00 96 15 20 e3 20  50 41 53 53 3d 30 20 b8  |0.... . PASS=0 .|
00000120  20 32 20 88 20 32 0d 00  a0 0d 20 50 25 3d 43 4f  | 2 . 2.... P%=CO|
00000130  44 45 25 0d 00 aa 0f 20  5b 20 4f 50 54 20 50 41  |DE%.... [ OPT PA|
00000140  53 53 0d 00 b4 0e 20 2e  67 61 6d 65 63 6f 64 65  |SS.... .gamecode|
00000150  0d 00 be 3f 20 53 54 4d  46 44 20 52 31 33 21 2c  |...? STMFD R13!,|
00000160  7b 52 31 34 7d 20 20 20  20 20 20 20 20 20 20 20  |{R14}           |
00000170  3b 20 20 53 61 76 65 20  52 65 74 75 72 6e 20 61  |;  Save Return a|
00000180  64 64 72 65 73 73 20 74  6f 20 42 41 53 49 43 0d  |ddress to BASIC.|
00000190  00 c8 48 20 4d 4f 56 20  52 30 2c 23 32 30 30 20  |..H MOV R0,#200 |
000001a0  3a 20 4d 4f 56 20 52 31  2c 23 33 20 20 20 20 3b  |: MOV R1,#3    ;|
000001b0  20 20 45 53 43 41 50 45  20 64 69 73 61 62 6c 65  |  ESCAPE disable|
000001c0  64 20 2f 20 42 52 45 41  4b 20 63 6c 65 61 72 73  |d / BREAK clears|
000001d0  20 6d 65 6d 6f 72 79 0d  00 d2 12 20 53 57 49 20  | memory.... SWI |
000001e0  22 4f 53 5f 42 79 74 65  22 0d 00 dc 24 20 4d 4f  |"OS_Byte"...$ MO|
000001f0  56 20 52 30 2c 23 39 20  20 20 20 20 20 20 20 20  |V R0,#9         |
00000200  20 20 20 20 20 20 20 20  20 3b 20 20 eb 0d 00 e6  |         ;  ....|
00000210  10 20 53 57 49 20 26 31  30 30 2b 32 32 0d 00 f0  |. SWI &100+22...|
00000220  14 20 53 57 49 20 22 4f  53 5f 57 72 69 74 65 43  |. SWI "OS_WriteC|
00000230  22 0d 00 fa 24 20 53 57  49 20 22 4f 53 5f 52 65  |"...$ SWI "OS_Re|
00000240  6d 6f 76 65 43 75 72 73  6f 72 73 22 20 20 20 20  |moveCursors"    |
00000250  20 3b 20 20 87 0d 01 04  26 20 53 57 49 20 26 31  | ;  ....& SWI &1|
00000260  30 30 2b 35 20 20 20 20  20 20 20 20 20 20 20 20  |00+5            |
00000270  20 20 20 20 20 3b 20 20  ef 20 35 0d 01 0e 10 20  |     ;  . 5.... |
00000280  53 57 49 20 26 31 30 30  2b 31 38 0d 01 18 0e 20  |SWI &100+18.... |
00000290  4d 4f 56 20 52 30 2c 23  33 0d 01 22 14 20 53 57  |MOV R0,#3..". SW|
000002a0  49 20 22 4f 53 5f 57 72  69 74 65 43 22 0d 01 2c  |I "OS_WriteC"..,|
000002b0  0e 20 4d 4f 56 20 52 30  2c 23 33 0d 01 36 14 20  |. MOV R0,#3..6. |
000002c0  53 57 49 20 22 4f 53 5f  57 72 69 74 65 43 22 0d  |SWI "OS_WriteC".|
000002d0  01 40 35 20 42 4c 20 63  68 61 6e 67 65 5f 70 61  |.@5 BL change_pa|
000002e0  6c 65 74 74 65 20 20 20  20 20 20 20 20 20 20 3b  |lette          ;|
000002f0  20 20 69 6e 69 74 69 61  6c 69 73 65 20 70 61 6c  |  initialise pal|
00000300  65 74 74 65 0d 01 4a 13  20 42 20 6e 61 6d 65 5f  |ette..J. B name_|
00000310  65 6e 74 65 72 65 64 0d  01 54 05 20 0d 01 5e 10  |entered..T. ..^.|
00000320  20 2e 67 61 6d 65 5f 73  74 61 72 74 0d 01 68 12  | .game_start..h.|
00000330  20 42 4c 20 70 72 69 6e  74 5f 77 61 76 65 0d 01  | BL print_wave..|
00000340  72 40 20 42 4c 20 72 65  73 65 74 5f 76 61 72 5f  |r@ BL reset_var_|
00000350  61 64 64 72 20 20 20 20  20 20 20 20 20 20 3b 20  |addr          ; |
00000360  20 61 64 64 72 65 73 73  20 6f 66 20 73 74 61 72  | address of star|
00000370  74 20 6f 66 20 76 61 72  69 61 62 6c 65 73 0d 01  |t of variables..|
00000380  7c 47 20 42 4c 20 69 6e  69 74 5f 77 61 76 65 5f  ||G BL init_wave_|
00000390  76 61 72 73 20 20 20 20  20 20 20 20 20 20 3b 20  |vars          ; |
000003a0  20 72 65 73 65 74 73 20  61 6c 6c 20 76 61 72 69  | resets all vari|
000003b0  61 62 6c 65 73 20 74 6f  20 63 75 72 72 65 6e 74  |ables to current|
000003c0  20 77 61 76 65 0d 01 86  22 20 42 4c 20 6c 6f 61  | wave..." BL loa|
000003d0  64 5f 6e 65 77 61 64 64  72 20 3a 20 42 4c 20 75  |d_newaddr : BL u|
000003e0  73 65 72 73 68 69 70 0d  01 90 35 20 42 4c 20 70  |sership...5 BL p|
000003f0  72 65 70 61 72 65 5f 77  61 76 65 20 20 20 20 20  |repare_wave     |
00000400  20 20 20 20 20 20 20 3b  20 20 64 65 6c 61 79 20  |       ;  delay |
00000410  62 65 66 6f 72 65 20 73  74 61 72 74 0d 01 9a 16  |before start....|
00000420  20 42 4c 20 72 65 73 65  74 5f 76 61 72 5f 61 64  | BL reset_var_ad|
00000430  64 72 0d 01 a4 47 20 4d  4f 56 20 52 30 2c 23 31  |dr...G MOV R0,#1|
00000440  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000450  20 20 3b 20 20 52 30 3d  31 20 8c 20 73 65 65 20  |  ;  R0=1 . see |
00000460  70 72 6f 67 72 61 6d 5f  76 61 72 69 61 62 6c 65  |program_variable|
00000470  73 20 72 6f 75 74 69 6e  65 0d 01 ae 16 20 42 4c  |s routine.... BL|
00000480  20 69 6e 69 74 5f 77 61  76 65 5f 76 61 72 73 0d  | init_wave_vars.|
00000490  01 b8 2c 20 42 20 64 69  73 70 6c 61 79 20 20 20  |.., B display   |
000004a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
000004b0  20 20 50 4c 41 59 20 47  41 4d 45 0d 01 c2 05 20  |  PLAY GAME.... |
000004c0  0d 01 cc 4d 20 3b 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...M ; *********|
000004d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000500  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 01 d6  |*************...|
00000510  05 20 0d 01 e0 05 20 0d  01 ea 0c 20 2e 67 65 74  |. .... .... .get|
00000520  6c 6f 63 0d 01 f4 3c 20  53 54 4d 46 44 20 52 31  |loc...< STMFD R1|
00000530  33 21 2c 7b 52 31 34 7d  20 3a 20 42 4c 20 64 69  |3!,{R14} : BL di|
00000540  72 65 63 74 69 76 65 5f  62 79 74 65 20 3a 20 4c  |rective_byte : L|
00000550  44 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |DMFD R13!,{R14}.|
00000560  01 fe 12 20 41 44 44 20  52 31 30 2c 52 39 2c 23  |... ADD R10,R9,#|
00000570  39 0d 02 08 3e 20 4c 44  52 42 20 52 31 2c 5b 52  |9...> LDRB R1,[R|
00000580  32 2c 52 31 30 5d 20 20  20 20 20 20 20 20 20 20  |2,R10]          |
00000590  3b 20 20 20 63 68 65 63  6b 20 69 66 20 73 70 72  |;   check if spr|
000005a0  69 74 65 20 69 73 20 6f  6e 73 63 72 65 65 6e 0d  |ite is onscreen.|
000005b0  02 12 1d 20 43 4d 50 20  52 31 2c 23 30 20 3a 20  |... CMP R1,#0 : |
000005c0  42 4e 45 20 6f 6e 73 63  72 65 65 6e 0d 02 1c 3b  |BNE onscreen...;|
000005d0  20 4d 4f 56 20 52 31 2c  23 31 20 3a 20 53 54 52  | MOV R1,#1 : STR|
000005e0  42 20 52 31 2c 5b 52 32  2c 52 31 30 5d 20 20 20  |B R1,[R2,R10]   |
000005f0  20 20 20 20 3b 20 20 69  73 20 6e 6f 77 20 6f 6e  |    ;  is now on|
00000600  20 73 63 72 65 65 6e 0d  02 26 0e 20 2e 6f 6e 73  | screen..&. .ons|
00000610  63 72 65 65 6e 0d 02 30  12 20 41 44 44 20 52 31  |creen..0. ADD R1|
00000620  30 2c 52 39 2c 23 38 0d  02 3a 32 20 4c 44 52 42  |0,R9,#8..:2 LDRB|
00000630  20 52 31 2c 5b 52 32 2c  52 31 30 5d 20 20 20 20  | R1,[R2,R10]    |
00000640  20 20 20 20 20 20 3b 20  20 20 70 61 74 74 65 72  |      ;   patter|
00000650  6e 20 70 6f 69 6e 74 65  72 0d 02 44 3f 20 53 54  |n pointer..D? ST|
00000660  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 20 3a  |MFD R13!,{R14} :|
00000670  20 42 4c 20 64 69 72 65  63 74 69 76 65 5f 70 61  | BL directive_pa|
00000680  74 74 65 72 6e 20 3a 20  4c 44 4d 46 44 20 52 31  |ttern : LDMFD R1|
00000690  33 21 2c 7b 52 31 34 7d  0d 02 4e 34 20 4c 44 52  |3!,{R14}..N4 LDR|
000006a0  42 20 52 34 2c 5b 52 33  2c 52 31 5d 20 20 20 20  |B R4,[R3,R1]    |
000006b0  20 20 20 20 20 20 20 3b  20 20 20 70 61 74 74 65  |       ;   patte|
000006c0  72 6e 20 64 61 74 61 20  62 79 74 65 0d 02 58 21  |rn data byte..X!|
000006d0  20 43 4d 50 20 52 34 2c  23 33 32 20 3a 20 42 4e  | CMP R4,#32 : BN|
000006e0  45 20 74 68 69 73 5f 6e  75 6d 62 65 72 0d 02 62  |E this_number..b|
000006f0  3d 20 20 3b 20 20 20 6f  66 66 73 63 72 65 65 6e  |=  ;   offscreen|
00000700  20 2d 20 65 6e 64 20 6f  66 20 70 61 74 74 65 72  | - end of patter|
00000710  6e 20 66 6f 72 20 74 68  69 73 20 73 70 72 69 74  |n for this sprit|
00000720  65 20 8b 20 62 72 61 6e  63 68 0d 02 6c 0f 20 2e  |e . branch..l. .|
00000730  6f 66 66 73 63 72 65 65  6e 0d 02 76 12 20 41 44  |offscreen..v. AD|
00000740  44 20 52 31 30 2c 52 39  2c 23 39 0d 02 80 27 20  |D R10,R9,#9...' |
00000750  4d 4f 56 20 52 31 31 2c  23 32 20 20 20 20 20 20  |MOV R11,#2      |
00000760  20 20 20 20 20 20 20 20  20 20 3b 20 20 20 64 65  |          ;   de|
00000770  61 64 0d 02 8a 16 20 53  54 52 42 20 52 31 31 2c  |ad.... STRB R11,|
00000780  5b 52 32 2c 52 31 30 5d  0d 02 94 93 20 53 54 4d  |[R2,R10].... STM|
00000790  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 20 3a 20  |FD R13!,{R14} : |
000007a0  42 4c 20 6c 6f 61 64 5f  6c 61 73 74 5f 73 70 72  |BL load_last_spr|
000007b0  69 74 65 20 3a 20 41 44  44 20 52 31 31 2c 52 31  |ite : ADD R11,R1|
000007c0  31 2c 23 31 20 3a 20 42  4c 20 73 74 6f 72 65 5f  |1,#1 : BL store_|
000007d0  6c 61 73 74 5f 73 70 72  69 74 65 20 3a 20 4c 44  |last_sprite : LD|
000007e0  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 20 3b  |MFD R13!,{R14} ;|
000007f0  20 43 68 65 63 6b 20 66  6f 72 20 65 6e 64 20 6f  | Check for end o|
00000800  66 20 70 61 74 74 65 72  6e 20 2d 20 66 6f 72 20  |f pattern - for |
00000810  6c 61 73 74 20 73 70 72  69 74 65 0d 02 9e 11 20  |last sprite.... |
00000820  2e 74 68 69 73 5f 6e 75  6d 62 65 72 0d 02 a8 43  |.this_number...C|
00000830  20 80 53 20 52 34 2c 52  34 2c 23 34 20 20 20 20  | .S R4,R4,#4    |
00000840  20 20 20 20 20 20 20 20  20 3b 20 20 61 63 72 6f  |         ;  acro|
00000850  73 73 2c 20 63 68 65 63  6b 20 73 69 67 6e 20 6f  |ss, check sign o|
00000860  66 20 58 20 63 6f 2d 6f  72 64 69 6e 61 74 65 0d  |f X co-ordinate.|
00000870  02 b2 41 20 42 45 51 20  78 70 6c 75 73 20 20 20  |..A BEQ xplus   |
00000880  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00000890  20 42 49 54 20 33 20 73  65 74 20 69 66 20 6d 69  | BIT 3 set if mi|
000008a0  6e 75 73 20 73 6f 20 6e  6f 20 62 72 61 6e 63 68  |nus so no branch|
000008b0  0d 02 bc 05 20 0d 02 c6  0c 20 2e 78 6d 69 6e 75  |.... .... .xminu|
000008c0  73 0d 02 d0 14 20 4c 44  52 42 20 52 34 2c 5b 52  |s.... LDRB R4,[R|
000008d0  33 2c 52 31 5d 0d 02 da  0f 20 80 20 52 34 2c 52  |3,R1].... . R4,R|
000008e0  34 2c 23 33 0d 02 e4 11  20 41 44 44 20 52 34 2c  |4,#3.... ADD R4,|
000008f0  52 34 2c 52 34 0d 02 ee  12 20 41 44 44 20 52 31  |R4,R4.... ADD R1|
00000900  30 2c 52 39 2c 23 30 0d  02 f8 14 20 4c 44 52 20  |0,R9,#0.... LDR |
00000910  52 30 2c 5b 52 32 2c 52  31 30 5d 0d 03 02 11 20  |R0,[R2,R10].... |
00000920  53 55 42 20 52 30 2c 52  30 2c 52 34 0d 03 0c 0d  |SUB R0,R0,R4....|
00000930  20 42 20 79 76 61 6c 75  65 0d 03 16 0b 20 2e 78  | B yvalue.... .x|
00000940  70 6c 75 73 0d 03 20 14  20 4c 44 52 42 20 52 34  |plus.. . LDRB R4|
00000950  2c 5b 52 33 2c 52 31 5d  0d 03 2a 0f 20 80 20 52  |,[R3,R1]..*. . R|
00000960  34 2c 52 34 2c 23 33 0d  03 34 30 20 41 44 44 20  |4,R4,#3..40 ADD |
00000970  52 34 2c 52 34 2c 52 34  20 20 20 20 20 20 20 20  |R4,R4,R4        |
00000980  20 20 20 20 20 20 3b 20  20 20 6d 75 6c 74 69 70  |      ;   multip|
00000990  6c 79 20 62 79 20 32 0d  03 3e 12 20 41 44 44 20  |ly by 2..>. ADD |
000009a0  52 31 30 2c 52 39 2c 23  30 0d 03 48 14 20 4c 44  |R10,R9,#0..H. LD|
000009b0  52 20 52 30 2c 5b 52 32  2c 52 31 30 5d 0d 03 52  |R R0,[R2,R10]..R|
000009c0  11 20 41 44 44 20 52 30  2c 52 30 2c 52 34 0d 03  |. ADD R0,R0,R4..|
000009d0  5c 0c 20 2e 79 76 61 6c  75 65 0d 03 66 27 20 4c  |\. .yvalue..f' L|
000009e0  44 52 42 20 52 35 2c 5b  52 33 2c 52 31 5d 20 20  |DRB R5,[R3,R1]  |
000009f0  20 20 20 20 20 20 20 20  20 3b 20 20 20 64 6f 77  |         ;   dow|
00000a00  6e 0d 03 70 11 20 80 53  20 52 35 2c 52 35 2c 23  |n..p. .S R5,R5,#|
00000a10  33 32 0d 03 7a 0e 20 42  45 51 20 79 70 6c 75 73  |32..z. BEQ yplus|
00000a20  0d 03 84 0c 20 2e 79 6d  69 6e 75 73 0d 03 8e 14  |.... .yminus....|
00000a30  20 4c 44 52 42 20 52 35  2c 5b 52 33 2c 52 31 5d  | LDRB R5,[R3,R1]|
00000a40  0d 03 98 10 20 80 20 52  35 2c 52 35 2c 23 32 34  |.... . R5,R5,#24|
00000a50  0d 03 a2 15 20 4d 4f 56  20 52 35 2c 52 35 2c 4c  |.... MOV R5,R5,L|
00000a60  53 52 20 23 32 0d 03 ac  1f 20 4d 4f 56 20 52 36  |SR #2.... MOV R6|
00000a70  2c 23 31 36 30 20 3a 20  4d 55 4c 20 52 37 2c 52  |,#160 : MUL R7,R|
00000a80  35 2c 52 36 0d 03 b6 11  20 53 55 42 20 52 30 2c  |5,R6.... SUB R0,|
00000a90  52 30 2c 52 37 0d 03 c0  12 20 41 44 44 20 52 31  |R0,R7.... ADD R1|
00000aa0  30 2c 52 39 2c 23 30 0d  03 ca 3e 20 53 54 52 20  |0,R9,#0...> STR |
00000ab0  52 30 2c 5b 52 32 2c 52  31 30 5d 20 20 20 20 20  |R0,[R2,R10]     |
00000ac0  20 20 20 20 20 20 20 3b  20 20 20 6c 6f 63 61 74  |       ;   locat|
00000ad0  69 6f 6e 20 6f 66 20 73  63 72 65 65 6e 20 61 64  |ion of screen ad|
00000ae0  64 72 65 73 73 0d 03 d4  16 20 42 20 62 6f 6d 62  |dress.... B bomb|
00000af0  5f 64 72 6f 70 5f 63 68  65 63 6b 0d 03 de 0b 20  |_drop_check.... |
00000b00  2e 79 70 6c 75 73 0d 03  e8 14 20 4c 44 52 42 20  |.yplus.... LDRB |
00000b10  52 35 2c 5b 52 33 2c 52  31 5d 0d 03 f2 10 20 80  |R5,[R3,R1].... .|
00000b20  20 52 35 2c 52 35 2c 23  32 34 0d 03 fc 2f 20 4d  | R5,R5,#24.../ M|
00000b30  4f 56 20 52 35 2c 52 35  2c 4c 53 52 20 23 32 20  |OV R5,R5,LSR #2 |
00000b40  20 20 20 20 20 20 20 20  20 20 3b 20 20 20 64 69  |          ;   di|
00000b50  76 69 64 65 20 62 79 20  34 0d 04 06 1f 20 4d 4f  |vide by 4.... MO|
00000b60  56 20 52 36 2c 23 31 36  30 20 3a 20 4d 55 4c 20  |V R6,#160 : MUL |
00000b70  52 37 2c 52 35 2c 52 36  0d 04 10 11 20 41 44 44  |R7,R5,R6.... ADD|
00000b80  20 52 30 2c 52 30 2c 52  37 0d 04 1a 12 20 41 44  | R0,R0,R7.... AD|
00000b90  44 20 52 31 30 2c 52 39  2c 23 30 0d 04 24 3e 20  |D R10,R9,#0..$> |
00000ba0  53 54 52 20 52 30 2c 5b  52 32 2c 52 31 30 5d 20  |STR R0,[R2,R10] |
00000bb0  20 20 20 20 20 20 20 20  20 20 20 3b 20 20 20 6c  |           ;   l|
00000bc0  6f 63 61 74 69 6f 6e 20  6f 66 20 73 63 72 65 65  |ocation of scree|
00000bd0  6e 20 61 64 64 72 65 73  73 0d 04 2e 05 20 0d 04  |n address.... ..|
00000be0  38 15 20 2e 62 6f 6d 62  5f 64 72 6f 70 5f 63 68  |8. .bomb_drop_ch|
00000bf0  65 63 6b 0d 04 42 4a 20  53 54 4d 46 44 20 52 31  |eck..BJ STMFD R1|
00000c00  33 21 2c 7b 52 31 34 2c  52 31 2d 52 37 7d 20 3a  |3!,{R14,R1-R7} :|
00000c10  20 42 4c 20 72 61 6e 64  6f 6d 5f 67 65 6e 65 72  | BL random_gener|
00000c20  61 74 6f 72 20 3a 20 4c  44 4d 46 44 20 52 31 33  |ator : LDMFD R13|
00000c30  21 2c 7b 52 31 34 2c 52  31 2d 52 37 7d 0d 04 4c  |!,{R14,R1-R7}..L|
00000c40  1a 20 41 44 52 20 52 35  2c 72 61 6e 64 6f 6d 5f  |. ADR R5,random_|
00000c50  6e 75 6d 62 65 72 73 0d  04 56 5a 20 4c 44 52 42  |numbers..VZ LDRB|
00000c60  20 52 36 2c 62 6f 6d 62  5f 64 72 6f 70 5f 70 6f  | R6,bomb_drop_po|
00000c70  73 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |s               |
00000c80  20 3b 20 20 20 63 6f 75  6e 74 20 66 6f 72 20 70  | ;   count for p|
00000c90  61 74 74 65 72 6e 20 70  6f 73 69 74 69 6f 6e 73  |attern positions|
00000ca0  20 74 6f 20 72 65 6c 65  61 73 65 20 62 6f 6d 62  | to release bomb|
00000cb0  73 0d 04 60 07 20 2e 62  0d 04 6a 14 20 4c 44 52  |s..`. .b..j. LDR|
00000cc0  42 20 52 34 2c 5b 52 35  5d 2c 23 31 0d 04 74 33  |B R4,[R5],#1..t3|
00000cd0  20 43 4d 50 20 52 34 2c  23 30 20 3a 20 42 45 51  | CMP R4,#0 : BEQ|
00000ce0  20 7a 65 72 6f 5f 70 6f  73 20 20 20 3b 20 20 73  | zero_pos   ;  s|
00000cf0  74 61 72 74 20 6f 66 20  70 61 74 74 65 72 6e 0d  |tart of pattern.|
00000d00  04 7e 0e 20 43 4d 50 20  52 31 2c 52 34 0d 04 88  |.~. CMP R1,R4...|
00000d10  11 20 42 45 51 20 6e 65  77 5f 62 6f 6d 62 0d 04  |. BEQ new_bomb..|
00000d20  92 0e 20 2e 7a 65 72 6f  5f 70 6f 73 0d 04 9c 12  |.. .zero_pos....|
00000d30  20 53 55 42 53 20 52 36  2c 52 36 2c 23 31 0d 04  | SUBS R6,R6,#1..|
00000d40  a6 0a 20 42 4e 45 20 62  0d 04 b0 0e 20 42 20 6e  |.. BNE b.... B n|
00000d50  6f 5f 62 6f 6d 62 0d 04  ba 0e 20 2e 6e 65 77 5f  |o_bomb.... .new_|
00000d60  62 6f 6d 62 0d 04 c4 1b  20 4c 44 52 42 20 52 34  |bomb.... LDRB R4|
00000d70  2c 6e 6f 5f 61 6c 69 65  6e 5f 62 6f 6d 62 73 0d  |,no_alien_bombs.|
00000d80  04 ce 41 20 4d 4f 56 20  52 35 2c 52 34 2c 4c 53  |..A MOV R5,R4,LS|
00000d90  4c 23 33 20 20 20 20 20  20 20 20 20 20 20 20 3b  |L#3            ;|
00000da0  20 20 20 38 20 62 79 74  65 73 20 66 6f 72 20 65  |   8 bytes for e|
00000db0  61 63 68 20 62 6f 6d 62  20 64 72 6f 70 70 65 64  |ach bomb dropped|
00000dc0  0d 04 d8 4e 20 41 44 44  20 52 34 2c 52 34 2c 23  |...N ADD R4,R4,#|
00000dd0  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
00000de0  3b 20 20 20 69 6e 63 72  65 6d 65 6e 74 20 74 68  |;   increment th|
00000df0  65 20 6e 6f 2e 20 6f 66  20 61 6c 69 65 6e 20 62  |e no. of alien b|
00000e00  6f 6d 62 73 20 6f 6e 20  73 63 72 65 65 6e 0d 04  |ombs on screen..|
00000e10  e2 1b 20 53 54 52 42 20  52 34 2c 6e 6f 5f 61 6c  |.. STRB R4,no_al|
00000e20  69 65 6e 5f 62 6f 6d 62  73 0d 04 ec 3a 20 53 54  |ien_bombs...: ST|
00000e30  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 20 3a  |MFD R13!,{R14} :|
00000e40  20 42 4c 20 64 69 72 65  63 74 69 76 65 5f 61 62  | BL directive_ab|
00000e50  20 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  | : LDMFD R13!,{R|
00000e60  31 34 7d 0d 04 f6 11 20  41 44 44 20 52 34 2c 52  |14}.... ADD R4,R|
00000e70  34 2c 52 35 0d 05 00 0a  20 2e 63 79 61 6e 0d 05  |4,R5.... .cyan..|
00000e80  0a 41 20 4c 44 52 42 20  52 35 2c 63 79 61 6e 5f  |.A LDRB R5,cyan_|
00000e90  63 6f 75 6e 74 65 72 20  3a 20 43 4d 50 20 52 35  |counter : CMP R5|
00000ea0  2c 23 30 20 3a 20 42 45  51 20 72 65 64 20 20 20  |,#0 : BEQ red   |
00000eb0  20 3b 20 6e 6f 20 63 79  61 6e 20 62 6f 6d 62 0d  | ; no cyan bomb.|
00000ec0  05 14 29 20 53 55 42 53  20 52 35 2c 52 35 2c 23  |..) SUBS R5,R5,#|
00000ed0  31 20 3a 20 53 54 52 42  20 52 35 2c 63 79 61 6e  |1 : STRB R5,cyan|
00000ee0  5f 63 6f 75 6e 74 65 72  0d 05 1e 0c 20 42 4e 45  |_counter.... BNE|
00000ef0  20 72 65 64 0d 05 28 31  20 4c 44 52 42 20 52 35  | red..(1 LDRB R5|
00000f00  2c 43 63 79 61 6e 5f 63  6f 75 6e 74 65 72 20 3a  |,Ccyan_counter :|
00000f10  20 53 54 52 42 20 52 35  2c 63 79 61 6e 5f 63 6f  | STRB R5,cyan_co|
00000f20  75 6e 74 65 72 0d 05 32  21 20 4d 4f 56 20 52 35  |unter..2! MOV R5|
00000f30  2c 23 31 32 20 3a 20 53  54 52 42 20 52 35 2c 5b  |,#12 : STRB R5,[|
00000f40  52 34 2c 23 34 5d 0d 05  3c 11 20 42 20 67 6f 74  |R4,#4]..<. B got|
00000f50  5f 63 6f 6c 6f 75 72 0d  05 46 09 20 2e 72 65 64  |_colour..F. .red|
00000f60  0d 05 50 43 20 4c 44 52  42 20 52 35 2c 72 65 64  |..PC LDRB R5,red|
00000f70  5f 63 6f 75 6e 74 65 72  20 3a 20 43 4d 50 20 52  |_counter : CMP R|
00000f80  35 2c 23 30 20 3a 20 42  45 51 20 79 65 6c 6c 6f  |5,#0 : BEQ yello|
00000f90  77 20 20 20 3b 20 20 20  6e 6f 20 72 65 64 20 62  |w   ;   no red b|
00000fa0  6f 6d 62 0d 05 5a 28 20  53 55 42 53 20 52 35 2c  |omb..Z( SUBS R5,|
00000fb0  52 35 2c 23 31 20 3a 20  53 54 52 42 20 52 35 2c  |R5,#1 : STRB R5,|
00000fc0  72 65 64 5f 63 6f 75 6e  74 65 72 0d 05 64 0f 20  |red_counter..d. |
00000fd0  42 4e 45 20 79 65 6c 6c  6f 77 0d 05 6e 2f 20 4c  |BNE yellow..n/ L|
00000fe0  44 52 42 20 52 35 2c 43  72 65 64 5f 63 6f 75 6e  |DRB R5,Cred_coun|
00000ff0  74 65 72 20 3a 20 53 54  52 42 20 52 35 2c 72 65  |ter : STRB R5,re|
00001000  64 5f 63 6f 75 6e 74 65  72 0d 05 78 21 20 4d 4f  |d_counter..x! MO|
00001010  56 20 52 35 2c 23 32 34  20 3a 20 53 54 52 42 20  |V R5,#24 : STRB |
00001020  52 35 2c 5b 52 34 2c 23  34 5d 0d 05 82 11 20 42  |R5,[R4,#4].... B|
00001030  20 67 6f 74 5f 63 6f 6c  6f 75 72 0d 05 8c 28 20  | got_colour...( |
00001040  2e 79 65 6c 6c 6f 77 20  4d 4f 56 20 52 35 2c 23  |.yellow MOV R5,#|
00001050  30 20 3a 20 53 54 52 42  20 52 35 2c 5b 52 34 2c  |0 : STRB R5,[R4,|
00001060  23 34 5d 0d 05 96 10 20  2e 67 6f 74 5f 63 6f 6c  |#4].... .got_col|
00001070  6f 75 72 0d 05 a0 3e 20  4c 44 52 42 20 52 35 2c  |our...> LDRB R5,|
00001080  62 6f 6d 62 73 5f 73 70  65 65 64 20 3a 20 53 55  |bombs_speed : SU|
00001090  42 53 20 52 35 2c 52 35  2c 23 31 20 3a 20 53 54  |BS R5,R5,#1 : ST|
000010a0  52 42 20 52 35 2c 62 6f  6d 62 73 5f 73 70 65 65  |RB R5,bombs_spee|
000010b0  64 0d 05 aa 12 20 42 4e  45 20 73 6c 6f 77 5f 62  |d.... BNE slow_b|
000010c0  6f 6d 62 0d 05 b4 2f 20  4c 44 52 42 20 52 35 2c  |omb.../ LDRB R5,|
000010d0  43 62 6f 6d 62 73 5f 73  70 65 65 64 20 3a 20 53  |Cbombs_speed : S|
000010e0  54 52 42 20 52 35 2c 62  6f 6d 62 73 5f 73 70 65  |TRB R5,bombs_spe|
000010f0  65 64 0d 05 be 21 20 4d  4f 56 20 52 35 2c 23 32  |ed...! MOV R5,#2|
00001100  20 20 3a 20 53 54 52 42  20 52 35 2c 5b 52 34 2c  |  : STRB R5,[R4,|
00001110  23 35 5d 0d 05 c8 10 20  42 20 66 61 73 74 5f 62  |#5].... B fast_b|
00001120  6f 6d 62 0d 05 d2 0f 20  2e 73 6c 6f 77 5f 62 6f  |omb.... .slow_bo|
00001130  6d 62 0d 05 dc 21 20 4d  4f 56 20 52 35 2c 23 31  |mb...! MOV R5,#1|
00001140  20 20 3a 20 53 54 52 42  20 52 35 2c 5b 52 34 2c  |  : STRB R5,[R4,|
00001150  23 35 5d 0d 05 e6 0f 20  2e 66 61 73 74 5f 62 6f  |#5].... .fast_bo|
00001160  6d 62 0d 05 f0 05 20 0d  05 fa 1b 20 53 54 4d 46  |mb.... .... STMF|
00001170  44 20 52 31 33 21 2c 7b  52 31 34 2c 52 30 2d 52  |D R13!,{R14,R0-R|
00001180  32 7d 0d 06 04 5f 20 4d  4f 56 20 52 31 2c 52 30  |2}..._ MOV R1,R0|
00001190  20 3a 20 41 44 44 20 52  31 2c 52 31 2c 23 31 39  | : ADD R1,R1,#19|
000011a0  32 30 20 3a 20 41 44 44  20 52 31 2c 52 31 2c 23  |20 : ADD R1,R1,#|
000011b0  33 20 20 20 20 20 3b 20  20 70 6c 61 63 65 20 62  |3     ;  place b|
000011c0  6f 6d 62 73 20 62 65 6c  6f 77 20 63 65 6e 74 72  |ombs below centr|
000011d0  65 20 6f 66 20 61 6c 69  65 6e 20 73 70 72 69 74  |e of alien sprit|
000011e0  65 0d 06 0e 4b 20 53 54  52 20 52 31 2c 5b 52 34  |e...K STR R1,[R4|
000011f0  5d 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |]             ; |
00001200  20 20 73 74 6f 72 65 73  20 61 64 64 72 65 73 73  |  stores address|
00001210  20 61 6c 69 65 6e 20 72  65 61 63 68 65 64 20 77  | alien reached w|
00001220  68 65 6e 20 64 72 6f 70  70 69 6e 67 0d 06 18 2b  |hen dropping...+|
00001230  20 42 4c 20 70 72 69 6e  74 5f 62 6f 6d 62 20 3a  | BL print_bomb :|
00001240  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 35  | LDMFD R13!,{R15|
00001250  2c 52 30 2d 52 32 7d 0d  06 22 0d 20 2e 6e 6f 5f  |,R0-R2}..". .no_|
00001260  62 6f 6d 62 0d 06 2c 10  20 4d 4f 56 20 52 31 35  |bomb..,. MOV R15|
00001270  2c 52 31 34 0d 06 36 1b  20 2e 6e 6f 5f 61 6c 69  |,R14..6. .no_ali|
00001280  65 6e 5f 62 6f 6d 62 73  20 45 51 55 42 20 30 0d  |en_bombs EQUB 0.|
00001290  06 40 45 20 2e 63 79 61  6e 5f 63 6f 75 6e 74 65  |.@E .cyan_counte|
000012a0  72 20 20 20 45 51 55 42  20 34 20 20 20 20 20 20  |r   EQUB 4      |
000012b0  20 3b 20 20 20 63 79 61  6e 20 62 6f 6d 62 20 64  | ;   cyan bomb d|
000012c0  72 6f 70 70 65 64 20 65  76 65 72 79 20 73 6f 20  |ropped every so |
000012d0  6d 61 6e 79 0d 06 4a 1b  20 2e 43 63 79 61 6e 5f  |many..J. .Ccyan_|
000012e0  63 6f 75 6e 74 65 72 20  20 45 51 55 42 20 34 0d  |counter  EQUB 4.|
000012f0  06 54 44 20 2e 72 65 64  5f 63 6f 75 6e 74 65 72  |.TD .red_counter|
00001300  20 20 20 20 20 45 51 55  42 20 38 20 20 20 20 20  |     EQUB 8     |
00001310  20 3b 20 20 20 72 65 64  20 62 6f 6d 62 20 64 72  | ;   red bomb dr|
00001320  6f 70 70 65 64 20 65 76  65 72 79 20 73 6f 20 6d  |opped every so m|
00001330  61 6e 79 0d 06 5e 1c 20  2e 43 72 65 64 5f 63 6f  |any..^. .Cred_co|
00001340  75 6e 74 65 72 20 20 20  20 45 51 55 42 20 38 0d  |unter    EQUB 8.|
00001350  06 68 53 20 2e 62 6f 6d  62 73 5f 73 70 65 65 64  |.hS .bombs_speed|
00001360  20 20 20 20 20 45 51 55  42 20 31 30 20 20 20 20  |     EQUB 10    |
00001370  20 3b 20 20 20 31 36 30  3d 20 31 20 6c 69 6e 65  | ;   160= 1 line|
00001380  2c 20 33 32 30 3d 20 32  20 6c 69 6e 65 73 20 6f  |, 320= 2 lines o|
00001390  6e 20 65 76 65 72 79 20  31 30 27 74 68 20 62 6f  |n every 10'th bo|
000013a0  6d 62 0d 06 72 1d 20 2e  43 62 6f 6d 62 73 5f 73  |mb..r. .Cbombs_s|
000013b0  70 65 65 64 20 20 20 20  45 51 55 42 20 31 30 0d  |peed    EQUB 10.|
000013c0  06 7c 52 20 2e 62 6f 6d  62 5f 64 72 6f 70 5f 70  |.|R .bomb_drop_p|
000013d0  6f 73 20 20 20 45 51 55  42 20 32 20 20 20 20 20  |os   EQUB 2     |
000013e0  20 3b 20 20 20 70 6f 73  69 74 69 6f 6e 73 20 69  | ;   positions i|
000013f0  6e 20 77 68 69 63 68 20  74 6f 20 64 72 6f 70 20  |n which to drop |
00001400  62 6f 6d 62 73 2c 20 73  65 74 20 74 6f 20 74 77  |bombs, set to tw|
00001410  6f 0d 06 86 0a 20 41 4c  49 47 4e 0d 06 90 04 0d  |o.... ALIGN.....|
00001420  06 9a 1b 20 2e 64 69 72  65 63 74 69 76 65 5f 61  |... .directive_a|
00001430  6c 69 65 6e 5f 62 6f 6d  62 73 0d 06 a4 1b 20 4c  |lien_bombs.... L|
00001440  44 52 42 20 52 31 2c 6e  6f 5f 61 6c 69 65 6e 5f  |DRB R1,no_alien_|
00001450  62 6f 6d 62 73 0d 06 ae  10 20 4d 4f 56 20 52 31  |bombs.... MOV R1|
00001460  35 2c 52 31 34 0d 06 b8  05 20 0d 06 c2 96 20 2e  |5,R14.... .... .|
00001470  72 61 6e 64 6f 6d 5f 67  65 6e 65 72 61 74 6f 72  |random_generator|
00001480  20 20 20 20 20 3b 20 20  20 67 65 6e 65 72 61 74  |     ;   generat|
00001490  65 20 72 61 6e 64 6f 6d  20 6e 75 6d 62 65 72 73  |e random numbers|
000014a0  20 69 6e 20 70 61 74 74  65 72 6e 20 6c 6f 6f 70  | in pattern loop|
000014b0  20 65 61 63 68 20 20 20  20 74 69 6d 65 20 63 68  | each    time ch|
000014c0  61 72 61 63 74 65 72 20  69 73 20 6d 6f 76 65 64  |aracter is moved|
000014d0  2c 20 74 68 65 73 65 20  61 72 65 20 74 68 65 20  |, these are the |
000014e0  70 6f 73 69 74 69 6f 6e  73 20 74 68 65 20 62 6f  |positions the bo|
000014f0  6d 62 73 20 61 72 65 20  64 72 6f 70 70 65 64 2e  |mbs are dropped.|
00001500  0d 06 cc 4d 20 4c 44 52  42 20 52 35 2c 6e 6f 5f  |...M LDRB R5,no_|
00001510  72 61 6e 64 6f 6d 5f 6e  75 6d 62 65 72 73 20 20  |random_numbers  |
00001520  20 20 20 20 20 3b 20 20  20 6e 75 6d 62 65 72 20  |     ;   number |
00001530  6f 66 20 72 61 6e 64 6f  6d 20 6e 75 6d 62 65 72  |of random number|
00001540  73 20 74 6f 20 67 65 6e  65 72 61 74 65 0d 06 d6  |s to generate...|
00001550  15 20 4c 44 52 42 20 52  37 2c 6e 6f 5f 72 61 6e  |. LDRB R7,no_ran|
00001560  67 65 0d 06 e0 37 20 41  44 52 20 52 36 2c 72 61  |ge...7 ADR R6,ra|
00001570  6e 64 6f 6d 5f 6e 75 6d  62 65 72 73 20 3b 20 20  |ndom_numbers ;  |
00001580  20 73 74 6f 72 65 20 66  6f 72 20 72 61 6e 64 6f  | store for rando|
00001590  6d 20 6e 75 6d 62 65 72  73 0d 06 ea 0c 20 2e 72  |m numbers.... .r|
000015a0  67 6c 6f 6f 70 0d 06 f4  33 20 4d 4f 56 20 52 31  |gloop...3 MOV R1|
000015b0  2c 23 38 20 20 20 20 20  20 20 20 20 20 20 20 20  |,#8             |
000015c0  3b 20 20 20 69 6e 69 74  69 61 6c 69 73 65 20 62  |;   initialise b|
000015d0  69 74 20 63 6f 75 6e 74  0d 06 fe 33 20 4d 4f 56  |it count...3 MOV|
000015e0  20 52 33 2c 23 26 38 30  30 30 30 30 30 30 20 20  | R3,#&80000000  |
000015f0  20 20 20 3b 20 20 20 6d  73 62 20 73 65 74 20 74  |   ;   msb set t|
00001600  6f 20 31 20 66 6f 72 20  54 53 54 0d 07 08 0b 20  |o 1 for TST.... |
00001610  2e 62 65 67 69 6e 0d 07  12 14 20 4c 44 52 20 52  |.begin.... LDR R|
00001620  32 2c 73 68 69 66 74 72  65 67 0d 07 1c 0e 20 54  |2,shiftreg.... T|
00001630  53 54 20 52 32 2c 52 33  0d 07 26 39 20 42 45 51  |ST R2,R3..&9 BEQ|
00001640  20 7a 65 72 6f 62 69 74  20 20 20 20 20 20 20 20  | zerobit        |
00001650  20 20 20 3b 20 20 20 e7  20 6d 73 62 20 3d 30 20  |   ;   . msb =0 |
00001660  42 72 61 6e 63 68 20 74  6f 20 7a 65 72 6f 62 69  |Branch to zerobi|
00001670  74 0d 07 30 14 20 4c 44  52 20 52 34 2c 63 6f 6e  |t..0. LDR R4,con|
00001680  73 74 61 6e 74 0d 07 3a  46 20 82 53 20 52 32 2c  |stant..:F .S R2,|
00001690  52 32 2c 52 34 20 20 20  20 20 20 20 20 20 3b 20  |R2,R4         ; |
000016a0  20 20 82 20 62 6f 74 74  6f 6d 20 33 20 62 69 74  |  . bottom 3 bit|
000016b0  73 20 6f 66 20 73 68 69  66 74 72 65 67 20 77 69  |s of shiftreg wi|
000016c0  74 68 20 63 6f 6e 73 74  61 6e 74 0d 07 44 0d 20  |th constant..D. |
000016d0  2e 7a 65 72 6f 62 69 74  0d 07 4e 39 20 4d 4f 56  |.zerobit..N9 MOV|
000016e0  53 20 52 32 2c 52 32 2c  4c 53 4c 20 23 31 20 20  |S R2,R2,LSL #1  |
000016f0  20 20 20 3b 20 20 20 52  6f 74 61 74 65 20 73 68  |   ;   Rotate sh|
00001700  69 66 74 72 65 67 20 31  20 62 69 74 20 6c 65 66  |iftreg 1 bit lef|
00001710  74 0d 07 58 32 20 53 54  52 20 52 32 2c 73 68 69  |t..X2 STR R2,shi|
00001720  66 74 72 65 67 20 20 20  20 20 20 20 3b 20 20 20  |ftreg       ;   |
00001730  73 74 6f 72 65 20 72 61  6e 64 6f 6d 20 6e 75 6d  |store random num|
00001740  62 65 72 0d 07 62 32 20  53 55 42 53 20 52 31 2c  |ber..b2 SUBS R1,|
00001750  52 31 2c 23 31 20 20 20  20 20 20 20 20 20 3b 20  |R1,#1         ; |
00001760  20 20 63 6f 6e 74 69 6e  75 65 20 66 6f 72 20 38  |  continue for 8|
00001770  20 62 69 74 73 0d 07 6c  0e 20 42 4e 45 20 62 65  | bits..l. BNE be|
00001780  67 69 6e 0d 07 76 38 20  4d 4f 56 20 52 32 2c 52  |gin..v8 MOV R2,R|
00001790  32 2c 4c 53 52 20 23 32  34 20 20 20 20 20 3b 20  |2,LSR #24     ; |
000017a0  20 20 53 68 69 66 74 20  48 49 20 42 59 54 45 20  |  Shift HI BYTE |
000017b0  74 6f 20 4c 4f 57 20 42  59 54 45 0d 07 80 11 20  |to LOW BYTE.... |
000017c0  2e 63 68 65 63 6b 5f 72  61 6e 67 65 0d 07 8a 38  |.check_range...8|
000017d0  20 43 4d 50 20 52 32 2c  52 37 20 20 20 20 20 20  | CMP R2,R7      |
000017e0  20 20 20 20 20 20 20 3b  20 20 20 63 68 65 63 6b  |       ;   check|
000017f0  20 72 61 6e 64 6f 6d 20  6e 75 6d 62 65 72 20 72  | random number r|
00001800  61 6e 67 65 0d 07 94 15  20 42 4c 45 20 77 69 74  |ange.... BLE wit|
00001810  68 69 6e 5f 72 61 6e 67  65 0d 07 9e 3b 20 53 55  |hin_range...; SU|
00001820  42 20 52 32 2c 52 32 2c  52 37 20 20 20 20 20 20  |B R2,R2,R7      |
00001830  20 20 20 20 3b 20 20 20  72 61 6e 64 6f 6d 20 6e  |    ;   random n|
00001840  6f 2e 20 3d 20 72 61 6e  64 6f 6d 20 6e 6f 2e 20  |o. = random no. |
00001850  2d 20 39 34 0d 07 a8 12  20 42 20 63 68 65 63 6b  |- 94.... B check|
00001860  5f 72 61 6e 67 65 0d 07  b2 12 20 2e 77 69 74 68  |_range.... .with|
00001870  69 6e 5f 72 61 6e 67 65  0d 07 bc 2f 20 53 54 52  |in_range.../ STR|
00001880  42 20 52 32 2c 5b 52 36  2c 52 35 5d 20 20 20 20  |B R2,[R6,R5]    |
00001890  20 20 20 3b 20 20 20 73  74 6f 72 65 20 72 61 6e  |   ;   store ran|
000018a0  64 6f 6d 20 6e 6f 2e 0d  07 c6 27 20 53 55 42 53  |dom no....' SUBS|
000018b0  20 52 35 2c 52 35 2c 23  31 20 20 20 20 20 20 20  | R5,R5,#1       |
000018c0  20 20 3b 20 20 20 ed 20  6e 75 6d 62 65 72 0d 07  |  ;   . number..|
000018d0  d0 0f 20 42 4e 45 20 72  67 6c 6f 6f 70 0d 07 da  |.. BNE rgloop...|
000018e0  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 07 e4  |. MOV R15,R14...|
000018f0  05 20 0d 07 ee 15 20 2e  73 68 69 66 74 72 65 67  |. .... .shiftreg|
00001900  20 45 51 55 44 20 b3 0d  07 f8 1d 20 2e 63 6f 6e  | EQUD ..... .con|
00001910  73 74 61 6e 74 20 45 51  55 44 20 26 30 30 37 36  |stant EQUD &0076|
00001920  42 35 35 33 0d 08 02 37  20 2e 72 61 6e 64 6f 6d  |B553...7 .random|
00001930  5f 6e 75 6d 62 65 72 73  20 45 51 55 44 20 30 3a  |_numbers EQUD 0:|
00001940  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00001950  55 44 20 30 3a 45 51 55  44 20 30 0d 08 0c 1e 20  |UD 0:EQUD 0.... |
00001960  2e 6e 6f 5f 72 61 6e 64  6f 6d 5f 6e 75 6d 62 65  |.no_random_numbe|
00001970  72 73 20 45 51 55 42 20  32 0d 08 16 16 20 2e 6e  |rs EQUB 2.... .n|
00001980  6f 5f 72 61 6e 67 65 20  45 51 55 42 20 39 34 0d  |o_range EQUB 94.|
00001990  08 20 0a 20 41 4c 49 47  4e 0d 08 2a 04 0d 08 34  |. . ALIGN..*...4|
000019a0  0d 20 2e 64 69 73 70 6c  61 79 0d 08 3e 11 20 41  |. .display..>. A|
000019b0  44 44 20 52 38 2c 52 38  2c 23 31 0d 08 48 3c 20  |DD R8,R8,#1..H< |
000019c0  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 7d  |STMFD R13!,{R14}|
000019d0  3a 42 4c 20 6c 6f 61 64  5f 6e 6f 5f 6f 66 5f 73  |:BL load_no_of_s|
000019e0  70 72 69 74 65 73 3a 4c  44 4d 46 44 20 52 31 33  |prites:LDMFD R13|
000019f0  21 2c 7b 52 31 34 7d 0d  08 52 20 20 43 4d 50 20  |!,{R14}..R  CMP |
00001a00  52 38 2c 52 31 30 20 3a  20 53 55 42 45 51 20 52  |R8,R10 : SUBEQ R|
00001a10  38 2c 52 38 2c 23 31 0d  08 5c 27 20 4d 4f 56 20  |8,R8,#1..\' MOV |
00001a20  52 39 2c 23 31 20 3a 20  53 54 52 45 51 42 20 52  |R9,#1 : STREQB R|
00001a30  39 2c 73 65 63 74 69 6f  6e 5f 66 6c 61 67 0d 08  |9,section_flag..|
00001a40  66 1b 20 4d 4f 56 20 52  31 32 2c 23 31 20 3a 20  |f. MOV R12,#1 : |
00001a50  4d 4f 56 20 52 39 2c 23  30 0d 08 70 0a 20 2e 6c  |MOV R9,#0..p. .l|
00001a60  6f 6f 70 0d 08 7a 48 20  53 54 4d 46 44 20 52 31  |oop..zH STMFD R1|
00001a70  33 21 2c 7b 52 31 34 2c  52 30 2d 52 37 7d 20 3a  |3!,{R14,R0-R7} :|
00001a80  20 42 4c 20 63 68 61 6e  67 65 5f 70 61 6c 65 74  | BL change_palet|
00001a90  74 65 20 3a 20 4c 44 4d  46 44 20 52 31 33 21 2c  |te : LDMFD R13!,|
00001aa0  7b 52 31 34 2c 52 30 2d  52 37 7d 0d 08 84 04 0d  |{R14,R0-R7}.....|
00001ab0  08 8e 69 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |..i STMFD R13!,{|
00001ac0  52 39 2c 52 38 7d 3a 20  42 4c 20 65 78 70 6c 6f  |R9,R8}: BL explo|
00001ad0  73 69 6f 6e 5f 63 68 65  63 6b 20 3a 20 42 4c 20  |sion_check : BL |
00001ae0  62 6f 6d 62 5f 65 78 70  6c 6f 5f 63 68 65 63 6b  |bomb_explo_check|
00001af0  20 3a 20 42 4c 20 63 6c  75 73 74 65 72 5f 63 68  | : BL cluster_ch|
00001b00  65 63 6b 20 3a 20 4c 44  4d 46 44 20 52 31 33 21  |eck : LDMFD R13!|
00001b10  2c 7b 52 39 2c 52 38 7d  0d 08 98 6f 20 4c 44 52  |,{R9,R8}...o LDR|
00001b20  42 20 52 31 30 2c 73 65  63 74 69 6f 6e 5f 66 6c  |B R10,section_fl|
00001b30  61 67 20 3a 20 43 4d 50  20 52 31 30 2c 23 31 20  |ag : CMP R10,#1 |
00001b40  3a 20 42 45 51 20 62 6c  61 63 6b 6f 75 74 20 20  |: BEQ blackout  |
00001b50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001b60  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 20  |             ;  |
00001b70  20 20 20 66 69 72 73 74  20 73 65 74 20 69 6e 20  |   first set in |
00001b80  70 61 74 74 65 72 6e 0d  08 a2 1e 20 43 4d 50 20  |pattern.... CMP |
00001b90  52 38 2c 52 31 32 20 3a  20 42 4e 45 20 62 6c 61  |R8,R12 : BNE bla|
00001ba0  63 6b 6f 75 74 0d 08 ac  2c 20 4c 44 52 42 20 52  |ckout..., LDRB R|
00001bb0  31 30 2c 64 65 6c 61 79  20 3a 20 43 4d 50 20 52  |10,delay : CMP R|
00001bc0  31 30 2c 23 30 20 3a 20  42 45 51 20 6f 76 65 72  |10,#0 : BEQ over|
00001bd0  32 0d 08 b6 24 20 53 55  42 20 52 31 30 2c 52 31  |2...$ SUB R10,R1|
00001be0  30 2c 23 31 20 3a 20 53  54 52 42 20 52 31 30 2c  |0,#1 : STRB R10,|
00001bf0  64 65 6c 61 79 0d 08 c0  1b 20 4d 4f 56 20 52 31  |delay.... MOV R1|
00001c00  32 2c 23 31 20 3a 20 4d  4f 56 20 52 39 2c 23 30  |2,#1 : MOV R9,#0|
00001c10  0d 08 ca 1b 20 43 4d 50  20 52 38 2c 52 31 32 20  |.... CMP R8,R12 |
00001c20  3a 20 42 45 51 20 70 72  69 6e 74 0d 08 d4 0f 20  |: BEQ print.... |
00001c30  42 20 62 6c 61 63 6b 6f  75 74 0d 08 de 0b 20 2e  |B blackout.... .|
00001c40  6f 76 65 72 32 0d 08 e8  24 20 4c 44 52 42 20 52  |over2...$ LDRB R|
00001c50  31 30 2c 73 70 61 63 65  20 3a 20 53 54 52 42 20  |10,space : STRB |
00001c60  52 31 30 2c 64 65 6c 61  79 0d 08 f2 44 20 43 4d  |R10,delay...D CM|
00001c70  50 20 52 38 2c 52 31 32  20 3a 20 42 45 51 20 70  |P R8,R12 : BEQ p|
00001c80  72 69 6e 74 20 20 20 20  20 20 20 20 20 20 20 20  |rint            |
00001c90  20 20 3b 20 63 68 65 63  6b 20 69 66 20 6c 61 73  |  ; check if las|
00001ca0  74 20 6f 6e 65 20 69 6e  20 6c 6f 6f 70 0d 08 fc  |t one in loop...|
00001cb0  05 20 0d 09 06 0e 20 2e  62 6c 61 63 6b 6f 75 74  |. .... .blackout|
00001cc0  0d 09 10 3c 20 53 54 4d  46 44 20 52 31 33 21 2c  |...< STMFD R13!,|
00001cd0  7b 52 31 34 7d 20 3a 20  42 4c 20 64 69 72 65 63  |{R14} : BL direc|
00001ce0  74 69 76 65 5f 62 79 74  65 20 3a 20 4c 44 4d 46  |tive_byte : LDMF|
00001cf0  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 09 1a 4d  |D R13!,{R14}...M|
00001d00  20 41 44 44 20 52 31 30  2c 52 39 2c 23 39 20 3a  | ADD R10,R9,#9 :|
00001d10  20 4c 44 52 42 20 52 31  31 2c 5b 52 32 2c 52 31  | LDRB R11,[R2,R1|
00001d20  30 5d 20 3a 20 43 4d 50  20 52 31 31 2c 23 34 20  |0] : CMP R11,#4 |
00001d30  3a 20 42 45 51 20 6f 76  65 72 20 20 20 20 3b 20  |: BEQ over    ; |
00001d40  65 78 70 6c 6f 73 69 6f  6e 0d 09 24 33 20 43 4d  |explosion..$3 CM|
00001d50  50 20 52 31 31 2c 23 32  20 3a 20 42 45 51 20 6f  |P R11,#2 : BEQ o|
00001d60  76 65 72 20 20 20 20 3b  20 20 20 20 64 65 61 64  |ver    ;    dead|
00001d70  20 2f 20 6f 66 66 73 63  72 65 65 6e 0d 09 2e 24  | / offscreen...$|
00001d80  20 41 44 44 20 52 31 30  2c 52 39 2c 23 30 20 3a  | ADD R10,R9,#0 :|
00001d90  20 4c 44 52 20 52 31 2c  5b 52 32 2c 52 31 30 5d  | LDR R1,[R2,R10]|
00001da0  0d 09 38 12 20 41 44 44  20 52 31 30 2c 52 39 2c  |..8. ADD R10,R9,|
00001db0  23 34 0d 09 42 0c 20 42  4c 20 64 72 61 77 0d 09  |#4..B. BL draw..|
00001dc0  4c 05 20 0d 09 56 98 20  2e 70 72 69 6e 74 20 42  |L. ..V. .print B|
00001dd0  4c 20 67 65 74 6c 6f 63  20 20 20 20 20 20 20 20  |L getloc        |
00001de0  3b 20 20 20 62 65 66 6f  72 65 20 63 61 6c 63 75  |;   before calcu|
00001df0  6c 61 74 69 6e 67 20 6e  65 77 20 61 64 64 72 65  |lating new addre|
00001e00  73 73 20 74 68 65 20 73  70 72 69 74 65 20 69 73  |ss the sprite is|
00001e10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001e30  20 20 20 20 72 65 6d 6f  76 65 64 20 66 72 6f 6d  |    removed from|
00001e40  20 73 63 72 65 65 6e 20  69 6e 20 72 6f 75 74 69  | screen in routi|
00001e50  6e 65 20 62 6c 61 63 6b  6f 75 74 0d 09 60 4d 20  |ne blackout..`M |
00001e60  41 44 44 20 52 31 30 2c  52 39 2c 23 39 20 3a 20  |ADD R10,R9,#9 : |
00001e70  4c 44 52 42 20 52 31 31  2c 5b 52 32 2c 52 31 30  |LDRB R11,[R2,R10|
00001e80  5d 20 3a 20 43 4d 50 20  52 31 31 2c 23 34 20 3a  |] : CMP R11,#4 :|
00001e90  20 42 45 51 20 6f 76 65  72 20 20 20 20 3b 20 65  | BEQ over    ; e|
00001ea0  78 70 6c 6f 73 69 6f 6e  0d 09 6a 33 20 43 4d 50  |xplosion..j3 CMP|
00001eb0  20 52 31 31 2c 23 32 20  3a 20 42 45 51 20 6f 76  | R11,#2 : BEQ ov|
00001ec0  65 72 20 20 20 20 3b 20  20 20 20 64 65 61 64 20  |er    ;    dead |
00001ed0  2f 20 6f 66 66 73 63 72  65 65 6e 0d 09 74 54 20  |/ offscreen..tT |
00001ee0  41 44 44 20 52 31 30 2c  52 39 2c 23 38 20 3a 20  |ADD R10,R9,#8 : |
00001ef0  41 44 44 20 52 31 2c 52  31 2c 23 31 20 3a 20 53  |ADD R1,R1,#1 : S|
00001f00  54 52 42 20 52 31 2c 5b  52 32 2c 52 31 30 5d 20  |TRB R1,[R2,R10] |
00001f10  20 20 20 20 3b 20 69 6e  63 72 65 6d 65 6e 74 20  |    ; increment |
00001f20  70 61 74 74 65 72 6e 20  70 6f 69 6e 74 65 72 0d  |pattern pointer.|
00001f30  09 7e 45 20 41 44 44 20  52 31 30 2c 52 39 2c 23  |.~E ADD R10,R9,#|
00001f40  30 20 3a 20 4c 44 52 20  52 31 2c 5b 52 32 2c 52  |0 : LDR R1,[R2,R|
00001f50  31 30 5d 20 20 20 20 3b  20 20 6c 6f 63 61 74 69  |10]    ;  locati|
00001f60  6f 6e 20 6f 66 20 73 63  72 65 65 6e 20 61 64 64  |on of screen add|
00001f70  72 65 73 73 0d 09 88 12  20 41 44 44 20 52 31 30  |ress.... ADD R10|
00001f80  2c 52 39 2c 23 34 0d 09  92 44 20 53 54 4d 46 44  |,R9,#4...D STMFD|
00001f90  20 52 31 33 21 2c 7b 52  31 34 2c 52 30 2d 52 38  | R13!,{R14,R0-R8|
00001fa0  7d 20 3a 20 42 4c 20 6d  6f 76 65 5f 73 74 61 72  |} : BL move_star|
00001fb0  73 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |s : LDMFD R13!,{|
00001fc0  52 31 34 2c 52 30 2d 52  38 7d 0d 09 9c 0c 20 42  |R14,R0-R8}.... B|
00001fd0  4c 20 64 72 61 77 0d 09  a6 5d 20 53 54 4d 46 44  |L draw...] STMFD|
00001fe0  20 52 31 33 21 2c 7b 52  31 34 7d 20 3a 20 42 4c  | R13!,{R14} : BL|
00001ff0  20 6c 6f 61 64 5f 64 65  61 64 20 3a 20 4c 44 4d  | load_dead : LDM|
00002000  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 20 3a 20  |FD R13!,{R14} : |
00002010  43 4d 50 20 52 31 2c 23  31 20 3a 20 42 4c 45 51  |CMP R1,#1 : BLEQ|
00002020  20 75 73 65 72 73 68 69  70 5f 65 78 70 6c 6f 73  | usership_explos|
00002030  69 6f 6e 0d 09 b0 57 20  53 54 4d 46 44 20 52 31  |ion...W STMFD R1|
00002040  33 21 2c 7b 52 31 34 7d  20 3a 20 42 4c 20 6c 6f  |3!,{R14} : BL lo|
00002050  61 64 5f 64 65 61 64 20  3a 20 4c 44 4d 46 44 20  |ad_dead : LDMFD |
00002060  52 31 33 21 2c 7b 52 31  34 7d 20 3a 20 43 4d 50  |R13!,{R14} : CMP|
00002070  20 52 31 2c 23 31 20 3a  20 42 45 51 20 75 73 65  | R1,#1 : BEQ use|
00002080  72 73 68 69 70 5f 44 45  41 44 0d 09 ba 3e 20 53  |rship_DEAD...> S|
00002090  54 4d 46 44 20 52 31 33  21 2c 7b 52 38 2c 52 39  |TMFD R13!,{R8,R9|
000020a0  7d 3a 20 42 4c 20 74 65  73 74 5f 6b 65 79 70 72  |}: BL test_keypr|
000020b0  65 73 73 20 3a 20 4c 44  4d 46 44 20 52 31 33 21  |ess : LDMFD R13!|
000020c0  2c 7b 52 38 2c 52 39 7d  0d 09 c4 48 20 4d 4f 56  |,{R8,R9}...H MOV|
000020d0  20 52 30 2c 23 31 32 39  20 3a 20 4c 44 52 20 52  | R0,#129 : LDR R|
000020e0  31 2c 65 73 63 61 70 65  20 3a 20 4d 4f 56 20 52  |1,escape : MOV R|
000020f0  32 2c 23 32 35 35 20 3a  20 53 57 49 20 22 4f 53  |2,#255 : SWI "OS|
00002100  5f 42 79 74 65 22 20 20  3b 20 45 53 43 41 50 45  |_Byte"  ; ESCAPE|
00002110  0d 09 ce 25 20 43 4d 50  20 52 31 2c 23 32 35 35  |...% CMP R1,#255|
00002120  20 3a 20 42 4c 45 51 20  73 65 6c 66 5f 64 65 73  | : BLEQ self_des|
00002130  74 72 75 63 74 0d 09 d8  1a 20 42 4c 20 75 73 65  |truct.... BL use|
00002140  72 73 68 69 70 5f 63 6f  6c 6c 69 73 69 6f 6e 0d  |rship_collision.|
00002150  09 e2 13 20 2e 75 73 65  72 73 68 69 70 5f 44 45  |... .usership_DE|
00002160  41 44 0d 09 ec 5d 20 42  4c 20 6c 6f 61 64 5f 6e  |AD...] BL load_n|
00002170  6f 5f 6f 66 5f 62 75 6c  6c 65 74 73 20 3a 20 43  |o_of_bullets : C|
00002180  4d 50 20 52 32 2c 23 30  20 3a 20 53 54 4d 46 44  |MP R2,#0 : STMFD|
00002190  20 52 31 33 21 2c 7b 52  38 2c 52 39 7d 20 3a 20  | R13!,{R8,R9} : |
000021a0  42 4c 4e 45 20 69 6e 6e  65 72 20 3a 20 4c 44 4d  |BLNE inner : LDM|
000021b0  46 44 20 52 31 33 21 2c  7b 52 38 2c 52 39 7d 0d  |FD R13!,{R8,R9}.|
000021c0  09 f6 4e 20 42 4c 20 64  72 6f 70 5f 62 6f 6d 62  |..N BL drop_bomb|
000021d0  73 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 20  |s            ;  |
000021e0  20 61 6c 69 65 6e 20 62  6f 6d 62 73 20 61 72 65  | alien bombs are|
000021f0  20 6d 6f 76 65 64 20 66  75 74 68 65 72 20 64 6f  | moved futher do|
00002200  77 6e 20 74 68 65 20 73  63 72 65 65 6e 0d 0a 00  |wn the screen...|
00002210  0c 20 42 4c 20 73 6c 6f  77 0d 0a 0a 0a 20 2e 6f  |. BL slow.... .o|
00002220  76 65 72 0d 0a 14 40 20  53 54 4d 46 44 20 52 31  |ver...@ STMFD R1|
00002230  33 21 2c 7b 52 31 34 7d  20 3a 20 42 4c 20 6c 6f  |3!,{R14} : BL lo|
00002240  61 64 5f 6e 6f 5f 6f 66  5f 73 70 72 69 74 65 73  |ad_no_of_sprites|
00002250  20 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  | : LDMFD R13!,{R|
00002260  31 34 7d 0d 0a 1e 13 20  53 55 42 20 52 31 30 2c  |14}.... SUB R10,|
00002270  52 31 30 2c 23 31 0d 0a  28 3e 20 53 54 4d 46 44  |R10,#1..(> STMFD|
00002280  20 52 31 33 21 2c 7b 52  31 34 7d 20 3a 20 42 4c  | R13!,{R14} : BL|
00002290  20 6c 6f 61 64 5f 6c 61  73 74 5f 73 70 72 69 74  | load_last_sprit|
000022a0  65 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |e : LDMFD R13!,{|
000022b0  52 31 34 7d 0d 0a 32 24  20 43 4d 50 20 52 31 30  |R14}..2$ CMP R10|
000022c0  2c 52 31 31 20 3a 20 42  45 51 20 63 6f 6e 74 69  |,R11 : BEQ conti|
000022d0  6e 75 65 5f 70 6c 61 79  0d 0a 3c 42 20 43 4d 50  |nue_play..<B CMP|
000022e0  20 52 38 2c 52 31 32 20  3a 20 42 45 51 20 64 69  | R8,R12 : BEQ di|
000022f0  73 70 6c 61 79 20 20 20  20 3b 20 6e 6f 20 6d 6f  |splay    ; no mo|
00002300  72 65 20 73 70 72 69 74  65 73 20 69 6e 20 74 68  |re sprites in th|
00002310  69 73 20 73 65 63 74 69  6f 6e 0d 0a 46 40 20 41  |is section..F@ A|
00002320  44 44 20 52 31 32 2c 52  31 32 2c 23 31 20 3a 20  |DD R12,R12,#1 : |
00002330  41 44 44 20 52 39 2c 52  39 2c 23 31 32 20 3a 20  |ADD R9,R9,#12 : |
00002340  42 20 6c 6f 6f 70 20 20  20 20 20 3b 20 20 20 6e  |B loop     ;   n|
00002350  65 78 74 20 73 70 72 69  74 65 0d 0a 50 12 20 2e  |ext sprite..P. .|
00002360  73 70 61 63 65 20 45 51  55 42 20 37 0d 0a 5a 12  |space EQUB 7..Z.|
00002370  20 2e 64 65 6c 61 79 20  45 51 55 42 20 37 0d 0a  | .delay EQUB 7..|
00002380  64 19 20 2e 73 65 63 74  69 6f 6e 5f 66 6c 61 67  |d. .section_flag|
00002390  20 45 51 55 42 20 30 0d  0a 6e 0a 20 41 4c 49 47  | EQUB 0..n. ALIG|
000023a0  4e 0d 0a 78 04 0d 0a 82  13 20 2e 74 65 73 74 5f  |N..x..... .test_|
000023b0  6b 65 79 70 72 65 73 73  0d 0a 8c 15 20 53 54 4d  |keypress.... STM|
000023c0  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 0d 0a 96  |FD R13!,{R14}...|
000023d0  13 20 53 57 49 20 22 4f  53 5f 4d 6f 75 73 65 22  |. SWI "OS_Mouse"|
000023e0  0d 0a a0 1b 20 43 4d 50  20 52 32 2c 23 33 20 3a  |.... CMP R2,#3 :|
000023f0  20 42 4e 45 20 74 6b 6f  76 65 72 0d 0a aa 17 20  | BNE tkover.... |
00002400  42 4c 20 66 69 72 65 20  3a 20 42 4c 20 72 69 67  |BL fire : BL rig|
00002410  68 74 0d 0a b4 0c 20 2e  74 6b 6f 76 65 72 0d 0a  |ht.... .tkover..|
00002420  be 1c 20 43 4d 50 20 52  32 2c 23 36 20 3a 20 42  |.. CMP R2,#6 : B|
00002430  4e 45 20 74 6b 6f 76 65  72 32 0d 0a c8 16 20 42  |NE tkover2.... B|
00002440  4c 20 66 69 72 65 20 3a  20 42 4c 20 6c 65 66 74  |L fire : BL left|
00002450  0d 0a d2 0d 20 2e 74 6b  6f 76 65 72 32 0d 0a dc  |.... .tkover2...|
00002460  1b 20 43 4d 50 20 52 32  2c 23 31 20 3a 20 42 4c  |. CMP R2,#1 : BL|
00002470  45 51 20 72 69 67 68 74  0d 0a e6 1a 20 43 4d 50  |EQ right.... CMP|
00002480  20 52 32 2c 23 34 20 3a  20 42 4c 45 51 20 6c 65  | R2,#4 : BLEQ le|
00002490  66 74 0d 0a f0 1a 20 43  4d 50 20 52 32 2c 23 32  |ft.... CMP R2,#2|
000024a0  20 3a 20 42 4c 45 51 20  66 69 72 65 0d 0a fa 3d  | : BLEQ fire...=|
000024b0  20 4d 4f 56 20 52 30 2c  23 31 32 39 20 3a 20 4c  | MOV R0,#129 : L|
000024c0  44 52 20 52 31 2c 75 70  6b 65 79 20 3a 20 4d 4f  |DR R1,upkey : MO|
000024d0  56 20 52 32 2c 23 32 35  35 20 3a 20 53 57 49 20  |V R2,#255 : SWI |
000024e0  22 4f 53 5f 42 79 74 65  22 0d 0b 04 1a 20 43 4d  |"OS_Byte".... CM|
000024f0  50 20 52 31 2c 23 32 35  35 20 3a 20 42 4c 45 51  |P R1,#255 : BLEQ|
00002500  20 75 70 0d 0b 0e 3f 20  4d 4f 56 20 52 30 2c 23  | up...? MOV R0,#|
00002510  31 32 39 20 3a 20 4c 44  52 20 52 31 2c 64 6f 77  |129 : LDR R1,dow|
00002520  6e 6b 65 79 20 3a 20 4d  4f 56 20 52 32 2c 23 32  |nkey : MOV R2,#2|
00002530  35 35 20 3a 20 53 57 49  20 22 4f 53 5f 42 79 74  |55 : SWI "OS_Byt|
00002540  65 22 0d 0b 18 1c 20 43  4d 50 20 52 31 2c 23 32  |e".... CMP R1,#2|
00002550  35 35 20 3a 20 42 4c 45  51 20 64 6f 77 6e 0d 0b  |55 : BLEQ down..|
00002560  22 40 20 4d 4f 56 20 52  30 2c 23 31 32 39 20 3a  |"@ MOV R0,#129 :|
00002570  20 4c 44 52 20 52 31 2c  70 61 75 73 65 6b 65 79  | LDR R1,pausekey|
00002580  20 3a 20 4d 4f 56 20 52  32 2c 23 32 35 35 20 3a  | : MOV R2,#255 :|
00002590  20 53 57 49 20 22 4f 53  5f 42 79 74 65 22 0d 0b  | SWI "OS_Byte"..|
000025a0  2c 43 20 43 4d 50 20 52  31 2c 23 32 35 35 20 3a  |,C CMP R1,#255 :|
000025b0  20 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | STMFD R13!,{R14|
000025c0  7d 20 3a 20 42 4c 45 51  20 70 61 75 73 65 20 3a  |} : BLEQ pause :|
000025d0  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | LDMFD R13!,{R14|
000025e0  7d 0d 0b 36 43 20 53 54  4d 46 44 20 52 31 33 21  |}..6C STMFD R13!|
000025f0  2c 7b 52 31 34 2c 52 30  2d 52 31 32 7d 20 3a 20  |,{R14,R0-R12} : |
00002600  42 4c 45 51 20 70 61 75  73 65 20 3a 20 4c 44 4d  |BLEQ pause : LDM|
00002610  46 44 20 52 31 33 21 2c  7b 52 31 34 2c 52 30 2d  |FD R13!,{R14,R0-|
00002620  52 31 32 7d 0d 0b 40 2b  20 4d 4f 56 20 52 30 2c  |R12}..@+ MOV R0,|
00002630  23 31 35 20 3a 20 4d 4f  56 20 52 31 2c 23 30 20  |#15 : MOV R1,#0 |
00002640  3a 20 53 57 49 20 22 4f  53 5f 42 79 74 65 22 0d  |: SWI "OS_Byte".|
00002650  0b 4a 15 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |.J. LDMFD R13!,{|
00002660  52 31 35 7d 0d 0b 54 3c  20 2e 75 70 6b 65 79 20  |R15}..T< .upkey |
00002670  20 20 20 45 51 55 44 20  26 46 46 46 46 46 46 42  |   EQUD &FFFFFFB|
00002680  45 20 20 20 20 20 20 20  20 20 20 20 3b 20 20 41  |E           ;  A|
00002690  20 2d 20 a6 20 76 61 6c  75 65 20 28 2d 36 36 29  | - . value (-66)|
000026a0  0d 0b 5e 3c 20 2e 64 6f  77 6e 6b 65 79 20 20 45  |..^< .downkey  E|
000026b0  51 55 44 20 26 46 46 46  46 46 46 39 45 20 20 20  |QUD &FFFFFF9E   |
000026c0  20 20 20 20 20 20 20 20  3b 20 20 5a 20 2d 20 a6  |        ;  Z - .|
000026d0  20 76 61 6c 75 65 20 28  2d 39 38 29 0d 0b 68 3c  | value (-98)..h<|
000026e0  20 2e 70 61 75 73 65 6b  65 79 20 45 51 55 44 20  | .pausekey EQUD |
000026f0  26 46 46 46 46 46 46 43  38 20 20 20 20 20 20 20  |&FFFFFFC8       |
00002700  20 20 20 20 3b 20 20 50  20 2d 20 a6 20 76 61 6c  |    ;  P - . val|
00002710  75 65 20 28 2d 35 36 29  0d 0b 72 3f 20 2e 65 73  |ue (-56)..r? .es|
00002720  63 61 70 65 20 20 20 45  51 55 44 20 26 46 46 46  |cape   EQUD &FFF|
00002730  46 46 46 38 46 20 20 20  20 20 20 20 20 20 20 20  |FFF8F           |
00002740  3b 20 20 45 53 43 20 2d  20 a6 20 76 61 6c 75 65  |;  ESC - . value|
00002750  20 28 2d 31 31 33 29 0d  0b 7c 04 0d 0b 86 0a 20  | (-113)..|..... |
00002760  2e 64 72 61 77 0d 0b 90  44 20 53 54 4d 46 44 20  |.draw...D STMFD |
00002770  52 31 33 21 2c 7b 52 31  34 7d 20 3a 20 42 4c 20  |R13!,{R14} : BL |
00002780  64 69 72 65 63 74 69 76  65 5f 73 70 72 69 74 65  |directive_sprite|
00002790  73 5f 64 61 74 61 20 3a  20 4c 44 4d 46 44 20 52  |s_data : LDMFD R|
000027a0  31 33 21 2c 7b 52 31 34  7d 0d 0b 9a 0f 20 4d 4f  |13!,{R14}.... MO|
000027b0  56 20 52 33 2c 23 31 32  0d 0b a4 0b 20 2e 65 69  |V R3,#12.... .ei|
000027c0  67 68 74 0d 0b ae 0e 20  4d 4f 56 20 52 34 2c 23  |ght.... MOV R4,#|
000027d0  38 0d 0b b8 0c 20 2e 74  77 65 6c 76 65 0d 0b c2  |8.... .twelve...|
000027e0  14 20 4c 44 52 42 20 52  35 2c 5b 52 32 5d 2c 23  |. LDRB R5,[R2],#|
000027f0  31 0d 0b cc 14 20 4c 44  52 42 20 52 36 2c 5b 52  |1.... LDRB R6,[R|
00002800  31 2c 23 31 5d 0d 0b d6  0f 20 82 20 52 35 2c 52  |1,#1].... . R5,R|
00002810  35 2c 52 36 0d 0b e0 15  20 53 54 52 42 20 52 35  |5,R6.... STRB R5|
00002820  2c 5b 52 31 2c 23 31 5d  21 0d 0b ea 12 20 53 55  |,[R1,#1]!.... SU|
00002830  42 53 20 52 34 2c 52 34  2c 23 31 0d 0b f4 0f 20  |BS R4,R4,#1.... |
00002840  42 4e 45 20 74 77 65 6c  76 65 0d 0b fe 33 20 41  |BNE twelve...3 A|
00002850  44 44 20 52 31 2c 52 31  2c 23 31 35 32 20 20 20  |DD R1,R1,#152   |
00002860  20 20 20 20 20 20 20 20  3b 20 20 20 31 36 30 20  |        ;   160 |
00002870  70 69 78 65 6c 73 20 61  63 72 6f 73 73 0d 0c 08  |pixels across...|
00002880  12 20 53 55 42 53 20 52  33 2c 52 33 2c 23 31 0d  |. SUBS R3,R3,#1.|
00002890  0c 12 0e 20 42 4e 45 20  65 69 67 68 74 0d 0c 1c  |... BNE eight...|
000028a0  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 0c 26  |. MOV R15,R14..&|
000028b0  04 0d 0c 30 0a 20 2e 73  6c 6f 77 0d 0c 3a 10 20  |...0. .slow..:. |
000028c0  4d 4f 56 20 52 35 2c 23  32 35 35 0d 0c 44 0b 20  |MOV R5,#255..D. |
000028d0  2e 73 6c 6f 77 31 0d 0c  4e 10 20 4d 4f 56 20 52  |.slow1..N. MOV R|
000028e0  36 2c 23 31 30 30 0d 0c  58 0b 20 2e 73 6c 6f 77  |6,#100..X. .slow|
000028f0  32 0d 0c 62 1e 20 53 55  42 53 20 52 36 2c 52 36  |2..b. SUBS R6,R6|
00002900  2c 23 35 20 3a 20 42 4e  45 20 73 6c 6f 77 32 0d  |,#5 : BNE slow2.|
00002910  0c 6c 1e 20 53 55 42 53  20 52 35 2c 52 35 2c 23  |.l. SUBS R5,R5,#|
00002920  31 20 3a 20 42 4e 45 20  73 6c 6f 77 31 0d 0c 76  |1 : BNE slow1..v|
00002930  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 0c 80  |. MOV R15,R14...|
00002940  05 20 0d 0c 8a 13 20 2e  69 6e 69 74 69 61 6c 5f  |. .... .initial_|
00002950  73 74 61 72 73 0d 0c 94  19 20 41 44 52 20 52 31  |stars.... ADR R1|
00002960  2c 73 74 61 72 73 5f 61  64 64 72 65 73 73 0d 0c  |,stars_address..|
00002970  9e 17 20 41 44 52 20 52  32 2c 73 74 61 72 73 5f  |.. ADR R2,stars_|
00002980  73 70 65 65 64 0d 0c a8  0f 20 4d 4f 56 20 52 33  |speed.... MOV R3|
00002990  2c 23 34 33 0d 0c b2 0f  20 2e 6e 65 78 74 5f 73  |,#43.... .next_s|
000029a0  74 61 72 0d 0c bc 13 20  4c 44 52 20 52 35 2c 5b  |tar.... LDR R5,[|
000029b0  52 31 5d 2c 23 34 0d 0c  c6 11 20 4c 44 52 42 20  |R1],#4.... LDRB |
000029c0  52 36 2c 5b 52 35 5d 0d  0c d0 21 20 4c 44 52 20  |R6,[R5]...! LDR |
000029d0  52 37 2c 5b 52 32 5d 2c  23 34 20 3a 20 43 4d 50  |R7,[R2],#4 : CMP|
000029e0  20 52 37 2c 23 31 36 30  0d 0c da 20 20 4d 4f 56  | R7,#160...  MOV|
000029f0  47 54 20 52 34 2c 23 26  37 37 20 3a 20 4d 4f 56  |GT R4,#&77 : MOV|
00002a00  4c 45 20 52 34 2c 23 37  0d 0c e4 0f 20 82 20 52  |LE R4,#7.... . R|
00002a10  36 2c 52 36 2c 52 34 0d  0c ee 11 20 53 54 52 42  |6,R6,R4.... STRB|
00002a20  20 52 36 2c 5b 52 35 5d  0d 0c f8 12 20 53 55 42  | R6,[R5].... SUB|
00002a30  53 20 52 33 2c 52 33 2c  23 31 0d 0d 02 12 20 42  |S R3,R3,#1.... B|
00002a40  4e 45 20 6e 65 78 74 5f  73 74 61 72 0d 0d 0c 10  |NE next_star....|
00002a50  20 4d 4f 56 20 52 31 35  2c 52 31 34 0d 0d 16 05  | MOV R15,R14....|
00002a60  20 0d 0d 20 10 20 2e 6d  6f 76 65 5f 73 74 61 72  | .. . .move_star|
00002a70  73 0d 0d 2a 3c 20 4c 44  52 20 52 31 2c 73 74 61  |s..*< LDR R1,sta|
00002a80  72 73 5f 64 65 6c 61 79  20 3a 20 53 55 42 53 20  |rs_delay : SUBS |
00002a90  52 31 2c 52 31 2c 23 31  20 3a 20 53 54 52 20 52  |R1,R1,#1 : STR R|
00002aa0  31 2c 73 74 61 72 73 5f  64 65 6c 61 79 0d 0d 34  |1,stars_delay..4|
00002ab0  33 20 4d 4f 56 4e 45 20  52 31 35 2c 52 31 34 20  |3 MOVNE R15,R14 |
00002ac0  3a 20 4d 4f 56 20 52 31  2c 23 32 20 3a 20 53 54  |: MOV R1,#2 : ST|
00002ad0  52 20 52 31 2c 73 74 61  72 73 5f 64 65 6c 61 79  |R R1,stars_delay|
00002ae0  0d 0d 3e 19 20 41 44 52  20 52 31 2c 73 74 61 72  |..>. ADR R1,star|
00002af0  73 5f 61 64 64 72 65 73  73 0d 0d 48 17 20 41 44  |s_address..H. AD|
00002b00  52 20 52 32 2c 73 74 61  72 73 5f 73 70 65 65 64  |R R2,stars_speed|
00002b10  0d 0d 52 0f 20 4d 4f 56  20 52 33 2c 23 34 33 0d  |..R. MOV R3,#43.|
00002b20  0d 5c 0f 20 2e 6e 65 78  74 5f 6d 6f 76 65 0d 0d  |.\. .next_move..|
00002b30  66 10 20 4c 44 52 20 52  35 2c 5b 52 31 5d 0d 0d  |f. LDR R5,[R1]..|
00002b40  70 11 20 4c 44 52 42 20  52 36 2c 5b 52 35 5d 0d  |p. LDRB R6,[R5].|
00002b50  0d 7a 21 20 4c 44 52 20  52 37 2c 5b 52 32 5d 2c  |.z! LDR R7,[R2],|
00002b60  23 34 20 3a 20 43 4d 50  20 52 37 2c 23 31 36 30  |#4 : CMP R7,#160|
00002b70  0d 0d 84 20 20 4d 4f 56  47 54 20 52 34 2c 23 26  |...  MOVGT R4,#&|
00002b80  37 37 20 3a 20 4d 4f 56  4c 45 20 52 34 2c 23 37  |77 : MOVLE R4,#7|
00002b90  0d 0d 8e 0f 20 82 20 52  36 2c 52 36 2c 52 34 0d  |.... . R6,R6,R4.|
00002ba0  0d 98 11 20 53 54 52 42  20 52 36 2c 5b 52 35 5d  |... STRB R6,[R5]|
00002bb0  0d 0d a2 11 20 41 44 44  20 52 35 2c 52 35 2c 52  |.... ADD R5,R5,R|
00002bc0  37 0d 0d ac 16 20 4c 44  52 20 52 38 2c 66 69 72  |7.... LDR R8,fir|
00002bd0  73 74 5f 61 64 64 72 0d  0d b6 0e 20 43 4d 50 20  |st_addr.... CMP |
00002be0  52 35 2c 52 38 0d 0d c0  18 20 4c 44 52 47 45 20  |R5,R8.... LDRGE |
00002bf0  52 38 2c 73 74 61 72 73  5f 64 6f 77 6e 0d 0d ca  |R8,stars_down...|
00002c00  13 20 53 55 42 47 45 20  52 35 2c 52 35 2c 52 38  |. SUBGE R5,R5,R8|
00002c10  0d 0d d4 13 20 53 54 52  20 52 35 2c 5b 52 31 5d  |.... STR R5,[R1]|
00002c20  2c 23 34 0d 0d de 11 20  4c 44 52 42 20 52 36 2c  |,#4.... LDRB R6,|
00002c30  5b 52 35 5d 0d 0d e8 0f  20 82 20 52 36 2c 52 36  |[R5].... . R6,R6|
00002c40  2c 52 34 0d 0d f2 11 20  53 54 52 42 20 52 36 2c  |,R4.... STRB R6,|
00002c50  5b 52 35 5d 0d 0d fc 12  20 53 55 42 53 20 52 33  |[R5].... SUBS R3|
00002c60  2c 52 33 2c 23 31 0d 0e  06 12 20 42 4e 45 20 6e  |,R3,#1.... BNE n|
00002c70  65 78 74 5f 6d 6f 76 65  0d 0e 10 10 20 4d 4f 56  |ext_move.... MOV|
00002c80  20 52 31 35 2c 52 31 34  0d 0e 1a 05 20 0d 0e 24  | R15,R14.... ..$|
00002c90  1e 20 2e 66 69 72 73 74  5f 61 64 64 72 20 45 51  |. .first_addr EQ|
00002ca0  55 44 20 26 31 46 45 31  46 46 46 0d 0e 2e 1b 20  |UD &1FE1FFF.... |
00002cb0  2e 73 74 61 72 73 5f 64  6f 77 6e 20 45 51 55 44  |.stars_down EQUD|
00002cc0  20 34 30 30 32 30 0d 0e  38 18 20 2e 73 74 61 72  | 40020..8. .star|
00002cd0  73 5f 64 65 6c 61 79 20  45 51 55 44 20 32 0d 0e  |s_delay EQUD 2..|
00002ce0  42 13 20 2e 73 74 61 72  73 5f 61 64 64 72 65 73  |B. .stars_addres|
00002cf0  73 0d 0e 4c 6c 20 45 51  55 44 20 26 31 46 44 42  |s..Ll EQUD &1FDB|
00002d00  44 46 45 3a 20 45 51 55  44 20 26 31 46 44 46 45  |DFE: EQUD &1FDFE|
00002d10  42 30 3a 20 45 51 55 44  20 26 31 46 44 46 46 35  |B0: EQUD &1FDFF5|
00002d20  30 3a 20 45 51 55 44 20  26 31 46 44 43 38 32 39  |0: EQUD &1FDC829|
00002d30  3a 20 45 51 55 44 20 26  31 46 44 41 44 33 42 3a  |: EQUD &1FDAD3B:|
00002d40  20 45 51 55 44 20 26 31  46 44 42 31 32 31 3a 20  | EQUD &1FDB121: |
00002d50  45 51 55 44 20 26 31 46  44 42 31 43 31 0d 0e 56  |EQUD &1FDB1C1..V|
00002d60  6c 20 45 51 55 44 20 26  31 46 44 43 45 36 45 3a  |l EQUD &1FDCE6E:|
00002d70  20 45 51 55 44 20 26 31  46 44 42 39 33 32 3a 20  | EQUD &1FDB932: |
00002d80  45 51 55 44 20 26 31 46  44 42 39 44 32 3a 20 45  |EQUD &1FDB9D2: E|
00002d90  51 55 44 20 26 31 46 45  31 32 44 31 3a 20 45 51  |QUD &1FE12D1: EQ|
00002da0  55 44 20 26 31 46 45 30  30 41 33 3a 20 45 51 55  |UD &1FE00A3: EQU|
00002db0  44 20 26 31 46 45 30 31  34 33 3a 20 45 51 55 44  |D &1FE0143: EQUD|
00002dc0  20 26 31 46 44 43 41 43  38 0d 0e 60 7b 20 45 51  | &1FDCAC8..`{ EQ|
00002dd0  55 44 20 26 31 46 44 42  45 36 30 3a 20 45 51 55  |UD &1FDBE60: EQU|
00002de0  44 20 26 31 46 44 42 46  30 30 3a 20 45 51 55 44  |D &1FDBF00: EQUD|
00002df0  20 26 31 46 44 45 32 30  45 3a 20 45 51 55 44 20  | &1FDE20E: EQUD |
00002e00  26 31 46 44 44 46 37 36  3a 20 45 51 55 44 20 26  |&1FDDF76: EQUD &|
00002e10  31 46 44 45 30 31 36 3a  20 45 51 55 44 20 26 31  |1FDE016: EQUD &1|
00002e20  46 44 45 41 41 31 3a 20  45 51 55 44 20 26 31 46  |FDEAA1: EQUD &1F|
00002e30  44 45 42 34 31 3a 20 45  51 55 44 20 26 31 46 45  |DEB41: EQUD &1FE|
00002e40  31 44 41 44 0d 0e 6a 6c  20 45 51 55 44 20 26 31  |1DAD..jl EQUD &1|
00002e50  46 45 30 37 35 43 3a 20  45 51 55 44 20 26 31 46  |FE075C: EQUD &1F|
00002e60  45 30 37 46 43 3a 20 45  51 55 44 20 26 31 46 45  |E07FC: EQUD &1FE|
00002e70  31 41 32 46 3a 20 45 51  55 44 20 26 31 46 45 31  |1A2F: EQUD &1FE1|
00002e80  41 43 46 3a 20 45 51 55  44 20 26 31 46 45 31 33  |ACF: EQUD &1FE13|
00002e90  38 45 3a 20 45 51 55 44  20 26 31 46 44 45 39 43  |8E: EQUD &1FDE9C|
00002ea0  35 3a 20 45 51 55 44 20  26 31 46 44 43 33 31 33  |5: EQUD &1FDC313|
00002eb0  0d 0e 74 6c 20 45 51 55  44 20 26 31 46 44 42 33  |..tl EQUD &1FDB3|
00002ec0  44 35 3a 20 45 51 55 44  20 26 31 46 44 42 34 37  |D5: EQUD &1FDB47|
00002ed0  35 3a 20 45 51 55 44 20  26 31 46 44 45 45 31 36  |5: EQUD &1FDEE16|
00002ee0  3a 20 45 51 55 44 20 26  31 46 44 45 45 42 36 3a  |: EQUD &1FDEEB6:|
00002ef0  20 45 51 55 44 20 26 31  46 44 41 39 34 43 3a 20  | EQUD &1FDA94C: |
00002f00  45 51 55 44 20 26 31 46  45 30 35 35 32 3a 20 45  |EQUD &1FE0552: E|
00002f10  51 55 44 20 26 31 46 44  44 37 38 43 0d 0e 7e 6c  |QUD &1FDD78C..~l|
00002f20  20 45 51 55 44 20 26 31  46 45 30 30 44 45 3a 20  | EQUD &1FE00DE: |
00002f30  45 51 55 44 20 26 31 46  45 30 43 43 38 3a 20 45  |EQUD &1FE0CC8: E|
00002f40  51 55 44 20 26 31 46 45  30 44 36 38 3a 20 45 51  |QUD &1FE0D68: EQ|
00002f50  55 44 20 26 31 46 45 31  30 30 38 3a 20 45 51 55  |UD &1FE1008: EQU|
00002f60  44 20 26 31 46 44 44 42  37 45 3a 20 45 51 55 44  |D &1FDDB7E: EQUD|
00002f70  20 26 31 46 44 44 35 43  36 3a 20 45 51 55 44 20  | &1FDD5C6: EQUD |
00002f80  26 31 46 44 44 36 36 36  0d 0e 88 05 20 0d 0e 92  |&1FDD666.... ...|
00002f90  11 20 2e 73 74 61 72 73  5f 73 70 65 65 64 0d 0e  |. .stars_speed..|
00002fa0  9c 8e 20 45 51 55 44 20  31 36 30 3a 20 45 51 55  |.. EQUD 160: EQU|
00002fb0  44 20 33 32 30 3a 20 45  51 55 44 20 33 32 30 3a  |D 320: EQUD 320:|
00002fc0  45 51 55 44 20 31 36 30  3a 20 45 51 55 44 20 31  |EQUD 160: EQUD 1|
00002fd0  36 30 3a 20 45 51 55 44  20 33 32 30 3a 20 45 51  |60: EQUD 320: EQ|
00002fe0  55 44 20 33 32 30 3a 20  45 51 55 44 20 31 36 30  |UD 320: EQUD 160|
00002ff0  3a 20 45 51 55 44 20 34  38 30 3a 20 45 51 55 44  |: EQUD 480: EQUD|
00003000  20 34 38 30 3a 20 45 51  55 44 20 31 36 30 3a 20  | 480: EQUD 160: |
00003010  45 51 55 44 20 33 32 30  3a 20 45 51 55 44 20 33  |EQUD 320: EQUD 3|
00003020  32 30 3a 20 45 51 55 44  20 31 36 30 0d 0e a6 99  |20: EQUD 160....|
00003030  20 45 51 55 44 20 34 38  30 3a 20 45 51 55 44 20  | EQUD 480: EQUD |
00003040  34 38 30 3a 20 45 51 55  44 20 31 36 30 3a 20 45  |480: EQUD 160: E|
00003050  51 55 44 20 33 32 30 3a  20 45 51 55 44 20 33 32  |QUD 320: EQUD 32|
00003060  30 3a 20 45 51 55 44 20  33 32 30 3a 20 45 51 55  |0: EQUD 320: EQU|
00003070  44 20 33 32 30 3a 20 45  51 55 44 20 31 36 30 3a  |D 320: EQUD 160:|
00003080  20 45 51 55 44 20 34 38  30 3a 20 45 51 55 44 20  | EQUD 480: EQUD |
00003090  34 38 30 3a 20 45 51 55  44 20 33 32 30 3a 20 45  |480: EQUD 320: E|
000030a0  51 55 44 20 33 32 30 3a  20 45 51 55 44 20 31 36  |QUD 320: EQUD 16|
000030b0  30 3a 20 45 51 55 44 20  31 36 30 3a 20 45 51 55  |0: EQUD 160: EQU|
000030c0  44 20 31 36 30 0d 0e b0  8d 20 45 51 55 44 20 33  |D 160.... EQUD 3|
000030d0  32 30 3a 20 45 51 55 44  20 33 32 30 3a 20 45 51  |20: EQUD 320: EQ|
000030e0  55 44 20 33 32 30 3a 20  45 51 55 44 20 33 32 30  |UD 320: EQUD 320|
000030f0  3a 45 51 55 44 20 31 36  30 3a 20 45 51 55 44 20  |:EQUD 160: EQUD |
00003100  31 36 30 3a 20 45 51 55  44 20 31 36 30 3a 20 45  |160: EQUD 160: E|
00003110  51 55 44 20 31 36 30 3a  20 45 51 55 44 20 34 38  |QUD 160: EQUD 48|
00003120  30 3a 20 45 51 55 44 20  34 38 30 3a 45 51 55 44  |0: EQUD 480:EQUD|
00003130  20 31 36 30 3a 20 45 51  55 44 20 31 36 30 3a 20  | 160: EQUD 160: |
00003140  45 51 55 44 20 33 32 30  3a 20 45 51 55 44 20 33  |EQUD 320: EQUD 3|
00003150  32 30 0d 0e ba 05 20 0d  0e c4 05 20 0d 0e ce 10  |20.... .... ....|
00003160  20 2e 64 72 6f 70 5f 62  6f 6d 62 73 0d 0e d8 3a  | .drop_bombs...:|
00003170  20 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | STMFD R13!,{R14|
00003180  7d 20 3a 20 42 4c 20 64  69 72 65 63 74 69 76 65  |} : BL directive|
00003190  5f 61 62 20 3a 20 4c 44  4d 46 44 20 52 31 33 21  |_ab : LDMFD R13!|
000031a0  2c 7b 52 31 34 7d 0d 0e  e2 1b 20 4c 44 52 42 20  |,{R14}.... LDRB |
000031b0  52 35 2c 6e 6f 5f 61 6c  69 65 6e 5f 62 6f 6d 62  |R5,no_alien_bomb|
000031c0  73 0d 0e ec 1b 20 43 4d  50 20 52 35 2c 23 30 20  |s.... CMP R5,#0 |
000031d0  3a 20 ec 51 20 52 31 35  2c 52 31 34 0d 0e f6 0e  |: .Q R15,R14....|
000031e0  20 4d 4f 56 20 52 32 2c  23 31 0d 0f 00 19 20 4c  | MOV R2,#1.... L|
000031f0  44 52 20 52 36 2c 73 63  72 65 65 6e 5f 62 6f 74  |DR R6,screen_bot|
00003200  74 6f 6d 0d 0f 0a 71 20  4c 44 52 20 52 31 30 2c  |tom...q LDR R10,|
00003210  6c 65 66 74 73 69 64 65  20 20 3a 20 41 44 44 20  |leftside  : ADD |
00003220  52 31 30 2c 52 31 30 2c  23 31 36 30 30 20 20 20  |R10,R10,#1600   |
00003230  20 20 20 20 20 20 20 3b  20 20 20 6d 6f 76 65 20  |       ;   move |
00003240  63 68 65 63 6b 20 70 6f  69 6e 74 20 28 6c 65 66  |check point (lef|
00003250  74 73 69 64 65 29 20 74  6f 20 20 20 62 6f 74 74  |tside) to   bott|
00003260  6f 6d 20 6c 65 76 65 6c  20 6f 66 20 75 73 65 72  |om level of user|
00003270  73 68 69 70 0d 0f 14 b0  20 4c 44 52 20 52 31 31  |ship.... LDR R11|
00003280  2c 72 69 67 68 74 73 69  64 65 20 3a 20 41 44 44  |,rightside : ADD|
00003290  20 52 31 31 2c 52 31 31  2c 23 31 37 36 30 20 20  | R11,R11,#1760  |
000032a0  20 20 20 20 20 20 20 20  3b 20 20 20 6d 6f 76 65  |        ;   move|
000032b0  20 63 68 65 63 6b 20 70  6f 69 6e 74 20 28 72 69  | check point (ri|
000032c0  67 68 74 73 69 64 65 29  20 74 6f 20 20 20 62 6f  |ghtside) to   bo|
000032d0  74 74 6f 6d 20 6c 65 76  65 6c 20 6f 66 20 75 73  |ttom level of us|
000032e0  65 72 73 68 69 70 20 70  6c 75 73 20 31 36 30 20  |ership plus 160 |
000032f0  66 6f 72 20 61 20 74 77  6f 20 6c 69 6e 65 20 67  |for a two line g|
00003300  61 70 2c 20 61 73 20 62  6f 6d 62 73 20 64 72 6f  |ap, as bombs dro|
00003310  70 20 62 79 20 74 77 6f  20 70 69 78 65 6c 73 20  |p by two pixels |
00003320  6d 61 78 2e 0d 0f 1e 0f  20 2e 6e 65 78 74 5f 62  |max..... .next_b|
00003330  6f 6d 62 0d 0f 28 10 20  4c 44 52 20 52 31 2c 5b  |omb..(. LDR R1,[|
00003340  52 34 5d 0d 0f 32 44 20  53 54 4d 46 44 20 52 31  |R4]..2D STMFD R1|
00003350  33 21 2c 7b 52 31 34 2c  52 31 2d 52 36 7d 20 3a  |3!,{R14,R1-R6} :|
00003360  20 42 4c 20 70 72 69 6e  74 5f 62 6f 6d 62 20 3a  | BL print_bomb :|
00003370  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | LDMFD R13!,{R14|
00003380  2c 52 31 2d 52 36 7d 0d  0f 3c 25 20 4c 44 52 42  |,R1-R6}..<% LDRB|
00003390  20 52 37 2c 5b 52 34 2c  23 35 5d 20 20 20 3b 20  | R7,[R4,#5]   ; |
000033a0  20 20 62 6f 6d 62 20 73  70 65 65 64 0d 0f 46 35  |  bomb speed..F5|
000033b0  20 43 4d 50 20 52 37 2c  23 31 20 3a 20 41 44 44  | CMP R7,#1 : ADD|
000033c0  45 51 20 52 31 2c 52 31  2c 23 31 36 30 20 20 20  |EQ R1,R1,#160   |
000033d0  3b 20 20 31 20 6c 69 6e  65 20 20 2d 20 73 6c 6f  |;  1 line  - slo|
000033e0  77 0d 0f 50 35 20 43 4d  50 20 52 37 2c 23 32 20  |w..P5 CMP R7,#2 |
000033f0  3a 20 41 44 44 45 51 20  52 31 2c 52 31 2c 23 33  |: ADDEQ R1,R1,#3|
00003400  32 30 20 20 20 3b 20 20  32 20 6c 69 6e 65 73 20  |20   ;  2 lines |
00003410  2d 20 66 61 73 74 0d 0f  5a 28 20 43 4d 50 20 52  |- fast..Z( CMP R|
00003420  31 30 2c 52 31 20 3a 20  42 47 54 20 63 68 65 63  |10,R1 : BGT chec|
00003430  6b 5f 73 63 72 65 65 6e  62 6f 74 74 6f 6d 0d 0f  |k_screenbottom..|
00003440  64 1e 20 43 4d 50 20 52  31 31 2c 52 31 20 3a 20  |d. CMP R11,R1 : |
00003450  42 47 54 20 6f 6e 5f 6c  65 76 65 6c 0d 0f 6e 3c  |BGT on_level..n<|
00003460  20 2e 63 68 65 63 6b 5f  73 63 72 65 65 6e 62 6f  | .check_screenbo|
00003470  74 74 6f 6d 20 20 20 20  20 20 3b 20 20 62 65 6c  |ttom      ;  bel|
00003480  6f 77 20 6f 72 20 6f 6e  20 6c 65 76 65 6c 20 77  |ow or on level w|
00003490  69 74 68 20 73 68 69 70  0d 0f 78 0e 20 43 4d 50  |ith ship..x. CMP|
000034a0  20 52 36 2c 52 31 0d 0f  82 11 20 42 4c 45 20 6f  | R6,R1.... BLE o|
000034b0  6e 5f 6c 65 76 65 6c 0d  0f 8c 05 20 0d 0f 96 13  |n_level.... ....|
000034c0  20 2e 63 68 65 63 6b 5f  66 6f 72 5f 72 65 64 0d  | .check_for_red.|
000034d0  0f a0 1f 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |... STMFD R13!,{|
000034e0  52 31 2d 52 36 2c 52 31  30 2c 52 31 31 7d 0d 0f  |R1-R6,R10,R11}..|
000034f0  aa 2f 20 4c 44 52 42 20  52 32 2c 5b 52 34 2c 23  |./ LDRB R2,[R4,#|
00003500  34 5d 20 3a 20 43 4d 50  20 52 32 2c 23 32 34 20  |4] : CMP R2,#24 |
00003510  3a 20 42 4e 45 20 6e 6f  74 5f 72 65 64 0d 0f b4  |: BNE not_red...|
00003520  41 20 53 55 42 20 52 31  30 2c 52 31 30 2c 23 38  |A SUB R10,R10,#8|
00003530  30 30 30 20 20 20 20 3b  20 20 63 6f 72 72 65 63  |000    ;  correc|
00003540  74 20 68 65 69 67 68 74  20 66 6f 72 20 63 6c 75  |t height for clu|
00003550  73 74 65 72 20 65 78 70  6c 6f 73 69 6f 6e 0d 0f  |ster explosion..|
00003560  be 16 20 53 55 42 20 52  31 31 2c 52 31 31 2c 23  |.. SUB R11,R11,#|
00003570  38 30 30 30 0d 0f c8 22  20 43 4d 50 20 52 31 30  |8000..." CMP R10|
00003580  2c 52 31 20 3a 20 42 47  54 20 77 72 6f 6e 67 5f  |,R1 : BGT wrong_|
00003590  68 65 69 67 68 74 0d 0f  d2 22 20 43 4d 50 20 52  |height..." CMP R|
000035a0  31 31 2c 52 31 20 3a 20  42 4c 54 20 77 72 6f 6e  |11,R1 : BLT wron|
000035b0  67 5f 68 65 69 67 68 74  0d 0f dc 05 20 0d 0f e6  |g_height.... ...|
000035c0  4a 20 4c 44 52 42 20 52  35 2c 63 6c 75 73 74 65  |J LDRB R5,cluste|
000035d0  72 5f 62 6f 6d 62 73 20  3a 20 43 4d 50 20 52 35  |r_bombs : CMP R5|
000035e0  2c 23 32 20 3a 20 42 45  51 20 6e 6f 74 5f 72 65  |,#2 : BEQ not_re|
000035f0  64 20 20 20 3b 20 20 65  6e 6f 75 67 68 20 72 65  |d   ;  enough re|
00003600  64 20 62 6f 6d 62 73 0d  0f f0 29 20 41 44 44 20  |d bombs...) ADD |
00003610  52 35 2c 52 35 2c 23 31  20 3a 20 53 54 52 42 20  |R5,R5,#1 : STRB |
00003620  52 35 2c 63 6c 75 73 74  65 72 5f 62 6f 6d 62 73  |R5,cluster_bombs|
00003630  0d 0f fa 40 20 53 54 4d  46 44 20 52 31 33 21 2c  |...@ STMFD R13!,|
00003640  7b 52 31 34 7d 20 3a 20  42 4c 20 69 6e 69 74 69  |{R14} : BL initi|
00003650  61 6c 69 73 65 5f 63 6c  75 73 74 65 72 20 3a 20  |alise_cluster : |
00003660  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 7d  |LDMFD R13!,{R14}|
00003670  0d 10 04 1f 20 4c 44 4d  46 44 20 52 31 33 21 2c  |.... LDMFD R13!,|
00003680  7b 52 31 2d 52 36 2c 52  31 30 2c 52 31 31 7d 0d  |{R1-R6,R10,R11}.|
00003690  10 0e 14 20 42 20 6f 6e  65 5f 6c 65 73 73 5f 62  |... B one_less_b|
000036a0  6f 6d 62 0d 10 18 05 20  0d 10 22 05 20 0d 10 2c  |omb.... ..". ..,|
000036b0  12 20 2e 77 72 6f 6e 67  5f 68 65 69 67 68 74 0d  |. .wrong_height.|
000036c0  10 36 0d 20 2e 6e 6f 74  5f 72 65 64 0d 10 40 1f  |.6. .not_red..@.|
000036d0  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 2d  | LDMFD R13!,{R1-|
000036e0  52 36 2c 52 31 30 2c 52  31 31 7d 0d 10 4a 05 20  |R6,R10,R11}..J. |
000036f0  0d 10 54 0d 20 42 20 6d  62 6f 76 65 72 0d 10 5e  |..T. B mbover..^|
00003700  0e 20 2e 6f 6e 5f 6c 65  76 65 6c 0d 10 68 69 20  |. .on_level..hi |
00003710  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 2c  |STMFD R13!,{R14,|
00003720  52 31 2d 52 36 7d 20 3a  20 4c 44 52 42 20 52 32  |R1-R6} : LDRB R2|
00003730  2c 5b 52 34 2c 23 34 5d  20 3a 20 43 4d 50 20 52  |,[R4,#4] : CMP R|
00003740  32 2c 23 31 32 20 3a 20  42 4c 45 51 20 62 6f 6d  |2,#12 : BLEQ bom|
00003750  62 5f 65 78 70 6c 6f 73  69 6f 6e 20 3a 20 4c 44  |b_explosion : LD|
00003760  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 2c 52 31  |MFD R13!,{R14,R1|
00003770  2d 52 36 7d 0d 10 72 13  20 2e 6f 6e 65 5f 6c 65  |-R6}..r. .one_le|
00003780  73 73 5f 62 6f 6d 62 0d  10 7c 47 20 53 54 4d 46  |ss_bomb..|G STMF|
00003790  44 20 52 31 33 21 2c 7b  52 31 34 2c 52 31 2d 52  |D R13!,{R14,R1-R|
000037a0  36 7d 20 3a 20 42 4c 20  6d 65 6d 6d 6f 76 65 5f  |6} : BL memmove_|
000037b0  62 6f 6d 62 73 20 3a 20  4c 44 4d 46 44 20 52 31  |bombs : LDMFD R1|
000037c0  33 21 2c 7b 52 31 34 2c  52 31 2d 52 36 7d 0d 10  |3!,{R14,R1-R6}..|
000037d0  86 1e 20 53 55 42 20 52  32 2c 52 32 2c 23 31 3a  |.. SUB R2,R2,#1:|
000037e0  53 55 42 20 52 35 2c 52  35 2c 23 31 0d 10 90 0e  |SUB R5,R5,#1....|
000037f0  20 42 20 6d 62 6f 76 65  72 32 0d 10 9a 0c 20 2e  | B mbover2.... .|
00003800  6d 62 6f 76 65 72 0d 10  a4 44 20 53 54 4d 46 44  |mbover...D STMFD|
00003810  20 52 31 33 21 2c 7b 52  31 34 2c 52 31 2d 52 36  | R13!,{R14,R1-R6|
00003820  7d 20 3a 20 42 4c 20 70  72 69 6e 74 5f 62 6f 6d  |} : BL print_bom|
00003830  62 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |b : LDMFD R13!,{|
00003840  52 31 34 2c 52 31 2d 52  36 7d 0d 10 ae 13 20 53  |R14,R1-R6}.... S|
00003850  54 52 20 52 31 2c 5b 52  34 5d 2c 23 38 0d 10 b8  |TR R1,[R4],#8...|
00003860  0d 20 2e 6d 62 6f 76 65  72 32 0d 10 c2 2d 20 41  |. .mbover2...- A|
00003870  44 44 20 52 32 2c 52 32  2c 23 31 20 3a 20 43 4d  |DD R2,R2,#1 : CM|
00003880  50 20 52 32 2c 52 35 20  3a 20 42 4c 45 20 6e 65  |P R2,R5 : BLE ne|
00003890  78 74 5f 62 6f 6d 62 0d  10 cc 10 20 4d 4f 56 20  |xt_bomb.... MOV |
000038a0  52 31 35 2c 52 31 34 0d  10 d6 21 20 2e 73 63 72  |R15,R14...! .scr|
000038b0  65 65 6e 5f 62 6f 74 74  6f 6d 20 45 51 55 44 20  |een_bottom EQUD |
000038c0  26 31 46 45 31 41 46 46  0d 10 e0 05 20 0d 10 ea  |&1FE1AFF.... ...|
000038d0  10 20 2e 70 72 69 6e 74  5f 62 6f 6d 62 0d 10 f4  |. .print_bomb...|
000038e0  14 20 4c 44 52 42 20 52  32 2c 5b 52 34 2c 23 34  |. LDRB R2,[R4,#4|
000038f0  5d 0d 10 fe 16 20 41 44  52 20 52 33 2c 79 65 6c  |].... ADR R3,yel|
00003900  6c 6f 77 62 6f 6d 62 0d  11 08 11 20 41 44 44 20  |lowbomb.... ADD |
00003910  52 33 2c 52 33 2c 52 32  0d 11 12 0e 20 4d 4f 56  |R3,R3,R2.... MOV|
00003920  20 52 30 2c 23 30 0d 11  1c 0e 20 4d 4f 56 20 52  | R0,#0.... MOV R|
00003930  32 2c 23 36 0d 11 26 0c  20 2e 70 62 6c 6f 6f 70  |2,#6..&. .pbloop|
00003940  0d 11 30 0e 20 4d 4f 56  20 52 35 2c 23 32 0d 11  |..0. MOV R5,#2..|
00003950  3a 0d 20 2e 70 62 6c 6f  6f 70 32 0d 11 44 14 20  |:. .pbloop2..D. |
00003960  4c 44 52 42 20 52 34 2c  5b 52 33 5d 2c 23 31 0d  |LDRB R4,[R3],#1.|
00003970  11 4e 14 20 4c 44 52 42  20 52 36 2c 5b 52 31 2c  |.N. LDRB R6,[R1,|
00003980  23 31 5d 0d 11 58 1a 20  43 4d 50 20 52 36 2c 23  |#1]..X. CMP R6,#|
00003990  30 20 3a 20 42 45 51 20  42 73 6b 69 70 0d 11 62  |0 : BEQ Bskip..b|
000039a0  10 20 82 53 20 52 34 2c  52 34 2c 52 36 0d 11 6c  |. .S R4,R4,R6..l|
000039b0  10 20 4d 4f 56 4e 45 20  52 30 2c 23 31 0d 11 76  |. MOVNE R0,#1..v|
000039c0  0b 20 2e 42 73 6b 69 70  0d 11 80 15 20 53 54 52  |. .Bskip.... STR|
000039d0  42 20 52 34 2c 5b 52 31  2c 23 31 5d 21 0d 11 8a  |B R4,[R1,#1]!...|
000039e0  12 20 53 55 42 53 20 52  35 2c 52 35 2c 23 31 0d  |. SUBS R5,R5,#1.|
000039f0  11 94 10 20 42 4e 45 20  70 62 6c 6f 6f 70 32 0d  |... BNE pbloop2.|
00003a00  11 9e 13 20 41 44 44 20  52 31 2c 52 31 2c 23 31  |... ADD R1,R1,#1|
00003a10  35 38 0d 11 a8 12 20 53  55 42 53 20 52 32 2c 52  |58.... SUBS R2,R|
00003a20  32 2c 23 31 0d 11 b2 0f  20 42 4e 45 20 70 62 6c  |2,#1.... BNE pbl|
00003a30  6f 6f 70 0d 11 bc 1f 20  43 4d 50 20 52 30 2c 23  |oop.... CMP R0,#|
00003a40  30 20 3a 20 42 45 51 20  62 6f 6d 62 5f 63 6c 65  |0 : BEQ bomb_cle|
00003a50  61 72 0d 11 c6 49 20 53  54 4d 46 44 20 52 31 33  |ar...I STMFD R13|
00003a60  21 2c 7b 52 31 34 2c 52  31 7d 20 3a 20 42 4c 20  |!,{R14,R1} : BL |
00003a70  6c 6f 61 64 5f 64 65 61  64 20 3a 20 4d 4f 56 20  |load_dead : MOV |
00003a80  52 32 2c 52 31 20 3a 20  4c 44 4d 46 44 20 52 31  |R2,R1 : LDMFD R1|
00003a90  33 21 2c 7b 52 31 34 2c  52 31 7d 0d 11 d0 1f 20  |3!,{R14,R1}.... |
00003aa0  43 4d 50 20 52 32 2c 23  31 20 3a 20 42 45 51 20  |CMP R2,#1 : BEQ |
00003ab0  62 6f 6d 62 5f 63 6c 65  61 72 0d 11 da 42 20 53  |bomb_clear...B S|
00003ac0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 2c 52  |TMFD R13!,{R14,R|
00003ad0  31 2d 52 36 7d 20 3a 20  42 4c 20 62 6f 6d 62 5f  |1-R6} : BL bomb_|
00003ae0  68 69 74 20 3a 20 4c 44  4d 46 44 20 52 31 33 21  |hit : LDMFD R13!|
00003af0  2c 7b 52 31 34 2c 52 31  2d 52 36 7d 0d 11 e4 10  |,{R14,R1-R6}....|
00003b00  20 2e 62 6f 6d 62 5f 63  6c 65 61 72 0d 11 ee 10  | .bomb_clear....|
00003b10  20 4d 4f 56 20 52 31 35  2c 52 31 34 0d 11 f8 41  | MOV R15,R14...A|
00003b20  20 2e 79 65 6c 6c 6f 77  62 6f 6d 62 20 45 51 55  | .yellowbomb EQU|
00003b30  44 20 26 30 33 33 30 30  33 33 30 20 3a 20 45 51  |D &03300330 : EQ|
00003b40  55 44 20 26 30 33 33 30  30 33 33 30 20 3a 20 45  |UD &03300330 : E|
00003b50  51 55 44 20 26 30 33 33  30 30 33 33 30 0d 12 02  |QUD &03300330...|
00003b60  41 20 2e 63 79 61 6e 62  6f 6d 62 20 20 20 45 51  |A .cyanbomb   EQ|
00003b70  55 44 20 26 30 36 36 30  30 36 36 30 20 3a 20 45  |UD &06600660 : E|
00003b80  51 55 44 20 26 30 36 36  30 30 36 36 30 20 3a 20  |QUD &06600660 : |
00003b90  45 51 55 44 20 26 30 36  36 30 30 36 36 30 0d 12  |EQUD &06600660..|
00003ba0  0c 41 20 2e 72 65 64 62  6f 6d 62 20 20 20 20 45  |.A .redbomb    E|
00003bb0  51 55 44 20 26 30 31 31  30 30 31 31 30 20 3a 20  |QUD &01100110 : |
00003bc0  45 51 55 44 20 26 30 31  31 30 30 31 31 30 20 3a  |EQUD &01100110 :|
00003bd0  20 45 51 55 44 20 26 30  31 31 30 30 31 31 30 0d  | EQUD &01100110.|
00003be0  12 16 05 20 0d 12 20 0e  20 2e 62 6f 6d 62 5f 68  |... .. . .bomb_h|
00003bf0  69 74 0d 12 2a 40 20 53  54 4d 46 44 20 52 31 33  |it..*@ STMFD R13|
00003c00  21 2c 7b 52 31 34 7d 3a  42 4c 20 62 6f 6d 62 5f  |!,{R14}:BL bomb_|
00003c10  68 69 74 5f 63 6f 6f 72  64 69 6e 61 74 65 73 20  |hit_coordinates |
00003c20  3a 20 4c 44 4d 46 44 20  52 31 33 21 2c 7b 52 31  |: LDMFD R13!,{R1|
00003c30  34 7d 0d 12 34 0e 20 2e  42 58 5f 63 68 65 63 6b  |4}..4. .BX_check|
00003c40  0d 12 3e 14 20 4c 44 52  20 52 31 2c 58 5f 62 75  |..>. LDR R1,X_bu|
00003c50  6c 6c 65 74 0d 12 48 16  20 4c 44 52 20 52 32 2c  |llet..H. LDR R2,|
00003c60  58 5f 75 73 65 72 73 68  69 70 0d 12 52 19 20 4c  |X_usership..R. L|
00003c70  44 52 42 20 52 33 2c 62  75 6c 6c 65 74 5f 77 69  |DRB R3,bullet_wi|
00003c80  64 74 68 0d 12 5c 1b 20  4c 44 52 42 20 52 34 2c  |dth..\. LDRB R4,|
00003c90  75 73 65 72 73 68 69 70  5f 77 69 64 74 68 0d 12  |usership_width..|
00003ca0  66 0e 20 43 4d 50 20 52  31 2c 52 32 0d 12 70 16  |f. CMP R1,R2..p.|
00003cb0  20 42 47 54 20 75 73 65  72 73 68 69 70 5f 6c 65  | BGT usership_le|
00003cc0  66 74 0d 12 7a 11 20 41  44 44 20 52 31 2c 52 31  |ft..z. ADD R1,R1|
00003cd0  2c 52 33 0d 12 84 0e 20  43 4d 50 20 52 31 2c 52  |,R3.... CMP R1,R|
00003ce0  32 0d 12 8e 15 20 42 4c  54 20 6e 6f 5f 63 6f 6c  |2.... BLT no_col|
00003cf0  6c 69 73 69 6f 6e 0d 12  98 0f 20 42 20 42 59 5f  |lision.... B BY_|
00003d00  63 68 65 63 6b 0d 12 a2  05 20 0d 12 ac 13 20 2e  |check.... .... .|
00003d10  75 73 65 72 73 68 69 70  5f 6c 65 66 74 0d 12 b6  |usership_left...|
00003d20  11 20 41 44 44 20 52 32  2c 52 32 2c 52 34 0d 12  |. ADD R2,R2,R4..|
00003d30  c0 0e 20 43 4d 50 20 52  31 2c 52 32 0d 12 ca 15  |.. CMP R1,R2....|
00003d40  20 42 47 54 20 6e 6f 5f  63 6f 6c 6c 69 73 69 6f  | BGT no_collisio|
00003d50  6e 0d 12 d4 05 20 0d 12  de 0e 20 2e 42 59 5f 63  |n.... .... .BY_c|
00003d60  68 65 63 6b 0d 12 e8 14  20 4c 44 52 20 52 31 2c  |heck.... LDR R1,|
00003d70  59 5f 62 75 6c 6c 65 74  0d 12 f2 16 20 4c 44 52  |Y_bullet.... LDR|
00003d80  20 52 32 2c 59 5f 75 73  65 72 73 68 69 70 0d 12  | R2,Y_usership..|
00003d90  fc 1a 20 4c 44 52 42 20  52 33 2c 62 75 6c 6c 65  |.. LDRB R3,bulle|
00003da0  74 5f 68 65 69 67 68 74  0d 13 06 1c 20 4c 44 52  |t_height.... LDR|
00003db0  42 20 52 34 2c 75 73 65  72 73 68 69 70 5f 68 65  |B R4,usership_he|
00003dc0  69 67 68 74 0d 13 10 0e  20 43 4d 50 20 52 31 2c  |ight.... CMP R1,|
00003dd0  52 32 0d 13 1a 18 20 42  4c 54 20 75 73 65 72 73  |R2.... BLT users|
00003de0  68 69 70 5f 68 69 67 68  65 72 0d 13 24 11 20 53  |hip_higher..$. S|
00003df0  55 42 20 52 31 2c 52 31  2c 52 33 0d 13 2e 0e 20  |UB R1,R1,R3.... |
00003e00  43 4d 50 20 52 31 2c 52  32 0d 13 38 15 20 42 47  |CMP R1,R2..8. BG|
00003e10  54 20 6e 6f 5f 63 6f 6c  6c 69 73 69 6f 6e 0d 13  |T no_collision..|
00003e20  42 0e 20 42 20 42 5f 63  6c 65 61 72 0d 13 4c 05  |B. B B_clear..L.|
00003e30  20 0d 13 56 15 20 2e 75  73 65 72 73 68 69 70 5f  | ..V. .usership_|
00003e40  68 69 67 68 65 72 0d 13  60 11 20 53 55 42 20 52  |higher..`. SUB R|
00003e50  32 2c 52 32 2c 52 34 0d  13 6a 0e 20 43 4d 50 20  |2,R2,R4..j. CMP |
00003e60  52 31 2c 52 32 0d 13 74  15 20 42 4c 54 20 6e 6f  |R1,R2..t. BLT no|
00003e70  5f 63 6f 6c 6c 69 73 69  6f 6e 0d 13 7e 0d 20 2e  |_collision..~. .|
00003e80  42 5f 63 6c 65 61 72 0d  13 88 05 20 0d 13 92 1d  |B_clear.... ....|
00003e90  20 4d 4f 56 20 52 30 2c  23 31 20 3a 20 53 54 52  | MOV R0,#1 : STR|
00003ea0  42 20 52 30 2c 64 65 61  64 0d 13 9c 66 20 4d 4f  |B R0,dead...f MO|
00003eb0  56 20 52 30 2c 23 34 3a  4d 4f 56 20 52 31 2c 23  |V R0,#4:MOV R1,#|
00003ec0  31 35 3a 52 53 42 20 52  31 2c 52 31 2c 23 30 3a  |15:RSB R1,R1,#0:|
00003ed0  4d 4f 56 20 52 32 2c 23  31 3a 4d 4f 56 20 52 33  |MOV R2,#1:MOV R3|
00003ee0  2c 23 32 35 3a 53 57 49  20 22 53 6f 75 6e 64 5f  |,#25:SWI "Sound_|
00003ef0  43 6f 6e 74 72 6f 6c 22  20 20 20 20 20 20 3b 20  |Control"      ; |
00003f00  20 75 73 65 72 73 68 69  70 20 73 6f 75 6e 64 0d  | usership sound.|
00003f10  13 a6 63 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |..c STMFD R13!,{|
00003f20  52 31 2d 52 38 2c 52 31  34 7d 20 3a 20 42 4c 20  |R1-R8,R14} : BL |
00003f30  69 6e 69 74 69 61 6c 69  73 65 5f 70 61 72 74 69  |initialise_parti|
00003f40  63 6c 65 73 20 3a 20 42  4c 20 70 61 72 74 69 63  |cles : BL partic|
00003f50  6c 65 5f 73 70 72 65 61  64 20 3a 20 4c 44 4d 46  |le_spread : LDMF|
00003f60  44 20 52 31 33 21 2c 7b  52 31 2d 52 38 2c 52 31  |D R13!,{R1-R8,R1|
00003f70  34 7d 0d 13 b0 05 20 0d  13 ba 12 20 2e 6e 6f 5f  |4}.... .... .no_|
00003f80  63 6f 6c 6c 69 73 69 6f  6e 0d 13 c4 05 20 0d 13  |collision.... ..|
00003f90  ce 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 13  |.. MOV R15,R14..|
00003fa0  d8 05 20 0d 13 e2 13 20  2e 6d 65 6d 6d 6f 76 65  |.. .... .memmove|
00003fb0  5f 62 6f 6d 62 73 0d 13  ec 1b 20 4c 44 52 42 20  |_bombs.... LDRB |
00003fc0  52 31 2c 6e 6f 5f 61 6c  69 65 6e 5f 62 6f 6d 62  |R1,no_alien_bomb|
00003fd0  73 0d 13 f6 1e 20 43 4d  50 20 52 32 2c 52 31 20  |s.... CMP R2,R1 |
00003fe0  3a 20 42 45 51 20 6c 61  73 74 5f 62 6f 6d 62 0d  |: BEQ last_bomb.|
00003ff0  14 00 11 20 41 44 44 20  52 32 2c 52 32 2c 23 31  |... ADD R2,R2,#1|
00004000  0d 14 0a 0c 20 2e 6d 62  6c 6f 6f 70 0d 14 14 35  |.... .mbloop...5|
00004010  20 4c 44 52 20 52 33 2c  5b 52 34 2c 23 38 5d 21  | LDR R3,[R4,#8]!|
00004020  20 20 20 20 20 20 20 20  20 3b 20 20 20 34 20 42  |         ;   4 B|
00004030  79 74 65 20 42 6f 6d 62  73 20 41 64 64 72 65 73  |yte Bombs Addres|
00004040  73 0d 14 1e 14 20 53 54  52 20 52 33 2c 5b 52 34  |s.... STR R3,[R4|
00004050  2c 23 2d 38 5d 0d 14 28  4e 20 4c 44 52 20 52 33  |,#-8]..(N LDR R3|
00004060  2c 5b 52 34 2c 23 34 5d  20 20 20 20 20 20 20 20  |,[R4,#4]        |
00004070  20 20 3b 20 20 20 34 20  42 79 74 65 20 42 6f 6d  |  ;   4 Byte Bom|
00004080  62 20 49 6e 66 6f 20 2d  20 63 6f 6c 6f 75 72 2c  |b Info - colour,|
00004090  74 69 6d 65 72 2c 66 72  61 6d 65 20 70 6f 69 6e  |timer,frame poin|
000040a0  74 65 72 0d 14 32 14 20  53 54 52 20 52 33 2c 5b  |ter..2. STR R3,[|
000040b0  52 34 2c 23 2d 34 5d 0d  14 3c 11 20 41 44 44 20  |R4,#-4]..<. ADD |
000040c0  52 32 2c 52 32 2c 23 31  0d 14 46 0e 20 43 4d 50  |R2,R2,#1..F. CMP|
000040d0  20 52 32 2c 52 31 0d 14  50 0f 20 42 4c 45 20 6d  | R2,R1..P. BLE m|
000040e0  62 6c 6f 6f 70 0d 14 5a  0f 20 2e 6c 61 73 74 5f  |bloop..Z. .last_|
000040f0  62 6f 6d 62 0d 14 64 11  20 53 55 42 20 52 31 2c  |bomb..d. SUB R1,|
00004100  52 31 2c 23 31 0d 14 6e  1b 20 53 54 52 42 20 52  |R1,#1..n. STRB R|
00004110  31 2c 6e 6f 5f 61 6c 69  65 6e 5f 62 6f 6d 62 73  |1,no_alien_bombs|
00004120  0d 14 78 10 20 4d 4f 56  20 52 31 35 2c 52 31 34  |..x. MOV R15,R14|
00004130  0d 14 82 04 0d 14 8c 14  20 2e 62 6f 6d 62 5f 65  |........ .bomb_e|
00004140  78 70 6c 6f 73 69 6f 6e  0d 14 96 36 20 53 55 42  |xplosion...6 SUB|
00004150  20 52 31 2c 52 31 2c 23  39 36 34 20 20 20 20 20  | R1,R1,#964     |
00004160  20 3b 20 6f 6e 20 6c 65  76 65 6c 20 77 69 74 68  | ; on level with|
00004170  20 74 6f 70 20 6f 66 20  62 75 6c 6c 65 74 0d 14  | top of bullet..|
00004180  a0 1b 20 4c 44 52 42 20  52 32 2c 6e 6f 5f 62 6f  |.. LDRB R2,no_bo|
00004190  6d 62 73 5f 65 78 70 6c  6f 0d 14 aa 3f 20 41 44  |mbs_explo...? AD|
000041a0  52 20 52 33 2c 62 6f 6d  62 73 5f 65 78 70 6c 6f  |R R3,bombs_explo|
000041b0  61 64 64 72 20 3a 20 41  44 44 20 52 33 2c 52 33  |addr : ADD R3,R3|
000041c0  2c 52 32 2c 4c 53 4c 20  23 33 20 3a 20 53 54 52  |,R2,LSL #3 : STR|
000041d0  20 52 31 2c 5b 52 33 5d  0d 14 b4 42 20 4d 4f 56  | R1,[R3]...B MOV|
000041e0  20 52 35 2c 23 32 35 20  3a 20 53 54 52 42 20 52  | R5,#25 : STRB R|
000041f0  35 2c 5b 52 33 2c 23 34  5d 20 20 20 20 20 20 20  |5,[R3,#4]       |
00004200  20 3b 20 20 20 62 6f 6d  62 73 20 65 78 70 6c 6f  | ;   bombs explo|
00004210  73 69 6f 6e 20 74 69 6d  65 72 0d 14 be 40 20 4d  |sion timer...@ M|
00004220  4f 56 20 52 35 2c 23 30  20 20 3a 20 53 54 52 42  |OV R5,#0  : STRB|
00004230  20 52 35 2c 5b 52 33 2c  23 35 5d 20 20 20 20 20  | R5,[R3,#5]     |
00004240  20 20 20 3b 20 20 20 62  6f 6d 62 73 20 66 72 61  |   ;   bombs fra|
00004250  6d 65 20 70 6f 69 6e 74  65 72 0d 14 c8 29 20 41  |me pointer...) A|
00004260  44 44 20 52 32 2c 52 32  2c 23 31 20 3a 53 54 52  |DD R2,R2,#1 :STR|
00004270  42 20 52 32 2c 6e 6f 5f  62 6f 6d 62 73 5f 65 78  |B R2,no_bombs_ex|
00004280  70 6c 6f 0d 14 d2 05 20  0d 14 dc 3c 20 53 54 4d  |plo.... ...< STM|
00004290  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 20 3a 20  |FD R13!,{R14} : |
000042a0  42 4c 20 65 78 70 6c 6f  73 69 6f 6e 5f 62 6f 6d  |BL explosion_bom|
000042b0  62 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |b : LDMFD R13!,{|
000042c0  52 31 34 7d 0d 14 e6 6c  20 4d 4f 56 20 52 30 2c  |R14}...l MOV R0,|
000042d0  23 33 3a 4d 4f 56 20 52  31 2c 23 37 3a 52 53 42  |#3:MOV R1,#7:RSB|
000042e0  20 52 31 2c 52 31 2c 23  30 3a 4d 4f 56 20 52 32  | R1,R1,#0:MOV R2|
000042f0  2c 23 31 3a 4d 4f 56 20  52 33 2c 23 31 34 3a 53  |,#1:MOV R3,#14:S|
00004300  57 49 20 22 53 6f 75 6e  64 5f 43 6f 6e 74 72 6f  |WI "Sound_Contro|
00004310  6c 22 20 20 20 20 20 20  3b 20 20 77 68 69 74 65  |l"      ;  white|
00004320  20 65 78 70 6c 6f 73 69  6f 6e 20 73 6f 75 6e 64  | explosion sound|
00004330  0d 14 f0 10 20 4d 4f 56  20 52 31 35 2c 52 31 34  |.... MOV R15,R14|
00004340  0d 14 fa 05 20 0d 15 04  17 20 2e 70 72 6f 67 72  |.... .... .progr|
00004350  61 6d 5f 76 61 72 69 61  62 6c 65 73 0d 15 0e 5f  |am_variables..._|
00004360  20 3b 20 61 6c 6c 20 70  72 6f 67 72 61 6d 20 76  | ; all program v|
00004370  61 72 69 61 62 6c 65 73  20 61 72 65 20 69 6e 69  |ariables are ini|
00004380  74 69 61 6c 69 73 65 64  20 68 65 72 65 20 65 78  |tialised here ex|
00004390  63 65 70 74 20 62 79 74  65 20 61 6e 64 20 73 65  |cept byte and se|
000043a0  70 65 72 61 74 65 20 61  6c 69 65 6e 5f 62 6f 6d  |perate alien_bom|
000043b0  62 5f 76 61 72 69 61 62  6c 65 73 0d 15 18 05 20  |b_variables.... |
000043c0  0d 15 22 28 20 3b 20 20  63 6f 6e 73 74 61 6e 74  |.."( ;  constant|
000043d0  20 76 61 72 69 61 62 6c  65 73 20 61 72 65 20 73  | variables are s|
000043e0  65 74 20 66 69 72 73 74  0d 15 2c 0e 20 43 4d 50  |et first..,. CMP|
000043f0  20 52 30 2c 23 31 0d 15  36 0e 20 4d 4f 56 20 52  | R0,#1..6. MOV R|
00004400  31 2c 23 30 0d 15 40 1b  20 53 54 52 42 20 52 31  |1,#0..@. STRB R1|
00004410  2c 6e 6f 5f 61 6c 69 65  6e 5f 62 6f 6d 62 73 0d  |,no_alien_bombs.|
00004420  15 4a 19 20 53 54 52 42  20 52 31 2c 73 65 63 74  |.J. STRB R1,sect|
00004430  69 6f 6e 5f 66 6c 61 67  0d 15 54 1b 20 53 54 52  |ion_flag..T. STR|
00004440  42 20 52 31 2c 6e 6f 5f  62 6f 6d 62 73 5f 65 78  |B R1,no_bombs_ex|
00004450  70 6c 6f 0d 15 5e 1a 20  53 54 52 42 20 52 31 2c  |plo..^. STRB R1,|
00004460  63 6c 75 73 74 65 72 5f  62 6f 6d 62 73 0d 15 68  |cluster_bombs..h|
00004470  1c 20 53 54 52 4e 45 42  20 52 31 2c 6e 6f 5f 6f  |. STRNEB R1,no_o|
00004480  66 5f 62 75 6c 6c 65 74  73 0d 15 72 12 20 53 54  |f_bullets..r. ST|
00004490  52 4e 45 42 20 52 31 2c  67 61 70 0d 15 7c 1d 20  |RNEB R1,gap..|. |
000044a0  53 54 52 42 20 52 31 2c  62 75 6c 6c 65 74 5f 6f  |STRB R1,bullet_o|
000044b0  6e 5f 73 63 72 65 65 6e  0d 15 86 18 20 53 54 52  |n_screen.... STR|
000044c0  42 20 52 31 2c 6d 65 6d  6f 72 79 5f 6d 6f 76 65  |B R1,memory_move|
000044d0  0d 15 90 10 20 53 54 52  42 20 52 31 2c 68 69 74  |.... STRB R1,hit|
000044e0  0d 15 9a 18 20 53 54 52  42 20 52 31 2c 6c 61 73  |.... STRB R1,las|
000044f0  74 5f 73 70 72 69 74 65  0d 15 a4 11 20 53 54 52  |t_sprite.... STR|
00004500  42 20 52 31 2c 64 65 61  64 0d 15 ae 04 0d 15 b8  |B R1,dead.......|
00004510  1d 20 3b 20 20 76 61 72  69 61 62 6c 65 73 20 73  |. ;  variables s|
00004520  65 74 20 62 79 20 75 73  65 72 0d 15 c2 19 20 53  |et by user.... S|
00004530  54 52 42 20 52 32 2c 63  79 61 6e 5f 63 6f 75 6e  |TRB R2,cyan_coun|
00004540  74 65 72 0d 15 cc 1a 20  53 54 52 42 20 52 32 2c  |ter.... STRB R2,|
00004550  43 63 79 61 6e 5f 63 6f  75 6e 74 65 72 0d 15 d6  |Ccyan_counter...|
00004560  18 20 53 54 52 42 20 52  33 2c 72 65 64 5f 63 6f  |. STRB R3,red_co|
00004570  75 6e 74 65 72 0d 15 e0  19 20 53 54 52 42 20 52  |unter.... STRB R|
00004580  33 2c 43 72 65 64 5f 63  6f 75 6e 74 65 72 0d 15  |3,Cred_counter..|
00004590  ea 18 20 53 54 52 42 20  52 34 2c 62 6f 6d 62 73  |.. STRB R4,bombs|
000045a0  5f 73 70 65 65 64 0d 15  f4 19 20 53 54 52 42 20  |_speed.... STRB |
000045b0  52 34 2c 43 62 6f 6d 62  73 5f 73 70 65 65 64 0d  |R4,Cbombs_speed.|
000045c0  15 fe 1a 20 53 54 52 42  20 52 35 2c 62 6f 6d 62  |... STRB R5,bomb|
000045d0  5f 64 72 6f 70 5f 70 6f  73 0d 16 08 1e 20 53 54  |_drop_pos.... ST|
000045e0  52 42 20 52 36 2c 6e 6f  5f 72 61 6e 64 6f 6d 5f  |RB R6,no_random_|
000045f0  6e 75 6d 62 65 72 73 0d  16 12 15 20 53 54 52 42  |numbers.... STRB|
00004600  20 52 37 2c 6e 6f 5f 72  61 6e 67 65 0d 16 1c 12  | R7,no_range....|
00004610  20 53 54 52 42 20 52 38  2c 73 70 61 63 65 0d 16  | STRB R8,space..|
00004620  26 12 20 53 54 52 42 20  52 39 2c 64 65 6c 61 79  |&. STRB R9,delay|
00004630  0d 16 30 1b 20 53 54 52  42 20 52 31 30 2c 6e 6f  |..0. STRB R10,no|
00004640  5f 6f 66 5f 73 70 72 69  74 65 73 0d 16 3a 04 0d  |_of_sprites..:..|
00004650  16 44 10 20 2e 72 65 6e  65 77 5f 76 61 72 73 0d  |.D. .renew_vars.|
00004660  16 4e 2b 20 4c 44 52 4e  45 20 52 31 2c 43 6c 65  |.N+ LDRNE R1,Cle|
00004670  66 74 73 69 64 65 20 3a  20 53 54 52 4e 45 20 52  |ftside : STRNE R|
00004680  31 2c 6c 65 66 74 73 69  64 65 0d 16 58 2d 20 4c  |1,leftside..X- L|
00004690  44 52 4e 45 20 52 31 2c  43 72 69 67 68 74 73 69  |DRNE R1,Crightsi|
000046a0  64 65 20 3a 20 53 54 52  4e 45 20 52 31 2c 72 69  |de : STRNE R1,ri|
000046b0  67 68 74 73 69 64 65 0d  16 62 3c 20 4c 44 52 4e  |ghtside..b< LDRN|
000046c0  45 20 52 31 2c 43 6e 65  77 61 64 64 72 20 3a 20  |E R1,Cnewaddr : |
000046d0  53 54 52 4e 45 20 52 31  2c 6e 65 77 61 64 64 72  |STRNE R1,newaddr|
000046e0  20 3a 20 53 54 52 4e 45  20 52 31 2c 6f 6c 64 61  | : STRNE R1,olda|
000046f0  64 64 72 0d 16 6c 37 20  4c 44 52 42 20 52 31 2c  |ddr..l7 LDRB R1,|
00004700  43 75 73 65 72 73 68 69  70 5f 66 72 61 6d 65 73  |Cusership_frames|
00004710  20 3a 20 53 54 52 42 20  52 31 2c 75 73 65 72 73  | : STRB R1,users|
00004720  68 69 70 5f 66 72 61 6d  65 73 0d 16 76 35 20 4c  |hip_frames..v5 L|
00004730  44 52 42 20 52 31 2c 43  75 73 65 72 73 68 69 70  |DRB R1,Cusership|
00004740  5f 74 69 6d 65 72 20 3a  20 53 54 52 42 20 52 31  |_timer : STRB R1|
00004750  2c 75 73 65 72 73 68 69  70 5f 74 69 6d 65 72 0d  |,usership_timer.|
00004760  16 80 04 0d 16 8a 10 20  4d 4f 56 20 52 31 35 2c  |....... MOV R15,|
00004770  52 31 34 0d 16 94 05 20  0d 16 9e 1e 20 2e 6c 65  |R14.... .... .le|
00004780  66 74 73 69 64 65 20 20  20 45 51 55 44 20 26 31  |ftside   EQUD &1|
00004790  46 45 31 34 32 37 0d 16  a8 1e 20 2e 72 69 67 68  |FE1427.... .righ|
000047a0  74 73 69 64 65 20 20 45  51 55 44 20 26 31 46 45  |tside  EQUD &1FE|
000047b0  31 34 41 46 0d 16 b2 1e  20 2e 43 6c 65 66 74 73  |14AF.... .Clefts|
000047c0  69 64 65 20 20 45 51 55  44 20 26 31 46 45 31 34  |ide  EQUD &1FE14|
000047d0  32 37 0d 16 bc 1e 20 2e  43 72 69 67 68 74 73 69  |27.... .Crightsi|
000047e0  64 65 20 45 51 55 44 20  26 31 46 45 31 34 41 46  |de EQUD &1FE14AF|
000047f0  0d 16 c6 1e 20 2e 43 6e  65 77 61 64 64 72 20 20  |.... .Cnewaddr  |
00004800  20 45 51 55 44 20 26 31  46 45 31 34 36 42 0d 16  | EQUD &1FE146B..|
00004810  d0 1e 20 2e 43 75 73 65  72 73 68 69 70 5f 66 72  |.. .Cusership_fr|
00004820  61 6d 65 73 20 45 51 55  42 20 31 30 0d 16 da 1d  |ames EQUB 10....|
00004830  20 2e 43 75 73 65 72 73  68 69 70 5f 74 69 6d 65  | .Cusership_time|
00004840  72 20 20 45 51 55 42 20  36 0d 16 e4 0a 20 41 4c  |r  EQUB 6.... AL|
00004850  49 47 4e 0d 16 ee 04 0d  16 f8 16 20 2e 62 6f 6d  |IGN........ .bom|
00004860  62 5f 65 78 70 6c 6f 5f  63 68 65 63 6b 0d 17 02  |b_explo_check...|
00004870  3a 20 4c 44 52 42 20 52  37 2c 6e 6f 5f 62 6f 6d  |: LDRB R7,no_bom|
00004880  62 73 5f 65 78 70 6c 6f  20 3a 20 43 4d 50 20 52  |bs_explo : CMP R|
00004890  37 2c 23 30 20 3a 20 42  45 51 20 6e 6f 5f 65 78  |7,#0 : BEQ no_ex|
000048a0  70 6c 6f 73 69 6f 6e 0d  17 0c 4d 20 53 54 4d 46  |plosion...M STMF|
000048b0  44 20 52 31 33 21 2c 7b  52 31 34 7d 20 3a 20 42  |D R13!,{R14} : B|
000048c0  4c 20 64 69 72 65 63 74  69 76 65 5f 65 78 70 6c  |L directive_expl|
000048d0  6f 73 69 6f 6e 20 3a 20  4d 4f 56 20 52 38 2c 52  |osion : MOV R8,R|
000048e0  32 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |2 : LDMFD R13!,{|
000048f0  52 31 34 7d 0d 17 16 1b  20 41 44 52 20 52 33 2c  |R14}.... ADR R3,|
00004900  62 6f 6d 62 73 5f 65 78  70 6c 6f 61 64 64 72 0d  |bombs_exploaddr.|
00004910  17 20 0e 20 4d 4f 56 20  52 34 2c 23 30 0d 17 2a  |. . MOV R4,#0..*|
00004920  0e 20 2e 62 65 63 5f 6c  6f 6f 70 0d 17 34 24 20  |. .bec_loop..4$ |
00004930  4d 4f 56 20 52 35 2c 23  30 20 3a 20 41 44 44 20  |MOV R5,#0 : ADD |
00004940  52 35 2c 52 33 2c 52 34  2c 4c 53 4c 20 23 33 0d  |R5,R3,R4,LSL #3.|
00004950  17 3e 47 20 4c 44 52 42  20 52 36 2c 5b 52 35 2c  |.>G LDRB R6,[R5,|
00004960  23 34 5d 20 3a 20 53 55  42 53 20 52 36 2c 52 36  |#4] : SUBS R6,R6|
00004970  2c 23 31 20 3a 20 53 54  52 42 20 52 36 2c 5b 52  |,#1 : STRB R6,[R|
00004980  35 2c 23 34 5d 20 3a 20  42 4e 45 20 6e 65 78 74  |5,#4] : BNE next|
00004990  5f 63 68 65 63 6b 0d 17  48 49 20 4d 4f 56 20 52  |_check..HI MOV R|
000049a0  36 2c 23 32 35 20 3a 20  53 54 52 42 20 52 36 2c  |6,#25 : STRB R6,|
000049b0  5b 52 35 2c 23 34 5d 20  20 20 20 20 3b 20 20 20  |[R5,#4]     ;   |
000049c0  72 65 73 65 74 20 62 6f  6d 62 20 74 69 6d 65 72  |reset bomb timer|
000049d0  20 66 6f 72 20 6e 65 78  74 20 66 72 61 6d 65 0d  | for next frame.|
000049e0  17 52 05 20 0d 17 5c 2f  20 4c 44 52 42 20 52 36  |.R. ..\/ LDRB R6|
000049f0  2c 5b 52 35 2c 23 35 5d  20 20 20 20 20 20 20 20  |,[R5,#5]        |
00004a00  20 20 20 3b 20 20 66 72  61 6d 65 20 70 6f 69 6e  |   ;  frame poin|
00004a10  74 65 72 0d 17 66 34 20  4d 4f 56 20 20 52 32 2c  |ter..f4 MOV  R2,|
00004a20  23 31 34 30 20 20 20 20  20 20 20 20 20 20 20 20  |#140            |
00004a30  20 20 3b 20 20 64 61 74  61 20 69 6e 20 65 61 63  |  ;  data in eac|
00004a40  68 20 66 72 61 6d 65 0d  17 70 22 20 4d 4c 41 20  |h frame..p" MLA |
00004a50  52 32 2c 52 36 2c 52 32  2c 52 38 20 3a 20 4c 44  |R2,R6,R2,R8 : LD|
00004a60  52 20 52 31 2c 5b 52 35  5d 0d 17 7a 42 20 53 54  |R R1,[R5]..zB ST|
00004a70  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 2c 52 30  |MFD R13!,{R14,R0|
00004a80  2d 52 36 7d 20 3a 20 42  4c 20 65 62 5f 66 72 61  |-R6} : BL eb_fra|
00004a90  6d 65 20 3a 20 4c 44 4d  46 44 20 52 31 33 21 2c  |me : LDMFD R13!,|
00004aa0  7b 52 31 34 2c 52 30 2d  52 36 7d 0d 17 84 1f 20  |{R14,R0-R6}.... |
00004ab0  43 4d 50 20 52 36 2c 23  33 20 3a 20 42 4e 45 20  |CMP R6,#3 : BNE |
00004ac0  6e 65 78 74 5f 65 78 70  6c 6f 0d 17 8e 4c 20 53  |next_explo...L S|
00004ad0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 2c 52  |TMFD R13!,{R14,R|
00004ae0  31 2d 52 34 7d 20 3a 20  42 4c 20 6d 65 6d 6d 6f  |1-R4} : BL memmo|
00004af0  76 65 5f 62 6f 6d 62 73  65 78 70 6c 6f 20 3a 20  |ve_bombsexplo : |
00004b00  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 2c  |LDMFD R13!,{R14,|
00004b10  52 31 2d 52 34 7d 0d 17  98 11 20 53 55 42 20 52  |R1-R4}.... SUB R|
00004b20  34 2c 52 34 2c 23 31 0d  17 a2 11 20 42 20 6e 65  |4,R4,#1.... B ne|
00004b30  78 74 5f 63 68 65 63 6b  0d 17 ac 10 20 2e 6e 65  |xt_check.... .ne|
00004b40  78 74 5f 65 78 70 6c 6f  0d 17 b6 33 20 41 44 44  |xt_explo...3 ADD|
00004b50  20 52 36 2c 52 36 2c 23  31 20 3a 20 53 54 52 42  | R6,R6,#1 : STRB|
00004b60  20 52 36 2c 5b 52 35 2c  23 35 5d 20 20 20 3b 20  | R6,[R5,#5]   ; |
00004b70  20 6e 65 78 74 20 66 72  61 6d 65 0d 17 c0 11 20  | next frame.... |
00004b80  4d 4f 56 20 20 52 32 2c  23 31 34 30 0d 17 ca 22  |MOV  R2,#140..."|
00004b90  20 4d 4c 41 20 52 32 2c  52 36 2c 52 32 2c 52 38  | MLA R2,R6,R2,R8|
00004ba0  20 3a 20 4c 44 52 20 52  31 2c 5b 52 35 5d 0d 17  | : LDR R1,[R5]..|
00004bb0  d4 42 20 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.B STMFD R13!,{R|
00004bc0  31 34 2c 52 30 2d 52 36  7d 20 3a 20 42 4c 20 65  |14,R0-R6} : BL e|
00004bd0  62 5f 66 72 61 6d 65 20  3a 20 4c 44 4d 46 44 20  |b_frame : LDMFD |
00004be0  52 31 33 21 2c 7b 52 31  34 2c 52 30 2d 52 36 7d  |R13!,{R14,R0-R6}|
00004bf0  0d 17 de 05 20 0d 17 e8  10 20 2e 6e 65 78 74 5f  |.... .... .next_|
00004c00  63 68 65 63 6b 0d 17 f2  2c 20 41 44 44 20 52 34  |check..., ADD R4|
00004c10  2c 52 34 2c 23 31 20 3a  20 43 4d 50 20 52 34 2c  |,R4,#1 : CMP R4,|
00004c20  52 37 20 3a 20 42 4e 45  20 62 65 63 5f 6c 6f 6f  |R7 : BNE bec_loo|
00004c30  70 0d 17 fc 12 20 2e 6e  6f 5f 65 78 70 6c 6f 73  |p.... .no_explos|
00004c40  69 6f 6e 0d 18 06 10 20  4d 4f 56 20 52 31 35 2c  |ion.... MOV R15,|
00004c50  52 31 34 0d 18 10 05 20  0d 18 1a 1d 20 2e 6e 6f  |R14.... .... .no|
00004c60  5f 62 6f 6d 62 73 5f 65  78 70 6c 6f 20 20 20 45  |_bombs_explo   E|
00004c70  51 55 42 20 30 0d 18 24  0a 20 41 4c 49 47 4e 0d  |QUB 0..$. ALIGN.|
00004c80  18 2e 15 20 2e 62 6f 6d  62 73 5f 65 78 70 6c 6f  |... .bombs_explo|
00004c90  61 64 64 72 0d 18 38 4a  20 45 51 55 44 20 30 3a  |addr..8J EQUD 0:|
00004ca0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00004cb0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00004cc0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00004cd0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 0d 18  |:EQUD 0:EQUD 0..|
00004ce0  42 4a 20 45 51 55 44 20  30 3a 45 51 55 44 20 30  |BJ EQUD 0:EQUD 0|
00004cf0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
00004d00  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00004d10  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00004d20  30 3a 45 51 55 44 20 30  0d 18 4c 4a 20 45 51 55  |0:EQUD 0..LJ EQU|
00004d30  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00004d40  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
00004d50  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00004d60  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00004d70  20 30 0d 18 56 4a 20 45  51 55 44 20 30 3a 45 51  | 0..VJ EQUD 0:EQ|
00004d80  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00004d90  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00004da0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
00004db0  51 55 44 20 30 3a 45 51  55 44 20 30 0d 18 60 4a  |QUD 0:EQUD 0..`J|
00004dc0  20 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  | EQUD 0:EQUD 0:E|
00004dd0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00004de0  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00004df0  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
00004e00  45 51 55 44 20 30 0d 18  6a 4a 20 45 51 55 44 20  |EQUD 0..jJ EQUD |
00004e10  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
00004e20  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00004e30  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00004e40  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00004e50  0d 18 74 05 20 0d 18 7e  18 20 2e 6d 65 6d 6d 6f  |..t. ..~. .memmo|
00004e60  76 65 5f 62 6f 6d 62 73  65 78 70 6c 6f 0d 18 88  |ve_bombsexplo...|
00004e70  1a 20 3b 20 52 37 20 3d  20 6e 6f 5f 62 6f 6d 62  |. ; R7 = no_bomb|
00004e80  73 5f 65 78 70 6c 6f 0d  18 92 0e 20 4d 4f 56 20  |s_explo.... MOV |
00004e90  52 32 2c 23 31 0d 18 9c  1f 20 43 4d 50 20 52 32  |R2,#1.... CMP R2|
00004ea0  2c 52 37 20 3a 20 42 45  51 20 6c 61 73 74 5f 65  |,R7 : BEQ last_e|
00004eb0  78 70 6c 6f 0d 18 a6 0d  20 2e 6d 62 65 6c 6f 6f  |xplo.... .mbeloo|
00004ec0  70 0d 18 b0 35 20 4c 44  52 20 52 34 2c 5b 52 33  |p...5 LDR R4,[R3|
00004ed0  2c 23 38 5d 21 20 20 20  20 20 20 20 20 20 3b 20  |,#8]!         ; |
00004ee0  20 20 34 20 42 79 74 65  20 42 6f 6d 62 73 20 41  |  4 Byte Bombs A|
00004ef0  64 64 72 65 73 73 0d 18  ba 14 20 53 54 52 20 52  |ddress.... STR R|
00004f00  34 2c 5b 52 33 2c 23 2d  38 5d 0d 18 c4 4e 20 4c  |4,[R3,#-8]...N L|
00004f10  44 52 20 52 34 2c 5b 52  33 2c 23 34 5d 20 20 20  |DR R4,[R3,#4]   |
00004f20  20 20 20 20 20 20 20 3b  20 20 20 34 20 42 79 74  |       ;   4 Byt|
00004f30  65 20 42 6f 6d 62 20 49  6e 66 6f 20 2d 20 63 6f  |e Bomb Info - co|
00004f40  6c 6f 75 72 2c 74 69 6d  65 72 2c 66 72 61 6d 65  |lour,timer,frame|
00004f50  20 70 6f 69 6e 74 65 72  0d 18 ce 14 20 53 54 52  | pointer.... STR|
00004f60  20 52 34 2c 5b 52 33 2c  23 2d 34 5d 0d 18 d8 11  | R4,[R3,#-4]....|
00004f70  20 41 44 44 20 52 32 2c  52 32 2c 23 31 0d 18 e2  | ADD R2,R2,#1...|
00004f80  0e 20 43 4d 50 20 52 32  2c 52 37 0d 18 ec 10 20  |. CMP R2,R7.... |
00004f90  42 4c 45 20 6d 62 65 6c  6f 6f 70 0d 18 f6 10 20  |BLE mbeloop.... |
00004fa0  2e 6c 61 73 74 5f 65 78  70 6c 6f 0d 19 00 11 20  |.last_explo.... |
00004fb0  53 55 42 20 52 37 2c 52  37 2c 23 31 0d 19 0a 1b  |SUB R7,R7,#1....|
00004fc0  20 53 54 52 42 20 52 37  2c 6e 6f 5f 62 6f 6d 62  | STRB R7,no_bomb|
00004fd0  73 5f 65 78 70 6c 6f 0d  19 14 10 20 4d 4f 56 20  |s_explo.... MOV |
00004fe0  52 31 35 2c 52 31 34 0d  19 1e 05 20 0d 19 28 14  |R15,R14.... ..(.|
00004ff0  20 2e 65 78 70 6c 6f 73  69 6f 6e 5f 62 6f 6d 62  | .explosion_bomb|
00005000  0d 19 32 22 20 3b 20 20  20 52 31 20 2d 20 61 64  |..2" ;   R1 - ad|
00005010  64 72 65 73 73 20 6f 66  20 65 78 70 6c 6f 73 69  |dress of explosi|
00005020  6f 6e 0d 19 3c 41 20 53  54 4d 46 44 20 52 31 33  |on..<A STMFD R13|
00005030  21 2c 7b 52 31 34 7d 20  3a 20 42 4c 20 64 69 72  |!,{R14} : BL dir|
00005040  65 63 74 69 76 65 5f 65  78 70 6c 6f 73 69 6f 6e  |ective_explosion|
00005050  20 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  | : LDMFD R13!,{R|
00005060  31 34 7d 0d 19 46 0e 20  2e 65 62 5f 66 72 61 6d  |14}..F. .eb_fram|
00005070  65 0d 19 50 36 20 53 54  4d 46 44 20 52 31 33 21  |e..P6 STMFD R13!|
00005080  2c 7b 52 31 7d 20 20 20  20 20 20 20 3b 20 20 20  |,{R1}       ;   |
00005090  73 74 6f 72 65 20 65 78  70 6c 6f 73 69 6f 6e 20  |store explosion |
000050a0  61 64 64 72 65 73 73 0d  19 5a 0e 20 4d 4f 56 20  |address..Z. MOV |
000050b0  52 30 2c 23 30 0d 19 64  0f 20 4d 4f 56 20 52 33  |R0,#0..d. MOV R3|
000050c0  2c 23 31 34 0d 19 6e 0e  20 2e 65 62 5f 65 69 67  |,#14..n. .eb_eig|
000050d0  68 74 0d 19 78 0f 20 4d  4f 56 20 52 34 2c 23 31  |ht..x. MOV R4,#1|
000050e0  30 0d 19 82 0f 20 2e 65  62 5f 74 77 65 6c 76 65  |0.... .eb_twelve|
000050f0  0d 19 8c 14 20 4c 44 52  42 20 52 35 2c 5b 52 32  |.... LDRB R5,[R2|
00005100  5d 2c 23 31 0d 19 96 1d  20 43 4d 50 20 52 35 2c  |],#1.... CMP R5,|
00005110  23 26 30 33 20 3a 20 ec  51 20 52 35 2c 23 26 30  |#&03 : .Q R5,#&0|
00005120  37 0d 19 a0 1d 20 43 4d  50 20 52 35 2c 23 26 33  |7.... CMP R5,#&3|
00005130  33 20 3a 20 ec 51 20 52  35 2c 23 26 37 37 0d 19  |3 : .Q R5,#&77..|
00005140  aa 14 20 4c 44 52 42 20  52 36 2c 5b 52 31 2c 23  |.. LDRB R6,[R1,#|
00005150  31 5d 0d 19 b4 2e 20 43  4d 50 20 52 35 2c 23 30  |1].... CMP R5,#0|
00005160  20 3a 20 82 45 51 20 52  35 2c 52 35 2c 52 36 20  | : .EQ R5,R5,R6 |
00005170  3a 20 42 45 51 20 65 62  5f 62 79 74 65 5f 6f 6b  |: BEQ eb_byte_ok|
00005180  0d 19 be 1f 20 43 4d 50  20 52 36 2c 23 30 20 3a  |.... CMP R6,#0 :|
00005190  20 42 45 51 20 65 62 5f  62 79 74 65 5f 6f 6b 0d  | BEQ eb_byte_ok.|
000051a0  19 c8 10 20 82 53 20 52  35 2c 52 35 2c 52 36 0d  |... .S R5,R5,R6.|
000051b0  19 d2 10 20 4d 4f 56 4e  45 20 52 30 2c 23 31 0d  |... MOVNE R0,#1.|
000051c0  19 dc 10 20 2e 65 62 5f  62 79 74 65 5f 6f 6b 0d  |... .eb_byte_ok.|
000051d0  19 e6 15 20 53 54 52 42  20 52 35 2c 5b 52 31 2c  |... STRB R5,[R1,|
000051e0  23 31 5d 21 0d 19 f0 12  20 53 55 42 53 20 52 34  |#1]!.... SUBS R4|
000051f0  2c 52 34 2c 23 31 0d 19  fa 12 20 42 4e 45 20 65  |,R4,#1.... BNE e|
00005200  62 5f 74 77 65 6c 76 65  0d 1a 04 33 20 41 44 44  |b_twelve...3 ADD|
00005210  20 52 31 2c 52 31 2c 23  31 35 30 20 20 20 20 20  | R1,R1,#150     |
00005220  20 20 20 20 20 20 3b 20  20 20 31 36 30 20 70 69  |      ;   160 pi|
00005230  78 65 6c 73 20 61 63 72  6f 73 73 0d 1a 0e 12 20  |xels across.... |
00005240  53 55 42 53 20 52 33 2c  52 33 2c 23 31 0d 1a 18  |SUBS R3,R3,#1...|
00005250  11 20 42 4e 45 20 65 62  5f 65 69 67 68 74 0d 1a  |. BNE eb_eight..|
00005260  22 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  |": LDMFD R13!,{R|
00005270  31 7d 20 20 20 20 20 20  20 20 20 20 3b 20 20 72  |1}          ;  r|
00005280  65 73 74 6f 72 65 20 65  78 70 6c 6f 73 69 6f 6e  |estore explosion|
00005290  20 61 64 64 72 65 73 73  0d 1a 2c 20 20 43 4d 50  | address..,  CMP|
000052a0  20 52 30 2c 23 31 20 3a  20 42 4e 45 20 65 78 70  | R0,#1 : BNE exp|
000052b0  6c 6f 5f 63 6c 65 61 72  0d 1a 36 2f 20 4c 44 52  |lo_clear..6/ LDR|
000052c0  42 20 52 32 2c 64 65 61  64 20 3a 20 43 4d 50 20  |B R2,dead : CMP |
000052d0  52 32 2c 23 31 20 3a 20  42 45 51 20 65 78 70 6c  |R2,#1 : BEQ expl|
000052e0  6f 5f 63 6c 65 61 72 0d  1a 40 43 20 53 54 4d 46  |o_clear..@C STMF|
000052f0  44 20 52 31 33 21 2c 7b  52 31 34 2c 52 31 2d 52  |D R13!,{R14,R1-R|
00005300  36 7d 20 3a 20 42 4c 20  65 78 70 6c 6f 5f 68 69  |6} : BL explo_hi|
00005310  74 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |t : LDMFD R13!,{|
00005320  52 31 34 2c 52 31 2d 52  36 7d 0d 1a 4a 11 20 2e  |R14,R1-R6}..J. .|
00005330  65 78 70 6c 6f 5f 63 6c  65 61 72 0d 1a 54 10 20  |explo_clear..T. |
00005340  4d 4f 56 20 52 31 35 2c  52 31 34 0d 1a 5e 05 20  |MOV R15,R14..^. |
00005350  0d 1a 68 0f 20 2e 65 78  70 6c 6f 5f 68 69 74 0d  |..h. .explo_hit.|
00005360  1a 72 47 20 3b 20 20 52  31 20 20 20 2d 20 20 20  |.rG ;  R1   -   |
00005370  62 6f 6d 62 20 61 64 64  72 65 73 73 2c 20 20 72  |bomb address,  r|
00005380  65 6c 6f 61 64 65 64 20  66 72 6f 6d 20 73 74 61  |eloaded from sta|
00005390  63 6b 20 69 6e 20 70 72  65 76 69 6f 75 73 20 72  |ck in previous r|
000053a0  6f 75 74 69 6e 65 0d 1a  7c 41 20 53 54 4d 46 44  |outine..|A STMFD|
000053b0  20 52 31 33 21 2c 7b 52  31 34 7d 3a 42 4c 20 65  | R13!,{R14}:BL e|
000053c0  78 70 6c 6f 5f 68 69 74  5f 63 6f 6f 72 64 69 6e  |xplo_hit_coordin|
000053d0  61 74 65 73 20 3a 20 4c  44 4d 46 44 20 52 31 33  |ates : LDMFD R13|
000053e0  21 2c 7b 52 31 34 7d 0d  1a 86 05 20 0d 1a 90 0e  |!,{R14}.... ....|
000053f0  20 2e 45 58 5f 63 68 65  63 6b 0d 1a 9a 17 20 4c  | .EX_check.... L|
00005400  44 52 20 52 31 2c 58 5f  65 78 70 6c 6f 73 69 6f  |DR R1,X_explosio|
00005410  6e 0d 1a a4 16 20 4c 44  52 20 52 32 2c 58 5f 75  |n.... LDR R2,X_u|
00005420  73 65 72 73 68 69 70 0d  1a ae 1c 20 4c 44 52 42  |sership.... LDRB|
00005430  20 52 33 2c 65 78 70 6c  6f 73 69 6f 6e 5f 77 69  | R3,explosion_wi|
00005440  64 74 68 0d 1a b8 1b 20  4c 44 52 42 20 52 34 2c  |dth.... LDRB R4,|
00005450  75 73 65 72 73 68 69 70  5f 77 69 64 74 68 0d 1a  |usership_width..|
00005460  c2 0e 20 43 4d 50 20 52  31 2c 52 32 0d 1a cc 17  |.. CMP R1,R2....|
00005470  20 42 47 54 20 65 78 70  6c 6f 73 69 6f 6e 5f 6c  | BGT explosion_l|
00005480  65 66 74 0d 1a d6 11 20  41 44 44 20 52 31 2c 52  |eft.... ADD R1,R|
00005490  31 2c 52 33 0d 1a e0 0e  20 43 4d 50 20 52 31 2c  |1,R3.... CMP R1,|
000054a0  52 32 0d 1a ea 11 20 42  4c 54 20 6e 6f 5f 65 78  |R2.... BLT no_ex|
000054b0  70 6c 6f 0d 1a f4 0f 20  42 20 45 59 5f 63 68 65  |plo.... B EY_che|
000054c0  63 6b 0d 1a fe 05 20 0d  1b 08 14 20 2e 65 78 70  |ck.... .... .exp|
000054d0  6c 6f 73 69 6f 6e 5f 6c  65 66 74 0d 1b 12 11 20  |losion_left.... |
000054e0  41 44 44 20 52 32 2c 52  32 2c 52 34 0d 1b 1c 0e  |ADD R2,R2,R4....|
000054f0  20 43 4d 50 20 52 31 2c  52 32 0d 1b 26 11 20 42  | CMP R1,R2..&. B|
00005500  47 54 20 6e 6f 5f 65 78  70 6c 6f 0d 1b 30 05 20  |GT no_explo..0. |
00005510  0d 1b 3a 0e 20 2e 45 59  5f 63 68 65 63 6b 0d 1b  |..:. .EY_check..|
00005520  44 17 20 4c 44 52 20 52  31 2c 59 5f 65 78 70 6c  |D. LDR R1,Y_expl|
00005530  6f 73 69 6f 6e 0d 1b 4e  16 20 4c 44 52 20 52 32  |osion..N. LDR R2|
00005540  2c 59 5f 75 73 65 72 73  68 69 70 0d 1b 58 1d 20  |,Y_usership..X. |
00005550  4c 44 52 42 20 52 33 2c  65 78 70 6c 6f 73 69 6f  |LDRB R3,explosio|
00005560  6e 5f 68 65 69 67 68 74  0d 1b 62 1c 20 4c 44 52  |n_height..b. LDR|
00005570  42 20 52 34 2c 75 73 65  72 73 68 69 70 5f 68 65  |B R4,usership_he|
00005580  69 67 68 74 0d 1b 6c 0e  20 43 4d 50 20 52 31 2c  |ight..l. CMP R1,|
00005590  52 32 0d 1b 76 19 20 42  4c 54 20 65 78 70 6c 6f  |R2..v. BLT explo|
000055a0  73 69 6f 6e 5f 68 69 67  68 65 72 0d 1b 80 11 20  |sion_higher.... |
000055b0  53 55 42 20 52 31 2c 52  31 2c 52 33 0d 1b 8a 0e  |SUB R1,R1,R3....|
000055c0  20 43 4d 50 20 52 31 2c  52 32 0d 1b 94 11 20 42  | CMP R1,R2.... B|
000055d0  47 54 20 6e 6f 5f 65 78  70 6c 6f 0d 1b 9e 0e 20  |GT no_explo.... |
000055e0  42 20 45 5f 63 6c 65 61  72 0d 1b a8 05 20 0d 1b  |B E_clear.... ..|
000055f0  b2 16 20 2e 65 78 70 6c  6f 73 69 6f 6e 5f 68 69  |.. .explosion_hi|
00005600  67 68 65 72 0d 1b bc 11  20 53 55 42 20 52 32 2c  |gher.... SUB R2,|
00005610  52 32 2c 52 34 0d 1b c6  0e 20 43 4d 50 20 52 31  |R2,R4.... CMP R1|
00005620  2c 52 32 0d 1b d0 11 20  42 4c 54 20 6e 6f 5f 65  |,R2.... BLT no_e|
00005630  78 70 6c 6f 0d 1b da 0d  20 2e 45 5f 63 6c 65 61  |xplo.... .E_clea|
00005640  72 0d 1b e4 05 20 0d 1b  ee 1d 20 4d 4f 56 20 52  |r.... .... MOV R|
00005650  30 2c 23 31 20 3a 20 53  54 52 42 20 52 30 2c 64  |0,#1 : STRB R0,d|
00005660  65 61 64 0d 1b f8 66 20  4d 4f 56 20 52 30 2c 23  |ead...f MOV R0,#|
00005670  34 3a 4d 4f 56 20 52 31  2c 23 31 35 3a 52 53 42  |4:MOV R1,#15:RSB|
00005680  20 52 31 2c 52 31 2c 23  30 3a 4d 4f 56 20 52 32  | R1,R1,#0:MOV R2|
00005690  2c 23 31 3a 4d 4f 56 20  52 33 2c 23 32 35 3a 53  |,#1:MOV R3,#25:S|
000056a0  57 49 20 22 53 6f 75 6e  64 5f 43 6f 6e 74 72 6f  |WI "Sound_Contro|
000056b0  6c 22 20 20 20 20 20 20  3b 20 20 75 73 65 72 73  |l"      ;  users|
000056c0  68 69 70 20 73 6f 75 6e  64 0d 1c 02 63 20 53 54  |hip sound...c ST|
000056d0  4d 46 44 20 52 31 33 21  2c 7b 52 31 2d 52 38 2c  |MFD R13!,{R1-R8,|
000056e0  52 31 34 7d 20 3a 20 42  4c 20 69 6e 69 74 69 61  |R14} : BL initia|
000056f0  6c 69 73 65 5f 70 61 72  74 69 63 6c 65 73 20 3a  |lise_particles :|
00005700  20 42 4c 20 70 61 72 74  69 63 6c 65 5f 73 70 72  | BL particle_spr|
00005710  65 61 64 20 3a 20 4c 44  4d 46 44 20 52 31 33 21  |ead : LDMFD R13!|
00005720  2c 7b 52 31 2d 52 38 2c  52 31 34 7d 0d 1c 0c 05  |,{R1-R8,R14}....|
00005730  20 0d 1c 16 0e 20 2e 6e  6f 5f 65 78 70 6c 6f 0d  | .... .no_explo.|
00005740  1c 20 05 20 0d 1c 2a 05  20 0d 1c 34 10 20 4d 4f  |. . ..*. ..4. MO|
00005750  56 20 52 31 35 2c 52 31  34 0d 1c 3e 05 20 0d 1c  |V R15,R14..>. ..|
00005760  48 18 20 2e 69 6e 69 74  69 61 6c 69 73 65 5f 63  |H. .initialise_c|
00005770  6c 75 73 74 65 72 0d 1c  52 29 20 3b 20 52 31 20  |luster..R) ; R1 |
00005780  2d 20 73 74 61 72 74 20  61 64 64 72 65 73 73 20  |- start address |
00005790  6f 66 20 63 6c 75 73 74  65 72 20 62 6f 6d 62 0d  |of cluster bomb.|
000057a0  1c 5c 44 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |.\D STMFD R13!,{|
000057b0  52 31 34 2c 52 31 2d 52  36 7d 20 3a 20 42 4c 20  |R14,R1-R6} : BL |
000057c0  70 72 69 6e 74 5f 62 6f  6d 62 20 3a 20 4c 44 4d  |print_bomb : LDM|
000057d0  46 44 20 52 31 33 21 2c  7b 52 31 34 2c 52 31 2d  |FD R13!,{R14,R1-|
000057e0  52 36 7d 0d 1c 66 11 20  41 44 44 20 52 31 2c 52  |R6}..f. ADD R1,R|
000057f0  31 2c 23 31 0d 1c 70 18  20 41 44 52 20 52 32 2c  |1,#1..p. ADR R2,|
00005800  63 6c 75 73 74 65 72 5f  61 64 64 72 0d 1c 7a 29  |cluster_addr..z)|
00005810  20 4c 44 52 42 20 52 33  2c 63 6c 75 73 74 65 72  | LDRB R3,cluster|
00005820  5f 62 6f 6d 62 73 20 3a  20 53 55 42 20 52 33 2c  |_bombs : SUB R3,|
00005830  52 33 2c 23 31 0d 1c 84  21 20 4d 4f 56 20 52 35  |R3,#1...! MOV R5|
00005840  2c 23 34 38 20 3a 20 4d  4c 41 20 52 32 2c 52 33  |,#48 : MLA R2,R3|
00005850  2c 52 35 2c 52 32 0d 1c  8e 0e 20 4d 4f 56 20 52  |,R5,R2.... MOV R|
00005860  33 2c 23 36 0d 1c 98 0e  20 4d 4f 56 20 52 35 2c  |3,#6.... MOV R5,|
00005870  23 31 0d 1c a2 0c 20 2e  69 63 6c 6f 6f 70 0d 1c  |#1.... .icloop..|
00005880  ac 0e 20 4d 4f 56 20 52  34 2c 23 32 0d 1c b6 0d  |.. MOV R4,#2....|
00005890  20 2e 69 63 6c 6f 6f 70  32 0d 1c c0 13 20 53 54  | .icloop2.... ST|
000058a0  52 20 52 31 2c 5b 52 32  5d 2c 23 34 0d 1c ca 11  |R R1,[R2],#4....|
000058b0  20 41 44 44 20 52 31 2c  52 31 2c 23 31 0d 1c d4  | ADD R1,R1,#1...|
000058c0  12 20 53 55 42 53 20 52  34 2c 52 34 2c 23 31 0d  |. SUBS R4,R4,#1.|
000058d0  1c de 10 20 42 4e 45 20  69 63 6c 6f 6f 70 32 0d  |... BNE icloop2.|
000058e0  1c e8 13 20 41 44 44 20  52 31 2c 52 31 2c 23 31  |... ADD R1,R1,#1|
000058f0  35 38 0d 1c f2 12 20 53  55 42 53 20 52 33 2c 52  |58.... SUBS R3,R|
00005900  33 2c 23 31 0d 1c fc 0f  20 42 4e 45 20 69 63 6c  |3,#1.... BNE icl|
00005910  6f 6f 70 0d 1d 06 1a 20  41 44 52 20 52 32 2c 63  |oop.... ADR R2,c|
00005920  6c 75 73 74 65 72 5f 66  72 61 6d 65 73 0d 1d 10  |luster_frames...|
00005930  29 20 4c 44 52 42 20 52  33 2c 63 6c 75 73 74 65  |) LDRB R3,cluste|
00005940  72 5f 62 6f 6d 62 73 20  3a 20 53 55 42 20 52 33  |r_bombs : SUB R3|
00005950  2c 52 33 2c 23 31 0d 1d  1a 20 20 4d 4f 56 20 52  |,R3,#1...  MOV R|
00005960  35 2c 23 34 20 3a 20 4d  4c 41 20 52 32 2c 52 33  |5,#4 : MLA R2,R3|
00005970  2c 52 35 2c 52 32 0d 1d  24 3a 20 4d 4f 56 20 52  |,R5,R2..$: MOV R|
00005980  35 2c 23 26 30 41 30 30  20 3a 20 53 54 52 20 52  |5,#&0A00 : STR R|
00005990  35 2c 5b 52 32 5d 20 20  3b 20 72 65 73 65 74 20  |5,[R2]  ; reset |
000059a0  64 65 6c 61 79 20 61 6e  64 20 66 72 61 6d 65 73  |delay and frames|
000059b0  0d 1d 2e 10 20 4d 4f 56  20 52 31 35 2c 52 31 34  |.... MOV R15,R14|
000059c0  0d 1d 38 05 20 0d 1d 42  14 20 2e 63 6c 75 73 74  |..8. ..B. .clust|
000059d0  65 72 5f 73 70 72 65 61  64 0d 1d 4c 1e 20 3b 20  |er_spread..L. ; |
000059e0  20 52 31 20 20 20 63 6c  75 73 74 65 72 20 61 64  | R1   cluster ad|
000059f0  64 72 65 73 73 65 73 0d  1d 56 1a 20 3b 20 20 52  |dresses..V. ;  R|
00005a00  32 20 20 20 63 6c 75 73  74 65 72 20 70 61 74 68  |2   cluster path|
00005a10  73 0d 1d 60 0c 20 42 4e  56 20 65 6e 64 0d 1d 6a  |s..`. BNV end..j|
00005a20  13 20 41 44 52 20 52 33  2c 72 65 64 62 6f 6d 62  |. ADR R3,redbomb|
00005a30  0d 1d 74 2f 20 4d 4f 56  20 52 34 2c 23 31 32 20  |..t/ MOV R4,#12 |
00005a40  20 20 20 20 20 20 3b 20  6e 6f 20 6f 66 20 70 69  |      ; no of pi|
00005a50  78 65 6c 73 20 69 6e 20  63 6c 75 73 74 65 72 0d  |xels in cluster.|
00005a60  1d 7e 0c 20 2e 63 73 6c  6f 6f 70 0d 1d 88 39 20  |.~. .csloop...9 |
00005a70  4c 44 52 20 52 38 2c 5b  52 32 5d 2c 23 34 20 20  |LDR R8,[R2],#4  |
00005a80  20 20 20 20 20 3b 20 20  64 61 74 61 20 66 6f 72  |     ;  data for|
00005a90  20 61 20 73 69 6e 67 6c  65 20 70 69 78 65 6c 20  | a single pixel |
00005aa0  70 61 74 68 0d 1d 92 27  20 43 4d 50 20 52 38 2c  |path...' CMP R8,|
00005ab0  23 26 42 20 3a 20 42 4e  45 20 63 68 65 63 6b 5f  |#&B : BNE check_|
00005ac0  63 6c 75 73 74 65 72 5f  65 6e 64 0d 1d 9c 47 20  |cluster_end...G |
00005ad0  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 2c  |STMFD R13!,{R14,|
00005ae0  52 31 2d 52 38 7d 20 3a  20 42 4c 20 63 6c 75 73  |R1-R8} : BL clus|
00005af0  74 65 72 5f 62 6c 61 73  74 20 3a 20 4c 44 4d 46  |ter_blast : LDMF|
00005b00  44 20 52 31 33 21 2c 7b  52 31 34 2c 52 31 2d 52  |D R13!,{R14,R1-R|
00005b10  38 7d 0d 1d a6 20 20 41  44 44 20 52 33 2c 52 33  |8}...  ADD R3,R3|
00005b20  2c 23 31 20 3a 20 41 44  44 20 52 31 2c 52 31 2c  |,#1 : ADD R1,R1,|
00005b30  23 34 0d 1d b0 12 20 42  20 6c 61 73 74 5f 63 66  |#4.... B last_cf|
00005b40  72 61 6d 65 0d 1d ba 17  20 2e 63 68 65 63 6b 5f  |rame.... .check_|
00005b50  63 6c 75 73 74 65 72 5f  65 6e 64 0d 1d c4 43 20  |cluster_end...C |
00005b60  43 4d 50 20 52 38 2c 23  26 45 20 3a 20 20 41 44  |CMP R8,#&E :  AD|
00005b70  44 45 51 20 52 33 2c 52  33 2c 23 31 20 3a 41 44  |DEQ R3,R3,#1 :AD|
00005b80  44 45 51 20 52 31 2c 52  31 2c 23 34 20 3a 20 42  |DEQ R1,R1,#4 : B|
00005b90  45 51 20 6c 61 73 74 5f  63 66 72 61 6d 65 0d 1d  |EQ last_cframe..|
00005ba0  ce 29 20 4c 44 52 42 20  52 35 2c 5b 52 33 5d 2c  |.) LDRB R5,[R3],|
00005bb0  23 31 20 20 20 20 20 20  3b 20 20 63 6f 6c 6f 75  |#1      ;  colou|
00005bc0  72 20 3d 20 72 65 64 0d  1d d8 2f 20 4c 44 52 20  |r = red.../ LDR |
00005bd0  52 36 2c 5b 52 31 5d 20  20 20 20 20 20 20 20 20  |R6,[R1]         |
00005be0  20 3b 20 20 61 64 64 72  65 73 73 20 68 65 6c 64  | ;  address held|
00005bf0  20 69 6e 20 52 31 0d 1d  e2 35 20 4c 44 52 42 20  | in R1...5 LDRB |
00005c00  52 37 2c 5b 52 36 5d 20  20 20 20 20 20 20 20 20  |R7,[R6]         |
00005c10  3b 20 20 63 6f 6e 74 65  6e 74 73 20 6f 66 20 73  |;  contents of s|
00005c20  63 72 65 65 6e 20 69 6e  20 52 37 0d 1d ec 2d 20  |creen in R7...- |
00005c30  82 20 52 37 2c 52 37 2c  52 35 20 20 20 20 20 20  |. R7,R7,R5      |
00005c40  20 20 20 3b 20 20 63 6f  6c 6f 75 72 20 70 69 78  |   ;  colour pix|
00005c50  65 6c 20 62 6c 61 63 6b  0d 1d f6 36 20 53 54 52  |el black...6 STR|
00005c60  42 20 52 37 2c 5b 52 36  5d 20 20 20 20 20 20 20  |B R7,[R6]       |
00005c70  20 20 3b 20 20 62 6c 61  6e 6b 20 6f 75 74 20 70  |  ;  blank out p|
00005c80  69 78 65 6c 20 6f 6e 20  73 63 72 65 65 6e 0d 1e  |ixel on screen..|
00005c90  00 3f 20 41 44 44 20 52  36 2c 52 36 2c 52 38 20  |.? ADD R6,R6,R8 |
00005ca0  20 20 20 20 20 20 20 20  3b 20 20 61 64 64 20 6f  |        ;  add o|
00005cb0  66 66 73 65 74 20 70 61  74 68 20 74 6f 20 63 75  |ffset path to cu|
00005cc0  72 72 65 6e 74 20 61 64  64 72 65 73 73 0d 1e 0a  |rrent address...|
00005cd0  2e 20 53 54 52 20 52 36  2c 5b 52 31 5d 2c 23 34  |. STR R6,[R1],#4|
00005ce0  20 20 20 20 20 20 20 3b  20 20 73 74 6f 72 65 20  |       ;  store |
00005cf0  6e 65 77 20 61 64 64 72  65 73 73 0d 1e 14 20 20  |new address...  |
00005d00  43 4d 50 20 52 38 2c 23  30 20 3a 20 42 45 51 20  |CMP R8,#0 : BEQ |
00005d10  6c 61 73 74 5f 63 66 72  61 6d 65 0d 1e 1e 35 20  |last_cframe...5 |
00005d20  4c 44 52 42 20 52 37 2c  5b 52 36 5d 20 20 20 20  |LDRB R7,[R6]    |
00005d30  20 20 20 20 20 3b 20 20  63 6f 6e 74 65 6e 74 73  |     ;  contents|
00005d40  20 6f 66 20 73 63 72 65  65 6e 20 69 6e 20 52 37  | of screen in R7|
00005d50  0d 1e 28 30 20 82 20 52  37 2c 52 37 2c 52 35 20  |..(0 . R7,R7,R5 |
00005d60  20 20 20 20 20 20 20 20  3b 20 20 6f 62 74 61 69  |        ;  obtai|
00005d70  6e 20 63 6f 72 72 65 63  74 20 63 6f 6c 6f 75 72  |n correct colour|
00005d80  0d 1e 32 38 20 53 54 52  42 20 52 37 2c 5b 52 36  |..28 STRB R7,[R6|
00005d90  5d 20 20 20 20 20 20 20  20 20 3b 20 20 73 74 6f  |]         ;  sto|
00005da0  72 65 20 63 6f 6c 6f 75  72 20 62 79 74 65 20 74  |re colour byte t|
00005db0  6f 20 73 63 72 65 65 6e  0d 1e 3c 11 20 2e 6c 61  |o screen..<. .la|
00005dc0  73 74 5f 63 66 72 61 6d  65 0d 1e 46 24 20 53 55  |st_cframe..F$ SU|
00005dd0  42 53 20 52 34 2c 52 34  2c 23 31 20 20 20 20 20  |BS R4,R4,#1     |
00005de0  20 20 20 3b 20 20 ed 20  70 69 78 65 6c 0d 1e 50  |   ;  . pixel..P|
00005df0  0f 20 42 4e 45 20 63 73  6c 6f 6f 70 0d 1e 5a 10  |. BNE csloop..Z.|
00005e00  20 4d 4f 56 20 52 31 35  2c 52 31 34 0d 1e 64 05  | MOV R15,R14..d.|
00005e10  20 0d 1e 6e 13 20 2e 63  6c 75 73 74 65 72 5f 63  | ..n. .cluster_c|
00005e20  68 65 63 6b 0d 1e 78 38  20 4c 44 52 42 20 52 34  |heck..x8 LDRB R4|
00005e30  2c 63 6c 75 73 74 65 72  5f 62 6f 6d 62 73 20 3a  |,cluster_bombs :|
00005e40  20 43 4d 50 20 52 34 2c  23 30 20 3a 20 42 45 51  | CMP R4,#0 : BEQ|
00005e50  20 6e 6f 5f 63 6c 75 73  74 65 72 73 0d 1e 82 0e  | no_clusters....|
00005e60  20 4d 4f 56 20 52 37 2c  23 30 0d 1e 8c 12 20 2e  | MOV R7,#0.... .|
00005e70  6e 65 78 74 5f 63 6c 75  73 74 65 72 0d 1e 96 1a  |next_cluster....|
00005e80  20 41 44 52 20 52 33 2c  63 6c 75 73 74 65 72 5f  | ADR R3,cluster_|
00005e90  66 72 61 6d 65 73 0d 1e  a0 20 20 4d 4f 56 20 52  |frames...  MOV R|
00005ea0  35 2c 23 34 20 3a 20 4d  4c 41 20 52 33 2c 52 37  |5,#4 : MLA R3,R7|
00005eb0  2c 52 35 2c 52 33 0d 1e  aa 4a 20 4c 44 52 42 20  |,R5,R3...J LDRB |
00005ec0  52 35 2c 5b 52 33 2c 23  31 5d 20 3a 20 53 55 42  |R5,[R3,#1] : SUB|
00005ed0  53 20 52 35 2c 52 35 2c  23 31 20 3a 20 53 54 52  |S R5,R5,#1 : STR|
00005ee0  42 20 52 35 2c 5b 52 33  2c 23 31 5d 20 3a 20 42  |B R5,[R3,#1] : B|
00005ef0  4e 45 20 6e 65 78 74 32  5f 63 6c 75 73 74 65 72  |NE next2_cluster|
00005f00  0d 1e b4 30 20 4d 4f 56  20 52 35 2c 23 31 30 20  |...0 MOV R5,#10 |
00005f10  3a 20 53 54 52 42 20 52  35 2c 5b 52 33 2c 23 31  |: STRB R5,[R3,#1|
00005f20  5d 20 20 20 20 20 20 3b  20 20 20 64 65 6c 61 79  |]      ;   delay|
00005f30  0d 1e be 3e 20 53 54 4d  46 44 20 52 31 33 21 2c  |...> STMFD R13!,|
00005f40  7b 52 31 34 7d 20 3a 20  42 4c 20 64 69 72 65 63  |{R14} : BL direc|
00005f50  74 69 76 65 5f 63 6c 70  61 74 68 73 20 3a 4c 44  |tive_clpaths :LD|
00005f60  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 0d 1e  |MFD R13!,{R14}..|
00005f70  c8 18 20 41 44 52 20 52  31 2c 63 6c 75 73 74 65  |.. ADR R1,cluste|
00005f80  72 5f 61 64 64 72 0d 1e  d2 50 20 4d 4f 56 20 52  |r_addr...P MOV R|
00005f90  35 2c 23 34 38 20 3a 20  4d 4c 41 20 52 31 2c 52  |5,#48 : MLA R1,R|
00005fa0  37 2c 52 35 2c 52 31 20  20 20 20 3b 20 34 38 20  |7,R5,R1    ; 48 |
00005fb0  62 79 74 65 73 20 65 61  63 68 20 73 65 74 20 6f  |bytes each set o|
00005fc0  66 20 31 32 20 63 6c 75  73 74 65 72 20 61 64 64  |f 12 cluster add|
00005fd0  72 65 73 73 65 73 0d 1e  dc 47 20 4c 44 52 42 20  |resses...G LDRB |
00005fe0  52 35 2c 5b 52 33 5d 20  3a 20 4d 4f 56 20 52 36  |R5,[R3] : MOV R6|
00005ff0  2c 23 34 38 20 3a 20 4d  4c 41 20 52 32 2c 52 35  |,#48 : MLA R2,R5|
00006000  2c 52 36 2c 52 32 20 20  3b 20 34 38 20 62 79 74  |,R6,R2  ; 48 byt|
00006010  65 73 20 65 61 63 68 20  66 72 61 6d 65 0d 1e e6  |es each frame...|
00006020  21 20 43 4d 50 20 52 35  2c 23 32 36 20 3a 20 42  |! CMP R5,#26 : B|
00006030  45 51 20 45 6e 64 5f 63  6c 75 73 74 65 72 0d 1e  |EQ End_cluster..|
00006040  f0 20 20 41 44 44 20 52  35 2c 52 35 2c 23 31 20  |.  ADD R5,R5,#1 |
00006050  3a 20 53 54 52 42 20 52  35 2c 5b 52 33 5d 0d 1e  |: STRB R5,[R3]..|
00006060  fa 05 20 0d 1f 04 48 20  53 54 4d 46 44 20 52 31  |.. ...H STMFD R1|
00006070  33 21 2c 7b 52 31 34 2c  52 31 2d 52 38 7d 20 3a  |3!,{R14,R1-R8} :|
00006080  20 42 4c 20 63 6c 75 73  74 65 72 5f 73 70 72 65  | BL cluster_spre|
00006090  61 64 20 3a 20 4c 44 4d  46 44 20 52 31 33 21 2c  |ad : LDMFD R13!,|
000060a0  7b 52 31 34 2c 52 31 2d  52 38 7d 0d 1f 0e 14 20  |{R14,R1-R8}.... |
000060b0  42 20 6e 65 78 74 32 5f  63 6c 75 73 74 65 72 0d  |B next2_cluster.|
000060c0  1f 18 11 20 2e 45 6e 64  5f 63 6c 75 73 74 65 72  |... .End_cluster|
000060d0  0d 1f 22 1d 20 4d 4f 56  20 52 35 2c 23 30 20 3a  |..". MOV R5,#0 :|
000060e0  20 53 54 52 42 20 52 35  2c 5b 52 33 5d 0d 1f 2c  | STRB R5,[R3]..,|
000060f0  42 20 4c 44 52 42 20 52  35 2c 63 6c 75 73 74 65  |B LDRB R5,cluste|
00006100  72 5f 62 6f 6d 62 73 20  3a 20 53 55 42 53 20 52  |r_bombs : SUBS R|
00006110  35 2c 52 35 2c 23 31 20  3a 20 53 54 52 42 20 52  |5,R5,#1 : STRB R|
00006120  35 2c 63 6c 75 73 74 65  72 5f 62 6f 6d 62 73 0d  |5,cluster_bombs.|
00006130  1f 36 14 20 42 45 51 20  6e 6f 5f 63 6c 75 73 74  |.6. BEQ no_clust|
00006140  65 72 73 0d 1f 40 1e 20  53 55 42 20 52 34 2c 52  |ers..@. SUB R4,R|
00006150  34 2c 23 31 3a 53 55 42  20 52 37 2c 52 37 2c 23  |4,#1:SUB R7,R7,#|
00006160  31 0d 1f 4a 49 20 53 54  4d 46 44 20 52 31 33 21  |1..JI STMFD R13!|
00006170  2c 7b 52 31 34 2c 52 31  2d 52 38 7d 20 3a 20 42  |,{R14,R1-R8} : B|
00006180  4c 20 63 6c 75 73 74 65  72 5f 6d 65 6d 6d 6f 76  |L cluster_memmov|
00006190  65 20 3a 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |e : LDMFD R13!,{|
000061a0  52 31 34 2c 52 31 2d 52  38 7d 0d 1f 54 13 20 2e  |R14,R1-R8}..T. .|
000061b0  6e 65 78 74 32 5f 63 6c  75 73 74 65 72 0d 1f 5e  |next2_cluster..^|
000061c0  30 20 41 44 44 20 52 37  2c 52 37 2c 23 31 20 3a  |0 ADD R7,R7,#1 :|
000061d0  20 43 4d 50 20 52 37 2c  52 34 20 3a 20 42 4e 45  | CMP R7,R4 : BNE|
000061e0  20 6e 65 78 74 5f 63 6c  75 73 74 65 72 0d 1f 68  | next_cluster..h|
000061f0  11 20 2e 6e 6f 5f 63 6c  75 73 74 65 72 73 0d 1f  |. .no_clusters..|
00006200  72 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 1f  |r. MOV R15,R14..|
00006210  7c 05 20 0d 1f 86 15 20  2e 63 6c 75 73 74 65 72  ||. .... .cluster|
00006220  5f 6d 65 6d 6d 6f 76 65  0d 1f 90 1a 20 41 44 52  |_memmove.... ADR|
00006230  20 52 31 2c 63 6c 75 73  74 65 72 5f 66 72 61 6d  | R1,cluster_fram|
00006240  65 73 0d 1f 9a 21 20 4c  44 52 20 52 32 2c 5b 52  |es...! LDR R2,[R|
00006250  31 2c 23 34 5d 20 3a 20  53 54 52 20 52 32 2c 5b  |1,#4] : STR R2,[|
00006260  52 31 5d 0d 1f a4 28 20  41 44 52 20 52 31 2c 63  |R1]...( ADR R1,c|
00006270  6c 75 73 74 65 72 5f 61  64 64 72 20 3a 20 41 44  |luster_addr : AD|
00006280  44 20 52 31 2c 52 31 2c  23 34 38 0d 1f ae 0f 20  |D R1,R1,#48.... |
00006290  4d 4f 56 20 52 32 2c 23  31 32 0d 1f b8 0c 20 2e  |MOV R2,#12.... .|
000062a0  63 6d 6c 6f 6f 70 0d 1f  c2 13 20 4c 44 52 20 52  |cmloop.... LDR R|
000062b0  33 2c 5b 52 31 5d 2c 23  34 0d 1f cc 15 20 53 54  |3,[R1],#4.... ST|
000062c0  52 20 52 33 2c 5b 52 31  2c 23 2d 35 32 5d 0d 1f  |R R3,[R1,#-52]..|
000062d0  d6 12 20 53 55 42 53 20  52 32 2c 52 32 2c 23 31  |.. SUBS R2,R2,#1|
000062e0  0d 1f e0 0f 20 42 4e 45  20 63 6d 6c 6f 6f 70 0d  |.... BNE cmloop.|
000062f0  1f ea 05 20 0d 1f f4 10  20 4d 4f 56 20 52 31 35  |... .... MOV R15|
00006300  2c 52 31 34 0d 1f fe 05  20 0d 20 08 1a 20 2e 63  |,R14.... . .. .c|
00006310  6c 75 73 74 65 72 5f 62  6f 6d 62 73 20 45 51 55  |luster_bombs EQU|
00006320  42 20 30 0d 20 12 0a 20  41 4c 49 47 4e 0d 20 1c  |B 0. .. ALIGN. .|
00006330  23 20 2e 63 6c 75 73 74  65 72 5f 66 72 61 6d 65  |# .cluster_frame|
00006340  73 20 45 51 55 44 20 26  30 30 30 30 30 41 30 30  |s EQUD &00000A00|
00006350  0d 20 26 23 20 20 20 20  20 20 20 20 20 20 20 20  |. &#            |
00006360  20 20 20 20 20 45 51 55  44 20 26 30 30 30 30 30  |     EQUD &00000|
00006370  41 30 30 0d 20 30 12 20  2e 63 6c 75 73 74 65 72  |A00. 0. .cluster|
00006380  5f 61 64 64 72 0d 20 3a  30 20 45 51 55 44 20 30  |_addr. :0 EQUD 0|
00006390  3a 45 51 55 44 20 30 20  3a 45 51 55 44 20 30 3a  |:EQUD 0 :EQUD 0:|
000063a0  45 51 55 44 20 30 20 3a  45 51 55 44 20 30 3a 45  |EQUD 0 :EQUD 0:E|
000063b0  51 55 44 20 30 0d 20 44  30 20 45 51 55 44 20 30  |QUD 0. D0 EQUD 0|
000063c0  3a 45 51 55 44 20 30 20  3a 45 51 55 44 20 30 3a  |:EQUD 0 :EQUD 0:|
000063d0  45 51 55 44 20 30 20 3a  45 51 55 44 20 30 3a 45  |EQUD 0 :EQUD 0:E|
000063e0  51 55 44 20 30 0d 20 4e  05 20 0d 20 58 30 20 45  |QUD 0. N. . X0 E|
000063f0  51 55 44 20 30 3a 45 51  55 44 20 30 20 3a 45 51  |QUD 0:EQUD 0 :EQ|
00006400  55 44 20 30 3a 45 51 55  44 20 30 20 3a 45 51 55  |UD 0:EQUD 0 :EQU|
00006410  44 20 30 3a 45 51 55 44  20 30 0d 20 62 30 20 45  |D 0:EQUD 0. b0 E|
00006420  51 55 44 20 30 3a 45 51  55 44 20 30 20 3a 45 51  |QUD 0:EQUD 0 :EQ|
00006430  55 44 20 30 3a 45 51 55  44 20 30 20 3a 45 51 55  |UD 0:EQUD 0 :EQU|
00006440  44 20 30 3a 45 51 55 44  20 30 0d 20 6c 05 20 0d  |D 0:EQUD 0. l. .|
00006450  20 76 13 20 2e 63 6c 75  73 74 65 72 5f 62 6c 61  | v. .cluster_bla|
00006460  73 74 0d 20 80 0e 20 4d  4f 56 20 52 30 2c 23 30  |st. .. MOV R0,#0|
00006470  0d 20 8a 40 20 3b 20 20  52 31 20 2d 20 68 6f 6c  |. .@ ;  R1 - hol|
00006480  64 73 20 61 64 64 72 65  73 73 20 77 68 65 72 65  |ds address where|
00006490  20 63 6c 75 73 74 65 72  20 64 61 74 61 20 61 64  | cluster data ad|
000064a0  64 72 65 73 73 65 73 20  61 72 65 20 68 65 6c 64  |dresses are held|
000064b0  0d 20 94 3b 20 4c 44 52  20 52 32 2c 5b 52 31 5d  |. .; LDR R2,[R1]|
000064c0  20 20 20 20 3b 20 20 61  64 64 72 65 73 73 20 6f  |    ;  address o|
000064d0  66 20 73 65 70 65 72 61  74 65 20 70 69 78 65 6c  |f seperate pixel|
000064e0  20 69 6e 20 63 6c 75 73  74 65 72 0d 20 9e 16 20  | in cluster. .. |
000064f0  41 44 52 20 52 33 2c 64  61 74 61 5f 62 6c 61 73  |ADR R3,data_blas|
00006500  74 0d 20 a8 0e 20 4d 4f  56 20 52 34 2c 23 35 0d  |t. .. MOV R4,#5.|
00006510  20 b2 0c 20 2e 64 62 6c  6f 6f 70 0d 20 bc 0e 20  | .. .dbloop. .. |
00006520  4d 4f 56 20 52 35 2c 23  34 0d 20 c6 0d 20 2e 64  |MOV R5,#4. .. .d|
00006530  62 6c 6f 6f 70 32 0d 20  d0 31 20 4c 44 52 42 20  |bloop2. .1 LDRB |
00006540  52 36 2c 5b 52 32 5d 20  20 20 20 20 20 20 20 20  |R6,[R2]         |
00006550  3b 20 20 20 20 63 6f 6e  74 65 6e 74 73 20 6f 66  |;    contents of|
00006560  20 73 63 72 65 65 6e 0d  20 da 25 20 4c 44 52 42  | screen. .% LDRB|
00006570  20 52 37 2c 5b 52 33 5d  2c 23 31 20 20 20 20 20  | R7,[R3],#1     |
00006580  20 3b 20 20 20 20 63 6f  6c 6f 75 72 0d 20 e4 2b  | ;    colour. .+|
00006590  20 43 4d 50 20 52 37 2c  23 30 20 3a 20 82 45 51  | CMP R7,#0 : .EQ|
000065a0  20 52 37 2c 52 36 2c 52  37 20 3a 20 42 45 51 20  | R7,R6,R7 : BEQ |
000065b0  63 62 5f 73 6b 69 70 0d  20 ee 1c 20 43 4d 50 20  |cb_skip. .. CMP |
000065c0  52 36 2c 23 30 20 3a 20  42 45 51 20 63 62 5f 73  |R6,#0 : BEQ cb_s|
000065d0  6b 69 70 0d 20 f8 10 20  82 53 20 52 37 2c 52 36  |kip. .. .S R7,R6|
000065e0  2c 52 37 0d 21 02 10 20  4d 4f 56 4e 45 20 52 30  |,R7.!.. MOVNE R0|
000065f0  2c 23 31 0d 21 0c 0d 20  2e 63 62 5f 73 6b 69 70  |,#1.!.. .cb_skip|
00006600  0d 21 16 14 20 53 54 52  42 20 52 37 2c 5b 52 32  |.!.. STRB R7,[R2|
00006610  5d 2c 23 31 0d 21 20 12  20 53 55 42 53 20 52 35  |],#1.! . SUBS R5|
00006620  2c 52 35 2c 23 31 0d 21  2a 10 20 42 4e 45 20 64  |,R5,#1.!*. BNE d|
00006630  62 6c 6f 6f 70 32 0d 21  34 13 20 41 44 44 20 52  |bloop2.!4. ADD R|
00006640  32 2c 52 32 2c 23 31 35  36 0d 21 3e 12 20 53 55  |2,R2,#156.!>. SU|
00006650  42 53 20 52 34 2c 52 34  2c 23 31 0d 21 48 0f 20  |BS R4,R4,#1.!H. |
00006660  42 4e 45 20 64 62 6c 6f  6f 70 0d 21 52 22 20 43  |BNE dbloop.!R" C|
00006670  4d 50 20 52 30 2c 23 30  20 3a 20 42 45 51 20 63  |MP R0,#0 : BEQ c|
00006680  6c 75 73 74 65 72 5f 63  6c 65 61 72 0d 21 5c 31  |luster_clear.!\1|
00006690  20 4c 44 52 42 20 52 32  2c 64 65 61 64 20 3a 20  | LDRB R2,dead : |
000066a0  43 4d 50 20 52 32 2c 23  31 20 3a 20 42 45 51 20  |CMP R2,#1 : BEQ |
000066b0  63 6c 75 73 74 65 72 5f  63 6c 65 61 72 0d 21 66  |cluster_clear.!f|
000066c0  53 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |S STMFD R13!,{R1|
000066d0  34 2c 52 31 2d 52 36 7d  20 3a 20 4c 44 52 20 52  |4,R1-R6} : LDR R|
000066e0  31 2c 5b 52 31 5d 20 3a  20 42 4c 20 63 6c 75 73  |1,[R1] : BL clus|
000066f0  74 65 72 5f 68 69 74 20  3a 20 4c 44 4d 46 44 20  |ter_hit : LDMFD |
00006700  52 31 33 21 2c 7b 52 31  34 2c 52 31 2d 52 36 7d  |R13!,{R14,R1-R6}|
00006710  0d 21 70 13 20 2e 63 6c  75 73 74 65 72 5f 63 6c  |.!p. .cluster_cl|
00006720  65 61 72 0d 21 7a 66 20  4d 4f 56 20 52 30 2c 23  |ear.!zf MOV R0,#|
00006730  32 20 3a 4d 4f 56 20 52  31 2c 23 31 30 3a 52 53  |2 :MOV R1,#10:RS|
00006740  42 20 52 31 2c 52 31 2c  23 30 3a 4d 4f 56 20 52  |B R1,R1,#0:MOV R|
00006750  32 2c 23 31 30 3a 4d 4f  56 20 52 33 2c 23 31 30  |2,#10:MOV R3,#10|
00006760  3a 53 57 49 20 22 53 6f  75 6e 64 5f 43 6f 6e 74  |:SWI "Sound_Cont|
00006770  72 6f 6c 22 20 20 20 20  20 3b 20 20 63 6c 75 73  |rol"     ;  clus|
00006780  74 65 72 20 73 6f 75 6e  64 0d 21 84 10 20 4d 4f  |ter sound.!.. MO|
00006790  56 20 52 31 35 2c 52 31  34 0d 21 8e 05 20 0d 21  |V R15,R14.!.. .!|
000067a0  98 10 20 2e 64 61 74 61  5f 62 6c 61 73 74 0d 21  |.. .data_blast.!|
000067b0  a2 13 20 45 51 55 44 20  26 30 30 31 31 33 31 31  |.. EQUD &0011311|
000067c0  30 0d 21 ac 13 20 45 51  55 44 20 26 31 31 33 37  |0.!.. EQUD &1137|
000067d0  37 33 33 31 0d 21 b6 13  20 45 51 55 44 20 26 31  |7331.!.. EQUD &1|
000067e0  33 37 37 33 33 31 31 0d  21 c0 13 20 45 51 55 44  |3773311.!.. EQUD|
000067f0  20 26 30 31 33 33 33 31  31 30 0d 21 ca 13 20 45  | &01333110.!.. E|
00006800  51 55 44 20 26 30 30 31  31 31 31 30 30 0d 21 d4  |QUD &00111100.!.|
00006810  05 20 0d 21 de 11 20 2e  63 6c 75 73 74 65 72 5f  |. .!.. .cluster_|
00006820  68 69 74 0d 21 e8 28 20  3b 20 20 52 31 20 20 2d  |hit.!.( ;  R1  -|
00006830  20 20 20 61 20 73 65 70  65 72 61 74 65 20 62 6c  |   a seperate bl|
00006840  61 73 74 20 61 64 64 72  65 73 73 0d 21 f2 43 20  |ast address.!.C |
00006850  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 7d  |STMFD R13!,{R14}|
00006860  3a 42 4c 20 63 6c 75 73  74 65 72 5f 68 69 74 5f  |:BL cluster_hit_|
00006870  63 6f 6f 72 64 69 6e 61  74 65 73 20 3a 20 4c 44  |coordinates : LD|
00006880  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 0d 21  |MFD R13!,{R14}.!|
00006890  fc 05 20 0d 22 06 0f 20  2e 43 4c 58 5f 63 68 65  |.. .".. .CLX_che|
000068a0  63 6b 0d 22 10 13 20 4c  44 52 20 52 31 2c 58 5f  |ck.".. LDR R1,X_|
000068b0  62 6c 61 73 74 0d 22 1a  16 20 4c 44 52 20 52 32  |blast.".. LDR R2|
000068c0  2c 58 5f 75 73 65 72 73  68 69 70 0d 22 24 18 20  |,X_usership."$. |
000068d0  4c 44 52 42 20 52 33 2c  62 6c 61 73 74 5f 77 69  |LDRB R3,blast_wi|
000068e0  64 74 68 0d 22 2e 1b 20  4c 44 52 42 20 52 34 2c  |dth.".. LDRB R4,|
000068f0  75 73 65 72 73 68 69 70  5f 77 69 64 74 68 0d 22  |usership_width."|
00006900  38 0e 20 43 4d 50 20 52  31 2c 52 32 0d 22 42 13  |8. CMP R1,R2."B.|
00006910  20 42 47 54 20 62 6c 61  73 74 5f 6c 65 66 74 0d  | BGT blast_left.|
00006920  22 4c 11 20 41 44 44 20  52 31 2c 52 31 2c 52 33  |"L. ADD R1,R1,R3|
00006930  0d 22 56 0e 20 43 4d 50  20 52 31 2c 52 32 0d 22  |."V. CMP R1,R2."|
00006940  60 11 20 42 4c 54 20 6e  6f 5f 62 6c 61 73 74 0d  |`. BLT no_blast.|
00006950  22 6a 10 20 42 20 43 4c  59 5f 63 68 65 63 6b 0d  |"j. B CLY_check.|
00006960  22 74 05 20 0d 22 7e 10  20 2e 62 6c 61 73 74 5f  |"t. ."~. .blast_|
00006970  6c 65 66 74 0d 22 88 11  20 41 44 44 20 52 32 2c  |left.".. ADD R2,|
00006980  52 32 2c 52 34 0d 22 92  0e 20 43 4d 50 20 52 31  |R2,R4.".. CMP R1|
00006990  2c 52 32 0d 22 9c 11 20  42 47 54 20 6e 6f 5f 62  |,R2.".. BGT no_b|
000069a0  6c 61 73 74 0d 22 a6 05  20 0d 22 b0 0f 20 2e 43  |last.".. .".. .C|
000069b0  4c 59 5f 63 68 65 63 6b  0d 22 ba 13 20 4c 44 52  |LY_check.".. LDR|
000069c0  20 52 31 2c 59 5f 62 6c  61 73 74 0d 22 c4 16 20  | R1,Y_blast.".. |
000069d0  4c 44 52 20 52 32 2c 59  5f 75 73 65 72 73 68 69  |LDR R2,Y_usershi|
000069e0  70 0d 22 ce 19 20 4c 44  52 42 20 52 33 2c 62 6c  |p.".. LDRB R3,bl|
000069f0  61 73 74 5f 68 65 69 67  68 74 0d 22 d8 1c 20 4c  |ast_height.".. L|
00006a00  44 52 42 20 52 34 2c 75  73 65 72 73 68 69 70 5f  |DRB R4,usership_|
00006a10  68 65 69 67 68 74 0d 22  e2 0e 20 43 4d 50 20 52  |height.".. CMP R|
00006a20  31 2c 52 32 0d 22 ec 15  20 42 4c 54 20 62 6c 61  |1,R2.".. BLT bla|
00006a30  73 74 5f 68 69 67 68 65  72 0d 22 f6 11 20 53 55  |st_higher.".. SU|
00006a40  42 20 52 31 2c 52 31 2c  52 33 0d 23 00 0e 20 43  |B R1,R1,R3.#.. C|
00006a50  4d 50 20 52 31 2c 52 32  0d 23 0a 11 20 42 47 54  |MP R1,R2.#.. BGT|
00006a60  20 6e 6f 5f 62 6c 61 73  74 0d 23 14 0f 20 42 20  | no_blast.#.. B |
00006a70  43 4c 5f 63 6c 65 61 72  0d 23 1e 05 20 0d 23 28  |CL_clear.#.. .#(|
00006a80  12 20 2e 62 6c 61 73 74  5f 68 69 67 68 65 72 0d  |. .blast_higher.|
00006a90  23 32 11 20 53 55 42 20  52 32 2c 52 32 2c 52 34  |#2. SUB R2,R2,R4|
00006aa0  0d 23 3c 0e 20 43 4d 50  20 52 31 2c 52 32 0d 23  |.#<. CMP R1,R2.#|
00006ab0  46 11 20 42 4c 54 20 6e  6f 5f 62 6c 61 73 74 0d  |F. BLT no_blast.|
00006ac0  23 50 0e 20 2e 43 4c 5f  63 6c 65 61 72 0d 23 5a  |#P. .CL_clear.#Z|
00006ad0  05 20 0d 23 64 1d 20 4d  4f 56 20 52 30 2c 23 31  |. .#d. MOV R0,#1|
00006ae0  20 3a 20 53 54 52 42 20  52 30 2c 64 65 61 64 0d  | : STRB R0,dead.|
00006af0  23 6e 66 20 4d 4f 56 20  52 30 2c 23 34 3a 4d 4f  |#nf MOV R0,#4:MO|
00006b00  56 20 52 31 2c 23 31 35  3a 52 53 42 20 52 31 2c  |V R1,#15:RSB R1,|
00006b10  52 31 2c 23 30 3a 4d 4f  56 20 52 32 2c 23 31 3a  |R1,#0:MOV R2,#1:|
00006b20  4d 4f 56 20 52 33 2c 23  32 35 3a 53 57 49 20 22  |MOV R3,#25:SWI "|
00006b30  53 6f 75 6e 64 5f 43 6f  6e 74 72 6f 6c 22 20 20  |Sound_Control"  |
00006b40  20 20 20 20 3b 20 20 75  73 65 72 73 68 69 70 20  |    ;  usership |
00006b50  73 6f 75 6e 64 0d 23 78  63 20 53 54 4d 46 44 20  |sound.#xc STMFD |
00006b60  52 31 33 21 2c 7b 52 31  2d 52 38 2c 52 31 34 7d  |R13!,{R1-R8,R14}|
00006b70  20 3a 20 42 4c 20 69 6e  69 74 69 61 6c 69 73 65  | : BL initialise|
00006b80  5f 70 61 72 74 69 63 6c  65 73 20 3a 20 42 4c 20  |_particles : BL |
00006b90  70 61 72 74 69 63 6c 65  5f 73 70 72 65 61 64 20  |particle_spread |
00006ba0  3a 20 4c 44 4d 46 44 20  52 31 33 21 2c 7b 52 31  |: LDMFD R13!,{R1|
00006bb0  2d 52 38 2c 52 31 34 7d  0d 23 82 05 20 0d 23 8c  |-R8,R14}.#.. .#.|
00006bc0  0e 20 2e 6e 6f 5f 62 6c  61 73 74 0d 23 96 05 20  |. .no_blast.#.. |
00006bd0  0d 23 a0 05 20 0d 23 aa  10 20 4d 4f 56 20 52 31  |.#.. .#.. MOV R1|
00006be0  35 2c 52 31 34 0d 23 b4  05 20 0d 23 be 05 20 0d  |5,R14.#.. .#.. .|
00006bf0  23 c8 15 20 2e 65 78 70  6c 6f 73 69 6f 6e 5f 63  |#.. .explosion_c|
00006c00  68 65 63 6b 0d 23 d2 1a  20 4c 44 52 42 20 52 31  |heck.#.. LDRB R1|
00006c10  2c 6e 6f 5f 6f 66 5f 73  70 72 69 74 65 73 0d 23  |,no_of_sprites.#|
00006c20  dc 3c 20 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.< STMFD R13!,{R|
00006c30  31 34 7d 20 3a 20 42 4c  20 64 69 72 65 63 74 69  |14} : BL directi|
00006c40  76 65 5f 62 79 74 65 20  3a 20 4c 44 4d 46 44 20  |ve_byte : LDMFD |
00006c50  52 31 33 21 2c 7b 52 31  34 7d 0d 23 e6 0c 20 2e  |R13!,{R14}.#.. .|
00006c60  65 63 6c 6f 6f 70 0d 23  f0 37 20 4c 44 52 42 20  |ecloop.#.7 LDRB |
00006c70  52 33 2c 5b 52 32 2c 23  39 5d 20 20 20 20 20 20  |R3,[R2,#9]      |
00006c80  20 20 20 20 20 20 20 20  20 20 20 3b 20 20 20 65  |           ;   e|
00006c90  78 70 6c 6f 73 69 6f 6e  20 66 6c 61 67 0d 23 fa  |xplosion flag.#.|
00006ca0  35 20 43 4d 50 20 52 33  2c 23 34 20 3a 20 42 4e  |5 CMP R3,#4 : BN|
00006cb0  45 20 65 63 6f 76 65 72  20 20 20 20 20 20 20 20  |E ecover        |
00006cc0  20 20 3b 20 20 20 6e 6f  20 65 78 70 6c 6f 73 69  |  ;   no explosi|
00006cd0  6f 6e 0d 24 04 38 20 4c  44 52 42 20 52 33 2c 5b  |on.$.8 LDRB R3,[|
00006ce0  52 32 2c 23 31 30 5d 20  20 20 20 20 20 20 20 20  |R2,#10]         |
00006cf0  20 20 20 20 20 20 20 3b  20 20 20 65 78 70 6c 6f  |       ;   explo|
00006d00  73 69 6f 6e 20 74 69 6d  65 72 0d 24 0e 11 20 53  |sion timer.$.. S|
00006d10  55 42 20 52 33 2c 52 33  2c 23 31 0d 24 18 15 20  |UB R3,R3,#1.$.. |
00006d20  53 54 52 42 20 52 33 2c  5b 52 32 2c 23 31 30 5d  |STRB R3,[R2,#10]|
00006d30  0d 24 22 4b 20 43 4d 50  20 52 33 2c 23 30 20 3a  |.$"K CMP R3,#0 :|
00006d40  20 42 4e 45 20 65 63 6f  76 65 72 20 20 20 20 20  | BNE ecover     |
00006d50  20 20 20 20 20 3b 20 20  20 65 78 70 6c 6f 73 69  |     ;   explosi|
00006d60  6f 6e 20 73 74 69 6c 6c  20 6f 6e 73 63 72 65 65  |on still onscree|
00006d70  6e 20 73 6f 20 62 72 61  6e 63 68 0d 24 2c 18 20  |n so branch.$,. |
00006d80  2e 65 78 70 6c 6f 73 69  6f 6e 5f 66 69 6e 69 73  |.explosion_finis|
00006d90  68 65 73 0d 24 36 05 20  0d 24 40 2a 20 4c 44 52  |hes.$6. .$@* LDR|
00006da0  42 20 52 33 2c 5b 52 32  2c 23 31 31 5d 20 20 20  |B R3,[R2,#11]   |
00006db0  20 3b 20 20 20 66 72 61  6d 65 20 70 6f 69 6e 74  | ;   frame point|
00006dc0  65 72 0d 24 4a 71 20 53  54 4d 46 44 20 52 31 33  |er.$Jq STMFD R13|
00006dd0  21 2c 7b 52 31 34 2c 52  32 7d 20 3a 20 42 4c 20  |!,{R14,R2} : BL |
00006de0  64 69 72 65 63 74 69 76  65 5f 65 78 70 6c 6f 73  |directive_explos|
00006df0  69 6f 6e 20 3a 20 4d 4f  56 20 52 34 2c 52 32 20  |ion : MOV R4,R2 |
00006e00  3a 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  |:LDMFD R13!,{R14|
00006e10  2c 52 32 7d 20 20 20 20  3b 20 20 20 73 74 61 72  |,R2}    ;   star|
00006e20  74 20 6f 66 20 65 78 70  6c 6f 73 69 6f 6e 20 64  |t of explosion d|
00006e30  61 74 61 0d 24 54 6d 20  53 54 4d 46 44 20 52 31  |ata.$Tm STMFD R1|
00006e40  33 21 2c 7b 52 31 2d 52  37 2c 52 31 34 7d 20 3a  |3!,{R1-R7,R14} :|
00006e50  20 4c 44 52 20 52 31 2c  5b 52 32 5d 20 3a 20 4d  | LDR R1,[R2] : M|
00006e60  4f 56 20 52 32 2c 23 31  34 30 20 3a 20 4d 4c 41  |OV R2,#140 : MLA|
00006e70  20 52 32 2c 52 33 2c 52  32 2c 52 34 20 3a 20 42  | R2,R3,R2,R4 : B|
00006e80  4c 20 66 72 61 6d 65 20  3a 20 4c 44 4d 46 44 20  |L frame : LDMFD |
00006e90  52 31 33 21 2c 7b 52 31  2d 52 37 2c 52 31 34 7d  |R13!,{R1-R7,R14}|
00006ea0  0d 24 5e 05 20 0d 24 68  3a 20 43 4d 50 20 52 33  |.$^. .$h: CMP R3|
00006eb0  2c 23 35 20 3a 20 42 45  51 20 66 72 61 6d 65 5f  |,#5 : BEQ frame_|
00006ec0  66 69 6e 69 73 68 20 20  20 20 20 3b 20 20 20 65  |finish     ;   e|
00006ed0  6e 64 20 6f 66 20 65 78  70 6c 6f 73 69 6f 6e 0d  |nd of explosion.|
00006ee0  24 72 38 20 4d 4f 56 20  52 31 31 2c 23 31 35 3a  |$r8 MOV R11,#15:|
00006ef0  20 53 54 52 42 20 52 31  31 2c 5b 52 32 2c 23 31  | STRB R11,[R2,#1|
00006f00  30 5d 20 20 20 3b 20 20  20 65 78 70 6c 6f 73 69  |0]   ;   explosi|
00006f10  6f 6e 20 74 69 6d 65 0d  24 7c 37 20 41 44 44 20  |on time.$|7 ADD |
00006f20  52 33 2c 52 33 2c 23 31  20 3a 53 54 52 42 20 52  |R3,R3,#1 :STRB R|
00006f30  33 2c 5b 52 32 2c 23 31  31 5d 20 20 20 3b 20 20  |3,[R2,#11]   ;  |
00006f40  20 66 72 61 6d 65 20 70  6f 69 6e 74 65 72 0d 24  | frame pointer.$|
00006f50  86 6d 20 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.m STMFD R13!,{R|
00006f60  31 2d 52 37 2c 52 31 34  7d 20 3a 20 4c 44 52 20  |1-R7,R14} : LDR |
00006f70  52 31 2c 5b 52 32 5d 20  3a 20 4d 4f 56 20 52 32  |R1,[R2] : MOV R2|
00006f80  2c 23 31 34 30 20 3a 20  4d 4c 41 20 52 32 2c 52  |,#140 : MLA R2,R|
00006f90  33 2c 52 32 2c 52 34 20  3a 20 42 4c 20 66 72 61  |3,R2,R4 : BL fra|
00006fa0  6d 65 20 3a 20 4c 44 4d  46 44 20 52 31 33 21 2c  |me : LDMFD R13!,|
00006fb0  7b 52 31 2d 52 37 2c 52  31 34 7d 0d 24 90 0d 20  |{R1-R7,R14}.$.. |
00006fc0  42 20 65 63 6f 76 65 72  0d 24 9a 42 20 2e 66 72  |B ecover.$.B .fr|
00006fd0  61 6d 65 5f 66 69 6e 69  73 68 20 20 20 20 20 20  |ame_finish      |
00006fe0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00006ff0  20 20 65 78 70 6c 6f 73  69 6f 6e 20 61 6e 69 6d  |  explosion anim|
00007000  61 74 69 6f 6e 20 65 6e  64 73 0d 24 a4 2e 20 4d  |ation ends.$.. M|
00007010  4f 56 20 52 33 2c 23 32  20 3a 20 53 54 52 42 20  |OV R3,#2 : STRB |
00007020  52 33 2c 5b 52 32 2c 23  39 5d 20 20 20 20 20 20  |R3,[R2,#9]      |
00007030  3b 20 20 20 64 65 61 64  0d 24 ae 0c 20 2e 65 63  |;   dead.$.. .ec|
00007040  6f 76 65 72 0d 24 b8 12  20 41 44 44 20 52 32 2c  |over.$.. ADD R2,|
00007050  52 32 2c 23 31 32 0d 24  c2 11 20 53 55 42 20 52  |R2,#12.$.. SUB R|
00007060  31 2c 52 31 2c 23 31 0d  24 cc 19 20 43 4d 50 20  |1,R1,#1.$.. CMP |
00007070  52 31 2c 23 31 3a 42 4e  45 20 65 63 6c 6f 6f 70  |R1,#1:BNE ecloop|
00007080  0d 24 d6 10 20 4d 4f 56  20 52 31 35 2c 52 31 34  |.$.. MOV R15,R14|
00007090  0d 24 e0 05 20 0d 24 ea  0a 20 2e 66 69 72 65 0d  |.$.. .$.. .fire.|
000070a0  24 f4 41 20 4c 44 52 42  20 52 31 2c 67 61 70 20  |$.A LDRB R1,gap |
000070b0  3a 20 43 4d 50 20 52 31  2c 23 30 3a 20 42 4e 45  |: CMP R1,#0: BNE|
000070c0  20 66 6c 6f 6f 70 20 20  20 20 20 20 20 20 20 20  | floop          |
000070d0  20 3b 20 63 68 65 63 6b  20 73 70 61 63 69 6e 67  | ; check spacing|
000070e0  0d 24 fe 1d 20 4d 4f 56  20 52 31 2c 23 34 31 20  |.$.. MOV R1,#41 |
000070f0  3a 20 53 54 52 42 20 52  31 2c 67 61 70 0d 25 08  |: STRB R1,gap.%.|
00007100  65 20 4d 4f 56 20 52 30  2c 23 31 20 3a 4d 4f 56  |e MOV R0,#1 :MOV|
00007110  20 52 31 2c 23 37 3a 52  53 42 20 52 31 2c 52 31  | R1,#7:RSB R1,R1|
00007120  2c 23 30 3a 4d 4f 56 20  52 32 2c 23 31 3a 4d 4f  |,#0:MOV R2,#1:MO|
00007130  56 20 52 33 2c 23 37 20  3a 53 57 49 20 22 53 6f  |V R3,#7 :SWI "So|
00007140  75 6e 64 5f 43 6f 6e 74  72 6f 6c 22 20 20 20 20  |und_Control"    |
00007150  20 20 3b 20 20 20 62 75  6c 6c 65 74 20 73 6f 75  |  ;   bullet sou|
00007160  6e 64 0d 25 12 40 20 4c  44 52 42 20 52 31 2c 6e  |nd.%.@ LDRB R1,n|
00007170  6f 5f 6f 66 5f 62 75 6c  6c 65 74 73 20 3a 20 41  |o_of_bullets : A|
00007180  44 44 20 52 31 2c 52 31  2c 23 31 20 3a 53 54 52  |DD R1,R1,#1 :STR|
00007190  42 20 52 31 2c 6e 6f 5f  6f 66 5f 62 75 6c 6c 65  |B R1,no_of_bulle|
000071a0  74 73 0d 25 1c 1d 20 53  54 52 42 20 52 31 2c 62  |ts.%.. STRB R1,b|
000071b0  75 6c 6c 65 74 5f 6f 6e  5f 73 63 72 65 65 6e 0d  |ullet_on_screen.|
000071c0  25 26 4c 20 53 55 42 20  52 31 2c 52 31 2c 23 31  |%&L SUB R1,R1,#1|
000071d0  20 3a 20 4d 4f 56 20 52  32 2c 52 31 2c 20 4c 53  | : MOV R2,R1, LS|
000071e0  4c 20 23 32 20 3a 20 41  44 52 20 52 33 2c 62 75  |L #2 : ADR R3,bu|
000071f0  6c 6c 65 74 5f 61 64 64  72 65 73 73 20 3a 20 41  |llet_address : A|
00007200  44 44 20 52 33 2c 52 33  2c 52 32 0d 25 30 14 20  |DD R3,R3,R2.%0. |
00007210  42 4e 56 20 65 6e 64 3a  42 4e 56 20 65 6e 64 0d  |BNV end:BNV end.|
00007220  25 3a 49 20 4c 44 52 20  52 31 2c 6e 65 77 61 64  |%:I LDR R1,newad|
00007230  64 72 3a 53 55 42 20 52  31 2c 52 31 2c 23 38 30  |dr:SUB R1,R1,#80|
00007240  30 20 3a 20 41 44 44 20  52 31 2c 52 31 2c 23 33  |0 : ADD R1,R1,#3|
00007250  20 20 20 20 20 3b 20 63  61 6c 63 75 6c 61 74 65  |     ; calculate|
00007260  20 61 64 64 72 65 73 73  0d 25 44 10 20 53 54 52  | address.%D. STR|
00007270  20 52 31 2c 5b 52 33 5d  0d 25 4e 0b 20 2e 69 6e  | R1,[R3].%N. .in|
00007280  6e 65 72 0d 25 58 28 20  4c 44 52 42 20 52 31 2c  |ner.%X( LDRB R1,|
00007290  67 61 70 20 3a 20 43 4d  50 20 52 31 2c 23 30 20  |gap : CMP R1,#0 |
000072a0  3a 20 42 45 51 20 66 6f  76 65 72 0d 25 62 0b 20  |: BEQ fover.%b. |
000072b0  2e 66 6c 6f 6f 70 0d 25  6c 2d 20 4c 44 52 42 20  |.floop.%l- LDRB |
000072c0  52 31 2c 67 61 70 20 3a  20 53 55 42 20 52 31 2c  |R1,gap : SUB R1,|
000072d0  52 31 2c 23 31 20 3a 20  53 54 52 42 20 52 31 2c  |R1,#1 : STRB R1,|
000072e0  67 61 70 0d 25 76 0b 20  2e 66 6f 76 65 72 0d 25  |gap.%v. .fover.%|
000072f0  80 1a 20 4c 44 52 42 20  52 38 2c 6e 6f 5f 6f 66  |.. LDRB R8,no_of|
00007300  5f 62 75 6c 6c 65 74 73  0d 25 8a 95 20 43 4d 50  |_bullets.%.. CMP|
00007310  20 52 38 2c 23 30 20 3a  20 42 45 51 20 6e 6f 74  | R8,#0 : BEQ not|
00007320  68 69 6e 67 5f 74 6f 5f  70 72 69 6e 74 20 20 20  |hing_to_print   |
00007330  20 20 20 20 20 3b 20 6e  6f 5f 62 75 6c 6c 65 74  |     ; no_bullet|
00007340  73 2c 20 73 61 66 65 74  79 20 66 6f 72 20 67 61  |s, safety for ga|
00007350  70 20 61 74 20 73 74 61  72 74 20 6f 66 20 66 69  |p at start of fi|
00007360  72 65 20 72 6f 75 74 69  6e 65 2c 20 69 6e 63 61  |re routine, inca|
00007370  73 65 20 6f 66 20 61 20  62 72 61 63 68 20 74 6f  |se of a brach to|
00007380  20 66 6c 6f 6f 70 20 77  68 65 6e 20 67 61 70 3e  | floop when gap>|
00007390  30 20 80 20 62 75 6c 6c  65 74 73 3d 30 0d 25 94  |0 . bullets=0.%.|
000073a0  0e 20 4d 4f 56 20 52 39  2c 23 30 0d 25 9e 0c 20  |. MOV R9,#0.%.. |
000073b0  2e 66 6c 6f 6f 70 32 0d  25 a8 15 20 4d 4f 56 20  |.floop2.%.. MOV |
000073c0  52 34 2c 52 39 2c 20 4c  53 4c 23 32 0d 25 b2 1a  |R4,R9, LSL#2.%..|
000073d0  20 41 44 52 20 52 35 2c  62 75 6c 6c 65 74 5f 61  | ADR R5,bullet_a|
000073e0  64 64 72 65 73 73 0d 25  bc 12 20 41 44 44 20 52  |ddress.%.. ADD R|
000073f0  31 30 2c 52 35 2c 52 34  0d 25 c6 11 20 4c 44 52  |10,R5,R4.%.. LDR|
00007400  20 52 37 2c 5b 52 31 30  5d 0d 25 d0 15 20 53 54  | R7,[R10].%.. ST|
00007410  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 0d 25  |MFD R13!,{R14}.%|
00007420  da 1d 20 4c 44 52 42 20  52 31 2c 62 75 6c 6c 65  |.. LDRB R1,bulle|
00007430  74 5f 6f 6e 5f 73 63 72  65 65 6e 0d 25 e4 2f 20  |t_on_screen.%./ |
00007440  53 55 42 20 52 35 2c 52  38 2c 23 31 20 3a 20 43  |SUB R5,R8,#1 : C|
00007450  4d 50 20 52 35 2c 52 39  20 3a 20 42 4e 45 20 6e  |MP R5,R9 : BNE n|
00007460  65 77 5f 62 75 6c 6c 65  74 32 0d 25 ee 23 20 53  |ew_bullet2.%.# S|
00007470  55 42 53 20 52 31 2c 52  31 2c 52 38 20 3a 20 42  |UBS R1,R1,R8 : B|
00007480  45 51 20 6e 65 77 5f 62  75 6c 6c 65 74 0d 25 f8  |EQ new_bullet.%.|
00007490  14 20 42 4c 20 70 72 69  6e 74 5f 62 75 6c 6c 65  |. BL print_bulle|
000074a0  74 0d 26 02 10 20 2e 6e  65 77 5f 62 75 6c 6c 65  |t.&.. .new_bulle|
000074b0  74 0d 26 0c 29 20 4d 4f  56 20 52 31 2c 23 30 20  |t.&.) MOV R1,#0 |
000074c0  3a 20 53 54 52 42 20 52  31 2c 62 75 6c 6c 65 74  |: STRB R1,bullet|
000074d0  5f 6f 6e 5f 73 63 72 65  65 6e 0d 26 16 12 20 42  |_on_screen.&.. B|
000074e0  20 6e 65 77 5f 62 75 6c  6c 65 74 33 0d 26 20 11  | new_bullet3.& .|
000074f0  20 2e 6e 65 77 5f 62 75  6c 6c 65 74 32 0d 26 2a  | .new_bullet2.&*|
00007500  14 20 42 4c 20 70 72 69  6e 74 5f 62 75 6c 6c 65  |. BL print_bulle|
00007510  74 0d 26 34 11 20 2e 6e  65 77 5f 62 75 6c 6c 65  |t.&4. .new_bulle|
00007520  74 33 0d 26 3e 22 20 53  55 42 20 52 37 2c 52 37  |t3.&>" SUB R7,R7|
00007530  2c 23 31 36 30 20 3a 20  53 54 52 20 52 37 2c 5b  |,#160 : STR R7,[|
00007540  52 31 30 5d 0d 26 48 38  20 4c 44 52 20 52 31 2c  |R10].&H8 LDR R1,|
00007550  74 6f 70 5f 6f 66 5f 73  63 72 65 65 6e 20 3a 20  |top_of_screen : |
00007560  43 4d 50 20 52 37 2c 52  31 3a 20 42 4c 50 4c 20  |CMP R7,R1: BLPL |
00007570  70 72 69 6e 74 5f 62 75  6c 6c 65 74 0d 26 52 0c  |print_bullet.&R.|
00007580  20 42 50 4c 20 74 6f 70  0d 26 5c 24 20 4d 4f 56  | BPL top.&\$ MOV|
00007590  20 52 31 2c 23 31 20 3a  20 53 54 52 42 20 52 31  | R1,#1 : STRB R1|
000075a0  2c 6d 65 6d 6f 72 79 5f  6d 6f 76 65 0d 26 66 09  |,memory_move.&f.|
000075b0  20 2e 74 6f 70 0d 26 70  94 20 4c 44 52 42 20 52  | .top.&p. LDRB R|
000075c0  31 2c 6d 65 6d 6f 72 79  5f 6d 6f 76 65 20 3a 20  |1,memory_move : |
000075d0  43 4d 50 20 52 31 2c 23  31 20 3a 20 ec 51 20 52  |CMP R1,#1 : .Q R|
000075e0  31 2c 23 30 20 3a 20 53  54 52 45 51 42 20 52 31  |1,#0 : STREQB R1|
000075f0  2c 68 69 74 20 20 20 3b  20 20 20 20 20 20 20 20  |,hit   ;        |
00007600  20 20 20 20 20 20 20 70  72 65 76 65 6e 74 73 20  |       prevents |
00007610  6d 65 6d 6f 72 79 5f 6d  6f 76 65 20 72 65 70 65  |memory_move repe|
00007620  61 74 20 20 61 73 20 74  6f 70 5f 6f 66 5f 73 63  |at  as top_of_sc|
00007630  72 65 65 6e 20 69 73 20  73 65 74 20 61 6e 64 20  |reen is set and |
00007640  61 6c 73 6f 20 68 69 74  2e 0d 26 7a 2b 20 4c 44  |also hit..&z+ LD|
00007650  52 42 20 52 31 2c 68 69  74 20 3a 20 43 4d 50 20  |RB R1,hit : CMP |
00007660  52 31 2c 23 31 20 3a 20  42 4c 45 51 20 65 78 70  |R1,#1 : BLEQ exp|
00007670  6c 6f 64 65 0d 26 84 15  20 4c 44 4d 46 44 20 52  |lode.&.. LDMFD R|
00007680  31 33 21 2c 7b 52 31 34  7d 0d 26 8e 2a 20 41 44  |13!,{R14}.&.* AD|
00007690  44 20 52 39 2c 52 39 2c  23 31 20 3a 20 43 4d 50  |D R9,R9,#1 : CMP|
000076a0  20 52 39 2c 52 38 20 3a  20 42 4e 45 20 66 6c 6f  | R9,R8 : BNE flo|
000076b0  6f 70 32 0d 26 98 5d 20  4c 44 52 42 20 52 31 2c  |op2.&.] LDRB R1,|
000076c0  6d 65 6d 6f 72 79 5f 6d  6f 76 65 20 3a 20 43 4d  |memory_move : CM|
000076d0  50 20 52 31 2c 23 31 20  3a 20 53 54 4d 46 44 20  |P R1,#1 : STMFD |
000076e0  52 31 33 21 2c 7b 52 31  34 7d 20 3a 20 42 4c 45  |R13!,{R14} : BLE|
000076f0  51 20 6d 6f 76 65 5f 6d  65 6d 6f 72 79 20 3a 20  |Q move_memory : |
00007700  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 7d  |LDMFD R13!,{R14}|
00007710  0d 26 a2 16 20 2e 6e 6f  74 68 69 6e 67 5f 74 6f  |.&.. .nothing_to|
00007720  5f 70 72 69 6e 74 0d 26  ac 10 20 4d 4f 56 20 52  |_print.&.. MOV R|
00007730  31 35 2c 52 31 34 0d 26  b6 05 20 0d 26 c0 12 20  |15,R14.&.. .&.. |
00007740  2e 70 72 69 6e 74 5f 62  75 6c 6c 65 74 0d 26 ca  |.print_bullet.&.|
00007750  9a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00007760  20 3b 20 20 70 6c 6f 74  73 20 74 6f 20 6f 70 70  | ;  plots to opp|
00007770  6f 73 69 74 65 20 73 69  64 65 20 6f 66 20 65 61  |osite side of ea|
00007780  63 68 20 62 79 74 65 20  74 6f 20 63 65 6e 74 72  |ch byte to centr|
00007790  65 20 62 75 6c 6c 65 74  20 20 20 20 20 20 20 20  |e bullet        |
000077a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000077b0  20 20 20 20 61 62 6f 76  65 20 73 68 69 70 20 2e  |    above ship .|
000077c0  2e 2e 2e 20 20 61 73 20  63 65 6e 74 72 65 20 6f  |...  as centre o|
000077d0  66 20 73 68 69 70 20 73  70 6c 69 74 73 20 74 77  |f ship splits tw|
000077e0  6f 20 62 79 74 65 73 0d  26 d4 1c 20 4d 4f 56 20  |o bytes.&.. MOV |
000077f0  52 30 2c 23 31 20 20 20  20 20 20 3b 20 20 61 20  |R0,#1      ;  a |
00007800  68 69 74 0d 26 de 0e 20  4d 4f 56 20 52 31 2c 52  |hit.&.. MOV R1,R|
00007810  37 0d 26 e8 0e 20 4d 4f  56 20 52 33 2c 23 36 0d  |7.&.. MOV R3,#6.|
00007820  26 f2 16 20 41 44 52 20  52 36 2c 62 75 6c 6c 65  |&.. ADR R6,bulle|
00007830  74 64 61 74 61 0d 26 fc  0b 20 2e 62 6c 6f 6f 70  |tdata.&.. .bloop|
00007840  0d 27 06 0e 20 4d 4f 56  20 52 34 2c 23 32 0d 27  |.'.. MOV R4,#2.'|
00007850  10 0c 20 2e 62 6c 6f 6f  70 32 0d 27 1a 14 20 4c  |.. .bloop2.'.. L|
00007860  44 52 42 20 52 32 2c 5b  52 36 5d 2c 23 31 0d 27  |DRB R2,[R6],#1.'|
00007870  24 14 20 4c 44 52 42 20  52 35 2c 5b 52 31 2c 23  |$. LDRB R5,[R1,#|
00007880  31 5d 0d 27 2e 19 20 43  4d 50 20 52 35 2c 23 30  |1].'.. CMP R5,#0|
00007890  20 3a 20 42 45 51 20 73  6b 69 70 0d 27 38 0f 20  | : BEQ skip.'8. |
000078a0  82 20 52 32 2c 52 32 2c  52 35 0d 27 42 1b 20 43  |. R2,R2,R5.'B. C|
000078b0  4d 50 20 52 35 2c 23 26  30 37 20 3a 20 42 45 51  |MP R5,#&07 : BEQ|
000078c0  20 73 6b 69 70 0d 27 4c  1b 20 43 4d 50 20 52 35  | skip.'L. CMP R5|
000078d0  2c 23 26 37 30 20 3a 20  42 45 51 20 73 6b 69 70  |,#&70 : BEQ skip|
000078e0  0d 27 56 1b 20 43 4d 50  20 52 35 2c 23 26 37 37  |.'V. CMP R5,#&77|
000078f0  20 3a 20 42 45 51 20 73  6b 69 70 0d 27 60 0e 20  | : BEQ skip.'`. |
00007900  43 4d 50 20 52 32 2c 23  30 0d 27 6a 12 20 53 54  |CMP R2,#0.'j. ST|
00007910  52 4e 45 42 20 52 30 2c  68 69 74 0d 27 74 0a 20  |RNEB R0,hit.'t. |
00007920  2e 73 6b 69 70 0d 27 7e  15 20 53 54 52 42 20 52  |.skip.'~. STRB R|
00007930  32 2c 5b 52 31 2c 23 31  5d 21 0d 27 88 12 20 53  |2,[R1,#1]!.'.. S|
00007940  55 42 53 20 52 34 2c 52  34 2c 23 31 0d 27 92 0f  |UBS R4,R4,#1.'..|
00007950  20 42 4e 45 20 62 6c 6f  6f 70 32 0d 27 9c 13 20  | BNE bloop2.'.. |
00007960  41 44 44 20 52 31 2c 52  31 2c 23 31 35 38 0d 27  |ADD R1,R1,#158.'|
00007970  a6 12 20 53 55 42 53 20  52 33 2c 52 33 2c 23 31  |.. SUBS R3,R3,#1|
00007980  0d 27 b0 0e 20 42 4e 45  20 62 6c 6f 6f 70 0d 27  |.'.. BNE bloop.'|
00007990  ba 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 27  |.. MOV R15,R14.'|
000079a0  c4 05 20 0d 27 ce 11 20  2e 6d 6f 76 65 5f 6d 65  |.. .'.. .move_me|
000079b0  6d 6f 72 79 0d 27 d8 1a  20 4c 44 52 42 20 52 31  |mory.'.. LDRB R1|
000079c0  2c 6e 6f 5f 6f 66 5f 62  75 6c 6c 65 74 73 0d 27  |,no_of_bullets.'|
000079d0  e2 1c 20 43 4d 50 20 52  31 2c 23 31 20 3a 20 42  |.. CMP R1,#1 : B|
000079e0  45 51 20 6e 6f 5f 6d 6f  72 65 0d 27 ec 0e 20 4d  |EQ no_more.'.. M|
000079f0  4f 56 20 52 32 2c 52 31  0d 27 f6 1a 20 41 44 52  |OV R2,R1.'.. ADR|
00007a00  20 52 33 2c 62 75 6c 6c  65 74 5f 61 64 64 72 65  | R3,bullet_addre|
00007a10  73 73 0d 28 00 0c 20 2e  6d 6d 6c 6f 6f 70 0d 28  |ss.(.. .mmloop.(|
00007a20  0a 14 20 4c 44 52 20 52  34 2c 5b 52 33 2c 23 34  |.. LDR R4,[R3,#4|
00007a30  5d 21 0d 28 14 14 20 53  54 52 20 52 34 2c 5b 52  |]!.(.. STR R4,[R|
00007a40  33 2c 23 2d 34 5d 0d 28  1e 11 20 53 55 42 20 52  |3,#-4].(.. SUB R|
00007a50  32 2c 52 32 2c 23 31 0d  28 28 0e 20 43 4d 50 20  |2,R2,#1.((. CMP |
00007a60  52 32 2c 23 31 0d 28 32  0f 20 42 4e 45 20 6d 6d  |R2,#1.(2. BNE mm|
00007a70  6c 6f 6f 70 0d 28 3c 0d  20 2e 6e 6f 5f 6d 6f 72  |loop.(<. .no_mor|
00007a80  65 0d 28 46 11 20 53 55  42 20 52 31 2c 52 31 2c  |e.(F. SUB R1,R1,|
00007a90  23 31 0d 28 50 1a 20 53  54 52 42 20 52 31 2c 6e  |#1.(P. STRB R1,n|
00007aa0  6f 5f 6f 66 5f 62 75 6c  6c 65 74 73 0d 28 5a 0e  |o_of_bullets.(Z.|
00007ab0  20 4d 4f 56 20 52 31 2c  23 30 0d 28 64 18 20 53  | MOV R1,#0.(d. S|
00007ac0  54 52 42 20 52 31 2c 6d  65 6d 6f 72 79 5f 6d 6f  |TRB R1,memory_mo|
00007ad0  76 65 0d 28 6e 10 20 4d  4f 56 20 52 31 35 2c 52  |ve.(n. MOV R15,R|
00007ae0  31 34 0d 28 78 05 20 0d  28 82 0d 20 2e 65 78 70  |14.(x. .(.. .exp|
00007af0  6c 6f 64 65 0d 28 8c 32  20 4c 44 52 42 20 52 31  |lode.(.2 LDRB R1|
00007b00  2c 6e 6f 5f 6f 66 5f 62  75 6c 6c 65 74 73 20 3a  |,no_of_bullets :|
00007b10  20 43 4d 50 20 52 31 2c  23 30 20 3a 20 42 45 51  | CMP R1,#0 : BEQ|
00007b20  20 65 6c 6f 6f 70 0d 28  96 62 20 20 3b 20 20 20  | eloop.(.b  ;   |
00007b30  20 20 64 6f 6e 27 74 20  72 65 70 72 69 6e 74 20  |  don't reprint |
00007b40  62 75 6c 6c 65 74 20 61  73 20 72 65 61 63 68 65  |bullet as reache|
00007b50  64 20 74 6f 70 20 6f 66  20 73 63 72 65 65 6e 20  |d top of screen |
00007b60  73 6f 20 61 64 64 72 65  73 73 20 69 73 20 6f 75  |so address is ou|
00007b70  74 20 6f 66 20 20 20 20  20 20 20 20 20 20 20 20  |t of            |
00007b80  20 20 62 6f 75 6e 64 73  0d 28 a0 27 20 53 54 4d  |  bounds.(.' STM|
00007b90  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 20 3a 20  |FD R13!,{R14} : |
00007ba0  42 4c 20 70 72 69 6e 74  5f 62 75 6c 6c 65 74 0d  |BL print_bullet.|
00007bb0  28 aa 53 20 4d 4f 56 20  52 31 2c 23 30 20 3a 20  |(.S MOV R1,#0 : |
00007bc0  53 54 52 42 20 52 31 2c  68 69 74 20 20 20 20 20  |STRB R1,hit     |
00007bd0  20 20 20 20 20 20 20 3b  20 20 66 69 72 73 74 20  |       ;  first |
00007be0  62 65 66 6f 72 65 20 70  72 69 6e 74 5f 62 75 6c  |before print_bul|
00007bf0  6c 65 74 20 64 75 65 20  74 6f 20 68 69 74 66 6c  |let due to hitfl|
00007c00  61 67 0d 28 b4 29 20 53  55 42 20 52 31 2c 52 38  |ag.(.) SUB R1,R8|
00007c10  2c 23 31 20 3a 20 53 54  52 42 20 52 31 2c 6e 6f  |,#1 : STRB R1,no|
00007c20  5f 6f 66 5f 62 75 6c 6c  65 74 73 0d 28 be 1e 20  |_of_bullets.(.. |
00007c30  43 4d 50 20 52 31 2c 23  30 20 3a 20 53 54 52 45  |CMP R1,#0 : STRE|
00007c40  51 42 20 52 31 2c 67 61  70 0d 28 c8 83 20 43 4d  |QB R1,gap.(.. CM|
00007c50  50 20 52 31 2c 52 39 20  3a 20 42 45 51 20 65 6c  |P R1,R9 : BEQ el|
00007c60  6f 6f 70 20 20 20 20 3b  20 20 20 63 68 65 63 6b  |oop    ;   check|
00007c70  73 20 66 6f 72 20 6c 61  73 74 20 62 75 6c 6c 65  |s for last bulle|
00007c80  74 20 69 6e 20 72 6f 75  6e 64 20 66 69 72 65 64  |t in round fired|
00007c90  2c 20 73 6f 20 20 20 20  77 68 65 6e 20 72 65 74  |, so    when ret|
00007ca0  75 72 6e 69 6e 67 20 66  72 6f 6d 20 72 6f 75 74  |urning from rout|
00007cb0  69 6e 65 20 52 39 20 69  73 20 61 64 64 65 64 20  |ine R9 is added |
00007cc0  74 6f 20 65 71 75 61 6c  20 52 38 2e 0d 28 d2 0e  |to equal R8..(..|
00007cd0  20 4d 4f 56 20 52 38 2c  52 31 0d 28 dc 05 20 0d  | MOV R8,R1.(.. .|
00007ce0  28 e6 11 20 41 44 44 20  52 32 2c 52 31 2c 23 31  |(.. ADD R2,R1,#1|
00007cf0  0d 28 f0 11 20 41 44 44  20 52 31 2c 52 39 2c 23  |.(.. ADD R1,R9,#|
00007d00  31 0d 28 fa 1a 20 41 44  52 20 52 33 2c 62 75 6c  |1.(.. ADR R3,bul|
00007d10  6c 65 74 5f 61 64 64 72  65 73 73 0d 29 04 16 20  |let_address.).. |
00007d20  4d 4f 56 20 52 34 2c 52  39 2c 20 4c 53 4c 20 23  |MOV R4,R9, LSL #|
00007d30  32 0d 29 0e 44 20 41 44  44 20 52 33 2c 52 33 2c  |2.).D ADD R3,R3,|
00007d40  52 34 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |R4              |
00007d50  20 20 20 3b 20 20 62 75  6c 6c 65 74 20 6e 75 6d  |   ;  bullet num|
00007d60  62 65 72 73 20 61 64 64  72 65 73 73 20 74 6f 20  |bers address to |
00007d70  73 74 61 72 74 0d 29 18  0c 20 2e 65 65 6c 6f 6f  |start.).. .eeloo|
00007d80  70 0d 29 22 14 20 4c 44  52 20 52 34 2c 5b 52 33  |p.)". LDR R4,[R3|
00007d90  2c 23 34 5d 21 0d 29 2c  14 20 53 54 52 20 52 34  |,#4]!.),. STR R4|
00007da0  2c 5b 52 33 2c 23 2d 34  5d 0d 29 36 11 20 53 55  |,[R3,#-4].)6. SU|
00007db0  42 20 52 32 2c 52 32 2c  23 31 0d 29 40 0e 20 43  |B R2,R2,#1.)@. C|
00007dc0  4d 50 20 52 32 2c 52 31  0d 29 4a 0f 20 42 4e 45  |MP R2,R1.)J. BNE|
00007dd0  20 65 65 6c 6f 6f 70 0d  29 54 05 20 0d 29 5e 0b  | eeloop.)T. .)^.|
00007de0  20 2e 65 6c 6f 6f 70 0d  29 68 3a 20 4c 44 52 42  | .eloop.)h: LDRB|
00007df0  20 52 31 2c 62 75 6c 6c  65 74 5f 6f 6e 5f 73 63  | R1,bullet_on_sc|
00007e00  72 65 65 6e 20 3a 20 43  4d 50 20 52 31 2c 23 30  |reen : CMP R1,#0|
00007e10  20 3a 20 53 55 42 4e 45  20 52 31 2c 52 31 2c 23  | : SUBNE R1,R1,#|
00007e20  31 0d 29 72 5c 20 53 54  52 42 20 52 31 2c 62 75  |1.)r\ STRB R1,bu|
00007e30  6c 6c 65 74 5f 6f 6e 5f  73 63 72 65 65 6e 20 3b  |llet_on_screen ;|
00007e40  20 20 20 61 20 6e 65 77  20 6f 6e 20 73 63 72 65  |   a new on scre|
00007e50  65 6e 20 61 74 20 73 61  6d 65 20 74 69 6d 65 20  |en at same time |
00007e60  61 73 20 63 6f 6c 6c 69  73 69 6f 6e 20 6f 66 20  |as collision of |
00007e70  6f 74 68 65 72 20 62 75  6c 6c 65 74 73 0d 29 7c  |other bullets.)||
00007e80  05 20 0d 29 86 13 20 2e  72 65 6d 6f 76 65 5f 73  |. .).. .remove_s|
00007e90  70 72 69 74 65 0d 29 90  2b 20 20 3b 20 20 67 65  |prite.).+  ;  ge|
00007ea0  74 20 58 20 61 6e 64 20  59 20 63 6f 2d 6f 72 64  |t X and Y co-ord|
00007eb0  69 6e 61 74 65 73 20 6f  66 20 62 75 6c 6c 65 74  |inates of bullet|
00007ec0  0d 29 9a 29 20 4d 4f 56  20 52 31 2c 52 37 20 20  |.).) MOV R1,R7  |
00007ed0  20 20 20 20 20 20 20 20  3b 20 20 62 75 6c 6c 65  |        ;  bulle|
00007ee0  74 20 61 64 64 72 65 73  73 0d 29 a4 14 20 41 44  |t address.).. AD|
00007ef0  52 20 52 32 2c 58 5f 62  75 6c 6c 65 74 0d 29 ae  |R R2,X_bullet.).|
00007f00  14 20 41 44 52 20 52 33  2c 59 5f 62 75 6c 6c 65  |. ADR R3,Y_bulle|
00007f10  74 0d 29 b8 17 20 42 4c  20 67 65 74 5f 63 6f 6f  |t.).. BL get_coo|
00007f20  72 64 69 6e 61 74 65 73  0d 29 c2 05 20 0d 29 cc  |rdinates.).. .).|
00007f30  7f 20 53 55 42 20 52 37  2c 52 37 2c 23 31 36 30  |. SUB R7,R7,#160|
00007f40  20 20 20 20 20 20 3b 20  73 75 62 74 72 61 63 74  |      ; subtract|
00007f50  20 31 36 30 20 66 72 6f  6d 20 62 75 6c 6c 65 74  | 160 from bullet|
00007f60  5f 61 64 64 72 65 73 20  2e 2e 2e 2e 2e 20 20 6d  |_addres .....  m|
00007f70  61 79 20 68 61 76 65 20  72 65 61 63 68 65 64 20  |ay have reached |
00007f80  74 6f 70 20 6f 66 20 73  63 72 65 65 6e 20 2d 20  |top of screen - |
00007f90  74 68 65 72 65 66 6f 72  65 20 6f 75 74 20 6f 66  |therefore out of|
00007fa0  20 62 6f 75 6e 64 73 20  61 72 65 61 0d 29 d6 1a  | bounds area.)..|
00007fb0  20 4c 44 52 42 20 52 31  2c 6e 6f 5f 6f 66 5f 73  | LDRB R1,no_of_s|
00007fc0  70 72 69 74 65 73 0d 29  e0 3c 20 53 54 4d 46 44  |prites.).< STMFD|
00007fd0  20 52 31 33 21 2c 7b 52  31 34 7d 20 3a 20 42 4c  | R13!,{R14} : BL|
00007fe0  20 64 69 72 65 63 74 69  76 65 5f 62 79 74 65 20  | directive_byte |
00007ff0  3a 20 4c 44 4d 46 44 20  52 31 33 21 2c 7b 52 31  |: LDMFD R13!,{R1|
00008000  34 7d 0d 29 ea 0e 20 4d  4f 56 20 52 33 2c 23 31  |4}.).. MOV R3,#1|
00008010  0d 29 f4 0b 20 2e 72 6c  6f 6f 70 0d 29 fe 14 20  |.).. .rloop.).. |
00008020  4c 44 52 42 20 52 34 2c  5b 52 32 2c 23 39 5d 0d  |LDRB R4,[R2,#9].|
00008030  2a 08 47 20 43 4d 50 20  52 34 2c 23 31 20 3a 20  |*.G CMP R4,#1 : |
00008040  42 4e 45 20 72 6f 76 65  72 20 20 20 20 20 20 3b  |BNE rover      ;|
00008050  20 30 20 76 61 6c 75 65  20 2d 20 6f 66 66 73 63  | 0 value - offsc|
00008060  72 65 65 6e 20 2f 20 20  32 20 76 61 6c 75 65 20  |reen /  2 value |
00008070  2d 20 64 65 61 64 0d 2a  12 05 20 0d 2a 1c 17 20  |- dead.*.. .*.. |
00008080  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 2d 52  |STMFD R13!,{R1-R|
00008090  34 7d 0d 2a 26 35 20 4d  4f 56 20 52 30 2c 23 31  |4}.*&5 MOV R0,#1|
000080a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
000080b0  20 20 20 41 20 53 75 72  76 69 76 6f 72 2c 20 66  |   A Survivor, f|
000080c0  6f 72 20 6e 6f 77 21 0d  2a 30 38 20 4c 44 52 20  |or now!.*08 LDR |
000080d0  52 31 2c 5b 52 32 2c 23  30 5d 20 20 20 20 20 20  |R1,[R2,#0]      |
000080e0  20 20 20 3b 20 20 20 20  63 75 72 72 65 6e 74 20  |   ;    current |
000080f0  73 70 72 69 74 65 73 20  61 64 64 72 65 73 73 0d  |sprites address.|
00008100  2a 3a 14 20 41 44 52 20  52 32 2c 58 5f 73 70 72  |*:. ADR R2,X_spr|
00008110  69 74 65 0d 2a 44 14 20  41 44 52 20 52 33 2c 59  |ite.*D. ADR R3,Y|
00008120  5f 73 70 72 69 74 65 0d  2a 4e 17 20 42 4c 20 67  |_sprite.*N. BL g|
00008130  65 74 5f 63 6f 6f 72 64  69 6e 61 74 65 73 0d 2a  |et_coordinates.*|
00008140  58 0d 20 2e 58 5f 63 68  65 63 6b 0d 2a 62 14 20  |X. .X_check.*b. |
00008150  4c 44 52 20 52 31 2c 58  5f 62 75 6c 6c 65 74 0d  |LDR R1,X_bullet.|
00008160  2a 6c 14 20 4c 44 52 20  52 32 2c 58 5f 73 70 72  |*l. LDR R2,X_spr|
00008170  69 74 65 0d 2a 76 19 20  4c 44 52 42 20 52 33 2c  |ite.*v. LDRB R3,|
00008180  62 75 6c 6c 65 74 5f 77  69 64 74 68 0d 2a 80 19  |bullet_width.*..|
00008190  20 4c 44 52 42 20 52 34  2c 73 70 72 69 74 65 5f  | LDRB R4,sprite_|
000081a0  77 69 64 74 68 0d 2a 8a  0e 20 43 4d 50 20 52 31  |width.*.. CMP R1|
000081b0  2c 52 32 0d 2a 94 14 20  42 47 54 20 73 70 72 69  |,R2.*.. BGT spri|
000081c0  74 65 5f 6c 65 66 74 0d  2a 9e 11 20 41 44 44 20  |te_left.*.. ADD |
000081d0  52 31 2c 52 31 2c 52 33  0d 2a a8 0e 20 43 4d 50  |R1,R1,R3.*.. CMP|
000081e0  20 52 31 2c 52 32 0d 2a  b2 18 20 42 4c 54 20 6e  | R1,R2.*.. BLT n|
000081f0  6f 74 5f 74 68 69 73 5f  73 70 72 69 74 65 0d 2a  |ot_this_sprite.*|
00008200  bc 0e 20 42 20 59 5f 63  68 65 63 6b 0d 2a c6 05  |.. B Y_check.*..|
00008210  20 0d 2a d0 11 20 2e 73  70 72 69 74 65 5f 6c 65  | .*.. .sprite_le|
00008220  66 74 0d 2a da 11 20 41  44 44 20 52 32 2c 52 32  |ft.*.. ADD R2,R2|
00008230  2c 52 34 0d 2a e4 0e 20  43 4d 50 20 52 31 2c 52  |,R4.*.. CMP R1,R|
00008240  32 0d 2a ee 18 20 42 47  54 20 6e 6f 74 5f 74 68  |2.*.. BGT not_th|
00008250  69 73 5f 73 70 72 69 74  65 0d 2a f8 05 20 0d 2b  |is_sprite.*.. .+|
00008260  02 0d 20 2e 59 5f 63 68  65 63 6b 0d 2b 0c 14 20  |.. .Y_check.+.. |
00008270  4c 44 52 20 52 31 2c 59  5f 62 75 6c 6c 65 74 0d  |LDR R1,Y_bullet.|
00008280  2b 16 14 20 4c 44 52 20  52 32 2c 59 5f 73 70 72  |+.. LDR R2,Y_spr|
00008290  69 74 65 0d 2b 20 1a 20  4c 44 52 42 20 52 33 2c  |ite.+ . LDRB R3,|
000082a0  62 75 6c 6c 65 74 5f 68  65 69 67 68 74 0d 2b 2a  |bullet_height.+*|
000082b0  1a 20 4c 44 52 42 20 52  34 2c 73 70 72 69 74 65  |. LDRB R4,sprite|
000082c0  5f 68 65 69 67 68 74 0d  2b 34 0e 20 43 4d 50 20  |_height.+4. CMP |
000082d0  52 31 2c 52 32 0d 2b 3e  16 20 42 4c 54 20 73 70  |R1,R2.+>. BLT sp|
000082e0  72 69 74 65 5f 68 69 67  68 65 72 0d 2b 48 11 20  |rite_higher.+H. |
000082f0  53 55 42 20 52 31 2c 52  31 2c 52 33 0d 2b 52 0e  |SUB R1,R1,R3.+R.|
00008300  20 43 4d 50 20 52 31 2c  52 32 0d 2b 5c 18 20 42  | CMP R1,R2.+\. B|
00008310  47 54 20 6e 6f 74 5f 74  68 69 73 5f 73 70 72 69  |GT not_this_spri|
00008320  74 65 0d 2b 66 0c 20 42  20 63 6c 65 61 72 0d 2b  |te.+f. B clear.+|
00008330  70 05 20 0d 2b 7a 13 20  2e 73 70 72 69 74 65 5f  |p. .+z. .sprite_|
00008340  68 69 67 68 65 72 0d 2b  84 11 20 53 55 42 20 52  |higher.+.. SUB R|
00008350  32 2c 52 32 2c 52 34 0d  2b 8e 0e 20 43 4d 50 20  |2,R2,R4.+.. CMP |
00008360  52 31 2c 52 32 0d 2b 98  18 20 42 4c 54 20 6e 6f  |R1,R2.+.. BLT no|
00008370  74 5f 74 68 69 73 5f 73  70 72 69 74 65 0d 2b a2  |t_this_sprite.+.|
00008380  0b 20 2e 63 6c 65 61 72  0d 2b ac 05 20 0d 2b b6  |. .clear.+.. .+.|
00008390  0e 20 4d 4f 56 20 52 30  2c 23 30 0d 2b c0 05 20  |. MOV R0,#0.+.. |
000083a0  0d 2b ca 15 20 2e 6e 6f  74 5f 74 68 69 73 5f 73  |.+.. .not_this_s|
000083b0  70 72 69 74 65 0d 2b d4  17 20 4c 44 4d 46 44 20  |prite.+.. LDMFD |
000083c0  52 31 33 21 2c 7b 52 31  2d 52 34 7d 0d 2b de 1a  |R13!,{R1-R4}.+..|
000083d0  20 43 4d 50 20 52 30 2c  23 30 20 3a 20 42 4e 45  | CMP R0,#0 : BNE|
000083e0  20 72 6f 76 65 72 0d 2b  e8 51 20 53 54 4d 46 44  | rover.+.Q STMFD|
000083f0  20 52 31 33 21 2c 7b 52  31 2d 52 34 7d 20 3a 20  | R13!,{R1-R4} : |
00008400  4d 4f 56 20 52 31 30 2c  23 34 20 3a 20 4c 44 52  |MOV R10,#4 : LDR|
00008410  20 52 31 2c 5b 52 32 5d  20 3a 20 42 4c 20 64 72  | R1,[R2] : BL dr|
00008420  61 77 20 3a 20 4c 44 4d  46 44 20 52 31 33 21 2c  |aw : LDMFD R13!,|
00008430  7b 52 31 2d 52 34 7d 0d  2b f2 33 20 4d 4f 56 20  |{R1-R4}.+.3 MOV |
00008440  52 31 31 2c 23 34 20 3a  20 53 54 52 42 20 52 31  |R11,#4 : STRB R1|
00008450  31 2c 5b 52 32 2c 23 39  5d 20 20 20 20 3b 20 20  |1,[R2,#9]    ;  |
00008460  20 65 78 70 6c 6f 73 69  6f 6e 0d 2b fc 38 20 4d  | explosion.+.8 M|
00008470  4f 56 20 52 31 31 2c 23  31 35 3a 20 53 54 52 42  |OV R11,#15: STRB|
00008480  20 52 31 31 2c 5b 52 32  2c 23 31 30 5d 20 20 20  | R11,[R2,#10]   |
00008490  3b 20 20 20 65 78 70 6c  6f 73 69 6f 6e 20 74 69  |;   explosion ti|
000084a0  6d 65 0d 2c 06 4e 20 4d  4f 56 20 52 31 31 2c 23  |me.,.N MOV R11,#|
000084b0  30 20 3a 20 53 54 52 42  20 52 31 31 2c 5b 52 32  |0 : STRB R11,[R2|
000084c0  2c 23 31 31 5d 20 20 20  3b 20 20 20 66 72 61 6d  |,#11]   ;   fram|
000084d0  65 20 70 6f 69 6e 74 65  72 20 28 20 34 38 20 62  |e pointer ( 48 b|
000084e0  79 74 65 73 20 65 61 63  68 20 66 72 61 6d 65 29  |ytes each frame)|
000084f0  0d 2c 10 7f 20 4c 44 52  42 20 52 31 31 2c 6c 61  |.,.. LDRB R11,la|
00008500  73 74 5f 73 70 72 69 74  65 20 3a 20 41 44 44 20  |st_sprite : ADD |
00008510  52 31 31 2c 52 31 31 2c  23 31 20 3a 20 53 54 52  |R11,R11,#1 : STR|
00008520  42 20 52 31 31 2c 6c 61  73 74 5f 73 70 72 69 74  |B R11,last_sprit|
00008530  65 20 20 20 3b 20 20 20  20 20 20 20 20 20 20 20  |e   ;           |
00008540  20 20 20 20 20 43 68 65  63 6b 20 66 6f 72 20 65  |     Check for e|
00008550  6e 64 20 6f 66 20 70 61  74 74 65 72 6e 20 2d 20  |nd of pattern - |
00008560  66 6f 72 20 6c 61 73 74  20 73 70 72 69 74 65 0d  |for last sprite.|
00008570  2c 1a 5e 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |,.^ STMFD R13!,{|
00008580  52 30 2d 52 37 7d 20 3a  20 4c 44 52 20 52 31 2c  |R0-R7} : LDR R1,|
00008590  5b 52 32 5d 20 3a 20 42  4c 20 65 78 70 6c 6f 73  |[R2] : BL explos|
000085a0  69 6f 6e 20 20 3a 20 42  4c 20 69 6e 63 72 65 61  |ion  : BL increa|
000085b0  73 65 5f 73 63 6f 72 65  20 3a 20 4c 44 4d 46 44  |se_score : LDMFD|
000085c0  20 52 31 33 21 2c 7b 52  30 2d 52 37 7d 0d 2c 24  | R13!,{R0-R7}.,$|
000085d0  6e 20 4d 4f 56 20 52 30  2c 23 33 3a 4d 4f 56 20  |n MOV R0,#3:MOV |
000085e0  52 31 2c 23 31 30 3a 52  53 42 20 52 31 2c 52 31  |R1,#10:RSB R1,R1|
000085f0  2c 23 30 3a 4d 4f 56 20  52 32 2c 23 31 3a 4d 4f  |,#0:MOV R2,#1:MO|
00008600  56 20 52 33 2c 23 31 30  3a 53 57 49 20 22 53 6f  |V R3,#10:SWI "So|
00008610  75 6e 64 5f 43 6f 6e 74  72 6f 6c 22 20 20 20 20  |und_Control"    |
00008620  20 20 3b 20 20 79 65 6c  6c 6f 77 20 65 78 70 6c  |  ;  yellow expl|
00008630  6f 73 69 6f 6e 20 73 6f  75 6e 64 0d 2c 2e 31 20  |osion sound.,.1 |
00008640  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 35 7d  |LDMFD R13!,{R15}|
00008650  20 20 20 3b 20 20 6f 6e  65 20 68 69 74 20 6f 6e  |   ;  one hit on|
00008660  65 20 61 6c 69 65 6e 20  73 68 69 70 0d 2c 38 0b  |e alien ship.,8.|
00008670  20 2e 72 6f 76 65 72 0d  2c 42 1f 20 41 44 44 20  | .rover.,B. ADD |
00008680  52 32 2c 52 32 2c 23 31  32 3a 41 44 44 20 52 33  |R2,R2,#12:ADD R3|
00008690  2c 52 33 2c 23 31 0d 2c  4c 1a 20 43 4d 50 20 52  |,R3,#1.,L. CMP R|
000086a0  33 2c 52 31 20 3a 20 42  4e 45 20 72 6c 6f 6f 70  |3,R1 : BNE rloop|
000086b0  0d 2c 56 15 20 4c 44 4d  46 44 20 52 31 33 21 2c  |.,V. LDMFD R13!,|
000086c0  7b 52 31 35 7d 0d 2c 60  05 20 0d 2c 6a 1d 20 2e  |{R15}.,`. .,j. .|
000086d0  63 6c 75 73 74 65 72 5f  68 69 74 5f 63 6f 6f 72  |cluster_hit_coor|
000086e0  64 69 6e 61 74 65 73 0d  2c 74 13 20 41 44 52 20  |dinates.,t. ADR |
000086f0  52 32 2c 58 5f 62 6c 61  73 74 0d 2c 7e 13 20 41  |R2,X_blast.,~. A|
00008700  44 52 20 52 33 2c 59 5f  62 6c 61 73 74 0d 2c 88  |DR R3,Y_blast.,.|
00008710  39 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |9 STMFD R13!,{R1|
00008720  34 7d 3a 42 4c 20 67 65  74 5f 63 6f 6f 72 64 69  |4}:BL get_coordi|
00008730  6e 61 74 65 73 3a 4c 44  4d 46 44 20 52 31 33 21  |nates:LDMFD R13!|
00008740  2c 7b 52 31 34 7d 0d 2c  92 13 20 4c 44 52 20 52  |,{R14}.,.. LDR R|
00008750  31 2c 6e 65 77 61 64 64  72 0d 2c 9c 16 20 41 44  |1,newaddr.,.. AD|
00008760  52 20 52 32 2c 58 5f 75  73 65 72 73 68 69 70 0d  |R R2,X_usership.|
00008770  2c a6 16 20 41 44 52 20  52 33 2c 59 5f 75 73 65  |,.. ADR R3,Y_use|
00008780  72 73 68 69 70 0d 2c b0  39 20 53 54 4d 46 44 20  |rship.,.9 STMFD |
00008790  52 31 33 21 2c 7b 52 31  34 7d 3a 42 4c 20 67 65  |R13!,{R14}:BL ge|
000087a0  74 5f 63 6f 6f 72 64 69  6e 61 74 65 73 3a 4c 44  |t_coordinates:LD|
000087b0  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 0d 2c  |MFD R13!,{R14}.,|
000087c0  ba 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 2c  |.. MOV R15,R14.,|
000087d0  c4 05 20 0d 2c ce 1b 20  2e 65 78 70 6c 6f 5f 68  |.. .,.. .explo_h|
000087e0  69 74 5f 63 6f 6f 72 64  69 6e 61 74 65 73 0d 2c  |it_coordinates.,|
000087f0  d8 17 20 41 44 52 20 52  32 2c 58 5f 65 78 70 6c  |.. ADR R2,X_expl|
00008800  6f 73 69 6f 6e 0d 2c e2  17 20 41 44 52 20 52 33  |osion.,.. ADR R3|
00008810  2c 59 5f 65 78 70 6c 6f  73 69 6f 6e 0d 2c ec 39  |,Y_explosion.,.9|
00008820  20 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | STMFD R13!,{R14|
00008830  7d 3a 42 4c 20 67 65 74  5f 63 6f 6f 72 64 69 6e  |}:BL get_coordin|
00008840  61 74 65 73 3a 4c 44 4d  46 44 20 52 31 33 21 2c  |ates:LDMFD R13!,|
00008850  7b 52 31 34 7d 0d 2c f6  13 20 4c 44 52 20 52 31  |{R14}.,.. LDR R1|
00008860  2c 6e 65 77 61 64 64 72  0d 2d 00 16 20 41 44 52  |,newaddr.-.. ADR|
00008870  20 52 32 2c 58 5f 75 73  65 72 73 68 69 70 0d 2d  | R2,X_usership.-|
00008880  0a 16 20 41 44 52 20 52  33 2c 59 5f 75 73 65 72  |.. ADR R3,Y_user|
00008890  73 68 69 70 0d 2d 14 39  20 53 54 4d 46 44 20 52  |ship.-.9 STMFD R|
000088a0  31 33 21 2c 7b 52 31 34  7d 3a 42 4c 20 67 65 74  |13!,{R14}:BL get|
000088b0  5f 63 6f 6f 72 64 69 6e  61 74 65 73 3a 4c 44 4d  |_coordinates:LDM|
000088c0  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 0d 2d 1e  |FD R13!,{R14}.-.|
000088d0  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 2d 28  |. MOV R15,R14.-(|
000088e0  05 20 0d 2d 32 1a 20 2e  62 6f 6d 62 5f 68 69 74  |. .-2. .bomb_hit|
000088f0  5f 63 6f 6f 72 64 69 6e  61 74 65 73 0d 2d 3c 14  |_coordinates.-<.|
00008900  20 41 44 52 20 52 32 2c  58 5f 62 75 6c 6c 65 74  | ADR R2,X_bullet|
00008910  0d 2d 46 14 20 41 44 52  20 52 33 2c 59 5f 62 75  |.-F. ADR R3,Y_bu|
00008920  6c 6c 65 74 0d 2d 50 39  20 53 54 4d 46 44 20 52  |llet.-P9 STMFD R|
00008930  31 33 21 2c 7b 52 31 34  7d 3a 42 4c 20 67 65 74  |13!,{R14}:BL get|
00008940  5f 63 6f 6f 72 64 69 6e  61 74 65 73 3a 4c 44 4d  |_coordinates:LDM|
00008950  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 0d 2d 5a  |FD R13!,{R14}.-Z|
00008960  13 20 4c 44 52 20 52 31  2c 6e 65 77 61 64 64 72  |. LDR R1,newaddr|
00008970  0d 2d 64 16 20 41 44 52  20 52 32 2c 58 5f 75 73  |.-d. ADR R2,X_us|
00008980  65 72 73 68 69 70 0d 2d  6e 16 20 41 44 52 20 52  |ership.-n. ADR R|
00008990  33 2c 59 5f 75 73 65 72  73 68 69 70 0d 2d 78 39  |3,Y_usership.-x9|
000089a0  20 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | STMFD R13!,{R14|
000089b0  7d 3a 42 4c 20 67 65 74  5f 63 6f 6f 72 64 69 6e  |}:BL get_coordin|
000089c0  61 74 65 73 3a 4c 44 4d  46 44 20 52 31 33 21 2c  |ates:LDMFD R13!,|
000089d0  7b 52 31 34 7d 0d 2d 82  10 20 4d 4f 56 20 52 31  |{R14}.-.. MOV R1|
000089e0  35 2c 52 31 34 0d 2d 8c  05 20 0d 2d 96 15 20 2e  |5,R14.-.. .-.. .|
000089f0  67 65 74 5f 63 6f 6f 72  64 69 6e 61 74 65 73 0d  |get_coordinates.|
00008a00  2d a0 47 20 20 3b 20 20  52 31 20 2d 20 61 64 64  |-.G  ;  R1 - add|
00008a10  72 65 73 73 20 6f 6e 20  73 63 72 65 65 6e 20 20  |ress on screen  |
00008a20  52 32 20 2d 20 58 20 6f  66 66 73 65 74 20 61 64  |R2 - X offset ad|
00008a30  64 72 20 20 52 33 20 2d  20 59 20 6f 66 66 73 65  |dr  R3 - Y offse|
00008a40  74 20 61 64 64 72 0d 2d  aa 13 20 4c 44 52 20 52  |t addr.-.. LDR R|
00008a50  34 2c 61 64 64 72 65 73  73 0d 2d b4 41 20 53 55  |4,address.-.A SU|
00008a60  42 20 52 34 2c 52 31 2c  52 34 20 20 20 20 20 20  |B R4,R1,R4      |
00008a70  20 20 20 20 20 3b 20 20  20 20 73 63 72 65 65 6e  |     ;    screen|
00008a80  20 61 64 64 72 65 73 73  20 2d 20 73 74 61 72 74  | address - start|
00008a90  20 6f 66 20 73 63 72 65  65 6e 0d 2d be 28 20 4d  | of screen.-.( M|
00008aa0  4f 56 20 52 35 2c 23 31  36 30 20 20 20 20 20 20  |OV R5,#160      |
00008ab0  20 20 20 20 20 20 3b 20  20 20 20 64 69 76 69 73  |      ;    divis|
00008ac0  6f 72 0d 2d c8 35 20 4d  4f 56 20 52 36 2c 23 31  |or.-.5 MOV R6,#1|
00008ad0  3c 3c 33 31 20 20 20 20  20 20 20 20 20 20 3b 20  |<<31          ; |
00008ae0  20 20 20 63 6f 75 6e 74  65 72 20 66 6f 72 20 65  |   counter for e|
00008af0  61 63 68 20 62 69 74 0d  2d d2 2a 20 4d 4f 56 20  |ach bit.-.* MOV |
00008b00  52 31 30 2c 23 30 20 20  20 20 20 20 20 20 20 20  |R10,#0          |
00008b10  20 20 20 3b 20 20 20 20  72 65 6d 61 69 6e 64 65  |   ;    remainde|
00008b20  72 0d 2d dc 29 20 4d 4f  56 20 52 31 31 2c 23 30  |r.-.) MOV R11,#0|
00008b30  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 20  |             ;  |
00008b40  20 20 71 75 6f 74 69 65  6e 74 0d 2d e6 13 20 2e  |  quotient.-.. .|
00008b50  64 69 76 69 73 69 6f 6e  5f 6c 6f 6f 70 0d 2d f0  |division_loop.-.|
00008b60  15 20 4d 4f 56 53 20 52  34 2c 52 34 2c 41 53 4c  |. MOVS R4,R4,ASL|
00008b70  23 31 0d 2d fa 14 20 41  44 43 20 52 31 30 2c 52  |#1.-.. ADC R10,R|
00008b80  31 30 2c 52 31 30 0d 2e  04 0f 20 43 4d 50 20 52  |10,R10.... CMP R|
00008b90  31 30 2c 52 35 0d 2e 0e  2a 20 53 55 42 47 45 20  |10,R5...* SUBGE |
00008ba0  52 31 30 2c 52 31 30 2c  52 35 20 20 20 20 20 20  |R10,R10,R5      |
00008bb0  20 3b 20 20 20 20 72 65  6d 61 69 6e 64 65 72 0d  | ;    remainder.|
00008bc0  2e 18 28 20 84 52 47 45  20 52 31 31 2c 52 31 31  |..( .RGE R11,R11|
00008bd0  2c 52 36 20 20 20 20 20  20 20 3b 20 20 20 20 71  |,R6       ;    q|
00008be0  75 6f 74 69 65 6e 74 0d  2e 22 15 20 4d 4f 56 53  |uotient..". MOVS|
00008bf0  20 52 36 2c 52 36 2c 4c  53 52 23 31 0d 2e 2c 16  | R6,R6,LSR#1..,.|
00008c00  20 42 4e 45 20 64 69 76  69 73 69 6f 6e 5f 6c 6f  | BNE division_lo|
00008c10  6f 70 0d 2e 36 25 20 4d  4f 56 20 52 31 30 2c 52  |op..6% MOV R10,R|
00008c20  31 30 2c 4c 53 4c 23 33  20 3a 20 53 54 52 20 52  |10,LSL#3 : STR R|
00008c30  31 30 2c 5b 52 32 5d 0d  2e 40 14 20 53 54 52 20  |10,[R2]..@. STR |
00008c40  52 31 30 2c 5b 52 32 2c  23 30 5d 0d 2e 4a 15 20  |R10,[R2,#0]..J. |
00008c50  52 53 42 20 52 31 31 2c  52 31 31 2c 23 32 35 35  |RSB R11,R11,#255|
00008c60  0d 2e 54 25 20 4d 4f 56  20 52 31 31 2c 52 31 31  |..T% MOV R11,R11|
00008c70  2c 4c 53 4c 23 32 20 3a  20 53 54 52 20 52 31 31  |,LSL#2 : STR R11|
00008c80  2c 5b 52 33 5d 0d 2e 5e  10 20 4d 4f 56 20 52 31  |,[R3]..^. MOV R1|
00008c90  35 2c 52 31 34 0d 2e 68  04 0d 2e 72 19 20 2e 73  |5,R14..h...r. .s|
00008ca0  74 6f 72 65 5f 6e 6f 5f  6f 66 5f 62 75 6c 6c 65  |tore_no_of_bulle|
00008cb0  74 73 0d 2e 7c 0e 20 4d  4f 56 20 52 32 2c 23 30  |ts..|. MOV R2,#0|
00008cc0  0d 2e 86 1a 20 53 54 52  42 20 52 32 2c 6e 6f 5f  |.... STRB R2,no_|
00008cd0  6f 66 5f 62 75 6c 6c 65  74 73 0d 2e 90 10 20 4d  |of_bullets.... M|
00008ce0  4f 56 20 52 31 35 2c 52  31 34 0d 2e 9a 04 0d 2e  |OV R15,R14......|
00008cf0  a4 18 20 2e 6c 6f 61 64  5f 6e 6f 5f 6f 66 5f 62  |.. .load_no_of_b|
00008d00  75 6c 6c 65 74 73 0d 2e  ae 1a 20 4c 44 52 42 20  |ullets.... LDRB |
00008d10  52 32 2c 6e 6f 5f 6f 66  5f 62 75 6c 6c 65 74 73  |R2,no_of_bullets|
00008d20  0d 2e b8 10 20 4d 4f 56  20 52 31 35 2c 52 31 34  |.... MOV R15,R14|
00008d30  0d 2e c2 05 20 0d 2e cc  0f 20 2e 6c 6f 61 64 5f  |.... .... .load_|
00008d40  64 65 61 64 0d 2e d6 11  20 4c 44 52 42 20 52 31  |dead.... LDRB R1|
00008d50  2c 64 65 61 64 0d 2e e0  10 20 4d 4f 56 20 52 31  |,dead.... MOV R1|
00008d60  35 2c 52 31 34 0d 2e ea  04 0d 2e f4 41 20 2e 62  |5,R14.......A .b|
00008d70  75 6c 6c 65 74 64 61 74  61 20 45 51 55 44 20 26  |ulletdata EQUD &|
00008d80  30 37 37 30 30 37 37 30  20 3a 20 45 51 55 44 20  |07700770 : EQUD |
00008d90  26 30 37 37 30 30 37 37  30 20 3a 20 45 51 55 44  |&07700770 : EQUD|
00008da0  20 26 30 37 37 30 30 37  37 30 0d 2e fe 21 20 2e  | &07700770...! .|
00008db0  74 6f 70 5f 6f 66 5f 73  63 72 65 65 6e 20 45 51  |top_of_screen EQ|
00008dc0  55 44 20 26 31 46 44 41  38 30 30 0d 2f 08 1b 20  |UD &1FDA800./.. |
00008dd0  2e 62 75 6c 6c 65 74 5f  61 64 64 72 65 73 73 20  |.bullet_address |
00008de0  45 51 55 44 20 30 0d 2f  12 1b 20 20 20 20 20 20  |EQUD 0./..      |
00008df0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00008e00  30 0d 2f 1c 1b 20 20 20  20 20 20 20 20 20 20 20  |0./..           |
00008e10  20 20 20 20 20 20 45 51  55 44 20 30 0d 2f 26 1b  |      EQUD 0./&.|
00008e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008e30  20 45 51 55 44 20 30 0d  2f 30 1b 20 20 20 20 20  | EQUD 0./0.     |
00008e40  20 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |            EQUD|
00008e50  20 30 0d 2f 3a 1a 20 2e  6e 6f 5f 6f 66 5f 62 75  | 0./:. .no_of_bu|
00008e60  6c 6c 65 74 73 20 45 51  55 42 20 30 0d 2f 44 10  |llets EQUB 0./D.|
00008e70  20 2e 67 61 70 20 45 51  55 42 20 30 0d 2f 4e 1d  | .gap EQUB 0./N.|
00008e80  20 2e 62 75 6c 6c 65 74  5f 6f 6e 5f 73 63 72 65  | .bullet_on_scre|
00008e90  65 6e 20 45 51 55 42 20  30 0d 2f 58 18 20 2e 6d  |en EQUB 0./X. .m|
00008ea0  65 6d 6f 72 79 5f 6d 6f  76 65 20 45 51 55 42 20  |emory_move EQUB |
00008eb0  30 0d 2f 62 10 20 2e 68  69 74 20 45 51 55 42 20  |0./b. .hit EQUB |
00008ec0  30 0d 2f 6c 11 20 2e 64  65 61 64 20 45 51 55 42  |0./l. .dead EQUB|
00008ed0  20 30 0d 2f 76 0a 20 41  4c 49 47 4e 0d 2f 80 05  | 0./v. ALIGN./..|
00008ee0  20 0d 2f 8a 3d 20 20 3b  20 20 6d 65 6d 6f 72 79  | ./.=  ;  memory|
00008ef0  20 6c 6f 63 61 74 69 6f  6e 73 20 66 6f 72 20 73  | locations for s|
00008f00  70 72 69 74 65 20 63 6f  6c 6c 69 73 69 6f 6e 20  |prite collision |
00008f10  69 64 65 6e 74 69 66 69  63 61 74 69 6f 6e 0d 2f  |identification./|
00008f20  94 1b 20 2e 61 64 64 72  65 73 73 20 45 51 55 44  |.. .address EQUD|
00008f30  20 26 31 46 44 38 30 30  30 0d 2f 9e 1d 20 2e 58  | &1FD8000./.. .X|
00008f40  5f 62 75 6c 6c 65 74 20  20 20 20 20 20 20 20 20  |_bullet         |
00008f50  45 51 55 44 20 30 0d 2f  a8 1d 20 2e 59 5f 62 75  |EQUD 0./.. .Y_bu|
00008f60  6c 6c 65 74 20 20 20 20  20 20 20 20 20 45 51 55  |llet         EQU|
00008f70  44 20 30 0d 2f b2 1d 20  2e 58 5f 73 70 72 69 74  |D 0./.. .X_sprit|
00008f80  65 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |e         EQUD 0|
00008f90  0d 2f bc 1d 20 2e 59 5f  73 70 72 69 74 65 20 20  |./.. .Y_sprite  |
00008fa0  20 20 20 20 20 20 20 45  51 55 44 20 30 0d 2f c6  |       EQUD 0./.|
00008fb0  1d 20 2e 58 5f 75 73 65  72 73 68 69 70 20 20 20  |. .X_usership   |
00008fc0  20 20 20 20 45 51 55 44  20 30 0d 2f d0 1d 20 2e  |    EQUD 0./.. .|
00008fd0  59 5f 75 73 65 72 73 68  69 70 20 20 20 20 20 20  |Y_usership      |
00008fe0  20 45 51 55 44 20 30 0d  2f da 1d 20 2e 58 5f 65  | EQUD 0./.. .X_e|
00008ff0  78 70 6c 6f 73 69 6f 6e  20 20 20 20 20 20 45 51  |xplosion      EQ|
00009000  55 44 20 30 0d 2f e4 1d  20 2e 59 5f 65 78 70 6c  |UD 0./.. .Y_expl|
00009010  6f 73 69 6f 6e 20 20 20  20 20 20 45 51 55 44 20  |osion      EQUD |
00009020  30 0d 2f ee 1d 20 2e 58  5f 62 6c 61 73 74 20 20  |0./.. .X_blast  |
00009030  20 20 20 20 20 20 20 20  45 51 55 44 20 30 0d 2f  |        EQUD 0./|
00009040  f8 1d 20 2e 59 5f 62 6c  61 73 74 20 20 20 20 20  |.. .Y_blast     |
00009050  20 20 20 20 20 45 51 55  44 20 30 0d 30 02 39 20  |     EQUD 0.0.9 |
00009060  2e 62 75 6c 6c 65 74 5f  77 69 64 74 68 20 20 20  |.bullet_width   |
00009070  20 20 45 51 55 42 20 31  36 20 20 20 20 20 20 20  |  EQUB 16       |
00009080  20 20 3b 20 20 63 6f 6e  73 74 61 6e 74 20 76 61  |  ;  constant va|
00009090  6c 75 65 73 0d 30 0c 1e  20 2e 62 75 6c 6c 65 74  |lues.0.. .bullet|
000090a0  5f 68 65 69 67 68 74 20  20 20 20 45 51 55 42 20  |_height    EQUB |
000090b0  32 34 0d 30 16 1e 20 2e  73 70 72 69 74 65 5f 77  |24.0.. .sprite_w|
000090c0  69 64 74 68 20 20 20 20  20 45 51 55 42 20 36 34  |idth     EQUB 64|
000090d0  0d 30 20 1e 20 2e 73 70  72 69 74 65 5f 68 65 69  |.0 . .sprite_hei|
000090e0  67 68 74 20 20 20 20 45  51 55 42 20 34 38 0d 30  |ght    EQUB 48.0|
000090f0  2a 1e 20 2e 75 73 65 72  73 68 69 70 5f 77 69 64  |*. .usership_wid|
00009100  74 68 20 20 20 45 51 55  42 20 36 34 0d 30 34 1e  |th   EQUB 64.04.|
00009110  20 2e 75 73 65 72 73 68  69 70 5f 68 65 69 67 68  | .usership_heigh|
00009120  74 20 20 45 51 55 42 20  36 34 0d 30 3e 1e 20 2e  |t  EQUB 64.0>. .|
00009130  65 78 70 6c 6f 73 69 6f  6e 5f 77 69 64 74 68 20  |explosion_width |
00009140  20 45 51 55 42 20 38 30  0d 30 48 1e 20 2e 65 78  | EQUB 80.0H. .ex|
00009150  70 6c 6f 73 69 6f 6e 5f  68 65 69 67 68 74 20 45  |plosion_height E|
00009160  51 55 42 20 35 36 0d 30  52 1e 20 2e 62 6c 61 73  |QUB 56.0R. .blas|
00009170  74 5f 77 69 64 74 68 20  20 20 20 20 20 45 51 55  |t_width      EQU|
00009180  42 20 33 32 0d 30 5c 1e  20 2e 62 6c 61 73 74 5f  |B 32.0\. .blast_|
00009190  68 65 69 67 68 74 20 20  20 20 20 45 51 55 42 20  |height     EQUB |
000091a0  31 36 0d 30 66 0a 20 41  4c 49 47 4e 0d 30 70 05  |16.0f. ALIGN.0p.|
000091b0  20 0d 30 7a 0a 20 2e 6c  65 66 74 0d 30 84 3e 20  | .0z. .left.0.> |
000091c0  4c 44 52 20 52 31 2c 6c  65 66 74 73 69 64 65 20  |LDR R1,leftside |
000091d0  3a 20 4c 44 52 20 52 32  2c 6f 6c 64 61 64 64 72  |: LDR R2,oldaddr|
000091e0  20 3a 20 43 4d 50 20 52  31 2c 52 32 20 3a 20 ec  | : CMP R1,R2 : .|
000091f0  51 20 52 31 35 2c 52 31  34 0d 30 8e 34 20 53 54  |Q R15,R14.0.4 ST|
00009200  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 20 3a  |MFD R13!,{R14} :|
00009210  20 4c 44 52 20 52 31 2c  6f 6c 64 61 64 64 72 20  | LDR R1,oldaddr |
00009220  3a 20 42 4c 20 75 73 65  72 73 68 69 70 0d 30 98  |: BL usership.0.|
00009230  65 20 4c 44 52 20 52 31  2c 6e 65 77 61 64 64 72  |e LDR R1,newaddr|
00009240  20 3a 20 53 55 42 20 52  31 2c 52 31 2c 23 31 20  | : SUB R1,R1,#1 |
00009250  3a 20 53 54 52 20 52 31  2c 6e 65 77 61 64 64 72  |: STR R1,newaddr|
00009260  20 3a 20 53 54 52 20 52  31 2c 6f 6c 64 61 64 64  | : STR R1,oldadd|
00009270  72 20 3a 20 42 4c 20 75  73 65 72 73 68 69 70 20  |r : BL usership |
00009280  3a 20 4c 44 4d 46 44 20  52 31 33 21 2c 7b 52 31  |: LDMFD R13!,{R1|
00009290  35 7d 0d 30 a2 05 20 0d  30 ac 0b 20 2e 72 69 67  |5}.0.. .0.. .rig|
000092a0  68 74 0d 30 b6 3f 20 4c  44 52 20 52 31 2c 72 69  |ht.0.? LDR R1,ri|
000092b0  67 68 74 73 69 64 65 20  3a 20 4c 44 52 20 52 32  |ghtside : LDR R2|
000092c0  2c 6f 6c 64 61 64 64 72  20 3a 20 43 4d 50 20 52  |,oldaddr : CMP R|
000092d0  31 2c 52 32 20 3a 20 ec  51 20 52 31 35 2c 52 31  |1,R2 : .Q R15,R1|
000092e0  34 0d 30 c0 34 20 53 54  4d 46 44 20 52 31 33 21  |4.0.4 STMFD R13!|
000092f0  2c 7b 52 31 34 7d 20 3a  20 4c 44 52 20 52 31 2c  |,{R14} : LDR R1,|
00009300  6f 6c 64 61 64 64 72 20  3a 20 42 4c 20 75 73 65  |oldaddr : BL use|
00009310  72 73 68 69 70 0d 30 ca  65 20 4c 44 52 20 52 31  |rship.0.e LDR R1|
00009320  2c 6e 65 77 61 64 64 72  20 3a 20 41 44 44 20 52  |,newaddr : ADD R|
00009330  31 2c 52 31 2c 23 31 20  3a 20 53 54 52 20 52 31  |1,R1,#1 : STR R1|
00009340  2c 6e 65 77 61 64 64 72  20 3a 20 53 54 52 20 52  |,newaddr : STR R|
00009350  31 2c 6f 6c 64 61 64 64  72 20 3a 20 42 4c 20 75  |1,oldaddr : BL u|
00009360  73 65 72 73 68 69 70 20  3a 20 4c 44 4d 46 44 20  |sership : LDMFD |
00009370  52 31 33 21 2c 7b 52 31  35 7d 0d 30 d4 05 20 0d  |R13!,{R15}.0.. .|
00009380  30 de 08 20 2e 75 70 0d  30 e8 57 20 4c 44 52 20  |0.. .up.0.W LDR |
00009390  52 31 2c 74 6f 70 5f 6f  66 5f 73 63 72 65 65 6e  |R1,top_of_screen|
000093a0  20 3a 20 41 44 44 20 52  31 2c 52 31 2c 23 31 36  | : ADD R1,R1,#16|
000093b0  30 20 3a 20 4c 44 52 20  52 32 2c 6f 6c 64 61 64  |0 : LDR R2,oldad|
000093c0  64 72 20 3a 20 43 4d 50  20 52 31 2c 52 32 20 3a  |dr : CMP R1,R2 :|
000093d0  20 4d 4f 56 47 54 20 52  31 35 2c 52 31 34 0d 30  | MOVGT R15,R14.0|
000093e0  f2 39 20 4c 44 52 20 52  31 2c 72 69 67 68 74 73  |.9 LDR R1,rights|
000093f0  69 64 65 20 3a 20 53 55  42 20 52 31 2c 52 31 2c  |ide : SUB R1,R1,|
00009400  23 31 36 30 20 3a 20 53  54 52 20 52 31 2c 72 69  |#160 : STR R1,ri|
00009410  67 68 74 73 69 64 65 0d  30 fc 38 20 4c 44 52 20  |ghtside.0.8 LDR |
00009420  52 31 2c 6c 65 66 74 73  69 64 65 20 20 3a 20 53  |R1,leftside  : S|
00009430  55 42 20 52 31 2c 52 31  2c 23 31 36 30 20 3a 20  |UB R1,R1,#160 : |
00009440  53 54 52 20 52 31 2c 6c  65 66 74 73 69 64 65 0d  |STR R1,leftside.|
00009450  31 06 34 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |1.4 STMFD R13!,{|
00009460  52 31 34 7d 20 3a 20 4c  44 52 20 52 31 2c 6f 6c  |R14} : LDR R1,ol|
00009470  64 61 64 64 72 20 3a 20  42 4c 20 75 73 65 72 73  |daddr : BL users|
00009480  68 69 70 0d 31 10 67 20  4c 44 52 20 52 31 2c 6e  |hip.1.g LDR R1,n|
00009490  65 77 61 64 64 72 20 3a  20 53 55 42 20 52 31 2c  |ewaddr : SUB R1,|
000094a0  52 31 2c 23 31 36 30 20  3a 20 53 54 52 20 52 31  |R1,#160 : STR R1|
000094b0  2c 6e 65 77 61 64 64 72  20 3a 20 53 54 52 20 52  |,newaddr : STR R|
000094c0  31 2c 6f 6c 64 61 64 64  72 20 3a 20 42 4c 20 75  |1,oldaddr : BL u|
000094d0  73 65 72 73 68 69 70 20  3a 20 4c 44 4d 46 44 20  |sership : LDMFD |
000094e0  52 31 33 21 2c 7b 52 31  35 7d 0d 31 1a 05 20 0d  |R13!,{R15}.1.. .|
000094f0  31 24 0a 20 2e 64 6f 77  6e 0d 31 2e 58 20 4c 44  |1$. .down.1.X LD|
00009500  52 20 52 31 2c 73 63 72  65 65 6e 5f 62 6f 74 74  |R R1,screen_bott|
00009510  6f 6d 20 3a 20 53 55 42  20 52 31 2c 52 31 2c 23  |om : SUB R1,R1,#|
00009520  31 37 36 30 20 3a 20 4c  44 52 20 52 32 2c 6f 6c  |1760 : LDR R2,ol|
00009530  64 61 64 64 72 20 3a 20  43 4d 50 20 52 31 2c 52  |daddr : CMP R1,R|
00009540  32 20 3a 20 4d 4f 56 4c  54 20 52 31 35 2c 52 31  |2 : MOVLT R15,R1|
00009550  34 0d 31 38 39 20 4c 44  52 20 52 31 2c 72 69 67  |4.189 LDR R1,rig|
00009560  68 74 73 69 64 65 20 3a  20 41 44 44 20 52 31 2c  |htside : ADD R1,|
00009570  52 31 2c 23 31 36 30 20  3a 20 53 54 52 20 52 31  |R1,#160 : STR R1|
00009580  2c 72 69 67 68 74 73 69  64 65 0d 31 42 38 20 4c  |,rightside.1B8 L|
00009590  44 52 20 52 31 2c 6c 65  66 74 73 69 64 65 20 20  |DR R1,leftside  |
000095a0  3a 20 41 44 44 20 52 31  2c 52 31 2c 23 31 36 30  |: ADD R1,R1,#160|
000095b0  20 3a 20 53 54 52 20 52  31 2c 6c 65 66 74 73 69  | : STR R1,leftsi|
000095c0  64 65 0d 31 4c 34 20 53  54 4d 46 44 20 52 31 33  |de.1L4 STMFD R13|
000095d0  21 2c 7b 52 31 34 7d 20  3a 20 4c 44 52 20 52 31  |!,{R14} : LDR R1|
000095e0  2c 6f 6c 64 61 64 64 72  20 3a 20 42 4c 20 75 73  |,oldaddr : BL us|
000095f0  65 72 73 68 69 70 0d 31  56 67 20 4c 44 52 20 52  |ership.1Vg LDR R|
00009600  31 2c 6e 65 77 61 64 64  72 20 3a 20 41 44 44 20  |1,newaddr : ADD |
00009610  52 31 2c 52 31 2c 23 31  36 30 20 3a 20 53 54 52  |R1,R1,#160 : STR|
00009620  20 52 31 2c 6e 65 77 61  64 64 72 20 3a 20 53 54  | R1,newaddr : ST|
00009630  52 20 52 31 2c 6f 6c 64  61 64 64 72 20 3a 20 42  |R R1,oldaddr : B|
00009640  4c 20 75 73 65 72 73 68  69 70 20 3a 20 4c 44 4d  |L usership : LDM|
00009650  46 44 20 52 31 33 21 2c  7b 52 31 35 7d 0d 31 60  |FD R13!,{R15}.1`|
00009660  05 20 0d 31 6a 0e 20 2e  75 73 65 72 73 68 69 70  |. .1j. .usership|
00009670  0d 31 74 15 20 41 44 52  20 52 32 2c 73 68 69 70  |.1t. ADR R2,ship|
00009680  73 64 61 74 61 0d 31 7e  28 20 4d 4f 56 20 52 33  |sdata.1~( MOV R3|
00009690  2c 23 31 36 20 20 20 20  20 20 20 20 20 20 20 20  |,#16            |
000096a0  20 20 20 3b 20 20 20 68  65 69 67 68 74 0d 31 88  |   ;   height.1.|
000096b0  0c 20 2e 75 65 69 67 68  74 0d 31 92 0e 20 4d 4f  |. .ueight.1.. MO|
000096c0  56 20 52 34 2c 23 38 0d  31 9c 0d 20 2e 75 74 77  |V R4,#8.1.. .utw|
000096d0  65 6c 76 65 0d 31 a6 14  20 4c 44 52 42 20 52 35  |elve.1.. LDRB R5|
000096e0  2c 5b 52 32 5d 2c 23 31  0d 31 b0 14 20 4c 44 52  |,[R2],#1.1.. LDR|
000096f0  42 20 52 36 2c 5b 52 31  2c 23 31 5d 0d 31 ba 0f  |B R6,[R1,#1].1..|
00009700  20 82 20 52 35 2c 52 35  2c 52 36 0d 31 c4 15 20  | . R5,R5,R6.1.. |
00009710  53 54 52 42 20 52 35 2c  5b 52 31 2c 23 31 5d 21  |STRB R5,[R1,#1]!|
00009720  0d 31 ce 12 20 53 55 42  53 20 52 34 2c 52 34 2c  |.1.. SUBS R4,R4,|
00009730  23 31 0d 31 d8 10 20 42  4e 45 20 75 74 77 65 6c  |#1.1.. BNE utwel|
00009740  76 65 0d 31 e2 33 20 41  44 44 20 52 31 2c 52 31  |ve.1.3 ADD R1,R1|
00009750  2c 23 31 35 32 20 20 20  20 20 20 20 20 20 20 20  |,#152           |
00009760  3b 20 20 20 31 36 30 20  70 69 78 65 6c 73 20 61  |;   160 pixels a|
00009770  63 72 6f 73 73 0d 31 ec  12 20 53 55 42 53 20 52  |cross.1.. SUBS R|
00009780  33 2c 52 33 2c 23 31 0d  31 f6 0f 20 42 4e 45 20  |3,R3,#1.1.. BNE |
00009790  75 65 69 67 68 74 0d 32  00 10 20 4d 4f 56 20 52  |ueight.2.. MOV R|
000097a0  31 35 2c 52 31 34 0d 32  0a 05 20 0d 32 14 18 20  |15,R14.2.. .2.. |
000097b0  2e 75 73 65 72 73 68 69  70 5f 63 6f 6c 6c 69 73  |.usership_collis|
000097c0  69 6f 6e 0d 32 1e 2a 20  4c 44 52 42 20 52 31 2c  |ion.2.* LDRB R1,|
000097d0  64 65 61 64 20 3a 20 43  4d 50 20 52 31 2c 23 31  |dead : CMP R1,#1|
000097e0  20 3a 20 ec 51 20 52 31  35 2c 52 31 34 0d 32 28  | : .Q R15,R14.2(|
000097f0  13 20 4c 44 52 20 52 31  2c 6e 65 77 61 64 64 72  |. LDR R1,newaddr|
00009800  0d 32 32 15 20 41 44 52  20 52 32 2c 73 68 69 70  |.22. ADR R2,ship|
00009810  73 64 61 74 61 0d 32 3c  0f 20 4d 4f 56 20 52 33  |sdata.2<. MOV R3|
00009820  2c 23 31 36 0d 32 46 0d  20 2e 75 63 65 69 67 68  |,#16.2F. .uceigh|
00009830  74 0d 32 50 0e 20 4d 4f  56 20 52 34 2c 23 38 0d  |t.2P. MOV R4,#8.|
00009840  32 5a 0e 20 2e 75 63 74  77 65 6c 76 65 0d 32 64  |2Z. .uctwelve.2d|
00009850  14 20 4c 44 52 42 20 52  35 2c 5b 52 32 5d 2c 23  |. LDRB R5,[R2],#|
00009860  31 0d 32 6e 15 20 4c 44  52 42 20 52 36 2c 5b 52  |1.2n. LDRB R6,[R|
00009870  31 2c 23 31 5d 21 0d 32  78 4c 20 43 4d 50 20 52  |1,#1]!.2xL CMP R|
00009880  35 2c 23 30 20 3a 20 42  45 51 20 55 43 73 6b 69  |5,#0 : BEQ UCski|
00009890  70 20 20 20 20 20 20 20  20 20 20 20 3b 20 20 20  |p           ;   |
000098a0  20 6e 6f 20 63 6f 6c 6c  69 73 69 6f 6e 20 6f 6e  | no collision on|
000098b0  20 62 6c 61 63 6b 20 61  72 6f 75 6e 64 20 73 68  | black around sh|
000098c0  69 70 0d 32 82 10 20 82  53 20 52 35 2c 52 35 2c  |ip.2.. .S R5,R5,|
000098d0  52 36 0d 32 8c 12 20 42  4e 45 20 63 6f 6c 6c 69  |R6.2.. BNE colli|
000098e0  73 69 6f 6e 0d 32 96 0c  20 2e 55 43 73 6b 69 70  |sion.2.. .UCskip|
000098f0  0d 32 a0 12 20 53 55 42  53 20 52 34 2c 52 34 2c  |.2.. SUBS R4,R4,|
00009900  23 31 0d 32 aa 11 20 42  4e 45 20 75 63 74 77 65  |#1.2.. BNE uctwe|
00009910  6c 76 65 0d 32 b4 13 20  41 44 44 20 52 31 2c 52  |lve.2.. ADD R1,R|
00009920  31 2c 23 31 35 32 0d 32  be 12 20 53 55 42 53 20  |1,#152.2.. SUBS |
00009930  52 33 2c 52 33 2c 23 31  0d 32 c8 10 20 42 4e 45  |R3,R3,#1.2.. BNE|
00009940  20 75 63 65 69 67 68 74  0d 32 d2 0f 20 42 20 63  | uceight.2.. B c|
00009950  68 65 63 6b 5f 6f 6b 0d  32 dc 0f 20 2e 63 6f 6c  |heck_ok.2.. .col|
00009960  6c 69 73 69 6f 6e 0d 32  e6 3d 20 53 54 4d 46 44  |lision.2.= STMFD|
00009970  20 52 31 33 21 2c 7b 52  31 34 7d 20 3a 20 42 4c  | R13!,{R14} : BL|
00009980  20 63 68 65 63 6b 5f 63  6f 6c 6c 69 73 69 6f 6e  | check_collision|
00009990  20 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  | : LDMFD R13!,{R|
000099a0  31 34 7d 0d 32 f0 0e 20  2e 63 68 65 63 6b 5f 6f  |14}.2.. .check_o|
000099b0  6b 0d 32 fa 10 20 4d 4f  56 20 52 31 35 2c 52 31  |k.2.. MOV R15,R1|
000099c0  34 0d 33 04 05 20 0d 33  0e 15 20 2e 63 68 65 63  |4.3.. .3.. .chec|
000099d0  6b 5f 63 6f 6c 6c 69 73  69 6f 6e 0d 33 18 05 20  |k_collision.3.. |
000099e0  0d 33 22 13 20 4c 44 52  20 52 31 2c 6e 65 77 61  |.3". LDR R1,newa|
000099f0  64 64 72 0d 33 2c 16 20  41 44 52 20 52 32 2c 58  |ddr.3,. ADR R2,X|
00009a00  5f 75 73 65 72 73 68 69  70 0d 33 36 16 20 41 44  |_usership.36. AD|
00009a10  52 20 52 33 2c 59 5f 75  73 65 72 73 68 69 70 0d  |R R3,Y_usership.|
00009a20  33 40 39 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |3@9 STMFD R13!,{|
00009a30  52 31 34 7d 3a 42 4c 20  67 65 74 5f 63 6f 6f 72  |R14}:BL get_coor|
00009a40  64 69 6e 61 74 65 73 3a  4c 44 4d 46 44 20 52 31  |dinates:LDMFD R1|
00009a50  33 21 2c 7b 52 31 34 7d  0d 33 4a 05 20 0d 33 54  |3!,{R14}.3J. .3T|
00009a60  1a 20 4c 44 52 42 20 52  31 2c 6e 6f 5f 6f 66 5f  |. LDRB R1,no_of_|
00009a70  73 70 72 69 74 65 73 0d  33 5e 3c 20 53 54 4d 46  |sprites.3^< STMF|
00009a80  44 20 52 31 33 21 2c 7b  52 31 34 7d 20 3a 20 42  |D R13!,{R14} : B|
00009a90  4c 20 64 69 72 65 63 74  69 76 65 5f 62 79 74 65  |L directive_byte|
00009aa0  20 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  | : LDMFD R13!,{R|
00009ab0  31 34 7d 0d 33 68 0e 20  4d 4f 56 20 52 33 2c 23  |14}.3h. MOV R3,#|
00009ac0  31 0d 33 72 0c 20 2e 63  63 6c 6f 6f 70 0d 33 7c  |1.3r. .ccloop.3||
00009ad0  14 20 4c 44 52 42 20 52  34 2c 5b 52 32 2c 23 39  |. LDRB R4,[R2,#9|
00009ae0  5d 0d 33 86 48 20 43 4d  50 20 52 34 2c 23 31 20  |].3.H CMP R4,#1 |
00009af0  3a 20 42 4e 45 20 63 63  6f 76 65 72 20 20 20 20  |: BNE ccover    |
00009b00  20 20 3b 20 30 20 76 61  6c 75 65 20 2d 20 6f 66  |  ; 0 value - of|
00009b10  66 73 63 72 65 65 6e 20  2f 20 20 32 20 76 61 6c  |fscreen /  2 val|
00009b20  75 65 20 2d 20 64 65 61  64 0d 33 90 05 20 0d 33  |ue - dead.3.. .3|
00009b30  9a 1b 20 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.. STMFD R13!,{R|
00009b40  31 2d 52 34 2c 52 31 34  7d 0d 33 a4 0e 20 4d 4f  |1-R4,R14}.3.. MO|
00009b50  56 20 52 30 2c 23 31 0d  33 ae 13 20 4c 44 52 20  |V R0,#1.3.. LDR |
00009b60  52 31 2c 5b 52 32 2c 23  30 5d 0d 33 b8 14 20 41  |R1,[R2,#0].3.. A|
00009b70  44 52 20 52 32 2c 58 5f  73 70 72 69 74 65 0d 33  |DR R2,X_sprite.3|
00009b80  c2 14 20 41 44 52 20 52  33 2c 59 5f 73 70 72 69  |.. ADR R3,Y_spri|
00009b90  74 65 0d 33 cc 17 20 42  4c 20 67 65 74 5f 63 6f  |te.3.. BL get_co|
00009ba0  6f 72 64 69 6e 61 74 65  73 0d 33 d6 11 20 2e 58  |ordinates.3.. .X|
00009bb0  5f 63 6f 6c 5f 63 68 65  63 6b 0d 33 e0 16 20 4c  |_col_check.3.. L|
00009bc0  44 52 20 52 31 2c 58 5f  75 73 65 72 73 68 69 70  |DR R1,X_usership|
00009bd0  0d 33 ea 14 20 4c 44 52  20 52 32 2c 58 5f 73 70  |.3.. LDR R2,X_sp|
00009be0  72 69 74 65 0d 33 f4 1b  20 4c 44 52 42 20 52 33  |rite.3.. LDRB R3|
00009bf0  2c 75 73 65 72 73 68 69  70 5f 77 69 64 74 68 0d  |,usership_width.|
00009c00  33 fe 19 20 4c 44 52 42  20 52 34 2c 73 70 72 69  |3.. LDRB R4,spri|
00009c10  74 65 5f 77 69 64 74 68  0d 34 08 0e 20 43 4d 50  |te_width.4.. CMP|
00009c20  20 52 31 2c 52 32 0d 34  12 17 20 42 47 54 20 75  | R1,R2.4.. BGT u|
00009c30  73 65 72 73 68 69 70 5f  72 69 67 68 74 0d 34 1c  |sership_right.4.|
00009c40  11 20 41 44 44 20 52 31  2c 52 31 2c 52 33 0d 34  |. ADD R1,R1,R3.4|
00009c50  26 0e 20 43 4d 50 20 52  31 2c 52 32 0d 34 30 0f  |&. CMP R1,R2.40.|
00009c60  20 42 4c 54 20 6e 6f 5f  63 6f 6c 0d 34 3a 12 20  | BLT no_col.4:. |
00009c70  42 20 59 5f 63 6f 6c 5f  63 68 65 63 6b 0d 34 44  |B Y_col_check.4D|
00009c80  05 20 0d 34 4e 14 20 2e  75 73 65 72 73 68 69 70  |. .4N. .usership|
00009c90  5f 72 69 67 68 74 0d 34  58 11 20 41 44 44 20 52  |_right.4X. ADD R|
00009ca0  32 2c 52 32 2c 52 34 0d  34 62 0e 20 43 4d 50 20  |2,R2,R4.4b. CMP |
00009cb0  52 31 2c 52 32 0d 34 6c  0f 20 42 47 54 20 6e 6f  |R1,R2.4l. BGT no|
00009cc0  5f 63 6f 6c 0d 34 76 05  20 0d 34 80 11 20 2e 59  |_col.4v. .4.. .Y|
00009cd0  5f 63 6f 6c 5f 63 68 65  63 6b 0d 34 8a 16 20 4c  |_col_check.4.. L|
00009ce0  44 52 20 52 31 2c 59 5f  75 73 65 72 73 68 69 70  |DR R1,Y_usership|
00009cf0  0d 34 94 14 20 4c 44 52  20 52 32 2c 59 5f 73 70  |.4.. LDR R2,Y_sp|
00009d00  72 69 74 65 0d 34 9e 1c  20 4c 44 52 42 20 52 33  |rite.4.. LDRB R3|
00009d10  2c 75 73 65 72 73 68 69  70 5f 68 65 69 67 68 74  |,usership_height|
00009d20  0d 34 a8 1a 20 4c 44 52  42 20 52 34 2c 73 70 72  |.4.. LDRB R4,spr|
00009d30  69 74 65 5f 68 65 69 67  68 74 0d 34 b2 0e 20 43  |ite_height.4.. C|
00009d40  4d 50 20 52 31 2c 52 32  0d 34 bc 17 20 42 4c 54  |MP R1,R2.4.. BLT|
00009d50  20 75 73 65 72 73 68 69  70 5f 6c 6f 77 65 72 0d  | usership_lower.|
00009d60  34 c6 11 20 53 55 42 20  52 31 2c 52 31 2c 52 33  |4.. SUB R1,R1,R3|
00009d70  0d 34 d0 0e 20 43 4d 50  20 52 31 2c 52 32 0d 34  |.4.. CMP R1,R2.4|
00009d80  da 0f 20 42 47 54 20 6e  6f 5f 63 6f 6c 0d 34 e4  |.. BGT no_col.4.|
00009d90  0f 20 42 20 75 63 5f 63  6c 65 61 72 0d 34 ee 05  |. B uc_clear.4..|
00009da0  20 0d 34 f8 14 20 2e 75  73 65 72 73 68 69 70 5f  | .4.. .usership_|
00009db0  6c 6f 77 65 72 0d 35 02  11 20 53 55 42 20 52 32  |lower.5.. SUB R2|
00009dc0  2c 52 32 2c 52 34 0d 35  0c 0e 20 43 4d 50 20 52  |,R2,R4.5.. CMP R|
00009dd0  31 2c 52 32 0d 35 16 0f  20 42 4c 54 20 6e 6f 5f  |1,R2.5.. BLT no_|
00009de0  63 6f 6c 0d 35 20 0e 20  2e 75 63 5f 63 6c 65 61  |col.5 . .uc_clea|
00009df0  72 0d 35 2a 05 20 0d 35  34 0e 20 4d 4f 56 20 52  |r.5*. .54. MOV R|
00009e00  30 2c 23 30 0d 35 3e 05  20 0d 35 48 0c 20 2e 6e  |0,#0.5>. .5H. .n|
00009e10  6f 5f 63 6f 6c 0d 35 52  1b 20 4c 44 4d 46 44 20  |o_col.5R. LDMFD |
00009e20  52 31 33 21 2c 7b 52 31  2d 52 34 2c 52 31 34 7d  |R13!,{R1-R4,R14}|
00009e30  0d 35 5c 1b 20 43 4d 50  20 52 30 2c 23 30 20 3a  |.5\. CMP R0,#0 :|
00009e40  20 42 4e 45 20 63 63 6f  76 65 72 0d 35 66 05 20  | BNE ccover.5f. |
00009e50  0d 35 70 59 20 53 54 4d  46 44 20 52 31 33 21 2c  |.5pY STMFD R13!,|
00009e60  7b 52 31 2d 52 34 2c 52  31 34 7d 20 3a 20 4d 4f  |{R1-R4,R14} : MO|
00009e70  56 20 52 31 30 2c 23 34  20 3a 20 4c 44 52 20 52  |V R10,#4 : LDR R|
00009e80  31 2c 5b 52 32 5d 20 3a  20 42 4c 20 64 72 61 77  |1,[R2] : BL draw|
00009e90  20 3a 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  | : LDMFD R13!,{R|
00009ea0  31 2d 52 34 2c 52 31 34  7d 0d 35 7a 33 20 4d 4f  |1-R4,R14}.5z3 MO|
00009eb0  56 20 52 31 31 2c 23 34  20 3a 20 53 54 52 42 20  |V R11,#4 : STRB |
00009ec0  52 31 31 2c 5b 52 32 2c  23 39 5d 20 20 20 20 3b  |R11,[R2,#9]    ;|
00009ed0  20 20 20 65 78 70 6c 6f  73 69 6f 6e 0d 35 84 38  |   explosion.5.8|
00009ee0  20 4d 4f 56 20 52 31 31  2c 23 31 35 3a 20 53 54  | MOV R11,#15: ST|
00009ef0  52 42 20 52 31 31 2c 5b  52 32 2c 23 31 30 5d 20  |RB R11,[R2,#10] |
00009f00  20 20 3b 20 20 20 65 78  70 6c 6f 73 69 6f 6e 20  |  ;   explosion |
00009f10  74 69 6d 65 0d 35 8e 4e  20 4d 4f 56 20 52 31 31  |time.5.N MOV R11|
00009f20  2c 23 30 20 3a 20 53 54  52 42 20 52 31 31 2c 5b  |,#0 : STRB R11,[|
00009f30  52 32 2c 23 31 31 5d 20  20 20 3b 20 20 20 66 72  |R2,#11]   ;   fr|
00009f40  61 6d 65 20 70 6f 69 6e  74 65 72 20 28 20 34 38  |ame pointer ( 48|
00009f50  20 62 79 74 65 73 20 65  61 63 68 20 66 72 61 6d  | bytes each fram|
00009f60  65 29 0d 35 98 7f 20 4c  44 52 42 20 52 31 31 2c  |e).5.. LDRB R11,|
00009f70  6c 61 73 74 5f 73 70 72  69 74 65 20 3a 20 41 44  |last_sprite : AD|
00009f80  44 20 52 31 31 2c 52 31  31 2c 23 31 20 3a 20 53  |D R11,R11,#1 : S|
00009f90  54 52 42 20 52 31 31 2c  6c 61 73 74 5f 73 70 72  |TRB R11,last_spr|
00009fa0  69 74 65 20 20 20 3b 20  20 20 20 20 20 20 20 20  |ite   ;         |
00009fb0  20 20 20 20 20 20 20 43  68 65 63 6b 20 66 6f 72  |       Check for|
00009fc0  20 65 6e 64 20 6f 66 20  70 61 74 74 65 72 6e 20  | end of pattern |
00009fd0  2d 20 66 6f 72 20 6c 61  73 74 20 73 70 72 69 74  |- for last sprit|
00009fe0  65 0d 35 a2 94 20 53 54  4d 46 44 20 52 31 33 21  |e.5.. STMFD R13!|
00009ff0  2c 7b 52 30 2d 52 38 2c  52 31 34 7d 20 3a 20 4c  |,{R0-R8,R14} : L|
0000a000  44 52 20 52 31 2c 5b 52  32 5d 20 3a 20 42 4c 20  |DR R1,[R2] : BL |
0000a010  65 78 70 6c 6f 73 69 6f  6e 20 3a 20 42 4c 20 69  |explosion : BL i|
0000a020  6e 63 72 65 61 73 65 5f  73 63 6f 72 65 20 3a 20  |ncrease_score : |
0000a030  42 4c 20 69 6e 69 74 69  61 6c 69 73 65 5f 70 61  |BL initialise_pa|
0000a040  72 74 69 63 6c 65 73 20  3a 20 42 4c 20 70 61 72  |rticles : BL par|
0000a050  74 69 63 6c 65 5f 73 70  72 65 61 64 20 3a 20 4c  |ticle_spread : L|
0000a060  44 4d 46 44 20 52 31 33  21 2c 7b 52 30 2d 52 38  |DMFD R13!,{R0-R8|
0000a070  2c 52 31 34 7d 0d 35 ac  1d 20 4d 4f 56 20 52 30  |,R14}.5.. MOV R0|
0000a080  2c 23 31 20 3a 20 53 54  52 42 20 52 30 2c 64 65  |,#1 : STRB R0,de|
0000a090  61 64 0d 35 b6 66 20 4d  4f 56 20 52 30 2c 23 34  |ad.5.f MOV R0,#4|
0000a0a0  3a 4d 4f 56 20 52 31 2c  23 31 35 3a 52 53 42 20  |:MOV R1,#15:RSB |
0000a0b0  52 31 2c 52 31 2c 23 30  3a 4d 4f 56 20 52 32 2c  |R1,R1,#0:MOV R2,|
0000a0c0  23 31 3a 4d 4f 56 20 52  33 2c 23 32 35 3a 53 57  |#1:MOV R3,#25:SW|
0000a0d0  49 20 22 53 6f 75 6e 64  5f 43 6f 6e 74 72 6f 6c  |I "Sound_Control|
0000a0e0  22 20 20 20 20 20 20 3b  20 20 75 73 65 72 73 68  |"      ;  usersh|
0000a0f0  69 70 20 73 6f 75 6e 64  0d 35 c0 4d 20 4d 4f 56  |ip sound.5.M MOV|
0000a100  20 52 31 35 2c 52 31 34  20 20 20 20 20 3b 20 20  | R15,R14     ;  |
0000a110  20 75 73 65 72 73 68 69  70 20 69 73 20 64 65 61  | usership is dea|
0000a120  64 20 73 6f 20 61 64 64  69 74 69 6f 6e 61 6c 20  |d so additional |
0000a130  63 6f 6c 6c 69 73 69 6f  6e 73 20 69 6d 70 6f 73  |collisions impos|
0000a140  73 69 62 6c 65 0d 35 ca  0c 20 2e 63 63 6f 76 65  |sible.5.. .ccove|
0000a150  72 0d 35 d4 1f 20 41 44  44 20 52 32 2c 52 32 2c  |r.5.. ADD R2,R2,|
0000a160  23 31 32 3a 41 44 44 20  52 33 2c 52 33 2c 23 31  |#12:ADD R3,R3,#1|
0000a170  0d 35 de 1b 20 43 4d 50  20 52 33 2c 52 31 20 3a  |.5.. CMP R3,R1 :|
0000a180  20 42 4e 45 20 63 63 6c  6f 6f 70 0d 35 e8 04 0d  | BNE ccloop.5...|
0000a190  35 f2 10 20 4d 4f 56 20  52 31 35 2c 52 31 34 0d  |5.. MOV R15,R14.|
0000a1a0  35 fc 04 0d 36 06 16 20  2e 6c 6f 61 64 5f 6c 61  |5...6.. .load_la|
0000a1b0  73 74 5f 73 70 72 69 74  65 0d 36 10 19 20 4c 44  |st_sprite.6.. LD|
0000a1c0  52 42 20 52 31 31 2c 6c  61 73 74 5f 73 70 72 69  |RB R11,last_spri|
0000a1d0  74 65 0d 36 1a 10 20 4d  4f 56 20 52 31 35 2c 52  |te.6.. MOV R15,R|
0000a1e0  31 34 0d 36 24 05 20 0d  36 2e 17 20 2e 73 74 6f  |14.6$. .6.. .sto|
0000a1f0  72 65 5f 6c 61 73 74 5f  73 70 72 69 74 65 0d 36  |re_last_sprite.6|
0000a200  38 19 20 53 54 52 42 20  52 31 31 2c 6c 61 73 74  |8. STRB R11,last|
0000a210  5f 73 70 72 69 74 65 0d  36 42 10 20 4d 4f 56 20  |_sprite.6B. MOV |
0000a220  52 31 35 2c 52 31 34 0d  36 4c 05 20 0d 36 56 18  |R15,R14.6L. .6V.|
0000a230  20 2e 6c 6f 61 64 5f 6e  6f 5f 6f 66 5f 73 70 72  | .load_no_of_spr|
0000a240  69 74 65 73 0d 36 60 1b  20 4c 44 52 42 20 52 31  |ites.6`. LDRB R1|
0000a250  30 2c 6e 6f 5f 6f 66 5f  73 70 72 69 74 65 73 0d  |0,no_of_sprites.|
0000a260  36 6a 10 20 4d 4f 56 20  52 31 35 2c 52 31 34 0d  |6j. MOV R15,R14.|
0000a270  36 74 05 20 0d 36 7e 05  20 0d 36 88 4d 20 2e 6e  |6t. .6~. .6.M .n|
0000a280  6f 5f 6f 66 5f 73 70 72  69 74 65 73 20 45 51 55  |o_of_sprites EQU|
0000a290  42 20 35 30 20 20 20 20  3b 20 74 6f 74 61 6c 20  |B 50    ; total |
0000a2a0  73 70 72 69 74 65 73 20  69 6e 20 70 61 74 74 65  |sprites in patte|
0000a2b0  72 6e 20 3d 20 6e 6f 5f  6f 66 5f 73 70 72 69 74  |rn = no_of_sprit|
0000a2c0  65 73 20 2d 20 31 0d 36  92 18 20 2e 6c 61 73 74  |es - 1.6.. .last|
0000a2d0  5f 73 70 72 69 74 65 20  45 51 55 42 20 30 0d 36  |_sprite EQUB 0.6|
0000a2e0  9c 43 20 2e 75 73 65 72  73 68 69 70 5f 66 72 61  |.C .usership_fra|
0000a2f0  6d 65 73 20 20 45 51 55  42 20 31 30 20 20 20 20  |mes  EQUB 10    |
0000a300  20 20 20 20 20 3b 20 20  6e 6f 20 6f 66 20 66 72  |     ;  no of fr|
0000a310  61 6d 65 73 20 69 6e 20  65 78 70 6c 6f 73 69 6f  |ames in explosio|
0000a320  6e 0d 36 a6 42 20 2e 75  73 65 72 73 68 69 70 5f  |n.6.B .usership_|
0000a330  74 69 6d 65 72 20 20 20  45 51 55 42 20 36 20 20  |timer   EQUB 6  |
0000a340  20 20 20 20 20 20 20 20  20 3b 20 20 74 69 6d 65  |         ;  time|
0000a350  20 62 65 74 77 65 65 6e  20 65 61 63 68 20 66 72  | between each fr|
0000a360  61 6d 65 0d 36 b0 0a 20  41 4c 49 47 4e 0d 36 ba  |ame.6.. ALIGN.6.|
0000a370  05 20 0d 36 c4 1b 20 2e  6e 65 77 61 64 64 72 20  |. .6.. .newaddr |
0000a380  45 51 55 44 20 26 31 46  45 31 34 36 42 0d 36 ce  |EQUD &1FE146B.6.|
0000a390  1b 20 2e 6f 6c 64 61 64  64 72 20 45 51 55 44 20  |. .oldaddr EQUD |
0000a3a0  26 31 46 45 31 34 36 42  0d 36 d8 05 20 0d 36 e2  |&1FE146B.6.. .6.|
0000a3b0  12 20 2e 6c 6f 61 64 5f  6e 65 77 61 64 64 72 0d  |. .load_newaddr.|
0000a3c0  36 ec 13 20 4c 44 52 20  52 31 2c 6e 65 77 61 64  |6.. LDR R1,newad|
0000a3d0  64 72 0d 36 f6 10 20 4d  4f 56 20 52 31 35 2c 52  |dr.6.. MOV R15,R|
0000a3e0  31 34 0d 37 00 05 20 0d  37 0a 19 20 2e 64 69 72  |14.7.. .7.. .dir|
0000a3f0  65 63 74 69 76 65 5f 73  68 69 70 73 64 61 74 61  |ective_shipsdata|
0000a400  0d 37 14 15 20 41 44 52  20 52 33 2c 73 68 69 70  |.7.. ADR R3,ship|
0000a410  73 64 61 74 61 0d 37 1e  10 20 4d 4f 56 20 52 31  |sdata.7.. MOV R1|
0000a420  35 2c 52 31 34 0d 37 28  05 20 0d 37 32 13 20 3b  |5,R14.7(. .72. ;|
0000a430  20 20 20 53 68 69 70 73  20 44 61 74 61 0d 37 3c  |   Ships Data.7<|
0000a440  0f 20 2e 73 68 69 70 73  64 61 74 61 0d 37 46 22  |. .shipsdata.7F"|
0000a450  20 45 51 55 44 20 26 30  30 30 33 30 30 30 30 3a  | EQUD &00030000:|
0000a460  45 51 55 44 20 26 30 30  30 30 33 30 30 30 0d 37  |EQUD &00003000.7|
0000a470  50 22 20 45 51 55 44 20  26 30 30 30 33 30 30 30  |P" EQUD &0003000|
0000a480  30 3a 45 51 55 44 20 26  30 30 30 30 33 30 30 30  |0:EQUD &00003000|
0000a490  0d 37 5a 22 20 45 51 55  44 20 26 30 30 30 33 30  |.7Z" EQUD &00030|
0000a4a0  30 30 30 3a 45 51 55 44  20 26 30 30 30 30 33 30  |000:EQUD &000030|
0000a4b0  30 30 0d 37 64 22 20 45  51 55 44 20 26 30 30 30  |00.7d" EQUD &000|
0000a4c0  33 33 30 30 30 3a 45 51  55 44 20 26 30 30 30 33  |33000:EQUD &0003|
0000a4d0  33 30 30 30 0d 37 6e 22  20 45 51 55 44 20 26 30  |3000.7n" EQUD &0|
0000a4e0  30 30 33 33 30 30 30 3a  45 51 55 44 20 26 30 30  |0033000:EQUD &00|
0000a4f0  30 33 33 30 30 30 0d 37  78 22 20 45 51 55 44 20  |033000.7x" EQUD |
0000a500  26 30 30 30 33 33 33 30  30 3a 45 51 55 44 20 26  |&00033300:EQUD &|
0000a510  30 30 33 33 33 30 30 30  0d 37 82 22 20 45 51 55  |00333000.7." EQU|
0000a520  44 20 26 30 30 30 33 34  33 30 30 3a 45 51 55 44  |D &00034300:EQUD|
0000a530  20 26 30 30 33 34 33 30  30 30 0d 37 8c 22 20 45  | &00343000.7." E|
0000a540  51 55 44 20 26 30 30 30  33 34 33 33 30 3a 45 51  |QUD &00034330:EQ|
0000a550  55 44 20 26 30 33 33 34  33 30 30 30 0d 37 96 22  |UD &03343000.7."|
0000a560  20 45 51 55 44 20 26 33  30 30 33 34 34 33 30 3a  | EQUD &30034430:|
0000a570  45 51 55 44 20 26 30 33  34 34 33 30 30 33 0d 37  |EQUD &03443003.7|
0000a580  a0 22 20 45 51 55 44 20  26 33 30 30 33 34 34 33  |." EQUD &3003443|
0000a590  33 3a 45 51 55 44 20 26  33 33 34 34 33 30 30 33  |3:EQUD &33443003|
0000a5a0  0d 37 aa 22 20 45 51 55  44 20 26 33 30 30 33 34  |.7." EQUD &30034|
0000a5b0  34 34 33 3a 45 51 55 44  20 26 33 34 34 34 33 30  |443:EQUD &344430|
0000a5c0  30 33 0d 37 b4 22 20 45  51 55 44 20 26 33 33 33  |03.7." EQUD &333|
0000a5d0  33 34 34 34 33 3a 45 51  55 44 20 26 33 34 34 34  |34443:EQUD &3444|
0000a5e0  33 33 33 33 0d 37 be 22  20 45 51 55 44 20 26 33  |3333.7." EQUD &3|
0000a5f0  33 33 34 34 34 34 33 3a  45 51 55 44 20 26 33 34  |3344443:EQUD &34|
0000a600  34 34 34 33 33 33 0d 37  c8 22 20 45 51 55 44 20  |444333.7." EQUD |
0000a610  26 30 30 33 33 34 34 33  33 3a 45 51 55 44 20 26  |&00334433:EQUD &|
0000a620  33 33 34 34 33 33 30 30  0d 37 d2 22 20 45 51 55  |33443300.7." EQU|
0000a630  44 20 26 30 30 30 33 33  33 33 30 3a 45 51 55 44  |D &00033330:EQUD|
0000a640  20 26 30 33 33 33 33 30  30 30 0d 37 dc 22 20 45  | &03333000.7." E|
0000a650  51 55 44 20 26 30 30 30  30 33 33 30 30 3a 45 51  |QUD &00003300:EQ|
0000a660  55 44 20 26 30 30 33 33  30 30 30 30 0d 37 e6 05  |UD &00330000.7..|
0000a670  20 0d 37 f0 13 20 2e 73  65 6c 66 5f 64 65 73 74  | .7.. .self_dest|
0000a680  72 75 63 74 0d 37 fa 1b  20 4d 4f 56 20 52 30 2c  |ruct.7.. MOV R0,|
0000a690  23 31 3a 53 54 52 42 20  52 30 2c 64 65 61 64 0d  |#1:STRB R0,dead.|
0000a6a0  38 04 1b 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |8.. STMFD R13!,{|
0000a6b0  52 31 2d 52 38 2c 52 31  34 7d 0d 38 0e 1c 20 42  |R1-R8,R14}.8.. B|
0000a6c0  4c 20 69 6e 69 74 69 61  6c 69 73 65 5f 70 61 72  |L initialise_par|
0000a6d0  74 69 63 6c 65 73 0d 38  18 17 20 42 4c 20 70 61  |ticles.8.. BL pa|
0000a6e0  72 74 69 63 6c 65 5f 73  70 72 65 61 64 0d 38 22  |rticle_spread.8"|
0000a6f0  1e 20 4d 4f 56 20 52 30  2c 23 31 20 3a 20 53 54  |. MOV R0,#1 : ST|
0000a700  52 42 20 52 30 2c 6c 69  76 65 73 0d 38 2c 20 20  |RB R0,lives.8,  |
0000a710  4d 4f 56 20 52 30 2c 23  33 32 20 3a 20 53 54 52  |MOV R0,#32 : STR|
0000a720  42 20 52 30 2c 43 6c 69  76 65 73 0d 38 36 22 20  |B R0,Clives.86" |
0000a730  4d 4f 56 20 52 30 2c 23  34 39 20 3a 20 53 54 52  |MOV R0,#49 : STR|
0000a740  42 20 52 30 2c 43 6c 69  76 65 73 2b 31 0d 38 40  |B R0,Clives+1.8@|
0000a750  66 20 4d 4f 56 20 52 30  2c 23 34 3a 4d 4f 56 20  |f MOV R0,#4:MOV |
0000a760  52 31 2c 23 31 35 3a 52  53 42 20 52 31 2c 52 31  |R1,#15:RSB R1,R1|
0000a770  2c 23 30 3a 4d 4f 56 20  52 32 2c 23 31 3a 4d 4f  |,#0:MOV R2,#1:MO|
0000a780  56 20 52 33 2c 23 32 35  3a 53 57 49 20 22 53 6f  |V R3,#25:SWI "So|
0000a790  75 6e 64 5f 43 6f 6e 74  72 6f 6c 22 20 20 20 20  |und_Control"    |
0000a7a0  20 20 3b 20 20 75 73 65  72 73 68 69 70 20 73 6f  |  ;  usership so|
0000a7b0  75 6e 64 0d 38 4a 1b 20  4c 44 4d 46 44 20 52 31  |und.8J. LDMFD R1|
0000a7c0  33 21 2c 7b 52 31 2d 52  38 2c 52 31 35 7d 0d 38  |3!,{R1-R8,R15}.8|
0000a7d0  54 04 0d 38 5e 18 20 2e  75 73 65 72 73 68 69 70  |T..8^. .usership|
0000a7e0  5f 65 78 70 6c 6f 73 69  6f 6e 0d 38 68 1c 20 4c  |_explosion.8h. L|
0000a7f0  44 52 42 20 52 31 2c 75  73 65 72 73 68 69 70 5f  |DRB R1,usership_|
0000a800  66 72 61 6d 65 73 0d 38  72 27 20 43 4d 50 20 52  |frames.8r' CMP R|
0000a810  31 2c 23 30 20 20 20 20  20 3a 20 42 45 51 20 6e  |1,#0     : BEQ n|
0000a820  6f 5f 6d 6f 72 65 5f 66  72 61 6d 65 73 0d 38 7c  |o_more_frames.8||
0000a830  1b 20 4c 44 52 42 20 52  32 2c 75 73 65 72 73 68  |. LDRB R2,usersh|
0000a840  69 70 5f 74 69 6d 65 72  0d 38 86 28 20 43 4d 50  |ip_timer.8.( CMP|
0000a850  20 52 32 2c 23 30 20 20  20 20 20 3a 20 42 4e 45  | R2,#0     : BNE|
0000a860  20 64 65 63 72 65 6d 65  6e 74 5f 74 69 6d 65 72  | decrement_timer|
0000a870  0d 38 90 2b 20 4d 4f 56  20 52 32 2c 23 36 20 20  |.8.+ MOV R2,#6  |
0000a880  20 20 20 3a 20 53 54 52  42 20 52 32 2c 75 73 65  |   : STRB R2,use|
0000a890  72 73 68 69 70 5f 74 69  6d 65 72 0d 38 9a 2c 20  |rship_timer.8., |
0000a8a0  53 55 42 53 20 52 31 2c  52 31 2c 23 31 20 3a 20  |SUBS R1,R1,#1 : |
0000a8b0  53 54 52 42 20 52 31 2c  75 73 65 72 73 68 69 70  |STRB R1,usership|
0000a8c0  5f 66 72 61 6d 65 73 0d  38 a4 05 20 0d 38 ae 43  |_frames.8.. .8.C|
0000a8d0  20 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 38 2c  | STMFD R13!,{R8,|
0000a8e0  52 31 34 7d 20 3a 20 42  4c 20 70 61 72 74 69 63  |R14} : BL partic|
0000a8f0  6c 65 5f 73 70 72 65 61  64 20 3a 20 4c 44 4d 46  |le_spread : LDMF|
0000a900  44 20 52 31 33 21 2c 7b  52 38 2c 52 31 34 7d 0d  |D R13!,{R8,R14}.|
0000a910  38 b8 04 0d 38 c2 11 20  42 20 6e 65 78 74 5f 66  |8...8.. B next_f|
0000a920  72 61 6d 65 0d 38 cc 15  20 2e 64 65 63 72 65 6d  |rame.8.. .decrem|
0000a930  65 6e 74 5f 74 69 6d 65  72 0d 38 d6 2a 20 53 55  |ent_timer.8.* SU|
0000a940  42 20 52 32 2c 52 32 2c  23 31 20 3a 20 53 54 52  |B R2,R2,#1 : STR|
0000a950  42 20 52 32 2c 75 73 65  72 73 68 69 70 5f 74 69  |B R2,usership_ti|
0000a960  6d 65 72 0d 38 e0 11 20  42 20 6e 65 78 74 5f 66  |mer.8.. B next_f|
0000a970  72 61 6d 65 0d 38 ea 14  20 2e 6e 6f 5f 6d 6f 72  |rame.8.. .no_mor|
0000a980  65 5f 66 72 61 6d 65 73  0d 38 f4 60 20 53 54 4d  |e_frames.8.` STM|
0000a990  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 20 3a 20  |FD R13!,{R14} : |
0000a9a0  42 4c 20 6c 6f 61 64 5f  77 61 76 65 5f 66 69 6e  |BL load_wave_fin|
0000a9b0  69 73 68 65 64 20 3a 20  4c 44 4d 46 44 20 52 31  |ished : LDMFD R1|
0000a9c0  33 21 2c 7b 52 31 34 7d  20 3a 20 43 4d 50 20 52  |3!,{R14} : CMP R|
0000a9d0  31 2c 23 31 20 3a 20 42  45 51 20 63 6f 6e 74 69  |1,#1 : BEQ conti|
0000a9e0  6e 75 65 5f 70 6c 61 79  0d 38 fe 1f 20 43 4d 50  |nue_play.8.. CMP|
0000a9f0  20 52 38 2c 23 30 20 3a  20 42 45 51 20 6e 65 78  | R8,#0 : BEQ nex|
0000aa00  74 5f 66 72 61 6d 65 0d  39 08 29 20 41 44 44 20  |t_frame.9.) ADD |
0000aa10  52 31 2c 52 38 2c 23 31  20 3a 20 53 54 52 42 20  |R1,R8,#1 : STRB |
0000aa20  52 31 2c 6e 6f 5f 6f 66  5f 73 70 72 69 74 65 73  |R1,no_of_sprites|
0000aa30  0d 39 12 11 20 42 20 6e  65 78 74 5f 66 72 61 6d  |.9.. B next_fram|
0000aa40  65 0d 39 1c 13 20 2e 63  6f 6e 74 69 6e 75 65 5f  |e.9.. .continue_|
0000aa50  70 6c 61 79 0d 39 26 2d  20 4c 44 52 42 20 52 31  |play.9&- LDRB R1|
0000aa60  2c 64 65 61 64 20 3a 20  43 4d 50 20 52 31 2c 23  |,dead : CMP R1,#|
0000aa70  30 20 3a 20 42 45 51 20  6e 65 78 74 5f 77 61 76  |0 : BEQ next_wav|
0000aa80  65 0d 39 30 13 20 42 4c  20 6c 69 76 65 73 5f 6d  |e.90. BL lives_m|
0000aa90  69 6e 75 73 0d 39 3a 1e  20 43 4d 50 20 52 31 2c  |inus.9:. CMP R1,|
0000aaa0  23 30 20 3a 20 42 45 51  20 67 61 6d 65 5f 6f 76  |#0 : BEQ game_ov|
0000aab0  65 72 0d 39 44 13 20 42  4c 20 70 6c 6f 74 5f 62  |er.9D. BL plot_b|
0000aac0  6f 72 64 65 72 0d 39 4e  13 20 42 4c 20 70 72 69  |order.9N. BL pri|
0000aad0  6e 74 5f 6c 69 76 65 73  0d 39 58 13 20 42 4c 20  |nt_lives.9X. BL |
0000aae0  70 72 69 6e 74 5f 73 63  6f 72 65 0d 39 62 11 20  |print_score.9b. |
0000aaf0  42 4c 20 70 6c 6f 74 5f  77 61 76 65 0d 39 6c 15  |BL plot_wave.9l.|
0000ab00  20 42 4c 20 69 6e 69 74  69 61 6c 5f 73 74 61 72  | BL initial_star|
0000ab10  73 0d 39 76 1f 20 4d 4f  56 20 52 30 2c 23 30 20  |s.9v. MOV R0,#0 |
0000ab20  3a 20 42 4c 20 72 65 70  65 61 74 5f 77 61 76 65  |: BL repeat_wave|
0000ab30  0d 39 80 13 20 4c 44 52  20 52 31 2c 6e 65 77 61  |.9.. LDR R1,newa|
0000ab40  64 64 72 0d 39 8a 10 20  42 4c 20 75 73 65 72 73  |ddr.9.. BL users|
0000ab50  68 69 70 0d 39 94 1d 20  4d 4f 56 20 52 31 2c 23  |hip.9.. MOV R1,#|
0000ab60  30 20 3a 20 53 54 52 42  20 52 31 2c 64 65 61 64  |0 : STRB R1,dead|
0000ab70  0d 39 9e 10 20 4d 4f 56  20 52 31 2c 23 33 30 30  |.9.. MOV R1,#300|
0000ab80  0d 39 a8 0a 20 2e 77 61  69 74 0d 39 b2 18 20 53  |.9.. .wait.9.. S|
0000ab90  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 2c 52 31  |TMFD R13!,{R1,R1|
0000aba0  34 7d 0d 39 bc 12 20 42  4c 20 6d 6f 76 65 5f 73  |4}.9.. BL move_s|
0000abb0  74 61 72 73 0d 39 c6 16  20 42 4c 20 63 68 61 6e  |tars.9.. BL chan|
0000abc0  67 65 5f 70 61 6c 65 74  74 65 0d 39 d0 33 20 42  |ge_palette.9.3 B|
0000abd0  4c 20 6c 6f 61 64 5f 6e  6f 5f 6f 66 5f 62 75 6c  |L load_no_of_bul|
0000abe0  6c 65 74 73 20 3a 20 43  4d 50 20 52 32 2c 23 30  |lets : CMP R2,#0|
0000abf0  20 3a 20 42 4c 4e 45 20  69 6e 6e 65 72 0d 39 da  | : BLNE inner.9.|
0000ac00  2e 20 4d 4f 56 20 52 35  2c 23 34 30 30 20 3a 20  |. MOV R5,#400 : |
0000ac10  42 4c 20 73 6c 6f 77 31  20 3a 20 42 4c 20 74 65  |BL slow1 : BL te|
0000ac20  73 74 5f 6b 65 79 70 72  65 73 73 0d 39 e4 18 20  |st_keypress.9.. |
0000ac30  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 2c 52  |LDMFD R13!,{R1,R|
0000ac40  31 34 7d 0d 39 ee 1d 20  53 55 42 53 20 52 31 2c  |14}.9.. SUBS R1,|
0000ac50  52 31 2c 23 31 20 3a 20  42 4e 45 20 77 61 69 74  |R1,#1 : BNE wait|
0000ac60  0d 39 f8 1f 20 4d 4f 56  20 52 30 2c 23 31 20 3a  |.9.. MOV R0,#1 :|
0000ac70  20 42 4c 20 72 65 70 65  61 74 5f 77 61 76 65 0d  | BL repeat_wave.|
0000ac80  3a 02 0e 20 42 20 64 69  73 70 6c 61 79 0d 3a 0c  |:.. B display.:.|
0000ac90  10 20 2e 6e 65 78 74 5f  66 72 61 6d 65 0d 3a 16  |. .next_frame.:.|
0000aca0  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 3a 20  |. MOV R15,R14.: |
0000acb0  04 0d 3a 2a 10 20 2e 6c  69 76 65 73 5f 70 6c 75  |..:*. .lives_plu|
0000acc0  73 0d 3a 34 37 20 4c 44  52 42 20 52 30 2c 43 6c  |s.:47 LDRB R0,Cl|
0000acd0  69 76 65 73 2b 31 20 3a  20 41 44 44 20 52 30 2c  |ives+1 : ADD R0,|
0000ace0  52 30 2c 23 31 20 3a 20  53 54 52 42 20 52 30 2c  |R0,#1 : STRB R0,|
0000acf0  43 6c 69 76 65 73 2b 31  0d 3a 3e 1f 20 43 4d 50  |Clives+1.:>. CMP|
0000ad00  20 52 30 2c 23 35 38 20  3a 20 42 4e 45 20 70 6c  | R0,#58 : BNE pl|
0000ad10  75 73 5f 64 6f 6e 65 0d  3a 48 22 20 4d 4f 56 20  |us_done.:H" MOV |
0000ad20  52 30 2c 23 34 38 20 3a  20 53 54 52 42 20 52 30  |R0,#48 : STRB R0|
0000ad30  2c 43 6c 69 76 65 73 2b  31 0d 3a 52 20 20 4c 44  |,Clives+1.:R  LD|
0000ad40  52 42 20 52 30 2c 43 6c  69 76 65 73 20 3a 20 43  |RB R0,Clives : C|
0000ad50  4d 50 20 52 30 2c 23 33  32 0d 3a 5c 21 20 ec 51  |MP R0,#32.:\! .Q|
0000ad60  20 52 30 2c 23 34 39 20  3a 20 53 54 52 45 51 42  | R0,#49 : STREQB|
0000ad70  20 52 30 2c 43 6c 69 76  65 73 0d 3a 66 26 20 41  | R0,Clives.:f& A|
0000ad80  44 44 4e 45 20 52 30 2c  52 30 2c 23 31 20 3a 20  |DDNE R0,R0,#1 : |
0000ad90  53 54 52 4e 45 42 20 52  30 2c 43 6c 69 76 65 73  |STRNEB R0,Clives|
0000ada0  0d 3a 70 04 0d 3a 7a 0f  20 2e 70 6c 75 73 5f 64  |.:p..:z. .plus_d|
0000adb0  6f 6e 65 0d 3a 84 31 20  4c 44 52 42 20 52 31 2c  |one.:.1 LDRB R1,|
0000adc0  6c 69 76 65 73 20 3a 20  41 44 44 20 52 31 2c 52  |lives : ADD R1,R|
0000add0  31 2c 23 31 20 3a 20 53  54 52 42 20 52 31 2c 6c  |1,#1 : STRB R1,l|
0000ade0  69 76 65 73 0d 3a 8e 10  20 4d 4f 56 20 52 31 35  |ives.:.. MOV R15|
0000adf0  2c 52 31 34 0d 3a 98 04  0d 3a a2 11 20 2e 6c 69  |,R14.:...:.. .li|
0000ae00  76 65 73 5f 6d 69 6e 75  73 0d 3a ac 37 20 4c 44  |ves_minus.:.7 LD|
0000ae10  52 42 20 52 30 2c 43 6c  69 76 65 73 2b 31 20 3a  |RB R0,Clives+1 :|
0000ae20  20 53 55 42 20 52 30 2c  52 30 2c 23 31 20 3a 20  | SUB R0,R0,#1 : |
0000ae30  53 54 52 42 20 52 30 2c  43 6c 69 76 65 73 2b 31  |STRB R0,Clives+1|
0000ae40  0d 3a b6 20 20 43 4d 50  20 52 30 2c 23 34 37 20  |.:.  CMP R0,#47 |
0000ae50  3a 20 42 4e 45 20 6d 69  6e 75 73 5f 64 6f 6e 65  |: BNE minus_done|
0000ae60  0d 3a c0 22 20 4d 4f 56  20 52 30 2c 23 35 37 20  |.:." MOV R0,#57 |
0000ae70  3a 20 53 54 52 42 20 52  30 2c 43 6c 69 76 65 73  |: STRB R0,Clives|
0000ae80  2b 31 0d 3a ca 20 20 4c  44 52 42 20 52 30 2c 43  |+1.:.  LDRB R0,C|
0000ae90  6c 69 76 65 73 20 3a 20  43 4d 50 20 52 30 2c 23  |lives : CMP R0,#|
0000aea0  34 39 0d 3a d4 21 20 ec  51 20 52 30 2c 23 33 32  |49.:.! .Q R0,#32|
0000aeb0  20 3a 20 53 54 52 45 51  42 20 52 30 2c 43 6c 69  | : STREQB R0,Cli|
0000aec0  76 65 73 0d 3a de 26 20  53 55 42 4e 45 20 52 30  |ves.:.& SUBNE R0|
0000aed0  2c 52 30 2c 23 31 20 3a  20 53 54 52 4e 45 42 20  |,R0,#1 : STRNEB |
0000aee0  52 30 2c 43 6c 69 76 65  73 0d 3a e8 04 0d 3a f2  |R0,Clives.:...:.|
0000aef0  10 20 2e 6d 69 6e 75 73  5f 64 6f 6e 65 0d 3a fc  |. .minus_done.:.|
0000af00  31 20 4c 44 52 42 20 52  31 2c 6c 69 76 65 73 20  |1 LDRB R1,lives |
0000af10  3a 20 53 55 42 20 52 31  2c 52 31 2c 23 31 20 3a  |: SUB R1,R1,#1 :|
0000af20  20 53 54 52 42 20 52 31  2c 6c 69 76 65 73 0d 3b  | STRB R1,lives.;|
0000af30  06 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 3b  |.. MOV R15,R14.;|
0000af40  10 04 0d 3b 1a 11 20 2e  70 72 69 6e 74 5f 6c 69  |...;.. .print_li|
0000af50  76 65 73 0d 3b 24 10 20  53 57 49 20 26 31 30 30  |ves.;$. SWI &100|
0000af60  2b 31 38 0d 3b 2e 0e 20  4d 4f 56 20 52 30 2c 23  |+18.;.. MOV R0,#|
0000af70  33 0d 3b 38 14 20 53 57  49 20 22 4f 53 5f 57 72  |3.;8. SWI "OS_Wr|
0000af80  69 74 65 43 22 0d 3b 42  10 20 4d 4f 56 20 52 30  |iteC".;B. MOV R0|
0000af90  2c 23 31 33 36 0d 3b 4c  14 20 53 57 49 20 22 4f  |,#136.;L. SWI "O|
0000afa0  53 5f 57 72 69 74 65 43  22 0d 3b 56 10 20 53 57  |S_WriteC".;V. SW|
0000afb0  49 20 26 31 30 30 2b 31  38 0d 3b 60 0e 20 4d 4f  |I &100+18.;`. MO|
0000afc0  56 20 52 30 2c 23 30 0d  3b 6a 14 20 53 57 49 20  |V R0,#0.;j. SWI |
0000afd0  22 4f 53 5f 57 72 69 74  65 43 22 0d 3b 74 0e 20  |"OS_WriteC".;t. |
0000afe0  4d 4f 56 20 52 30 2c 23  33 0d 3b 7e 14 20 53 57  |MOV R0,#3.;~. SW|
0000aff0  49 20 22 4f 53 5f 57 72  69 74 65 43 22 0d 3b 88  |I "OS_WriteC".;.|
0000b000  0e 20 4d 4f 56 20 52 30  2c 23 34 0d 3b 92 10 20  |. MOV R0,#4.;.. |
0000b010  4d 4f 56 20 52 31 2c 23  31 37 32 0d 3b 9c 10 20  |MOV R1,#172.;.. |
0000b020  4d 4f 56 20 52 32 2c 23  38 38 30 0d 3b a6 12 20  |MOV R2,#880.;.. |
0000b030  53 57 49 20 22 4f 53 5f  50 6c 6f 74 22 0d 3b b0  |SWI "OS_Plot".;.|
0000b040  12 20 41 44 52 20 52 30  2c 42 6c 69 76 65 73 0d  |. ADR R0,Blives.|
0000b050  3b ba 14 20 53 57 49 20  22 4f 53 5f 57 72 69 74  |;.. SWI "OS_Writ|
0000b060  65 30 22 0d 3b c4 10 20  4d 4f 56 20 52 31 35 2c  |e0".;.. MOV R15,|
0000b070  52 31 34 0d 3b ce 04 0d  3b d8 13 20 2e 6c 69 76  |R14.;...;.. .liv|
0000b080  65 73 20 20 45 51 55 42  20 33 0d 3b e2 20 20 2e  |es  EQUB 3.;.  .|
0000b090  42 6c 69 76 65 73 20 45  51 55 42 20 31 32 37 20  |Blives EQUB 127 |
0000b0a0  20 3a 45 51 55 42 20 31  32 37 0d 3b ec 1e 20 2e  | :EQUB 127.;.. .|
0000b0b0  43 6c 69 76 65 73 20 45  51 55 53 20 22 20 33 22  |Clives EQUS " 3"|
0000b0c0  20 3a 45 51 55 42 20 30  0d 3b f6 0a 20 41 4c 49  | :EQUB 0.;.. ALI|
0000b0d0  47 4e 0d 3c 00 05 20 0d  3c 0a 11 20 2e 72 65 73  |GN.<.. .<.. .res|
0000b0e0  65 74 5f 6c 69 76 65 73  0d 3c 14 1e 20 4d 4f 56  |et_lives.<.. MOV|
0000b0f0  20 52 31 2c 23 33 20 3a  20 53 54 52 42 20 52 31  | R1,#3 : STRB R1|
0000b100  2c 6c 69 76 65 73 0d 3c  1e 22 20 4d 4f 56 20 52  |,lives.<." MOV R|
0000b110  31 2c 23 35 31 20 3a 20  53 54 52 42 20 52 31 2c  |1,#51 : STRB R1,|
0000b120  43 6c 69 76 65 73 2b 31  0d 3c 28 20 20 4d 4f 56  |Clives+1.<(  MOV|
0000b130  20 52 31 2c 23 33 32 20  3a 20 53 54 52 42 20 52  | R1,#32 : STRB R|
0000b140  31 2c 43 6c 69 76 65 73  0d 3c 32 10 20 4d 4f 56  |1,Clives.<2. MOV|
0000b150  20 52 31 35 2c 52 31 34  0d 3c 3c 04 0d 3c 46 1a  | R15,R14.<<..<F.|
0000b160  20 2e 69 6e 69 74 69 61  6c 69 73 65 5f 70 61 72  | .initialise_par|
0000b170  74 69 63 6c 65 73 0d 3c  50 22 20 4c 44 52 20 52  |ticles.<P" LDR R|
0000b180  31 2c 6e 65 77 61 64 64  72 20 3a 20 41 44 44 20  |1,newaddr : ADD |
0000b190  52 31 2c 52 31 2c 23 31  0d 3c 5a 1f 20 41 44 52  |R1,R1,#1.<Z. ADR|
0000b1a0  20 52 32 2c 70 61 72 74  69 63 6c 65 73 5f 61 64  | R2,particles_ad|
0000b1b0  64 72 65 73 73 65 73 0d  3c 64 0c 20 42 4e 56 20  |dresses.<d. BNV |
0000b1c0  65 6e 64 0d 3c 6e 0f 20  4d 4f 56 20 52 33 2c 23  |end.<n. MOV R3,#|
0000b1d0  31 36 0d 3c 78 0c 20 2e  69 70 6c 6f 6f 70 0d 3c  |16.<x. .iploop.<|
0000b1e0  82 0e 20 4d 4f 56 20 52  34 2c 23 38 0d 3c 8c 0d  |.. MOV R4,#8.<..|
0000b1f0  20 2e 69 70 6c 6f 6f 70  32 0d 3c 96 13 20 53 54  | .iploop2.<.. ST|
0000b200  52 20 52 31 2c 5b 52 32  5d 2c 23 34 0d 3c a0 11  |R R1,[R2],#4.<..|
0000b210  20 41 44 44 20 52 31 2c  52 31 2c 23 31 0d 3c aa  | ADD R1,R1,#1.<.|
0000b220  12 20 53 55 42 53 20 52  34 2c 52 34 2c 23 31 0d  |. SUBS R4,R4,#1.|
0000b230  3c b4 10 20 42 4e 45 20  69 70 6c 6f 6f 70 32 0d  |<.. BNE iploop2.|
0000b240  3c be 13 20 41 44 44 20  52 31 2c 52 31 2c 23 31  |<.. ADD R1,R1,#1|
0000b250  35 32 0d 3c c8 12 20 53  55 42 53 20 52 33 2c 52  |52.<.. SUBS R3,R|
0000b260  33 2c 23 31 0d 3c d2 0f  20 42 4e 45 20 69 70 6c  |3,#1.<.. BNE ipl|
0000b270  6f 6f 70 0d 3c dc 10 20  4d 4f 56 20 52 31 35 2c  |oop.<.. MOV R15,|
0000b280  52 31 34 0d 3c e6 05 20  0d 3c f0 15 20 2e 70 61  |R14.<.. .<.. .pa|
0000b290  72 74 69 63 6c 65 5f 73  70 72 65 61 64 0d 3c fa  |rticle_spread.<.|
0000b2a0  1f 20 41 44 52 20 52 31  2c 70 61 72 74 69 63 6c  |. ADR R1,particl|
0000b2b0  65 73 5f 61 64 64 72 65  73 73 65 73 0d 3d 04 0c  |es_addresses.=..|
0000b2c0  20 42 4e 56 20 65 6e 64  0d 3d 0e 1b 20 41 44 52  | BNV end.=.. ADR|
0000b2d0  20 52 32 2c 70 61 72 74  69 63 6c 65 73 5f 70 61  | R2,particles_pa|
0000b2e0  74 68 73 0d 3d 18 15 20  41 44 52 20 52 33 2c 73  |ths.=.. ADR R3,s|
0000b2f0  68 69 70 73 64 61 74 61  0d 3d 22 10 20 4d 4f 56  |hipsdata.=". MOV|
0000b300  20 52 34 2c 23 31 32 38  0d 3d 2c 0c 20 2e 70 73  | R4,#128.=,. .ps|
0000b310  6c 6f 6f 70 0d 3d 36 14  20 4c 44 52 42 20 52 35  |loop.=6. LDRB R5|
0000b320  2c 5b 52 33 5d 2c 23 31  0d 3d 40 10 20 4c 44 52  |,[R3],#1.=@. LDR|
0000b330  20 52 36 2c 5b 52 31 5d  0d 3d 4a 11 20 4c 44 52  | R6,[R1].=J. LDR|
0000b340  42 20 52 37 2c 5b 52 36  5d 0d 3d 54 0f 20 82 20  |B R7,[R6].=T. . |
0000b350  52 37 2c 52 37 2c 52 35  0d 3d 5e 11 20 53 54 52  |R7,R7,R5.=^. STR|
0000b360  42 20 52 37 2c 5b 52 36  5d 0d 3d 68 13 20 4c 44  |B R7,[R6].=h. LD|
0000b370  52 20 52 38 2c 5b 52 32  5d 2c 23 34 0d 3d 72 11  |R R8,[R2],#4.=r.|
0000b380  20 41 44 44 20 52 36 2c  52 36 2c 52 38 0d 3d 7c  | ADD R6,R6,R8.=||
0000b390  13 20 53 54 52 20 52 36  2c 5b 52 31 5d 2c 23 34  |. STR R6,[R1],#4|
0000b3a0  0d 3d 86 39 20 4c 44 52  42 20 52 37 2c 75 73 65  |.=.9 LDRB R7,use|
0000b3b0  72 73 68 69 70 5f 66 72  61 6d 65 73 20 3a 20 43  |rship_frames : C|
0000b3c0  4d 50 20 52 37 2c 23 30  20 3a 20 42 45 51 20 6c  |MP R7,#0 : BEQ l|
0000b3d0  61 73 74 5f 66 72 61 6d  65 0d 3d 90 11 20 4c 44  |ast_frame.=.. LD|
0000b3e0  52 42 20 52 37 2c 5b 52  36 5d 0d 3d 9a 0f 20 82  |RB R7,[R6].=.. .|
0000b3f0  20 52 37 2c 52 37 2c 52  35 0d 3d a4 11 20 53 54  | R7,R7,R5.=.. ST|
0000b400  52 42 20 52 37 2c 5b 52  36 5d 0d 3d ae 10 20 2e  |RB R7,[R6].=.. .|
0000b410  6c 61 73 74 5f 66 72 61  6d 65 0d 3d b8 12 20 53  |last_frame.=.. S|
0000b420  55 42 53 20 52 34 2c 52  34 2c 23 31 0d 3d c2 0f  |UBS R4,R4,#1.=..|
0000b430  20 42 4e 45 20 70 73 6c  6f 6f 70 0d 3d cc 10 20  | BNE psloop.=.. |
0000b440  4d 4f 56 20 52 31 35 2c  52 31 34 0d 3d d6 05 20  |MOV R15,R14.=.. |
0000b450  0d 3d e0 0f 20 2e 65 78  70 6c 6f 73 69 6f 6e 0d  |.=.. .explosion.|
0000b460  3d ea 22 20 3b 20 20 20  52 31 20 2d 20 61 64 64  |=." ;   R1 - add|
0000b470  72 65 73 73 20 6f 66 20  65 78 70 6c 6f 73 69 6f  |ress of explosio|
0000b480  6e 0d 3d f4 1a 20 41 44  52 20 52 32 2c 65 78 70  |n.=.. ADR R2,exp|
0000b490  6c 6f 73 69 6f 6e 5f 64  61 74 61 0d 3d fe 0b 20  |losion_data.=.. |
0000b4a0  2e 66 72 61 6d 65 0d 3e  08 0f 20 4d 4f 56 20 52  |.frame.>.. MOV R|
0000b4b0  33 2c 23 31 34 0d 3e 12  0d 20 2e 78 5f 65 69 67  |3,#14.>.. .x_eig|
0000b4c0  68 74 0d 3e 1c 0f 20 4d  4f 56 20 52 34 2c 23 31  |ht.>.. MOV R4,#1|
0000b4d0  30 0d 3e 26 0e 20 2e 78  5f 74 77 65 6c 76 65 0d  |0.>&. .x_twelve.|
0000b4e0  3e 30 14 20 4c 44 52 42  20 52 35 2c 5b 52 32 5d  |>0. LDRB R5,[R2]|
0000b4f0  2c 23 31 0d 3e 3a 21 20  4c 44 52 42 20 52 37 2c  |,#1.>:! LDRB R7,|
0000b500  5b 52 31 2c 23 31 5d 20  3a 20 82 20 52 35 2c 52  |[R1,#1] : . R5,R|
0000b510  35 2c 52 37 0d 3e 44 15  20 53 54 52 42 20 52 35  |5,R7.>D. STRB R5|
0000b520  2c 5b 52 31 2c 23 31 5d  21 0d 3e 4e 12 20 53 55  |,[R1,#1]!.>N. SU|
0000b530  42 53 20 52 34 2c 52 34  2c 23 31 0d 3e 58 11 20  |BS R4,R4,#1.>X. |
0000b540  42 4e 45 20 78 5f 74 77  65 6c 76 65 0d 3e 62 33  |BNE x_twelve.>b3|
0000b550  20 41 44 44 20 52 31 2c  52 31 2c 23 31 35 30 20  | ADD R1,R1,#150 |
0000b560  20 20 20 20 20 20 20 20  20 20 3b 20 20 20 31 36  |          ;   16|
0000b570  30 20 70 69 78 65 6c 73  20 61 63 72 6f 73 73 0d  |0 pixels across.|
0000b580  3e 6c 12 20 53 55 42 53  20 52 33 2c 52 33 2c 23  |>l. SUBS R3,R3,#|
0000b590  31 0d 3e 76 10 20 42 4e  45 20 78 5f 65 69 67 68  |1.>v. BNE x_eigh|
0000b5a0  74 0d 3e 80 10 20 4d 4f  56 20 52 31 35 2c 52 31  |t.>.. MOV R15,R1|
0000b5b0  34 0d 3e 8a 05 20 0d 3e  94 19 20 2e 64 69 72 65  |4.>.. .>.. .dire|
0000b5c0  63 74 69 76 65 5f 65 78  70 6c 6f 73 69 6f 6e 0d  |ctive_explosion.|
0000b5d0  3e 9e 1a 20 41 44 52 20  52 32 2c 65 78 70 6c 6f  |>.. ADR R2,explo|
0000b5e0  73 69 6f 6e 5f 64 61 74  61 0d 3e a8 10 20 4d 4f  |sion_data.>.. MO|
0000b5f0  56 20 52 31 35 2c 52 31  34 0d 3e b2 05 20 0d 3e  |V R15,R14.>.. .>|
0000b600  bc 21 20 3b 20 20 20 44  61 74 61 20 66 6f 72 20  |.! ;   Data for |
0000b610  65 78 70 6f 73 69 6f 6e  20 66 72 61 6d 65 73 0d  |exposion frames.|
0000b620  3e c6 14 20 2e 65 78 70  6c 6f 73 69 6f 6e 5f 64  |>.. .explosion_d|
0000b630  61 74 61 0d 3e d0 05 20  0d 3e da 46 20 3b 20 20  |ata.>.. .>.F ;  |
0000b640  20 46 72 61 6d 65 20 4f  6e 65 20 20 20 20 2a 2a  | Frame One    **|
0000b650  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000b670  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 3e  |**************.>|
0000b680  e4 2d 20 45 51 55 44 20  26 30 30 30 30 30 30 30  |.- EQUD &0000000|
0000b690  30 3a 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |0:EQUD &00000000|
0000b6a0  3a 45 51 55 57 20 26 30  30 30 30 0d 3e ee 2d 20  |:EQUW &0000.>.- |
0000b6b0  45 51 55 44 20 26 30 30  30 30 30 30 30 30 3a 45  |EQUD &00000000:E|
0000b6c0  51 55 44 20 26 30 30 30  30 30 30 30 30 3a 45 51  |QUD &00000000:EQ|
0000b6d0  55 57 20 26 30 30 30 30  0d 3e f8 2d 20 45 51 55  |UW &0000.>.- EQU|
0000b6e0  44 20 26 30 30 30 30 30  30 30 30 3a 45 51 55 44  |D &00000000:EQUD|
0000b6f0  20 26 30 30 30 30 30 30  30 30 3a 45 51 55 57 20  | &00000000:EQUW |
0000b700  26 30 30 30 30 0d 3f 02  2d 20 45 51 55 44 20 26  |&0000.?.- EQUD &|
0000b710  30 30 30 30 30 30 30 30  3a 45 51 55 44 20 26 30  |00000000:EQUD &0|
0000b720  30 30 30 31 33 31 33 3a  45 51 55 57 20 26 30 30  |0001313:EQUW &00|
0000b730  30 30 0d 3f 0c 2d 20 45  51 55 44 20 26 31 31 30  |00.?.- EQUD &110|
0000b740  30 30 30 30 30 3a 45 51  55 44 20 26 30 30 30 31  |00000:EQUD &0001|
0000b750  33 31 33 33 3a 45 51 55  57 20 26 30 30 30 30 0d  |3133:EQUW &0000.|
0000b760  3f 16 2d 20 45 51 55 44  20 26 33 31 31 30 30 30  |?.- EQUD &311000|
0000b770  30 30 3a 45 51 55 44 20  26 30 31 33 33 33 33 33  |00:EQUD &0133333|
0000b780  33 3a 45 51 55 57 20 26  30 30 30 30 0d 3f 20 2d  |3:EQUW &0000.? -|
0000b790  20 45 51 55 44 20 26 33  33 31 30 30 30 30 30 3a  | EQUD &33100000:|
0000b7a0  45 51 55 44 20 26 31 33  33 33 33 33 33 33 3a 45  |EQUD &13333333:E|
0000b7b0  51 55 57 20 26 30 30 30  31 0d 3f 2a 2d 20 45 51  |QUW &0001.?*- EQ|
0000b7c0  55 44 20 26 33 33 30 30  30 30 30 30 3a 45 51 55  |UD &33000000:EQU|
0000b7d0  44 20 26 31 33 33 33 33  31 33 33 3a 45 51 55 57  |D &13333133:EQUW|
0000b7e0  20 26 30 30 30 30 0d 3f  34 2d 20 45 51 55 44 20  | &0000.?4- EQUD |
0000b7f0  26 33 31 30 30 30 30 30  30 3a 45 51 55 44 20 26  |&31000000:EQUD &|
0000b800  30 31 33 33 33 33 33 33  3a 45 51 55 57 20 26 30  |01333333:EQUW &0|
0000b810  30 30 30 0d 3f 3e 2d 20  45 51 55 44 20 26 31 30  |000.?>- EQUD &10|
0000b820  30 30 30 30 30 30 3a 45  51 55 44 20 26 30 30 31  |000000:EQUD &001|
0000b830  31 33 33 33 33 3a 45 51  55 57 20 26 30 30 30 30  |13333:EQUW &0000|
0000b840  0d 3f 48 2d 20 45 51 55  44 20 26 30 30 30 30 30  |.?H- EQUD &00000|
0000b850  30 30 30 3a 45 51 55 44  20 26 30 30 30 30 31 33  |000:EQUD &000013|
0000b860  33 30 3a 45 51 55 57 20  26 30 30 30 30 0d 3f 52  |30:EQUW &0000.?R|
0000b870  2d 20 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |- EQUD &00000000|
0000b880  3a 45 51 55 44 20 26 30  30 30 30 30 30 30 30 3a  |:EQUD &00000000:|
0000b890  45 51 55 57 20 26 30 30  30 30 0d 3f 5c 2d 20 45  |EQUW &0000.?\- E|
0000b8a0  51 55 44 20 26 30 30 30  30 30 30 30 30 3a 45 51  |QUD &00000000:EQ|
0000b8b0  55 44 20 26 30 30 30 30  30 30 30 30 3a 45 51 55  |UD &00000000:EQU|
0000b8c0  57 20 26 30 30 30 30 0d  3f 66 2d 20 45 51 55 44  |W &0000.?f- EQUD|
0000b8d0  20 26 30 30 30 30 30 30  30 30 3a 45 51 55 44 20  | &00000000:EQUD |
0000b8e0  26 30 30 30 30 30 30 30  30 3a 45 51 55 57 20 26  |&00000000:EQUW &|
0000b8f0  30 30 30 30 0d 3f 70 05  20 0d 3f 7a 45 20 3b 20  |0000.?p. .?zE ; |
0000b900  20 20 46 72 61 6d 65 20  54 77 6f 20 20 20 20 2a  |  Frame Two    *|
0000b910  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000b930  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 3f  |**************.?|
0000b940  84 2d 20 45 51 55 44 20  26 30 30 30 30 30 30 30  |.- EQUD &0000000|
0000b950  30 3a 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |0:EQUD &00000000|
0000b960  3a 45 51 55 57 20 26 30  30 30 30 0d 3f 8e 2d 20  |:EQUW &0000.?.- |
0000b970  45 51 55 44 20 26 30 30  30 30 30 30 30 30 3a 45  |EQUD &00000000:E|
0000b980  51 55 44 20 26 30 30 30  30 30 30 30 30 3a 45 51  |QUD &00000000:EQ|
0000b990  55 57 20 26 30 30 30 30  0d 3f 98 2d 20 45 51 55  |UW &0000.?.- EQU|
0000b9a0  44 20 26 30 30 30 30 30  30 30 30 3a 45 51 55 44  |D &00000000:EQUD|
0000b9b0  20 26 30 30 30 30 30 30  30 30 3a 45 51 55 57 20  | &00000000:EQUW |
0000b9c0  26 30 30 30 30 0d 3f a2  2d 20 45 51 55 44 20 26  |&0000.?.- EQUD &|
0000b9d0  30 30 30 30 30 30 30 30  3a 45 51 55 44 20 26 30  |00000000:EQUD &0|
0000b9e0  30 30 31 33 33 31 31 3a  45 51 55 57 20 26 30 30  |0013311:EQUW &00|
0000b9f0  30 30 0d 3f ac 2d 20 45  51 55 44 20 26 31 30 30  |00.?.- EQUD &100|
0000ba00  30 30 30 30 30 3a 45 51  55 44 20 26 30 30 31 31  |00000:EQUD &0011|
0000ba10  33 33 33 33 3a 45 51 55  57 20 26 30 30 30 30 0d  |3333:EQUW &0000.|
0000ba20  3f b6 2d 20 45 51 55 44  20 26 33 31 31 30 30 30  |?.- EQUD &311000|
0000ba30  30 30 3a 45 51 55 44 20  26 30 31 33 33 33 33 33  |00:EQUD &0133333|
0000ba40  33 3a 45 51 55 57 20 26  30 30 30 30 0d 3f c0 2d  |3:EQUW &0000.?.-|
0000ba50  20 45 51 55 44 20 26 33  33 31 30 30 30 30 30 3a  | EQUD &33100000:|
0000ba60  45 51 55 44 20 26 31 31  33 33 33 33 33 33 3a 45  |EQUD &11333333:E|
0000ba70  51 55 57 20 26 30 30 30  30 0d 3f ca 2d 20 45 51  |QUW &0000.?.- EQ|
0000ba80  55 44 20 26 33 33 33 31  30 30 30 30 3a 45 51 55  |UD &33310000:EQU|
0000ba90  44 20 26 31 31 33 33 33  33 33 33 3a 45 51 55 57  |D &11333333:EQUW|
0000baa0  20 26 30 30 30 30 0d 3f  d4 2d 20 45 51 55 44 20  | &0000.?.- EQUD |
0000bab0  26 33 31 31 30 30 30 30  30 3a 45 51 55 44 20 26  |&31100000:EQUD &|
0000bac0  30 31 31 33 33 31 33 33  3a 45 51 55 57 20 26 30  |01133133:EQUW &0|
0000bad0  30 30 30 0d 3f de 2d 20  45 51 55 44 20 26 33 31  |000.?.- EQUD &31|
0000bae0  30 30 30 30 30 30 3a 45  51 55 44 20 26 30 30 31  |000000:EQUD &001|
0000baf0  33 33 33 33 33 3a 45 51  55 57 20 26 30 30 30 30  |33333:EQUW &0000|
0000bb00  0d 3f e8 2d 20 45 51 55  44 20 26 31 30 30 30 30  |.?.- EQUD &10000|
0000bb10  30 30 30 3a 45 51 55 44  20 26 30 30 31 31 31 33  |000:EQUD &001113|
0000bb20  33 33 3a 45 51 55 57 20  26 30 30 30 30 0d 3f f2  |33:EQUW &0000.?.|
0000bb30  2d 20 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |- EQUD &00000000|
0000bb40  3a 45 51 55 44 20 26 30  30 30 30 31 31 31 30 3a  |:EQUD &00001110:|
0000bb50  45 51 55 57 20 26 30 30  30 30 0d 3f fc 2d 20 45  |EQUW &0000.?.- E|
0000bb60  51 55 44 20 26 30 30 30  30 30 30 30 30 3a 45 51  |QUD &00000000:EQ|
0000bb70  55 44 20 26 30 30 30 30  30 30 30 30 3a 45 51 55  |UD &00000000:EQU|
0000bb80  57 20 26 30 30 30 30 0d  40 06 2d 20 45 51 55 44  |W &0000.@.- EQUD|
0000bb90  20 26 30 30 30 30 30 30  30 30 3a 45 51 55 44 20  | &00000000:EQUD |
0000bba0  26 30 30 30 30 30 30 30  30 3a 45 51 55 57 20 26  |&00000000:EQUW &|
0000bbb0  30 30 30 30 0d 40 10 05  20 0d 40 1a 45 20 3b 20  |0000.@.. .@.E ; |
0000bbc0  20 20 46 72 61 6d 65 20  54 68 72 65 65 20 20 2a  |  Frame Three  *|
0000bbd0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000bbf0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 40  |**************.@|
0000bc00  24 2d 20 45 51 55 44 20  26 30 30 30 30 30 30 30  |$- EQUD &0000000|
0000bc10  30 3a 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |0:EQUD &00000000|
0000bc20  3a 45 51 55 57 20 26 30  30 30 30 0d 40 2e 2d 20  |:EQUW &0000.@.- |
0000bc30  45 51 55 44 20 26 30 30  30 30 30 30 30 30 3a 45  |EQUD &00000000:E|
0000bc40  51 55 44 20 26 30 30 30  30 30 30 30 30 3a 45 51  |QUD &00000000:EQ|
0000bc50  55 57 20 26 30 30 30 30  0d 40 38 2d 20 45 51 55  |UW &0000.@8- EQU|
0000bc60  44 20 26 30 30 30 30 30  30 30 30 3a 45 51 55 44  |D &00000000:EQUD|
0000bc70  20 26 30 30 30 30 30 31  31 30 3a 45 51 55 57 20  | &00000110:EQUW |
0000bc80  26 30 30 30 30 0d 40 42  2d 20 45 51 55 44 20 26  |&0000.@B- EQUD &|
0000bc90  30 30 30 30 30 30 30 30  3a 45 51 55 44 20 26 30  |00000000:EQUD &0|
0000bca0  30 30 30 31 31 31 31 3a  45 51 55 57 20 26 30 30  |0001111:EQUW &00|
0000bcb0  30 30 0d 40 4c 2d 20 45  51 55 44 20 26 31 31 31  |00.@L- EQUD &111|
0000bcc0  30 30 30 30 30 3a 45 51  55 44 20 26 30 30 31 31  |00000:EQUD &0011|
0000bcd0  33 33 33 33 3a 45 51 55  57 20 26 30 30 30 30 0d  |3333:EQUW &0000.|
0000bce0  40 56 2d 20 45 51 55 44  20 26 33 33 31 31 30 30  |@V- EQUD &331100|
0000bcf0  30 30 3a 45 51 55 44 20  26 30 31 31 33 31 33 33  |00:EQUD &0113133|
0000bd00  33 3a 45 51 55 57 20 26  30 30 30 30 0d 40 60 2d  |3:EQUW &0000.@`-|
0000bd10  20 45 51 55 44 20 26 33  31 31 30 30 30 30 30 3a  | EQUD &31100000:|
0000bd20  45 51 55 44 20 26 31 33  33 33 33 31 31 33 3a 45  |EQUD &13333113:E|
0000bd30  51 55 57 20 26 30 30 30  30 0d 40 6a 2d 20 45 51  |QUW &0000.@j- EQ|
0000bd40  55 44 20 26 33 33 31 31  30 30 30 30 3a 45 51 55  |UD &33110000:EQU|
0000bd50  44 20 26 31 31 31 33 33  33 33 33 3a 45 51 55 57  |D &11133333:EQUW|
0000bd60  20 26 30 30 30 30 0d 40  74 2d 20 45 51 55 44 20  | &0000.@t- EQUD |
0000bd70  26 31 33 33 31 30 30 30  30 3a 45 51 55 44 20 26  |&13310000:EQUD &|
0000bd80  30 30 33 31 33 33 33 33  3a 45 51 55 57 20 26 30  |00313333:EQUW &0|
0000bd90  30 30 30 0d 40 7e 2d 20  45 51 55 44 20 26 33 33  |000.@~- EQUD &33|
0000bda0  31 30 30 30 30 30 3a 45  51 55 44 20 26 30 30 31  |100000:EQUD &001|
0000bdb0  33 33 33 33 31 3a 45 51  55 57 20 26 30 30 30 30  |33331:EQUW &0000|
0000bdc0  0d 40 88 2d 20 45 51 55  44 20 26 31 31 30 30 30  |.@.- EQUD &11000|
0000bdd0  30 30 30 3a 45 51 55 44  20 26 30 30 30 31 31 31  |000:EQUD &000111|
0000bde0  33 33 3a 45 51 55 57 20  26 30 30 30 30 0d 40 92  |33:EQUW &0000.@.|
0000bdf0  2d 20 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |- EQUD &00000000|
0000be00  3a 45 51 55 44 20 26 30  30 30 30 30 31 31 31 3a  |:EQUD &00000111:|
0000be10  45 51 55 57 20 26 30 30  30 30 0d 40 9c 2d 20 45  |EQUW &0000.@.- E|
0000be20  51 55 44 20 26 30 30 30  30 30 30 30 30 3a 45 51  |QUD &00000000:EQ|
0000be30  55 44 20 26 30 30 30 30  30 30 30 30 3a 45 51 55  |UD &00000000:EQU|
0000be40  57 20 26 30 30 30 30 0d  40 a6 2d 20 45 51 55 44  |W &0000.@.- EQUD|
0000be50  20 26 30 30 30 30 30 30  30 30 3a 45 51 55 44 20  | &00000000:EQUD |
0000be60  26 30 30 30 30 30 30 30  30 3a 45 51 55 57 20 26  |&00000000:EQUW &|
0000be70  30 30 30 30 0d 40 b0 05  20 0d 40 ba 45 20 3b 20  |0000.@.. .@.E ; |
0000be80  20 20 46 72 61 6d 65 20  46 6f 75 72 20 20 20 2a  |  Frame Four   *|
0000be90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000beb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 40  |**************.@|
0000bec0  c4 2d 20 45 51 55 44 20  26 30 30 30 30 30 30 30  |.- EQUD &0000000|
0000bed0  30 3a 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |0:EQUD &00000000|
0000bee0  3a 45 51 55 57 20 26 30  30 30 30 0d 40 ce 2d 20  |:EQUW &0000.@.- |
0000bef0  45 51 55 44 20 26 30 30  30 30 30 30 30 30 3a 45  |EQUD &00000000:E|
0000bf00  51 55 44 20 26 30 30 30  31 31 31 33 33 3a 45 51  |QUD &00011133:EQ|
0000bf10  55 57 20 26 30 30 30 30  0d 40 d8 2d 20 45 51 55  |UW &0000.@.- EQU|
0000bf20  44 20 26 30 31 30 30 30  30 30 30 3a 45 51 55 44  |D &01000000:EQUD|
0000bf30  20 26 31 31 31 33 33 33  33 33 3a 45 51 55 57 20  | &11133333:EQUW |
0000bf40  26 30 30 30 30 0d 40 e2  2d 20 45 51 55 44 20 26  |&0000.@.- EQUD &|
0000bf50  33 31 31 30 30 30 30 30  3a 45 51 55 44 20 26 31  |31100000:EQUD &1|
0000bf60  33 33 33 33 33 33 33 3a  45 51 55 57 20 26 30 30  |3333333:EQUW &00|
0000bf70  30 30 0d 40 ec 2d 20 45  51 55 44 20 26 33 31 31  |00.@.- EQUD &311|
0000bf80  30 30 30 30 30 3a 45 51  55 44 20 26 33 33 31 33  |00000:EQUD &3313|
0000bf90  31 33 33 33 3a 45 51 55  57 20 26 30 30 30 31 0d  |1333:EQUW &0001.|
0000bfa0  40 f6 2d 20 45 51 55 44  20 26 31 33 33 33 33 30  |@.- EQUD &133330|
0000bfb0  30 30 3a 45 51 55 44 20  26 33 33 33 31 33 33 33  |00:EQUD &3331333|
0000bfc0  33 3a 45 51 55 57 20 26  30 30 31 31 0d 41 00 2d  |3:EQUW &0011.A.-|
0000bfd0  20 45 51 55 44 20 26 33  31 33 33 33 31 30 30 3a  | EQUD &31333100:|
0000bfe0  45 51 55 44 20 26 33 33  33 33 33 33 33 33 3a 45  |EQUD &33333333:E|
0000bff0  51 55 57 20 26 30 30 33  33 0d 41 0a 2d 20 45 51  |QUW &0033.A.- EQ|
0000c000  55 44 20 26 33 33 33 33  33 33 30 30 3a 45 51 55  |UD &33333300:EQU|
0000c010  44 20 26 33 33 33 33 33  33 33 31 3a 45 51 55 57  |D &33333331:EQUW|
0000c020  20 26 30 30 30 31 0d 41  14 2d 20 45 51 55 44 20  | &0001.A.- EQUD |
0000c030  26 31 33 33 33 33 31 30  30 3a 45 51 55 44 20 26  |&13333100:EQUD &|
0000c040  31 33 33 33 33 31 31 33  3a 45 51 55 57 20 26 30  |13333113:EQUW &0|
0000c050  30 30 33 0d 41 1e 2d 20  45 51 55 44 20 26 33 31  |003.A.- EQUD &31|
0000c060  33 33 31 30 30 30 3a 45  51 55 44 20 26 31 33 33  |331000:EQUD &133|
0000c070  33 33 33 33 33 3a 45 51  55 57 20 26 30 30 30 31  |33333:EQUW &0001|
0000c080  0d 41 28 2d 20 45 51 55  44 20 26 33 33 33 31 31  |.A(- EQUD &33311|
0000c090  30 30 30 3a 45 51 55 44  20 26 31 31 33 33 33 33  |000:EQUD &113333|
0000c0a0  33 33 3a 45 51 55 57 20  26 30 30 30 30 0d 41 32  |33:EQUW &0000.A2|
0000c0b0  2d 20 45 51 55 44 20 26  33 31 31 30 30 30 30 30  |- EQUD &31100000|
0000c0c0  3a 45 51 55 44 20 26 30  33 31 33 31 33 33 33 3a  |:EQUD &03131333:|
0000c0d0  45 51 55 57 20 26 30 30  30 30 0d 41 3c 2d 20 45  |EQUW &0000.A<- E|
0000c0e0  51 55 44 20 26 31 30 30  30 30 30 30 30 3a 45 51  |QUD &10000000:EQ|
0000c0f0  55 44 20 26 30 30 30 31  33 33 33 31 3a 45 51 55  |UD &00013331:EQU|
0000c100  57 20 26 30 30 30 30 0d  41 46 2d 20 45 51 55 44  |W &0000.AF- EQUD|
0000c110  20 26 30 30 30 30 30 30  30 30 3a 45 51 55 44 20  | &00000000:EQUD |
0000c120  26 30 30 30 30 30 30 30  30 3a 45 51 55 57 20 26  |&00000000:EQUW &|
0000c130  30 30 30 30 0d 41 50 05  20 0d 41 5a 44 20 3b 20  |0000.AP. .AZD ; |
0000c140  20 20 46 72 61 6d 65 20  46 69 76 65 20 20 2a 2a  |  Frame Five  **|
0000c150  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c170  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 41 64  |*************.Ad|
0000c180  2d 20 45 51 55 44 20 26  30 30 30 30 30 30 30 30  |- EQUD &00000000|
0000c190  3a 45 51 55 44 20 26 30  30 30 30 30 30 30 30 3a  |:EQUD &00000000:|
0000c1a0  45 51 55 57 20 26 30 30  30 30 0d 41 6e 2d 20 45  |EQUW &0000.An- E|
0000c1b0  51 55 44 20 26 33 31 30  30 30 30 30 30 3a 45 51  |QUD &31000000:EQ|
0000c1c0  55 44 20 26 30 30 30 31  31 31 33 33 3a 45 51 55  |UD &00011133:EQU|
0000c1d0  57 20 26 30 30 30 30 0d  41 78 2d 20 45 51 55 44  |W &0000.Ax- EQUD|
0000c1e0  20 26 31 31 31 30 30 30  30 30 3a 45 51 55 44 20  | &11100000:EQUD |
0000c1f0  26 31 31 31 33 33 33 33  33 3a 45 51 55 57 20 26  |&11133333:EQUW &|
0000c200  30 30 30 30 0d 41 82 2d  20 45 51 55 44 20 26 33  |0000.A.- EQUD &3|
0000c210  33 33 31 31 30 30 30 3a  45 51 55 44 20 26 31 33  |3311000:EQUD &13|
0000c220  33 33 33 33 33 33 3a 45  51 55 57 20 26 30 30 31  |333333:EQUW &001|
0000c230  31 0d 41 8c 2d 20 45 51  55 44 20 26 33 33 33 33  |1.A.- EQUD &3333|
0000c240  33 31 30 30 3a 45 51 55  44 20 26 33 33 31 33 31  |3100:EQUD &33131|
0000c250  33 33 33 3a 45 51 55 57  20 26 30 31 33 31 0d 41  |333:EQUW &0131.A|
0000c260  96 2d 20 45 51 55 44 20  26 31 33 33 33 33 33 31  |.- EQUD &1333331|
0000c270  30 3a 45 51 55 44 20 26  33 33 33 31 33 33 33 33  |0:EQUD &33313333|
0000c280  3a 45 51 55 57 20 26 31  33 31 31 0d 41 a0 2d 20  |:EQUW &1311.A.- |
0000c290  45 51 55 44 20 26 33 31  33 33 33 31 33 30 3a 45  |EQUD &31333130:E|
0000c2a0  51 55 44 20 26 33 33 33  33 33 33 33 33 3a 45 51  |QUD &33333333:EQ|
0000c2b0  55 57 20 26 31 33 33 33  0d 41 aa 2d 20 45 51 55  |UW &1333.A.- EQU|
0000c2c0  44 20 26 33 33 33 33 33  33 33 31 3a 45 51 55 44  |D &33333331:EQUD|
0000c2d0  20 26 33 33 33 33 33 33  33 31 3a 45 51 55 57 20  | &33333331:EQUW |
0000c2e0  26 30 31 33 31 0d 41 b4  2d 20 45 51 55 44 20 26  |&0131.A.- EQUD &|
0000c2f0  31 33 33 33 33 31 33 30  3a 45 51 55 44 20 26 33  |13333130:EQUD &3|
0000c300  33 33 33 33 33 31 33 3a  45 51 55 57 20 26 30 31  |3333313:EQUW &01|
0000c310  31 33 0d 41 be 2d 20 45  51 55 44 20 26 33 31 33  |13.A.- EQUD &313|
0000c320  33 31 33 30 30 3a 45 51  55 44 20 26 33 33 33 33  |31300:EQUD &3333|
0000c330  33 33 33 33 3a 45 51 55  57 20 26 30 31 33 31 0d  |3333:EQUW &0131.|
0000c340  41 c8 2d 20 45 51 55 44  20 26 33 33 33 33 33 33  |A.- EQUD &333333|
0000c350  30 30 3a 45 51 55 44 20  26 33 33 33 33 33 33 33  |00:EQUD &3333333|
0000c360  33 3a 45 51 55 57 20 26  30 33 31 31 0d 41 d2 2d  |3:EQUW &0311.A.-|
0000c370  20 45 51 55 44 20 26 33  33 33 31 30 33 30 30 3a  | EQUD &33310300:|
0000c380  45 51 55 44 20 26 33 33  33 33 33 33 33 31 3a 45  |EQUD &33333331:E|
0000c390  51 55 57 20 26 30 30 31  33 0d 41 dc 2d 20 45 51  |QUW &0013.A.- EQ|
0000c3a0  55 44 20 26 33 33 33 33  30 30 30 30 3a 45 51 55  |UD &33330000:EQU|
0000c3b0  44 20 26 30 33 33 33 31  33 33 31 3a 45 51 55 57  |D &03331331:EQUW|
0000c3c0  20 26 30 30 30 31 0d 41  e6 2d 20 45 51 55 44 20  | &0001.A.- EQUD |
0000c3d0  26 31 30 30 30 30 30 30  30 3a 45 51 55 44 20 26  |&10000000:EQUD &|
0000c3e0  30 30 30 31 31 31 30 30  3a 45 51 55 57 20 26 30  |00011100:EQUW &0|
0000c3f0  30 30 30 0d 41 f0 05 20  0d 41 fa 45 20 3b 20 20  |000.A.. .A.E ;  |
0000c400  20 46 72 61 6d 65 20 53  69 78 20 20 20 20 2a 2a  | Frame Six    **|
0000c410  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c430  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 42 04  |*************.B.|
0000c440  2d 20 45 51 55 44 20 26  33 33 30 30 30 30 30 30  |- EQUD &33000000|
0000c450  3a 45 51 55 44 20 26 30  30 31 31 30 33 31 33 3a  |:EQUD &00110313:|
0000c460  45 51 55 57 20 26 30 30  30 30 0d 42 0e 2d 20 45  |EQUW &0000.B.- E|
0000c470  51 55 44 20 26 33 31 33  31 31 31 30 30 3a 45 51  |QUD &31311100:EQ|
0000c480  55 44 20 26 30 31 31 31  31 31 33 33 3a 45 51 55  |UD &01111133:EQU|
0000c490  57 20 26 30 30 33 33 0d  42 18 2d 20 45 51 55 44  |W &0033.B.- EQUD|
0000c4a0  20 26 33 33 31 33 33 33  31 30 3a 45 51 55 44 20  | &33133310:EQUD |
0000c4b0  26 31 31 31 33 33 33 33  33 3a 45 51 55 57 20 26  |&11133333:EQUW &|
0000c4c0  30 33 31 31 0d 42 22 2d  20 45 51 55 44 20 26 33  |0311.B"- EQUD &3|
0000c4d0  33 33 33 31 33 31 30 3a  45 51 55 44 20 26 31 33  |3331310:EQUD &13|
0000c4e0  33 33 33 33 33 33 3a 45  51 55 57 20 26 33 33 33  |333333:EQUW &333|
0000c4f0  31 0d 42 2c 2d 20 45 51  55 44 20 26 33 33 33 33  |1.B,- EQUD &3333|
0000c500  33 33 33 30 3a 45 51 55  44 20 26 33 33 31 33 31  |3330:EQUD &33131|
0000c510  33 33 33 3a 45 51 55 57  20 26 33 33 33 33 0d 42  |333:EQUW &3333.B|
0000c520  36 2d 20 45 51 55 44 20  26 31 33 33 33 33 33 31  |6- EQUD &1333331|
0000c530  30 3a 45 51 55 44 20 26  33 33 33 31 33 33 33 33  |0:EQUD &33313333|
0000c540  3a 45 51 55 57 20 26 31  33 31 31 0d 42 40 2d 20  |:EQUW &1311.B@- |
0000c550  45 51 55 44 20 26 33 31  33 33 33 33 33 33 3a 45  |EQUD &31333333:E|
0000c560  51 55 44 20 26 33 33 33  33 33 33 33 33 3a 45 51  |QUD &33333333:EQ|
0000c570  55 57 20 26 31 33 33 33  0d 42 4a 2d 20 45 51 55  |UW &1333.BJ- EQU|
0000c580  44 20 26 33 33 33 33 33  33 33 31 3a 45 51 55 44  |D &33333331:EQUD|
0000c590  20 26 33 33 33 33 33 33  33 31 3a 45 51 55 57 20  | &33333331:EQUW |
0000c5a0  26 31 33 33 33 0d 42 54  2d 20 45 51 55 44 20 26  |&1333.BT- EQUD &|
0000c5b0  31 33 33 33 33 31 33 33  3a 45 51 55 44 20 26 33  |13333133:EQUD &3|
0000c5c0  33 33 33 33 33 31 33 3a  45 51 55 57 20 26 30 31  |3333313:EQUW &01|
0000c5d0  33 33 0d 42 5e 2d 20 45  51 55 44 20 26 33 31 33  |33.B^- EQUD &313|
0000c5e0  33 31 33 33 30 3a 45 51  55 44 20 26 33 33 33 33  |31330:EQUD &3333|
0000c5f0  33 33 33 33 3a 45 51 55  57 20 26 30 31 33 33 0d  |3333:EQUW &0133.|
0000c600  42 68 2d 20 45 51 55 44  20 26 33 33 33 33 33 33  |Bh- EQUD &333333|
0000c610  33 30 3a 45 51 55 44 20  26 33 33 33 33 33 33 33  |30:EQUD &3333333|
0000c620  33 3a 45 51 55 57 20 26  33 33 31 31 0d 42 72 2d  |3:EQUW &3311.Br-|
0000c630  20 45 51 55 44 20 26 33  33 33 31 33 33 30 30 3a  | EQUD &33313300:|
0000c640  45 51 55 44 20 26 33 33  33 33 33 33 33 31 3a 45  |EQUD &33333331:E|
0000c650  51 55 57 20 26 33 31 31  33 0d 42 7c 2d 20 45 51  |QUW &3113.B|- EQ|
0000c660  55 44 20 26 33 33 33 33  33 30 30 30 3a 45 51 55  |UD &33333000:EQU|
0000c670  44 20 26 31 33 33 33 31  33 33 31 3a 45 51 55 57  |D &13331331:EQUW|
0000c680  20 26 30 33 31 31 0d 42  86 2d 20 45 51 55 44 20  | &0311.B.- EQUD |
0000c690  26 31 33 30 30 30 30 30  30 3a 45 51 55 44 20 26  |&13000000:EQUD &|
0000c6a0  30 33 31 33 31 31 30 30  3a 45 51 55 57 20 26 30  |03131100:EQUW &0|
0000c6b0  30 30 33 0d 42 90 05 20  0d 42 9a 19 20 2e 64 69  |003.B.. .B.. .di|
0000c6c0  72 65 63 74 69 76 65 5f  70 61 72 74 69 63 6c 65  |rective_particle|
0000c6d0  73 0d 42 a4 1f 20 41 44  52 20 52 31 2c 70 61 72  |s.B.. ADR R1,par|
0000c6e0  74 69 63 6c 65 73 5f 61  64 64 72 65 73 73 65 73  |ticles_addresses|
0000c6f0  0d 42 ae 1b 20 41 44 52  20 52 32 2c 70 61 72 74  |.B.. ADR R2,part|
0000c700  69 63 6c 65 73 5f 70 61  74 68 73 0d 42 b8 10 20  |icles_paths.B.. |
0000c710  4d 4f 56 20 52 31 35 2c  52 31 34 0d 42 c2 05 20  |MOV R15,R14.B.. |
0000c720  0d 42 cc 1e 20 3b 20 55  73 65 72 73 68 69 70 20  |.B.. ; Usership |
0000c730  65 78 70 6c 6f 73 69 6f  6e 20 64 61 74 61 0d 42  |explosion data.B|
0000c740  d6 15 20 2e 70 61 72 74  69 63 6c 65 73 5f 70 61  |.. .particles_pa|
0000c750  74 68 73 0d 42 e0 3f 20  45 51 55 44 20 30 3a 45  |ths.B.? EQUD 0:E|
0000c760  51 55 44 20 30 3a 45 51  55 44 20 31 36 31 3a 45  |QUD 0:EQUD 161:E|
0000c770  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000c780  44 20 2d 31 3a 45 51 55  44 20 30 3a 45 51 55 44  |D -1:EQUD 0:EQUD|
0000c790  20 30 0d 42 ea 42 20 45  51 55 44 20 30 3a 45 51  | 0.B.B EQUD 0:EQ|
0000c7a0  55 44 20 30 3a 45 51 55  44 20 2d 33 32 32 3a 45  |UD 0:EQUD -322:E|
0000c7b0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000c7c0  44 20 2d 31 35 39 3a 45  51 55 44 20 30 3a 45 51  |D -159:EQUD 0:EQ|
0000c7d0  55 44 20 30 0d 42 f4 42  20 45 51 55 44 20 30 3a  |UD 0.B.B EQUD 0:|
0000c7e0  45 51 55 44 20 30 3a 45  51 55 44 20 2d 33 32 32  |EQUD 0:EQUD -322|
0000c7f0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000c800  51 55 44 20 2d 31 35 39  3a 45 51 55 44 20 30 3a  |QUD -159:EQUD 0:|
0000c810  45 51 55 44 20 30 0d 42  fe 46 20 45 51 55 44 20  |EQUD 0.B.F EQUD |
0000c820  30 3a 45 51 55 44 20 2d  31 3a 45 51 55 44 20 2d  |0:EQUD -1:EQUD -|
0000c830  31 35 39 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |159:EQUD 0:EQUD |
0000c840  30 3a 45 51 55 44 20 2d  31 36 30 3a 45 51 55 44  |0:EQUD -160:EQUD|
0000c850  20 2d 31 36 31 3a 45 51  55 44 20 30 0d 43 08 42  | -161:EQUD 0.C.B|
0000c860  20 45 51 55 44 20 30 3a  45 51 55 44 20 31 35 39  | EQUD 0:EQUD 159|
0000c870  3a 45 51 55 44 20 2d 31  3a 45 51 55 44 20 30 3a  |:EQUD -1:EQUD 0:|
0000c880  45 51 55 44 20 30 3a 45  51 55 44 20 2d 31 36 30  |EQUD 0:EQUD -160|
0000c890  3a 45 51 55 44 20 31 3a  45 51 55 44 20 30 0d 43  |:EQUD 1:EQUD 0.C|
0000c8a0  12 43 20 45 51 55 44 20  30 3a 45 51 55 44 20 2d  |.C EQUD 0:EQUD -|
0000c8b0  33 32 30 3a 45 51 55 44  20 31 3a 45 51 55 44 20  |320:EQUD 1:EQUD |
0000c8c0  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 31 36  |0:EQUD 0:EQUD 16|
0000c8d0  30 3a 45 51 55 44 20 31  36 31 3a 45 51 55 44 20  |0:EQUD 161:EQUD |
0000c8e0  30 0d 43 1c 43 20 45 51  55 44 20 30 3a 45 51 55  |0.C.C EQUD 0:EQU|
0000c8f0  44 20 2d 31 36 31 3a 45  51 55 44 20 2d 33 32 30  |D -161:EQUD -320|
0000c900  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000c910  51 55 44 20 2d 31 3a 45  51 55 44 20 31 3a 45 51  |QUD -1:EQUD 1:EQ|
0000c920  55 44 20 30 0d 43 26 47  20 45 51 55 44 20 2d 31  |UD 0.C&G EQUD -1|
0000c930  3a 45 51 55 44 20 34 38  30 3a 45 51 55 44 20 2d  |:EQUD 480:EQUD -|
0000c940  31 36 31 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |161:EQUD 0:EQUD |
0000c950  30 3a 45 51 55 44 20 31  36 31 3a 45 51 55 44 20  |0:EQUD 161:EQUD |
0000c960  31 3a 45 51 55 44 20 2d  31 35 39 0d 43 30 49 20  |1:EQUD -159.C0I |
0000c970  45 51 55 44 20 31 36 30  3a 45 51 55 44 20 31 35  |EQUD 160:EQUD 15|
0000c980  39 3a 45 51 55 44 20 2d  32 3a 45 51 55 44 20 31  |9:EQUD -2:EQUD 1|
0000c990  36 31 3a 45 51 55 44 20  33 32 30 3a 45 51 55 44  |61:EQUD 320:EQUD|
0000c9a0  20 33 31 38 3a 45 51 55  44 20 32 3a 45 51 55 44  | 318:EQUD 2:EQUD|
0000c9b0  20 31 36 31 0d 43 3a 4d  20 45 51 55 44 20 2d 31  | 161.C:M EQUD -1|
0000c9c0  36 30 3a 45 51 55 44 20  2d 33 31 38 3a 45 51 55  |60:EQUD -318:EQU|
0000c9d0  44 20 31 3a 45 51 55 44  20 2d 34 38 30 3a 45 51  |D 1:EQUD -480:EQ|
0000c9e0  55 44 20 31 36 30 3a 45  51 55 44 20 31 35 39 3a  |UD 160:EQUD 159:|
0000c9f0  45 51 55 44 20 2d 31 3a  45 51 55 44 20 2d 31 36  |EQUD -1:EQUD -16|
0000ca00  31 0d 43 44 4c 20 45 51  55 44 20 2d 31 36 31 3a  |1.CDL EQUD -161:|
0000ca10  45 51 55 44 20 2d 31 3a  45 51 55 44 20 34 37 37  |EQUD -1:EQUD 477|
0000ca20  3a 45 51 55 44 20 31 36  30 3a 45 51 55 44 20 31  |:EQUD 160:EQUD 1|
0000ca30  36 31 3a 45 51 55 44 20  31 3a 45 51 55 44 20 2d  |61:EQUD 1:EQUD -|
0000ca40  31 35 39 3a 45 51 55 44  20 2d 31 36 30 0d 43 4e  |159:EQUD -160.CN|
0000ca50  46 20 45 51 55 44 20 31  3a 45 51 55 44 20 2d 31  |F EQUD 1:EQUD -1|
0000ca60  3a 45 51 55 44 20 31 36  30 3a 45 51 55 44 20 2d  |:EQUD 160:EQUD -|
0000ca70  34 37 37 3a 45 51 55 44  20 31 35 39 3a 45 51 55  |477:EQUD 159:EQU|
0000ca80  44 20 31 3a 45 51 55 44  20 32 3a 45 51 55 44 20  |D 1:EQUD 2:EQUD |
0000ca90  31 36 30 0d 43 58 4e 20  45 51 55 44 20 2d 31 36  |160.CXN EQUD -16|
0000caa0  30 3a 45 51 55 44 20 2d  31 35 39 3a 45 51 55 44  |0:EQUD -159:EQUD|
0000cab0  20 2d 31 36 31 3a 45 51  55 44 20 31 36 31 3a 45  | -161:EQUD 161:E|
0000cac0  51 55 44 20 2d 31 3a 45  51 55 44 20 33 32 32 3a  |QUD -1:EQUD 322:|
0000cad0  45 51 55 44 20 31 36 30  3a 45 51 55 44 20 31 36  |EQUD 160:EQUD 16|
0000cae0  31 0d 43 62 46 20 45 51  55 44 20 31 35 39 3a 45  |1.CbF EQUD 159:E|
0000caf0  51 55 44 20 2d 31 35 39  3a 45 51 55 44 20 2d 32  |QUD -159:EQUD -2|
0000cb00  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000cb10  51 55 44 20 31 36 30 3a  45 51 55 44 20 31 3a 45  |QUD 160:EQUD 1:E|
0000cb20  51 55 44 20 31 35 39 0d  43 6c 45 20 45 51 55 44  |QUD 159.ClE EQUD|
0000cb30  20 2d 31 3a 45 51 55 44  20 2d 31 36 30 3a 45 51  | -1:EQUD -160:EQ|
0000cb40  55 44 20 31 36 31 3a 45  51 55 44 20 30 3a 45 51  |UD 161:EQUD 0:EQ|
0000cb50  55 44 20 30 3a 45 51 55  44 20 33 31 38 3a 45 51  |UD 0:EQUD 318:EQ|
0000cb60  55 44 20 32 3a 45 51 55  44 20 2d 31 0d 43 76 41  |UD 2:EQUD -1.CvA|
0000cb70  20 45 51 55 44 20 30 3a  45 51 55 44 20 33 31 38  | EQUD 0:EQUD 318|
0000cb80  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000cb90  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cba0  44 20 2d 31 36 31 3a 45  51 55 44 20 30 0d 43 80  |D -161:EQUD 0.C.|
0000cbb0  05 20 0d 43 8a 2c 20 3b  20 55 73 65 72 73 68 69  |. .C., ; Usershi|
0000cbc0  70 20 70 61 72 74 69 63  6c 65 20 61 64 64 72 65  |p particle addre|
0000cbd0  73 73 65 73 20 6f 6e 20  73 63 72 65 65 6e 0d 43  |sses on screen.C|
0000cbe0  94 19 20 2e 70 61 72 74  69 63 6c 65 73 5f 61 64  |.. .particles_ad|
0000cbf0  64 72 65 73 73 65 73 0d  43 9e 3c 20 45 51 55 44  |dresses.C.< EQUD|
0000cc00  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cc10  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000cc20  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cc30  44 20 30 0d 43 a8 3c 20  45 51 55 44 20 30 3a 45  |D 0.C.< EQUD 0:E|
0000cc40  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cc50  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000cc60  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
0000cc70  43 b2 3c 20 45 51 55 44  20 30 3a 45 51 55 44 20  |C.< EQUD 0:EQUD |
0000cc80  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000cc90  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000cca0  55 44 20 30 3a 45 51 55  44 20 30 0d 43 bc 3c 20  |UD 0:EQUD 0.C.< |
0000ccb0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000ccc0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000ccd0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cce0  3a 45 51 55 44 20 30 0d  43 c6 3c 20 45 51 55 44  |:EQUD 0.C.< EQUD|
0000ccf0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cd00  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000cd10  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cd20  44 20 30 0d 43 d0 3c 20  45 51 55 44 20 30 3a 45  |D 0.C.< EQUD 0:E|
0000cd30  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cd40  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000cd50  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
0000cd60  43 da 3c 20 45 51 55 44  20 30 3a 45 51 55 44 20  |C.< EQUD 0:EQUD |
0000cd70  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000cd80  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000cd90  55 44 20 30 3a 45 51 55  44 20 30 0d 43 e4 3c 20  |UD 0:EQUD 0.C.< |
0000cda0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000cdb0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000cdc0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cdd0  3a 45 51 55 44 20 30 0d  43 ee 3c 20 45 51 55 44  |:EQUD 0.C.< EQUD|
0000cde0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cdf0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000ce00  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000ce10  44 20 30 0d 43 f8 3c 20  45 51 55 44 20 30 3a 45  |D 0.C.< EQUD 0:E|
0000ce20  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000ce30  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000ce40  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
0000ce50  44 02 3c 20 45 51 55 44  20 30 3a 45 51 55 44 20  |D.< EQUD 0:EQUD |
0000ce60  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000ce70  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000ce80  55 44 20 30 3a 45 51 55  44 20 30 0d 44 0c 3c 20  |UD 0:EQUD 0.D.< |
0000ce90  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000cea0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000ceb0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cec0  3a 45 51 55 44 20 30 0d  44 16 3c 20 45 51 55 44  |:EQUD 0.D.< EQUD|
0000ced0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cee0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000cef0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cf00  44 20 30 0d 44 20 3c 20  45 51 55 44 20 30 3a 45  |D 0.D < EQUD 0:E|
0000cf10  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000cf20  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000cf30  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
0000cf40  44 2a 3c 20 45 51 55 44  20 30 3a 45 51 55 44 20  |D*< EQUD 0:EQUD |
0000cf50  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000cf60  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000cf70  55 44 20 30 3a 45 51 55  44 20 30 0d 44 34 3c 20  |UD 0:EQUD 0.D4< |
0000cf80  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000cf90  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000cfa0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000cfb0  3a 45 51 55 44 20 30 0d  44 3e 05 20 0d 44 48 17  |:EQUD 0.D>. .DH.|
0000cfc0  20 2e 64 69 72 65 63 74  69 76 65 5f 63 6c 70 61  | .directive_clpa|
0000cfd0  74 68 73 0d 44 52 19 20  41 44 52 20 52 32 2c 63  |ths.DR. ADR R2,c|
0000cfe0  6c 75 73 74 65 72 5f 70  61 74 68 73 0d 44 5c 10  |luster_paths.D\.|
0000cff0  20 4d 4f 56 20 52 31 35  2c 52 31 34 0d 44 66 05  | MOV R15,R14.Df.|
0000d000  20 0d 44 70 13 20 2e 63  6c 75 73 74 65 72 5f 70  | .Dp. .cluster_p|
0000d010  61 74 68 73 0d 44 7a 1d  20 20 3b 20 20 20 20 63  |aths.Dz.  ;    c|
0000d020  6c 75 73 74 65 72 20 64  61 74 61 20 70 61 74 68  |luster data path|
0000d030  73 0d 44 84 6c 20 45 51  55 44 20 31 3a 45 51 55  |s.D.l EQUD 1:EQU|
0000d040  44 20 31 36 30 3a 45 51  55 44 20 31 35 39 3a 45  |D 160:EQUD 159:E|
0000d050  51 55 44 20 31 36 31 3a  45 51 55 44 20 32 3a 45  |QUD 161:EQUD 2:E|
0000d060  51 55 44 20 31 36 31 3a  45 51 55 44 20 31 36 30  |QUD 161:EQUD 160|
0000d070  3a 45 51 55 44 20 31 35  39 3a 45 51 55 44 20 31  |:EQUD 159:EQUD 1|
0000d080  35 39 3a 45 51 55 44 20  31 36 31 3a 45 51 55 44  |59:EQUD 161:EQUD|
0000d090  20 31 36 31 3a 45 51 55  44 20 31 36 30 0d 44 8e  | 161:EQUD 160.D.|
0000d0a0  70 20 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |p EQUD 640:EQUD |
0000d0b0  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d0c0  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d0d0  51 55 44 20 36 34 30 3a  45 51 55 44 20 36 34 30  |QUD 640:EQUD 640|
0000d0e0  3a 45 51 55 44 20 36 34  30 3a 45 51 55 44 20 36  |:EQUD 640:EQUD 6|
0000d0f0  34 30 3a 45 51 55 44 20  36 34 30 3a 45 51 55 44  |40:EQUD 640:EQUD|
0000d100  20 36 34 30 3a 45 51 55  44 20 36 34 30 0d 44 98  | 640:EQUD 640.D.|
0000d110  70 20 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |p EQUD 640:EQUD |
0000d120  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d130  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d140  51 55 44 20 36 34 30 3a  45 51 55 44 20 36 34 30  |QUD 640:EQUD 640|
0000d150  3a 45 51 55 44 20 36 34  30 3a 45 51 55 44 20 36  |:EQUD 640:EQUD 6|
0000d160  34 30 3a 45 51 55 44 20  36 34 30 3a 45 51 55 44  |40:EQUD 640:EQUD|
0000d170  20 36 34 30 3a 45 51 55  44 20 36 34 30 0d 44 a2  | 640:EQUD 640.D.|
0000d180  6c 20 45 51 55 44 20 31  3a 45 51 55 44 20 31 36  |l EQUD 1:EQUD 16|
0000d190  30 3a 45 51 55 44 20 31  35 39 3a 45 51 55 44 20  |0:EQUD 159:EQUD |
0000d1a0  31 36 31 3a 45 51 55 44  20 32 3a 45 51 55 44 20  |161:EQUD 2:EQUD |
0000d1b0  31 36 31 3a 45 51 55 44  20 31 36 30 3a 45 51 55  |161:EQUD 160:EQU|
0000d1c0  44 20 31 35 39 3a 45 51  55 44 20 31 35 39 3a 45  |D 159:EQUD 159:E|
0000d1d0  51 55 44 20 31 36 31 3a  45 51 55 44 20 31 36 31  |QUD 161:EQUD 161|
0000d1e0  3a 45 51 55 44 20 31 36  30 0d 44 ac 70 20 45 51  |:EQUD 160.D.p EQ|
0000d1f0  55 44 20 36 34 30 3a 45  51 55 44 20 36 34 30 3a  |UD 640:EQUD 640:|
0000d200  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d210  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d220  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d230  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d240  51 55 44 20 36 34 30 3a  45 51 55 44 20 36 34 30  |QUD 640:EQUD 640|
0000d250  3a 45 51 55 44 20 36 34  30 0d 44 b6 70 20 45 51  |:EQUD 640.D.p EQ|
0000d260  55 44 20 36 34 30 3a 45  51 55 44 20 36 34 30 3a  |UD 640:EQUD 640:|
0000d270  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d280  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d290  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d2a0  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d2b0  51 55 44 20 36 34 30 3a  45 51 55 44 20 36 34 30  |QUD 640:EQUD 640|
0000d2c0  3a 45 51 55 44 20 36 34  30 0d 44 c0 6c 20 45 51  |:EQUD 640.D.l EQ|
0000d2d0  55 44 20 31 3a 45 51 55  44 20 31 36 30 3a 45 51  |UD 1:EQUD 160:EQ|
0000d2e0  55 44 20 31 35 39 3a 45  51 55 44 20 31 36 31 3a  |UD 159:EQUD 161:|
0000d2f0  45 51 55 44 20 32 3a 45  51 55 44 20 31 36 31 3a  |EQUD 2:EQUD 161:|
0000d300  45 51 55 44 20 31 36 30  3a 45 51 55 44 20 31 35  |EQUD 160:EQUD 15|
0000d310  39 3a 45 51 55 44 20 31  35 39 3a 45 51 55 44 20  |9:EQUD 159:EQUD |
0000d320  31 36 31 3a 45 51 55 44  20 31 36 31 3a 45 51 55  |161:EQUD 161:EQU|
0000d330  44 20 31 36 30 0d 44 ca  70 20 45 51 55 44 20 36  |D 160.D.p EQUD 6|
0000d340  34 30 3a 45 51 55 44 20  36 34 30 3a 45 51 55 44  |40:EQUD 640:EQUD|
0000d350  20 36 34 30 3a 45 51 55  44 20 36 34 30 3a 45 51  | 640:EQUD 640:EQ|
0000d360  55 44 20 36 34 30 3a 45  51 55 44 20 36 34 30 3a  |UD 640:EQUD 640:|
0000d370  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d380  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d390  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d3a0  44 20 36 34 30 0d 44 d4  70 20 45 51 55 44 20 36  |D 640.D.p EQUD 6|
0000d3b0  34 30 3a 45 51 55 44 20  36 34 30 3a 45 51 55 44  |40:EQUD 640:EQUD|
0000d3c0  20 36 34 30 3a 45 51 55  44 20 36 34 30 3a 45 51  | 640:EQUD 640:EQ|
0000d3d0  55 44 20 36 34 30 3a 45  51 55 44 20 36 34 30 3a  |UD 640:EQUD 640:|
0000d3e0  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d3f0  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d400  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d410  44 20 36 34 30 0d 44 de  66 20 45 51 55 44 20 31  |D 640.D.f EQUD 1|
0000d420  3a 45 51 55 44 20 31 36  30 3a 45 51 55 44 20 2d  |:EQUD 160:EQUD -|
0000d430  32 3a 45 51 55 44 20 31  36 31 3a 45 51 55 44 20  |2:EQUD 161:EQUD |
0000d440  32 3a 45 51 55 44 20 2d  32 3a 45 51 55 44 20 33  |2:EQUD -2:EQUD 3|
0000d450  3a 45 51 55 44 20 31 35  39 3a 45 51 55 44 20 31  |:EQUD 159:EQUD 1|
0000d460  35 39 3a 45 51 55 44 20  31 36 31 3a 45 51 55 44  |59:EQUD 161:EQUD|
0000d470  20 33 3a 45 51 55 44 20  31 36 30 0d 44 e8 70 20  | 3:EQUD 160.D.p |
0000d480  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d490  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d4a0  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d4b0  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d4c0  51 55 44 20 36 34 30 3a  45 51 55 44 20 36 34 30  |QUD 640:EQUD 640|
0000d4d0  3a 45 51 55 44 20 36 34  30 3a 45 51 55 44 20 36  |:EQUD 640:EQUD 6|
0000d4e0  34 30 3a 45 51 55 44 20  36 34 30 0d 44 f2 70 20  |40:EQUD 640.D.p |
0000d4f0  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d500  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d510  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d520  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d530  51 55 44 20 36 34 30 3a  45 51 55 44 20 36 34 30  |QUD 640:EQUD 640|
0000d540  3a 45 51 55 44 20 36 34  30 3a 45 51 55 44 20 36  |:EQUD 640:EQUD 6|
0000d550  34 30 3a 45 51 55 44 20  36 34 30 0d 44 fc 6c 20  |40:EQUD 640.D.l |
0000d560  45 51 55 44 20 31 3a 45  51 55 44 20 31 36 30 3a  |EQUD 1:EQUD 160:|
0000d570  45 51 55 44 20 31 35 39  3a 45 51 55 44 20 31 36  |EQUD 159:EQUD 16|
0000d580  31 3a 45 51 55 44 20 32  3a 45 51 55 44 20 31 36  |1:EQUD 2:EQUD 16|
0000d590  31 3a 45 51 55 44 20 31  36 30 3a 45 51 55 44 20  |1:EQUD 160:EQUD |
0000d5a0  31 35 39 3a 45 51 55 44  20 31 35 39 3a 45 51 55  |159:EQUD 159:EQU|
0000d5b0  44 20 31 36 31 3a 45 51  55 44 20 31 36 31 3a 45  |D 161:EQUD 161:E|
0000d5c0  51 55 44 20 31 36 30 0d  45 06 70 20 45 51 55 44  |QUD 160.E.p EQUD|
0000d5d0  20 36 34 30 3a 45 51 55  44 20 36 34 30 3a 45 51  | 640:EQUD 640:EQ|
0000d5e0  55 44 20 36 34 30 3a 45  51 55 44 20 36 34 30 3a  |UD 640:EQUD 640:|
0000d5f0  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d600  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d610  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d620  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d630  51 55 44 20 36 34 30 0d  45 10 70 20 45 51 55 44  |QUD 640.E.p EQUD|
0000d640  20 36 34 30 3a 45 51 55  44 20 36 34 30 3a 45 51  | 640:EQUD 640:EQ|
0000d650  55 44 20 36 34 30 3a 45  51 55 44 20 36 34 30 3a  |UD 640:EQUD 640:|
0000d660  45 51 55 44 20 36 34 30  3a 45 51 55 44 20 36 34  |EQUD 640:EQUD 64|
0000d670  30 3a 45 51 55 44 20 36  34 30 3a 45 51 55 44 20  |0:EQUD 640:EQUD |
0000d680  36 34 30 3a 45 51 55 44  20 36 34 30 3a 45 51 55  |640:EQUD 640:EQU|
0000d690  44 20 36 34 30 3a 45 51  55 44 20 36 34 30 3a 45  |D 640:EQUD 640:E|
0000d6a0  51 55 44 20 36 34 30 0d  45 1a 6c 20 45 51 55 44  |QUD 640.E.l EQUD|
0000d6b0  20 31 3a 45 51 55 44 20  31 36 30 3a 45 51 55 44  | 1:EQUD 160:EQUD|
0000d6c0  20 31 35 39 3a 45 51 55  44 20 31 36 31 3a 45 51  | 159:EQUD 161:EQ|
0000d6d0  55 44 20 32 3a 45 51 55  44 20 31 36 31 3a 45 51  |UD 2:EQUD 161:EQ|
0000d6e0  55 44 20 31 36 30 3a 45  51 55 44 20 31 35 39 3a  |UD 160:EQUD 159:|
0000d6f0  45 51 55 44 20 31 35 39  3a 45 51 55 44 20 31 36  |EQUD 159:EQUD 16|
0000d700  31 3a 45 51 55 44 20 31  36 31 3a 45 51 55 44 20  |1:EQUD 161:EQUD |
0000d710  31 36 30 0d 45 24 6e 20  45 51 55 44 20 33 32 30  |160.E$n EQUD 320|
0000d720  3a 45 51 55 44 20 31 36  30 3a 45 51 55 44 20 31  |:EQUD 160:EQUD 1|
0000d730  36 30 3a 45 51 55 44 20  31 36 30 3a 45 51 55 44  |60:EQUD 160:EQUD|
0000d740  20 33 32 30 3a 45 51 55  44 20 31 36 30 3a 45 51  | 320:EQUD 160:EQ|
0000d750  55 44 20 31 36 30 3a 45  51 55 44 20 31 36 30 3a  |UD 160:EQUD 160:|
0000d760  45 51 55 44 20 31 36 30  3a 45 51 55 44 20 31 36  |EQUD 160:EQUD 16|
0000d770  30 3a 45 51 55 44 20 31  36 30 3a 45 51 55 44 20  |0:EQUD 160:EQUD |
0000d780  30 0d 45 2e 69 20 45 51  55 44 20 36 34 30 3a 45  |0.E.i EQUD 640:E|
0000d790  51 55 44 20 31 36 30 3a  45 51 55 44 20 33 32 30  |QUD 160:EQUD 320|
0000d7a0  3a 45 51 55 44 20 31 36  30 3a 45 51 55 44 20 33  |:EQUD 160:EQUD 3|
0000d7b0  32 30 3a 45 51 55 44 20  31 36 30 3a 45 51 55 44  |20:EQUD 160:EQUD|
0000d7c0  20 31 36 30 3a 45 51 55  44 20 31 36 30 3a 45 51  | 160:EQUD 160:EQ|
0000d7d0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000d7e0  20 30 3a 45 51 55 44 20  26 42 0d 45 38 6a 20 45  | 0:EQUD &B.E8j E|
0000d7f0  51 55 44 20 34 38 30 3a  45 51 55 44 20 31 36 30  |QUD 480:EQUD 160|
0000d800  3a 45 51 55 44 20 31 36  30 3a 45 51 55 44 20 31  |:EQUD 160:EQUD 1|
0000d810  36 30 3a 45 51 55 44 20  33 32 30 3a 45 51 55 44  |60:EQUD 320:EQUD|
0000d820  20 33 32 30 3a 45 51 55  44 20 31 36 30 3a 45 51  | 320:EQUD 160:EQ|
0000d830  55 44 20 30 3a 45 51 55  44 20 26 42 3a 45 51 55  |UD 0:EQUD &B:EQU|
0000d840  44 20 26 42 3a 45 51 55  44 20 26 42 3a 45 51 55  |D &B:EQUD &B:EQU|
0000d850  44 20 26 42 0d 45 42 67  20 45 51 55 44 20 33 32  |D &B.EBg EQUD 32|
0000d860  30 3a 45 51 55 44 20 31  36 30 3a 45 51 55 44 20  |0:EQUD 160:EQUD |
0000d870  31 36 30 3a 45 51 55 44  20 31 36 30 3a 45 51 55  |160:EQUD 160:EQU|
0000d880  44 20 33 32 30 3a 45 51  55 44 20 30 3a 45 51 55  |D 320:EQUD 0:EQU|
0000d890  44 20 30 3a 45 51 55 44  20 26 42 3a 45 51 55 44  |D 0:EQUD &B:EQUD|
0000d8a0  20 26 42 3a 45 51 55 44  20 26 42 3a 45 51 55 44  | &B:EQUD &B:EQUD|
0000d8b0  20 26 42 3a 45 51 55 44  20 26 42 0d 45 4c 63 20  | &B:EQUD &B.ELc |
0000d8c0  45 51 55 44 20 30 3a 45  51 55 44 20 31 36 30 3a  |EQUD 0:EQUD 160:|
0000d8d0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000d8e0  55 44 20 31 36 30 3a 45  51 55 44 20 26 42 3a 45  |UD 160:EQUD &B:E|
0000d8f0  51 55 44 20 26 42 3a 45  51 55 44 20 26 42 3a 45  |QUD &B:EQUD &B:E|
*
0000d910  51 55 44 20 26 42 3a 45  51 55 44 20 26 42 0d 45  |QUD &B:EQUD &B.E|
0000d920  56 62 20 45 51 55 44 20  26 42 3a 45 51 55 44 20  |Vb EQUD &B:EQUD |
0000d930  30 3a 45 51 55 44 20 26  42 3a 45 51 55 44 20 26  |0:EQUD &B:EQUD &|
0000d940  42 3a 45 51 55 44 20 30  3a 45 51 55 44 20 26 42  |B:EQUD 0:EQUD &B|
0000d950  3a 45 51 55 44 20 26 42  3a 45 51 55 44 20 26 42  |:EQUD &B:EQUD &B|
*
0000d970  3a 45 51 55 44 20 26 42  3a 45 51 55 44 20 26 45  |:EQUD &B:EQUD &E|
0000d980  0d 45 60 64 20 45 51 55  44 20 26 42 3a 45 51 55  |.E`d EQUD &B:EQU|
0000d990  44 20 26 42 3a 45 51 55  44 20 26 42 3a 45 51 55  |D &B:EQUD &B:EQU|
*
0000d9c0  44 20 26 42 3a 45 51 55  44 20 26 45 3a 45 51 55  |D &B:EQUD &E:EQU|
0000d9d0  44 20 26 45 3a 45 51 55  44 20 26 45 3a 45 51 55  |D &E:EQUD &E:EQU|
0000d9e0  44 20 26 45 0d 45 6a 64  20 45 51 55 44 20 26 42  |D &E.Ejd EQUD &B|
0000d9f0  3a 45 51 55 44 20 26 42  3a 45 51 55 44 20 26 42  |:EQUD &B:EQUD &B|
*
0000da20  3a 45 51 55 44 20 26 45  3a 45 51 55 44 20 26 45  |:EQUD &E:EQUD &E|
*
0000da40  3a 45 51 55 44 20 26 45  0d 45 74 64 20 45 51 55  |:EQUD &E.Etd EQU|
0000da50  44 20 26 42 3a 45 51 55  44 20 26 42 3a 45 51 55  |D &B:EQUD &B:EQU|
*
0000da70  44 20 26 42 3a 45 51 55  44 20 26 45 3a 45 51 55  |D &B:EQUD &E:EQU|
0000da80  44 20 26 45 3a 45 51 55  44 20 26 45 3a 45 51 55  |D &E:EQUD &E:EQU|
*
0000daa0  44 20 26 45 3a 45 51 55  44 20 26 45 0d 45 7e 64  |D &E:EQUD &E.E~d|
0000dab0  20 45 51 55 44 20 26 45  3a 45 51 55 44 20 26 42  | EQUD &E:EQUD &B|
0000dac0  3a 45 51 55 44 20 26 45  3a 45 51 55 44 20 26 45  |:EQUD &E:EQUD &E|
0000dad0  3a 45 51 55 44 20 26 42  3a 45 51 55 44 20 26 45  |:EQUD &B:EQUD &E|
0000dae0  3a 45 51 55 44 20 26 45  3a 45 51 55 44 20 26 45  |:EQUD &E:EQUD &E|
*
0000db10  0d 45 88 05 20 0d 45 92  05 20 0d 45 9c 12 20 2e  |.E.. .E.. .E.. .|
0000db20  64 69 72 65 63 74 69 76  65 5f 61 62 0d 45 a6 17  |directive_ab.E..|
0000db30  20 41 44 52 20 52 34 2c  61 6c 69 65 6e 5f 62 6f  | ADR R4,alien_bo|
0000db40  6d 62 73 0d 45 b0 10 20  4d 4f 56 20 52 31 35 2c  |mbs.E.. MOV R15,|
0000db50  52 31 34 0d 45 ba 05 20  0d 45 c4 39 20 3b 20 20  |R14.E.. .E.9 ;  |
0000db60  20 20 41 6c 69 65 6e 20  62 75 6c 6c 65 74 73 20  |  Alien bullets |
0000db70  61 72 65 20 73 74 6f 72  65 64 20 68 65 72 65 20  |are stored here |
0000db80  2e 2e 2e 2e 2e 2e 2e 2e  2e 2e 2e 2e 2e 2e 2e 2e  |................|
0000db90  2e 0d 45 ce 11 20 2e 61  6c 69 65 6e 5f 62 6f 6d  |..E.. .alien_bom|
0000dba0  62 73 0d 45 d8 42 20 45  51 55 44 20 30 3a 45 51  |bs.E.B EQUD 0:EQ|
0000dbb0  55 44 20 30 20 20 3a 45  51 55 44 20 30 3a 45 51  |UD 0  :EQUD 0:EQ|
*
0000dbe0  55 44 20 30 0d 45 e2 42  20 45 51 55 44 20 30 3a  |UD 0.E.B EQUD 0:|
0000dbf0  45 51 55 44 20 30 20 20  3a 45 51 55 44 20 30 3a  |EQUD 0  :EQUD 0:|
*
0000dc20  45 51 55 44 20 30 0d 45  ec 42 20 45 51 55 44 20  |EQUD 0.E.B EQUD |
0000dc30  30 3a 45 51 55 44 20 30  20 20 3a 45 51 55 44 20  |0:EQUD 0  :EQUD |
*
0000dc60  30 3a 45 51 55 44 20 30  0d 45 f6 42 20 45 51 55  |0:EQUD 0.E.B EQU|
0000dc70  44 20 30 3a 45 51 55 44  20 30 20 20 3a 45 51 55  |D 0:EQUD 0  :EQU|
*
0000dca0  44 20 30 3a 45 51 55 44  20 30 0d 46 00 42 20 45  |D 0:EQUD 0.F.B E|
0000dcb0  51 55 44 20 30 3a 45 51  55 44 20 30 20 20 3a 45  |QUD 0:EQUD 0  :E|
*
0000dce0  51 55 44 20 30 3a 45 51  55 44 20 30 0d 46 0a 42  |QUD 0:EQUD 0.F.B|
0000dcf0  20 45 51 55 44 20 30 3a  45 51 55 44 20 30 20 20  | EQUD 0:EQUD 0  |
0000dd00  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 20 20  |:EQUD 0:EQUD 0  |
*
0000dd20  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 0d 46  |:EQUD 0:EQUD 0.F|
0000dd30  14 42 20 45 51 55 44 20  30 3a 45 51 55 44 20 30  |.B EQUD 0:EQUD 0|
0000dd40  20 20 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  |  :EQUD 0:EQUD 0|
*
0000dd70  0d 46 1e 42 20 45 51 55  44 20 30 3a 45 51 55 44  |.F.B EQUD 0:EQUD|
0000dd80  20 30 20 20 3a 45 51 55  44 20 30 3a 45 51 55 44  | 0  :EQUD 0:EQUD|
*
0000ddb0  20 30 0d 46 28 42 20 45  51 55 44 20 30 3a 45 51  | 0.F(B EQUD 0:EQ|
0000ddc0  55 44 20 30 20 20 3a 45  51 55 44 20 30 3a 45 51  |UD 0  :EQUD 0:EQ|
*
0000ddf0  55 44 20 30 0d 46 32 42  20 45 51 55 44 20 30 3a  |UD 0.F2B EQUD 0:|
0000de00  45 51 55 44 20 30 20 20  3a 45 51 55 44 20 30 3a  |EQUD 0  :EQUD 0:|
*
0000de30  45 51 55 44 20 30 0d 46  3c 42 20 45 51 55 44 20  |EQUD 0.F<B EQUD |
0000de40  30 3a 45 51 55 44 20 30  20 20 3a 45 51 55 44 20  |0:EQUD 0  :EQUD |
*
0000de70  30 3a 45 51 55 44 20 30  0d 46 46 42 20 45 51 55  |0:EQUD 0.FFB EQU|
0000de80  44 20 30 3a 45 51 55 44  20 30 20 20 3a 45 51 55  |D 0:EQUD 0  :EQU|
*
0000deb0  44 20 30 3a 45 51 55 44  20 30 0d 46 50 42 20 45  |D 0:EQUD 0.FPB E|
0000dec0  51 55 44 20 30 3a 45 51  55 44 20 30 20 20 3a 45  |QUD 0:EQUD 0  :E|
*
0000def0  51 55 44 20 30 3a 45 51  55 44 20 30 0d 46 5a 42  |QUD 0:EQUD 0.FZB|
0000df00  20 45 51 55 44 20 30 3a  45 51 55 44 20 30 20 20  | EQUD 0:EQUD 0  |
0000df10  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 20 20  |:EQUD 0:EQUD 0  |
*
0000df30  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 0d 46  |:EQUD 0:EQUD 0.F|
0000df40  64 42 20 45 51 55 44 20  30 3a 45 51 55 44 20 30  |dB EQUD 0:EQUD 0|
0000df50  20 20 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  |  :EQUD 0:EQUD 0|
*
0000df80  0d 46 6e 42 20 45 51 55  44 20 30 3a 45 51 55 44  |.FnB EQUD 0:EQUD|
0000df90  20 30 20 20 3a 45 51 55  44 20 30 3a 45 51 55 44  | 0  :EQUD 0:EQUD|
*
0000dfc0  20 30 0d 46 78 04 0d 46  82 14 20 2e 64 69 72 65  | 0.Fx..F.. .dire|
0000dfd0  63 74 69 76 65 5f 62 79  74 65 0d 46 8c 10 20 41  |ctive_byte.F.. A|
0000dfe0  44 52 20 52 32 2c 62 79  74 65 0d 46 96 10 20 4d  |DR R2,byte.F.. M|
0000dff0  4f 56 20 52 31 35 2c 52  31 34 0d 46 a0 05 20 0d  |OV R15,R14.F.. .|
0000e000  46 aa 48 20 3b 20 20 41  4c 49 45 4e 20 53 48 49  |F.H ;  ALIEN SHI|
0000e010  50 53 20 41 44 44 52 45  53 53 45 53 20 73 74 6f  |PS ADDRESSES sto|
0000e020  72 65 64 20 68 65 72 65  20 61 73 20 77 65 6c 6c  |red here as well|
0000e030  20 61 73 20 69 6e 66 6f  20 6f 6e 20 74 68 65 73  | as info on thes|
0000e040  65 20 73 68 69 70 73 0d  46 b4 0a 20 2e 62 79 74  |e ships.F.. .byt|
0000e050  65 0d 46 be 4a 20 45 51  55 44 20 30 3a 45 51 55  |e.F.J EQUD 0:EQU|
0000e060  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e070  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e080  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e090  55 44 20 30 3a 45 51 55  44 20 30 0d 46 c8 4a 20  |UD 0:EQUD 0.F.J |
0000e0a0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e0b0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e0c0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e0d0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e0e0  51 55 44 20 30 0d 46 d2  4a 20 45 51 55 44 20 30  |QUD 0.F.J EQUD 0|
0000e0f0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e100  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e110  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e120  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
0000e130  46 dc 4a 20 45 51 55 44  20 30 3a 45 51 55 44 20  |F.J EQUD 0:EQUD |
0000e140  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e150  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e160  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e170  20 30 3a 45 51 55 44 20  30 0d 46 e6 4a 20 45 51  | 0:EQUD 0.F.J EQ|
0000e180  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e190  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e1a0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e1b0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e1c0  44 20 30 0d 46 f0 4a 20  45 51 55 44 20 30 3a 45  |D 0.F.J EQUD 0:E|
0000e1d0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e1e0  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e1f0  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e200  45 51 55 44 20 30 3a 45  51 55 44 20 30 0d 46 fa  |EQUD 0:EQUD 0.F.|
0000e210  4a 20 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |J EQUD 0:EQUD 0:|
0000e220  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e230  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e240  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e250  3a 45 51 55 44 20 30 0d  47 04 4a 20 45 51 55 44  |:EQUD 0.G.J EQUD|
0000e260  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e270  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e280  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e290  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e2a0  30 0d 47 0e 4a 20 45 51  55 44 20 30 3a 45 51 55  |0.G.J EQUD 0:EQU|
0000e2b0  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e2c0  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e2d0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e2e0  55 44 20 30 3a 45 51 55  44 20 30 0d 47 18 4a 20  |UD 0:EQUD 0.G.J |
0000e2f0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e300  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e310  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e320  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e330  51 55 44 20 30 0d 47 22  4a 20 45 51 55 44 20 30  |QUD 0.G"J EQUD 0|
0000e340  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e350  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e360  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e370  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
0000e380  47 2c 4a 20 45 51 55 44  20 30 3a 45 51 55 44 20  |G,J EQUD 0:EQUD |
0000e390  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e3a0  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e3b0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e3c0  20 30 3a 45 51 55 44 20  30 0d 47 36 4a 20 45 51  | 0:EQUD 0.G6J EQ|
0000e3d0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e3e0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e3f0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e400  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e410  44 20 30 0d 47 40 4a 20  45 51 55 44 20 30 3a 45  |D 0.G@J EQUD 0:E|
0000e420  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e430  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e440  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e450  45 51 55 44 20 30 3a 45  51 55 44 20 30 0d 47 4a  |EQUD 0:EQUD 0.GJ|
0000e460  4a 20 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |J EQUD 0:EQUD 0:|
0000e470  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e480  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e490  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e4a0  3a 45 51 55 44 20 30 0d  47 54 4a 20 45 51 55 44  |:EQUD 0.GTJ EQUD|
0000e4b0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e4c0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e4d0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
0000e4e0  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e4f0  30 0d 47 ea 4a 20 45 51  55 44 20 30 3a 45 51 55  |0.G.J EQUD 0:EQU|
0000e500  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
0000e510  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
0000e520  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e530  55 44 20 30 3a 45 51 55  44 20 30 0d 47 eb 4a 20  |UD 0:EQUD 0.G.J |
0000e540  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
0000e550  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
0000e560  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
0000e570  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
0000e580  51 55 44 20 30 0d 47 ec  04 0d 47 f4 14 20 2e 63  |QUD 0.G...G.. .c|
0000e590  68 61 6e 67 65 5f 70 61  6c 65 74 74 65 0d 47 fe  |hange_palette.G.|
0000e5a0  19 20 4c 44 52 20 52 31  2c 70 61 6c 65 74 74 65  |. LDR R1,palette|
0000e5b0  5f 64 65 6c 61 79 0d 48  08 29 20 53 55 42 53 20  |_delay.H.) SUBS |
0000e5c0  52 31 2c 52 31 2c 23 31  20 3a 20 53 54 52 20 52  |R1,R1,#1 : STR R|
0000e5d0  31 2c 70 61 6c 65 74 74  65 5f 64 65 6c 61 79 0d  |1,palette_delay.|
0000e5e0  48 12 12 20 4d 4f 56 4e  45 20 52 31 35 2c 52 31  |H.. MOVNE R15,R1|
0000e5f0  34 0d 48 1c 27 20 4d 4f  56 20 52 31 2c 23 31 30  |4.H.' MOV R1,#10|
0000e600  30 20 3a 20 53 54 52 20  52 31 2c 70 61 6c 65 74  |0 : STR R1,palet|
0000e610  74 65 5f 64 65 6c 61 79  0d 48 26 05 20 0d 48 30  |te_delay.H&. .H0|
0000e620  15 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |. STMFD R13!,{R1|
0000e630  34 7d 0d 48 3a 17 20 4c  44 52 42 20 52 31 2c 69  |4}.H:. LDRB R1,i|
0000e640  6e 63 5f 6f 72 5f 64 65  63 0d 48 44 1f 20 43 4d  |nc_or_dec.HD. CM|
0000e650  50 20 52 31 2c 23 31 20  3a 20 42 4c 45 51 20 69  |P R1,#1 : BLEQ i|
0000e660  6e 63 72 65 6d 65 6e 74  0d 48 4e 17 20 4c 44 52  |ncrement.HN. LDR|
0000e670  42 20 52 31 2c 69 6e 63  5f 6f 72 5f 64 65 63 0d  |B R1,inc_or_dec.|
0000e680  48 58 1f 20 43 4d 50 20  52 31 2c 23 32 20 3a 20  |HX. CMP R1,#2 : |
0000e690  42 4c 45 51 20 64 65 63  72 65 6d 65 6e 74 0d 48  |BLEQ decrement.H|
0000e6a0  62 04 0d 48 6c 14 20 4c  44 52 42 20 52 35 2c 70  |b..Hl. LDRB R5,p|
0000e6b0  61 6c 5f 72 65 64 0d 48  76 16 20 4c 44 52 42 20  |al_red.Hv. LDRB |
0000e6c0  52 36 2c 70 61 6c 5f 67  72 65 65 6e 0d 48 80 15  |R6,pal_green.H..|
0000e6d0  20 4c 44 52 42 20 52 37  2c 70 61 6c 5f 62 6c 75  | LDRB R7,pal_blu|
0000e6e0  65 0d 48 8a 18 20 42 4c  20 65 69 67 68 74 5f 74  |e.H.. BL eight_t|
0000e6f0  6f 5f 66 69 66 74 65 65  6e 0d 48 94 15 20 4c 44  |o_fifteen.H.. LD|
0000e700  4d 46 44 20 52 31 33 21  2c 7b 52 31 35 7d 0d 48  |MFD R13!,{R15}.H|
0000e710  9e 05 20 0d 48 a8 1a 20  2e 70 61 6c 65 74 74 65  |.. .H.. .palette|
0000e720  5f 64 65 6c 61 79 20 45  51 55 44 20 31 0d 48 b2  |_delay EQUD 1.H.|
0000e730  05 20 0d 48 bc 0f 20 2e  69 6e 63 72 65 6d 65 6e  |. .H.. .incremen|
0000e740  74 0d 48 c6 13 20 4c 44  52 42 20 52 32 2c 63 6f  |t.H.. LDRB R2,co|
0000e750  6c 6f 75 72 0d 48 d0 10  20 4c 44 52 42 20 52 31  |lour.H.. LDRB R1|
0000e760  2c 72 67 62 0d 48 da 1f  20 41 44 44 20 52 31 2c  |,rgb.H.. ADD R1,|
0000e770  52 31 2c 23 31 20 3a 20  53 54 52 42 20 52 31 2c  |R1,#1 : STRB R1,|
0000e780  72 67 62 0d 48 e4 2d 20  43 4d 50 20 52 32 2c 23  |rgb.H.- CMP R2,#|
0000e790  31 20 3a 20 ec 51 20 52  35 2c 52 31 20 3a 20 53  |1 : .Q R5,R1 : S|
0000e7a0  54 52 45 51 42 20 52 35  2c 70 61 6c 5f 72 65 64  |TREQB R5,pal_red|
0000e7b0  0d 48 ee 2f 20 43 4d 50  20 52 32 2c 23 32 20 3a  |.H./ CMP R2,#2 :|
0000e7c0  20 ec 51 20 52 36 2c 52  31 20 3a 20 53 54 52 45  | .Q R6,R1 : STRE|
0000e7d0  51 42 20 52 36 2c 70 61  6c 5f 67 72 65 65 6e 0d  |QB R6,pal_green.|
0000e7e0  48 f8 2e 20 43 4d 50 20  52 32 2c 23 33 20 3a 20  |H.. CMP R2,#3 : |
0000e7f0  ec 51 20 52 37 2c 52 31  20 3a 20 53 54 52 45 51  |.Q R7,R1 : STREQ|
0000e800  42 20 52 37 2c 70 61 6c  5f 62 6c 75 65 0d 49 02  |B R7,pal_blue.I.|
0000e810  1d 20 43 4d 50 20 52 31  2c 23 31 36 20 3a 20 42  |. CMP R1,#16 : B|
0000e820  4e 45 20 70 61 6c 5f 69  6e 63 0d 49 0c 05 20 0d  |NE pal_inc.I.. .|
0000e830  49 16 39 20 41 44 52 20  52 33 2c 70 61 6c 5f 64  |I.9 ADR R3,pal_d|
0000e840  61 74 61 20 3a 20 4c 44  52 42 20 52 34 2c 70 61  |ata : LDRB R4,pa|
0000e850  6c 5f 70 6f 69 6e 74 65  72 20 3a 20 41 44 44 20  |l_pointer : ADD |
0000e860  52 33 2c 52 33 2c 52 34  0d 49 20 25 20 4c 44 52  |R3,R3,R4.I % LDR|
0000e870  42 20 52 35 2c 5b 52 33  2c 23 30 5d 20 3a 20 53  |B R5,[R3,#0] : S|
0000e880  54 52 42 20 52 35 2c 63  6f 6c 6f 75 72 0d 49 2a  |TRB R5,colour.I*|
0000e890  29 20 4c 44 52 42 20 52  35 2c 5b 52 33 2c 23 31  |) LDRB R5,[R3,#1|
0000e8a0  5d 20 3a 20 53 54 52 42  20 52 35 2c 69 6e 63 5f  |] : STRB R5,inc_|
0000e8b0  6f 72 5f 64 65 63 0d 49  34 28 20 43 4d 50 20 52  |or_dec.I4( CMP R|
0000e8c0  35 2c 23 31 20 3a 20 ec  51 20 52 35 2c 23 30 20  |5,#1 : .Q R5,#0 |
0000e8d0  3a 20 4d 4f 56 4e 45 20  52 35 2c 23 31 36 0d 49  |: MOVNE R5,#16.I|
0000e8e0  3e 10 20 53 54 52 42 20  52 35 2c 72 67 62 0d 49  |>. STRB R5,rgb.I|
0000e8f0  48 11 20 41 44 44 20 52  34 2c 52 34 2c 23 32 0d  |H. ADD R4,R4,#2.|
0000e900  49 52 30 20 43 4d 50 20  52 34 2c 23 31 36 20 3a  |IR0 CMP R4,#16 :|
0000e910  20 ec 51 20 52 34 2c 23  30 20 3a 20 53 54 52 42  | .Q R4,#0 : STRB|
0000e920  20 52 34 2c 70 61 6c 5f  70 6f 69 6e 74 65 72 0d  | R4,pal_pointer.|
0000e930  49 5c 0d 20 2e 70 61 6c  5f 69 6e 63 0d 49 66 10  |I\. .pal_inc.If.|
0000e940  20 4d 4f 56 20 52 31 35  2c 52 31 34 0d 49 70 05  | MOV R15,R14.Ip.|
0000e950  20 0d 49 7a 0f 20 2e 64  65 63 72 65 6d 65 6e 74  | .Iz. .decrement|
0000e960  0d 49 84 13 20 4c 44 52  42 20 52 32 2c 63 6f 6c  |.I.. LDRB R2,col|
0000e970  6f 75 72 0d 49 8e 10 20  4c 44 52 42 20 52 31 2c  |our.I.. LDRB R1,|
0000e980  72 67 62 0d 49 98 1f 20  53 55 42 20 52 31 2c 52  |rgb.I.. SUB R1,R|
0000e990  31 2c 23 31 20 3a 20 53  54 52 42 20 52 31 2c 72  |1,#1 : STRB R1,r|
0000e9a0  67 62 0d 49 a2 2d 20 43  4d 50 20 52 32 2c 23 31  |gb.I.- CMP R2,#1|
0000e9b0  20 3a 20 ec 51 20 52 35  2c 52 31 20 3a 20 53 54  | : .Q R5,R1 : ST|
0000e9c0  52 45 51 42 20 52 35 2c  70 61 6c 5f 72 65 64 0d  |REQB R5,pal_red.|
0000e9d0  49 ac 2f 20 43 4d 50 20  52 32 2c 23 32 20 3a 20  |I./ CMP R2,#2 : |
0000e9e0  ec 51 20 52 36 2c 52 31  20 3a 20 53 54 52 45 51  |.Q R6,R1 : STREQ|
0000e9f0  42 20 52 36 2c 70 61 6c  5f 67 72 65 65 6e 0d 49  |B R6,pal_green.I|
0000ea00  b6 2e 20 43 4d 50 20 52  32 2c 23 33 20 3a 20 ec  |.. CMP R2,#3 : .|
0000ea10  51 20 52 37 2c 52 31 20  3a 20 53 54 52 45 51 42  |Q R7,R1 : STREQB|
0000ea20  20 52 37 2c 70 61 6c 5f  62 6c 75 65 0d 49 c0 1c  | R7,pal_blue.I..|
0000ea30  20 43 4d 50 20 52 31 2c  23 30 20 3a 20 42 4e 45  | CMP R1,#0 : BNE|
0000ea40  20 70 61 6c 5f 64 65 63  0d 49 ca 04 0d 49 d4 39  | pal_dec.I...I.9|
0000ea50  20 41 44 52 20 52 33 2c  70 61 6c 5f 64 61 74 61  | ADR R3,pal_data|
0000ea60  20 3a 20 4c 44 52 42 20  52 34 2c 70 61 6c 5f 70  | : LDRB R4,pal_p|
0000ea70  6f 69 6e 74 65 72 20 3a  20 41 44 44 20 52 33 2c  |ointer : ADD R3,|
0000ea80  52 33 2c 52 34 0d 49 de  25 20 4c 44 52 42 20 52  |R3,R4.I.% LDRB R|
0000ea90  35 2c 5b 52 33 2c 23 30  5d 20 3a 20 53 54 52 42  |5,[R3,#0] : STRB|
0000eaa0  20 52 35 2c 63 6f 6c 6f  75 72 0d 49 e8 29 20 4c  | R5,colour.I.) L|
0000eab0  44 52 42 20 52 35 2c 5b  52 33 2c 23 31 5d 20 3a  |DRB R5,[R3,#1] :|
0000eac0  20 53 54 52 42 20 52 35  2c 69 6e 63 5f 6f 72 5f  | STRB R5,inc_or_|
0000ead0  64 65 63 0d 49 f2 28 20  43 4d 50 20 52 35 2c 23  |dec.I.( CMP R5,#|
0000eae0  31 20 3a 20 ec 51 20 52  35 2c 23 30 20 3a 20 4d  |1 : .Q R5,#0 : M|
0000eaf0  4f 56 4e 45 20 52 35 2c  23 31 36 0d 49 fc 10 20  |OVNE R5,#16.I.. |
0000eb00  53 54 52 42 20 52 35 2c  72 67 62 0d 4a 06 11 20  |STRB R5,rgb.J.. |
0000eb10  41 44 44 20 52 34 2c 52  34 2c 23 32 0d 4a 10 30  |ADD R4,R4,#2.J.0|
0000eb20  20 43 4d 50 20 52 34 2c  23 31 36 20 3a 20 ec 51  | CMP R4,#16 : .Q|
0000eb30  20 52 34 2c 23 30 20 3a  20 53 54 52 42 20 52 34  | R4,#0 : STRB R4|
0000eb40  2c 70 61 6c 5f 70 6f 69  6e 74 65 72 0d 4a 1a 0d  |,pal_pointer.J..|
0000eb50  20 2e 70 61 6c 5f 64 65  63 0d 4a 24 10 20 4d 4f  | .pal_dec.J$. MO|
0000eb60  56 20 52 31 35 2c 52 31  34 0d 4a 2e 05 20 0d 4a  |V R15,R14.J.. .J|
0000eb70  38 18 20 2e 70 61 6c 5f  72 65 64 20 20 20 20 45  |8. .pal_red    E|
0000eb80  51 55 42 20 31 36 0d 4a  42 17 20 2e 70 61 6c 5f  |QUB 16.JB. .pal_|
0000eb90  67 72 65 65 6e 20 20 45  51 55 42 20 30 0d 4a 4c  |green  EQUB 0.JL|
0000eba0  17 20 2e 70 61 6c 5f 62  6c 75 65 20 20 20 45 51  |. .pal_blue   EQ|
0000ebb0  55 42 20 30 0d 4a 56 2a  20 2e 72 67 62 20 20 20  |UB 0.JV* .rgb   |
0000ebc0  20 20 20 20 20 45 51 55  42 20 30 20 20 20 20 3b  |     EQUB 0    ;|
0000ebd0  20 72 61 6e 67 65 20 30  20 74 6f 20 31 36 0d 4a  | range 0 to 16.J|
0000ebe0  60 3c 20 2e 63 6f 6c 6f  75 72 20 20 20 20 20 45  |`< .colour     E|
0000ebf0  51 55 42 20 32 20 20 20  20 3b 20 63 68 6f 73 65  |QUB 2    ; chose|
0000ec00  6e 20 63 6f 6c 6f 75 72  20 72 65 64 2c 67 72 65  |n colour red,gre|
0000ec10  65 6e 20 6f 72 20 62 6c  75 65 0d 4a 6a 41 20 2e  |en or blue.JjA .|
0000ec20  69 6e 63 5f 6f 72 5f 64  65 63 20 45 51 55 42 20  |inc_or_dec EQUB |
0000ec30  31 20 20 20 20 3b 20 69  6e 63 72 65 6d 65 6e 74  |1    ; increment|
0000ec40  20 6f 72 20 64 65 63 72  65 6d 65 6e 74 20 63 68  | or decrement ch|
0000ec50  6f 73 65 6e 20 63 6f 6c  6f 75 72 0d 4a 74 30 20  |osen colour.Jt0 |
0000ec60  2e 70 61 6c 5f 70 6f 69  6e 74 65 72 20 45 51 55  |.pal_pointer EQU|
0000ec70  42 20 32 20 20 20 3b 20  70 6f 69 6e 74 65 72 20  |B 2   ; pointer |
0000ec80  74 6f 20 70 61 6c 5f 64  61 74 61 0d 4a 7e 7f 20  |to pal_data.J~. |
0000ec90  2e 70 61 6c 5f 64 61 74  61 20 20 45 51 55 42 20  |.pal_data  EQUB |
0000eca0  32 3a 45 51 55 42 20 31  3a 45 51 55 42 20 33 3a  |2:EQUB 1:EQUB 3:|
0000ecb0  45 51 55 42 20 31 3a 45  51 55 42 20 31 3a 45 51  |EQUB 1:EQUB 1:EQ|
0000ecc0  55 42 20 32 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 2:EQUB 3:EQUB|
0000ecd0  20 32 3a 45 51 55 42 20  33 3a 45 51 55 42 20 31  | 2:EQUB 3:EQUB 1|
0000ece0  3a 45 51 55 42 20 31 3a  45 51 55 42 20 31 3a 45  |:EQUB 1:EQUB 1:E|
0000ecf0  51 55 42 20 32 3a 45 51  55 42 20 32 3a 45 51 55  |QUB 2:EQUB 2:EQU|
0000ed00  42 20 33 3a 45 51 55 42  20 32 0d 4a 88 0a 20 41  |B 3:EQUB 2.J.. A|
0000ed10  4c 49 47 4e 0d 4a 92 05  20 0d 4a 9c 16 20 2e 65  |LIGN.J.. .J.. .e|
0000ed20  69 67 68 74 5f 74 6f 5f  66 69 66 74 65 65 6e 0d  |ight_to_fifteen.|
0000ed30  4a a6 0e 20 4d 4f 56 20  52 31 2c 23 38 0d 4a b0  |J.. MOV R1,#8.J.|
0000ed40  11 20 2e 6e 65 78 74 5f  63 6f 6c 6f 75 72 0d 4a  |. .next_colour.J|
0000ed50  ba 2c 20 4d 55 4c 20 52  32 2c 52 35 2c 52 31 20  |., MUL R2,R5,R1 |
0000ed60  20 20 20 20 20 3b 20 20  72 65 64 20 3d 20 63 6f  |     ;  red = co|
0000ed70  6c 6f 75 72 20 2a 20 72  65 64 0d 4a c4 30 20 4d  |lour * red.J.0 M|
0000ed80  55 4c 20 52 33 2c 52 36  2c 52 31 20 20 20 20 20  |UL R3,R6,R1     |
0000ed90  20 3b 20 20 67 72 65 65  6e 20 3d 20 63 6f 6c 6f  | ;  green = colo|
0000eda0  75 72 20 2a 20 67 72 65  65 6e 0d 4a ce 2e 20 4d  |ur * green.J.. M|
0000edb0  55 4c 20 52 34 2c 52 37  2c 52 31 20 20 20 20 20  |UL R4,R7,R1     |
0000edc0  20 3b 20 20 62 6c 75 65  20 3d 20 63 6f 6c 6f 75  | ;  blue = colou|
0000edd0  72 20 2a 20 62 6c 75 65  0d 4a d8 05 20 0d 4a e2  |r * blue.J.. .J.|
0000ede0  13 20 2e 77 72 69 74 65  5f 70 61 6c 65 74 74 65  |. .write_palette|
0000edf0  0d 4a ec 10 20 53 57 49  20 26 31 30 30 2b 31 39  |.J.. SWI &100+19|
0000ee00  0d 4a f6 21 20 4d 4f 56  20 52 30 2c 52 31 20 20  |.J.! MOV R0,R1  |
0000ee10  20 20 20 20 20 20 20 3b  20 20 20 63 6f 6c 6f 75  |       ;   colou|
0000ee20  72 0d 4b 00 14 20 53 57  49 20 22 4f 53 5f 57 72  |r.K.. SWI "OS_Wr|
0000ee30  69 74 65 43 22 0d 4b 0a  10 20 53 57 49 20 26 31  |iteC".K.. SWI &1|
0000ee40  30 30 2b 31 36 0d 4b 14  1e 20 4d 4f 56 20 52 30  |00+16.K.. MOV R0|
0000ee50  2c 52 32 20 20 20 20 20  20 20 20 20 3b 20 20 20  |,R2         ;   |
0000ee60  72 65 64 0d 4b 1e 14 20  53 57 49 20 22 4f 53 5f  |red.K.. SWI "OS_|
0000ee70  57 72 69 74 65 43 22 0d  4b 28 20 20 4d 4f 56 20  |WriteC".K(  MOV |
0000ee80  52 30 2c 52 33 20 20 20  20 20 20 20 20 20 3b 20  |R0,R3         ; |
0000ee90  20 20 67 72 65 65 6e 0d  4b 32 14 20 53 57 49 20  |  green.K2. SWI |
0000eea0  22 4f 53 5f 57 72 69 74  65 43 22 0d 4b 3c 1f 20  |"OS_WriteC".K<. |
0000eeb0  4d 4f 56 20 52 30 2c 52  34 20 20 20 20 20 20 20  |MOV R0,R4       |
0000eec0  20 20 3b 20 20 20 62 6c  75 65 0d 4b 46 14 20 53  |  ;   blue.KF. S|
0000eed0  57 49 20 22 4f 53 5f 57  72 69 74 65 43 22 0d 4b  |WI "OS_WriteC".K|
0000eee0  50 05 20 0d 4b 5a 11 20  41 44 44 20 52 31 2c 52  |P. .KZ. ADD R1,R|
0000eef0  31 2c 23 31 0d 4b 64 0f  20 43 4d 50 20 52 31 2c  |1,#1.Kd. CMP R1,|
0000ef00  23 31 36 0d 4b 6e 14 20  42 4e 45 20 6e 65 78 74  |#16.Kn. BNE next|
0000ef10  5f 63 6f 6c 6f 75 72 0d  4b 78 10 20 4d 4f 56 20  |_colour.Kx. MOV |
0000ef20  52 31 35 2c 52 31 34 0d  4b 82 05 20 0d 4b 8c 05  |R15,R14.K.. .K..|
0000ef30  20 0d 4b 96 0f 20 2e 72  65 73 65 74 5f 6c 77 73  | .K.. .reset_lws|
0000ef40  0d 4b a0 3b 20 3b 20 20  72 65 73 65 74 20 6c 69  |.K.; ;  reset li|
0000ef50  76 65 73 3d 33 2c 20 73  63 6f 72 65 3d 30 2c 20  |ves=3, score=0, |
0000ef60  77 61 76 65 3d 31 20 20  20 66 6f 72 20 20 73 74  |wave=1   for  st|
0000ef70  61 72 74 20 6f 66 20 67  61 6d 65 0d 4b aa 1d 20  |art of game.K.. |
0000ef80  4d 4f 56 20 52 31 2c 23  31 20 3a 20 53 54 52 42  |MOV R1,#1 : STRB|
0000ef90  20 52 31 2c 77 61 76 65  0d 4b b4 21 20 4d 4f 56  | R1,wave.K.! MOV|
0000efa0  20 52 31 2c 23 34 39 20  3a 20 53 54 52 42 20 52  | R1,#49 : STRB R|
0000efb0  31 2c 43 77 61 76 65 2b  31 0d 4b be 1f 20 4d 4f  |1,Cwave+1.K.. MO|
0000efc0  56 20 52 31 2c 23 33 32  20 3a 20 53 54 52 42 20  |V R1,#32 : STRB |
0000efd0  52 31 2c 43 77 61 76 65  0d 4b c8 36 20 53 54 52  |R1,Cwave.K.6 STR|
0000efe0  42 20 52 31 2c 70 6c 61  79 65 72 73 5f 73 63 6f  |B R1,players_sco|
0000eff0  72 65 20 20 20 3a 20 53  54 52 42 20 52 31 2c 70  |re   : STRB R1,p|
0000f000  6c 61 79 65 72 73 5f 73  63 6f 72 65 2b 31 0d 4b  |layers_score+1.K|
0000f010  d2 36 20 53 54 52 42 20  52 31 2c 70 6c 61 79 65  |.6 STRB R1,playe|
0000f020  72 73 5f 73 63 6f 72 65  2b 32 20 3a 20 53 54 52  |rs_score+2 : STR|
0000f030  42 20 52 31 2c 70 6c 61  79 65 72 73 5f 73 63 6f  |B R1,players_sco|
0000f040  72 65 2b 33 0d 4b dc 1c  20 53 54 52 42 20 52 31  |re+3.K.. STRB R1|
0000f050  2c 70 6c 61 79 65 72 73  5f 73 63 6f 72 65 2b 34  |,players_score+4|
0000f060  0d 4b e6 31 20 4d 4f 56  20 52 31 2c 23 30 20 3a  |.K.1 MOV R1,#0 :|
0000f070  20 53 54 52 20 52 31 2c  73 63 6f 72 65 20 3a 20  | STR R1,score : |
0000f080  53 54 52 20 52 31 2c 65  78 74 72 61 5f 73 68 69  |STR R1,extra_shi|
0000f090  70 0d 4b f0 29 20 4d 4f  56 20 52 31 2c 23 34 38  |p.K.) MOV R1,#48|
0000f0a0  20 3a 20 53 54 52 42 20  52 31 2c 70 6c 61 79 65  | : STRB R1,playe|
0000f0b0  72 73 5f 73 63 6f 72 65  2b 35 0d 4b fa 12 20 42  |rs_score+5.K.. B|
0000f0c0  20 72 65 73 65 74 5f 6c  69 76 65 73 0d 4c 04 04  | reset_lives.L..|
0000f0d0  0d 4c 0e 0b 20 2e 70 61  75 73 65 0d 4c 18 10 20  |.L.. .pause.L.. |
0000f0e0  53 57 49 20 26 31 30 30  2b 31 38 0d 4c 22 0e 20  |SWI &100+18.L". |
0000f0f0  4d 4f 56 20 52 30 2c 23  30 0d 4c 2c 14 20 53 57  |MOV R0,#0.L,. SW|
0000f100  49 20 22 4f 53 5f 57 72  69 74 65 43 22 0d 4c 36  |I "OS_WriteC".L6|
0000f110  10 20 4d 4f 56 20 52 30  2c 23 31 32 38 0d 4c 40  |. MOV R0,#128.L@|
0000f120  14 20 53 57 49 20 22 4f  53 5f 57 72 69 74 65 43  |. SWI "OS_WriteC|
0000f130  22 0d 4c 4a 09 20 2e 6b  65 79 0d 4c 54 42 20 4d  |".LJ. .key.LTB M|
0000f140  4f 56 20 52 30 2c 23 31  32 39 20 3a 20 4c 44 52  |OV R0,#129 : LDR|
0000f150  20 52 31 2c 68 69 73 63  6f 72 65 6b 65 79 20 3a  | R1,hiscorekey :|
0000f160  20 4d 4f 56 20 52 32 2c  23 32 35 35 20 3a 20 53  | MOV R2,#255 : S|
0000f170  57 49 20 22 4f 53 5f 42  79 74 65 22 0d 4c 5e 1f  |WI "OS_Byte".L^.|
0000f180  20 43 4d 50 20 52 31 2c  23 32 35 35 20 3a 20 42  | CMP R1,#255 : B|
0000f190  4e 45 20 6e 65 78 74 5f  6b 65 79 0d 4c 68 27 20  |NE next_key.Lh' |
0000f1a0  4d 4f 56 20 52 30 2c 23  31 35 3a 4d 4f 56 20 52  |MOV R0,#15:MOV R|
0000f1b0  31 2c 23 30 3a 53 57 49  20 22 4f 53 5f 42 79 74  |1,#0:SWI "OS_Byt|
0000f1c0  65 22 0d 4c 72 15 20 53  54 4d 46 44 20 52 31 33  |e".Lr. STMFD R13|
0000f1d0  21 2c 7b 52 31 34 7d 0d  4c 7c 18 20 4c 44 52 20  |!,{R14}.L|. LDR |
0000f1e0  52 31 2c 73 63 72 65 65  6e 5f 73 74 61 72 74 0d  |R1,screen_start.|
0000f1f0  4c 86 19 20 4c 44 52 20  52 32 2c 6d 65 6d 6f 72  |L.. LDR R2,memor|
0000f200  79 32 5f 73 74 61 72 74  0d 4c 90 16 20 4c 44 52  |y2_start.L.. LDR|
0000f210  20 52 33 2c 73 63 72 65  65 6e 5f 65 6e 64 0d 4c  | R3,screen_end.L|
0000f220  9a 14 20 42 4c 20 73 74  6f 72 65 5f 73 63 72 65  |.. BL store_scre|
0000f230  65 6e 0d 4c a4 15 20 42  4c 20 73 63 72 65 65 6e  |en.L.. BL screen|
0000f240  5f 77 69 74 68 65 72 0d  4c ae 1f 20 4d 4f 56 20  |_wither.L.. MOV |
0000f250  52 31 2c 23 30 20 3a 20  53 54 52 42 20 52 31 2c  |R1,#0 : STRB R1,|
0000f260  42 48 66 6c 61 67 0d 4c  b8 18 20 42 4c 20 77 69  |BHflag.L.. BL wi|
0000f270  74 68 65 72 5f 6f 6e 5f  73 63 72 65 65 6e 0d 4c  |ther_on_screen.L|
0000f280  c2 09 20 2e 70 63 32 0d  4c cc 27 20 4d 4f 56 20  |.. .pc2.L.' MOV |
0000f290  52 30 2c 23 31 35 3a 4d  4f 56 20 52 31 2c 23 30  |R0,#15:MOV R1,#0|
0000f2a0  3a 53 57 49 20 22 4f 53  5f 42 79 74 65 22 0d 4c  |:SWI "OS_Byte".L|
0000f2b0  d6 16 20 42 4c 20 63 68  61 6e 67 65 5f 70 61 6c  |.. BL change_pal|
0000f2c0  65 74 74 65 0d 4c e0 32  20 4d 4f 56 20 52 30 2c  |ette.L.2 MOV R0,|
0000f2d0  23 31 32 39 3a 4d 4f 56  20 52 31 2c 23 31 3a 4d  |#129:MOV R1,#1:M|
0000f2e0  4f 56 20 52 32 2c 23 30  3a 53 57 49 20 22 4f 53  |OV R2,#0:SWI "OS|
0000f2f0  5f 42 79 74 65 22 0d 4c  ea 18 20 43 4d 50 20 52  |_Byte".L.. CMP R|
0000f300  32 2c 23 30 20 3a 20 42  4e 45 20 70 63 32 0d 4c  |2,#0 : BNE pc2.L|
0000f310  f4 15 20 42 4c 20 73 63  72 65 65 6e 5f 77 69 74  |.. BL screen_wit|
0000f320  68 65 72 0d 4c fe 0e 20  4d 4f 56 20 52 33 2c 23  |her.L.. MOV R3,#|
0000f330  38 0d 4d 08 0f 20 2e 6e  65 78 74 5f 62 69 74 33  |8.M.. .next_bit3|
0000f340  0d 4d 12 19 20 4c 44 52  20 52 31 2c 6d 65 6d 6f  |.M.. LDR R1,memo|
0000f350  72 79 32 5f 73 74 61 72  74 0d 4d 1c 17 20 4c 44  |ry2_start.M.. LD|
0000f360  52 20 52 32 2c 6d 65 6d  6f 72 79 32 5f 65 6e 64  |R R2,memory2_end|
0000f370  0d 4d 26 18 20 4c 44 52  20 52 37 2c 73 63 72 65  |.M&. LDR R7,scre|
0000f380  65 6e 5f 73 74 61 72 74  0d 4d 30 45 20 42 4c 20  |en_start.M0E BL |
0000f390  77 69 74 68 65 72 5f 6d  65 6d 6f 72 79 20 20 20  |wither_memory   |
0000f3a0  20 3b 20 20 20 20 77 69  74 68 65 72 20 6d 65 6d  | ;    wither mem|
0000f3b0  6f 72 79 20 63 6f 6e 74  65 6e 74 73 20 26 31 45  |ory contents &1E|
0000f3c0  30 30 30 20 74 6f 20 26  32 38 30 30 30 0d 4d 3a  |000 to &28000.M:|
0000f3d0  12 20 53 55 42 53 20 52  33 2c 52 33 2c 23 31 0d  |. SUBS R3,R3,#1.|
0000f3e0  4d 44 12 20 42 4e 45 20  6e 65 78 74 5f 62 69 74  |MD. BNE next_bit|
0000f3f0  33 0d 4d 4e 19 20 4c 44  52 20 52 31 2c 6d 65 6d  |3.MN. LDR R1,mem|
0000f400  6f 72 79 32 5f 73 74 61  72 74 0d 4d 58 18 20 4c  |ory2_start.MX. L|
0000f410  44 52 20 52 32 2c 73 63  72 65 65 6e 5f 73 74 61  |DR R2,screen_sta|
0000f420  72 74 0d 4d 62 17 20 4c  44 52 20 52 33 2c 6d 65  |rt.Mb. LDR R3,me|
0000f430  6d 6f 72 79 32 5f 65 6e  64 0d 4d 6c 14 20 42 4c  |mory2_end.Ml. BL|
0000f440  20 77 72 69 74 65 5f 73  63 72 65 65 6e 0d 4d 76  | write_screen.Mv|
0000f450  04 0d 4d 80 15 20 4c 44  4d 46 44 20 52 31 33 21  |..M.. LDMFD R13!|
0000f460  2c 7b 52 31 34 7d 0d 4d  8a 0e 20 2e 6e 65 78 74  |,{R14}.M.. .next|
0000f470  5f 6b 65 79 0d 4d 94 40  20 4d 4f 56 20 52 30 2c  |_key.M.@ MOV R0,|
0000f480  23 31 32 39 20 3a 20 4c  44 52 20 52 31 2c 73 70  |#129 : LDR R1,sp|
0000f490  61 63 65 6b 65 79 20 3a  20 4d 4f 56 20 52 32 2c  |acekey : MOV R2,|
0000f4a0  23 32 35 35 20 3a 20 53  57 49 20 22 4f 53 5f 42  |#255 : SWI "OS_B|
0000f4b0  79 74 65 22 0d 4d 9e 1a  20 43 4d 50 20 52 31 2c  |yte".M.. CMP R1,|
0000f4c0  23 32 35 35 20 3a 20 42  4e 45 20 6b 65 79 0d 4d  |#255 : BNE key.M|
0000f4d0  a8 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 4d  |.. MOV R15,R14.M|
0000f4e0  b2 46 20 2e 73 70 61 63  65 6b 65 79 20 20 20 45  |.F .spacekey   E|
0000f4f0  51 55 44 20 26 46 46 46  46 46 46 39 44 20 20 20  |QUD &FFFFFF9D   |
0000f500  20 20 20 20 20 3b 20 53  50 41 43 45 20 42 41 52  |     ; SPACE BAR|
0000f510  20 2d 20 49 6e 6b 65 79  20 56 61 6c 75 65 20 28  | - Inkey Value (|
0000f520  2d 39 39 29 0d 4d bc 46  20 2e 68 69 73 63 6f 72  |-99).M.F .hiscor|
0000f530  65 6b 65 79 20 45 51 55  44 20 26 46 46 46 46 46  |ekey EQUD &FFFFF|
0000f540  46 41 42 20 20 20 20 20  20 20 20 3b 20 20 20 20  |FAB        ;    |
0000f550  20 20 20 20 20 48 20 2d  20 49 6e 6b 65 79 20 56  |     H - Inkey V|
0000f560  61 6c 75 65 20 28 2d 38  35 29 0d 4d c6 05 20 0d  |alue (-85).M.. .|
0000f570  4d d0 0f 20 2e 67 61 6d  65 5f 6f 76 65 72 0d 4d  |M.. .game_over.M|
0000f580  da 13 20 42 4c 20 70 72  69 6e 74 5f 6c 69 76 65  |.. BL print_live|
0000f590  73 0d 4d e4 27 20 4d 4f  56 20 52 30 2c 23 31 35  |s.M.' MOV R0,#15|
0000f5a0  3a 4d 4f 56 20 52 31 2c  23 30 3a 53 57 49 20 22  |:MOV R1,#0:SWI "|
0000f5b0  4f 53 5f 42 79 74 65 22  0d 4d ee 1b 20 53 57 49  |OS_Byte".M.. SWI|
0000f5c0  20 22 4f 53 5f 52 65 6d  6f 76 65 43 75 72 73 6f  | "OS_RemoveCurso|
0000f5d0  72 73 22 0d 4d f8 10 20  53 57 49 20 26 31 30 30  |rs".M.. SWI &100|
0000f5e0  2b 31 38 0d 4e 02 0e 20  4d 4f 56 20 52 30 2c 23  |+18.N.. MOV R0,#|
0000f5f0  30 0d 4e 0c 14 20 53 57  49 20 22 4f 53 5f 57 72  |0.N.. SWI "OS_Wr|
0000f600  69 74 65 43 22 0d 4e 16  10 20 4d 4f 56 20 52 30  |iteC".N.. MOV R0|
0000f610  2c 23 31 32 38 0d 4e 20  14 20 53 57 49 20 22 4f  |,#128.N . SWI "O|
0000f620  53 5f 57 72 69 74 65 43  22 0d 4e 2a 04 0d 4e 34  |S_WriteC".N*..N4|
0000f630  10 20 53 57 49 20 26 31  30 30 2b 33 31 0d 4e 3e  |. SWI &100+31.N>|
0000f640  0f 20 4d 4f 56 20 52 30  2c 23 31 36 0d 4e 48 14  |. MOV R0,#16.NH.|
0000f650  20 53 57 49 20 22 4f 53  5f 57 72 69 74 65 43 22  | SWI "OS_WriteC"|
0000f660  0d 4e 52 0f 20 4d 4f 56  20 52 30 2c 23 31 34 0d  |.NR. MOV R0,#14.|
0000f670  4e 5c 14 20 53 57 49 20  22 4f 53 5f 57 72 69 74  |N\. SWI "OS_Writ|
0000f680  65 43 22 0d 4e 66 14 20  53 57 49 20 22 4f 53 5f  |eC".Nf. SWI "OS_|
0000f690  57 72 69 74 65 53 22 0d  4e 70 20 20 45 51 55 53  |WriteS".Np  EQUS|
0000f6a0  20 28 22 47 41 4d 45 20  4f 56 45 52 22 29 20 3a  | ("GAME OVER") :|
0000f6b0  20 45 51 55 42 20 30 0d  4e 7a 05 20 0d 4e 84 3c  | EQUB 0.Nz. .N.<|
0000f6c0  20 3b 20 20 20 63 68 65  63 6b 20 69 66 20 73 63  | ;   check if sc|
0000f6d0  6f 72 65 20 69 73 20 74  6f 20 62 65 20 69 6e 73  |ore is to be ins|
0000f6e0  65 72 74 65 64 20 69 6e  74 6f 20 68 69 73 63 6f  |erted into hisco|
0000f6f0  72 65 20 74 61 62 6c 65  0d 4e 8e 12 20 41 44 52  |re table.N.. ADR|
0000f700  20 52 31 2c 73 63 6f 72  65 73 0d 4e 98 1f 20 42  | R1,scores.N.. B|
0000f710  4c 20 64 69 72 65 63 74  69 76 65 5f 70 6c 61 79  |L directive_play|
0000f720  65 72 73 5f 73 63 6f 72  65 0d 4e a2 0e 20 4d 4f  |ers_score.N.. MO|
0000f730  56 20 52 38 2c 23 30 0d  4e ac 11 20 2e 63 68 65  |V R8,#0.N.. .che|
0000f740  63 6b 5f 73 63 6f 72 65  0d 4e b6 36 20 4d 4f 56  |ck_score.N.6 MOV|
0000f750  20 52 35 2c 23 36 20 20  20 20 20 20 20 20 20 20  | R5,#6          |
0000f760  20 20 20 20 20 20 3b 20  20 36 20 63 68 61 72 61  |      ;  6 chara|
0000f770  63 74 65 72 73 20 69 6e  20 73 63 6f 72 65 0d 4e  |cters in score.N|
0000f780  c0 0e 20 4d 4f 56 20 52  33 2c 52 31 0d 4e ca 0e  |.. MOV R3,R1.N..|
0000f790  20 4d 4f 56 20 52 34 2c  52 32 0d 4e d4 0f 20 2e  | MOV R4,R2.N.. .|
0000f7a0  6e 65 78 74 5f 63 68 61  72 0d 4e de 14 20 4c 44  |next_char.N.. LD|
0000f7b0  52 42 20 52 36 2c 5b 52  33 5d 2c 23 31 0d 4e e8  |RB R6,[R3],#1.N.|
0000f7c0  14 20 4c 44 52 42 20 52  37 2c 5b 52 34 5d 2c 23  |. LDRB R7,[R4],#|
0000f7d0  31 0d 4e f2 0e 20 43 4d  50 20 52 36 2c 52 37 0d  |1.N.. CMP R6,R7.|
0000f7e0  4e fc 13 20 42 47 54 20  6e 65 78 74 5f 73 63 6f  |N.. BGT next_sco|
0000f7f0  72 65 0d 4f 06 11 20 42  4c 54 20 73 63 6f 72 65  |re.O.. BLT score|
0000f800  5f 69 6e 0d 4f 10 14 20  53 55 42 45 51 53 20 52  |_in.O.. SUBEQS R|
0000f810  35 2c 52 35 2c 23 31 0d  4f 1a 12 20 42 4e 45 20  |5,R5,#1.O.. BNE |
0000f820  6e 65 78 74 5f 63 68 61  72 0d 4f 24 3e 20 42 20  |next_char.O$> B |
0000f830  73 63 6f 72 65 5f 69 6e  20 20 20 20 20 20 20 20  |score_in        |
0000f840  20 20 20 20 20 20 20 3b  20 20 69 6e 73 65 72 74  |       ;  insert|
0000f850  20 73 63 6f 72 65 20 69  6e 20 68 69 73 63 6f 72  | score in hiscor|
0000f860  65 20 74 61 62 6c 65 0d  4f 2e 10 20 2e 6e 65 78  |e table.O.. .nex|
0000f870  74 5f 73 63 6f 72 65 0d  4f 38 2f 20 41 44 44 20  |t_score.O8/ ADD |
0000f880  52 38 2c 52 38 2c 23 31  20 20 20 20 20 20 20 20  |R8,R8,#1        |
0000f890  20 20 20 20 20 3b 20 20  66 6c 61 67 20 66 6f 72  |     ;  flag for|
0000f8a0  20 6e 61 6d 65 73 0d 4f  42 1f 20 43 4d 50 20 52  | names.OB. CMP R|
0000f8b0  38 2c 23 31 30 20 3a 20  42 45 51 20 73 63 6f 72  |8,#10 : BEQ scor|
0000f8c0  65 5f 6f 75 74 0d 4f 4c  11 20 41 44 44 20 52 31  |e_out.OL. ADD R1|
0000f8d0  2c 52 31 2c 23 38 0d 4f  56 12 20 42 20 63 68 65  |,R1,#8.OV. B che|
0000f8e0  63 6b 5f 73 63 6f 72 65  0d 4f 60 0e 20 2e 73 63  |ck_score.O`. .sc|
0000f8f0  6f 72 65 5f 69 6e 0d 4f  6a 04 0d 4f 74 12 20 42  |ore_in.Oj..Ot. B|
0000f900  4c 20 65 6e 74 65 72 5f  6e 61 6d 65 0d 4f 7e 04  |L enter_name.O~.|
0000f910  0d 4f 88 3b 20 43 4d 50  20 52 38 2c 23 39 20 3a  |.O.; CMP R8,#9 :|
0000f920  20 42 45 51 20 73 74 6f  72 65 5f 6e 61 6d 65 20  | BEQ store_name |
0000f930  20 20 3b 20 62 6f 74 74  6f 6d 20 6f 66 20 68 69  |  ; bottom of hi|
0000f940  73 63 6f 72 65 20 74 61  62 6c 65 0d 4f 92 48 20  |score table.O.H |
0000f950  2e 6d 6f 76 65 5f 74 61  62 6c 65 20 20 20 20 20  |.move_table     |
0000f960  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 6d  |             ; m|
0000f970  6f 76 65 20 73 63 6f 72  65 73 20 3c 20 70 6c 61  |ove scores < pla|
0000f980  79 65 72 73 20 73 63 6f  72 65 20 64 6f 77 6e 20  |yers score down |
0000f990  6f 6e 65 0d 4f 9c 0e 20  4d 4f 56 20 52 36 2c 23  |one.O.. MOV R6,#|
0000f9a0  38 0d 4f a6 10 20 2e 6d  6f 76 65 5f 6e 61 6d 65  |8.O.. .move_name|
0000f9b0  73 0d 4f b0 31 20 41 44  52 20 20 52 31 2c 6e 61  |s.O.1 ADR  R1,na|
0000f9c0  6d 65 73 20 3a 20 4d 4f  56 20 52 39 2c 23 31 36  |mes : MOV R9,#16|
0000f9d0  20 3a 20 4d 4c 41 20 52  31 2c 52 39 2c 52 36 2c  | : MLA R1,R9,R6,|
0000f9e0  52 31 0d 4f ba 0f 20 4d  4f 56 20 52 35 2c 23 31  |R1.O.. MOV R5,#1|
0000f9f0  35 0d 4f c4 10 20 2e 6e  65 78 74 5f 6e 63 68 61  |5.O.. .next_ncha|
0000fa00  72 0d 4f ce 14 20 4c 44  52 42 20 52 34 2c 5b 52  |r.O.. LDRB R4,[R|
0000fa10  31 5d 2c 23 31 0d 4f d8  15 20 53 54 52 42 20 52  |1],#1.O.. STRB R|
0000fa20  34 2c 5b 52 31 2c 23 31  35 5d 0d 4f e2 12 20 53  |4,[R1,#15].O.. S|
0000fa30  55 42 53 20 52 35 2c 52  35 2c 23 31 0d 4f ec 13  |UBS R5,R5,#1.O..|
0000fa40  20 42 4e 45 20 6e 65 78  74 5f 6e 63 68 61 72 0d  | BNE next_nchar.|
0000fa50  4f f6 1d 20 53 55 42 20  52 36 2c 52 36 2c 23 31  |O.. SUB R6,R6,#1|
0000fa60  20 3a 20 43 4d 50 20 52  36 2c 52 38 0d 50 00 13  | : CMP R6,R8.P..|
0000fa70  20 42 47 45 20 6d 6f 76  65 5f 6e 61 6d 65 73 0d  | BGE move_names.|
0000fa80  50 0a 05 20 0d 50 14 0e  20 4d 4f 56 20 52 36 2c  |P.. .P.. MOV R6,|
0000fa90  23 38 0d 50 1e 11 20 2e  6d 6f 76 65 5f 73 63 6f  |#8.P.. .move_sco|
0000faa0  72 65 73 0d 50 28 31 20  41 44 52 20 20 52 31 2c  |res.P(1 ADR  R1,|
0000fab0  73 63 6f 72 65 73 20 3a  20 4d 4f 56 20 52 39 2c  |scores : MOV R9,|
0000fac0  23 38 20 3a 20 4d 4c 41  20 52 31 2c 52 39 2c 52  |#8 : MLA R1,R9,R|
0000fad0  36 2c 52 31 0d 50 32 0e  20 4d 4f 56 20 52 35 2c  |6,R1.P2. MOV R5,|
0000fae0  23 36 0d 50 3c 10 20 2e  6e 65 78 74 5f 73 63 68  |#6.P<. .next_sch|
0000faf0  61 72 0d 50 46 14 20 4c  44 52 42 20 52 34 2c 5b  |ar.PF. LDRB R4,[|
0000fb00  52 31 5d 2c 23 31 0d 50  50 14 20 53 54 52 42 20  |R1],#1.PP. STRB |
0000fb10  52 34 2c 5b 52 31 2c 23  37 5d 0d 50 5a 12 20 53  |R4,[R1,#7].PZ. S|
0000fb20  55 42 53 20 52 35 2c 52  35 2c 23 31 0d 50 64 13  |UBS R5,R5,#1.Pd.|
0000fb30  20 42 4e 45 20 6e 65 78  74 5f 73 63 68 61 72 0d  | BNE next_schar.|
0000fb40  50 6e 1d 20 53 55 42 20  52 36 2c 52 36 2c 23 31  |Pn. SUB R6,R6,#1|
0000fb50  20 3a 20 43 4d 50 20 52  36 2c 52 38 0d 50 78 14  | : CMP R6,R8.Px.|
0000fb60  20 42 47 45 20 6d 6f 76  65 5f 73 63 6f 72 65 73  | BGE move_scores|
0000fb70  0d 50 82 05 20 0d 50 8c  37 20 2e 73 74 6f 72 65  |.P.. .P.7 .store|
0000fb80  5f 6e 61 6d 65 20 20 20  20 20 20 20 20 20 20 20  |_name           |
0000fb90  20 20 20 20 20 20 20 3b  20 20 73 74 6f 72 65 20  |       ;  store |
0000fba0  70 6c 61 79 65 72 73 20  6e 61 6d 65 0d 50 96 30  |players name.P.0|
0000fbb0  20 41 44 52 20 52 31 2c  6e 61 6d 65 73 20 3a 20  | ADR R1,names : |
0000fbc0  4d 4f 56 20 52 39 2c 23  31 36 20 3a 20 4d 4c 41  |MOV R9,#16 : MLA|
0000fbd0  20 52 31 2c 52 39 2c 52  38 2c 52 31 0d 50 a0 18  | R1,R9,R8,R1.P..|
0000fbe0  20 41 44 52 20 52 32 2c  70 6c 61 79 65 72 73 5f  | ADR R2,players_|
0000fbf0  6e 61 6d 65 0d 50 aa 0f  20 4d 4f 56 20 52 33 2c  |name.P.. MOV R3,|
0000fc00  23 31 35 0d 50 b4 0f 20  2e 6e 65 78 74 5f 63 68  |#15.P.. .next_ch|
0000fc10  61 72 0d 50 be 14 20 4c  44 52 42 20 52 34 2c 5b  |ar.P.. LDRB R4,[|
0000fc20  52 32 5d 2c 23 31 0d 50  c8 42 20 43 4d 50 20 52  |R2],#1.P.B CMP R|
0000fc30  34 2c 23 26 44 20 20 20  20 20 20 20 20 3b 20 20  |4,#&D        ;  |
0000fc40  20 73 74 72 69 6e 67 20  65 6e 74 65 72 65 64 20  | string entered |
0000fc50  69 73 20 74 65 72 6d 69  6e 61 74 65 64 20 62 79  |is terminated by|
0000fc60  20 f8 20 63 68 61 72 2e  0d 50 d2 0f 20 42 45 51  | . char..P.. BEQ|
0000fc70  20 73 70 61 63 65 73 0d  50 dc 14 20 53 54 52 42  | spaces.P.. STRB|
0000fc80  20 52 34 2c 5b 52 31 5d  2c 23 31 0d 50 e6 12 20  | R4,[R1],#1.P.. |
0000fc90  53 55 42 53 20 52 33 2c  52 33 2c 23 31 0d 50 f0  |SUBS R3,R3,#1.P.|
0000fca0  12 20 42 4e 45 20 6e 65  78 74 5f 63 68 61 72 0d  |. BNE next_char.|
0000fcb0  50 fa 12 20 42 20 73 74  6f 72 65 5f 73 63 6f 72  |P.. B store_scor|
0000fcc0  65 0d 51 04 3b 20 2e 73  70 61 63 65 73 20 20 20  |e.Q.; .spaces   |
0000fcd0  20 20 20 20 20 20 20 20  3b 20 20 20 62 6c 61 6e  |        ;   blan|
0000fce0  6b 73 20 6f 75 74 20 72  65 73 74 20 6f 66 20 70  |ks out rest of p|
0000fcf0  72 65 76 69 6f 75 73 20  6e 61 6d 65 0d 51 0e 0f  |revious name.Q..|
0000fd00  20 4d 4f 56 20 52 34 2c  23 33 32 0d 51 18 14 20  | MOV R4,#32.Q.. |
0000fd10  53 54 52 42 20 52 34 2c  5b 52 31 5d 2c 23 31 0d  |STRB R4,[R1],#1.|
0000fd20  51 22 12 20 53 55 42 53  20 52 33 2c 52 33 2c 23  |Q". SUBS R3,R3,#|
0000fd30  31 0d 51 2c 0f 20 42 4e  45 20 73 70 61 63 65 73  |1.Q,. BNE spaces|
0000fd40  0d 51 36 05 20 0d 51 40  38 20 2e 73 74 6f 72 65  |.Q6. .Q@8 .store|
0000fd50  5f 73 63 6f 72 65 20 20  20 20 20 20 20 20 20 20  |_score          |
0000fd60  20 20 20 20 20 20 20 3b  20 20 73 74 6f 72 65 20  |       ;  store |
0000fd70  70 6c 61 79 65 72 73 20  73 63 6f 72 65 0d 51 4a  |players score.QJ|
0000fd80  30 20 41 44 52 20 52 31  2c 73 63 6f 72 65 73 20  |0 ADR R1,scores |
0000fd90  3a 20 4d 4f 56 20 52 39  2c 23 38 20 3a 20 4d 4c  |: MOV R9,#8 : ML|
0000fda0  41 20 52 31 2c 52 39 2c  52 38 2c 52 31 0d 51 54  |A R1,R9,R8,R1.QT|
0000fdb0  1f 20 42 4c 20 64 69 72  65 63 74 69 76 65 5f 70  |. BL directive_p|
0000fdc0  6c 61 79 65 72 73 5f 73  63 6f 72 65 0d 51 5e 0e  |layers_score.Q^.|
0000fdd0  20 4d 4f 56 20 52 33 2c  23 36 0d 51 68 0f 20 2e  | MOV R3,#6.Qh. .|
0000fde0  6e 65 78 74 5f 62 79 74  65 0d 51 72 14 20 4c 44  |next_byte.Qr. LD|
0000fdf0  52 42 20 52 34 2c 5b 52  32 5d 2c 23 31 0d 51 7c  |RB R4,[R2],#1.Q||
0000fe00  14 20 53 54 52 42 20 52  34 2c 5b 52 31 5d 2c 23  |. STRB R4,[R1],#|
0000fe10  31 0d 51 86 12 20 53 55  42 53 20 52 33 2c 52 33  |1.Q.. SUBS R3,R3|
0000fe20  2c 23 31 0d 51 90 12 20  42 4e 45 20 6e 65 78 74  |,#1.Q.. BNE next|
0000fe30  5f 62 79 74 65 0d 51 9a  13 20 42 20 6e 61 6d 65  |_byte.Q.. B name|
0000fe40  5f 65 6e 74 65 72 65 64  0d 51 a4 05 20 0d 51 ae  |_entered.Q.. .Q.|
0000fe50  3e 20 2e 73 63 6f 72 65  5f 6f 75 74 20 20 20 20  |> .score_out    |
0000fe60  20 20 20 20 3b 20 20 20  73 63 6f 72 65 20 6e 6f  |    ;   score no|
0000fe70  74 20 69 6e 73 65 72 74  65 64 20 69 6e 20 68 69  |t inserted in hi|
0000fe80  73 63 6f 72 65 20 74 61  62 6c 65 0d 51 b8 10 20  |score table.Q.. |
0000fe90  53 57 49 20 26 31 30 30  2b 33 31 0d 51 c2 0e 20  |SWI &100+31.Q.. |
0000fea0  4d 4f 56 20 52 30 2c 23  37 0d 51 cc 14 20 53 57  |MOV R0,#7.Q.. SW|
0000feb0  49 20 22 4f 53 5f 57 72  69 74 65 43 22 0d 51 d6  |I "OS_WriteC".Q.|
0000fec0  0f 20 4d 4f 56 20 52 30  2c 23 32 37 0d 51 e0 14  |. MOV R0,#27.Q..|
0000fed0  20 53 57 49 20 22 4f 53  5f 57 72 69 74 65 43 22  | SWI "OS_WriteC"|
0000fee0  0d 51 ea 14 20 53 57 49  20 22 4f 53 5f 57 72 69  |.Q.. SWI "OS_Wri|
0000fef0  74 65 53 22 0d 51 f4 32  20 45 51 55 53 20 28 22  |teS".Q.2 EQUS ("|
0000ff00  3c 50 72 65 73 73 20 61  6e 79 20 6b 65 79 20 74  |<Press any key t|
0000ff10  6f 20 63 6f 6e 74 69 6e  75 65 3e 22 29 20 3a 20  |o continue>") : |
0000ff20  45 51 55 42 20 30 0d 51  fe 2f 20 4d 4f 56 20 52  |EQUB 0.Q./ MOV R|
0000ff30  30 2c 23 31 35 3a 4d 4f  56 20 52 31 2c 23 30 3a  |0,#15:MOV R1,#0:|
0000ff40  53 57 49 20 22 4f 53 5f  42 79 74 65 22 20 3a 20  |SWI "OS_Byte" : |
0000ff50  53 57 49 20 34 0d 52 08  04 0d 52 12 12 20 2e 6e  |SWI 4.R...R.. .n|
0000ff60  61 6d 65 5f 65 6e 74 65  72 65 64 0d 52 1c 15 20  |ame_entered.R.. |
0000ff70  42 4c 20 73 63 72 65 65  6e 5f 77 69 74 68 65 72  |BL screen_wither|
0000ff80  0d 52 26 1f 20 4d 4f 56  20 52 31 2c 23 30 20 3a  |.R&. MOV R1,#0 :|
0000ff90  20 53 54 52 42 20 52 31  2c 42 48 66 6c 61 67 0d  | STRB R1,BHflag.|
0000ffa0  52 30 18 20 42 4c 20 77  69 74 68 65 72 5f 6f 6e  |R0. BL wither_on|
0000ffb0  5f 73 63 72 65 65 6e 0d  52 3a 08 20 2e 70 63 0d  |_screen.R:. .pc.|
0000ffc0  52 44 27 20 4d 4f 56 20  52 30 2c 23 31 35 3a 4d  |RD' MOV R0,#15:M|
0000ffd0  4f 56 20 52 31 2c 23 30  3a 53 57 49 20 22 4f 53  |OV R1,#0:SWI "OS|
0000ffe0  5f 42 79 74 65 22 0d 52  4e 16 20 42 4c 20 63 68  |_Byte".RN. BL ch|
0000fff0  61 6e 67 65 5f 70 61 6c  65 74 74 65 0d 52 58 32  |ange_palette.RX2|
00010000  20 4d 4f 56 20 52 30 2c  23 31 32 39 3a 4d 4f 56  | MOV R0,#129:MOV|
00010010  20 52 31 2c 23 31 3a 4d  4f 56 20 52 32 2c 23 30  | R1,#1:MOV R2,#0|
00010020  3a 53 57 49 20 22 4f 53  5f 42 79 74 65 22 0d 52  |:SWI "OS_Byte".R|
00010030  62 17 20 43 4d 50 20 52  32 2c 23 30 20 3a 20 42  |b. CMP R2,#0 : B|
00010040  4e 45 20 70 63 0d 52 6c  15 20 42 4c 20 73 63 72  |NE pc.Rl. BL scr|
00010050  65 65 6e 5f 77 69 74 68  65 72 0d 52 76 1f 20 4d  |een_wither.Rv. M|
00010060  4f 56 20 52 31 2c 23 31  20 3a 20 53 54 52 42 20  |OV R1,#1 : STRB |
00010070  52 31 2c 42 48 66 6c 61  67 0d 52 80 18 20 42 4c  |R1,BHflag.R.. BL|
00010080  20 77 69 74 68 65 72 5f  6f 6e 5f 73 63 72 65 65  | wither_on_scree|
00010090  6e 0d 52 8a 04 0d 52 94  11 20 42 20 67 61 6d 65  |n.R...R.. B game|
000100a0  5f 73 74 61 72 74 0d 52  9e 05 20 0d 52 a8 10 20  |_start.R.. .R.. |
000100b0  2e 65 6e 74 65 72 5f 6e  61 6d 65 0d 52 b2 10 20  |.enter_name.R.. |
000100c0  53 57 49 20 26 31 30 30  2b 33 31 0d 52 bc 0e 20  |SWI &100+31.R.. |
000100d0  4d 4f 56 20 52 30 2c 23  35 0d 52 c6 14 20 53 57  |MOV R0,#5.R.. SW|
000100e0  49 20 22 4f 53 5f 57 72  69 74 65 43 22 0d 52 d0  |I "OS_WriteC".R.|
000100f0  0f 20 4d 4f 56 20 52 30  2c 23 32 34 0d 52 da 14  |. MOV R0,#24.R..|
00010100  20 53 57 49 20 22 4f 53  5f 57 72 69 74 65 43 22  | SWI "OS_WriteC"|
00010110  0d 52 e4 14 20 53 57 49  20 22 4f 53 5f 57 72 69  |.R.. SWI "OS_Wri|
00010120  74 65 53 22 0d 52 ee 28  20 45 51 55 53 20 28 22  |teS".R.( EQUS ("|
00010130  45 6e 74 65 72 20 79 6f  75 72 20 6e 61 6d 65 3a  |Enter your name:|
00010140  20 22 29 20 3a 20 45 51  55 42 20 30 0d 52 f8 05  | ") : EQUB 0.R..|
00010150  20 0d 53 02 18 20 41 44  52 20 52 30 2c 70 6c 61  | .S.. ADR R0,pla|
00010160  79 65 72 73 5f 6e 61 6d  65 0d 53 0c 0f 20 4d 4f  |yers_name.S.. MO|
00010170  56 20 52 31 2c 23 31 35  0d 53 16 0f 20 4d 4f 56  |V R1,#15.S.. MOV|
00010180  20 52 32 2c 23 33 32 0d  53 20 10 20 4d 4f 56 20  | R2,#32.S . MOV |
00010190  52 33 2c 23 31 32 36 0d  53 2a 16 20 53 57 49 20  |R3,#126.S*. SWI |
000101a0  22 4f 53 5f 52 65 61 64  4c 69 6e 65 22 0d 53 34  |"OS_ReadLine".S4|
000101b0  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 53 3e  |. MOV R15,R14.S>|
000101c0  2b 20 2e 70 6c 61 79 65  72 73 5f 6e 61 6d 65 20  |+ .players_name |
000101d0  20 45 51 55 53 20 22 2d  2d 2d 2d 2d 20 4e 49 43  | EQUS "----- NIC|
000101e0  4b 20 2d 2d 2d 2d 2d 22  0d 53 48 48 20 2e 42 48  |K -----".SHH .BH|
000101f0  66 6c 61 67 20 45 51 55  42 20 30 20 3a 20 41 4c  |flag EQUB 0 : AL|
00010200  49 47 4e 20 20 20 20 3b  20 20 e7 20 3d 30 20 70  |IGN    ;  . =0 p|
00010210  72 69 6e 74 20 68 69 73  63 6f 72 65 73 20 8b 20  |rint hiscores . |
00010220  e7 20 3d 31 20 70 6c 6f  74 20 62 6f 72 64 65 72  |. =1 plot border|
00010230  0d 53 52 04 0d 53 5c 16  20 2e 77 69 74 68 65 72  |.SR..S\. .wither|
00010240  5f 6f 6e 5f 73 63 72 65  65 6e 0d 53 66 41 20 3b  |_on_screen.SfA ;|
00010250  20 20 20 73 65 74 20 75  70 20 62 61 6e 6b 20 32  |   set up bank 2|
00010260  20 66 6f 72 20 64 69 73  70 6c 61 79 20 74 6f 20  | for display to |
00010270  61 6c 6c 6f 77 20 62 61  6e 6b 20 31 20 74 6f 20  |allow bank 1 to |
00010280  62 65 20 61 63 63 65 73  73 65 64 0d 53 70 29 20  |be accessed.Sp) |
00010290  4d 4f 56 20 52 30 2c 23  31 31 32 20 20 20 20 20  |MOV R0,#112     |
000102a0  20 20 20 3b 20 20 20 20  77 72 69 74 65 20 62 61  |   ;    write ba|
000102b0  6e 6b 20 32 0d 53 7a 0e  20 4d 4f 56 20 52 31 2c  |nk 2.Sz. MOV R1,|
000102c0  23 32 0d 53 84 12 20 53  57 49 20 22 4f 53 5f 42  |#2.S.. SWI "OS_B|
000102d0  79 74 65 22 0d 53 8e 04  0d 53 98 1e 20 53 57 49  |yte".S...S.. SWI|
000102e0  20 26 31 30 30 2b 31 32  20 20 20 20 20 20 20 20  | &100+12        |
000102f0  3b 20 20 20 20 db 0d 53  a2 04 0d 53 ac 2b 20 4d  |;    ..S...S.+ M|
00010300  4f 56 20 52 30 2c 23 31  31 33 20 20 20 20 20 20  |OV R0,#113      |
00010310  20 20 3b 20 20 20 20 64  69 73 70 6c 61 79 20 62  |  ;    display b|
00010320  61 6e 6b 20 32 0d 53 b6  0e 20 4d 4f 56 20 52 31  |ank 2.S.. MOV R1|
00010330  2c 23 32 0d 53 c0 12 20  53 57 49 20 22 4f 53 5f  |,#2.S.. SWI "OS_|
00010340  42 79 74 65 22 0d 53 ca  05 20 0d 53 d4 37 20 3b  |Byte".S.. .S.7 ;|
00010350  20 20 20 62 61 6e 6b 20  31 20 69 73 20 53 43 52  |   bank 1 is SCR|
00010360  45 45 4e 20 53 48 41 44  4f 57 20 eb 20 73 74 61  |EEN SHADOW . sta|
00010370  72 74 69 6e 67 20 61 74  20 26 31 46 44 38 30 30  |rting at &1FD800|
00010380  30 0d 53 de 29 20 4d 4f  56 20 52 30 2c 23 31 31  |0.S.) MOV R0,#11|
00010390  32 20 20 20 20 20 20 20  20 3b 20 20 20 20 77 72  |2        ;    wr|
000103a0  69 74 65 20 62 61 6e 6b  20 31 0d 53 e8 0e 20 4d  |ite bank 1.S.. M|
000103b0  4f 56 20 52 31 2c 23 31  0d 53 f2 12 20 53 57 49  |OV R1,#1.S.. SWI|
000103c0  20 22 4f 53 5f 42 79 74  65 22 0d 53 fc 15 20 53  | "OS_Byte".S.. S|
000103d0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |TMFD R13!,{R14}.|
000103e0  54 06 1f 20 4c 44 52 42  20 52 31 2c 42 48 66 6c  |T.. LDRB R1,BHfl|
000103f0  61 67 20 3a 20 43 4d 50  20 52 31 2c 23 31 0d 54  |ag : CMP R1,#1.T|
00010400  10 19 20 42 45 51 20 77  69 74 68 65 72 5f 6f 6e  |.. BEQ wither_on|
00010410  5f 62 6f 72 64 65 72 0d  54 1a 3f 20 42 4c 20 70  |_border.T.? BL p|
00010420  6c 6f 74 5f 73 63 72 65  65 6e 20 20 20 20 20 20  |lot_screen      |
00010430  20 20 20 20 20 3b 20 20  20 20 70 6c 6f 74 20 68  |     ;    plot h|
00010440  69 73 63 6f 72 65 20 67  72 61 70 68 69 63 73 20  |iscore graphics |
00010450  73 63 72 65 65 6e 0d 54  24 41 20 42 4c 20 68 69  |screen.T$A BL hi|
00010460  73 63 6f 72 65 5f 74 61  62 6c 65 20 20 20 20 20  |score_table     |
00010470  20 20 20 20 3b 20 20 20  20 70 72 69 6e 74 20 68  |    ;    print h|
00010480  69 73 63 6f 72 65 20 74  61 62 6c 65 20 6f 66 66  |iscore table off|
00010490  20 73 63 72 65 65 6e 0d  54 2e 19 20 42 20 77 69  | screen.T.. B wi|
000104a0  74 68 65 72 5f 6f 6e 5f  68 69 73 63 6f 72 65 73  |ther_on_hiscores|
000104b0  0d 54 38 16 20 2e 77 69  74 68 65 72 5f 6f 6e 5f  |.T8. .wither_on_|
000104c0  62 6f 72 64 65 72 0d 54  42 39 20 42 4c 20 70 6c  |border.TB9 BL pl|
000104d0  6f 74 5f 62 6f 72 64 65  72 20 20 20 20 20 20 20  |ot_border       |
000104e0  20 20 20 20 3b 20 20 20  20 70 6c 6f 74 20 62 6f  |    ;    plot bo|
000104f0  72 64 65 72 20 6f 66 66  20 73 63 72 65 65 6e 0d  |rder off screen.|
00010500  54 4c 44 20 42 4c 20 72  65 73 65 74 5f 6c 77 73  |TLD BL reset_lws|
00010510  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 20  |             ;  |
00010520  20 20 72 65 73 65 74 73  20 20 20 6c 69 76 65 73  |  resets   lives|
00010530  3d 33 2c 20 73 63 6f 72  65 3d 30 2c 20 77 61 76  |=3, score=0, wav|
00010540  65 3d 31 0d 54 56 13 20  42 4c 20 70 72 69 6e 74  |e=1.TV. BL print|
00010550  5f 6c 69 76 65 73 0d 54  60 13 20 42 4c 20 70 72  |_lives.T`. BL pr|
00010560  69 6e 74 5f 73 63 6f 72  65 0d 54 6a 11 20 42 4c  |int_score.Tj. BL|
00010570  20 70 6c 6f 74 5f 77 61  76 65 0d 54 74 15 20 42  | plot_wave.Tt. B|
00010580  4c 20 69 6e 69 74 69 61  6c 5f 73 74 61 72 73 0d  |L initial_stars.|
00010590  54 7e 18 20 2e 77 69 74  68 65 72 5f 6f 6e 5f 68  |T~. .wither_on_h|
000105a0  69 73 63 6f 72 65 73 0d  54 88 18 20 4c 44 52 20  |iscores.T.. LDR |
000105b0  52 31 2c 73 63 72 65 65  6e 5f 73 74 61 72 74 0d  |R1,screen_start.|
000105c0  54 92 18 20 4c 44 52 20  52 32 2c 6d 65 6d 6f 72  |T.. LDR R2,memor|
000105d0  79 5f 73 74 61 72 74 0d  54 9c 16 20 4c 44 52 20  |y_start.T.. LDR |
000105e0  52 33 2c 73 63 72 65 65  6e 5f 65 6e 64 0d 54 a6  |R3,screen_end.T.|
000105f0  3f 20 42 4c 20 73 74 6f  72 65 5f 73 63 72 65 65  |? BL store_scree|
00010600  6e 20 20 20 20 20 20 3b  20 20 20 20 73 74 6f 72  |n      ;    stor|
00010610  65 20 61 77 61 79 20 73  63 72 65 65 6e 20 74 6f  |e away screen to|
00010620  20 62 65 20 77 69 74 68  65 72 65 64 0d 54 b0 15  | be withered.T..|
00010630  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | LDMFD R13!,{R14|
00010640  7d 0d 54 ba 04 0d 54 c4  36 20 53 57 49 20 26 31  |}.T...T.6 SWI &1|
00010650  30 30 2b 31 38 20 20 20  20 20 20 20 20 20 20 3b  |00+18          ;|
00010660  20 20 20 20 72 65 73 65  74 20 62 61 63 6b 67 72  |    reset backgr|
00010670  6f 75 6e 64 20 63 6f 6c  6f 75 72 0d 54 ce 0e 20  |ound colour.T.. |
00010680  4d 4f 56 20 52 30 2c 23  30 0d 54 d8 14 20 53 57  |MOV R0,#0.T.. SW|
00010690  49 20 22 4f 53 5f 57 72  69 74 65 43 22 0d 54 e2  |I "OS_WriteC".T.|
000106a0  10 20 4d 4f 56 20 52 30  2c 23 31 32 38 0d 54 ec  |. MOV R0,#128.T.|
000106b0  14 20 53 57 49 20 22 4f  53 5f 57 72 69 74 65 43  |. SWI "OS_WriteC|
000106c0  22 0d 54 f6 2f 20 53 57  49 20 26 31 30 30 2b 31  |".T./ SWI &100+1|
000106d0  32 20 20 20 20 20 20 20  20 20 20 3b 20 20 20 20  |2          ;    |
000106e0  db 20 2d 20 63 6c 65 61  72 20 62 61 6e 6b 20 31  |. - clear bank 1|
000106f0  0d 55 00 2d 20 4d 4f 56  20 52 30 2c 23 31 31 33  |.U.- MOV R0,#113|
00010700  20 20 20 20 20 20 20 20  20 20 3b 20 20 20 20 64  |          ;    d|
00010710  69 73 70 6c 61 79 20 62  61 6e 6b 20 31 0d 55 0a  |isplay bank 1.U.|
00010720  0e 20 4d 4f 56 20 52 31  2c 23 31 0d 55 14 12 20  |. MOV R1,#1.U.. |
00010730  53 57 49 20 22 4f 53 5f  42 79 74 65 22 0d 55 1e  |SWI "OS_Byte".U.|
00010740  05 20 0d 55 28 15 20 53  54 4d 46 44 20 52 31 33  |. .U(. STMFD R13|
00010750  21 2c 7b 52 31 34 7d 0d  55 32 0e 20 4d 4f 56 20  |!,{R14}.U2. MOV |
00010760  52 33 2c 23 38 0d 55 3c  0e 20 2e 6e 65 78 74 5f  |R3,#8.U<. .next_|
00010770  62 69 74 0d 55 46 18 20  4c 44 52 20 52 31 2c 6d  |bit.UF. LDR R1,m|
00010780  65 6d 6f 72 79 5f 73 74  61 72 74 0d 55 50 16 20  |emory_start.UP. |
00010790  4c 44 52 20 52 32 2c 6d  65 6d 6f 72 79 5f 65 6e  |LDR R2,memory_en|
000107a0  64 0d 55 5a 18 20 4c 44  52 20 52 37 2c 73 63 72  |d.UZ. LDR R7,scr|
000107b0  65 65 6e 5f 73 74 61 72  74 0d 55 64 46 20 42 4c  |een_start.UdF BL|
000107c0  20 77 69 74 68 65 72 5f  6d 65 6d 6f 72 79 20 20  | wither_memory  |
000107d0  20 20 20 3b 20 20 20 20  77 69 74 68 65 72 20 6d  |   ;    wither m|
000107e0  65 6d 6f 72 79 20 63 6f  6e 74 65 6e 74 73 20 26  |emory contents &|
000107f0  31 34 30 30 30 20 74 6f  20 26 31 45 30 30 30 0d  |14000 to &1E000.|
00010800  55 6e 12 20 53 55 42 53  20 52 33 2c 52 33 2c 23  |Un. SUBS R3,R3,#|
00010810  31 0d 55 78 11 20 42 4e  45 20 6e 65 78 74 5f 62  |1.Ux. BNE next_b|
00010820  69 74 0d 55 82 18 20 4c  44 52 20 52 31 2c 6d 65  |it.U.. LDR R1,me|
00010830  6d 6f 72 79 5f 73 74 61  72 74 0d 55 8c 18 20 4c  |mory_start.U.. L|
00010840  44 52 20 52 32 2c 73 63  72 65 65 6e 5f 73 74 61  |DR R2,screen_sta|
00010850  72 74 0d 55 96 16 20 4c  44 52 20 52 33 2c 6d 65  |rt.U.. LDR R3,me|
00010860  6d 6f 72 79 5f 65 6e 64  0d 55 a0 14 20 42 4c 20  |mory_end.U.. BL |
00010870  77 72 69 74 65 5f 73 63  72 65 65 6e 0d 55 aa 15  |write_screen.U..|
00010880  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  | LDMFD R13!,{R14|
00010890  7d 0d 55 b4 10 20 4d 4f  56 20 52 31 35 2c 52 31  |}.U.. MOV R15,R1|
000108a0  34 0d 55 be 05 20 0d 55  c8 13 20 2e 68 69 73 63  |4.U.. .U.. .hisc|
000108b0  6f 72 65 5f 74 61 62 6c  65 0d 55 d2 0e 20 4d 4f  |ore_table.U.. MO|
000108c0  56 20 52 30 2c 23 34 0d  55 dc 10 20 4d 4f 56 20  |V R0,#4.U.. MOV |
000108d0  52 31 2c 23 33 32 30 0d  55 e6 10 20 4d 4f 56 20  |R1,#320.U.. MOV |
000108e0  52 32 2c 23 38 37 32 0d  55 f0 12 20 53 57 49 20  |R2,#872.U.. SWI |
000108f0  22 4f 53 5f 50 6c 6f 74  22 0d 55 fa 14 20 53 57  |"OS_Plot".U.. SW|
00010900  49 20 22 4f 53 5f 57 72  69 74 65 53 22 0d 56 04  |I "OS_WriteS".V.|
00010910  29 20 45 51 55 53 20 28  22 54 6f 70 20 73 63 6f  |) EQUS ("Top sco|
00010920  72 65 73 20 73 6f 20 66  61 72 3a 22 29 20 3a 20  |res so far:") : |
00010930  45 51 55 42 20 30 0d 56  0e 05 20 0d 56 18 29 20  |EQUB 0.V.. .V.) |
00010940  4d 4f 56 20 52 35 2c 23  31 30 20 20 20 20 20 20  |MOV R5,#10      |
00010950  20 20 20 3b 20 20 74 6f  70 20 74 65 6e 20 73 63  |   ;  top ten sc|
00010960  6f 72 65 73 0d 56 22 20  20 4d 4f 56 20 52 36 2c  |ores.V"  MOV R6,|
00010970  23 31 31 20 20 20 20 20  20 20 20 20 3b 20 20 58  |#11         ;  X|
00010980  20 54 41 42 0d 56 2c 2c  20 41 44 52 20 52 31 2c  | TAB.V,, ADR R1,|
00010990  73 63 6f 72 65 73 20 20  20 20 20 20 3b 20 20 70  |scores      ;  p|
000109a0  6f 69 6e 74 65 72 20 74  6f 20 73 63 6f 72 65 73  |ointer to scores|
000109b0  0d 56 36 2b 20 41 44 52  20 52 32 2c 6e 61 6d 65  |.V6+ ADR R2,name|
000109c0  73 20 20 20 20 20 20 20  3b 20 20 70 6f 69 6e 74  |s       ;  point|
000109d0  65 72 20 74 6f 20 6e 61  6d 65 73 0d 56 40 0c 20  |er to names.V@. |
000109e0  2e 68 73 6c 6f 6f 70 0d  56 4a 05 20 0d 56 54 10  |.hsloop.VJ. .VT.|
000109f0  20 53 57 49 20 26 31 30  30 2b 33 31 0d 56 5e 0e  | SWI &100+31.V^.|
00010a00  20 4d 4f 56 20 52 30 2c  23 39 0d 56 68 14 20 53  | MOV R0,#9.Vh. S|
00010a10  57 49 20 22 4f 53 5f 57  72 69 74 65 43 22 0d 56  |WI "OS_WriteC".V|
00010a20  72 0e 20 4d 4f 56 20 52  30 2c 52 36 0d 56 7c 14  |r. MOV R0,R6.V|.|
00010a30  20 53 57 49 20 22 4f 53  5f 57 72 69 74 65 43 22  | SWI "OS_WriteC"|
00010a40  0d 56 86 05 20 0d 56 90  0e 20 4d 4f 56 20 52 30  |.V.. .V.. MOV R0|
00010a50  2c 52 31 0d 56 9a 14 20  53 57 49 20 22 4f 53 5f  |,R1.V.. SWI "OS_|
00010a60  57 72 69 74 65 30 22 0d  56 a4 0e 20 4d 4f 56 20  |Write0".V.. MOV |
00010a70  52 31 2c 52 30 0d 56 ae  0e 20 4d 4f 56 20 52 30  |R1,R0.V.. MOV R0|
00010a80  2c 52 32 0d 56 b8 14 20  53 57 49 20 22 4f 53 5f  |,R2.V.. SWI "OS_|
00010a90  57 72 69 74 65 30 22 0d  56 c2 0e 20 4d 4f 56 20  |Write0".V.. MOV |
00010aa0  52 32 2c 52 30 0d 56 cc  11 20 41 44 44 20 52 36  |R2,R0.V.. ADD R6|
00010ab0  2c 52 36 2c 23 31 0d 56  d6 05 20 0d 56 e0 12 20  |,R6,#1.V.. .V.. |
00010ac0  53 55 42 53 20 52 35 2c  52 35 2c 23 31 0d 56 ea  |SUBS R5,R5,#1.V.|
00010ad0  0f 20 42 4e 45 20 68 73  6c 6f 6f 70 0d 56 f4 05  |. BNE hsloop.V..|
00010ae0  20 0d 56 fe 0e 20 4d 4f  56 20 52 30 2c 23 34 0d  | .V.. MOV R0,#4.|
00010af0  57 08 10 20 4d 4f 56 20  52 31 2c 23 32 30 38 0d  |W.. MOV R1,#208.|
00010b00  57 12 10 20 4d 4f 56 20  52 32 2c 23 31 30 34 0d  |W.. MOV R2,#104.|
00010b10  57 1c 12 20 53 57 49 20  22 4f 53 5f 50 6c 6f 74  |W.. SWI "OS_Plot|
00010b20  22 0d 57 26 14 20 53 57  49 20 22 4f 53 5f 57 72  |".W&. SWI "OS_Wr|
00010b30  69 74 65 53 22 0d 57 30  32 20 45 51 55 53 20 28  |iteS".W02 EQUS (|
00010b40  22 3c 50 72 65 73 73 20  61 6e 79 20 6b 65 79 20  |"<Press any key |
00010b50  74 6f 20 63 6f 6e 74 69  6e 75 65 3e 22 29 20 3a  |to continue>") :|
00010b60  20 45 51 55 42 20 30 0d  57 3a 04 0d 57 44 10 20  | EQUB 0.W:..WD. |
00010b70  4d 4f 56 20 52 31 35 2c  52 31 34 0d 57 4e 05 20  |MOV R15,R14.WN. |
00010b80  0d 57 58 0c 20 2e 73 63  6f 72 65 73 0d 57 62 25  |.WX. .scores.Wb%|
00010b90  20 45 51 55 53 20 22 20  33 30 30 30 30 22 20 3a  | EQUS " 30000" :|
00010ba0  20 45 51 55 42 20 33 32  20 3a 20 45 51 55 42 20  | EQUB 32 : EQUB |
00010bb0  30 0d 57 6c 25 20 45 51  55 53 20 22 20 32 30 30  |0.Wl% EQUS " 200|
00010bc0  30 30 22 20 3a 20 45 51  55 42 20 33 32 20 3a 20  |00" : EQUB 32 : |
00010bd0  45 51 55 42 20 30 0d 57  76 25 20 45 51 55 53 20  |EQUB 0.Wv% EQUS |
00010be0  22 20 31 30 30 30 30 22  20 3a 20 45 51 55 42 20  |" 10000" : EQUB |
00010bf0  33 32 20 3a 20 45 51 55  42 20 30 0d 57 80 25 20  |32 : EQUB 0.W.% |
00010c00  45 51 55 53 20 22 20 20  37 30 30 30 22 20 3a 20  |EQUS "  7000" : |
00010c10  45 51 55 42 20 33 32 20  3a 20 45 51 55 42 20 30  |EQUB 32 : EQUB 0|
00010c20  0d 57 8a 25 20 45 51 55  53 20 22 20 20 36 30 30  |.W.% EQUS "  600|
00010c30  30 22 20 3a 20 45 51 55  42 20 33 32 20 3a 20 45  |0" : EQUB 32 : E|
00010c40  51 55 42 20 30 0d 57 94  25 20 45 51 55 53 20 22  |QUB 0.W.% EQUS "|
00010c50  20 20 35 30 30 30 22 20  3a 20 45 51 55 42 20 33  |  5000" : EQUB 3|
00010c60  32 20 3a 20 45 51 55 42  20 30 0d 57 9e 25 20 45  |2 : EQUB 0.W.% E|
00010c70  51 55 53 20 22 20 20 34  30 30 30 22 20 3a 20 45  |QUS "  4000" : E|
00010c80  51 55 42 20 33 32 20 3a  20 45 51 55 42 20 30 0d  |QUB 32 : EQUB 0.|
00010c90  57 a8 25 20 45 51 55 53  20 22 20 20 33 30 30 30  |W.% EQUS "  3000|
00010ca0  22 20 3a 20 45 51 55 42  20 33 32 20 3a 20 45 51  |" : EQUB 32 : EQ|
00010cb0  55 42 20 30 0d 57 b2 25  20 45 51 55 53 20 22 20  |UB 0.W.% EQUS " |
00010cc0  20 32 30 30 30 22 20 3a  20 45 51 55 42 20 33 32  | 2000" : EQUB 32|
00010cd0  20 3a 20 45 51 55 42 20  30 0d 57 bc 25 20 45 51  | : EQUB 0.W.% EQ|
00010ce0  55 53 20 22 20 20 31 30  30 30 22 20 3a 20 45 51  |US "  1000" : EQ|
00010cf0  55 42 20 33 32 20 3a 20  45 51 55 42 20 30 0d 57  |UB 32 : EQUB 0.W|
00010d00  c6 0a 20 41 4c 49 47 4e  0d 57 d0 05 20 0d 57 da  |.. ALIGN.W.. .W.|
00010d10  0b 20 2e 6e 61 6d 65 73  0d 57 e4 24 20 45 51 55  |. .names.W.$ EQU|
00010d20  53 20 22 2d 2d 41 43 43  45 50 54 41 42 4c 45 20  |S "--ACCEPTABLE |
00010d30  20 20 22 20 3a 20 45 51  55 42 20 30 0d 57 ee 24  |  " : EQUB 0.W.$|
00010d40  20 45 51 55 53 20 22 2d  2d 41 56 45 52 41 47 45  | EQUS "--AVERAGE|
00010d50  20 20 20 20 20 20 22 20  3a 20 45 51 55 42 20 30  |      " : EQUB 0|
00010d60  0d 57 f8 24 20 45 51 55  53 20 22 2d 2d 4d 45 44  |.W.$ EQUS "--MED|
00010d70  49 43 4f 52 45 20 20 20  20 20 22 20 3a 20 45 51  |ICORE     " : EQ|
00010d80  55 42 20 30 0d 58 02 24  20 45 51 55 53 20 22 2d  |UB 0.X.$ EQUS "-|
00010d90  2d 4e 4f 54 20 51 55 49  54 45 20 20 20 20 22 20  |-NOT QUITE    " |
00010da0  3a 20 45 51 55 42 20 30  0d 58 0c 24 20 45 51 55  |: EQUB 0.X.$ EQU|
00010db0  53 20 22 2d 2d 54 52 59  20 48 41 52 44 45 52 20  |S "--TRY HARDER |
00010dc0  20 20 22 20 3a 20 45 51  55 42 20 30 0d 58 16 24  |  " : EQUB 0.X.$|
00010dd0  20 45 51 55 53 20 22 2d  2d 50 4f 4f 52 20 20 20  | EQUS "--POOR   |
00010de0  20 20 20 20 20 20 22 20  3a 20 45 51 55 42 20 30  |      " : EQUB 0|
00010df0  0d 58 20 24 20 45 51 55  53 20 22 2d 2d 53 4c 4f  |.X $ EQUS "--SLO|
00010e00  50 50 59 20 20 20 20 20  20 20 22 20 3a 20 45 51  |PPY       " : EQ|
00010e10  55 42 20 30 0d 58 2a 24  20 45 51 55 53 20 22 2d  |UB 0.X*$ EQUS "-|
00010e20  2d 4d 49 53 45 52 41 42  4c 45 20 20 20 20 22 20  |-MISERABLE    " |
00010e30  3a 20 45 51 55 42 20 30  0d 58 34 24 20 45 51 55  |: EQUB 0.X4$ EQU|
00010e40  53 20 22 2d 2d 54 45 52  52 49 42 4c 45 20 20 20  |S "--TERRIBLE   |
00010e50  20 20 22 20 3a 20 45 51  55 42 20 30 0d 58 3e 24  |  " : EQUB 0.X>$|
00010e60  20 45 51 55 53 20 22 2d  2d 50 41 54 48 45 54 49  | EQUS "--PATHETI|
00010e70  43 20 20 20 20 20 22 20  3a 20 45 51 55 42 20 30  |C     " : EQUB 0|
00010e80  0d 58 48 0a 20 41 4c 49  47 4e 0d 58 52 05 20 0d  |.XH. ALIGN.XR. .|
00010e90  58 5c 13 20 2e 73 63 72  65 65 6e 5f 77 69 74 68  |X\. .screen_with|
00010ea0  65 72 0d 58 66 0e 20 4d  4f 56 20 52 33 2c 23 38  |er.Xf. MOV R3,#8|
00010eb0  0d 58 70 16 20 4c 44 52  20 52 32 2c 73 63 72 65  |.Xp. LDR R2,scre|
00010ec0  65 6e 5f 65 6e 64 0d 58  7a 0f 20 2e 73 63 72 5f  |en_end.Xz. .scr_|
00010ed0  73 68 69 66 74 0d 58 84  18 20 4c 44 52 20 52 31  |shift.X.. LDR R1|
00010ee0  2c 73 63 72 65 65 6e 5f  73 74 61 72 74 0d 58 8e  |,screen_start.X.|
00010ef0  10 20 2e 73 63 72 5f 73  68 69 66 74 32 0d 58 98  |. .scr_shift2.X.|
00010f00  13 20 4c 44 52 20 52 34  2c 5b 52 31 5d 2c 23 34  |. LDR R4,[R1],#4|
00010f10  0d 58 a2 2e 20 4c 44 52  42 20 52 35 2c 63 6f 75  |.X.. LDRB R5,cou|
00010f20  6e 74 20 3a 20 43 4d 50  20 52 35 2c 23 32 20 3a  |nt : CMP R5,#2 :|
00010f30  20 42 45 51 20 73 63 72  5f 72 69 67 68 74 0d 58  | BEQ scr_right.X|
00010f40  ac 15 20 4d 4f 56 20 52  34 2c 52 34 2c 4c 53 4c  |.. MOV R4,R4,LSL|
00010f50  20 23 34 0d 58 b6 14 20  53 54 52 20 52 34 2c 5b  | #4.X.. STR R4,[|
00010f60  52 31 2c 23 2d 34 5d 0d  58 c0 43 20 4c 44 52 42  |R1,#-4].X.C LDRB|
00010f70  20 52 37 2c 63 6f 75 6e  74 32 20 3a 20 53 55 42  | R7,count2 : SUB|
00010f80  53 20 52 37 2c 52 37 2c  23 31 20 3a 20 53 54 52  |S R7,R7,#1 : STR|
00010f90  42 20 52 37 2c 63 6f 75  6e 74 32 20 3a 20 42 4e  |B R7,count2 : BN|
00010fa0  45 20 73 63 72 5f 6c 65  66 74 0d 58 ca 20 20 4d  |E scr_left.X.  M|
00010fb0  4f 56 20 52 37 2c 23 34  30 20 3a 20 53 54 52 42  |OV R7,#40 : STRB|
00010fc0  20 52 37 2c 63 6f 75 6e  74 32 0d 58 d4 21 20 41  | R7,count2.X.! A|
00010fd0  44 44 20 52 35 2c 52 35  2c 23 31 20 3a 20 53 54  |DD R5,R5,#1 : ST|
00010fe0  52 42 20 52 35 2c 63 6f  75 6e 74 0d 58 de 0f 20  |RB R5,count.X.. |
00010ff0  42 20 73 63 72 5f 6c 65  66 74 0d 58 e8 0f 20 2e  |B scr_left.X.. .|
00011000  73 63 72 5f 72 69 67 68  74 0d 58 f2 15 20 4d 4f  |scr_right.X.. MO|
00011010  56 20 52 34 2c 52 34 2c  4c 53 52 20 23 34 0d 58  |V R4,R4,LSR #4.X|
00011020  fc 14 20 53 54 52 20 52  34 2c 5b 52 31 2c 23 2d  |.. STR R4,[R1,#-|
00011030  34 5d 0d 59 06 43 20 4c  44 52 42 20 52 37 2c 63  |4].Y.C LDRB R7,c|
00011040  6f 75 6e 74 32 20 3a 20  53 55 42 53 20 52 37 2c  |ount2 : SUBS R7,|
00011050  52 37 2c 23 31 20 3a 20  53 54 52 42 20 52 37 2c  |R7,#1 : STRB R7,|
00011060  63 6f 75 6e 74 32 20 3a  20 42 4e 45 20 73 63 72  |count2 : BNE scr|
00011070  5f 6c 65 66 74 0d 59 10  20 20 4d 4f 56 20 52 37  |_left.Y.  MOV R7|
00011080  2c 23 34 30 20 3a 20 53  54 52 42 20 52 37 2c 63  |,#40 : STRB R7,c|
00011090  6f 75 6e 74 32 0d 59 1a  21 20 53 55 42 20 52 35  |ount2.Y.! SUB R5|
000110a0  2c 52 35 2c 23 31 20 3a  20 53 54 52 42 20 52 35  |,R5,#1 : STRB R5|
000110b0  2c 63 6f 75 6e 74 0d 59  24 0e 20 2e 73 63 72 5f  |,count.Y$. .scr_|
000110c0  6c 65 66 74 0d 59 2e 0e  20 43 4d 50 20 52 31 2c  |left.Y.. CMP R1,|
000110d0  52 32 0d 59 38 13 20 42  4e 45 20 73 63 72 5f 73  |R2.Y8. BNE scr_s|
000110e0  68 69 66 74 32 0d 59 42  12 20 53 55 42 53 20 52  |hift2.YB. SUBS R|
000110f0  33 2c 52 33 2c 23 31 0d  59 4c 12 20 42 4e 45 20  |3,R3,#1.YL. BNE |
00011100  73 63 72 5f 73 68 69 66  74 0d 59 56 10 20 4d 4f  |scr_shift.YV. MO|
00011110  56 20 52 31 35 2c 52 31  34 0d 59 60 05 20 0d 59  |V R15,R14.Y`. .Y|
00011120  6a 13 20 2e 77 69 74 68  65 72 5f 6d 65 6d 6f 72  |j. .wither_memor|
00011130  79 0d 59 74 0f 20 2e 6d  65 6d 5f 73 68 69 66 74  |y.Yt. .mem_shift|
00011140  0d 59 7e 13 20 4c 44 52  20 52 34 2c 5b 52 31 5d  |.Y~. LDR R4,[R1]|
00011150  2c 23 34 0d 59 88 2e 20  4c 44 52 42 20 52 35 2c  |,#4.Y.. LDRB R5,|
00011160  63 6f 75 6e 74 20 3a 20  43 4d 50 20 52 35 2c 23  |count : CMP R5,#|
00011170  32 20 3a 20 42 45 51 20  6d 65 6d 5f 72 69 67 68  |2 : BEQ mem_righ|
00011180  74 0d 59 92 0e 20 4d 4f  56 20 52 38 2c 52 33 0d  |t.Y.. MOV R8,R3.|
00011190  59 9c 0f 20 2e 6d 65 6d  5f 6c 65 66 74 32 0d 59  |Y.. .mem_left2.Y|
000111a0  a6 15 20 4d 4f 56 20 52  34 2c 52 34 2c 4c 53 4c  |.. MOV R4,R4,LSL|
000111b0  20 23 34 0d 59 b0 22 20  53 55 42 53 20 52 38 2c  | #4.Y." SUBS R8,|
000111c0  52 38 2c 23 31 20 3a 20  42 4e 45 20 6d 65 6d 5f  |R8,#1 : BNE mem_|
000111d0  6c 65 66 74 32 0d 59 ba  13 20 53 54 52 20 52 34  |left2.Y.. STR R4|
000111e0  2c 5b 52 37 5d 2c 23 34  0d 59 c4 43 20 4c 44 52  |,[R7],#4.Y.C LDR|
000111f0  42 20 52 36 2c 63 6f 75  6e 74 32 20 3a 20 53 55  |B R6,count2 : SU|
00011200  42 53 20 52 36 2c 52 36  2c 23 31 20 3a 20 53 54  |BS R6,R6,#1 : ST|
00011210  52 42 20 52 36 2c 63 6f  75 6e 74 32 20 3a 20 42  |RB R6,count2 : B|
00011220  4e 45 20 6d 65 6d 5f 6c  65 66 74 0d 59 ce 20 20  |NE mem_left.Y.  |
00011230  4d 4f 56 20 52 36 2c 23  34 30 20 3a 20 53 54 52  |MOV R6,#40 : STR|
00011240  42 20 52 36 2c 63 6f 75  6e 74 32 0d 59 d8 21 20  |B R6,count2.Y.! |
00011250  41 44 44 20 52 35 2c 52  35 2c 23 31 20 3a 20 53  |ADD R5,R5,#1 : S|
00011260  54 52 42 20 52 35 2c 63  6f 75 6e 74 0d 59 e2 0f  |TRB R5,count.Y..|
00011270  20 42 20 6d 65 6d 5f 6c  65 66 74 0d 59 ec 0f 20  | B mem_left.Y.. |
00011280  2e 6d 65 6d 5f 72 69 67  68 74 0d 59 f6 0e 20 4d  |.mem_right.Y.. M|
00011290  4f 56 20 52 38 2c 52 33  0d 5a 00 10 20 2e 6d 65  |OV R8,R3.Z.. .me|
000112a0  6d 5f 72 69 67 68 74 32  0d 5a 0a 15 20 4d 4f 56  |m_right2.Z.. MOV|
000112b0  20 52 34 2c 52 34 2c 4c  53 52 20 23 34 0d 5a 14  | R4,R4,LSR #4.Z.|
000112c0  23 20 53 55 42 53 20 52  38 2c 52 38 2c 23 31 20  |# SUBS R8,R8,#1 |
000112d0  3a 20 42 4e 45 20 6d 65  6d 5f 72 69 67 68 74 32  |: BNE mem_right2|
000112e0  0d 5a 1e 13 20 53 54 52  20 52 34 2c 5b 52 37 5d  |.Z.. STR R4,[R7]|
000112f0  2c 23 34 0d 5a 28 43 20  4c 44 52 42 20 52 36 2c  |,#4.Z(C LDRB R6,|
00011300  63 6f 75 6e 74 32 20 3a  20 53 55 42 53 20 52 36  |count2 : SUBS R6|
00011310  2c 52 36 2c 23 31 20 3a  20 53 54 52 42 20 52 36  |,R6,#1 : STRB R6|
00011320  2c 63 6f 75 6e 74 32 20  3a 20 42 4e 45 20 6d 65  |,count2 : BNE me|
00011330  6d 5f 6c 65 66 74 0d 5a  32 20 20 4d 4f 56 20 52  |m_left.Z2  MOV R|
00011340  36 2c 23 34 30 20 3a 20  53 54 52 42 20 52 36 2c  |6,#40 : STRB R6,|
00011350  63 6f 75 6e 74 32 0d 5a  3c 21 20 53 55 42 20 52  |count2.Z<! SUB R|
00011360  35 2c 52 35 2c 23 31 20  3a 20 53 54 52 42 20 52  |5,R5,#1 : STRB R|
00011370  35 2c 63 6f 75 6e 74 0d  5a 46 0e 20 2e 6d 65 6d  |5,count.ZF. .mem|
00011380  5f 6c 65 66 74 0d 5a 50  0e 20 43 4d 50 20 52 31  |_left.ZP. CMP R1|
00011390  2c 52 32 0d 5a 5a 12 20  42 4e 45 20 6d 65 6d 5f  |,R2.ZZ. BNE mem_|
000113a0  73 68 69 66 74 0d 5a 64  10 20 4d 4f 56 20 52 31  |shift.Zd. MOV R1|
000113b0  35 2c 52 31 34 0d 5a 6e  05 20 0d 5a 78 43 20 2e  |5,R14.Zn. .ZxC .|
000113c0  63 6f 75 6e 74 20 45 51  55 42 20 31 20 20 20 20  |count EQUB 1    |
000113d0  20 20 20 20 20 20 20 20  20 20 20 20 3b 20 20 31  |            ;  1|
000113e0  20 3d 20 6c 65 66 74 73  68 69 66 74 20 2c 20 32  | = leftshift , 2|
000113f0  20 3d 20 72 69 67 68 74  73 68 69 66 74 0d 5a 82  | = rightshift.Z.|
00011400  42 20 2e 63 6f 75 6e 74  32 20 45 51 55 42 20 34  |B .count2 EQUB 4|
00011410  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |0              ;|
00011420  20 20 34 30 20 3d 20 31  20 6c 69 6e 65 2c 34 30  |  40 = 1 line,40|
00011430  20 77 6f 72 64 73 20 70  65 72 20 6c 69 6e 65 0d  | words per line.|
00011440  5a 8c 0a 20 41 4c 49 47  4e 0d 5a 96 05 20 0d 5a  |Z.. ALIGN.Z.. .Z|
00011450  a0 12 20 2e 73 74 6f 72  65 5f 73 63 72 65 65 6e  |.. .store_screen|
00011460  0d 5a aa 13 20 4c 44 52  20 52 34 2c 5b 52 31 5d  |.Z.. LDR R4,[R1]|
00011470  2c 23 34 0d 5a b4 13 20  53 54 52 20 52 34 2c 5b  |,#4.Z.. STR R4,[|
00011480  52 32 5d 2c 23 34 0d 5a  be 0e 20 43 4d 50 20 52  |R2],#4.Z.. CMP R|
00011490  31 2c 52 33 0d 5a c8 15  20 42 4c 54 20 73 74 6f  |1,R3.Z.. BLT sto|
000114a0  72 65 5f 73 63 72 65 65  6e 0d 5a d2 10 20 4d 4f  |re_screen.Z.. MO|
000114b0  56 20 52 31 35 2c 52 31  34 0d 5a dc 05 20 0d 5a  |V R15,R14.Z.. .Z|
000114c0  e6 12 20 2e 77 72 69 74  65 5f 73 63 72 65 65 6e  |.. .write_screen|
000114d0  0d 5a f0 13 20 4c 44 52  20 52 34 2c 5b 52 31 5d  |.Z.. LDR R4,[R1]|
000114e0  2c 23 34 0d 5a fa 13 20  53 54 52 20 52 34 2c 5b  |,#4.Z.. STR R4,[|
000114f0  52 32 5d 2c 23 34 0d 5b  04 0e 20 43 4d 50 20 52  |R2],#4.[.. CMP R|
00011500  31 2c 52 33 0d 5b 0e 15  20 42 4c 54 20 77 72 69  |1,R3.[.. BLT wri|
00011510  74 65 5f 73 63 72 65 65  6e 0d 5b 18 10 20 4d 4f  |te_screen.[.. MO|
00011520  56 20 52 31 35 2c 52 31  34 0d 5b 22 05 20 0d 5b  |V R15,R14.[". .[|
00011530  2c 21 20 2e 73 63 72 65  65 6e 5f 73 74 61 72 74  |,! .screen_start|
00011540  20 20 45 51 55 44 20 26  31 46 44 38 30 30 30 0d  |  EQUD &1FD8000.|
00011550  5b 36 1f 20 2e 6d 65 6d  6f 72 79 5f 73 74 61 72  |[6. .memory_star|
00011560  74 20 20 45 51 55 44 20  6d 65 6d 6f 72 79 0d 5b  |t  EQUD memory.[|
00011570  40 25 20 2e 6d 65 6d 6f  72 79 32 5f 73 74 61 72  |@% .memory2_star|
00011580  74 20 45 51 55 44 20 6d  65 6d 6f 72 79 2b 26 41  |t EQUD memory+&A|
00011590  30 30 30 0d 5b 4a 21 20  2e 73 63 72 65 65 6e 5f  |000.[J! .screen_|
000115a0  65 6e 64 20 20 20 20 45  51 55 44 20 26 31 46 45  |end    EQUD &1FE|
000115b0  32 30 30 30 0d 5b 54 26  20 2e 6d 65 6d 6f 72 79  |2000.[T& .memory|
000115c0  32 5f 65 6e 64 20 20 20  45 51 55 44 20 6d 65 6d  |2_end   EQUD mem|
000115d0  6f 72 79 2b 26 31 34 30  30 30 0d 5b 5e 25 20 2e  |ory+&14000.[^% .|
000115e0  6d 65 6d 6f 72 79 5f 65  6e 64 20 20 20 20 45 51  |memory_end    EQ|
000115f0  55 44 20 6d 65 6d 6f 72  79 2b 26 41 30 30 30 0d  |UD memory+&A000.|
00011600  5b 68 05 20 0d 5b 72 11  20 2e 70 6c 6f 74 5f 62  |[h. .[r. .plot_b|
00011610  6f 72 64 65 72 0d 5b 7c  0f 20 4d 4f 56 20 52 30  |order.[|. MOV R0|
00011620  2c 23 33 34 0d 5b 86 12  20 41 44 52 20 52 32 2c  |,#34.[.. ADR R2,|
00011630  73 70 72 69 74 65 0d 5b  90 18 20 4c 44 52 20 52  |sprite.[.. LDR R|
00011640  33 2c 58 5f 43 6f 6f 72  64 69 6e 61 74 65 0d 5b  |3,X_Coordinate.[|
00011650  9a 18 20 4c 44 52 20 52  34 2c 59 5f 43 6f 6f 72  |.. LDR R4,Y_Coor|
00011660  64 69 6e 61 74 65 0d 5b  a4 24 20 4d 4f 56 20 52  |dinate.[.$ MOV R|
00011670  35 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |5,#0            |
00011680  3b 20 e6 20 61 63 74 69  6f 6e 0d 5b ae 16 20 53  |; . action.[.. S|
00011690  57 49 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |WI "OS_SpriteOp"|
000116a0  0d 5b b8 10 20 4d 4f 56  20 52 31 35 2c 52 31 34  |.[.. MOV R15,R14|
000116b0  0d 5b c2 2d 20 2e 73 70  72 69 74 65 20 45 51 55  |.[.- .sprite EQU|
000116c0  53 20 22 47 41 4d 45 53  43 52 22 20 3a 20 45 51  |S "GAMESCR" : EQ|
000116d0  55 42 20 33 32 20 3a 20  41 4c 49 47 4e 0d 5b cc  |UB 32 : ALIGN.[.|
000116e0  19 20 2e 58 5f 43 6f 6f  72 64 69 6e 61 74 65 20  |. .X_Coordinate |
000116f0  45 51 55 44 20 30 0d 5b  d6 19 20 2e 59 5f 43 6f  |EQUD 0.[.. .Y_Co|
00011700  6f 72 64 69 6e 61 74 65  20 45 51 55 44 20 30 0d  |ordinate EQUD 0.|
00011710  5b e0 05 20 0d 5b ea 11  20 2e 70 6c 6f 74 5f 73  |[.. .[.. .plot_s|
00011720  63 72 65 65 6e 0d 5b f4  0f 20 4d 4f 56 20 52 30  |creen.[.. MOV R0|
00011730  2c 23 33 34 0d 5b fe 13  20 41 44 52 20 52 32 2c  |,#34.[.. ADR R2,|
00011740  73 70 72 69 74 65 32 0d  5c 08 18 20 4c 44 52 20  |sprite2.\.. LDR |
00011750  52 33 2c 58 5f 43 6f 6f  72 64 69 6e 61 74 65 0d  |R3,X_Coordinate.|
00011760  5c 12 18 20 4c 44 52 20  52 34 2c 59 5f 43 6f 6f  |\.. LDR R4,Y_Coo|
00011770  72 64 69 6e 61 74 65 0d  5c 1c 24 20 4d 4f 56 20  |rdinate.\.$ MOV |
00011780  52 35 2c 23 30 20 20 20  20 20 20 20 20 20 20 20  |R5,#0           |
00011790  20 3b 20 e6 20 61 63 74  69 6f 6e 0d 5c 26 16 20  | ; . action.\&. |
000117a0  53 57 49 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |SWI "OS_SpriteOp|
000117b0  22 0d 5c 30 10 20 4d 4f  56 20 52 31 35 2c 52 31  |".\0. MOV R15,R1|
000117c0  34 0d 5c 3a 2c 20 2e 73  70 72 69 74 65 32 20 45  |4.\:, .sprite2 E|
000117d0  51 55 53 20 22 48 49 53  43 52 22 20 3a 20 45 51  |QUS "HISCR" : EQ|
000117e0  55 42 20 33 32 20 3a 20  41 4c 49 47 4e 0d 5c 44  |UB 32 : ALIGN.\D|
000117f0  04 0d 5c 4e 14 20 2e 69  6e 63 72 65 61 73 65 5f  |..\N. .increase_|
00011800  73 63 6f 72 65 0d 5c 58  2b 20 4c 44 52 20 52 31  |score.\X+ LDR R1|
00011810  2c 73 63 6f 72 65 20 3a  20 4c 44 52 42 20 52 32  |,score : LDRB R2|
00011820  2c 73 63 6f 72 65 5f 69  6e 63 72 65 6d 65 6e 74  |,score_increment|
00011830  0d 5c 62 1e 20 4d 4f 56  20 52 33 2c 23 31 30 20  |.\b. MOV R3,#10 |
00011840  3a 20 4d 55 4c 20 52 33  2c 52 32 2c 52 33 0d 5c  |: MUL R3,R2,R3.\|
00011850  6c 20 20 41 44 44 20 52  31 2c 52 31 2c 52 33 20  |l  ADD R1,R1,R3 |
00011860  3a 20 53 54 52 20 52 31  2c 73 63 6f 72 65 0d 5c  |: STR R1,score.\|
00011870  76 16 20 4c 44 52 20 52  34 2c 65 78 74 72 61 5f  |v. LDR R4,extra_|
00011880  73 68 69 70 0d 5c 80 25  20 41 44 44 20 52 34 2c  |ship.\.% ADD R4,|
00011890  52 34 2c 52 33 20 3a 20  53 54 52 20 52 34 2c 65  |R4,R3 : STR R4,e|
000118a0  78 74 72 61 5f 73 68 69  70 0d 5c 8a 25 20 43 4d  |xtra_ship.\.% CM|
000118b0  50 20 52 34 2c 23 34 30  30 30 20 3a 20 42 4c 54  |P R4,#4000 : BLT|
000118c0  20 6e 6f 5f 65 78 74 72  61 5f 73 68 69 70 0d 5c  | no_extra_ship.\|
000118d0  94 22 20 4d 4f 56 20 52  34 2c 23 30 20 3a 20 53  |." MOV R4,#0 : S|
000118e0  54 52 20 52 34 2c 65 78  74 72 61 5f 73 68 69 70  |TR R4,extra_ship|
000118f0  0d 5c 9e 1b 20 53 54 4d  46 44 20 52 31 33 21 2c  |.\.. STMFD R13!,|
00011900  7b 52 31 34 2c 52 31 2d  52 33 7d 0d 5c a8 12 20  |{R14,R1-R3}.\.. |
00011910  42 4c 20 6c 69 76 65 73  5f 70 6c 75 73 0d 5c b2  |BL lives_plus.\.|
00011920  13 20 42 4c 20 70 72 69  6e 74 5f 6c 69 76 65 73  |. BL print_lives|
00011930  0d 5c bc 1b 20 4c 44 4d  46 44 20 52 31 33 21 2c  |.\.. LDMFD R13!,|
00011940  7b 52 31 34 2c 52 31 2d  52 33 7d 0d 5c c6 04 0d  |{R14,R1-R3}.\...|
00011950  5c d0 34 20 3b 20 20 73  63 6f 72 65 20 72 61 6e  |\.4 ;  score ran|
00011960  67 65 20 3d 20 39 39 39  39 39 30 2c 20 73 74 65  |ge = 999990, ste|
00011970  70 73 20 6f 66 20 31 30  2c 32 30 2e 2e 2e 2e 2e  |ps of 10,20.....|
00011980  2e 39 30 0d 5c da 04 0d  5c e4 13 20 2e 6e 6f 5f  |.90.\...\.. .no_|
00011990  65 78 74 72 61 5f 73 68  69 70 0d 5c ee 1b 20 41  |extra_ship.\.. A|
000119a0  44 52 20 52 31 2c 70 6c  61 79 65 72 73 5f 73 63  |DR R1,players_sc|
000119b0  6f 72 65 2b 34 0d 5c f8  0e 20 2e 6e 65 78 74 5f  |ore+4.\.. .next_|
000119c0  6e 75 6d 0d 5d 02 11 20  4c 44 52 42 20 52 33 2c  |num.].. LDRB R3,|
000119d0  5b 52 31 5d 0d 5d 0c 1e  20 43 4d 50 20 52 33 2c  |[R1].].. CMP R3,|
000119e0  23 33 32 20 3a 20 42 4e  45 20 6e 6f 5f 73 70 61  |#32 : BNE no_spa|
000119f0  63 65 0d 5d 16 21 20 41  44 44 20 52 33 2c 52 32  |ce.].! ADD R3,R2|
00011a00  2c 23 34 38 20 3a 20 53  54 52 42 20 52 33 2c 5b  |,#48 : STRB R3,[|
00011a10  52 31 5d 0d 5d 20 12 20  42 20 70 72 69 6e 74 5f  |R1].] . B print_|
00011a20  73 63 6f 72 65 0d 5d 2a  0e 20 2e 6e 6f 5f 73 70  |score.]*. .no_sp|
00011a30  61 63 65 0d 5d 34 11 20  41 44 44 20 52 33 2c 52  |ace.]4. ADD R3,R|
00011a40  33 2c 23 31 0d 5d 3e 1e  20 43 4d 50 20 52 33 2c  |3,#1.]>. CMP R3,|
00011a50  23 35 38 20 3a 20 42 4e  45 20 6e 65 78 74 5f 69  |#58 : BNE next_i|
00011a60  6e 63 0d 5d 48 0f 20 4d  4f 56 20 52 33 2c 23 34  |nc.]H. MOV R3,#4|
00011a70  38 0d 5d 52 22 20 4c 44  52 42 20 52 34 2c 5b 52  |8.]R" LDRB R4,[R|
00011a80  31 2c 23 2d 31 5d 20 3a  20 43 4d 50 20 52 34 2c  |1,#-1] : CMP R4,|
00011a90  23 33 32 0d 5d 5c 32 20  ec 51 20 52 34 2c 23 34  |#32.]\2 .Q R4,#4|
00011aa0  39 20 3a 20 41 44 44 4e  45 20 52 34 2c 52 34 2c  |9 : ADDNE R4,R4,|
00011ab0  23 31 20 3a 20 53 54 52  42 20 52 34 2c 5b 52 31  |#1 : STRB R4,[R1|
00011ac0  2c 23 2d 31 5d 0d 5d 66  0e 20 2e 6e 65 78 74 5f  |,#-1].]f. .next_|
00011ad0  69 6e 63 0d 5d 70 11 20  53 54 52 42 20 52 33 2c  |inc.]p. STRB R3,|
00011ae0  5b 52 31 5d 0d 5d 7a 21  20 53 55 42 53 20 52 32  |[R1].]z! SUBS R2|
00011af0  2c 52 32 2c 23 31 20 3a  20 42 4e 45 20 6e 6f 5f  |,R2,#1 : BNE no_|
00011b00  73 70 61 63 65 0d 5d 84  10 20 2e 63 68 65 63 6b  |space.].. .check|
00011b10  5f 6e 69 6e 65 0d 5d 8e  16 20 4c 44 52 42 20 52  |_nine.].. LDRB R|
00011b20  34 2c 5b 52 31 2c 23 2d  31 5d 21 0d 5d 98 21 20  |4,[R1,#-1]!.].! |
00011b30  43 4d 50 20 52 34 2c 23  35 38 20 3a 20 42 4c 54  |CMP R4,#58 : BLT|
00011b40  20 70 72 69 6e 74 5f 73  63 6f 72 65 0d 5d a2 1e  | print_score.]..|
00011b50  20 4d 4f 56 20 52 33 2c  23 34 38 20 3a 20 53 54  | MOV R3,#48 : ST|
00011b60  52 42 20 52 33 2c 5b 52  31 5d 0d 5d ac 22 20 4c  |RB R3,[R1].]." L|
00011b70  44 52 42 20 52 34 2c 5b  52 31 2c 23 2d 31 5d 20  |DRB R4,[R1,#-1] |
00011b80  3a 20 43 4d 50 20 52 34  2c 23 33 32 0d 5d b6 32  |: CMP R4,#32.].2|
00011b90  20 ec 51 20 52 34 2c 23  34 39 20 3a 20 41 44 44  | .Q R4,#49 : ADD|
00011ba0  4e 45 20 52 34 2c 52 34  2c 23 31 20 3a 20 53 54  |NE R4,R4,#1 : ST|
00011bb0  52 42 20 52 34 2c 5b 52  31 2c 23 2d 31 5d 0d 5d  |RB R4,[R1,#-1].]|
00011bc0  c0 11 20 42 20 63 68 65  63 6b 5f 6e 69 6e 65 0d  |.. B check_nine.|
00011bd0  5d ca 11 20 2e 70 72 69  6e 74 5f 73 63 6f 72 65  |].. .print_score|
00011be0  0d 5d d4 10 20 53 57 49  20 26 31 30 30 2b 31 38  |.].. SWI &100+18|
00011bf0  0d 5d de 0e 20 4d 4f 56  20 52 30 2c 23 33 0d 5d  |.].. MOV R0,#3.]|
00011c00  e8 14 20 53 57 49 20 22  4f 53 5f 57 72 69 74 65  |.. SWI "OS_Write|
00011c10  43 22 0d 5d f2 10 20 4d  4f 56 20 52 30 2c 23 31  |C".].. MOV R0,#1|
00011c20  33 36 0d 5d fc 14 20 53  57 49 20 22 4f 53 5f 57  |36.].. SWI "OS_W|
00011c30  72 69 74 65 43 22 0d 5e  06 10 20 53 57 49 20 26  |riteC".^.. SWI &|
00011c40  31 30 30 2b 31 38 0d 5e  10 0e 20 4d 4f 56 20 52  |100+18.^.. MOV R|
00011c50  30 2c 23 30 0d 5e 1a 14  20 53 57 49 20 22 4f 53  |0,#0.^.. SWI "OS|
00011c60  5f 57 72 69 74 65 43 22  0d 5e 24 0e 20 4d 4f 56  |_WriteC".^$. MOV|
00011c70  20 52 30 2c 23 33 0d 5e  2e 14 20 53 57 49 20 22  | R0,#3.^.. SWI "|
00011c80  4f 53 5f 57 72 69 74 65  43 22 0d 5e 38 04 0d 5e  |OS_WriteC".^8..^|
00011c90  42 0e 20 4d 4f 56 20 52  30 2c 23 34 0d 5e 4c 10  |B. MOV R0,#4.^L.|
00011ca0  20 4d 4f 56 20 52 31 2c  23 38 33 32 0d 5e 56 10  | MOV R1,#832.^V.|
00011cb0  20 4d 4f 56 20 52 32 2c  23 39 30 38 0d 5e 60 12  | MOV R2,#908.^`.|
00011cc0  20 53 57 49 20 22 4f 53  5f 50 6c 6f 74 22 0d 5e  | SWI "OS_Plot".^|
00011cd0  6a 04 0d 5e 74 17 20 41  44 52 20 52 30 2c 62 6c  |j..^t. ADR R0,bl|
00011ce0  61 6e 6b 5f 73 63 6f 72  65 0d 5e 7e 14 20 53 57  |ank_score.^~. SW|
00011cf0  49 20 22 4f 53 5f 57 72  69 74 65 30 22 0d 5e 88  |I "OS_Write0".^.|
00011d00  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 5e 92  |. MOV R15,R14.^.|
00011d10  12 20 2e 73 63 6f 72 65  20 45 51 55 44 20 30 0d  |. .score EQUD 0.|
00011d20  5e 9c 17 20 2e 65 78 74  72 61 5f 73 68 69 70 20  |^.. .extra_ship |
00011d30  45 51 55 44 20 30 0d 5e  a6 49 20 2e 62 6c 61 6e  |EQUD 0.^.I .blan|
00011d40  6b 5f 73 63 6f 72 65 20  20 20 45 51 55 42 20 31  |k_score   EQUB 1|
00011d50  32 37 3a 45 51 55 42 20  31 32 37 3a 45 51 55 42  |27:EQUB 127:EQUB|
00011d60  20 31 32 37 3a 45 51 55  42 20 31 32 37 3a 45 51  | 127:EQUB 127:EQ|
00011d70  55 42 20 31 32 37 3a 45  51 55 42 20 31 32 37 0d  |UB 127:EQUB 127.|
00011d80  5e b0 2a 20 2e 70 6c 61  79 65 72 73 5f 73 63 6f  |^.* .players_sco|
00011d90  72 65 20 45 51 55 53 20  22 20 20 20 20 20 30 22  |re EQUS "     0"|
00011da0  20 3a 20 45 51 55 42 20  30 0d 5e ba 32 20 2e 73  | : EQUB 0.^.2 .s|
00011db0  63 6f 72 65 5f 69 6e 63  72 65 6d 65 6e 74 20 45  |core_increment E|
00011dc0  51 55 42 20 31 20 20 20  20 20 20 3b 20 20 76 61  |QUB 1      ;  va|
00011dd0  6c 75 65 20 3e 31 20 84  20 3c 39 0d 5e c4 0a 20  |lue >1 . <9.^.. |
00011de0  41 4c 49 47 4e 0d 5e ce  04 0d 5e d8 1d 20 2e 64  |ALIGN.^...^.. .d|
00011df0  69 72 65 63 74 69 76 65  5f 70 6c 61 79 65 72 73  |irective_players|
00011e00  5f 73 63 6f 72 65 0d 5e  e2 19 20 41 44 52 20 52  |_score.^.. ADR R|
00011e10  32 2c 70 6c 61 79 65 72  73 5f 73 63 6f 72 65 0d  |2,players_score.|
00011e20  5e ec 10 20 4d 4f 56 20  52 31 35 2c 52 31 34 0d  |^.. MOV R15,R14.|
00011e30  5e f6 04 0d 5f 00 17 20  2e 64 69 72 65 63 74 69  |^..._.. .directi|
00011e40  76 65 5f 70 61 74 74 65  72 6e 0d 5f 0a 13 20 41  |ve_pattern._.. A|
00011e50  44 52 20 52 33 2c 70 61  74 74 65 72 6e 0d 5f 14  |DR R3,pattern._.|
00011e60  10 20 4d 4f 56 20 52 31  35 2c 52 31 34 0d 5f 1e  |. MOV R15,R14._.|
00011e70  04 0d 5f 28 0d 20 2e 70  61 74 74 65 72 6e 0d 5f  |.._(. .pattern._|
00011e80  32 25 20 45 51 55 42 20  30 20 20 20 20 20 3b 20  |2% EQUB 0     ; |
00011e90  20 20 69 6e 69 74 69 61  6c 20 20 70 6f 73 69 74  |  initial  posit|
00011ea0  69 6f 6e 0d 5f 3c 4a 20  45 51 55 42 20 30 3a 45  |ion._<J EQUB 0:E|
00011eb0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00011ec0  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00011ed0  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00011ee0  45 51 55 42 20 30 3a 45  51 55 42 20 30 0d 5f 46  |EQUB 0:EQUB 0._F|
00011ef0  4a 20 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |J EQUB 0:EQUB 0:|
00011f00  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00011f10  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00011f20  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00011f30  3a 45 51 55 42 20 30 0d  5f 50 4a 20 45 51 55 42  |:EQUB 0._PJ EQUB|
00011f40  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00011f50  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
00011f60  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00011f70  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00011f80  30 0d 5f 5a 4a 20 45 51  55 42 20 30 3a 45 51 55  |0._ZJ EQUB 0:EQU|
00011f90  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00011fa0  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00011fb0  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00011fc0  55 42 20 30 3a 45 51 55  42 20 30 0d 5f 64 4a 20  |UB 0:EQUB 0._dJ |
00011fd0  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00011fe0  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00011ff0  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00012000  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
00012010  51 55 42 20 30 0d 5f 6e  4a 20 45 51 55 42 20 30  |QUB 0._nJ EQUB 0|
00012020  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
00012030  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00012040  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00012050  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 0d  |0:EQUB 0:EQUB 0.|
00012060  5f 78 4a 20 45 51 55 42  20 30 3a 45 51 55 42 20  |_xJ EQUB 0:EQUB |
00012070  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012080  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012090  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
000120a0  20 30 3a 45 51 55 42 20  30 0d 5f 82 4a 20 45 51  | 0:EQUB 0._.J EQ|
000120b0  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
000120c0  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
000120d0  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
000120e0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
000120f0  42 20 30 0d 5f 8c 4a 20  45 51 55 42 20 30 3a 45  |B 0._.J EQUB 0:E|
00012100  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00012110  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00012120  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012130  45 51 55 42 20 30 3a 45  51 55 42 20 30 0d 5f 96  |EQUB 0:EQUB 0._.|
00012140  4a 20 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |J EQUB 0:EQUB 0:|
00012150  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012160  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00012170  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00012180  3a 45 51 55 42 20 30 0d  5f a0 4a 20 45 51 55 42  |:EQUB 0._.J EQUB|
00012190  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
000121a0  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
000121b0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
000121c0  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
000121d0  30 0d 5f aa 4a 20 45 51  55 42 20 30 3a 45 51 55  |0._.J EQUB 0:EQU|
000121e0  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
000121f0  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012200  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012210  55 42 20 30 3a 45 51 55  42 20 30 0d 5f b4 2e 20  |UB 0:EQUB 0._.. |
00012220  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012230  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00012240  20 30 3a 45 51 55 42 20  30 0d 5f be 29 20 45 51  | 0:EQUB 0._.) EQ|
00012250  55 42 20 33 32 20 20 20  20 20 20 3b 20 65 6e 64  |UB 32      ; end|
00012260  20 6f 66 20 70 61 74 74  65 72 6e 20 6d 61 72 6b  | of pattern mark|
00012270  65 72 0d 5f c8 4a 20 45  51 55 42 20 30 3a 45 51  |er._.J EQUB 0:EQ|
00012280  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00012290  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
000122a0  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
000122b0  51 55 42 20 30 3a 45 51  55 42 20 30 0d 5f d2 4a  |QUB 0:EQUB 0._.J|
000122c0  20 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  | EQUB 0:EQUB 0:E|
000122d0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
000122e0  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
000122f0  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012300  45 51 55 42 20 30 0d 5f  dc 4a 20 45 51 55 42 20  |EQUB 0._.J EQUB |
00012310  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012320  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012330  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00012340  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00012350  0d 5f e6 4a 20 45 51 55  42 20 30 3a 45 51 55 42  |._.J EQUB 0:EQUB|
00012360  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00012370  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
00012380  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00012390  42 20 30 3a 45 51 55 42  20 30 0d 5f f0 4a 20 45  |B 0:EQUB 0._.J E|
000123a0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
000123b0  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
000123c0  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
000123d0  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
000123e0  55 42 20 30 0d 5f fa 4a  20 45 51 55 42 20 30 3a  |UB 0._.J EQUB 0:|
000123f0  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012400  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00012410  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
00012420  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 0d 60  |:EQUB 0:EQUB 0.`|
00012430  04 4a 20 45 51 55 42 20  30 3a 45 51 55 42 20 30  |.J EQUB 0:EQUB 0|
00012440  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
00012450  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00012460  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00012470  30 3a 45 51 55 42 20 30  0d 60 0e 4a 20 45 51 55  |0:EQUB 0.`.J EQU|
00012480  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00012490  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
000124a0  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
000124b0  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
000124c0  20 30 0d 60 18 4a 20 45  51 55 42 20 30 3a 45 51  | 0.`.J EQUB 0:EQ|
000124d0  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
000124e0  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
000124f0  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
00012500  51 55 42 20 30 3a 45 51  55 42 20 30 0d 60 22 4a  |QUB 0:EQUB 0.`"J|
00012510  20 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  | EQUB 0:EQUB 0:E|
00012520  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00012530  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00012540  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012550  45 51 55 42 20 30 0d 60  2c 4a 20 45 51 55 42 20  |EQUB 0.`,J EQUB |
00012560  30 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |0:EQUB 0:EQUB 0:|
00012570  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00012580  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00012590  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
000125a0  0d 60 36 4a 20 45 51 55  42 20 30 3a 45 51 55 42  |.`6J EQUB 0:EQUB|
000125b0  20 30 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  | 0:EQUB 0:EQUB 0|
000125c0  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 3a 45  |:EQUB 0:EQUB 0:E|
000125d0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
000125e0  42 20 30 3a 45 51 55 42  20 30 0d 60 40 2e 20 45  |B 0:EQUB 0.`@. E|
000125f0  51 55 42 20 30 3a 45 51  55 42 20 30 3a 45 51 55  |QUB 0:EQUB 0:EQU|
00012600  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00012610  30 3a 45 51 55 42 20 30  0d 60 4a 29 20 45 51 55  |0:EQUB 0.`J) EQU|
00012620  42 20 33 32 20 20 20 20  20 20 3b 20 65 6e 64 20  |B 32      ; end |
00012630  6f 66 20 70 61 74 74 65  72 6e 20 6d 61 72 6b 65  |of pattern marke|
00012640  72 0d 60 54 0a 20 41 4c  49 47 4e 0d 60 5e 04 0d  |r.`T. ALIGN.`^..|
00012650  60 68 04 0d 60 72 48 20  3b 20 2a 2a 2a 2a 2a 2a  |`h..`rH ; ******|
00012660  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00012690  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 60 7c 0f 20  |***********.`|. |
000126a0  2e 6e 65 78 74 5f 77 61  76 65 0d 60 86 32 20 4d  |.next_wave.`.2 M|
000126b0  4f 56 20 52 31 2c 23 31  20 3a 20 53 54 52 42 20  |OV R1,#1 : STRB |
000126c0  52 31 2c 77 61 76 65 5f  66 69 6e 69 73 68 65 64  |R1,wave_finished|
000126d0  20 20 20 20 20 3b 20 20  20 73 65 74 0d 60 90 14  |     ;   set.`..|
000126e0  20 42 4c 20 63 6c 65 61  72 5f 73 63 72 65 65 6e  | BL clear_screen|
000126f0  0d 60 9a 10 20 53 57 49  20 26 31 30 30 2b 31 38  |.`.. SWI &100+18|
00012700  0d 60 a4 0e 20 4d 4f 56  20 52 30 2c 23 33 0d 60  |.`.. MOV R0,#3.`|
00012710  ae 14 20 53 57 49 20 22  4f 53 5f 57 72 69 74 65  |.. SWI "OS_Write|
00012720  43 22 0d 60 b8 0e 20 4d  4f 56 20 52 30 2c 23 33  |C".`.. MOV R0,#3|
00012730  0d 60 c2 14 20 53 57 49  20 22 4f 53 5f 57 72 69  |.`.. SWI "OS_Wri|
00012740  74 65 43 22 0d 60 cc 14  20 42 4c 20 77 61 76 65  |teC".`.. BL wave|
00012750  5f 63 6f 75 6e 74 65 72  0d 60 d6 36 20 4c 44 52  |_counter.`.6 LDR|
00012760  42 20 52 31 2c 77 61 76  65 20 3a 20 43 4d 50 20  |B R1,wave : CMP |
00012770  52 31 2c 23 32 32 20 20  20 20 3b 20 77 61 76 65  |R1,#22    ; wave|
00012780  73 20 65 6e 64 20 73 65  71 75 65 6e 63 65 0d 60  |s end sequence.`|
00012790  e0 8b 20 ec 51 20 52 31  2c 23 31 20 3a 20 53 54  |.. .Q R1,#1 : ST|
000127a0  52 45 51 42 20 52 31 2c  77 61 76 65 20 3a 20 42  |REQB R1,wave : B|
000127b0  4c 45 51 20 72 65 73 65  74 5f 76 61 72 5f 61 64  |LEQ reset_var_ad|
000127c0  64 72 20 20 20 20 3b 20  20 72 65 70 65 61 74 73  |dr    ;  repeats|
000127d0  20 77 61 76 65 73 2c 20  20 20 72 65 73 65 74 73  | waves,   resets|
000127e0  20 77 61 76 65 20 74 6f  20 31 20 73 6f 20 65 6e  | wave to 1 so en|
000127f0  64 20 6f 66 20 73 65 71  75 65 6e 63 65 20 63 61  |d of sequence ca|
00012800  6e 20 62 65 20 66 6f 75  6e 64 20 74 6f 20 72 65  |n be found to re|
00012810  73 65 74 20 77 61 76 65  73 0d 60 ea 12 20 42 4c  |set waves.`.. BL|
00012820  20 70 72 69 6e 74 5f 77  61 76 65 0d 60 f4 11 20  | print_wave.`.. |
00012830  42 4c 20 70 6c 6f 74 5f  77 61 76 65 0d 60 fe 14  |BL plot_wave.`..|
00012840  20 42 4c 20 70 72 65 70  61 72 65 5f 77 61 76 65  | BL prepare_wave|
00012850  0d 61 08 48 20 4d 4f 56  20 52 30 2c 23 31 20 20  |.a.H MOV R0,#1  |
00012860  20 20 20 20 20 20 3b 20  20 46 6c 61 67 20 74 6f  |      ;  Flag to|
00012870  20 70 72 65 76 65 6e 74  20 63 68 61 6e 67 65 73  | prevent changes|
00012880  20 74 6f 20 62 75 6c 6c  65 74 73 20 61 6e 64 20  | to bullets and |
00012890  75 73 65 72 73 68 69 70  0d 61 12 16 20 42 4c 20  |usership.a.. BL |
000128a0  69 6e 69 74 5f 77 61 76  65 5f 76 61 72 73 0d 61  |init_wave_vars.a|
000128b0  1c 35 20 4d 4f 56 20 52  31 2c 23 30 20 3a 20 53  |.5 MOV R1,#0 : S|
000128c0  54 52 42 20 52 31 2c 77  61 76 65 5f 66 69 6e 69  |TRB R1,wave_fini|
000128d0  73 68 65 64 20 20 20 20  20 3b 20 20 20 63 61 6e  |shed     ;   can|
000128e0  63 65 6c 0d 61 26 0e 20  42 20 64 69 73 70 6c 61  |cel.a&. B displa|
000128f0  79 0d 61 30 1a 20 2e 77  61 76 65 5f 66 69 6e 69  |y.a0. .wave_fini|
00012900  73 68 65 64 20 45 51 55  42 20 30 0d 61 3a 0a 20  |shed EQUB 0.a:. |
00012910  41 4c 49 47 4e 0d 61 44  04 0d 61 4e 18 20 2e 6c  |ALIGN.aD..aN. .l|
00012920  6f 61 64 5f 77 61 76 65  5f 66 69 6e 69 73 68 65  |oad_wave_finishe|
00012930  64 0d 61 58 1a 20 4c 44  52 42 20 52 31 2c 77 61  |d.aX. LDRB R1,wa|
00012940  76 65 5f 66 69 6e 69 73  68 65 64 0d 61 62 10 20  |ve_finished.ab. |
00012950  4d 4f 56 20 52 31 35 2c  52 31 34 0d 61 6c 48 20  |MOV R15,R14.alH |
00012960  3b 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |; **************|
00012970  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000129a0  2a 2a 2a 0d 61 76 04 0d  61 80 09 20 2e 65 6e 64  |***.av..a.. .end|
000129b0  0d 61 8a 15 20 4c 44 4d  46 44 20 52 31 33 21 2c  |.a.. LDMFD R13!,|
000129c0  7b 52 31 35 7d 0d 61 94  04 0d 61 9e 04 0d 61 a8  |{R15}.a...a...a.|
000129d0  54 20 3b 20 20 63 6c 65  61 72 20 65 78 69 73 74  |T ;  clear exist|
000129e0  69 6e 67 20 62 6f 6d 62  73 20 79 65 74 2c 20 61  |ing bombs yet, a|
000129f0  72 65 20 73 74 69 6c 6c  20 6c 65 74 68 61 6c 20  |re still lethal |
00012a00  61 6c 74 68 6f 75 67 68  20 61 6c 69 65 6e 20 73  |although alien s|
00012a10  68 69 70 20 68 61 76 65  20 76 61 6e 69 73 68 65  |hip have vanishe|
00012a20  64 0d 61 b2 04 0d 61 bc  12 20 2e 63 6c 65 61 72  |d.a...a.. .clear|
00012a30  5f 73 63 72 65 65 6e 0d  61 c6 15 20 53 54 4d 46  |_screen.a.. STMF|
00012a40  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 61 d0 10  |D R13!,{R14}.a..|
00012a50  20 2e 6e 65 78 74 5f 6d  6f 76 65 73 0d 61 da 12  | .next_moves.a..|
00012a60  20 42 4c 20 6d 6f 76 65  5f 73 74 61 72 73 0d 61  | BL move_stars.a|
00012a70  e4 12 20 42 4c 20 64 72  6f 70 5f 62 6f 6d 62 73  |.. BL drop_bombs|
00012a80  0d 61 ee 17 20 42 4c 20  65 78 70 6c 6f 73 69 6f  |.a.. BL explosio|
00012a90  6e 5f 63 68 65 63 6b 0d  61 f8 18 20 42 4c 20 62  |n_check.a.. BL b|
00012aa0  6f 6d 62 5f 65 78 70 6c  6f 5f 63 68 65 63 6b 0d  |omb_explo_check.|
00012ab0  62 02 15 20 42 4c 20 63  6c 75 73 74 65 72 5f 63  |b.. BL cluster_c|
00012ac0  68 65 63 6b 0d 62 0c 0d  20 42 4c 20 69 6e 6e 65  |heck.b.. BL inne|
00012ad0  72 0d 62 16 37 20 42 4c  20 6c 6f 61 64 5f 64 65  |r.b.7 BL load_de|
00012ae0  61 64 20 3a 20 43 4d 50  20 52 31 2c 23 31 20 3a  |ad : CMP R1,#1 :|
00012af0  20 42 4c 45 51 20 75 73  65 72 73 68 69 70 5f 65  | BLEQ usership_e|
00012b00  78 70 6c 6f 73 69 6f 6e  0d 62 20 2c 20 42 4c 20  |xplosion.b , BL |
00012b10  6c 6f 61 64 5f 64 65 61  64 20 3a 20 43 4d 50 20  |load_dead : CMP |
00012b20  52 31 2c 23 31 20 3a 20  42 45 51 20 20 6e 6f 5f  |R1,#1 : BEQ  no_|
00012b30  6b 65 79 73 0d 62 2a 15  20 42 4c 20 74 65 73 74  |keys.b*. BL test|
00012b40  5f 6b 65 79 70 72 65 73  73 0d 62 34 0d 20 2e 6e  |_keypress.b4. .n|
00012b50  6f 5f 6b 65 79 73 0d 62  3e 1b 20 4d 4f 56 20 52  |o_keys.b>. MOV R|
00012b60  35 2c 23 32 38 30 20 3a  20 42 4c 20 73 6c 6f 77  |5,#280 : BL slow|
00012b70  31 0d 62 48 1d 20 42 4c  20 64 69 72 65 63 74 69  |1.bH. BL directi|
00012b80  76 65 5f 61 6c 69 65 6e  5f 62 6f 6d 62 73 0d 62  |ve_alien_bombs.b|
00012b90  52 1e 20 43 4d 50 20 52  31 2c 23 30 20 3a 42 4e  |R. CMP R1,#0 :BN|
00012ba0  45 20 6e 65 78 74 5f 6d  6f 76 65 73 0d 62 5c 04  |E next_moves.b\.|
00012bb0  0d 62 66 47 20 3b 20 41  20 6c 6f 6f 70 20 6f 66  |.bfG ; A loop of|
00012bc0  20 32 36 30 20 61 73 20  63 6c 75 73 74 65 72 20  | 260 as cluster |
00012bd0  65 78 70 6c 6f 73 69 6f  6e 20 68 61 73 20 32 36  |explosion has 26|
00012be0  20 66 72 61 6d 65 73 20  26 20 61 20 64 65 6c 61  | frames & a dela|
00012bf0  79 20 6f 66 20 32 30 0d  62 70 9b 20 3b 20 53 6f  |y of 20.bp. ; So|
00012c00  20 61 20 73 61 66 74 65  79 20 6c 6f 6f 70 20 74  | a saftey loop t|
00012c10  6f 20 6d 61 6b 65 20 73  75 72 65 20 65 76 65 72  |o make sure ever|
00012c20  79 74 68 69 6e 67 20 69  73 20 63 6f 75 6e 74 65  |ything is counte|
00012c30  64 20 66 6f 72 20 65 73  70 65 63 69 61 6c 6c 79  |d for especially|
00012c40  20 74 68 65 20 20 61 6c  69 65 6e 20 65 78 70 6c  | the  alien expl|
00012c50  6f 73 69 6f 6e 73 20 61  73 20 74 68 65 72 65 20  |osions as there |
00012c60  69 73 20 6e 6f 20 63 6f  75 6e 74 65 72 20 66 6f  |is no counter fo|
00012c70  72 20 74 68 65 6d 20 74  6f 20 73 65 65 20 69 66  |r them to see if|
00012c80  20 74 68 65 72 65 20 69  73 20 61 6e 79 20 6c 65  | there is any le|
00012c90  66 74 0d 62 7a 04 0d 62  84 24 20 4d 4f 56 20 52  |ft.bz..b.$ MOV R|
00012ca0  31 2c 23 32 36 30 20 3a  20 53 54 52 20 52 31 2c  |1,#260 : STR R1,|
00012cb0  66 69 6e 61 6c 5f 6c 6f  6f 70 0d 62 8e 18 20 2e  |final_loop.b.. .|
00012cc0  66 69 6e 61 6c 5f 73 63  72 65 65 6e 5f 63 6c 65  |final_screen_cle|
00012cd0  61 72 0d 62 98 12 20 42  4c 20 6d 6f 76 65 5f 73  |ar.b.. BL move_s|
00012ce0  74 61 72 73 0d 62 a2 12  20 42 4c 20 64 72 6f 70  |tars.b.. BL drop|
00012cf0  5f 62 6f 6d 62 73 0d 62  ac 17 20 42 4c 20 65 78  |_bombs.b.. BL ex|
00012d00  70 6c 6f 73 69 6f 6e 5f  63 68 65 63 6b 0d 62 b6  |plosion_check.b.|
00012d10  18 20 42 4c 20 62 6f 6d  62 5f 65 78 70 6c 6f 5f  |. BL bomb_explo_|
00012d20  63 68 65 63 6b 0d 62 c0  15 20 42 4c 20 63 6c 75  |check.b.. BL clu|
00012d30  73 74 65 72 5f 63 68 65  63 6b 0d 62 ca 0d 20 42  |ster_check.b.. B|
00012d40  4c 20 69 6e 6e 65 72 0d  62 d4 37 20 42 4c 20 6c  |L inner.b.7 BL l|
00012d50  6f 61 64 5f 64 65 61 64  20 3a 20 43 4d 50 20 52  |oad_dead : CMP R|
00012d60  31 2c 23 31 20 3a 20 42  4c 45 51 20 75 73 65 72  |1,#1 : BLEQ user|
00012d70  73 68 69 70 5f 65 78 70  6c 6f 73 69 6f 6e 0d 62  |ship_explosion.b|
00012d80  de 2d 20 42 4c 20 6c 6f  61 64 5f 64 65 61 64 20  |.- BL load_dead |
00012d90  3a 20 43 4d 50 20 52 31  2c 23 31 20 3a 20 42 45  |: CMP R1,#1 : BE|
00012da0  51 20 20 6e 6f 5f 6b 65  79 73 32 0d 62 e8 15 20  |Q  no_keys2.b.. |
00012db0  42 4c 20 74 65 73 74 5f  6b 65 79 70 72 65 73 73  |BL test_keypress|
00012dc0  0d 62 f2 0e 20 2e 6e 6f  5f 6b 65 79 73 32 0d 62  |.b.. .no_keys2.b|
00012dd0  fc 1b 20 4d 4f 56 20 52  35 2c 23 33 38 30 20 3a  |.. MOV R5,#380 :|
00012de0  20 42 4c 20 73 6c 6f 77  31 0d 63 06 16 20 4c 44  | BL slow1.c.. LD|
00012df0  52 20 52 31 2c 66 69 6e  61 6c 5f 6c 6f 6f 70 0d  |R R1,final_loop.|
00012e00  63 10 12 20 53 55 42 53  20 52 31 2c 52 31 2c 23  |c.. SUBS R1,R1,#|
00012e10  31 0d 63 1a 16 20 53 54  52 20 52 31 2c 66 69 6e  |1.c.. STR R1,fin|
00012e20  61 6c 5f 6c 6f 6f 70 0d  63 24 1b 20 42 4e 45 20  |al_loop.c$. BNE |
00012e30  66 69 6e 61 6c 5f 73 63  72 65 65 6e 5f 63 6c 65  |final_screen_cle|
00012e40  61 72 0d 63 2e 15 20 4c  44 4d 46 44 20 52 31 33  |ar.c.. LDMFD R13|
00012e50  21 2c 7b 52 31 35 7d 0d  63 38 19 20 2e 66 69 6e  |!,{R15}.c8. .fin|
00012e60  61 6c 5f 6c 6f 6f 70 20  45 51 55 44 20 32 36 30  |al_loop EQUD 260|
00012e70  0d 63 42 04 0d 63 4c 12  20 2e 70 72 65 70 61 72  |.cB..cL. .prepar|
00012e80  65 5f 77 61 76 65 0d 63  56 14 20 4c 44 52 20 52  |e_wave.cV. LDR R|
00012e90  31 2c 74 69 6d 65 5f 6f  75 74 0d 63 60 10 20 2e  |1,time_out.c`. .|
00012ea0  77 61 76 65 5f 64 65 6c  61 79 0d 63 6a 18 20 53  |wave_delay.cj. S|
00012eb0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 2c 52 31  |TMFD R13!,{R1,R1|
00012ec0  34 7d 0d 63 74 12 20 42  4c 20 6d 6f 76 65 5f 73  |4}.ct. BL move_s|
00012ed0  74 61 72 73 0d 63 7e 16  20 42 4c 20 63 68 61 6e  |tars.c~. BL chan|
00012ee0  67 65 5f 70 61 6c 65 74  74 65 0d 63 88 33 20 42  |ge_palette.c.3 B|
00012ef0  4c 20 6c 6f 61 64 5f 6e  6f 5f 6f 66 5f 62 75 6c  |L load_no_of_bul|
00012f00  6c 65 74 73 20 3a 20 43  4d 50 20 52 32 2c 23 30  |lets : CMP R2,#0|
00012f10  20 3a 20 42 4c 4e 45 20  69 6e 6e 65 72 0d 63 92  | : BLNE inner.c.|
00012f20  2e 20 4d 4f 56 20 52 35  2c 23 34 30 30 20 3a 20  |. MOV R5,#400 : |
00012f30  42 4c 20 73 6c 6f 77 31  20 3a 20 42 4c 20 74 65  |BL slow1 : BL te|
00012f40  73 74 5f 6b 65 79 70 72  65 73 73 0d 63 9c 18 20  |st_keypress.c.. |
00012f50  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 2c 52  |LDMFD R13!,{R1,R|
00012f60  31 34 7d 0d 63 a6 23 20  53 55 42 53 20 52 31 2c  |14}.c.# SUBS R1,|
00012f70  52 31 2c 23 31 20 3a 20  42 4e 45 20 77 61 76 65  |R1,#1 : BNE wave|
00012f80  5f 64 65 6c 61 79 0d 63  b0 10 20 53 57 49 20 26  |_delay.c.. SWI &|
00012f90  31 30 30 2b 31 38 0d 63  ba 0e 20 4d 4f 56 20 52  |100+18.c.. MOV R|
00012fa0  30 2c 23 33 0d 63 c4 14  20 53 57 49 20 22 4f 53  |0,#3.c.. SWI "OS|
00012fb0  5f 57 72 69 74 65 43 22  0d 63 ce 0e 20 4d 4f 56  |_WriteC".c.. MOV|
00012fc0  20 52 30 2c 23 33 0d 63  d8 14 20 53 57 49 20 22  | R0,#3.c.. SWI "|
00012fd0  4f 53 5f 57 72 69 74 65  43 22 0d 63 e2 25 20 53  |OS_WriteC".c.% S|
00012fe0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 20  |TMFD R13!,{R14} |
00012ff0  3a 20 42 4c 20 70 72 69  6e 74 5f 77 61 76 65 0d  |: BL print_wave.|
00013000  63 ec 15 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |c.. LDMFD R13!,{|
00013010  52 31 35 7d 0d 63 f6 17  20 2e 74 69 6d 65 5f 6f  |R15}.c.. .time_o|
00013020  75 74 20 45 51 55 44 20  37 30 30 0d 64 00 04 0d  |ut EQUD 700.d...|
00013030  64 0a 12 20 2e 77 61 76  65 5f 63 6f 75 6e 74 65  |d.. .wave_counte|
00013040  72 0d 64 14 35 20 4c 44  52 42 20 52 30 2c 43 77  |r.d.5 LDRB R0,Cw|
00013050  61 76 65 2b 31 20 3a 20  41 44 44 20 52 30 2c 52  |ave+1 : ADD R0,R|
00013060  30 2c 23 31 20 3a 20 53  54 52 42 20 52 30 2c 43  |0,#1 : STRB R0,C|
00013070  77 61 76 65 2b 31 0d 64  1e 20 20 43 4d 50 20 52  |wave+1.d.  CMP R|
00013080  30 2c 23 35 38 20 3a 20  42 4e 45 20 63 6f 75 6e  |0,#58 : BNE coun|
00013090  74 5f 64 6f 6e 65 0d 64  28 21 20 4d 4f 56 20 52  |t_done.d(! MOV R|
000130a0  30 2c 23 34 38 20 3a 20  53 54 52 42 20 52 30 2c  |0,#48 : STRB R0,|
000130b0  43 77 61 76 65 2b 31 0d  64 32 1f 20 4c 44 52 42  |Cwave+1.d2. LDRB|
000130c0  20 52 30 2c 43 77 61 76  65 20 3a 20 43 4d 50 20  | R0,Cwave : CMP |
000130d0  52 30 2c 23 33 32 0d 64  3c 20 20 ec 51 20 52 30  |R0,#32.d<  .Q R0|
000130e0  2c 23 34 39 20 3a 20 53  54 52 45 51 42 20 52 30  |,#49 : STREQB R0|
000130f0  2c 43 77 61 76 65 0d 64  46 25 20 41 44 44 4e 45  |,Cwave.dF% ADDNE|
00013100  20 52 30 2c 52 30 2c 23  31 20 3a 20 53 54 52 4e  | R0,R0,#1 : STRN|
00013110  45 42 20 52 30 2c 43 77  61 76 65 0d 64 50 10 20  |EB R0,Cwave.dP. |
00013120  2e 63 6f 75 6e 74 5f 64  6f 6e 65 0d 64 5a 30 20  |.count_done.dZ0 |
00013130  4c 44 52 42 20 52 30 2c  77 61 76 65 20 20 3a 20  |LDRB R0,wave  : |
00013140  41 44 44 20 52 30 2c 52  30 2c 23 31 20 3a 20 53  |ADD R0,R0,#1 : S|
00013150  54 52 42 20 52 30 2c 77  61 76 65 0d 64 64 10 20  |TRB R0,wave.dd. |
00013160  4d 4f 56 20 52 31 35 2c  52 31 34 0d 64 6e 04 0d  |MOV R15,R14.dn..|
00013170  64 78 10 20 2e 70 72 69  6e 74 5f 77 61 76 65 0d  |dx. .print_wave.|
00013180  64 82 10 20 53 57 49 20  26 31 30 30 2b 33 31 0d  |d.. SWI &100+31.|
00013190  64 8c 0f 20 4d 4f 56 20  52 30 2c 23 31 30 0d 64  |d.. MOV R0,#10.d|
000131a0  96 14 20 53 57 49 20 22  4f 53 5f 57 72 69 74 65  |.. SWI "OS_Write|
000131b0  43 22 0d 64 a0 0f 20 4d  4f 56 20 52 30 2c 23 31  |C".d.. MOV R0,#1|
000131c0  35 0d 64 aa 14 20 53 57  49 20 22 4f 53 5f 57 72  |5.d.. SWI "OS_Wr|
000131d0  69 74 65 43 22 0d 64 b4  14 20 53 57 49 20 22 4f  |iteC".d.. SWI "O|
000131e0  53 5f 57 72 69 74 65 53  22 0d 64 be 28 20 45 51  |S_WriteS".d.( EQ|
000131f0  55 53 20 28 22 50 52 45  50 41 52 45 20 46 4f 52  |US ("PREPARE FOR|
00013200  20 57 41 56 45 20 22 29  20 3a 20 45 51 55 42 20  | WAVE ") : EQUB |
00013210  30 0d 64 c8 04 0d 64 d2  12 20 4c 44 52 42 20 52  |0.d...d.. LDRB R|
00013220  30 2c 43 77 61 76 65 0d  64 dc 14 20 53 57 49 20  |0,Cwave.d.. SWI |
00013230  22 4f 53 5f 57 72 69 74  65 43 22 0d 64 e6 14 20  |"OS_WriteC".d.. |
00013240  4c 44 52 42 20 52 30 2c  43 77 61 76 65 2b 31 0d  |LDRB R0,Cwave+1.|
00013250  64 f0 14 20 53 57 49 20  22 4f 53 5f 57 72 69 74  |d.. SWI "OS_Writ|
00013260  65 43 22 0d 64 fa 10 20  4d 4f 56 20 52 31 35 2c  |eC".d.. MOV R15,|
00013270  52 31 34 0d 65 04 04 0d  65 0e 0f 20 2e 70 6c 6f  |R14.e...e.. .plo|
00013280  74 5f 77 61 76 65 0d 65  18 10 20 53 57 49 20 26  |t_wave.e.. SWI &|
00013290  31 30 30 2b 31 38 0d 65  22 0e 20 4d 4f 56 20 52  |100+18.e". MOV R|
000132a0  30 2c 23 33 0d 65 2c 14  20 53 57 49 20 22 4f 53  |0,#3.e,. SWI "OS|
000132b0  5f 57 72 69 74 65 43 22  0d 65 36 10 20 4d 4f 56  |_WriteC".e6. MOV|
000132c0  20 52 30 2c 23 31 33 36  0d 65 40 14 20 53 57 49  | R0,#136.e@. SWI|
000132d0  20 22 4f 53 5f 57 72 69  74 65 43 22 0d 65 4a 10  | "OS_WriteC".eJ.|
000132e0  20 53 57 49 20 26 31 30  30 2b 31 38 0d 65 54 0e  | SWI &100+18.eT.|
000132f0  20 4d 4f 56 20 52 30 2c  23 30 0d 65 5e 14 20 53  | MOV R0,#0.e^. S|
00013300  57 49 20 22 4f 53 5f 57  72 69 74 65 43 22 0d 65  |WI "OS_WriteC".e|
00013310  68 0e 20 4d 4f 56 20 52  30 2c 23 33 0d 65 72 14  |h. MOV R0,#3.er.|
00013320  20 53 57 49 20 22 4f 53  5f 57 72 69 74 65 43 22  | SWI "OS_WriteC"|
00013330  0d 65 7c 0e 20 4d 4f 56  20 52 30 2c 23 34 0d 65  |.e|. MOV R0,#4.e|
00013340  86 22 20 4d 4f 56 20 52  31 2c 23 31 30 30 30 20  |." MOV R1,#1000 |
00013350  3a 20 41 44 44 20 52 31  2c 52 31 2c 23 31 36 30  |: ADD R1,R1,#160|
00013360  0d 65 90 10 20 4d 4f 56  20 52 32 2c 23 38 38 30  |.e.. MOV R2,#880|
00013370  0d 65 9a 12 20 53 57 49  20 22 4f 53 5f 50 6c 6f  |.e.. SWI "OS_Plo|
00013380  74 22 0d 65 a4 11 20 41  44 52 20 52 30 2c 42 77  |t".e.. ADR R0,Bw|
00013390  61 76 65 0d 65 ae 14 20  53 57 49 20 22 4f 53 5f  |ave.e.. SWI "OS_|
000133a0  57 72 69 74 65 30 22 0d  65 b8 10 20 4d 4f 56 20  |Write0".e.. MOV |
000133b0  52 31 35 2c 52 31 34 0d  65 c2 04 0d 65 cc 12 20  |R15,R14.e...e.. |
000133c0  2e 77 61 76 65 20 20 45  51 55 42 20 31 0d 65 d6  |.wave  EQUB 1.e.|
000133d0  1d 20 2e 42 77 61 76 65  20 45 51 55 42 20 31 32  |. .Bwave EQUB 12|
000133e0  37 3a 45 51 55 42 20 31  32 37 0d 65 e0 1e 20 2e  |7:EQUB 127.e.. .|
000133f0  43 77 61 76 65 20 45 51  55 53 20 22 20 31 22 20  |Cwave EQUS " 1" |
00013400  3a 20 45 51 55 42 20 30  0d 65 ea 0a 20 41 4c 49  |: EQUB 0.e.. ALI|
00013410  47 4e 0d 65 f4 04 0d 65  fe 14 20 2e 69 6e 69 74  |GN.e...e.. .init|
00013420  5f 77 61 76 65 5f 76 61  72 73 0d 66 08 14 20 4c  |_wave_vars.f.. L|
00013430  44 52 20 52 31 2c 76 61  72 5f 61 64 64 72 0d 66  |DR R1,var_addr.f|
00013440  12 15 20 53 54 52 20 52  31 2c 76 61 72 5f 61 64  |.. STR R1,var_ad|
00013450  64 72 32 0d 66 1c 0f 20  42 20 6e 65 77 5f 77 61  |dr2.f.. B new_wa|
00013460  76 65 0d 66 26 11 20 2e  72 65 70 65 61 74 5f 77  |ve.f&. .repeat_w|
00013470  61 76 65 0d 66 30 15 20  4c 44 52 20 52 31 2c 76  |ave.f0. LDR R1,v|
00013480  61 72 5f 61 64 64 72 32  0d 66 3a 0e 20 2e 6e 65  |ar_addr2.f:. .ne|
00013490  77 5f 77 61 76 65 0d 66  44 2f 20 4c 44 52 42 20  |w_wave.fD/ LDRB |
000134a0  52 32 2c 5b 52 31 5d 2c  23 31 20 20 3a 20 53 54  |R2,[R1],#1  : ST|
000134b0  52 42 20 52 32 2c 73 63  6f 72 65 5f 69 6e 63 72  |RB R2,score_incr|
000134c0  65 6d 65 6e 74 0d 66 4e  14 20 4c 44 52 42 20 52  |ement.fN. LDRB R|
000134d0  32 2c 5b 52 31 5d 2c 23  31 0d 66 58 14 20 4c 44  |2,[R1],#1.fX. LD|
000134e0  52 42 20 52 33 2c 5b 52  31 5d 2c 23 31 0d 66 62  |RB R3,[R1],#1.fb|
000134f0  14 20 4c 44 52 42 20 52  34 2c 5b 52 31 5d 2c 23  |. LDRB R4,[R1],#|
00013500  31 0d 66 6c 14 20 4c 44  52 42 20 52 35 2c 5b 52  |1.fl. LDRB R5,[R|
00013510  31 5d 2c 23 31 0d 66 76  14 20 4c 44 52 42 20 52  |1],#1.fv. LDRB R|
00013520  36 2c 5b 52 31 5d 2c 23  31 0d 66 80 14 20 4c 44  |6,[R1],#1.f.. LD|
00013530  52 42 20 52 37 2c 5b 52  31 5d 2c 23 31 0d 66 8a  |RB R7,[R1],#1.f.|
00013540  14 20 4c 44 52 42 20 52  38 2c 5b 52 31 5d 2c 23  |. LDRB R8,[R1],#|
00013550  31 0d 66 94 14 20 4c 44  52 42 20 52 39 2c 5b 52  |1.f.. LDRB R9,[R|
00013560  31 5d 2c 23 31 0d 66 9e  15 20 4c 44 52 42 20 52  |1],#1.f.. LDRB R|
00013570  31 30 2c 5b 52 31 5d 2c  23 31 0d 66 a8 45 20 53  |10,[R1],#1.f.E S|
00013580  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 2c 52  |TMFD R13!,{R14,R|
00013590  31 7d 20 3a 20 42 4c 20  70 72 6f 67 72 61 6d 5f  |1} : BL program_|
000135a0  76 61 72 69 61 62 6c 65  73 20 3a 20 4c 44 4d 46  |variables : LDMF|
000135b0  44 20 52 31 33 21 2c 7b  52 31 34 2c 52 31 7d 0d  |D R13!,{R14,R1}.|
000135c0  66 b2 04 0d 66 bc 32 20  3b 20 20 20 69 6e 69 74  |f...f.2 ;   init|
000135d0  69 61 6c 69 73 65 20 62  79 74 65 2c 20 31 32 20  |ialise byte, 12 |
000135e0  62 79 74 65 73 20 66 6f  72 20 65 61 63 68 20 73  |bytes for each s|
000135f0  70 72 69 74 65 0d 66 c6  13 20 53 55 42 20 52 31  |prite.f.. SUB R1|
00013600  30 2c 52 31 30 2c 23 32  0d 66 d0 20 20 4d 4f 56  |0,R10,#2.f.  MOV|
00013610  20 52 38 2c 23 31 32 20  3a 20 4d 55 4c 20 52 31  | R8,#12 : MUL R1|
00013620  31 2c 52 38 2c 52 31 30  0d 66 da 3e 20 4c 44 52  |1,R8,R10.f.> LDR|
00013630  42 20 52 38 2c 5b 52 31  5d 2c 23 31 20 20 20 20  |B R8,[R1],#1    |
00013640  20 3b 20 68 6f 77 20 6d  61 6e 79 20 64 69 66 66  | ; how many diff|
00013650  65 72 65 6e 74 20 73 70  72 69 74 65 73 20 6f 6e  |erent sprites on|
00013660  73 63 72 65 65 6e 0d 66  e4 3b 20 4d 4f 56 20 52  |screen.f.; MOV R|
00013670  37 2c 52 31 20 3a 20 41  44 44 20 52 31 2c 52 31  |7,R1 : ADD R1,R1|
00013680  2c 23 39 20 20 20 20 3b  20 65 61 63 68 20 73 70  |,#9    ; each sp|
00013690  72 69 74 65 20 68 61 73  20 61 20 6e 75 6d 62 65  |rite has a numbe|
000136a0  72 0d 66 ee 3e 20 4c 44  52 20 52 33 2c 5b 52 31  |r.f.> LDR R3,[R1|
000136b0  5d 2c 23 34 20 20 20 20  20 20 3b 20 69 66 20 64  |],#4      ; if d|
000136c0  69 66 66 65 72 65 6e 74  20 74 68 65 6e 20 73 70  |ifferent then sp|
000136d0  72 69 74 65 73 20 61 72  65 20 73 70 6c 69 74 0d  |rites are split.|
000136e0  66 f8 13 20 4c 44 52 20  52 34 2c 5b 52 31 5d 2c  |f.. LDR R4,[R1],|
000136f0  23 34 0d 67 02 13 20 4c  44 52 20 52 35 2c 5b 52  |#4.g.. LDR R5,[R|
00013700  31 5d 2c 23 34 0d 67 0c  13 20 4c 44 52 20 52 36  |1],#4.g.. LDR R6|
00013710  2c 5b 52 31 5d 2c 23 34  0d 67 16 3e 20 53 54 52  |,[R1],#4.g.> STR|
00013720  20 52 31 2c 76 61 72 5f  61 64 64 72 20 20 20 20  | R1,var_addr    |
00013730  3b 20 73 74 6f 72 65 73  20 63 75 72 72 65 6e 74  |; stores current|
00013740  20 70 6f 73 69 74 69 6f  6e 20 69 6e 20 76 61 72  | position in var|
00013750  69 61 62 6c 65 73 0d 67  20 0f 20 4d 56 4e 20 20  |iables.g . MVN  |
00013760  52 39 2c 23 30 0d 67 2a  0e 20 4d 4f 56 20 52 31  |R9,#0.g*. MOV R1|
00013770  2c 23 30 0d 67 34 3c 20  53 54 4d 46 44 20 52 31  |,#0.g4< STMFD R1|
00013780  33 21 2c 7b 52 31 34 7d  20 3a 20 42 4c 20 64 69  |3!,{R14} : BL di|
00013790  72 65 63 74 69 76 65 5f  62 79 74 65 20 3a 20 4c  |rective_byte : L|
000137a0  44 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |DMFD R13!,{R14}.|
000137b0  67 3e 0a 20 2e 6c 6f 6f  70 0d 67 48 29 20 20 20  |g>. .loop.gH)   |
000137c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000137d0  20 3b 20 20 20 20 66 69  72 73 74 20 73 70 72 69  | ;    first spri|
000137e0  74 65 0d 67 52 11 20 41  44 44 20 52 39 2c 52 39  |te.gR. ADD R9,R9|
000137f0  2c 23 31 0d 67 5c 15 20  4c 44 52 42 20 52 31 30  |,#1.g\. LDRB R10|
00013800  2c 5b 52 37 2c 52 39 5d  0d 67 66 1c 20 43 4d 50  |,[R7,R9].gf. CMP|
00013810  20 52 39 2c 52 38 20 3a  20 4d 56 4e 45 51 20 52  | R9,R8 : MVNEQ R|
00013820  39 2c 23 30 0d 67 70 13  20 53 54 52 20 52 33 2c  |9,#0.gp. STR R3,|
00013830  5b 52 32 2c 23 30 5d 0d  67 7a 14 20 53 54 52 20  |[R2,#0].gz. STR |
00013840  52 31 30 2c 5b 52 32 2c  23 34 5d 0d 67 84 13 20  |R10,[R2,#4].g.. |
00013850  53 54 52 20 52 35 2c 5b  52 32 2c 23 38 5d 0d 67  |STR R5,[R2,#8].g|
00013860  8e 2a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.*              |
00013870  20 20 20 20 20 20 3b 20  20 20 20 73 65 63 6f 6e  |      ;    secon|
00013880  64 20 73 70 72 69 74 65  0d 67 98 11 20 41 44 44  |d sprite.g.. ADD|
00013890  20 52 39 2c 52 39 2c 23  31 0d 67 a2 15 20 4c 44  | R9,R9,#1.g.. LD|
000138a0  52 42 20 52 31 30 2c 5b  52 37 2c 52 39 5d 0d 67  |RB R10,[R7,R9].g|
000138b0  ac 1c 20 43 4d 50 20 52  39 2c 52 38 20 3a 20 4d  |.. CMP R9,R8 : M|
000138c0  56 4e 45 51 20 52 39 2c  23 30 0d 67 b6 14 20 53  |VNEQ R9,#0.g.. S|
000138d0  54 52 20 52 34 2c 5b 52  32 2c 23 31 32 5d 0d 67  |TR R4,[R2,#12].g|
000138e0  c0 15 20 53 54 52 20 52  31 30 2c 5b 52 32 2c 23  |.. STR R10,[R2,#|
000138f0  31 36 5d 0d 67 ca 14 20  53 54 52 20 52 36 2c 5b  |16].g.. STR R6,[|
00013900  52 32 2c 23 32 30 5d 0d  67 d4 04 0d 67 de 2d 20  |R2,#20].g...g.- |
00013910  41 44 44 20 52 32 2c 52  32 2c 23 32 34 3a 41 44  |ADD R2,R2,#24:AD|
00013920  44 20 52 31 2c 52 31 2c  23 32 34 20 3a 20 43 4d  |D R1,R1,#24 : CM|
00013930  50 20 52 31 2c 52 31 31  0d 67 e8 0d 20 42 4c 53  |P R1,R11.g.. BLS|
00013940  20 6c 6f 6f 70 0d 67 f2  0e 20 2e 6d 61 69 6e 6c  | loop.g.. .mainl|
00013950  6f 6f 70 0d 67 fc 2d 20  4d 4f 56 20 52 38 2c 23  |oop.g.- MOV R8,#|
00013960  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00013970  20 20 20 20 20 3b 20 73  70 72 69 74 65 5f 6e 6f  |     ; sprite_no|
00013980  0d 68 06 82 20 4d 4f 56  20 52 39 2c 23 30 20 3a  |.h.. MOV R9,#0 :|
00013990  4d 4f 56 20 52 31 30 2c  23 30 20 20 20 20 20 20  |MOV R10,#0      |
000139a0  20 20 3b 20 70 61 74 74  65 72 6e 20 62 79 74 65  |  ; pattern byte|
000139b0  73 20 70 6f 69 6e 74 65  72 2c 20 20 52 39 20 2d  |s pointer,  R9 -|
000139c0  20 73 65 74 20 74 6f 20  63 75 72 72 65 6e 74 20  | set to current |
000139d0  73 70 72 69 74 65 20 61  64 64 65 64 20 74 6f 20  |sprite added to |
000139e0  6f 66 66 73 65 74 20 74  6f 20 67 69 76 65 20 66  |offset to give f|
000139f0  69 6e 61 6c 20 72 65 73  75 6c 74 20 69 6e 20 52  |inal result in R|
00013a00  31 30 0d 68 10 04 0d 68  1a 14 20 4c 44 52 20 52  |10.h...h.. LDR R|
00013a10  31 2c 76 61 72 5f 61 64  64 72 0d 68 24 14 20 4c  |1,var_addr.h$. L|
00013a20  44 52 42 20 52 32 2c 5b  52 31 5d 2c 23 31 0d 68  |DRB R2,[R1],#1.h|
00013a30  2e 14 20 42 4e 56 20 65  6e 64 3a 42 4e 56 20 65  |.. BNV end:BNV e|
00013a40  6e 64 0d 68 38 13 20 41  44 52 20 52 33 2c 70 61  |nd.h8. ADR R3,pa|
00013a50  74 74 65 72 6e 0d 68 42  13 20 2e 70 61 74 74 65  |ttern.hB. .patte|
00013a60  72 6e 5f 77 72 69 74 65  0d 68 4c 14 20 4c 44 52  |rn_write.hL. LDR|
00013a70  42 20 52 34 2c 5b 52 31  5d 2c 23 31 0d 68 56 14  |B R4,[R1],#1.hV.|
00013a80  20 53 54 52 42 20 52 34  2c 5b 52 33 5d 2c 23 31  | STRB R4,[R3],#1|
00013a90  0d 68 60 12 20 53 55 42  53 20 52 32 2c 52 32 2c  |.h`. SUBS R2,R2,|
00013aa0  23 31 0d 68 6a 16 20 42  4e 45 20 70 61 74 74 65  |#1.hj. BNE patte|
00013ab0  72 6e 5f 77 72 69 74 65  0d 68 74 14 20 53 54 52  |rn_write.ht. STR|
00013ac0  20 52 31 2c 76 61 72 5f  61 64 64 72 0d 68 7e 10  | R1,var_addr.h~.|
00013ad0  20 4d 4f 56 20 52 31 35  2c 52 31 34 0d 68 88 04  | MOV R15,R14.h..|
00013ae0  0d 68 92 14 20 2e 72 65  73 65 74 5f 76 61 72 5f  |.h.. .reset_var_|
00013af0  61 64 64 72 0d 68 9c 15  20 41 44 52 20 52 31 2c  |addr.h.. ADR R1,|
00013b00  76 61 72 69 61 62 6c 65  73 0d 68 a6 14 20 53 54  |variables.h.. ST|
00013b10  52 20 52 31 2c 76 61 72  5f 61 64 64 72 0d 68 b0  |R R1,var_addr.h.|
00013b20  15 20 53 54 52 20 52 31  2c 76 61 72 5f 61 64 64  |. STR R1,var_add|
00013b30  72 32 0d 68 ba 10 20 4d  4f 56 20 52 31 35 2c 52  |r2.h.. MOV R15,R|
00013b40  31 34 0d 68 c4 05 20 0d  68 ce 1e 20 2e 76 61 72  |14.h.. .h.. .var|
00013b50  5f 61 64 64 72 20 20 45  51 55 44 20 76 61 72 69  |_addr  EQUD vari|
00013b60  61 62 6c 65 73 0d 68 d8  1e 20 2e 76 61 72 5f 61  |ables.h.. .var_a|
00013b70  64 64 72 32 20 45 51 55  44 20 76 61 72 69 61 62  |ddr2 EQUD variab|
00013b80  6c 65 73 0d 68 e2 04 0d  68 ec 0f 20 2e 76 61 72  |les.h...h.. .var|
00013b90  69 61 62 6c 65 73 0d 68  f6 05 20 0d 69 00 1a 20  |iables.h.. .i.. |
00013ba0  3b 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 20 20 20 57  |; **********   W|
00013bb0  41 56 45 20 31 0d 69 0a  0b 20 45 51 55 42 20 31  |AVE 1.i.. EQUB 1|
00013bc0  0d 69 14 55 20 45 51 55  42 20 30 20 3a 20 45 51  |.i.U EQUB 0 : EQ|
00013bd0  55 42 20 30 20 3a 20 45  51 55 42 20 32 30 20 3a  |UB 0 : EQUB 20 :|
00013be0  20 45 51 55 42 20 33 20  3a 20 45 51 55 42 20 31  | EQUB 3 : EQUB 1|
00013bf0  20 3a 20 45 51 55 42 20  39 34 20 3a 20 45 51 55  | : EQUB 94 : EQU|
00013c00  42 20 37 20 3a 20 45 51  55 42 20 37 20 3a 45 51  |B 7 : EQUB 7 :EQ|
00013c10  55 42 20 33 35 0d 69 1e  0b 20 45 51 55 42 20 30  |UB 35.i.. EQUB 0|
00013c20  0d 69 28 53 20 45 51 55  42 20 30 20 3a 20 45 51  |.i(S EQUB 0 : EQ|
00013c30  55 42 20 30 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 0 : EQUB 0 : |
00013c40  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
00013c50  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00013c60  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00013c70  42 20 30 0d 69 32 34 20  45 51 55 44 20 26 31 46  |B 0.i24 EQUD &1F|
00013c80  44 38 30 30 30 20 3a 20  45 51 55 44 20 26 31 46  |D8000 : EQUD &1F|
00013c90  44 38 30 30 30 20 3a 20  45 51 55 44 20 30 20 3a  |D8000 : EQUD 0 :|
00013ca0  20 45 51 55 44 20 30 0d  69 3c 0e 20 3b 20 70 61  | EQUD 0.i<. ; pa|
00013cb0  74 74 65 72 6e 0d 69 46  0c 20 45 51 55 42 20 39  |ttern.iF. EQUB 9|
00013cc0  35 0d 69 50 0b 20 45 51  55 42 20 30 0d 69 5a 4c  |5.iP. EQUB 0.iZL|
00013cd0  20 45 51 55 42 20 32 37  3a 45 51 55 42 20 32 37  | EQUB 27:EQUB 27|
00013ce0  3a 45 51 55 42 20 32 37  3a 45 51 55 42 20 32 37  |:EQUB 27:EQUB 27|
*
00013d10  3a 45 51 55 42 20 32 37  0d 69 64 4c 20 45 51 55  |:EQUB 27.idL EQU|
00013d20  42 20 32 37 3a 45 51 55  42 20 32 37 3a 45 51 55  |B 27:EQUB 27:EQU|
*
00013d40  42 20 32 37 3a 45 51 55  42 20 32 36 3a 45 51 55  |B 27:EQUB 26:EQU|
00013d50  42 20 32 36 3a 45 51 55  42 20 32 36 3a 45 51 55  |B 26:EQUB 26:EQU|
00013d60  42 20 32 36 0d 69 6e 4c  20 45 51 55 42 20 31 37  |B 26.inL EQUB 17|
00013d70  3a 45 51 55 42 20 31 37  3a 45 51 55 42 20 31 37  |:EQUB 17:EQUB 17|
*
00013db0  0d 69 78 55 20 45 51 55  42 20 31 36 3a 45 51 55  |.ixU EQUB 16:EQU|
00013dc0  42 20 31 36 3a 45 51 55  42 20 31 36 3a 45 51 55  |B 16:EQUB 16:EQU|
00013dd0  42 20 31 36 3a 45 51 55  42 20 38 3a 45 51 55 42  |B 16:EQUB 8:EQUB|
00013de0  20 38 3a 45 51 55 42 20  38 3a 45 51 55 42 20 38  | 8:EQUB 8:EQUB 8|
00013df0  3a 45 51 55 42 20 38 3a  45 51 55 42 20 38 3a 45  |:EQUB 8:EQUB 8:E|
00013e00  51 55 42 20 38 0d 69 82  5f 20 45 51 55 42 20 35  |QUB 8.i._ EQUB 5|
00013e10  3a 45 51 55 42 20 35 3a  45 51 55 42 20 35 3a 45  |:EQUB 5:EQUB 5:E|
00013e20  51 55 42 20 35 3a 45 51  55 42 20 36 3a 45 51 55  |QUB 5:EQUB 6:EQU|
00013e30  42 20 36 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 6:EQUB 7:EQUB |
00013e40  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |7:EQUB 7:EQUB 7:|
00013e50  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00013e60  55 42 20 37 0d 69 8c 56  20 45 51 55 42 20 36 3a  |UB 7.i.V EQUB 6:|
00013e70  45 51 55 42 20 36 3a 45  51 55 42 20 36 3a 45 51  |EQUB 6:EQUB 6:EQ|
00013e80  55 42 20 35 3a 45 51 55  42 20 35 3a 45 51 55 42  |UB 5:EQUB 5:EQUB|
00013e90  20 35 3a 45 51 55 42 20  34 30 3a 45 51 55 42 20  | 5:EQUB 40:EQUB |
00013ea0  34 30 3a 45 51 55 42 20  34 30 3a 45 51 55 42 20  |40:EQUB 40:EQUB |
00013eb0  34 30 3a 45 51 55 42 20  34 30 0d 69 96 4c 20 45  |40:EQUB 40.i.L E|
00013ec0  51 55 42 20 34 30 3a 45  51 55 42 20 34 30 3a 45  |QUB 40:EQUB 40:E|
00013ed0  51 55 42 20 34 38 3a 45  51 55 42 20 34 38 3a 45  |QUB 48:EQUB 48:E|
*
00013ef0  51 55 42 20 34 39 3a 45  51 55 42 20 34 39 3a 45  |QUB 49:EQUB 49:E|
00013f00  51 55 42 20 34 39 0d 69  a0 4c 20 45 51 55 42 20  |QUB 49.i.L EQUB |
00013f10  34 39 3a 45 51 55 42 20  34 39 3a 45 51 55 42 20  |49:EQUB 49:EQUB |
*
00013f40  35 38 3a 45 51 55 42 20  35 38 3a 45 51 55 42 20  |58:EQUB 58:EQUB |
00013f50  35 38 0d 69 aa 4c 20 45  51 55 42 20 35 38 3a 45  |58.i.L EQUB 58:E|
00013f60  51 55 42 20 35 39 3a 45  51 55 42 20 35 39 3a 45  |QUB 59:EQUB 59:E|
*
00013f90  51 55 42 20 35 39 3a 45  51 55 42 20 35 39 0d 69  |QUB 59:EQUB 59.i|
00013fa0  b4 24 20 45 51 55 42 20  35 39 3a 45 51 55 42 20  |.$ EQUB 59:EQUB |
00013fb0  35 39 3a 45 51 55 42 20  35 39 3a 45 51 55 42 20  |59:EQUB 59:EQUB |
00013fc0  35 39 0d 69 be 0c 20 45  51 55 42 20 33 32 0d 69  |59.i.. EQUB 32.i|
00013fd0  c8 04 0d 69 d2 04 0d 69  dc 1a 20 3b 20 2a 2a 2a  |...i...i.. ; ***|
00013fe0  2a 2a 2a 2a 2a 2a 2a 20  20 20 57 41 56 45 20 32  |*******   WAVE 2|
00013ff0  0d 69 e6 0b 20 45 51 55  42 20 31 0d 69 f0 57 20  |.i.. EQUB 1.i.W |
00014000  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
00014010  3a 20 45 51 55 42 20 32  35 20 3a 20 45 51 55 42  |: EQUB 25 : EQUB|
00014020  20 32 20 3a 20 45 51 55  42 20 32 20 3a 20 45 51  | 2 : EQUB 2 : EQ|
00014030  55 42 20 31 30 31 20 3a  20 45 51 55 42 20 33 20  |UB 101 : EQUB 3 |
00014040  3a 20 45 51 55 42 20 33  20 3a 20 45 51 55 42 20  |: EQUB 3 : EQUB |
00014050  33 36 0d 69 fa 0b 20 45  51 55 42 20 31 0d 6a 04  |36.i.. EQUB 1.j.|
00014060  53 20 45 51 55 42 20 31  20 3a 20 45 51 55 42 20  |S EQUB 1 : EQUB |
00014070  32 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |2 : EQUB 0 : EQU|
00014080  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
00014090  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 20 3a  |QUB 0 : EQUB 0 :|
000140a0  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 30  | EQUB 0 : EQUB 0|
000140b0  0d 6a 0e 35 20 45 51 55  44 20 26 31 46 44 45 31  |.j.5 EQUD &1FDE1|
000140c0  38 38 20 3a 20 45 51 55  44 20 26 31 46 44 43 44  |88 : EQUD &1FDCD|
000140d0  37 36 20 3a 20 45 51 55  44 20 30 20 3a 20 45 51  |76 : EQUD 0 : EQ|
000140e0  55 44 20 35 32 0d 6a 18  0d 20 45 51 55 42 20 31  |UD 52.j.. EQUB 1|
000140f0  30 33 0d 6a 22 0b 20 45  51 55 42 20 30 0d 6a 2c  |03.j". EQUB 0.j,|
00014100  2c 20 45 51 55 42 20 35  37 3a 45 51 55 42 20 35  |, EQUB 57:EQUB 5|
00014110  37 3a 45 51 55 42 20 35  37 3a 45 51 55 42 20 35  |7:EQUB 57:EQUB 5|
00014120  37 3a 45 51 55 42 20 35  37 0d 6a 36 2b 20 45 51  |7:EQUB 57.j6+ EQ|
00014130  55 42 20 35 30 3a 45 51  55 42 20 35 30 3a 45 51  |UB 50:EQUB 50:EQ|
00014140  55 42 20 32 3a 45 51 55  42 20 31 38 3a 45 51 55  |UB 2:EQUB 18:EQU|
00014150  42 20 31 38 0d 6a 40 4c  20 45 51 55 42 20 31 37  |B 18.j@L EQUB 17|
00014160  3a 45 51 55 42 20 31 37  3a 45 51 55 42 20 31 37  |:EQUB 17:EQUB 17|
*
000141a0  0d 6a 4a 3c 20 45 51 55  42 20 31 37 3a 45 51 55  |.jJ< EQUB 17:EQU|
000141b0  42 20 31 37 3a 45 51 55  42 20 31 37 3a 45 51 55  |B 17:EQUB 17:EQU|
*
000141d0  42 20 31 37 3a 45 51 55  42 20 31 37 0d 6a 54 39  |B 17:EQUB 17.jT9|
000141e0  20 45 51 55 42 20 31 38  3a 45 51 55 42 20 31 38  | EQUB 18:EQUB 18|
000141f0  3a 45 51 55 42 20 31 38  3a 45 51 55 42 20 31 38  |:EQUB 18:EQUB 18|
00014200  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00014210  51 55 42 20 33 0d 6a 5e  24 20 45 51 55 42 20 35  |QUB 3.j^$ EQUB 5|
00014220  30 3a 45 51 55 42 20 35  30 3a 45 51 55 42 20 35  |0:EQUB 50:EQUB 5|
00014230  30 3a 45 51 55 42 20 35  30 0d 6a 68 44 20 45 51  |0:EQUB 50.jhD EQ|
00014240  55 42 20 34 39 3a 45 51  55 42 20 34 39 3a 45 51  |UB 49:EQUB 49:EQ|
*
00014270  55 42 20 34 39 3a 45 51  55 42 20 34 39 0d 6a 72  |UB 49:EQUB 49.jr|
00014280  23 20 45 51 55 42 20 35  30 3a 45 51 55 42 20 35  |# EQUB 50:EQUB 5|
00014290  30 3a 45 51 55 42 20 32  3a 45 51 55 42 20 31 38  |0:EQUB 2:EQUB 18|
000142a0  0d 6a 7c 0c 20 45 51 55  42 20 33 32 0d 6a 86 0b  |.j|. EQUB 32.j..|
000142b0  20 45 51 55 42 20 30 0d  6a 90 23 20 45 51 55 42  | EQUB 0.j.# EQUB|
000142c0  20 35 34 3a 45 51 55 42  20 34 3a 45 51 55 42 20  | 54:EQUB 4:EQUB |
000142d0  32 32 3a 45 51 55 42 20  32 32 0d 6a 9a 44 20 45  |22:EQUB 22.j.D E|
000142e0  51 55 42 20 32 31 3a 45  51 55 42 20 32 31 3a 45  |QUB 21:EQUB 21:E|
*
00014310  51 55 42 20 32 31 3a 45  51 55 42 20 32 31 0d 6a  |QUB 21:EQUB 21.j|
00014320  a4 24 20 45 51 55 42 20  35 34 3a 45 51 55 42 20  |.$ EQUB 54:EQUB |
00014330  35 34 3a 45 51 55 42 20  35 34 3a 45 51 55 42 20  |54:EQUB 54:EQUB |
00014340  35 34 0d 6a ae 39 20 45  51 55 42 20 37 3a 45 51  |54.j.9 EQUB 7:EQ|
00014350  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00014360  20 35 34 3a 45 51 55 42  20 35 34 3a 45 51 55 42  | 54:EQUB 54:EQUB|
00014370  20 35 34 3a 45 51 55 42  20 35 34 0d 6a b8 3c 20  | 54:EQUB 54.j.< |
00014380  45 51 55 42 20 35 33 3a  45 51 55 42 20 35 33 3a  |EQUB 53:EQUB 53:|
*
000143b0  45 51 55 42 20 35 33 0d  6a c2 4c 20 45 51 55 42  |EQUB 53.j.L EQUB|
000143c0  20 35 33 3a 45 51 55 42  20 35 33 3a 45 51 55 42  | 53:EQUB 53:EQUB|
*
00014400  20 35 33 0d 6a cc 2b 20  45 51 55 42 20 35 34 3a  | 53.j.+ EQUB 54:|
00014410  45 51 55 42 20 35 34 3a  45 51 55 42 20 36 3a 45  |EQUB 54:EQUB 6:E|
00014420  51 55 42 20 32 32 3a 45  51 55 42 20 32 32 0d 6a  |QUB 22:EQUB 22.j|
00014430  d6 2c 20 45 51 55 42 20  32 39 3a 45 51 55 42 20  |., EQUB 29:EQUB |
00014440  32 39 3a 45 51 55 42 20  32 39 3a 45 51 55 42 20  |29:EQUB 29:EQUB |
00014450  32 39 3a 45 51 55 42 20  32 39 0d 6a e0 13 20 45  |29:EQUB 29.j.. E|
00014460  51 55 42 20 33 32 3a 45  51 55 42 20 30 0d 6a ea  |QUB 32:EQUB 0.j.|
00014470  04 0d 6a f4 04 0d 6a fe  1a 20 3b 20 2a 2a 2a 2a  |..j...j.. ; ****|
00014480  2a 2a 2a 2a 2a 2a 20 20  20 57 41 56 45 20 33 0d  |******   WAVE 3.|
00014490  6b 08 0b 20 45 51 55 42  20 31 0d 6b 12 56 20 45  |k.. EQUB 1.k.V E|
000144a0  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 20 3a  |QUB 0 : EQUB 0 :|
000144b0  20 45 51 55 42 20 32 35  20 3a 20 45 51 55 42 20  | EQUB 25 : EQUB |
000144c0  33 20 3a 20 45 51 55 42  20 32 20 3a 20 45 51 55  |3 : EQUB 2 : EQU|
000144d0  42 20 31 32 35 20 3a 20  45 51 55 42 20 36 20 3a  |B 125 : EQUB 6 :|
000144e0  20 45 51 55 42 20 37 3a  20 45 51 55 42 20 33 36  | EQUB 7: EQUB 36|
000144f0  0d 6b 1c 0b 20 45 51 55  42 20 30 0d 6b 26 53 20  |.k.. EQUB 0.k&S |
00014500  45 51 55 42 20 38 20 3a  20 45 51 55 42 20 30 20  |EQUB 8 : EQUB 0 |
00014510  3a 20 45 51 55 42 20 31  20 3a 20 45 51 55 42 20  |: EQUB 1 : EQUB |
00014520  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00014530  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
00014540  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 0d 6b  |QUB 0 : EQUB 0.k|
00014550  30 35 20 45 51 55 44 20  26 31 46 45 31 32 45 37  |05 EQUD &1FE12E7|
00014560  20 3a 20 45 51 55 44 20  26 31 46 45 31 33 36 46  | : EQUD &1FE136F|
00014570  20 3a 20 45 51 55 44 20  30 20 3a 20 45 51 55 44  | : EQUD 0 : EQUD|
00014580  20 36 37 0d 6b 3a 0d 20  45 51 55 42 20 31 32 37  | 67.k:. EQUB 127|
00014590  0d 6b 44 0b 20 45 51 55  42 20 30 0d 6b 4e 44 20  |.kD. EQUB 0.kND |
000145a0  45 51 55 42 20 34 30 3a  45 51 55 42 20 35 36 3a  |EQUB 40:EQUB 56:|
000145b0  45 51 55 42 20 35 36 3a  45 51 55 42 20 34 30 3a  |EQUB 56:EQUB 40:|
000145c0  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 3a  |EQUB 56:EQUB 56:|
000145d0  45 51 55 42 20 34 30 3a  45 51 55 42 20 35 36 0d  |EQUB 40:EQUB 56.|
000145e0  6b 58 34 20 45 51 55 42  20 35 36 3a 45 51 55 42  |kX4 EQUB 56:EQUB|
000145f0  20 34 30 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 40:EQUB 56:EQUB|
00014600  20 35 36 3a 45 51 55 42  20 34 30 3a 45 51 55 42  | 56:EQUB 40:EQUB|
00014610  20 35 36 0d 6b 62 04 0d  6b 6c 44 20 45 51 55 42  | 56.kb..klD EQUB|
00014620  20 35 36 3a 45 51 55 42  20 34 30 3a 45 51 55 42  | 56:EQUB 40:EQUB|
00014630  20 35 36 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 56:EQUB 56:EQUB|
00014640  20 34 30 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 40:EQUB 56:EQUB|
00014650  20 35 36 3a 45 51 55 42  20 34 30 0d 6b 76 24 20  | 56:EQUB 40.kv$ |
00014660  45 51 55 42 20 35 36 3a  45 51 55 42 20 34 30 3a  |EQUB 56:EQUB 40:|
00014670  45 51 55 42 20 35 37 3a  45 51 55 42 20 35 37 0d  |EQUB 57:EQUB 57.|
00014680  6b 80 44 20 45 51 55 42  20 35 37 3a 45 51 55 42  |k.D EQUB 57:EQUB|
00014690  20 35 37 3a 45 51 55 42  20 35 37 3a 45 51 55 42  | 57:EQUB 57:EQUB|
*
000146b0  20 35 38 3a 45 51 55 42  20 35 38 3a 45 51 55 42  | 58:EQUB 58:EQUB|
000146c0  20 35 38 0d 6b 8a 12 20  45 51 55 42 20 33 3a 45  | 58.k.. EQUB 3:E|
000146d0  51 55 42 20 33 0d 6b 94  44 20 45 51 55 42 20 32  |QUB 3.k.D EQUB 2|
000146e0  36 3a 45 51 55 42 20 32  36 3a 45 51 55 42 20 32  |6:EQUB 26:EQUB 2|
000146f0  36 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |6:EQUB 25:EQUB 2|
00014700  35 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |5:EQUB 25:EQUB 2|
00014710  35 3a 45 51 55 42 20 32  35 0d 6b 9e 24 20 45 51  |5:EQUB 25.k.$ EQ|
00014720  55 42 20 32 35 3a 45 51  55 42 20 32 35 3a 45 51  |UB 25:EQUB 25:EQ|
00014730  55 42 20 32 34 3a 45 51  55 42 20 32 34 0d 6b a8  |UB 24:EQUB 24.k.|
00014740  44 20 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |D EQUB 24:EQUB 2|
00014750  34 3a 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |4:EQUB 24:EQUB 2|
*
00014780  34 0d 6b b2 44 20 45 51  55 42 20 32 34 3a 45 51  |4.k.D EQUB 24:EQ|
00014790  55 42 20 32 34 3a 45 51  55 42 20 32 34 3a 45 51  |UB 24:EQUB 24:EQ|
*
000147c0  55 42 20 32 34 0d 6b bc  0c 20 45 51 55 42 20 33  |UB 24.k.. EQUB 3|
000147d0  32 0d 6b c6 0b 20 45 51  55 42 20 30 0d 6b d0 44  |2.k.. EQUB 0.k.D|
000147e0  20 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 36  | EQUB 56:EQUB 56|
000147f0  3a 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 36  |:EQUB 56:EQUB 56|
*
00014820  0d 6b da 44 20 45 51 55  42 20 35 36 3a 45 51 55  |.k.D EQUB 56:EQU|
00014830  42 20 35 36 3a 45 51 55  42 20 35 36 3a 45 51 55  |B 56:EQUB 56:EQU|
*
00014860  42 20 35 36 0d 6b e4 24  20 45 51 55 42 20 35 36  |B 56.k.$ EQUB 56|
00014870  3a 45 51 55 42 20 35 36  3a 45 51 55 42 20 36 31  |:EQUB 56:EQUB 61|
00014880  3a 45 51 55 42 20 36 31  0d 6b ee 44 20 45 51 55  |:EQUB 61.k.D EQU|
00014890  42 20 36 31 3a 45 51 55  42 20 36 31 3a 45 51 55  |B 61:EQUB 61:EQU|
*
000148b0  42 20 36 31 3a 45 51 55  42 20 36 32 3a 45 51 55  |B 61:EQUB 62:EQU|
000148c0  42 20 36 32 3a 45 51 55  42 20 36 32 0d 6b f8 12  |B 62:EQUB 62.k..|
000148d0  20 45 51 55 42 20 37 3a  45 51 55 42 20 37 0d 6c  | EQUB 7:EQUB 7.l|
000148e0  02 44 20 45 51 55 42 20  33 30 3a 45 51 55 42 20  |.D EQUB 30:EQUB |
000148f0  33 30 3a 45 51 55 42 20  33 30 3a 45 51 55 42 20  |30:EQUB 30:EQUB |
00014900  32 39 3a 45 51 55 42 20  32 39 3a 45 51 55 42 20  |29:EQUB 29:EQUB |
*
00014920  32 39 0d 6c 0c 24 20 45  51 55 42 20 32 39 3a 45  |29.l.$ EQUB 29:E|
00014930  51 55 42 20 32 39 3a 45  51 55 42 20 32 34 3a 45  |QUB 29:EQUB 24:E|
00014940  51 55 42 20 32 34 0d 6c  16 44 20 45 51 55 42 20  |QUB 24.l.D EQUB |
00014950  32 34 3a 45 51 55 42 20  32 34 3a 45 51 55 42 20  |24:EQUB 24:EQUB |
*
00014980  32 34 3a 45 51 55 42 20  32 34 0d 6c 20 44 20 45  |24:EQUB 24.l D E|
00014990  51 55 42 20 32 34 3a 45  51 55 42 20 32 34 3a 45  |QUB 24:EQUB 24:E|
*
000149c0  51 55 42 20 32 34 3a 45  51 55 42 20 32 34 0d 6c  |QUB 24:EQUB 24.l|
000149d0  2a 13 20 45 51 55 42 20  33 32 3a 45 51 55 42 20  |*. EQUB 32:EQUB |
000149e0  30 0d 6c 34 04 0d 6c 3e  04 0d 6c 48 1a 20 3b 20  |0.l4..l>..lH. ; |
000149f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 20 20 20 57 41 56  |**********   WAV|
00014a00  45 20 34 0d 6c 52 0b 20  45 51 55 42 20 31 0d 6c  |E 4.lR. EQUB 1.l|
00014a10  5c 55 20 45 51 55 42 20  30 20 3a 20 45 51 55 42  |\U EQUB 0 : EQUB|
00014a20  20 30 20 3a 20 45 51 55  42 20 32 35 20 3a 20 45  | 0 : EQUB 25 : E|
00014a30  51 55 42 20 33 20 3a 20  45 51 55 42 20 32 20 3a  |QUB 3 : EQUB 2 :|
00014a40  20 45 51 55 42 20 36 31  20 3a 20 45 51 55 42 20  | EQUB 61 : EQUB |
00014a50  31 20 3a 20 45 51 55 42  20 31 3a 20 45 51 55 42  |1 : EQUB 1: EQUB|
00014a60  20 33 35 0d 6c 66 0b 20  45 51 55 42 20 31 0d 6c  | 35.lf. EQUB 1.l|
00014a70  70 53 20 45 51 55 42 20  33 20 3a 20 45 51 55 42  |pS EQUB 3 : EQUB|
00014a80  20 34 20 3a 20 45 51 55  42 20 31 20 3a 20 45 51  | 4 : EQUB 1 : EQ|
00014a90  55 42 20 30 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 0 : EQUB 0 : |
00014aa0  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
00014ab0  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00014ac0  30 0d 6c 7a 35 20 45 51  55 44 20 26 31 46 44 42  |0.lz5 EQUD &1FDB|
00014ad0  42 36 38 20 3a 20 45 51  55 44 20 26 31 46 44 44  |B68 : EQUD &1FDD|
00014ae0  39 35 30 20 3a 20 45 51  55 44 20 30 20 3a 20 45  |950 : EQUD 0 : E|
00014af0  51 55 44 20 33 32 0d 6c  84 0c 20 45 51 55 42 20  |QUD 32.l.. EQUB |
00014b00  36 33 0d 6c 8e 0b 20 45  51 55 42 20 30 0d 6c 98  |63.l.. EQUB 0.l.|
00014b10  49 20 45 51 55 42 20 31  38 3a 45 51 55 42 20 31  |I EQUB 18:EQUB 1|
00014b20  38 3a 45 51 55 42 20 31  38 3a 45 51 55 42 20 31  |8:EQUB 18:EQUB 1|
*
00014b40  38 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |8:EQUB 3:EQUB 3:|
00014b50  45 51 55 42 20 33 0d 6c  a2 49 20 45 51 55 42 20  |EQUB 3.l.I EQUB |
00014b60  35 30 3a 45 51 55 42 20  35 30 3a 45 51 55 42 20  |50:EQUB 50:EQUB |
*
00014b90  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 0d  |3:EQUB 3:EQUB 3.|
00014ba0  6c ac 49 20 45 51 55 42  20 31 38 3a 45 51 55 42  |l.I EQUB 18:EQUB|
00014bb0  20 31 38 3a 45 51 55 42  20 31 38 3a 45 51 55 42  | 18:EQUB 18:EQUB|
*
00014bd0  20 31 38 3a 45 51 55 42  20 33 3a 45 51 55 42 20  | 18:EQUB 3:EQUB |
00014be0  33 3a 45 51 55 42 20 33  0d 6c b6 14 20 45 51 55  |3:EQUB 3.l.. EQU|
00014bf0  42 20 35 30 3a 45 51 55  42 20 35 30 0d 6c c0 0c  |B 50:EQUB 50.l..|
00014c00  20 45 51 55 42 20 33 32  0d 6c ca 0b 20 45 51 55  | EQUB 32.l.. EQU|
00014c10  42 20 30 0d 6c d4 14 20  45 51 55 42 20 32 32 3a  |B 0.l.. EQUB 22:|
00014c20  45 51 55 42 20 32 32 0d  6c de 49 20 45 51 55 42  |EQUB 22.l.I EQUB|
00014c30  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00014c40  3a 45 51 55 42 20 35 34  3a 45 51 55 42 20 35 34  |:EQUB 54:EQUB 54|
*
00014c70  0d 6c e8 49 20 45 51 55  42 20 37 3a 45 51 55 42  |.l.I EQUB 7:EQUB|
00014c80  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 32  | 7:EQUB 7:EQUB 2|
00014c90  32 3a 45 51 55 42 20 32  32 3a 45 51 55 42 20 32  |2:EQUB 22:EQUB 2|
*
00014cb0  32 3a 45 51 55 42 20 32  32 0d 6c f2 49 20 45 51  |2:EQUB 22.l.I EQ|
00014cc0  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00014cd0  20 37 3a 45 51 55 42 20  35 34 3a 45 51 55 42 20  | 7:EQUB 54:EQUB |
00014ce0  35 34 3a 45 51 55 42 20  35 34 3a 45 51 55 42 20  |54:EQUB 54:EQUB |
*
00014d00  35 34 0d 6c fc 13 20 45  51 55 42 20 33 32 3a 45  |54.l.. EQUB 32:E|
00014d10  51 55 42 20 30 0d 6d 06  04 0d 6d 10 04 0d 6d 1a  |QUB 0.m...m...m.|
00014d20  1a 20 3b 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 20 20  |. ; **********  |
00014d30  20 57 41 56 45 20 35 0d  6d 24 0b 20 45 51 55 42  | WAVE 5.m$. EQUB|
00014d40  20 31 0d 6d 2e 56 20 45  51 55 42 20 30 20 3a 20  | 1.m.V EQUB 0 : |
00014d50  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 32 35  |EQUB 0 : EQUB 25|
00014d60  20 3a 20 45 51 55 42 20  33 20 3a 20 45 51 55 42  | : EQUB 3 : EQUB|
00014d70  20 33 20 3a 20 45 51 55  42 20 31 30 37 20 3a 20  | 3 : EQUB 107 : |
00014d80  45 51 55 42 20 38 20 3a  20 45 51 55 42 20 38 20  |EQUB 8 : EQUB 8 |
00014d90  3a 45 51 55 42 20 33 35  0d 6d 38 0b 20 45 51 55  |:EQUB 35.m8. EQU|
00014da0  42 20 30 0d 6d 42 53 20  45 51 55 42 20 39 20 3a  |B 0.mBS EQUB 9 :|
00014db0  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 30  | EQUB 0 : EQUB 0|
00014dc0  20 3a 20 45 51 55 42 20  30 20 3a 20 45 51 55 42  | : EQUB 0 : EQUB|
00014dd0  20 30 20 3a 20 45 51 55  42 20 30 20 3a 20 45 51  | 0 : EQUB 0 : EQ|
00014de0  55 42 20 30 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 0 : EQUB 0 : |
00014df0  45 51 55 42 20 30 0d 6d  4c 34 20 45 51 55 44 20  |EQUB 0.mL4 EQUD |
00014e00  26 31 46 45 30 32 30 39  20 3a 20 45 51 55 44 20  |&1FE0209 : EQUD |
*
00014e20  30 20 3a 20 45 51 55 44  20 30 0d 6d 56 0d 20 45  |0 : EQUD 0.mV. E|
00014e30  51 55 42 20 31 31 31 0d  6d 60 0b 20 45 51 55 42  |QUB 111.m`. EQUB|
00014e40  20 30 0d 6d 6a 54 20 45  51 55 42 20 35 39 3a 45  | 0.mjT EQUB 59:E|
00014e50  51 55 42 20 35 39 3a 45  51 55 42 20 35 39 3a 45  |QUB 59:EQUB 59:E|
00014e60  51 55 42 20 35 39 3a 45  51 55 42 20 35 31 3a 45  |QUB 59:EQUB 51:E|
00014e70  51 55 42 20 35 31 3a 45  51 55 42 20 35 31 3a 45  |QUB 51:EQUB 51:E|
00014e80  51 55 42 20 34 33 3a 45  51 55 42 20 34 33 3a 45  |QUB 43:EQUB 43:E|
00014e90  51 55 42 20 34 33 0d 6d  74 12 20 45 51 55 42 20  |QUB 43.mt. EQUB |
00014ea0  33 3a 45 51 55 42 20 33  0d 6d 7e 54 20 45 51 55  |3:EQUB 3.m~T EQU|
00014eb0  42 20 31 31 3a 45 51 55  42 20 31 31 3a 45 51 55  |B 11:EQUB 11:EQU|
00014ec0  42 20 31 31 3a 45 51 55  42 20 31 39 3a 45 51 55  |B 11:EQUB 19:EQU|
00014ed0  42 20 31 39 3a 45 51 55  42 20 31 39 3a 45 51 55  |B 19:EQUB 19:EQU|
00014ee0  42 20 32 37 3a 45 51 55  42 20 32 37 3a 45 51 55  |B 27:EQUB 27:EQU|
00014ef0  42 20 32 37 3a 45 51 55  42 20 32 37 0d 6d 88 34  |B 27:EQUB 27.m.4|
00014f00  20 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 36  | EQUB 56:EQUB 56|
00014f10  3a 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 36  |:EQUB 56:EQUB 56|
*
00014f30  0d 6d 92 54 20 45 51 55  42 20 36 33 3a 45 51 55  |.m.T EQUB 63:EQU|
00014f40  42 20 36 33 3a 45 51 55  42 20 36 33 3a 45 51 55  |B 63:EQUB 63:EQU|
00014f50  42 20 36 33 3a 45 51 55  42 20 35 35 3a 45 51 55  |B 63:EQUB 55:EQU|
00014f60  42 20 35 35 3a 45 51 55  42 20 35 35 3a 45 51 55  |B 55:EQUB 55:EQU|
00014f70  42 20 34 37 3a 45 51 55  42 20 34 37 3a 45 51 55  |B 47:EQUB 47:EQU|
00014f80  42 20 34 37 0d 6d 9c 12  20 45 51 55 42 20 37 3a  |B 47.m.. EQUB 7:|
00014f90  45 51 55 42 20 37 0d 6d  a6 54 20 45 51 55 42 20  |EQUB 7.m.T EQUB |
00014fa0  31 35 3a 45 51 55 42 20  31 35 3a 45 51 55 42 20  |15:EQUB 15:EQUB |
00014fb0  31 35 3a 45 51 55 42 20  32 33 3a 45 51 55 42 20  |15:EQUB 23:EQUB |
00014fc0  32 33 3a 45 51 55 42 20  32 33 3a 45 51 55 42 20  |23:EQUB 23:EQUB |
00014fd0  33 31 3a 45 51 55 42 20  33 31 3a 45 51 55 42 20  |31:EQUB 31:EQUB |
00014fe0  33 31 3a 45 51 55 42 20  33 31 0d 6d b0 34 20 45  |31:EQUB 31.m.4 E|
00014ff0  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 3a 45  |QUB 56:EQUB 56:E|
*
00015010  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 0d 6d  |QUB 56:EQUB 56.m|
00015020  ba 54 20 45 51 55 42 20  35 39 3a 45 51 55 42 20  |.T EQUB 59:EQUB |
00015030  35 39 3a 45 51 55 42 20  35 39 3a 45 51 55 42 20  |59:EQUB 59:EQUB |
00015040  35 39 3a 45 51 55 42 20  35 31 3a 45 51 55 42 20  |59:EQUB 51:EQUB |
00015050  35 31 3a 45 51 55 42 20  35 31 3a 45 51 55 42 20  |51:EQUB 51:EQUB |
00015060  34 33 3a 45 51 55 42 20  34 33 3a 45 51 55 42 20  |43:EQUB 43:EQUB |
00015070  34 33 0d 6d c4 12 20 45  51 55 42 20 33 3a 45 51  |43.m.. EQUB 3:EQ|
00015080  55 42 20 33 0d 6d ce 54  20 45 51 55 42 20 31 31  |UB 3.m.T EQUB 11|
00015090  3a 45 51 55 42 20 31 31  3a 45 51 55 42 20 31 31  |:EQUB 11:EQUB 11|
000150a0  3a 45 51 55 42 20 31 39  3a 45 51 55 42 20 31 39  |:EQUB 19:EQUB 19|
000150b0  3a 45 51 55 42 20 31 39  3a 45 51 55 42 20 32 37  |:EQUB 19:EQUB 27|
000150c0  3a 45 51 55 42 20 32 37  3a 45 51 55 42 20 32 37  |:EQUB 27:EQUB 27|
000150d0  3a 45 51 55 42 20 32 37  0d 6d d8 34 20 45 51 55  |:EQUB 27.m.4 EQU|
000150e0  42 20 35 36 3a 45 51 55  42 20 35 36 3a 45 51 55  |B 56:EQUB 56:EQU|
*
00015100  42 20 35 36 3a 45 51 55  42 20 35 36 0d 6d e2 54  |B 56:EQUB 56.m.T|
00015110  20 45 51 55 42 20 36 33  3a 45 51 55 42 20 36 33  | EQUB 63:EQUB 63|
00015120  3a 45 51 55 42 20 36 33  3a 45 51 55 42 20 36 33  |:EQUB 63:EQUB 63|
00015130  3a 45 51 55 42 20 35 35  3a 45 51 55 42 20 35 35  |:EQUB 55:EQUB 55|
00015140  3a 45 51 55 42 20 35 35  3a 45 51 55 42 20 34 37  |:EQUB 55:EQUB 47|
00015150  3a 45 51 55 42 20 34 37  3a 45 51 55 42 20 34 37  |:EQUB 47:EQUB 47|
00015160  0d 6d ec 12 20 45 51 55  42 20 37 3a 45 51 55 42  |.m.. EQUB 7:EQUB|
00015170  20 37 0d 6d f6 54 20 45  51 55 42 20 31 35 3a 45  | 7.m.T EQUB 15:E|
00015180  51 55 42 20 31 35 3a 45  51 55 42 20 31 35 3a 45  |QUB 15:EQUB 15:E|
00015190  51 55 42 20 32 33 3a 45  51 55 42 20 32 33 3a 45  |QUB 23:EQUB 23:E|
000151a0  51 55 42 20 32 33 3a 45  51 55 42 20 33 31 3a 45  |QUB 23:EQUB 31:E|
000151b0  51 55 42 20 33 31 3a 45  51 55 42 20 33 31 3a 45  |QUB 31:EQUB 31:E|
000151c0  51 55 42 20 33 31 0d 6e  00 21 20 45 51 55 42 20  |QUB 31.n.! EQUB |
000151d0  33 32 3a 45 51 55 42 20  30 3a 45 51 55 42 20 30  |32:EQUB 0:EQUB 0|
000151e0  3a 45 51 55 42 20 30 0d  6e 0a 04 0d 6e 14 04 0d  |:EQUB 0.n...n...|
000151f0  6e 1e 1a 20 3b 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |n.. ; **********|
00015200  20 20 20 57 41 56 45 20  36 0d 6e 28 0b 20 45 51  |   WAVE 6.n(. EQ|
00015210  55 42 20 32 0d 6e 32 56  20 45 51 55 42 20 34 20  |UB 2.n2V EQUB 4 |
00015220  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00015230  31 30 20 3a 20 45 51 55  42 20 33 20 3a 20 45 51  |10 : EQUB 3 : EQ|
00015240  55 42 20 33 20 3a 20 45  51 55 42 20 31 30 33 20  |UB 3 : EQUB 103 |
00015250  3a 20 45 51 55 42 20 36  20 3a 20 45 51 55 42 20  |: EQUB 6 : EQUB |
00015260  36 3a 20 45 51 55 42 20  34 30 0d 6e 3c 0b 20 45  |6: EQUB 40.n<. E|
00015270  51 55 42 20 31 0d 6e 46  53 20 45 51 55 42 20 33  |QUB 1.nFS EQUB 3|
00015280  20 3a 20 45 51 55 42 20  34 20 3a 20 45 51 55 42  | : EQUB 4 : EQUB|
00015290  20 30 20 3a 20 45 51 55  42 20 30 20 3a 20 45 51  | 0 : EQUB 0 : EQ|
000152a0  55 42 20 30 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 0 : EQUB 0 : |
000152b0  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
000152c0  3a 20 45 51 55 42 20 30  0d 6e 50 34 20 45 51 55  |: EQUB 0.nP4 EQU|
000152d0  44 20 26 31 46 45 31 32  45 37 20 3a 20 45 51 55  |D &1FE12E7 : EQU|
*
000152f0  44 20 30 20 3a 20 45 51  55 44 20 30 0d 6e 5a 0d  |D 0 : EQUD 0.nZ.|
00015300  20 45 51 55 42 20 31 30  37 0d 6e 64 0b 20 45 51  | EQUB 107.nd. EQ|
00015310  55 42 20 30 0d 6e 6e 42  20 45 51 55 42 20 33 3a  |UB 0.nnB EQUB 3:|
00015320  45 51 55 42 20 33 3a 45  51 55 42 20 34 32 3a 45  |EQUB 3:EQUB 42:E|
00015330  51 55 42 20 34 32 3a 45  51 55 42 20 34 32 3a 45  |QUB 42:EQUB 42:E|
*
00015350  51 55 42 20 34 32 0d 6e  78 1c 20 45 51 55 42 20  |QUB 42.nx. EQUB |
00015360  34 32 3a 45 51 55 42 20  34 32 3a 45 51 55 42 20  |42:EQUB 42:EQUB |
00015370  34 32 0d 6e 82 24 20 45  51 55 42 20 35 37 3a 45  |42.n.$ EQUB 57:E|
00015380  51 55 42 20 35 37 3a 45  51 55 42 20 35 37 3a 45  |QUB 57:EQUB 57:E|
00015390  51 55 42 20 35 37 0d 6e  8c 1c 20 45 51 55 42 20  |QUB 57.n.. EQUB |
000153a0  35 36 3a 45 51 55 42 20  35 36 3a 45 51 55 42 20  |56:EQUB 56:EQUB |
000153b0  35 36 0d 6e 96 24 20 45  51 55 42 20 36 31 3a 45  |56.n.$ EQUB 61:E|
000153c0  51 55 42 20 36 31 3a 45  51 55 42 20 36 31 3a 45  |QUB 61:EQUB 61:E|
000153d0  51 55 42 20 36 31 0d 6e  a0 24 20 45 51 55 42 20  |QUB 61.n.$ EQUB |
000153e0  34 36 3a 45 51 55 42 20  34 36 3a 45 51 55 42 20  |46:EQUB 46:EQUB |
000153f0  34 36 3a 45 51 55 42 20  34 36 0d 6e aa 24 20 45  |46:EQUB 46.n.$ E|
00015400  51 55 42 20 35 34 3a 45  51 55 42 20 35 34 3a 45  |QUB 54:EQUB 54:E|
00015410  51 55 42 20 35 34 3a 45  51 55 42 20 35 34 0d 6e  |QUB 54:EQUB 54.n|
00015420  b4 24 20 45 51 55 42 20  34 39 3a 45 51 55 42 20  |.$ EQUB 49:EQUB |
00015430  34 39 3a 45 51 55 42 20  34 39 3a 45 51 55 42 20  |49:EQUB 49:EQUB |
00015440  34 39 0d 6e be 1c 20 45  51 55 42 20 35 36 3a 45  |49.n.. EQUB 56:E|
00015450  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 0d 6e  |QUB 56:EQUB 56.n|
00015460  c8 24 20 45 51 55 42 20  35 33 3a 45 51 55 42 20  |.$ EQUB 53:EQUB |
00015470  35 33 3a 45 51 55 42 20  35 33 3a 45 51 55 42 20  |53:EQUB 53:EQUB |
00015480  35 33 0d 6e d2 24 20 45  51 55 42 20 35 30 3a 45  |53.n.$ EQUB 50:E|
00015490  51 55 42 20 35 30 3a 45  51 55 42 20 35 30 3a 45  |QUB 50:EQUB 50:E|
000154a0  51 55 42 20 35 30 0d 6e  dc 2e 20 45 51 55 42 20  |QUB 50.n.. EQUB |
000154b0  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
000154c0  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
000154d0  55 42 20 33 0d 6e e6 2e  20 45 51 55 42 20 33 3a  |UB 3.n.. EQUB 3:|
000154e0  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
000154f0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00015500  20 33 0d 6e f0 24 20 45  51 55 42 20 31 38 3a 45  | 3.n.$ EQUB 18:E|
00015510  51 55 42 20 31 38 3a 45  51 55 42 20 31 38 3a 45  |QUB 18:EQUB 18:E|
00015520  51 55 42 20 31 38 0d 6e  fa 24 20 45 51 55 42 20  |QUB 18.n.$ EQUB |
00015530  32 31 3a 45 51 55 42 20  32 31 3a 45 51 55 42 20  |21:EQUB 21:EQUB |
00015540  32 31 3a 45 51 55 42 20  32 31 0d 6f 04 24 20 45  |21:EQUB 21.o.$ E|
00015550  51 55 42 20 32 34 3a 45  51 55 42 20 32 34 3a 45  |QUB 24:EQUB 24:E|
00015560  51 55 42 20 32 34 3a 45  51 55 42 20 32 34 0d 6f  |QUB 24:EQUB 24.o|
00015570  0e 24 20 45 51 55 42 20  31 37 3a 45 51 55 42 20  |.$ EQUB 17:EQUB |
00015580  31 37 3a 45 51 55 42 20  31 37 3a 45 51 55 42 20  |17:EQUB 17:EQUB |
00015590  31 37 0d 6f 18 24 20 45  51 55 42 20 32 32 3a 45  |17.o.$ EQUB 22:E|
000155a0  51 55 42 20 32 32 3a 45  51 55 42 20 32 32 3a 45  |QUB 22:EQUB 22:E|
000155b0  51 55 42 20 32 32 0d 6f  22 24 20 45 51 55 42 20  |QUB 22.o"$ EQUB |
000155c0  31 34 3a 45 51 55 42 20  31 34 3a 45 51 55 42 20  |14:EQUB 14:EQUB |
000155d0  31 34 3a 45 51 55 42 20  31 34 0d 6f 2c 24 20 45  |14:EQUB 14.o,$ E|
000155e0  51 55 42 20 32 33 3a 45  51 55 42 20 32 33 3a 45  |QUB 23:EQUB 23:E|
000155f0  51 55 42 20 32 33 3a 45  51 55 42 20 32 33 0d 6f  |QUB 23:EQUB 23.o|
00015600  36 1c 20 45 51 55 42 20  32 34 3a 45 51 55 42 20  |6. EQUB 24:EQUB |
00015610  32 34 3a 45 51 55 42 20  32 34 0d 6f 40 24 20 45  |24:EQUB 24.o@$ E|
00015620  51 55 42 20 32 35 3a 45  51 55 42 20 32 35 3a 45  |QUB 25:EQUB 25:E|
00015630  51 55 42 20 32 35 3a 45  51 55 42 20 32 35 0d 6f  |QUB 25:EQUB 25.o|
00015640  4a 1c 20 45 51 55 42 20  31 30 3a 45 51 55 42 20  |J. EQUB 10:EQUB |
00015650  31 30 3a 45 51 55 42 20  31 30 0d 6f 54 34 20 45  |10:EQUB 10.oT4 E|
00015660  51 55 42 20 31 30 3a 45  51 55 42 20 31 30 3a 45  |QUB 10:EQUB 10:E|
*
00015680  51 55 42 20 31 30 3a 45  51 55 42 20 31 30 0d 6f  |QUB 10:EQUB 10.o|
00015690  5e 20 20 45 51 55 42 20  33 3a 45 51 55 42 20 33  |^  EQUB 3:EQUB 3|
000156a0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 0d 6f  |:EQUB 3:EQUB 3.o|
000156b0  68 0c 20 45 51 55 42 20  33 32 0d 6f 72 04 0d 6f  |h. EQUB 32.or..o|
000156c0  7c 04 0d 6f 86 1a 20 3b  20 2a 2a 2a 2a 2a 2a 2a  ||..o.. ; *******|
000156d0  2a 2a 2a 20 20 20 57 41  56 45 20 37 0d 6f 90 0b  |***   WAVE 7.o..|
000156e0  20 45 51 55 42 20 32 0d  6f 9a 57 20 45 51 55 42  | EQUB 2.o.W EQUB|
000156f0  20 34 20 3a 20 45 51 55  42 20 30 20 3a 20 45 51  | 4 : EQUB 0 : EQ|
00015700  55 42 20 31 30 20 3a 20  45 51 55 42 20 33 20 3a  |UB 10 : EQUB 3 :|
00015710  20 45 51 55 42 20 33 20  3a 20 45 51 55 42 20 31  | EQUB 3 : EQUB 1|
00015720  32 34 20 3a 20 45 51 55  42 20 36 20 3a 20 45 51  |24 : EQUB 6 : EQ|
00015730  55 42 20 36 20 3a 20 45  51 55 42 20 34 30 0d 6f  |UB 6 : EQUB 40.o|
00015740  a4 0b 20 45 51 55 42 20  31 0d 6f ae 53 20 45 51  |.. EQUB 1.o.S EQ|
00015750  55 42 20 37 20 3a 20 45  51 55 42 20 39 20 3a 20  |UB 7 : EQUB 9 : |
00015760  45 51 55 42 20 31 20 3a  20 45 51 55 42 20 30 20  |EQUB 1 : EQUB 0 |
00015770  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00015780  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00015790  42 20 30 20 3a 20 45 51  55 42 20 30 0d 6f b8 34  |B 0 : EQUB 0.o.4|
000157a0  20 45 51 55 44 20 26 31  46 44 38 30 30 30 20 3a  | EQUD &1FD8000 :|
*
000157c0  20 45 51 55 44 20 30 20  3a 20 45 51 55 44 20 30  | EQUD 0 : EQUD 0|
000157d0  0d 6f c2 0d 20 45 51 55  42 20 31 32 37 0d 6f cc  |.o.. EQUB 127.o.|
000157e0  0b 20 45 51 55 42 20 30  0d 6f d6 44 20 45 51 55  |. EQUB 0.o.D EQU|
000157f0  42 20 32 36 3a 45 51 55  42 20 32 36 3a 45 51 55  |B 26:EQUB 26:EQU|
*
00015820  42 20 32 36 3a 45 51 55  42 20 32 36 0d 6f e0 34  |B 26:EQUB 26.o.4|
00015830  20 45 51 55 42 20 32 36  3a 45 51 55 42 20 32 36  | EQUB 26:EQUB 26|
00015840  3a 45 51 55 42 20 32 36  3a 45 51 55 42 20 32 36  |:EQUB 26:EQUB 26|
*
00015860  0d 6f ea 44 20 45 51 55  42 20 32 35 3a 45 51 55  |.o.D EQUB 25:EQU|
00015870  42 20 32 35 3a 45 51 55  42 20 32 35 3a 45 51 55  |B 25:EQUB 25:EQU|
*
000158a0  42 20 32 35 0d 6f f4 34  20 45 51 55 42 20 32 34  |B 25.o.4 EQUB 24|
000158b0  3a 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  |:EQUB 24:EQUB 24|
*
000158d0  3a 45 51 55 42 20 32 34  0d 6f fe 44 20 45 51 55  |:EQUB 24.o.D EQU|
000158e0  42 20 32 39 3a 45 51 55  42 20 32 39 3a 45 51 55  |B 29:EQUB 29:EQU|
*
00015910  42 20 32 39 3a 45 51 55  42 20 32 39 0d 70 08 2e  |B 29:EQUB 29.p..|
00015920  20 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  | EQUB 7:EQUB 7:E|
00015930  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00015940  42 20 37 3a 45 51 55 42  20 35 0d 70 12 5c 20 45  |B 7:EQUB 5.p.\ E|
00015950  51 55 42 20 31 33 3a 45  51 55 42 20 31 33 3a 45  |QUB 13:EQUB 13:E|
*
00015970  51 55 42 20 38 3a 45 51  55 42 20 38 3a 45 51 55  |QUB 8:EQUB 8:EQU|
00015980  42 20 38 3a 45 51 55 42  20 38 3a 45 51 55 42 20  |B 8:EQUB 8:EQUB |
00015990  39 3a 45 51 55 42 20 39  3a 45 51 55 42 20 39 3a  |9:EQUB 9:EQUB 9:|
000159a0  45 51 55 42 20 39 0d 70  1c 43 20 45 51 55 42 20  |EQUB 9.p.C EQUB |
000159b0  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
000159c0  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
000159d0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
000159e0  20 33 3a 45 51 55 42 20  33 0d 70 26 3c 20 45 51  | 3:EQUB 3.p&< EQ|
000159f0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00015a00  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
00015a10  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00015a20  51 55 42 20 33 0d 70 30  64 20 45 51 55 42 20 34  |QUB 3.p0d EQUB 4|
00015a30  31 3a 45 51 55 42 20 34  31 3a 45 51 55 42 20 34  |1:EQUB 41:EQUB 4|
*
00015a50  30 3a 45 51 55 42 20 34  30 3a 45 51 55 42 20 34  |0:EQUB 40:EQUB 4|
*
00015a70  35 3a 45 51 55 42 20 34  35 3a 45 51 55 42 20 34  |5:EQUB 45:EQUB 4|
00015a80  35 3a 45 51 55 42 20 34  35 0d 70 3a 27 20 45 51  |5:EQUB 45.p:' EQ|
00015a90  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00015aa0  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00015ab0  0d 70 44 44 20 45 51 55  42 20 36 31 3a 45 51 55  |.pDD EQUB 61:EQU|
00015ac0  42 20 36 31 3a 45 51 55  42 20 36 31 3a 45 51 55  |B 61:EQUB 61:EQU|
*
00015af0  42 20 36 31 0d 70 4e 34  20 45 51 55 42 20 35 36  |B 61.pN4 EQUB 56|
00015b00  3a 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 36  |:EQUB 56:EQUB 56|
*
00015b20  3a 45 51 55 42 20 35 36  0d 70 58 44 20 45 51 55  |:EQUB 56.pXD EQU|
00015b30  42 20 35 37 3a 45 51 55  42 20 35 37 3a 45 51 55  |B 57:EQUB 57:EQU|
*
00015b60  42 20 35 37 3a 45 51 55  42 20 35 37 0d 70 62 34  |B 57:EQUB 57.pb4|
00015b70  20 45 51 55 42 20 35 38  3a 45 51 55 42 20 35 38  | EQUB 58:EQUB 58|
00015b80  3a 45 51 55 42 20 35 38  3a 45 51 55 42 20 35 38  |:EQUB 58:EQUB 58|
*
00015ba0  0d 70 6c 3c 20 45 51 55  42 20 35 38 3a 45 51 55  |.pl< EQUB 58:EQU|
00015bb0  42 20 35 38 3a 45 51 55  42 20 35 38 3a 45 51 55  |B 58:EQUB 58:EQU|
*
00015bd0  42 20 35 38 3a 45 51 55  42 20 35 38 0d 70 76 1a  |B 58:EQUB 58.pv.|
00015be0  20 45 51 55 42 20 33 32  3a 45 51 55 42 20 30 3a  | EQUB 32:EQUB 0:|
00015bf0  45 51 55 42 20 30 0d 70  80 04 0d 70 8a 05 20 0d  |EQUB 0.p...p.. .|
00015c00  70 94 1a 20 3b 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |p.. ; **********|
00015c10  20 20 20 57 41 56 45 20  38 0d 70 9e 0b 20 45 51  |   WAVE 8.p.. EQ|
00015c20  55 42 20 32 0d 70 a8 55  20 45 51 55 42 20 34 20  |UB 2.p.U EQUB 4 |
00015c30  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00015c40  31 30 20 3a 20 45 51 55  42 20 33 20 3a 20 45 51  |10 : EQUB 3 : EQ|
00015c50  55 42 20 33 20 3a 20 45  51 55 42 20 38 32 20 3a  |UB 3 : EQUB 82 :|
00015c60  20 45 51 55 42 20 37 20  3a 20 45 51 55 42 20 37  | EQUB 7 : EQUB 7|
00015c70  20 3a 45 51 55 42 20 34  30 0d 70 b2 0b 20 45 51  | :EQUB 40.p.. EQ|
00015c80  55 42 20 31 0d 70 bc 53  20 45 51 55 42 20 34 20  |UB 1.p.S EQUB 4 |
00015c90  3a 20 45 51 55 42 20 39  20 3a 20 45 51 55 42 20  |: EQUB 9 : EQUB |
00015ca0  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00015cb0  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
00015cc0  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 20 3a  |QUB 0 : EQUB 0 :|
00015cd0  20 45 51 55 42 20 30 0d  70 c6 34 20 45 51 55 44  | EQUB 0.p.4 EQUD|
00015ce0  20 26 31 46 44 44 35 30  37 20 3a 20 45 51 55 44  | &1FDD507 : EQUD|
*
00015d00  20 30 20 3a 20 45 51 55  44 20 30 0d 70 d0 0c 20  | 0 : EQUD 0.p.. |
00015d10  45 51 55 42 20 38 33 0d  70 da 0b 20 45 51 55 42  |EQUB 83.p.. EQUB|
00015d20  20 30 0d 70 e4 20 20 45  51 55 42 20 33 3a 45 51  | 0.p.  EQUB 3:EQ|
00015d30  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00015d40  20 33 0d 70 ee 3c 20 45  51 55 42 20 35 37 3a 45  | 3.p.< EQUB 57:E|
00015d50  51 55 42 20 35 37 3a 45  51 55 42 20 35 37 3a 45  |QUB 57:EQUB 57:E|
*
00015d70  51 55 42 20 35 37 3a 45  51 55 42 20 35 37 0d 70  |QUB 57:EQUB 57.p|
00015d80  f8 34 20 45 51 55 42 20  35 37 3a 45 51 55 42 20  |.4 EQUB 57:EQUB |
00015d90  35 37 3a 45 51 55 42 20  35 37 3a 45 51 55 42 20  |57:EQUB 57:EQUB |
*
00015db0  35 37 0d 71 02 35 20 45  51 55 42 20 33 3a 45 51  |57.q.5 EQUB 3:EQ|
00015dc0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00015dd0  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
00015de0  3a 45 51 55 42 20 33 0d  71 0c 3c 20 45 51 55 42  |:EQUB 3.q.< EQUB|
00015df0  20 32 35 3a 45 51 55 42  20 32 35 3a 45 51 55 42  | 25:EQUB 25:EQUB|
*
00015e20  20 32 35 0d 71 16 34 20  45 51 55 42 20 32 35 3a  | 25.q.4 EQUB 25:|
00015e30  45 51 55 42 20 32 35 3a  45 51 55 42 20 32 35 3a  |EQUB 25:EQUB 25:|
*
00015e50  45 51 55 42 20 32 35 0d  71 20 19 20 45 51 55 42  |EQUB 25.q . EQUB|
00015e60  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
00015e70  0d 71 2a 1c 20 45 51 55  42 20 32 34 3a 45 51 55  |.q*. EQUB 24:EQU|
00015e80  42 20 32 34 3a 45 51 55  42 20 31 36 0d 71 34 19  |B 24:EQUB 16.q4.|
00015e90  20 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  | EQUB 7:EQUB 7:E|
00015ea0  51 55 42 20 37 0d 71 3e  34 20 45 51 55 42 20 32  |QUB 7.q>4 EQUB 2|
00015eb0  39 3a 45 51 55 42 20 32  39 3a 45 51 55 42 20 32  |9:EQUB 29:EQUB 2|
*
00015ed0  39 3a 45 51 55 42 20 32  39 0d 71 48 34 20 45 51  |9:EQUB 29.qH4 EQ|
00015ee0  55 42 20 32 39 3a 45 51  55 42 20 32 39 3a 45 51  |UB 29:EQUB 29:EQ|
*
00015f00  55 42 20 32 39 3a 45 51  55 42 20 32 39 0d 71 52  |UB 29:EQUB 29.qR|
00015f10  35 20 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |5 EQUB 7:EQUB 7:|
00015f20  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00015f30  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00015f40  20 37 0d 71 5c 34 20 45  51 55 42 20 36 31 3a 45  | 7.q\4 EQUB 61:E|
00015f50  51 55 42 20 36 31 3a 45  51 55 42 20 36 31 3a 45  |QUB 61:EQUB 61:E|
*
00015f70  51 55 42 20 36 31 0d 71  66 34 20 45 51 55 42 20  |QUB 61.qf4 EQUB |
00015f80  36 31 3a 45 51 55 42 20  36 31 3a 45 51 55 42 20  |61:EQUB 61:EQUB |
*
00015fa0  36 31 3a 45 51 55 42 20  36 31 0d 71 70 20 20 45  |61:EQUB 61.qp  E|
00015fb0  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00015fc0  42 20 37 3a 45 51 55 42  20 37 0d 71 7a 0c 20 45  |B 7:EQUB 7.qz. E|
00015fd0  51 55 42 20 33 32 0d 71  84 04 0d 71 8e 04 0d 71  |QUB 32.q...q...q|
00015fe0  98 1a 20 3b 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 20  |.. ; ********** |
00015ff0  20 20 57 41 56 45 20 39  0d 71 a2 0b 20 45 51 55  |  WAVE 9.q.. EQU|
00016000  42 20 32 0d 71 ac 56 20  45 51 55 42 20 34 20 3a  |B 2.q.V EQUB 4 :|
00016010  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 31  | EQUB 0 : EQUB 1|
00016020  30 20 3a 20 45 51 55 42  20 33 20 3a 20 45 51 55  |0 : EQUB 3 : EQU|
00016030  42 20 33 20 3a 20 45 51  55 42 20 36 36 20 3a 20  |B 3 : EQUB 66 : |
00016040  45 51 55 42 20 33 20 3a  20 45 51 55 42 20 33 20  |EQUB 3 : EQUB 3 |
00016050  3a 20 45 51 55 42 20 34  30 0d 71 b6 0b 20 45 51  |: EQUB 40.q.. EQ|
00016060  55 42 20 31 0d 71 c0 53  20 45 51 55 42 20 37 20  |UB 1.q.S EQUB 7 |
00016070  3a 20 45 51 55 42 20 39  20 3a 20 45 51 55 42 20  |: EQUB 9 : EQUB |
00016080  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00016090  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
000160a0  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 20 3a  |QUB 0 : EQUB 0 :|
000160b0  20 45 51 55 42 20 30 0d  71 ca 35 20 45 51 55 44  | EQUB 0.q.5 EQUD|
000160c0  20 26 31 46 45 31 34 43  38 20 3a 20 45 51 55 44  | &1FE14C8 : EQUD|
000160d0  20 26 31 46 45 31 35 34  43 20 3a 20 45 51 55 44  | &1FE154C : EQUD|
000160e0  20 30 20 3a 20 45 51 55  44 20 33 39 0d 71 d4 0c  | 0 : EQUD 39.q..|
000160f0  20 45 51 55 42 20 36 37  0d 71 de 0b 20 45 51 55  | EQUB 67.q.. EQU|
00016100  42 20 30 0d 71 e8 4c 20  45 51 55 42 20 35 39 3a  |B 0.q.L EQUB 59:|
00016110  45 51 55 42 20 35 39 3a  45 51 55 42 20 35 39 3a  |EQUB 59:EQUB 59:|
*
00016140  45 51 55 42 20 35 39 3a  45 51 55 42 20 35 39 0d  |EQUB 59:EQUB 59.|
00016150  71 f2 4c 20 45 51 55 42  20 35 39 3a 45 51 55 42  |q.L EQUB 59:EQUB|
00016160  20 35 39 3a 45 51 55 42  20 35 39 3a 45 51 55 42  | 59:EQUB 59:EQUB|
*
00016190  20 35 39 3a 45 51 55 42  20 35 39 0d 71 fc 4c 20  | 59:EQUB 59.q.L |
000161a0  45 51 55 42 20 36 33 3a  45 51 55 42 20 36 33 3a  |EQUB 63:EQUB 63:|
*
000161e0  45 51 55 42 20 36 33 0d  72 06 4c 20 45 51 55 42  |EQUB 63.r.L EQUB|
000161f0  20 36 33 3a 45 51 55 42  20 36 33 3a 45 51 55 42  | 63:EQUB 63:EQUB|
*
00016230  20 36 33 0d 72 10 0c 20  45 51 55 42 20 33 32 0d  | 63.r.. EQUB 32.|
00016240  72 1a 0b 20 45 51 55 42  20 30 0d 72 24 4c 20 45  |r.. EQUB 0.r$L E|
00016250  51 55 42 20 36 33 3a 45  51 55 42 20 36 33 3a 45  |QUB 63:EQUB 63:E|
*
00016290  51 55 42 20 36 33 0d 72  2e 4c 20 45 51 55 42 20  |QUB 63.r.L EQUB |
000162a0  36 33 3a 45 51 55 42 20  36 33 3a 45 51 55 42 20  |63:EQUB 63:EQUB |
*
000162e0  36 33 0d 72 38 4c 20 45  51 55 42 20 35 39 3a 45  |63.r8L EQUB 59:E|
000162f0  51 55 42 20 35 39 3a 45  51 55 42 20 35 39 3a 45  |QUB 59:EQUB 59:E|
*
00016320  51 55 42 20 35 39 3a 45  51 55 42 20 35 39 0d 72  |QUB 59:EQUB 59.r|
00016330  42 0c 20 45 51 55 42 20  33 32 0d 72 4c 04 0d 72  |B. EQUB 32.rL..r|
00016340  56 04 0d 72 60 1b 20 3b  20 2a 2a 2a 2a 2a 2a 2a  |V..r`. ; *******|
00016350  2a 2a 2a 20 20 20 57 41  56 45 20 31 30 0d 72 6a  |***   WAVE 10.rj|
00016360  0b 20 45 51 55 42 20 33  0d 72 74 56 20 45 51 55  |. EQUB 3.rtV EQU|
00016370  42 20 34 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 4 : EQUB 0 : E|
00016380  51 55 42 20 31 30 20 3a  20 45 51 55 42 20 33 20  |QUB 10 : EQUB 3 |
00016390  3a 20 45 51 55 42 20 33  20 3a 20 45 51 55 42 20  |: EQUB 3 : EQUB |
000163a0  39 31 20 3a 20 45 51 55  42 20 38 20 3a 20 45 51  |91 : EQUB 8 : EQ|
000163b0  55 42 20 38 20 3a 20 45  51 55 42 20 35 30 0d 72  |UB 8 : EQUB 50.r|
000163c0  7e 0b 20 45 51 55 42 20  31 0d 72 88 53 20 45 51  |~. EQUB 1.r.S EQ|
000163d0  55 42 20 35 20 3a 20 45  51 55 42 20 36 20 3a 20  |UB 5 : EQUB 6 : |
000163e0  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
000163f0  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00016400  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00016410  42 20 30 20 3a 20 45 51  55 42 20 30 0d 72 92 35  |B 0 : EQUB 0.r.5|
00016420  20 45 51 55 44 20 26 31  46 44 38 30 34 36 20 3a  | EQUD &1FD8046 :|
*
00016440  20 45 51 55 44 20 30 20  3a 20 45 51 55 44 20 34  | EQUD 0 : EQUD 4|
00016450  37 0d 72 9c 0c 20 45 51  55 42 20 39 35 0d 72 a6  |7.r.. EQUB 95.r.|
00016460  0b 20 45 51 55 42 20 30  0d 72 b0 4c 20 45 51 55  |. EQUB 0.r.L EQU|
00016470  42 20 32 34 3a 45 51 55  42 20 32 34 3a 45 51 55  |B 24:EQUB 24:EQU|
*
000164b0  42 20 32 34 0d 72 ba 34  20 45 51 55 42 20 33 30  |B 24.r.4 EQUB 30|
000164c0  3a 45 51 55 42 20 33 30  3a 45 51 55 42 20 32 39  |:EQUB 30:EQUB 29|
000164d0  3a 45 51 55 42 20 32 36  3a 45 51 55 42 20 32 36  |:EQUB 26:EQUB 26|
000164e0  3a 45 51 55 42 20 32 36  0d 72 c4 3c 20 45 51 55  |:EQUB 26.r.< EQU|
000164f0  42 20 33 30 3a 45 51 55  42 20 33 31 3a 45 51 55  |B 30:EQUB 31:EQU|
00016500  42 20 33 31 3a 45 51 55  42 20 33 30 3a 45 51 55  |B 31:EQUB 30:EQU|
00016510  42 20 33 30 3a 45 51 55  42 20 32 37 3a 45 51 55  |B 30:EQUB 27:EQU|
00016520  42 20 32 37 0d 72 ce 0b  20 45 51 55 42 20 37 0d  |B 27.r.. EQUB 7.|
00016530  72 d8 44 20 45 51 55 42  20 33 31 3a 45 51 55 42  |r.D EQUB 31:EQUB|
00016540  20 33 31 3a 45 51 55 42  20 33 31 3a 45 51 55 42  | 31:EQUB 31:EQUB|
00016550  20 33 30 3a 45 51 55 42  20 33 30 3a 45 51 55 42  | 30:EQUB 30:EQUB|
00016560  20 32 37 3a 45 51 55 42  20 32 37 3a 45 51 55 42  | 27:EQUB 27:EQUB|
00016570  20 32 37 0d 72 e2 0b 20  45 51 55 42 20 37 0d 72  | 27.r.. EQUB 7.r|
00016580  ec 4c 20 45 51 55 42 20  33 31 3a 45 51 55 42 20  |.L EQUB 31:EQUB |
00016590  33 31 3a 45 51 55 42 20  33 31 3a 45 51 55 42 20  |31:EQUB 31:EQUB |
000165a0  33 31 3a 45 51 55 42 20  33 30 3a 45 51 55 42 20  |31:EQUB 30:EQUB |
000165b0  33 30 3a 45 51 55 42 20  32 37 3a 45 51 55 42 20  |30:EQUB 27:EQUB |
000165c0  32 37 3a 45 51 55 42 20  32 37 0d 72 f6 0b 20 45  |27:EQUB 27.r.. E|
000165d0  51 55 42 20 37 0d 73 00  14 20 45 51 55 42 20 33  |QUB 7.s.. EQUB 3|
000165e0  31 3a 45 51 55 42 20 33  31 0d 73 0a 0c 20 45 51  |1:EQUB 31.s.. EQ|
000165f0  55 42 20 33 32 0d 73 14  4c 20 45 51 55 42 20 32  |UB 32.s.L EQUB 2|
00016600  34 3a 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |4:EQUB 24:EQUB 2|
*
00016640  34 0d 73 1e 34 20 45 51  55 42 20 32 36 3a 45 51  |4.s.4 EQUB 26:EQ|
00016650  55 42 20 32 36 3a 45 51  55 42 20 32 35 3a 45 51  |UB 26:EQUB 25:EQ|
00016660  55 42 20 33 30 3a 45 51  55 42 20 33 30 3a 45 51  |UB 30:EQUB 30:EQ|
00016670  55 42 20 33 30 0d 73 28  0b 20 45 51 55 42 20 33  |UB 30.s(. EQUB 3|
00016680  0d 73 32 3c 20 45 51 55  42 20 32 36 3a 45 51 55  |.s2< EQUB 26:EQU|
00016690  42 20 32 37 3a 45 51 55  42 20 32 37 3a 45 51 55  |B 27:EQUB 27:EQU|
000166a0  42 20 32 36 3a 45 51 55  42 20 32 36 3a 45 51 55  |B 26:EQUB 26:EQU|
000166b0  42 20 33 30 3a 45 51 55  42 20 33 30 0d 73 3c 0b  |B 30:EQUB 30.s<.|
000166c0  20 45 51 55 42 20 33 0d  73 46 44 20 45 51 55 42  | EQUB 3.sFD EQUB|
000166d0  20 32 37 3a 45 51 55 42  20 32 37 3a 45 51 55 42  | 27:EQUB 27:EQUB|
000166e0  20 32 37 3a 45 51 55 42  20 32 36 3a 45 51 55 42  | 27:EQUB 26:EQUB|
000166f0  20 32 36 3a 45 51 55 42  20 33 31 3a 45 51 55 42  | 26:EQUB 31:EQUB|
00016700  20 33 31 3a 45 51 55 42  20 33 31 0d 73 50 0b 20  | 31:EQUB 31.sP. |
00016710  45 51 55 42 20 33 0d 73  5a 4c 20 45 51 55 42 20  |EQUB 3.sZL EQUB |
00016720  32 37 3a 45 51 55 42 20  32 37 3a 45 51 55 42 20  |27:EQUB 27:EQUB |
*
00016740  32 36 3a 45 51 55 42 20  32 36 3a 45 51 55 42 20  |26:EQUB 26:EQUB |
00016750  33 31 3a 45 51 55 42 20  33 31 3a 45 51 55 42 20  |31:EQUB 31:EQUB |
00016760  33 31 0d 73 64 0b 20 45  51 55 42 20 33 0d 73 6e  |31.sd. EQUB 3.sn|
00016770  14 20 45 51 55 42 20 32  37 3a 45 51 55 42 20 32  |. EQUB 27:EQUB 2|
00016780  37 0d 73 78 21 20 45 51  55 42 20 33 32 3a 45 51  |7.sx! EQUB 32:EQ|
00016790  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
000167a0  20 30 0d 73 82 04 0d 73  8c 04 0d 73 96 1b 20 3b  | 0.s...s...s.. ;|
000167b0  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 20 20 20 57 41  | **********   WA|
000167c0  56 45 20 31 31 0d 73 a0  0b 20 45 51 55 42 20 33  |VE 11.s.. EQUB 3|
000167d0  0d 73 aa 56 20 45 51 55  42 20 34 20 3a 20 45 51  |.s.V EQUB 4 : EQ|
000167e0  55 42 20 38 20 3a 20 45  51 55 42 20 31 30 20 3a  |UB 8 : EQUB 10 :|
000167f0  20 45 51 55 42 20 33 20  3a 20 45 51 55 42 20 33  | EQUB 3 : EQUB 3|
00016800  20 3a 20 45 51 55 42 20  31 32 32 20 3a 20 45 51  | : EQUB 122 : EQ|
00016810  55 42 20 37 20 3a 20 45  51 55 42 20 37 20 3a 45  |UB 7 : EQUB 7 :E|
00016820  51 55 42 20 35 30 0d 73  b4 0b 20 45 51 55 42 20  |QUB 50.s.. EQUB |
00016830  31 0d 73 be 53 20 45 51  55 42 20 38 20 3a 20 45  |1.s.S EQUB 8 : E|
00016840  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 20 3a  |QUB 0 : EQUB 0 :|
00016850  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 30  | EQUB 0 : EQUB 0|
00016860  20 3a 20 45 51 55 42 20  30 20 3a 20 45 51 55 42  | : EQUB 0 : EQUB|
00016870  20 30 20 3a 20 45 51 55  42 20 30 20 3a 20 45 51  | 0 : EQUB 0 : EQ|
00016880  55 42 20 30 0d 73 c8 34  20 45 51 55 44 20 26 31  |UB 0.s.4 EQUD &1|
00016890  46 45 31 34 32 38 20 3a  20 45 51 55 44 20 26 31  |FE1428 : EQUD &1|
000168a0  46 45 31 34 32 38 20 3a  20 45 51 55 44 20 30 20  |FE1428 : EQUD 0 |
000168b0  3a 20 45 51 55 44 20 30  0d 73 d2 0d 20 45 51 55  |: EQUD 0.s.. EQU|
000168c0  42 20 31 32 33 0d 73 dc  0b 20 45 51 55 42 20 30  |B 123.s.. EQUB 0|
000168d0  0d 73 e6 44 20 45 51 55  42 20 35 37 3a 45 51 55  |.s.D EQUB 57:EQU|
000168e0  42 20 35 37 3a 45 51 55  42 20 35 37 3a 45 51 55  |B 57:EQUB 57:EQU|
*
00016910  42 20 35 37 0d 73 f0 44  20 45 51 55 42 20 35 36  |B 57.s.D EQUB 56|
00016920  3a 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 36  |:EQUB 56:EQUB 56|
*
00016950  3a 45 51 55 42 20 35 36  0d 73 fa 3c 20 45 51 55  |:EQUB 56.s.< EQU|
00016960  42 20 36 31 3a 45 51 55  42 20 36 31 3a 45 51 55  |B 61:EQUB 61:EQU|
*
00016990  42 20 36 31 0d 74 04 2c  20 45 51 55 42 20 35 36  |B 61.t., EQUB 56|
000169a0  3a 45 51 55 42 20 35 36  3a 45 51 55 42 20 35 39  |:EQUB 56:EQUB 59|
000169b0  3a 45 51 55 42 20 35 39  3a 45 51 55 42 20 35 38  |:EQUB 59:EQUB 58|
000169c0  0d 74 0e 29 20 45 51 55  42 20 33 3a 45 51 55 42  |.t.) EQUB 3:EQUB|
000169d0  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 32  | 3:EQUB 3:EQUB 2|
000169e0  37 3a 45 51 55 42 20 32  37 0d 74 18 1c 20 45 51  |7:EQUB 27.t.. EQ|
000169f0  55 42 20 32 34 3a 45 51  55 42 20 32 34 3a 45 51  |UB 24:EQUB 24:EQ|
00016a00  55 42 20 32 34 0d 74 22  3c 20 45 51 55 42 20 32  |UB 24.t"< EQUB 2|
00016a10  39 3a 45 51 55 42 20 32  39 3a 45 51 55 42 20 32  |9:EQUB 29:EQUB 2|
*
00016a40  39 0d 74 2c 44 20 45 51  55 42 20 32 34 3a 45 51  |9.t,D EQUB 24:EQ|
00016a50  55 42 20 32 34 3a 45 51  55 42 20 32 34 3a 45 51  |UB 24:EQUB 24:EQ|
*
00016a80  55 42 20 32 34 0d 74 36  34 20 45 51 55 42 20 32  |UB 24.t64 EQUB 2|
00016a90  35 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |5:EQUB 25:EQUB 2|
*
00016ab0  35 3a 45 51 55 42 20 32  35 0d 74 40 35 20 45 51  |5:EQUB 25.t@5 EQ|
00016ac0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00016ad0  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
00016ae0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 0d 74  |:EQUB 3:EQUB 3.t|
00016af0  4a 34 20 45 51 55 42 20  35 37 3a 45 51 55 42 20  |J4 EQUB 57:EQUB |
00016b00  35 37 3a 45 51 55 42 20  35 37 3a 45 51 55 42 20  |57:EQUB 57:EQUB |
*
00016b20  35 37 0d 74 54 44 20 45  51 55 42 20 35 36 3a 45  |57.tTD EQUB 56:E|
00016b30  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 3a 45  |QUB 56:EQUB 56:E|
*
00016b60  51 55 42 20 35 36 0d 74  5e 3c 20 45 51 55 42 20  |QUB 56.t^< EQUB |
00016b70  36 31 3a 45 51 55 42 20  36 31 3a 45 51 55 42 20  |61:EQUB 61:EQUB |
*
00016ba0  36 31 0d 74 68 1c 20 45  51 55 42 20 35 36 3a 45  |61.th. EQUB 56:E|
00016bb0  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 0d 74  |QUB 56:EQUB 56.t|
00016bc0  72 29 20 45 51 55 42 20  35 39 3a 45 51 55 42 20  |r) EQUB 59:EQUB |
00016bd0  35 39 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  |59:EQUB 3:EQUB 3|
00016be0  3a 45 51 55 42 20 33 0d  74 7c 2c 20 45 51 55 42  |:EQUB 3.t|, EQUB|
00016bf0  20 32 36 3a 45 51 55 42  20 32 37 3a 45 51 55 42  | 26:EQUB 27:EQUB|
00016c00  20 32 37 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 27:EQUB 24:EQUB|
00016c10  20 32 34 0d 74 86 3c 20  45 51 55 42 20 32 39 3a  | 24.t.< EQUB 29:|
00016c20  45 51 55 42 20 32 39 3a  45 51 55 42 20 32 39 3a  |EQUB 29:EQUB 29:|
*
00016c40  45 51 55 42 20 32 39 3a  45 51 55 42 20 32 39 0d  |EQUB 29:EQUB 29.|
00016c50  74 90 44 20 45 51 55 42  20 32 34 3a 45 51 55 42  |t.D EQUB 24:EQUB|
00016c60  20 32 34 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 24:EQUB 24:EQUB|
*
00016c90  20 32 34 0d 74 9a 44 20  45 51 55 42 20 32 35 3a  | 24.t.D EQUB 25:|
00016ca0  45 51 55 42 20 32 35 3a  45 51 55 42 20 32 35 3a  |EQUB 25:EQUB 25:|
*
00016cd0  45 51 55 42 20 32 35 0d  74 a4 0c 20 45 51 55 42  |EQUB 25.t.. EQUB|
00016ce0  20 33 32 0d 74 ae 04 0d  74 b8 04 0d 74 c2 1b 20  | 32.t...t...t.. |
00016cf0  3b 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 20 20 20 57  |; **********   W|
00016d00  41 56 45 20 31 32 0d 74  cc 0b 20 45 51 55 42 20  |AVE 12.t.. EQUB |
00016d10  33 0d 74 d6 56 20 45 51  55 42 20 34 20 3a 20 45  |3.t.V EQUB 4 : E|
00016d20  51 55 42 20 38 20 3a 20  45 51 55 42 20 31 30 20  |QUB 8 : EQUB 10 |
00016d30  3a 20 45 51 55 42 20 33  20 3a 20 45 51 55 42 20  |: EQUB 3 : EQUB |
00016d40  33 20 3a 20 45 51 55 42  20 39 37 20 3a 20 45 51  |3 : EQUB 97 : EQ|
00016d50  55 42 20 36 20 3a 20 45  51 55 42 20 36 20 3a 20  |UB 6 : EQUB 6 : |
00016d60  45 51 55 42 20 35 30 0d  74 e0 0b 20 45 51 55 42  |EQUB 50.t.. EQUB|
00016d70  20 32 0d 74 ea 53 20 45  51 55 42 20 34 20 3a 20  | 2.t.S EQUB 4 : |
00016d80  45 51 55 42 20 35 20 3a  20 45 51 55 42 20 36 20  |EQUB 5 : EQUB 6 |
00016d90  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00016da0  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00016db0  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
00016dc0  51 55 42 20 30 0d 74 f4  35 20 45 51 55 44 20 26  |QUB 0.t.5 EQUD &|
00016dd0  31 46 44 46 30 38 38 20  3a 20 45 51 55 44 20 26  |1FDF088 : EQUD &|
00016de0  31 46 44 46 31 30 42 20  3a 20 45 51 55 44 20 30  |1FDF10B : EQUD 0|
00016df0  20 3a 20 45 51 55 44 20  35 30 0d 74 fe 0c 20 45  | : EQUD 50.t.. E|
00016e00  51 55 42 20 39 39 0d 75  08 0b 20 45 51 55 42 20  |QUB 99.u.. EQUB |
00016e10  30 0d 75 12 35 20 45 51  55 42 20 31 3a 45 51 55  |0.u.5 EQUB 1:EQU|
00016e20  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00016e30  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00016e40  45 51 55 42 20 33 0d 75  1c 4c 20 45 51 55 42 20  |EQUB 3.u.L EQUB |
00016e50  34 33 3a 45 51 55 42 20  34 33 3a 45 51 55 42 20  |43:EQUB 43:EQUB |
00016e60  35 31 3a 45 51 55 42 20  35 31 3a 45 51 55 42 20  |51:EQUB 51:EQUB |
00016e70  35 36 3a 45 51 55 42 20  35 34 3a 45 51 55 42 20  |56:EQUB 54:EQUB |
00016e80  35 34 3a 45 51 55 42 20  35 33 3a 45 51 55 42 20  |54:EQUB 53:EQUB |
00016e90  35 33 0d 75 26 20 20 45  51 55 42 20 37 3a 45 51  |53.u&  EQUB 7:EQ|
00016ea0  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00016eb0  20 37 0d 75 30 34 20 45  51 55 42 20 35 31 3a 45  | 7.u04 EQUB 51:E|
00016ec0  51 55 42 20 35 31 3a 45  51 55 42 20 35 31 3a 45  |QUB 51:EQUB 51:E|
00016ed0  51 55 42 20 34 33 3a 45  51 55 42 20 34 33 3a 45  |QUB 43:EQUB 43:E|
00016ee0  51 55 42 20 34 33 0d 75  3a 1c 20 45 51 55 42 20  |QUB 43.u:. EQUB |
00016ef0  35 36 3a 45 51 55 42 20  35 36 3a 45 51 55 42 20  |56:EQUB 56:EQUB |
00016f00  35 36 0d 75 44 34 20 45  51 55 42 20 34 37 3a 45  |56.uD4 EQUB 47:E|
00016f10  51 55 42 20 34 37 3a 45  51 55 42 20 34 37 3a 45  |QUB 47:EQUB 47:E|
00016f20  51 55 42 20 35 35 3a 45  51 55 42 20 35 35 3a 45  |QUB 55:EQUB 55:E|
00016f30  51 55 42 20 35 35 0d 75  4e 34 20 45 51 55 42 20  |QUB 55.uN4 EQUB |
00016f40  35 39 3a 45 51 55 42 20  35 39 3a 45 51 55 42 20  |59:EQUB 59:EQUB |
*
00016f60  35 39 3a 45 51 55 42 20  35 39 0d 75 58 34 20 45  |59:EQUB 59.uX4 E|
00016f70  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 3a 45  |QUB 56:EQUB 56:E|
*
00016f90  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 0d 75  |QUB 56:EQUB 56.u|
00016fa0  62 0c 20 45 51 55 42 20  33 32 0d 75 6c 35 20 45  |b. EQUB 32.ul5 E|
00016fb0  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00016fc0  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
00016fd0  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 0d  |7:EQUB 7:EQUB 7.|
00016fe0  75 76 4c 20 45 51 55 42  20 34 37 3a 45 51 55 42  |uvL EQUB 47:EQUB|
00016ff0  20 34 37 3a 45 51 55 42  20 35 35 3a 45 51 55 42  | 47:EQUB 55:EQUB|
00017000  20 35 35 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 55:EQUB 56:EQUB|
00017010  20 35 30 3a 45 51 55 42  20 35 30 3a 45 51 55 42  | 50:EQUB 50:EQUB|
00017020  20 34 39 3a 45 51 55 42  20 34 39 0d 75 80 20 20  | 49:EQUB 49.u.  |
00017030  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00017040  55 42 20 33 3a 45 51 55  42 20 33 0d 75 8a 34 20  |UB 3:EQUB 3.u.4 |
00017050  45 51 55 42 20 35 35 3a  45 51 55 42 20 35 35 3a  |EQUB 55:EQUB 55:|
00017060  45 51 55 42 20 35 35 3a  45 51 55 42 20 34 37 3a  |EQUB 55:EQUB 47:|
00017070  45 51 55 42 20 34 37 3a  45 51 55 42 20 34 37 0d  |EQUB 47:EQUB 47.|
00017080  75 94 1c 20 45 51 55 42  20 35 36 3a 45 51 55 42  |u.. EQUB 56:EQUB|
00017090  20 35 36 3a 45 51 55 42  20 35 36 0d 75 9e 34 20  | 56:EQUB 56.u.4 |
000170a0  45 51 55 42 20 34 33 3a  45 51 55 42 20 34 33 3a  |EQUB 43:EQUB 43:|
000170b0  45 51 55 42 20 34 33 3a  45 51 55 42 20 35 31 3a  |EQUB 43:EQUB 51:|
000170c0  45 51 55 42 20 35 31 3a  45 51 55 42 20 35 31 0d  |EQUB 51:EQUB 51.|
000170d0  75 a8 3c 20 45 51 55 42  20 36 33 3a 45 51 55 42  |u.< EQUB 63:EQUB|
000170e0  20 36 33 3a 45 51 55 42  20 36 33 3a 45 51 55 42  | 63:EQUB 63:EQUB|
*
00017100  20 36 33 3a 45 51 55 42  20 36 33 0d 75 b2 34 20  | 63:EQUB 63.u.4 |
00017110  45 51 55 42 20 36 31 3a  45 51 55 42 20 35 36 3a  |EQUB 61:EQUB 56:|
00017120  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 3a  |EQUB 56:EQUB 56:|
00017130  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 0d  |EQUB 56:EQUB 56.|
00017140  75 bc 13 20 45 51 55 42  20 33 32 3a 45 51 55 42  |u.. EQUB 32:EQUB|
00017150  20 30 0d 75 c6 04 0d 75  d0 04 0d 75 da 1b 20 3b  | 0.u...u...u.. ;|
00017160  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 20 20 20 57 41  | **********   WA|
00017170  56 45 20 31 33 0d 75 e4  0b 20 45 51 55 42 20 33  |VE 13.u.. EQUB 3|
00017180  0d 75 ee 56 20 45 51 55  42 20 34 20 3a 20 45 51  |.u.V EQUB 4 : EQ|
00017190  55 42 20 38 20 3a 20 45  51 55 42 20 31 30 20 3a  |UB 8 : EQUB 10 :|
000171a0  20 45 51 55 42 20 33 20  3a 20 45 51 55 42 20 33  | EQUB 3 : EQUB 3|
000171b0  20 3a 20 45 51 55 42 20  36 33 20 3a 20 45 51 55  | : EQUB 63 : EQU|
000171c0  42 20 38 20 3a 20 45 51  55 42 20 38 20 3a 20 45  |B 8 : EQUB 8 : E|
000171d0  51 55 42 20 35 30 0d 75  f8 0b 20 45 51 55 42 20  |QUB 50.u.. EQUB |
000171e0  32 0d 76 02 53 20 45 51  55 42 20 36 20 3a 20 45  |2.v.S EQUB 6 : E|
000171f0  51 55 42 20 37 20 3a 20  45 51 55 42 20 38 20 3a  |QUB 7 : EQUB 8 :|
00017200  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 30  | EQUB 0 : EQUB 0|
00017210  20 3a 20 45 51 55 42 20  30 20 3a 20 45 51 55 42  | : EQUB 0 : EQUB|
00017220  20 30 20 3a 20 45 51 55  42 20 30 20 3a 20 45 51  | 0 : EQUB 0 : EQ|
00017230  55 42 20 30 0d 76 0c 34  20 45 51 55 44 20 26 31  |UB 0.v.4 EQUD &1|
00017240  46 45 30 44 34 38 20 3a  20 45 51 55 44 20 26 31  |FE0D48 : EQUD &1|
00017250  46 45 30 44 34 38 20 3a  20 45 51 55 44 20 30 20  |FE0D48 : EQUD 0 |
00017260  3a 20 45 51 55 44 20 30  0d 76 16 0c 20 45 51 55  |: EQUD 0.v.. EQU|
00017270  42 20 36 37 0d 76 20 0b  20 45 51 55 42 20 30 0d  |B 67.v . EQUB 0.|
00017280  76 2a 43 20 45 51 55 42  20 33 3a 45 51 55 42 20  |v*C EQUB 3:EQUB |
00017290  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
000172a0  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
000172b0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
000172c0  20 33 0d 76 34 24 20 45  51 55 42 20 34 33 3a 45  | 3.v4$ EQUB 43:E|
000172d0  51 55 42 20 34 33 3a 45  51 55 42 20 34 33 3a 45  |QUB 43:EQUB 43:E|
000172e0  51 55 42 20 34 33 0d 76  3e 24 20 45 51 55 42 20  |QUB 43.v>$ EQUB |
000172f0  35 30 3a 45 51 55 42 20  35 30 3a 45 51 55 42 20  |50:EQUB 50:EQUB |
00017300  35 30 3a 45 51 55 42 20  35 30 0d 76 48 24 20 45  |50:EQUB 50.vH$ E|
00017310  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 3a 45  |QUB 56:EQUB 56:E|
00017320  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 0d 76  |QUB 56:EQUB 56.v|
00017330  52 24 20 45 51 55 42 20  35 34 3a 45 51 55 42 20  |R$ EQUB 54:EQUB |
00017340  35 34 3a 45 51 55 42 20  35 34 3a 45 51 55 42 20  |54:EQUB 54:EQUB |
00017350  35 34 0d 76 5c 24 20 45  51 55 42 20 34 37 3a 45  |54.v\$ EQUB 47:E|
00017360  51 55 42 20 34 37 3a 45  51 55 42 20 34 37 3a 45  |QUB 47:EQUB 47:E|
00017370  51 55 42 20 34 37 0d 76  66 24 20 45 51 55 42 20  |QUB 47.vf$ EQUB |
00017380  34 36 3a 45 51 55 42 20  34 36 3a 45 51 55 42 20  |46:EQUB 46:EQUB |
00017390  34 36 3a 45 51 55 42 20  34 36 0d 76 70 24 20 45  |46:EQUB 46.vp$ E|
000173a0  51 55 42 20 35 33 3a 45  51 55 42 20 35 33 3a 45  |QUB 53:EQUB 53:E|
000173b0  51 55 42 20 35 33 3a 45  51 55 42 20 35 33 0d 76  |QUB 53:EQUB 53.v|
000173c0  7a 24 20 45 51 55 42 20  35 36 3a 45 51 55 42 20  |z$ EQUB 56:EQUB |
000173d0  35 36 3a 45 51 55 42 20  35 36 3a 45 51 55 42 20  |56:EQUB 56:EQUB |
000173e0  35 36 0d 76 84 24 20 45  51 55 42 20 34 39 3a 45  |56.v.$ EQUB 49:E|
000173f0  51 55 42 20 34 39 3a 45  51 55 42 20 34 39 3a 45  |QUB 49:EQUB 49:E|
00017400  51 55 42 20 34 39 0d 76  8e 24 20 45 51 55 42 20  |QUB 49.v.$ EQUB |
00017410  34 32 3a 45 51 55 42 20  34 32 3a 45 51 55 42 20  |42:EQUB 42:EQUB |
00017420  34 32 3a 45 51 55 42 20  34 32 0d 76 98 43 20 45  |42:EQUB 42.v.C E|
00017430  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00017440  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00017450  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00017460  45 51 55 42 20 33 3a 45  51 55 42 20 33 0d 76 a2  |EQUB 3:EQUB 3.v.|
00017470  20 20 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |  EQUB 3:EQUB 3:|
00017480  45 51 55 42 20 33 3a 45  51 55 42 20 33 0d 76 ac  |EQUB 3:EQUB 3.v.|
00017490  21 20 45 51 55 42 20 33  32 3a 45 51 55 42 20 30  |! EQUB 32:EQUB 0|
000174a0  3a 45 51 55 42 20 30 3a  45 51 55 42 20 30 0d 76  |:EQUB 0:EQUB 0.v|
000174b0  b6 04 0d 76 c0 04 0d 76  ca 1b 20 3b 20 2a 2a 2a  |...v...v.. ; ***|
000174c0  2a 2a 2a 2a 2a 2a 2a 20  20 20 57 41 56 45 20 31  |*******   WAVE 1|
000174d0  34 0d 76 d4 0b 20 45 51  55 42 20 33 0d 76 de 57  |4.v.. EQUB 3.v.W|
000174e0  20 45 51 55 42 20 34 20  3a 20 45 51 55 42 20 38  | EQUB 4 : EQUB 8|
000174f0  20 3a 20 45 51 55 42 20  31 30 20 3a 20 45 51 55  | : EQUB 10 : EQU|
00017500  42 20 33 20 3a 20 45 51  55 42 20 33 20 3a 20 45  |B 3 : EQUB 3 : E|
00017510  51 55 42 20 31 36 36 20  3a 20 45 51 55 42 20 35  |QUB 166 : EQUB 5|
00017520  20 3a 20 45 51 55 42 20  31 20 3a 20 45 51 55 42  | : EQUB 1 : EQUB|
00017530  20 35 30 0d 76 e8 0b 20  45 51 55 42 20 33 0d 76  | 50.v.. EQUB 3.v|
00017540  f2 53 20 45 51 55 42 20  30 20 3a 20 45 51 55 42  |.S EQUB 0 : EQUB|
00017550  20 31 20 3a 20 45 51 55  42 20 39 20 3a 20 45 51  | 1 : EQUB 9 : EQ|
00017560  55 42 20 37 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 7 : EQUB 0 : |
00017570  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
00017580  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00017590  30 0d 76 fc 35 20 45 51  55 44 20 26 31 46 44 38  |0.v.5 EQUD &1FD8|
000175a0  30 34 35 20 3a 20 45 51  55 44 20 26 31 46 44 38  |045 : EQUD &1FD8|
000175b0  30 34 35 20 3a 20 45 51  55 44 20 30 20 3a 20 45  |045 : EQUD 0 : E|
000175c0  51 55 44 20 38 36 0d 77  06 0d 20 45 51 55 42 20  |QUD 86.w.. EQUB |
000175d0  31 36 37 0d 77 10 0b 20  45 51 55 42 20 30 0d 77  |167.w.. EQUB 0.w|
000175e0  1a 34 20 45 51 55 42 20  32 34 3a 45 51 55 42 20  |.4 EQUB 24:EQUB |
000175f0  32 34 3a 45 51 55 42 20  32 34 3a 45 51 55 42 20  |24:EQUB 24:EQUB |
*
00017610  32 34 0d 77 24 31 20 45  51 55 42 20 31 38 3a 45  |24.w$1 EQUB 18:E|
00017620  51 55 42 20 31 37 3a 45  51 55 42 20 31 38 3a 45  |QUB 17:EQUB 18:E|
00017630  51 55 42 20 35 3a 45 51  55 42 20 35 3a 45 51 55  |QUB 5:EQUB 5:EQU|
00017640  42 20 35 0d 77 2e 3b 20  45 51 55 42 20 32 32 3a  |B 5.w.; EQUB 22:|
00017650  45 51 55 42 20 32 32 3a  45 51 55 42 20 32 31 3a  |EQUB 22:EQUB 21:|
00017660  45 51 55 42 20 38 3a 45  51 55 42 20 31 37 3a 45  |EQUB 8:EQUB 17:E|
00017670  51 55 42 20 31 38 3a 45  51 55 42 20 31 38 0d 77  |QUB 18:EQUB 18.w|
00017680  38 12 20 45 51 55 42 20  33 3a 45 51 55 42 20 33  |8. EQUB 3:EQUB 3|
00017690  0d 77 42 31 20 45 51 55  42 20 31 30 3a 45 51 55  |.wB1 EQUB 10:EQU|
000176a0  42 20 31 30 3a 45 51 55  42 20 31 30 3a 45 51 55  |B 10:EQUB 10:EQU|
000176b0  42 20 39 3a 45 51 55 42  20 39 3a 45 51 55 42 20  |B 9:EQUB 9:EQUB |
000176c0  39 0d 77 4c 14 20 45 51  55 42 20 31 36 3a 45 51  |9.wL. EQUB 16:EQ|
000176d0  55 42 20 31 36 0d 77 56  34 20 45 51 55 42 20 31  |UB 16.wV4 EQUB 1|
000176e0  33 3a 45 51 55 42 20 31  33 3a 45 51 55 42 20 31  |3:EQUB 13:EQUB 1|
000176f0  33 3a 45 51 55 42 20 31  34 3a 45 51 55 42 20 31  |3:EQUB 14:EQUB 1|
00017700  34 3a 45 51 55 42 20 31  34 0d 77 60 2e 20 45 51  |4:EQUB 14.w`. EQ|
00017710  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00017720  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00017730  3a 45 51 55 42 20 37 0d  77 6a 34 20 45 51 55 42  |:EQUB 7.wj4 EQUB|
00017740  20 32 32 3a 45 51 55 42  20 32 32 3a 45 51 55 42  | 22:EQUB 22:EQUB|
00017750  20 32 32 3a 45 51 55 42  20 32 31 3a 45 51 55 42  | 22:EQUB 21:EQUB|
00017760  20 32 31 3a 45 51 55 42  20 32 31 0d 77 74 1c 20  | 21:EQUB 21.wt. |
00017770  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
00017780  45 51 55 42 20 32 34 0d  77 7e 34 20 45 51 55 42  |EQUB 24.w~4 EQUB|
00017790  20 31 37 3a 45 51 55 42  20 31 37 3a 45 51 55 42  | 17:EQUB 17:EQUB|
000177a0  20 31 37 3a 45 51 55 42  20 31 38 3a 45 51 55 42  | 17:EQUB 18:EQUB|
000177b0  20 31 38 3a 45 51 55 42  20 31 38 0d 77 88 43 20  | 18:EQUB 18.w.C |
000177c0  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
000177d0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
000177e0  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
000177f0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 0d 77  |:EQUB 3:EQUB 3.w|
00017800  92 20 20 45 51 55 42 20  33 3a 45 51 55 42 20 33  |.  EQUB 3:EQUB 3|
00017810  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 0d 77  |:EQUB 3:EQUB 3.w|
00017820  9c 44 20 45 51 55 42 20  31 38 3a 45 51 55 42 20  |.D EQUB 18:EQUB |
00017830  31 38 3a 45 51 55 42 20  31 37 3a 45 51 55 42 20  |18:EQUB 17:EQUB |
00017840  31 37 3a 45 51 55 42 20  31 38 3a 45 51 55 42 20  |17:EQUB 18:EQUB |
00017850  32 34 3a 45 51 55 42 20  32 34 3a 45 51 55 42 20  |24:EQUB 24:EQUB |
00017860  32 34 0d 77 a6 34 20 45  51 55 42 20 31 36 3a 45  |24.w.4 EQUB 16:E|
00017870  51 55 42 20 31 36 3a 45  51 55 42 20 31 36 3a 45  |QUB 16:EQUB 16:E|
*
00017890  51 55 42 20 31 36 0d 77  b0 0c 20 45 51 55 42 20  |QUB 16.w.. EQUB |
000178a0  33 32 0d 77 ba 34 20 45  51 55 42 20 32 34 3a 45  |32.w.4 EQUB 24:E|
000178b0  51 55 42 20 32 34 3a 45  51 55 42 20 32 34 3a 45  |QUB 24:EQUB 24:E|
*
000178d0  51 55 42 20 32 34 0d 77  c4 31 20 45 51 55 42 20  |QUB 24.w.1 EQUB |
000178e0  32 32 3a 45 51 55 42 20  32 31 3a 45 51 55 42 20  |22:EQUB 21:EQUB |
000178f0  32 32 3a 45 51 55 42 20  31 3a 45 51 55 42 20 31  |22:EQUB 1:EQUB 1|
00017900  3a 45 51 55 42 20 31 0d  77 ce 3c 20 45 51 55 42  |:EQUB 1.w.< EQUB|
00017910  20 31 38 3a 3a 45 51 55  42 20 31 38 3a 45 51 55  | 18::EQUB 18:EQU|
00017920  42 20 31 37 3a 45 51 55  42 20 38 3a 45 51 55 42  |B 17:EQUB 8:EQUB|
00017930  20 32 31 3a 45 51 55 42  20 32 32 3a 45 51 55 42  | 21:EQUB 22:EQUB|
00017940  20 32 32 0d 77 d8 12 20  45 51 55 42 20 37 3a 45  | 22.w.. EQUB 7:E|
00017950  51 55 42 20 37 0d 77 e2  34 20 45 51 55 42 20 31  |QUB 7.w.4 EQUB 1|
00017960  34 3a 45 51 55 42 20 31  34 3a 45 51 55 42 20 31  |4:EQUB 14:EQUB 1|
00017970  34 3a 45 51 55 42 20 31  33 3a 45 51 55 42 20 31  |4:EQUB 13:EQUB 1|
00017980  33 3a 45 51 55 42 20 31  33 0d 77 ec 14 20 45 51  |3:EQUB 13.w.. EQ|
00017990  55 42 20 31 36 3a 45 51  55 42 20 31 36 0d 77 f6  |UB 16:EQUB 16.w.|
000179a0  31 20 45 51 55 42 20 39  3a 45 51 55 42 20 39 3a  |1 EQUB 9:EQUB 9:|
000179b0  45 51 55 42 20 39 3a 45  51 55 42 20 31 30 3a 45  |EQUB 9:EQUB 10:E|
000179c0  51 55 42 20 31 30 3a 45  51 55 42 20 31 30 0d 78  |QUB 10:EQUB 10.x|
000179d0  00 2e 20 45 51 55 42 20  33 3a 45 51 55 42 20 33  |.. EQUB 3:EQUB 3|
000179e0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
000179f0  51 55 42 20 33 3a 45 51  55 42 20 33 0d 78 0a 34  |QUB 3:EQUB 3.x.4|
00017a00  20 45 51 55 42 20 31 38  3a 45 51 55 42 20 31 38  | EQUB 18:EQUB 18|
00017a10  3a 45 51 55 42 20 31 38  3a 45 51 55 42 20 31 37  |:EQUB 18:EQUB 17|
00017a20  3a 45 51 55 42 20 31 37  3a 45 51 55 42 20 31 37  |:EQUB 17:EQUB 17|
00017a30  0d 78 14 1c 20 45 51 55  42 20 32 34 3a 45 51 55  |.x.. EQUB 24:EQU|
00017a40  42 20 32 34 3a 45 51 55  42 20 32 34 0d 78 1e 34  |B 24:EQUB 24.x.4|
00017a50  20 45 51 55 42 20 32 31  3a 45 51 55 42 20 32 31  | EQUB 21:EQUB 21|
00017a60  3a 45 51 55 42 20 32 31  3a 45 51 55 42 20 32 32  |:EQUB 21:EQUB 22|
00017a70  3a 45 51 55 42 20 32 32  3a 45 51 55 42 20 32 32  |:EQUB 22:EQUB 22|
00017a80  0d 78 28 43 20 45 51 55  42 20 37 3a 45 51 55 42  |.x(C EQUB 7:EQUB|
00017a90  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00017aa0  3a 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  |:EQUB 7:EQUB 7:E|
00017ab0  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00017ac0  42 20 37 0d 78 32 12 20  45 51 55 42 20 37 3a 45  |B 7.x2. EQUB 7:E|
00017ad0  51 55 42 20 37 0d 78 3c  44 20 45 51 55 42 20 32  |QUB 7.x<D EQUB 2|
00017ae0  32 3a 45 51 55 42 20 32  32 3a 45 51 55 42 20 32  |2:EQUB 22:EQUB 2|
00017af0  31 3a 45 51 55 42 20 32  31 3a 45 51 55 42 20 32  |1:EQUB 21:EQUB 2|
00017b00  32 3a 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |2:EQUB 24:EQUB 2|
00017b10  34 3a 45 51 55 42 20 32  34 0d 78 46 34 20 45 51  |4:EQUB 24.xF4 EQ|
00017b20  55 42 20 31 36 3a 45 51  55 42 20 31 36 3a 45 51  |UB 16:EQUB 16:EQ|
*
00017b40  55 42 20 31 36 3a 45 51  55 42 20 31 36 0d 78 50  |UB 16:EQUB 16.xP|
00017b50  0c 20 45 51 55 42 20 33  32 0d 78 5a 04 0d 78 64  |. EQUB 32.xZ..xd|
00017b60  05 20 0d 78 6e 1b 20 3b  20 2a 2a 2a 2a 2a 2a 2a  |. .xn. ; *******|
00017b70  2a 2a 2a 20 20 20 57 41  56 45 20 31 35 0d 78 78  |***   WAVE 15.xx|
00017b80  0b 20 45 51 55 42 20 33  0d 78 82 55 20 45 51 55  |. EQUB 3.x.U EQU|
00017b90  42 20 34 20 3a 20 45 51  55 42 20 38 20 3a 20 45  |B 4 : EQUB 8 : E|
00017ba0  51 55 42 20 31 30 20 3a  20 45 51 55 42 20 34 20  |QUB 10 : EQUB 4 |
00017bb0  3a 20 45 51 55 42 20 33  20 3a 20 45 51 55 42 20  |: EQUB 3 : EQUB |
00017bc0  39 35 20 3a 20 45 51 55  42 20 38 20 3a 20 45 51  |95 : EQUB 8 : EQ|
00017bd0  55 42 20 38 20 3a 45 51  55 42 20 35 30 0d 78 8c  |UB 8 :EQUB 50.x.|
00017be0  0b 20 45 51 55 42 20 30  0d 78 96 53 20 45 51 55  |. EQUB 0.x.S EQU|
00017bf0  42 20 37 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 7 : EQUB 0 : E|
00017c00  51 55 42 20 30 20 3a 20  45 51 55 42 20 30 20 3a  |QUB 0 : EQUB 0 :|
00017c10  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 30  | EQUB 0 : EQUB 0|
00017c20  20 3a 20 45 51 55 42 20  30 20 3a 20 45 51 55 42  | : EQUB 0 : EQUB|
00017c30  20 30 20 3a 20 45 51 55  42 20 30 0d 78 a0 34 20  | 0 : EQUB 0.x.4 |
00017c40  45 51 55 44 20 26 31 46  45 31 35 41 42 20 3a 20  |EQUD &1FE15AB : |
*
00017c60  45 51 55 44 20 30 20 3a  20 45 51 55 44 20 30 0d  |EQUD 0 : EQUD 0.|
00017c70  78 aa 0c 20 45 51 55 42  20 39 39 0d 78 b4 0b 20  |x.. EQUB 99.x.. |
00017c80  45 51 55 42 20 30 0d 78  be 44 20 45 51 55 42 20  |EQUB 0.x.D EQUB |
00017c90  35 36 3a 45 51 55 42 20  35 36 3a 45 51 55 42 20  |56:EQUB 56:EQUB |
*
00017cc0  35 36 3a 45 51 55 42 20  35 36 0d 78 c8 44 20 45  |56:EQUB 56.x.D E|
00017cd0  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 3a 45  |QUB 56:EQUB 56:E|
*
00017d00  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 0d 78  |QUB 56:EQUB 56.x|
00017d10  d2 44 20 45 51 55 42 20  35 36 3a 45 51 55 42 20  |.D EQUB 56:EQUB |
00017d20  35 36 3a 45 51 55 42 20  35 36 3a 45 51 55 42 20  |56:EQUB 56:EQUB |
*
00017d50  35 36 0d 78 dc 34 20 45  51 55 42 20 35 38 3a 45  |56.x.4 EQUB 58:E|
00017d60  51 55 42 20 35 38 3a 45  51 55 42 20 35 37 3a 45  |QUB 58:EQUB 57:E|
00017d70  51 55 42 20 35 37 3a 45  51 55 42 20 35 38 3a 45  |QUB 57:EQUB 58:E|
00017d80  51 55 42 20 35 38 0d 78  e6 12 20 45 51 55 42 20  |QUB 58.x.. EQUB |
00017d90  32 3a 45 51 55 42 20 32  0d 78 f0 34 20 45 51 55  |2:EQUB 2.x.4 EQU|
00017da0  42 20 32 36 3a 45 51 55  42 20 32 36 3a 45 51 55  |B 26:EQUB 26:EQU|
00017db0  42 20 32 35 3a 45 51 55  42 20 32 35 3a 45 51 55  |B 25:EQUB 25:EQU|
00017dc0  42 20 32 36 3a 45 51 55  42 20 32 36 0d 78 fa 14  |B 26:EQUB 26.x..|
00017dd0  20 45 51 55 42 20 31 36  3a 45 51 55 42 20 31 36  | EQUB 16:EQUB 16|
00017de0  0d 79 04 2c 20 45 51 55  42 20 33 30 3a 45 51 55  |.y., EQUB 30:EQU|
00017df0  42 20 33 30 3a 45 51 55  42 20 32 39 3a 45 51 55  |B 30:EQUB 29:EQU|
00017e00  42 20 33 30 3a 45 51 55  42 20 33 30 0d 79 0e 3c  |B 30:EQUB 30.y.<|
00017e10  20 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  | EQUB 7:EQUB 7:E|
00017e20  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00017e30  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
00017e40  37 3a 45 51 55 42 20 37  0d 79 18 27 20 45 51 55  |7:EQUB 7.y.' EQU|
00017e50  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
00017e60  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 35 0d  |7:EQUB 7:EQUB 5.|
00017e70  79 22 34 20 45 51 55 42  20 32 32 3a 45 51 55 42  |y"4 EQUB 22:EQUB|
00017e80  20 32 32 3a 45 51 55 42  20 32 32 3a 45 51 55 42  | 22:EQUB 22:EQUB|
00017e90  20 31 34 3a 45 51 55 42  20 31 34 3a 45 51 55 42  | 14:EQUB 14:EQUB|
00017ea0  20 31 34 0d 79 2c 34 20  45 51 55 42 20 32 34 3a  | 14.y,4 EQUB 24:|
00017eb0  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
00017ed0  45 51 55 42 20 32 34 0d  79 36 34 20 45 51 55 42  |EQUB 24.y64 EQUB|
00017ee0  20 31 38 3a 45 51 55 42  20 31 38 3a 45 51 55 42  | 18:EQUB 18:EQUB|
00017ef0  20 31 38 3a 45 51 55 42  20 31 30 3a 45 51 55 42  | 18:EQUB 10:EQUB|
00017f00  20 31 30 3a 45 51 55 42  20 31 30 0d 79 40 43 20  | 10:EQUB 10.y@C |
00017f10  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00017f20  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00017f30  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
00017f40  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 0d 79  |:EQUB 3:EQUB 3.y|
00017f50  4a 43 20 45 51 55 42 20  33 3a 45 51 55 42 20 33  |JC EQUB 3:EQUB 3|
00017f60  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00017f70  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00017f80  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00017f90  33 0d 79 54 21 20 45 51  55 42 20 33 32 3a 45 51  |3.yT! EQUB 32:EQ|
00017fa0  55 42 20 30 3a 45 51 55  42 20 30 3a 45 51 55 42  |UB 0:EQUB 0:EQUB|
00017fb0  20 30 0d 79 5e 04 0d 79  68 04 0d 79 72 1b 20 3b  | 0.y^..yh..yr. ;|
00017fc0  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 20 20 20 57 41  | **********   WA|
00017fd0  56 45 20 31 36 0d 79 7c  0b 20 45 51 55 42 20 33  |VE 16.y|. EQUB 3|
00017fe0  0d 79 86 57 20 45 51 55  42 20 34 20 3a 20 45 51  |.y.W EQUB 4 : EQ|
00017ff0  55 42 20 38 20 3a 20 45  51 55 42 20 31 30 20 3a  |UB 8 : EQUB 10 :|
00018000  20 45 51 55 42 20 34 20  3a 20 45 51 55 42 20 33  | EQUB 4 : EQUB 3|
00018010  20 3a 20 45 51 55 42 20  31 31 34 20 3a 20 45 51  | : EQUB 114 : EQ|
00018020  55 42 20 39 20 3a 20 45  51 55 42 20 39 20 3a 20  |UB 9 : EQUB 9 : |
00018030  45 51 55 42 20 35 30 0d  79 90 0b 20 45 51 55 42  |EQUB 50.y.. EQUB|
00018040  20 31 0d 79 9a 53 20 45  51 55 42 20 32 20 3a 20  | 1.y.S EQUB 2 : |
00018050  45 51 55 42 20 36 20 3a  20 45 51 55 42 20 30 20  |EQUB 6 : EQUB 0 |
00018060  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00018070  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00018080  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
00018090  51 55 42 20 30 0d 79 a4  34 20 45 51 55 44 20 26  |QUB 0.y.4 EQUD &|
000180a0  31 46 45 31 33 38 38 20  3a 20 45 51 55 44 20 26  |1FE1388 : EQUD &|
000180b0  31 46 45 31 33 38 38 20  3a 20 45 51 55 44 20 30  |1FE1388 : EQUD 0|
000180c0  20 3a 20 45 51 55 44 20  30 0d 79 ae 0d 20 45 51  | : EQUD 0.y.. EQ|
000180d0  55 42 20 31 31 35 0d 79  b8 0b 20 45 51 55 42 20  |UB 115.y.. EQUB |
000180e0  30 0d 79 c2 34 20 45 51  55 42 20 35 36 3a 45 51  |0.y.4 EQUB 56:EQ|
000180f0  55 42 20 35 36 3a 45 51  55 42 20 35 36 3a 45 51  |UB 56:EQUB 56:EQ|
*
00018110  55 42 20 35 36 0d 79 cc  34 20 45 51 55 42 20 32  |UB 56.y.4 EQUB 2|
00018120  35 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |5:EQUB 25:EQUB 2|
*
00018140  35 3a 45 51 55 42 20 32  35 0d 79 d6 0c 20 45 51  |5:EQUB 25.y.. EQ|
00018150  55 42 20 32 35 0d 79 e0  1c 20 45 51 55 42 20 35  |UB 25.y.. EQUB 5|
00018160  39 3a 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |9:EQUB 59:EQUB 5|
00018170  39 0d 79 ea 44 20 45 51  55 42 20 36 31 3a 45 51  |9.y.D EQUB 61:EQ|
00018180  55 42 20 36 31 3a 45 51  55 42 20 36 31 3a 45 51  |UB 61:EQUB 61:EQ|
*
000181b0  55 42 20 36 31 0d 79 f4  3c 20 45 51 55 42 20 36  |UB 61.y.< EQUB 6|
000181c0  31 3a 45 51 55 42 20 36  31 3a 45 51 55 42 20 36  |1:EQUB 61:EQUB 6|
*
000181f0  31 0d 79 fe 04 0d 7a 08  1c 20 45 51 55 42 20 35  |1.y...z.. EQUB 5|
00018200  39 3a 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |9:EQUB 59:EQUB 5|
00018210  39 0d 7a 12 3c 20 45 51  55 42 20 32 35 3a 45 51  |9.z.< EQUB 25:EQ|
00018220  55 42 20 32 35 3a 45 51  55 42 20 32 35 3a 45 51  |UB 25:EQUB 25:EQ|
*
00018240  55 42 20 32 35 3a 45 51  55 42 20 32 35 0d 7a 1c  |UB 25:EQUB 25.z.|
00018250  3c 20 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |< EQUB 25:EQUB 2|
00018260  35 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |5:EQUB 25:EQUB 2|
*
00018280  35 3a 45 51 55 42 20 32  35 0d 7a 26 34 20 45 51  |5:EQUB 25.z&4 EQ|
00018290  55 42 20 32 35 3a 45 51  55 42 20 32 35 3a 45 51  |UB 25:EQUB 25:EQ|
*
000182b0  55 42 20 32 35 3a 45 51  55 42 20 32 35 0d 7a 30  |UB 25:EQUB 25.z0|
000182c0  24 20 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |$ EQUB 59:EQUB 5|
000182d0  39 3a 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |9:EQUB 59:EQUB 5|
000182e0  39 0d 7a 3a 3c 20 45 51  55 42 20 36 31 3a 45 51  |9.z:< EQUB 61:EQ|
000182f0  55 42 20 36 31 3a 45 51  55 42 20 36 31 3a 45 51  |UB 61:EQUB 61:EQ|
*
00018310  55 42 20 36 31 3a 45 51  55 42 20 36 31 0d 7a 44  |UB 61:EQUB 61.zD|
00018320  3c 20 45 51 55 42 20 36  31 3a 45 51 55 42 20 36  |< EQUB 61:EQUB 6|
00018330  31 3a 45 51 55 42 20 36  31 3a 45 51 55 42 20 36  |1:EQUB 61:EQUB 6|
*
00018350  31 3a 45 51 55 42 20 36  31 0d 7a 4e 34 20 45 51  |1:EQUB 61.zN4 EQ|
00018360  55 42 20 36 31 3a 45 51  55 42 20 36 31 3a 45 51  |UB 61:EQUB 61:EQ|
*
00018380  55 42 20 36 31 3a 45 51  55 42 20 36 31 0d 7a 58  |UB 61:EQUB 61.zX|
00018390  24 20 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |$ EQUB 59:EQUB 5|
000183a0  39 3a 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |9:EQUB 59:EQUB 5|
000183b0  39 0d 7a 62 3c 20 45 51  55 42 20 32 35 3a 45 51  |9.zb< EQUB 25:EQ|
000183c0  55 42 20 32 35 3a 45 51  55 42 20 32 35 3a 45 51  |UB 25:EQUB 25:EQ|
*
000183e0  55 42 20 32 35 3a 45 51  55 42 20 32 35 0d 7a 6c  |UB 25:EQUB 25.zl|
000183f0  3c 20 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |< EQUB 25:EQUB 2|
00018400  35 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |5:EQUB 25:EQUB 2|
*
00018420  35 3a 45 51 55 42 20 32  35 0d 7a 76 3c 20 45 51  |5:EQUB 25.zv< EQ|
00018430  55 42 20 32 35 3a 45 51  55 42 20 32 35 3a 45 51  |UB 25:EQUB 25:EQ|
*
00018460  55 42 20 32 35 0d 7a 80  3c 20 45 51 55 42 20 32  |UB 25.z.< EQUB 2|
00018470  35 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 32  |5:EQUB 25:EQUB 2|
*
000184a0  35 0d 7a 8a 19 20 45 51  55 42 20 33 3a 45 51 55  |5.z.. EQUB 3:EQU|
000184b0  42 20 33 3a 45 51 55 42  20 33 0d 7a 94 0c 20 45  |B 3:EQUB 3.z.. E|
000184c0  51 55 42 20 33 32 0d 7a  9e 04 0d 7a a8 05 20 0d  |QUB 32.z...z.. .|
000184d0  7a b2 1b 20 3b 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |z.. ; **********|
000184e0  20 20 20 57 41 56 45 20  31 37 0d 7a bc 0b 20 45  |   WAVE 17.z.. E|
000184f0  51 55 42 20 34 0d 7a c6  57 20 45 51 55 42 20 34  |QUB 4.z.W EQUB 4|
00018500  20 3a 20 45 51 55 42 20  38 20 3a 20 45 51 55 42  | : EQUB 8 : EQUB|
00018510  20 31 30 20 3a 20 45 51  55 42 20 33 20 3a 20 45  | 10 : EQUB 3 : E|
00018520  51 55 42 20 33 20 3a 20  45 51 55 42 20 31 32 32  |QUB 3 : EQUB 122|
00018530  20 3a 20 45 51 55 42 20  38 20 3a 20 45 51 55 42  | : EQUB 8 : EQUB|
00018540  20 38 20 3a 20 45 51 55  42 20 35 30 0d 7a d0 0b  | 8 : EQUB 50.z..|
00018550  20 45 51 55 42 20 31 0d  7a da 53 20 45 51 55 42  | EQUB 1.z.S EQUB|
00018560  20 33 20 3a 20 45 51 55  42 20 34 20 3a 20 45 51  | 3 : EQUB 4 : EQ|
00018570  55 42 20 30 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 0 : EQUB 0 : |
00018580  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
00018590  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
000185a0  30 20 3a 20 45 51 55 42  20 30 0d 7a e4 34 20 45  |0 : EQUB 0.z.4 E|
000185b0  51 55 44 20 26 31 46 44  41 38 41 38 20 3a 20 45  |QUD &1FDA8A8 : E|
*
000185d0  51 55 44 20 30 20 3a 20  45 51 55 44 20 30 0d 7a  |QUD 0 : EQUD 0.z|
000185e0  ee 0d 20 45 51 55 42 20  31 32 33 0d 7a f8 0b 20  |.. EQUB 123.z.. |
000185f0  45 51 55 42 20 30 0d 7b  02 4c 20 45 51 55 42 20  |EQUB 0.{.L EQUB |
00018600  32 34 3a 45 51 55 42 20  32 34 3a 45 51 55 42 20  |24:EQUB 24:EQUB |
*
00018640  32 34 0d 7b 0c 44 20 45  51 55 42 20 32 34 3a 45  |24.{.D EQUB 24:E|
00018650  51 55 42 20 32 34 3a 45  51 55 42 20 32 34 3a 45  |QUB 24:EQUB 24:E|
*
00018680  51 55 42 20 32 34 0d 7b  16 4c 20 45 51 55 42 20  |QUB 24.{.L EQUB |
00018690  32 35 3a 45 51 55 42 20  32 35 3a 45 51 55 42 20  |25:EQUB 25:EQUB |
*
000186d0  32 35 0d 7b 20 14 20 45  51 55 42 20 32 35 3a 45  |25.{ . EQUB 25:E|
000186e0  51 55 42 20 32 35 0d 7b  2a 20 20 45 51 55 42 20  |QUB 25.{*  EQUB |
000186f0  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00018700  45 51 55 42 20 33 0d 7b  34 4c 20 45 51 55 42 20  |EQUB 3.{4L EQUB |
00018710  35 36 3a 45 51 55 42 20  35 36 3a 45 51 55 42 20  |56:EQUB 56:EQUB |
*
00018750  35 36 0d 7b 3e 34 20 45  51 55 42 20 35 36 3a 45  |56.{>4 EQUB 56:E|
00018760  51 55 42 20 35 36 3a 45  51 55 42 20 35 36 3a 45  |QUB 56:EQUB 56:E|
*
00018780  51 55 42 20 35 36 0d 7b  48 35 20 45 51 55 42 20  |QUB 56.{H5 EQUB |
00018790  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
000187a0  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
000187b0  55 42 20 33 3a 45 51 55  42 20 33 0d 7b 52 4c 20  |UB 3:EQUB 3.{RL |
000187c0  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
00018800  45 51 55 42 20 32 34 0d  7b 5c 34 20 45 51 55 42  |EQUB 24.{\4 EQUB|
00018810  20 32 34 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 24:EQUB 24:EQUB|
*
00018830  20 32 34 3a 45 51 55 42  20 32 34 0d 7b 66 20 20  | 24:EQUB 24.{f  |
00018840  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00018850  55 42 20 33 3a 45 51 55  42 20 33 0d 7b 70 4c 20  |UB 3:EQUB 3.{pL |
00018860  45 51 55 42 20 35 37 3a  45 51 55 42 20 35 37 3a  |EQUB 57:EQUB 57:|
*
000188a0  45 51 55 42 20 35 37 0d  7b 7a 14 20 45 51 55 42  |EQUB 57.{z. EQUB|
000188b0  20 35 37 3a 45 51 55 42  20 35 37 0d 7b 84 4c 20  | 57:EQUB 57.{.L |
000188c0  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 3a  |EQUB 56:EQUB 56:|
*
00018900  45 51 55 42 20 35 36 0d  7b 8e 24 20 45 51 55 42  |EQUB 56.{.$ EQUB|
00018910  20 35 36 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 56:EQUB 56:EQUB|
00018920  20 35 36 3a 45 51 55 42  20 35 36 0d 7b 98 4a 20  | 56:EQUB 56.{.J |
00018930  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00018940  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00018950  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00018960  3a 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  |:EQUB 7:EQUB 7:E|
00018970  51 55 42 20 37 0d 7b a2  4a 20 45 51 55 42 20 37  |QUB 7.{.J EQUB 7|
00018980  3a 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  |:EQUB 7:EQUB 7:E|
00018990  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
000189a0  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
000189b0  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 0d  |7:EQUB 7:EQUB 7.|
000189c0  7b ac 24 20 45 51 55 42  20 35 36 3a 45 51 55 42  |{.$ EQUB 56:EQUB|
000189d0  20 35 36 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 56:EQUB 56:EQUB|
000189e0  20 35 36 0d 7b b6 0c 20  45 51 55 42 20 33 32 0d  | 56.{.. EQUB 32.|
000189f0  7b c0 04 0d 7b ca 05 20  0d 7b d4 1b 20 3b 20 2a  |{...{.. .{.. ; *|
00018a00  2a 2a 2a 2a 2a 2a 2a 2a  2a 20 20 20 57 41 56 45  |*********   WAVE|
00018a10  20 31 38 0d 7b de 0b 20  45 51 55 42 20 34 0d 7b  | 18.{.. EQUB 4.{|
00018a20  e8 55 20 45 51 55 42 20  34 20 3a 20 45 51 55 42  |.U EQUB 4 : EQUB|
00018a30  20 38 20 3a 20 45 51 55  42 20 36 20 3a 20 45 51  | 8 : EQUB 6 : EQ|
00018a40  55 42 20 35 20 3a 20 45  51 55 42 20 34 20 3a 20  |UB 5 : EQUB 4 : |
00018a50  45 51 55 42 20 32 30 39  20 3a 20 45 51 55 42 20  |EQUB 209 : EQUB |
00018a60  39 20 3a 20 45 51 55 42  20 39 20 3a 45 51 55 42  |9 : EQUB 9 :EQUB|
00018a70  20 35 30 0d 7b f2 0b 20  45 51 55 42 20 33 0d 7b  | 50.{.. EQUB 3.{|
00018a80  fc 53 20 45 51 55 42 20  34 20 3a 20 45 51 55 42  |.S EQUB 4 : EQUB|
00018a90  20 36 20 3a 20 45 51 55  42 20 37 20 3a 20 45 51  | 6 : EQUB 7 : EQ|
00018aa0  55 42 20 38 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 8 : EQUB 0 : |
00018ab0  45 51 55 42 20 30 20 3a  20 45 51 55 42 20 30 20  |EQUB 0 : EQUB 0 |
00018ac0  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00018ad0  30 0d 7c 06 34 20 45 51  55 44 20 26 31 46 45 31  |0.|.4 EQUD &1FE1|
00018ae0  34 43 38 20 3a 20 45 51  55 44 20 26 31 46 45 31  |4C8 : EQUD &1FE1|
00018af0  34 43 38 20 3a 20 45 51  55 44 20 30 20 3a 20 45  |4C8 : EQUD 0 : E|
00018b00  51 55 44 20 30 0d 7c 10  0d 20 45 51 55 42 20 32  |QUD 0.|.. EQUB 2|
00018b10  31 31 0d 7c 1a 0b 20 45  51 55 42 20 30 0d 7c 24  |11.|.. EQUB 0.|$|
00018b20  4c 20 45 51 55 42 20 35  36 3a 45 51 55 42 20 35  |L EQUB 56:EQUB 5|
00018b30  36 3a 45 51 55 42 20 35  36 3a 45 51 55 42 20 35  |6:EQUB 56:EQUB 5|
*
00018b60  36 3a 45 51 55 42 20 35  36 0d 7c 2e 4c 20 45 51  |6:EQUB 56.|.L EQ|
00018b70  55 42 20 35 36 3a 45 51  55 42 20 35 36 3a 45 51  |UB 56:EQUB 56:EQ|
*
00018bb0  55 42 20 35 36 0d 7c 38  4c 20 45 51 55 42 20 35  |UB 56.|8L EQUB 5|
00018bc0  36 3a 45 51 55 42 20 35  36 3a 45 51 55 42 20 35  |6:EQUB 56:EQUB 5|
*
00018c00  36 0d 7c 42 14 20 45 51  55 42 20 35 36 3a 45 51  |6.|B. EQUB 56:EQ|
00018c10  55 42 20 35 36 0d 7c 4c  4a 20 45 51 55 42 20 33  |UB 56.|LJ EQUB 3|
00018c20  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00018c30  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00018c40  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00018c50  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 0d  |3:EQUB 3:EQUB 3.|
00018c60  7c 56 4a 20 45 51 55 42  20 33 3a 45 51 55 42 20  ||VJ EQUB 3:EQUB |
00018c70  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00018c80  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00018c90  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00018ca0  20 33 3a 45 51 55 42 20  33 0d 7c 60 12 20 45 51  | 3:EQUB 3.|`. EQ|
00018cb0  55 42 20 33 3a 45 51 55  42 20 33 0d 7c 6a 24 20  |UB 3:EQUB 3.|j$ |
00018cc0  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
00018cd0  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 0d  |EQUB 24:EQUB 24.|
00018ce0  7c 74 4a 20 45 51 55 42  20 37 3a 45 51 55 42 20  ||tJ EQUB 7:EQUB |
00018cf0  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |7:EQUB 7:EQUB 7:|
00018d00  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00018d10  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00018d20  20 37 3a 45 51 55 42 20  37 0d 7c 7e 43 20 45 51  | 7:EQUB 7.|~C EQ|
00018d30  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00018d40  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00018d50  3a 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  |:EQUB 7:EQUB 7:E|
00018d60  51 55 42 20 37 3a 45 51  55 42 20 37 0d 7c 88 4c  |QUB 7:EQUB 7.|.L|
00018d70  20 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  | EQUB 24:EQUB 24|
00018d80  3a 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  |:EQUB 24:EQUB 24|
*
00018db0  3a 45 51 55 42 20 32 34  0d 7c 92 4c 20 45 51 55  |:EQUB 24.|.L EQU|
00018dc0  42 20 32 34 3a 45 51 55  42 20 32 34 3a 45 51 55  |B 24:EQUB 24:EQU|
*
00018e00  42 20 32 34 0d 7c 9c 34  20 45 51 55 42 20 32 34  |B 24.|.4 EQUB 24|
00018e10  3a 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  |:EQUB 24:EQUB 24|
*
00018e30  3a 45 51 55 42 20 32 34  0d 7c a6 19 20 45 51 55  |:EQUB 24.|.. EQU|
00018e40  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00018e50  33 0d 7c b0 4c 20 45 51  55 42 20 35 36 3a 45 51  |3.|.L EQUB 56:EQ|
00018e60  55 42 20 35 36 3a 45 51  55 42 20 35 36 3a 45 51  |UB 56:EQUB 56:EQ|
*
00018e90  55 42 20 35 36 3a 45 51  55 42 20 35 36 0d 7c ba  |UB 56:EQUB 56.|.|
00018ea0  4c 20 45 51 55 42 20 35  36 3a 45 51 55 42 20 35  |L EQUB 56:EQUB 5|
00018eb0  36 3a 45 51 55 42 20 35  36 3a 45 51 55 42 20 35  |6:EQUB 56:EQUB 5|
*
00018ee0  36 3a 45 51 55 42 20 35  36 0d 7c c4 0c 20 45 51  |6:EQUB 56.|.. EQ|
00018ef0  55 42 20 35 36 0d 7c ce  4a 20 45 51 55 42 20 33  |UB 56.|.J EQUB 3|
00018f00  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00018f10  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00018f20  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00018f30  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 0d  |3:EQUB 3:EQUB 3.|
00018f40  7c d8 2e 20 45 51 55 42  20 33 3a 45 51 55 42 20  ||.. EQUB 3:EQUB |
00018f50  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00018f60  45 51 55 42 20 33 3a 45  51 55 42 20 33 0d 7c e2  |EQUB 3:EQUB 3.|.|
00018f70  24 20 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |$ EQUB 24:EQUB 2|
00018f80  34 3a 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |4:EQUB 24:EQUB 2|
00018f90  34 0d 7c ec 4a 20 45 51  55 42 20 37 3a 45 51 55  |4.|.J EQUB 7:EQU|
00018fa0  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
00018fb0  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |7:EQUB 7:EQUB 7:|
00018fc0  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00018fd0  55 42 20 37 3a 45 51 55  42 20 37 0d 7c f6 19 20  |UB 7:EQUB 7.|.. |
00018fe0  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00018ff0  55 42 20 37 0d 7d 00 4c  20 45 51 55 42 20 32 34  |UB 7.}.L EQUB 24|
00019000  3a 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  |:EQUB 24:EQUB 24|
*
00019040  0d 7d 0a 2c 20 45 51 55  42 20 32 34 3a 45 51 55  |.}., EQUB 24:EQU|
00019050  42 20 32 34 3a 45 51 55  42 20 32 34 3a 45 51 55  |B 24:EQUB 24:EQU|
00019060  42 20 32 34 3a 45 51 55  42 20 32 34 0d 7d 14 19  |B 24:EQUB 24.}..|
00019070  20 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  | EQUB 3:EQUB 3:E|
00019080  51 55 42 20 33 0d 7d 1e  4c 20 45 51 55 42 20 35  |QUB 3.}.L EQUB 5|
00019090  36 3a 45 51 55 42 20 35  36 3a 45 51 55 42 20 35  |6:EQUB 56:EQUB 5|
*
000190d0  36 0d 7d 28 4a 20 45 51  55 42 20 33 3a 45 51 55  |6.}(J EQUB 3:EQU|
000190e0  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
000190f0  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00019100  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00019110  55 42 20 33 3a 45 51 55  42 20 33 0d 7d 32 24 20  |UB 3:EQUB 3.}2$ |
00019120  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
00019130  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 0d  |EQUB 24:EQUB 24.|
00019140  7d 3c 3c 20 45 51 55 42  20 37 3a 45 51 55 42 20  |}<< EQUB 7:EQUB |
00019150  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |7:EQUB 7:EQUB 7:|
00019160  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00019170  55 42 20 37 3a 45 51 55  42 20 37 0d 7d 46 3c 20  |UB 7:EQUB 7.}F< |
00019180  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
000191b0  45 51 55 42 20 32 34 0d  7d 50 13 20 45 51 55 42  |EQUB 24.}P. EQUB|
000191c0  20 33 32 3a 45 51 55 42  20 30 0d 7d 5a 04 0d 7d  | 32:EQUB 0.}Z..}|
000191d0  64 04 0d 7d 6e 1b 20 3b  20 2a 2a 2a 2a 2a 2a 2a  |d..}n. ; *******|
000191e0  2a 2a 2a 20 20 20 57 41  56 45 20 31 39 0d 7d 78  |***   WAVE 19.}x|
000191f0  0b 20 45 51 55 42 20 34  0d 7d 82 56 20 45 51 55  |. EQUB 4.}.V EQU|
00019200  42 20 34 20 3a 20 45 51  55 42 20 38 20 3a 20 45  |B 4 : EQUB 8 : E|
00019210  51 55 42 20 36 20 3a 20  45 51 55 42 20 34 20 3a  |QUB 6 : EQUB 4 :|
00019220  20 45 51 55 42 20 34 20  3a 20 45 51 55 42 20 31  | EQUB 4 : EQUB 1|
00019230  32 35 20 3a 20 45 51 55  42 20 34 20 3a 20 45 51  |25 : EQUB 4 : EQ|
00019240  55 42 20 34 20 3a 20 45  51 55 42 20 35 30 0d 7d  |UB 4 : EQUB 50.}|
00019250  8c 0b 20 45 51 55 42 20  33 0d 7d 96 53 20 45 51  |.. EQUB 3.}.S EQ|
00019260  55 42 20 30 20 3a 20 45  51 55 42 20 30 20 3a 20  |UB 0 : EQUB 0 : |
00019270  45 51 55 42 20 32 20 3a  20 45 51 55 42 20 33 20  |EQUB 2 : EQUB 3 |
00019280  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
00019290  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
000192a0  42 20 30 20 3a 20 45 51  55 42 20 30 0d 7d a0 35  |B 0 : EQUB 0.}.5|
000192b0  20 45 51 55 44 20 26 31  46 45 31 34 35 31 20 3a  | EQUD &1FE1451 :|
000192c0  20 45 51 55 44 20 26 31  46 45 31 34 38 35 20 3a  | EQUD &1FE1485 :|
000192d0  20 45 51 55 44 20 30 20  3a 20 45 51 55 44 20 36  | EQUD 0 : EQUD 6|
000192e0  34 0d 7d aa 0d 20 45 51  55 42 20 31 32 37 0d 7d  |4.}.. EQUB 127.}|
000192f0  b4 0b 20 45 51 55 42 20  30 0d 7d be 34 20 45 51  |.. EQUB 0.}.4 EQ|
00019300  55 42 20 35 36 3a 45 51  55 42 20 35 36 3a 45 51  |UB 56:EQUB 56:EQ|
*
00019320  55 42 20 35 36 3a 45 51  55 42 20 35 36 0d 7d c8  |UB 56:EQUB 56.}.|
00019330  3c 20 45 51 55 42 20 36  33 3a 45 51 55 42 20 36  |< EQUB 63:EQUB 6|
00019340  33 3a 45 51 55 42 20 36  33 3a 45 51 55 42 20 36  |3:EQUB 63:EQUB 6|
*
00019360  33 3a 45 51 55 42 20 36  33 0d 7d d2 54 20 45 51  |3:EQUB 63.}.T EQ|
00019370  55 42 20 35 36 3a 45 51  55 42 20 35 36 3a 45 51  |UB 56:EQUB 56:EQ|
*
000193b0  55 42 20 35 36 3a 45 51  55 42 20 35 36 0d 7d dc  |UB 56:EQUB 56.}.|
000193c0  34 20 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |4 EQUB 59:EQUB 5|
000193d0  39 3a 45 51 55 42 20 35  39 3a 45 51 55 42 20 35  |9:EQUB 59:EQUB 5|
*
000193f0  39 0d 7d e6 20 20 45 51  55 42 20 33 3a 45 51 55  |9.}.  EQUB 3:EQU|
00019400  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00019410  33 0d 7d f0 3c 20 45 51  55 42 20 33 31 3a 45 51  |3.}.< EQUB 31:EQ|
00019420  55 42 20 33 31 3a 45 51  55 42 20 33 31 3a 45 51  |UB 31:EQUB 31:EQ|
*
00019440  55 42 20 33 31 3a 45 51  55 42 20 33 31 0d 7d fa  |UB 31:EQUB 31.}.|
00019450  3c 20 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |< EQUB 24:EQUB 2|
00019460  34 3a 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |4:EQUB 24:EQUB 2|
*
00019480  34 3a 45 51 55 42 20 32  34 0d 7e 04 34 20 45 51  |4:EQUB 24.~.4 EQ|
00019490  55 42 20 32 37 3a 45 51  55 42 20 32 37 3a 45 51  |UB 27:EQUB 27:EQ|
*
000194b0  55 42 20 32 37 3a 45 51  55 42 20 32 37 0d 7e 0e  |UB 27:EQUB 27.~.|
000194c0  44 20 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |D EQUB 24:EQUB 2|
000194d0  34 3a 45 51 55 42 20 32  34 3a 45 51 55 42 20 32  |4:EQUB 24:EQUB 2|
*
00019500  34 0d 7e 18 0c 20 45 51  55 42 20 33 32 0d 7e 22  |4.~.. EQUB 32.~"|
00019510  0b 20 45 51 55 42 20 30  0d 7e 2c 34 20 45 51 55  |. EQUB 0.~,4 EQU|
00019520  42 20 35 36 3a 45 51 55  42 20 35 36 3a 45 51 55  |B 56:EQUB 56:EQU|
*
00019540  42 20 35 36 3a 45 51 55  42 20 35 36 0d 7e 36 3c  |B 56:EQUB 56.~6<|
00019550  20 45 51 55 42 20 35 39  3a 45 51 55 42 20 35 39  | EQUB 59:EQUB 59|
00019560  3a 45 51 55 42 20 35 39  3a 45 51 55 42 20 35 39  |:EQUB 59:EQUB 59|
*
00019580  3a 45 51 55 42 20 35 39  0d 7e 40 54 20 45 51 55  |:EQUB 59.~@T EQU|
00019590  42 20 35 36 3a 45 51 55  42 20 35 36 3a 45 51 55  |B 56:EQUB 56:EQU|
*
000195d0  42 20 35 36 3a 45 51 55  42 20 35 36 0d 7e 4a 34  |B 56:EQUB 56.~J4|
000195e0  20 45 51 55 42 20 36 33  3a 45 51 55 42 20 36 33  | EQUB 63:EQUB 63|
000195f0  3a 45 51 55 42 20 36 33  3a 45 51 55 42 20 36 33  |:EQUB 63:EQUB 63|
*
00019610  0d 7e 54 20 20 45 51 55  42 20 37 3a 45 51 55 42  |.~T  EQUB 7:EQUB|
00019620  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
00019630  0d 7e 5e 3c 20 45 51 55  42 20 32 37 3a 45 51 55  |.~^< EQUB 27:EQU|
00019640  42 20 32 37 3a 45 51 55  42 20 32 37 3a 45 51 55  |B 27:EQUB 27:EQU|
*
00019660  42 20 32 37 3a 45 51 55  42 20 32 37 0d 7e 68 3c  |B 27:EQUB 27.~h<|
00019670  20 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  | EQUB 24:EQUB 24|
00019680  3a 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  |:EQUB 24:EQUB 24|
*
000196a0  3a 45 51 55 42 20 32 34  0d 7e 72 34 20 45 51 55  |:EQUB 24.~r4 EQU|
000196b0  42 20 33 31 3a 45 51 55  42 20 33 31 3a 45 51 55  |B 31:EQUB 31:EQU|
*
000196d0  42 20 33 31 3a 45 51 55  42 20 33 31 0d 7e 7c 44  |B 31:EQUB 31.~|D|
000196e0  20 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  | EQUB 24:EQUB 24|
000196f0  3a 45 51 55 42 20 32 34  3a 45 51 55 42 20 32 34  |:EQUB 24:EQUB 24|
*
00019720  0d 7e 86 13 20 45 51 55  42 20 33 32 3a 45 51 55  |.~.. EQUB 32:EQU|
00019730  42 20 30 0d 7e 90 04 0d  7e 9a 05 20 0d 7e a4 1b  |B 0.~...~.. .~..|
00019740  20 3b 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 20 20  | ; **********   |
00019750  57 41 56 45 20 32 30 0d  7e ae 0b 20 45 51 55 42  |WAVE 20.~.. EQUB|
00019760  20 35 0d 7e b8 55 20 45  51 55 42 20 34 20 3a 20  | 5.~.U EQUB 4 : |
00019770  45 51 55 42 20 36 20 3a  20 45 51 55 42 20 36 20  |EQUB 6 : EQUB 6 |
00019780  3a 20 45 51 55 42 20 35  20 3a 20 45 51 55 42 20  |: EQUB 5 : EQUB |
00019790  34 20 3a 20 45 51 55 42  20 31 32 39 20 3a 20 45  |4 : EQUB 129 : E|
000197a0  51 55 42 20 38 20 3a 20  45 51 55 42 20 38 20 3a  |QUB 8 : EQUB 8 :|
000197b0  45 51 55 42 20 35 30 0d  7e c2 0b 20 45 51 55 42  |EQUB 50.~.. EQUB|
000197c0  20 33 0d 7e cc 53 20 45  51 55 42 20 35 20 3a 20  | 3.~.S EQUB 5 : |
000197d0  45 51 55 42 20 31 20 3a  20 45 51 55 42 20 36 20  |EQUB 1 : EQUB 6 |
000197e0  3a 20 45 51 55 42 20 30  20 3a 20 45 51 55 42 20  |: EQUB 0 : EQUB |
000197f0  30 20 3a 20 45 51 55 42  20 30 20 3a 20 45 51 55  |0 : EQUB 0 : EQU|
00019800  42 20 30 20 3a 20 45 51  55 42 20 30 20 3a 20 45  |B 0 : EQUB 0 : E|
00019810  51 55 42 20 30 0d 7e d6  34 20 45 51 55 44 20 26  |QUB 0.~.4 EQUD &|
00019820  31 46 44 38 30 30 38 20  3a 20 45 51 55 44 20 26  |1FD8008 : EQUD &|
00019830  31 46 44 38 30 30 38 20  3a 20 45 51 55 44 20 30  |1FD8008 : EQUD 0|
00019840  20 3a 20 45 51 55 44 20  30 0d 7e e0 0d 20 45 51  | : EQUD 0.~.. EQ|
00019850  55 42 20 31 33 31 0d 7e  ea 0b 20 45 51 55 42 20  |UB 131.~.. EQUB |
00019860  30 0d 7e f4 4c 20 45 51  55 42 20 32 34 3a 45 51  |0.~.L EQUB 24:EQ|
00019870  55 42 20 32 34 3a 45 51  55 42 20 32 34 3a 45 51  |UB 24:EQUB 24:EQ|
*
000198a0  55 42 20 32 34 3a 45 51  55 42 20 32 34 0d 7e fe  |UB 24:EQUB 24.~.|
000198b0  1c 20 45 51 55 42 20 32  37 3a 45 51 55 42 20 32  |. EQUB 27:EQUB 2|
000198c0  37 3a 45 51 55 42 20 32  36 0d 7f 08 4a 20 45 51  |7:EQUB 26...J EQ|
000198d0  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
000198e0  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
000198f0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00019900  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00019910  42 20 33 0d 7f 12 35 20  45 51 55 42 20 33 3a 45  |B 3...5 EQUB 3:E|
00019920  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00019930  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00019940  33 3a 45 51 55 42 20 33  0d 7f 1c 3c 20 45 51 55  |3:EQUB 3...< EQU|
00019950  42 20 32 36 3a 45 51 55  42 20 32 37 3a 45 51 55  |B 26:EQUB 27:EQU|
00019960  42 20 32 37 3a 45 51 55  42 20 32 34 3a 45 51 55  |B 27:EQUB 24:EQU|
00019970  42 20 33 31 3a 45 51 55  42 20 33 31 3a 45 51 55  |B 31:EQUB 31:EQU|
00019980  42 20 33 30 0d 7f 26 4a  20 45 51 55 42 20 37 3a  |B 30..&J EQUB 7:|
00019990  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
000199a0  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
000199b0  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
000199c0  3a 45 51 55 42 20 37 3a  45 51 55 42 20 37 0d 7f  |:EQUB 7:EQUB 7..|
000199d0  30 35 20 45 51 55 42 20  37 3a 45 51 55 42 20 37  |05 EQUB 7:EQUB 7|
000199e0  3a 45 51 55 42 20 37 3a  45 51 55 42 20 37 3a 45  |:EQUB 7:EQUB 7:E|
000199f0  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00019a00  42 20 37 0d 7f 3a 3c 20  45 51 55 42 20 33 30 3a  |B 7..:< EQUB 30:|
00019a10  45 51 55 42 20 33 31 3a  45 51 55 42 20 33 31 3a  |EQUB 31:EQUB 31:|
00019a20  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 37 3a  |EQUB 24:EQUB 27:|
00019a30  45 51 55 42 20 32 37 3a  45 51 55 42 20 32 36 0d  |EQUB 27:EQUB 26.|
00019a40  7f 44 4a 20 45 51 55 42  20 33 3a 45 51 55 42 20  |.DJ EQUB 3:EQUB |
00019a50  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00019a60  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00019a70  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00019a80  20 33 3a 45 51 55 42 20  33 0d 7f 4e 35 20 45 51  | 3:EQUB 3..N5 EQ|
00019a90  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00019aa0  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
00019ab0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 0d 7f  |:EQUB 3:EQUB 3..|
00019ac0  58 3c 20 45 51 55 42 20  32 36 3a 45 51 55 42 20  |X< EQUB 26:EQUB |
00019ad0  32 37 3a 45 51 55 42 20  32 37 3a 45 51 55 42 20  |27:EQUB 27:EQUB |
00019ae0  32 34 3a 45 51 55 42 20  33 31 3a 45 51 55 42 20  |24:EQUB 31:EQUB |
00019af0  33 31 3a 45 51 55 42 20  33 30 0d 7f 62 4a 20 45  |31:EQUB 30..bJ E|
00019b00  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
00019b10  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
00019b20  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |7:EQUB 7:EQUB 7:|
00019b30  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00019b40  55 42 20 37 0d 7f 6c 35  20 45 51 55 42 20 37 3a  |UB 7..l5 EQUB 7:|
00019b50  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
00019b60  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
00019b70  20 37 3a 45 51 55 42 20  37 0d 7f 76 3c 20 45 51  | 7:EQUB 7..v< EQ|
00019b80  55 42 20 33 30 3a 45 51  55 42 20 33 31 3a 45 51  |UB 30:EQUB 31:EQ|
00019b90  55 42 20 33 31 3a 45 51  55 42 20 32 34 3a 45 51  |UB 31:EQUB 24:EQ|
00019ba0  55 42 20 32 37 3a 45 51  55 42 20 32 37 3a 45 51  |UB 27:EQUB 27:EQ|
00019bb0  55 42 20 32 36 0d 7f 80  4a 20 45 51 55 42 20 33  |UB 26...J EQUB 3|
00019bc0  3a 45 51 55 42 20 33 3a  45 51 55 42 20 33 3a 45  |:EQUB 3:EQUB 3:E|
00019bd0  51 55 42 20 33 3a 45 51  55 42 20 33 3a 45 51 55  |QUB 3:EQUB 3:EQU|
00019be0  42 20 33 3a 45 51 55 42  20 33 3a 45 51 55 42 20  |B 3:EQUB 3:EQUB |
00019bf0  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 0d  |3:EQUB 3:EQUB 3.|
00019c00  7f 8a 4a 20 45 51 55 42  20 33 3a 45 51 55 42 20  |..J EQUB 3:EQUB |
00019c10  33 3a 45 51 55 42 20 33  3a 45 51 55 42 20 33 3a  |3:EQUB 3:EQUB 3:|
00019c20  45 51 55 42 20 33 3a 45  51 55 42 20 33 3a 45 51  |EQUB 3:EQUB 3:EQ|
00019c30  55 42 20 33 3a 45 51 55  42 20 33 3a 45 51 55 42  |UB 3:EQUB 3:EQUB|
00019c40  20 33 3a 45 51 55 42 20  33 0d 7f 94 13 20 45 51  | 3:EQUB 3.... EQ|
00019c50  55 42 20 33 32 3a 45 51  55 42 20 30 0d 7f 9e 04  |UB 32:EQUB 0....|
00019c60  0d 7f a8 04 0d 7f b2 1b  20 3b 20 2a 2a 2a 2a 2a  |........ ; *****|
00019c70  2a 2a 2a 2a 2a 20 20 20  57 41 56 45 20 32 31 0d  |*****   WAVE 21.|
00019c80  7f bc 0b 20 45 51 55 42  20 36 0d 7f c6 57 20 45  |... EQUB 6...W E|
00019c90  51 55 42 20 34 20 3a 20  45 51 55 42 20 31 32 20  |QUB 4 : EQUB 12 |
00019ca0  3a 20 45 51 55 42 20 36  20 3a 20 45 51 55 42 20  |: EQUB 6 : EQUB |
00019cb0  36 20 3a 20 45 51 55 42  20 35 20 3a 20 45 51 55  |6 : EQUB 5 : EQU|
00019cc0  42 20 31 35 37 20 3a 20  45 51 55 42 20 39 20 3a  |B 157 : EQUB 9 :|
00019cd0  20 45 51 55 42 20 39 20  3a 20 45 51 55 42 20 35  | EQUB 9 : EQUB 5|
00019ce0  30 0d 7f d0 0b 20 45 51  55 42 20 38 0d 7f da 53  |0.... EQUB 8...S|
00019cf0  20 45 51 55 42 20 30 20  3a 20 45 51 55 42 20 32  | EQUB 0 : EQUB 2|
00019d00  20 3a 20 45 51 55 42 20  33 20 3a 20 45 51 55 42  | : EQUB 3 : EQUB|
00019d10  20 34 20 3a 20 45 51 55  42 20 35 20 3a 20 45 51  | 4 : EQUB 5 : EQ|
00019d20  55 42 20 36 20 3a 20 45  51 55 42 20 37 20 3a 20  |UB 6 : EQUB 7 : |
00019d30  45 51 55 42 20 38 20 3a  20 45 51 55 42 20 39 0d  |EQUB 8 : EQUB 9.|
00019d40  7f e4 34 20 45 51 55 44  20 26 31 46 45 31 34 43  |..4 EQUD &1FE14C|
00019d50  37 20 3a 20 45 51 55 44  20 26 31 46 45 31 34 43  |7 : EQUD &1FE14C|
00019d60  37 20 3a 20 45 51 55 44  20 30 20 3a 20 45 51 55  |7 : EQUD 0 : EQU|
00019d70  44 20 30 0d 7f ee 0d 20  45 51 55 42 20 31 35 39  |D 0.... EQUB 159|
00019d80  0d 7f f8 0b 20 45 51 55  42 20 30 0d 80 02 14 20  |.... EQUB 0.... |
00019d90  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 0d  |EQUB 56:EQUB 56.|
00019da0  80 0c 4c 20 45 51 55 42  20 35 36 3a 45 51 55 42  |..L EQUB 56:EQUB|
00019db0  20 35 36 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 56:EQUB 56:EQUB|
*
00019de0  20 35 36 3a 45 51 55 42  20 35 36 0d 80 16 4c 20  | 56:EQUB 56...L |
00019df0  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 3a  |EQUB 56:EQUB 56:|
*
00019e30  45 51 55 42 20 35 36 0d  80 20 2c 20 45 51 55 42  |EQUB 56.. , EQUB|
00019e40  20 35 39 3a 45 51 55 42  20 35 39 3a 45 51 55 42  | 59:EQUB 59:EQUB|
*
00019e60  20 35 39 0d 80 2a 2c 20  45 51 55 42 20 32 34 3a  | 59..*, EQUB 24:|
00019e70  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
00019e80  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 0d  |EQUB 24:EQUB 24.|
00019e90  80 34 4c 20 45 51 55 42  20 32 34 3a 45 51 55 42  |.4L EQUB 24:EQUB|
00019ea0  20 32 34 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 24:EQUB 24:EQUB|
*
00019ed0  20 32 34 3a 45 51 55 42  20 32 34 0d 80 3e 4c 20  | 24:EQUB 24..>L |
00019ee0  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
00019f20  45 51 55 42 20 32 34 0d  80 48 20 20 45 51 55 42  |EQUB 24..H  EQUB|
00019f30  20 32 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 2:EQUB 3:EQUB 3|
00019f40  3a 45 51 55 42 20 33 0d  80 52 5c 20 45 51 55 42  |:EQUB 3..R\ EQUB|
00019f50  20 35 36 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 56:EQUB 56:EQUB|
*
00019fa0  20 35 36 0d 80 5c 2c 20  45 51 55 42 20 35 39 3a  | 56..\, EQUB 59:|
00019fb0  45 51 55 42 20 35 39 3a  45 51 55 42 20 35 39 3a  |EQUB 59:EQUB 59:|
00019fc0  45 51 55 42 20 35 39 3a  45 51 55 42 20 35 39 0d  |EQUB 59:EQUB 59.|
00019fd0  80 66 34 20 45 51 55 42  20 32 34 3a 45 51 55 42  |.f4 EQUB 24:EQUB|
00019fe0  20 32 34 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 24:EQUB 24:EQUB|
*
0001a000  20 32 34 0d 80 70 34 20  45 51 55 42 20 32 34 3a  | 24..p4 EQUB 24:|
0001a010  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
0001a030  45 51 55 42 20 32 34 0d  80 7a 20 20 45 51 55 42  |EQUB 24..z  EQUB|
0001a040  20 33 3a 45 51 55 42 20  33 3a 45 51 55 42 20 33  | 3:EQUB 3:EQUB 3|
0001a050  3a 45 51 55 42 20 33 0d  80 84 4c 20 45 51 55 42  |:EQUB 3...L EQUB|
0001a060  20 35 36 3a 45 51 55 42  20 35 36 3a 45 51 55 42  | 56:EQUB 56:EQUB|
*
0001a0a0  20 35 36 0d 80 8e 44 20  45 51 55 42 20 35 36 3a  | 56...D EQUB 56:|
0001a0b0  45 51 55 42 20 35 36 3a  45 51 55 42 20 35 36 3a  |EQUB 56:EQUB 56:|
*
0001a0e0  45 51 55 42 20 35 36 0d  80 98 2c 20 45 51 55 42  |EQUB 56..., EQUB|
0001a0f0  20 35 39 3a 45 51 55 42  20 35 39 3a 45 51 55 42  | 59:EQUB 59:EQUB|
*
0001a110  20 35 39 0d 80 a2 3c 20  45 51 55 42 20 32 34 3a  | 59...< EQUB 24:|
0001a120  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
0001a140  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 0d  |EQUB 24:EQUB 24.|
0001a150  80 ac 44 20 45 51 55 42  20 32 34 3a 45 51 55 42  |..D EQUB 24:EQUB|
0001a160  20 32 34 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 24:EQUB 24:EQUB|
*
0001a190  20 32 34 0d 80 b6 44 20  45 51 55 42 20 32 34 3a  | 24...D EQUB 24:|
0001a1a0  45 51 55 42 20 32 34 3a  45 51 55 42 20 32 34 3a  |EQUB 24:EQUB 24:|
*
0001a1d0  45 51 55 42 20 32 34 0d  80 c0 2c 20 45 51 55 42  |EQUB 24..., EQUB|
0001a1e0  20 32 34 3a 45 51 55 42  20 32 34 3a 45 51 55 42  | 24:EQUB 24:EQUB|
*
0001a200  20 32 34 0d 80 ca 4a 20  45 51 55 42 20 37 3a 45  | 24...J EQUB 7:E|
0001a210  51 55 42 20 37 3a 45 51  55 42 20 37 3a 45 51 55  |QUB 7:EQUB 7:EQU|
0001a220  42 20 37 3a 45 51 55 42  20 37 3a 45 51 55 42 20  |B 7:EQUB 7:EQUB |
0001a230  37 3a 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |7:EQUB 7:EQUB 7:|
0001a240  45 51 55 42 20 37 3a 45  51 55 42 20 37 0d 80 d4  |EQUB 7:EQUB 7...|
0001a250  4a 20 45 51 55 42 20 37  3a 45 51 55 42 20 37 3a  |J EQUB 7:EQUB 7:|
0001a260  45 51 55 42 20 37 3a 45  51 55 42 20 37 3a 45 51  |EQUB 7:EQUB 7:EQ|
0001a270  55 42 20 37 3a 45 51 55  42 20 37 3a 45 51 55 42  |UB 7:EQUB 7:EQUB|
0001a280  20 37 3a 45 51 55 42 20  37 3a 45 51 55 42 20 37  | 7:EQUB 7:EQUB 7|
0001a290  3a 45 51 55 42 20 37 0d  80 de 12 20 45 51 55 42  |:EQUB 7.... EQUB|
0001a2a0  20 37 3a 45 51 55 42 20  37 0d 80 e8 13 20 45 51  | 7:EQUB 7.... EQ|
0001a2b0  55 42 20 33 32 3a 45 51  55 42 20 30 0d 80 f2 04  |UB 32:EQUB 0....|
0001a2c0  0d 80 fc 0a 20 41 4c 49  47 4e 0d 81 06 04 0d 81  |.... ALIGN......|
0001a2d0  10 04 0d 81 1a 04 0d 81  24 1c 20 2e 64 69 72 65  |........$. .dire|
0001a2e0  63 74 69 76 65 5f 73 70  72 69 74 65 73 5f 64 61  |ctive_sprites_da|
0001a2f0  74 61 0d 81 2e 2d 20 4c  44 52 42 20 52 33 2c 5b  |ta...- LDRB R3,[|
0001a300  52 32 2c 52 31 30 5d 20  20 20 20 20 3b 20 20 20  |R2,R10]     ;   |
0001a310  20 73 70 72 69 74 65 73  20 6e 75 6d 62 65 72 0d  | sprites number.|
0001a320  81 38 35 20 4d 4f 56 20  52 34 2c 23 39 36 20 20  |.85 MOV R4,#96  |
0001a330  20 20 20 20 20 20 20 20  20 3b 20 20 20 20 6f 66  |         ;    of|
0001a340  66 73 65 74 20 66 6f 72  20 65 61 63 68 20 73 70  |fset for each sp|
0001a350  72 69 74 65 0d 81 42 11  20 4d 55 4c 20 52 33 2c  |rite..B. MUL R3,|
0001a360  52 34 2c 52 33 0d 81 4c  18 20 41 44 52 20 52 32  |R4,R3..L. ADR R2|
0001a370  2c 73 70 72 69 74 65 73  5f 64 61 74 61 0d 81 56  |,sprites_data..V|
0001a380  11 20 41 44 44 20 52 32  2c 52 32 2c 52 33 0d 81  |. ADD R2,R2,R3..|
0001a390  60 10 20 4d 4f 56 20 52  31 35 2c 52 31 34 0d 81  |`. MOV R15,R14..|
0001a3a0  6a 05 20 0d 81 74 2c 20  3b 20 20 dc 20 73 74 6f  |j. ..t, ;  . sto|
0001a3b0  72 65 64 20 68 65 72 65  20 66 6f 72 20 50 41 54  |red here for PAT|
0001a3c0  54 45 52 4e 53 20 61 6e  64 20 53 48 49 50 53 0d  |TERNS and SHIPS.|
0001a3d0  81 7e 05 20 0d 81 88 13  20 3b 20 20 20 53 72 69  |.~. .... ;   Sri|
0001a3e0  74 65 20 44 61 74 61 0d  81 92 12 20 2e 73 70 72  |te Data.... .spr|
0001a3f0  69 74 65 73 5f 64 61 74  61 0d 81 9c 22 20 45 51  |ites_data..." EQ|
0001a400  55 44 20 26 33 33 33 33  33 30 30 30 3a 45 51 55  |UD &33333000:EQU|
0001a410  44 20 26 30 30 30 33 33  33 33 33 0d 81 a6 22 20  |D &00033333..." |
0001a420  45 51 55 44 20 26 32 30  30 30 33 33 33 30 3a 45  |EQUD &20003330:E|
0001a430  51 55 44 20 26 30 33 33  33 30 30 30 32 0d 81 b0  |QUD &03330002...|
0001a440  22 20 45 51 55 44 20 26  30 36 36 36 30 32 33 33  |" EQUD &06660233|
0001a450  3a 45 51 55 44 20 26 33  33 32 30 36 36 36 30 0d  |:EQUD &33206660.|
0001a460  81 ba 22 20 45 51 55 44  20 26 30 36 36 30 30 32  |.." EQUD &066002|
0001a470  33 33 3a 45 51 55 44 20  26 33 33 32 30 30 36 36  |33:EQUD &3320066|
0001a480  30 0d 81 c4 22 20 45 51  55 44 20 26 30 30 30 30  |0..." EQUD &0000|
0001a490  32 33 33 33 3a 45 51 55  44 20 26 33 33 33 32 30  |2333:EQUD &33320|
0001a4a0  30 30 30 0d 81 ce 22 20  45 51 55 44 20 26 33 32  |000..." EQUD &32|
0001a4b0  32 33 33 33 33 30 3a 45  51 55 44 20 26 30 33 33  |233330:EQUD &033|
0001a4c0  33 33 32 32 33 0d 81 d8  22 20 45 51 55 44 20 26  |33223..." EQUD &|
0001a4d0  33 33 32 32 33 30 30 30  3a 45 51 55 44 20 26 30  |33223000:EQUD &0|
0001a4e0  30 30 33 32 32 33 33 0d  81 e2 22 20 45 51 55 44  |0032233..." EQUD|
0001a4f0  20 26 33 33 33 32 32 33  30 30 3a 45 51 55 44 20  | &33322300:EQUD |
0001a500  26 30 30 33 32 32 33 33  30 0d 81 ec 22 20 45 51  |&00322330..." EQ|
0001a510  55 44 20 26 30 30 33 33  32 32 33 30 3a 45 51 55  |UD &00332230:EQU|
0001a520  44 20 26 30 33 32 32 33  33 30 30 0d 81 f6 22 20  |D &03223300..." |
0001a530  45 51 55 44 20 26 30 30  30 30 33 32 32 33 3a 45  |EQUD &00003223:E|
0001a540  51 55 44 20 26 33 32 32  33 30 30 30 30 0d 82 00  |QUD &32230000...|
0001a550  22 20 45 51 55 44 20 26  30 30 30 30 33 32 32 33  |" EQUD &00003223|
0001a560  3a 45 51 55 44 20 26 33  32 32 33 30 30 30 30 0d  |:EQUD &32230000.|
0001a570  82 0a 22 20 45 51 55 44  20 26 30 30 30 33 33 33  |.." EQUD &000333|
0001a580  33 30 3a 45 51 55 44 20  26 30 33 33 33 33 30 30  |30:EQUD &0333300|
0001a590  30 0d 82 14 05 20 0d 82  1e 22 20 45 51 55 44 20  |0.... ..." EQUD |
0001a5a0  26 30 30 35 35 35 30 30  30 3a 45 51 55 44 20 26  |&00555000:EQUD &|
0001a5b0  30 30 30 35 35 35 30 30  0d 82 28 22 20 45 51 55  |00055500..(" EQU|
0001a5c0  44 20 26 30 35 35 31 35  35 30 30 3a 45 51 55 44  |D &05515500:EQUD|
0001a5d0  20 26 30 30 35 35 31 35  35 30 0d 82 32 22 20 45  | &00551550..2" E|
0001a5e0  51 55 44 20 26 35 35 31  31 31 35 35 30 3a 45 51  |QUD &55111550:EQ|
0001a5f0  55 44 20 26 30 35 35 31  31 31 35 35 0d 82 3c 22  |UD &05511155..<"|
0001a600  20 45 51 55 44 20 26 31  31 33 33 33 31 35 35 3a  | EQUD &11333155:|
0001a610  45 51 55 44 20 26 35 35  31 33 33 33 31 31 0d 82  |EQUD &55133311..|
0001a620  46 22 20 45 51 55 44 20  26 33 33 33 31 31 35 35  |F" EQUD &3331155|
0001a630  30 3a 45 51 55 44 20 26  30 35 35 31 31 33 33 33  |0:EQUD &05511333|
0001a640  0d 82 50 22 20 45 51 55  44 20 26 33 31 31 31 35  |..P" EQUD &31115|
0001a650  35 30 30 3a 45 51 55 44  20 26 30 30 35 35 31 31  |500:EQUD &005511|
0001a660  31 33 0d 82 5a 22 20 45  51 55 44 20 26 35 35 31  |13..Z" EQUD &551|
0001a670  31 35 35 30 30 3a 45 51  55 44 20 26 30 30 35 35  |15500:EQUD &0055|
0001a680  31 31 35 35 0d 82 64 22  20 45 51 55 44 20 26 30  |1155..d" EQUD &0|
0001a690  30 35 35 31 35 35 30 3a  45 51 55 44 20 26 30 35  |0551550:EQUD &05|
0001a6a0  35 31 35 35 30 30 0d 82  6e 22 20 45 51 55 44 20  |515500..n" EQUD |
0001a6b0  26 30 30 30 35 31 31 35  35 3a 45 51 55 44 20 26  |&00051155:EQUD &|
0001a6c0  35 35 31 31 35 30 30 30  0d 82 78 22 20 45 51 55  |55115000..x" EQU|
0001a6d0  44 20 26 30 30 30 35 31  35 35 30 3a 45 51 55 44  |D &00051550:EQUD|
0001a6e0  20 26 30 35 35 31 35 30  30 30 0d 82 82 22 20 45  | &05515000..." E|
0001a6f0  51 55 44 20 26 30 30 30  35 35 35 30 30 3a 45 51  |QUD &00055500:EQ|
0001a700  55 44 20 26 30 30 35 35  35 30 30 30 0d 82 8c 22  |UD &00555000..."|
0001a710  20 45 51 55 44 20 26 30  30 30 30 35 30 30 30 3a  | EQUD &00005000:|
0001a720  45 51 55 44 20 26 30 30  30 35 30 30 30 30 0d 82  |EQUD &00050000..|
0001a730  96 05 20 0d 82 a0 22 20  45 51 55 44 20 26 30 30  |.. ..." EQUD &00|
0001a740  34 34 34 30 30 30 3a 45  51 55 44 20 26 30 30 30  |444000:EQUD &000|
0001a750  34 34 34 30 30 0d 82 aa  22 20 45 51 55 44 20 26  |44400..." EQUD &|
0001a760  30 34 36 36 36 34 34 30  3a 45 51 55 44 20 26 30  |04666440:EQUD &0|
0001a770  34 34 36 36 36 34 30 0d  82 b4 22 20 45 51 55 44  |4466640..." EQUD|
0001a780  20 26 30 34 36 37 37 36  36 34 3a 45 51 55 44 20  | &04677664:EQUD |
0001a790  26 34 36 36 37 37 36 34  30 0d 82 be 22 20 45 51  |&46677640..." EQ|
0001a7a0  55 44 20 26 34 36 37 37  37 36 36 34 3a 45 51 55  |UD &46777664:EQU|
0001a7b0  44 20 26 34 36 36 37 37  37 36 34 0d 82 c8 22 20  |D &46677764..." |
0001a7c0  45 51 55 44 20 26 34 36  36 36 36 34 34 30 3a 45  |EQUD &46666440:E|
0001a7d0  51 55 44 20 26 30 34 34  36 36 36 36 34 0d 82 d2  |QUD &04466664...|
0001a7e0  22 20 45 51 55 44 20 26  32 32 32 36 34 30 30 30  |" EQUD &22264000|
0001a7f0  3a 45 51 55 44 20 26 30  30 30 34 36 32 32 32 0d  |:EQUD &00046222.|
0001a800  82 dc 22 20 45 51 55 44  20 26 32 32 32 36 34 30  |.." EQUD &222640|
0001a810  30 30 3a 45 51 55 44 20  26 30 30 30 34 36 32 32  |00:EQUD &0004622|
0001a820  32 0d 82 e6 22 20 45 51  55 44 20 26 34 36 32 32  |2..." EQUD &4622|
0001a830  36 34 34 30 3a 45 51 55  44 20 26 30 34 34 36 32  |6440:EQUD &04462|
0001a840  32 36 34 0d 82 f0 22 20  45 51 55 44 20 26 34 36  |264..." EQUD &46|
0001a850  32 32 32 36 36 34 3a 45  51 55 44 20 26 34 36 36  |222664:EQUD &466|
0001a860  32 32 32 36 34 0d 82 fa  22 20 45 51 55 44 20 26  |22264..." EQUD &|
0001a870  30 34 36 32 32 36 36 34  3a 45 51 55 44 20 26 34  |04622664:EQUD &4|
0001a880  36 36 32 32 36 34 30 0d  83 04 22 20 45 51 55 44  |6622640..." EQUD|
0001a890  20 26 30 34 36 36 36 34  34 30 3a 45 51 55 44 20  | &04666440:EQUD |
0001a8a0  26 30 34 34 36 36 36 34  30 0d 83 0e 22 20 45 51  |&04466640..." EQ|
0001a8b0  55 44 20 26 30 30 34 34  34 30 30 30 3a 45 51 55  |UD &00444000:EQU|
0001a8c0  44 20 26 30 30 30 34 34  34 30 30 0d 83 18 05 20  |D &00044400.... |
0001a8d0  0d 83 22 22 20 45 51 55  44 20 26 30 30 35 35 35  |.."" EQUD &00555|
0001a8e0  35 35 35 3a 45 51 55 44  20 26 35 35 35 35 35 35  |555:EQUD &555555|
0001a8f0  30 30 0d 83 2c 22 20 45  51 55 44 20 26 35 35 31  |00..," EQUD &551|
0001a900  31 31 35 35 30 3a 45 51  55 44 20 26 30 35 35 31  |11550:EQUD &0551|
0001a910  31 31 35 35 0d 83 36 22  20 45 51 55 44 20 26 31  |1155..6" EQUD &1|
0001a920  37 37 31 35 30 30 30 3a  45 51 55 44 20 26 30 30  |7715000:EQUD &00|
0001a930  30 35 31 37 37 31 0d 83  40 22 20 45 51 55 44 20  |051771..@" EQUD |
0001a940  26 31 31 31 35 30 30 35  30 3a 45 51 55 44 20 26  |&11150050:EQUD &|
0001a950  30 35 30 30 35 31 31 31  0d 83 4a 22 20 45 51 55  |05005111..J" EQU|
0001a960  44 20 26 35 35 35 30 31  35 30 30 3a 45 51 55 44  |D &55501500:EQUD|
0001a970  20 26 30 30 35 31 30 35  35 35 0d 83 54 22 20 45  | &00510555..T" E|
0001a980  51 55 44 20 26 30 30 30  35 31 35 35 30 3a 45 51  |QUD &00051550:EQ|
0001a990  55 44 20 26 30 35 35 31  35 30 30 30 0d 83 5e 22  |UD &05515000..^"|
0001a9a0  20 45 51 55 44 20 26 30  30 35 31 31 31 31 35 3a  | EQUD &00511115:|
0001a9b0  45 51 55 44 20 26 35 31  31 31 31 35 30 30 0d 83  |EQUD &51111500..|
0001a9c0  68 22 20 45 51 55 44 20  26 30 30 35 35 35 35 35  |h" EQUD &0055555|
0001a9d0  30 3a 45 51 55 44 20 26  30 35 35 35 35 35 30 30  |0:EQUD &05555500|
0001a9e0  0d 83 72 22 20 45 51 55  44 20 26 30 30 30 30 30  |..r" EQUD &00000|
0001a9f0  30 31 35 3a 45 51 55 44  20 26 35 31 30 30 30 30  |015:EQUD &510000|
0001aa00  30 30 0d 83 7c 22 20 45  51 55 44 20 26 30 30 30  |00..|" EQUD &000|
0001aa10  30 30 31 35 35 3a 45 51  55 44 20 26 35 35 31 30  |00155:EQUD &5510|
0001aa20  30 30 30 30 0d 83 86 22  20 45 51 55 44 20 26 30  |0000..." EQUD &0|
0001aa30  30 31 31 31 35 35 30 3a  45 51 55 44 20 26 30 35  |0111550:EQUD &05|
0001aa40  35 31 31 31 30 30 0d 83  90 22 20 45 51 55 44 20  |511100..." EQUD |
0001aa50  26 30 30 35 35 35 35 30  30 3a 45 51 55 44 20 26  |&00555500:EQUD &|
0001aa60  30 30 35 35 35 35 30 30  0d 83 9a 05 20 0d 83 a4  |00555500.... ...|
0001aa70  22 20 45 51 55 44 20 26  30 30 30 30 30 32 32 30  |" EQUD &00000220|
0001aa80  3a 45 51 55 44 20 26 30  32 32 30 30 30 30 30 0d  |:EQUD &02200000.|
0001aa90  83 ae 22 20 45 51 55 44  20 26 30 32 32 30 30 30  |.." EQUD &022000|
0001aaa0  33 32 3a 45 51 55 44 20  26 32 33 30 30 30 32 32  |32:EQUD &2300022|
0001aab0  30 0d 83 b8 22 20 45 51  55 44 20 26 30 30 32 32  |0..." EQUD &0022|
0001aac0  32 32 33 32 3a 45 51 55  44 20 26 32 33 32 32 32  |2232:EQUD &23222|
0001aad0  32 30 30 0d 83 c2 22 20  45 51 55 44 20 26 30 30  |200..." EQUD &00|
0001aae0  30 32 31 31 32 30 3a 45  51 55 44 20 26 30 32 31  |021120:EQUD &021|
0001aaf0  31 32 30 30 30 0d 83 cc  22 20 45 51 55 44 20 26  |12000..." EQUD &|
0001ab00  30 30 30 32 31 31 32 30  3a 45 51 55 44 20 26 30  |00021120:EQUD &0|
0001ab10  32 31 31 32 30 30 30 0d  83 d6 22 20 45 51 55 44  |2112000..." EQUD|
0001ab20  20 26 30 32 32 32 32 32  30 30 3a 45 51 55 44 20  | &02222200:EQUD |
0001ab30  26 30 30 32 32 32 32 32  30 0d 83 e0 22 20 45 51  |&00222220..." EQ|
0001ab40  55 44 20 26 32 30 30 30  30 30 30 30 3a 45 51 55  |UD &20000000:EQU|
0001ab50  44 20 26 30 30 30 30 30  30 30 32 0d 83 ea 22 20  |D &00000002..." |
0001ab60  45 51 55 44 20 26 30 30  32 32 32 30 30 30 3a 45  |EQUD &00222000:E|
0001ab70  51 55 44 20 26 30 30 30  32 32 32 30 30 0d 83 f4  |QUD &00022200...|
0001ab80  22 20 45 51 55 44 20 26  33 33 33 33 33 32 32 30  |" EQUD &33333220|
0001ab90  3a 45 51 55 44 20 26 30  32 32 33 33 33 33 33 0d  |:EQUD &02233333.|
0001aba0  83 fe 22 20 45 51 55 44  20 26 32 32 32 32 32 32  |.." EQUD &222222|
0001abb0  32 32 3a 45 51 55 44 20  26 32 32 32 32 32 32 32  |22:EQUD &2222222|
0001abc0  32 0d 84 08 22 20 45 51  55 44 20 26 30 30 30 30  |2..." EQUD &0000|
0001abd0  30 30 32 32 3a 45 51 55  44 20 26 32 32 30 30 30  |0022:EQUD &22000|
0001abe0  30 30 30 0d 84 12 22 20  45 51 55 44 20 26 30 30  |000..." EQUD &00|
0001abf0  30 32 32 32 32 30 3a 45  51 55 44 20 26 30 32 32  |022220:EQUD &022|
0001ac00  32 32 30 30 30 0d 84 1c  04 0d 84 26 22 20 45 51  |22000......&" EQ|
0001ac10  55 44 20 26 30 36 30 30  30 36 30 30 3a 45 51 55  |UD &06000600:EQU|
0001ac20  44 20 26 30 30 36 30 30  30 36 30 0d 84 30 22 20  |D &00600060..0" |
0001ac30  45 51 55 44 20 26 36 36  36 30 36 32 36 30 3a 45  |EQUD &66606260:E|
0001ac40  51 55 44 20 26 30 36 32  36 30 36 36 36 0d 84 3a  |QUD &06260666..:|
0001ac50  22 20 45 51 55 44 20 26  36 36 36 36 32 32 32 36  |" EQUD &66662226|
0001ac60  3a 45 51 55 44 20 26 36  32 32 32 36 36 36 36 0d  |:EQUD &62226666.|
0001ac70  84 44 22 20 45 51 55 44  20 26 36 33 36 36 32 32  |.D" EQUD &636622|
0001ac80  32 36 3a 45 51 55 44 20  26 36 32 32 32 36 36 33  |26:EQUD &6222663|
0001ac90  36 0d 84 4e 22 20 45 51  55 44 20 26 33 33 33 36  |6..N" EQUD &3336|
0001aca0  32 36 36 34 3a 45 51 55  44 20 26 34 36 36 32 36  |2664:EQUD &46626|
0001acb0  33 33 33 0d 84 58 22 20  45 51 55 44 20 26 33 33  |333..X" EQUD &33|
0001acc0  36 36 36 36 34 34 3a 45  51 55 44 20 26 34 34 36  |666644:EQUD &446|
0001acd0  36 36 36 33 33 0d 84 62  22 20 45 51 55 44 20 26  |66633..b" EQUD &|
0001ace0  36 36 36 36 30 30 34 36  3a 45 51 55 44 20 26 36  |66660046:EQUD &6|
0001acf0  34 30 30 36 36 36 36 0d  84 6c 22 20 45 51 55 44  |4006666..l" EQUD|
0001ad00  20 26 36 36 30 30 30 30  34 36 3a 45 51 55 44 20  | &66000046:EQUD |
0001ad10  26 36 34 30 30 30 30 36  36 0d 84 76 22 20 45 51  |&64000066..v" EQ|
0001ad20  55 44 20 26 30 30 30 30  30 34 36 30 3a 45 51 55  |UD &00000460:EQU|
0001ad30  44 20 26 30 36 34 30 30  30 30 30 0d 84 80 22 20  |D &06400000..." |
0001ad40  45 51 55 44 20 26 30 36  36 34 34 36 36 30 3a 45  |EQUD &06644660:E|
0001ad50  51 55 44 20 26 30 36 36  34 34 36 36 30 0d 84 8a  |QUD &06644660...|
0001ad60  22 20 45 51 55 44 20 26  30 36 36 36 36 36 30 30  |" EQUD &06666600|
0001ad70  3a 45 51 55 44 20 26 30  30 36 36 36 36 36 30 0d  |:EQUD &00666660.|
0001ad80  84 94 22 20 45 51 55 44  20 26 30 30 36 36 30 30  |.." EQUD &006600|
0001ad90  30 30 3a 45 51 55 44 20  26 30 30 30 30 36 36 30  |00:EQUD &0000660|
0001ada0  30 0d 84 9e 05 20 0d 84  a8 22 20 45 51 55 44 20  |0.... ..." EQUD |
0001adb0  26 30 30 31 31 31 30 31  31 3a 45 51 55 44 20 26  |&00111011:EQUD &|
0001adc0  31 31 30 31 31 31 30 30  0d 84 b2 22 20 45 51 55  |11011100..." EQU|
0001add0  44 20 26 30 31 30 31 30  31 30 30 3a 45 51 55 44  |D &01010100:EQUD|
0001ade0  20 26 30 30 31 30 31 30  31 30 0d 84 bc 22 20 45  | &00101010..." E|
0001adf0  51 55 44 20 26 31 30 31  30 31 31 31 31 3a 45 51  |QUD &10101111:EQ|
0001ae00  55 44 20 26 31 31 31 31  30 31 30 31 0d 84 c6 22  |UD &11110101..."|
0001ae10  20 45 51 55 44 20 26 31  31 30 36 36 36 36 31 3a  | EQUD &11066661:|
0001ae20  45 51 55 44 20 26 31 36  36 36 36 30 31 31 0d 84  |EQUD &16666011..|
0001ae30  d0 22 20 45 51 55 44 20  26 31 31 36 36 36 31 31  |." EQUD &1166611|
0001ae40  30 3a 45 51 55 44 20 26  30 31 31 36 36 36 31 31  |0:EQUD &01166611|
0001ae50  0d 84 da 22 20 45 51 55  44 20 26 30 30 31 31 31  |..." EQUD &00111|
0001ae60  30 31 31 3a 45 51 55 44  20 26 31 31 30 31 31 31  |011:EQUD &110111|
0001ae70  30 30 0d 84 e4 22 20 45  51 55 44 20 26 30 30 30  |00..." EQUD &000|
0001ae80  35 30 31 31 30 3a 45 51  55 44 20 26 30 31 31 30  |50110:EQUD &0110|
0001ae90  35 30 30 30 0d 84 ee 22  20 45 51 55 44 20 26 30  |5000..." EQUD &0|
0001aea0  35 35 30 31 31 30 31 3a  45 51 55 44 20 26 31 30  |5501101:EQUD &10|
0001aeb0  31 31 30 35 35 30 0d 84  f8 22 20 45 51 55 44 20  |110550..." EQUD |
0001aec0  26 30 30 31 31 31 30 30  31 3a 45 51 55 44 20 26  |&00111001:EQUD &|
0001aed0  31 30 30 31 31 31 30 30  0d 85 02 22 20 45 51 55  |10011100..." EQU|
0001aee0  44 20 26 30 30 30 30 30  31 31 30 3a 45 51 55 44  |D &00000110:EQUD|
0001aef0  20 26 30 31 31 30 30 30  30 30 0d 85 0c 22 20 45  | &01100000..." E|
0001af00  51 55 44 20 26 30 35 31  31 31 31 30 30 3a 45 51  |QUD &05111100:EQ|
0001af10  55 44 20 26 30 30 31 31  31 31 35 30 0d 85 16 22  |UD &00111150..."|
0001af20  20 45 51 55 44 20 26 30  30 30 31 31 30 30 30 3a  | EQUD &00011000:|
0001af30  45 51 55 44 20 26 30 30  30 31 31 30 30 30 0d 85  |EQUD &00011000..|
0001af40  20 05 20 0d 85 2a 22 20  45 51 55 44 20 26 30 30  | . ..*" EQUD &00|
0001af50  30 30 30 30 32 30 3a 45  51 55 44 20 26 30 32 30  |000020:EQUD &020|
0001af60  30 30 30 30 30 0d 85 34  22 20 45 51 55 44 20 26  |00000..4" EQUD &|
0001af70  30 30 30 30 32 32 31 32  3a 45 51 55 44 20 26 32  |00002212:EQUD &2|
0001af80  31 32 32 30 30 30 30 0d  85 3e 22 20 45 51 55 44  |1220000..>" EQUD|
0001af90  20 26 30 30 30 32 32 31  31 32 3a 45 51 55 44 20  | &00022112:EQUD |
0001afa0  26 32 31 31 32 32 30 30  30 0d 85 48 22 20 45 51  |&21122000..H" EQ|
0001afb0  55 44 20 26 30 30 32 32  31 31 31 32 3a 45 51 55  |UD &00221112:EQU|
0001afc0  44 20 26 32 31 31 31 32  32 30 30 0d 85 52 22 20  |D &21112200..R" |
0001afd0  45 51 55 44 20 26 30 30  32 32 31 31 32 30 3a 45  |EQUD &00221120:E|
0001afe0  51 55 44 20 26 30 32 31  31 32 32 30 30 0d 85 5c  |QUD &02112200..\|
0001aff0  22 20 45 51 55 44 20 26  30 32 32 32 31 32 30 30  |" EQUD &02221200|
0001b000  3a 45 51 55 44 20 26 30  30 32 31 32 32 32 30 0d  |:EQUD &00212220.|
0001b010  85 66 22 20 45 51 55 44  20 26 32 32 33 33 32 32  |.f" EQUD &223322|
0001b020  32 30 3a 45 51 55 44 20  26 30 32 32 32 33 33 32  |20:EQUD &0222332|
0001b030  32 0d 85 70 22 20 45 51  55 44 20 26 33 33 33 33  |2..p" EQUD &3333|
0001b040  33 33 32 32 3a 45 51 55  44 20 26 32 32 33 33 33  |3322:EQUD &22333|
0001b050  33 33 33 0d 85 7a 22 20  45 51 55 44 20 26 32 32  |333..z" EQUD &22|
0001b060  32 32 32 32 32 30 3a 45  51 55 44 20 26 30 32 32  |222220:EQUD &022|
0001b070  32 32 32 32 32 0d 85 84  22 20 45 51 55 44 20 26  |22222..." EQUD &|
0001b080  30 30 30 30 32 32 32 30  3a 45 51 55 44 20 26 30  |00002220:EQUD &0|
0001b090  32 32 32 30 30 30 30 0d  85 8e 22 20 45 51 55 44  |2220000..." EQUD|
0001b0a0  20 26 30 30 30 30 30 32  32 30 3a 45 51 55 44 20  | &00000220:EQUD |
0001b0b0  26 30 32 32 30 30 30 30  30 0d 85 98 22 20 45 51  |&02200000..." EQ|
0001b0c0  55 44 20 26 30 30 30 32  32 32 30 30 3a 45 51 55  |UD &00022200:EQU|
0001b0d0  44 20 26 30 30 32 32 32  30 30 30 0d 85 a2 05 20  |D &00222000.... |
0001b0e0  0d 85 ac 22 20 45 51 55  44 20 26 37 37 37 31 36  |..." EQUD &77716|
0001b0f0  36 30 30 3a 45 51 55 44  20 26 30 30 36 36 31 37  |600:EQUD &006617|
0001b100  37 37 0d 85 b6 22 20 45  51 55 44 20 26 37 37 31  |77..." EQUD &771|
0001b110  31 31 36 36 30 3a 45 51  55 44 20 26 30 36 36 31  |11660:EQUD &0661|
0001b120  31 31 37 37 0d 85 c0 22  20 45 51 55 44 20 26 37  |1177..." EQUD &7|
0001b130  31 31 31 31 31 36 36 3a  45 51 55 44 20 26 36 36  |1111166:EQUD &66|
0001b140  31 31 31 31 31 37 0d 85  ca 22 20 45 51 55 44 20  |111117..." EQUD |
0001b150  26 37 37 31 31 31 30 34  36 3a 45 51 55 44 20 26  |&77111046:EQUD &|
0001b160  36 34 30 31 31 31 37 37  0d 85 d4 22 20 45 51 55  |64011177..." EQU|
0001b170  44 20 26 37 37 31 30 30  34 36 36 3a 45 51 55 44  |D &77100466:EQUD|
0001b180  20 26 36 36 34 30 30 31  37 37 0d 85 de 22 20 45  | &66400177..." E|
0001b190  51 55 44 20 26 30 30 30  30 34 36 36 36 3a 45 51  |QUD &00004666:EQ|
0001b1a0  55 44 20 26 36 36 36 34  30 30 30 30 0d 85 e8 22  |UD &66640000..."|
0001b1b0  20 45 51 55 44 20 26 30  30 34 34 36 36 36 30 3a  | EQUD &00446660:|
0001b1c0  45 51 55 44 20 26 30 36  36 36 34 34 30 30 0d 85  |EQUD &06664400..|
0001b1d0  f2 22 20 45 51 55 44 20  26 30 30 34 36 36 36 30  |." EQUD &0046660|
0001b1e0  30 3a 45 51 55 44 20 26  30 30 36 36 36 34 30 30  |0:EQUD &00666400|
0001b1f0  0d 85 fc 22 20 45 51 55  44 20 26 30 30 34 34 36  |..." EQUD &00446|
0001b200  36 30 30 3a 45 51 55 44  20 26 30 30 36 36 34 34  |600:EQUD &006644|
0001b210  30 30 0d 86 06 22 20 45  51 55 44 20 26 30 30 30  |00..." EQUD &000|
0001b220  34 36 36 30 30 3a 45 51  55 44 20 26 30 30 36 36  |46600:EQUD &0066|
0001b230  34 30 30 30 0d 86 10 22  20 45 51 55 44 20 26 30  |4000..." EQUD &0|
0001b240  30 30 34 36 36 30 30 3a  45 51 55 44 20 26 30 30  |0046600:EQUD &00|
0001b250  36 36 34 30 30 30 0d 86  1a 22 20 45 51 55 44 20  |664000..." EQUD |
0001b260  26 30 30 36 36 36 30 30  30 3a 45 51 55 44 20 26  |&00666000:EQUD &|
0001b270  30 30 30 36 36 36 30 30  0d 86 24 05 20 0d 86 2e  |00066600..$. ...|
0001b280  22 20 45 51 55 44 20 26  30 30 30 35 35 35 35 30  |" EQUD &00055550|
0001b290  3a 45 51 55 44 20 26 30  35 35 35 35 30 30 30 0d  |:EQUD &05555000.|
0001b2a0  86 38 22 20 45 51 55 44  20 26 30 35 35 31 31 31  |.8" EQUD &055111|
0001b2b0  31 35 3a 45 51 55 44 20  26 35 31 31 31 31 35 35  |15:EQUD &5111155|
0001b2c0  30 0d 86 42 22 20 45 51  55 44 20 26 35 31 31 37  |0..B" EQUD &5117|
0001b2d0  37 37 31 35 3a 45 51 55  44 20 26 35 31 37 37 37  |7715:EQUD &51777|
0001b2e0  31 31 35 0d 86 4c 22 20  45 51 55 44 20 26 35 31  |115..L" EQUD &51|
0001b2f0  37 37 37 37 31 35 3a 45  51 55 44 20 26 35 31 37  |777715:EQUD &517|
0001b300  37 37 37 31 35 0d 86 56  22 20 45 51 55 44 20 26  |77715..V" EQUD &|
0001b310  35 31 31 37 31 31 31 35  3a 45 51 55 44 20 26 35  |51171115:EQUD &5|
0001b320  31 31 31 37 31 31 35 0d  86 60 22 20 45 51 55 44  |1117115..`" EQUD|
0001b330  20 26 30 35 31 31 31 35  35 30 3a 45 51 55 44 20  | &05111550:EQUD |
0001b340  26 30 35 35 31 31 31 35  30 0d 86 6a 22 20 45 51  |&05511150..j" EQ|
0001b350  55 44 20 26 30 30 35 35  35 30 30 35 3a 45 51 55  |UD &00555005:EQU|
0001b360  44 20 26 35 30 30 35 35  35 30 30 0d 86 74 22 20  |D &50055500..t" |
0001b370  45 51 55 44 20 26 30 30  30 30 30 35 35 35 3a 45  |EQUD &00000555:E|
0001b380  51 55 44 20 26 35 35 35  30 30 30 30 30 0d 86 7e  |QUD &55500000..~|
0001b390  22 20 45 51 55 44 20 26  30 30 35 35 30 35 31 35  |" EQUD &00550515|
0001b3a0  3a 45 51 55 44 20 26 35  31 35 30 35 35 30 30 0d  |:EQUD &51505500.|
0001b3b0  86 88 22 20 45 51 55 44  20 26 30 35 31 31 35 31  |.." EQUD &051151|
0001b3c0  31 35 3a 45 51 55 44 20  26 35 31 31 35 31 31 35  |15:EQUD &5115115|
0001b3d0  30 0d 86 92 22 20 45 51  55 44 20 26 30 30 35 35  |0..." EQUD &0055|
0001b3e0  31 35 35 30 3a 45 51 55  44 20 26 30 35 31 31 35  |1550:EQUD &05115|
0001b3f0  35 30 30 0d 86 9c 22 20  45 51 55 44 20 26 30 30  |500..." EQUD &00|
0001b400  30 30 35 35 30 30 3a 45  51 55 44 20 26 30 30 35  |005500:EQUD &005|
0001b410  35 30 30 30 30 0d 86 a6  05 20 0d 86 b0 04 0d 86  |50000.... ......|
0001b420  ba 04 0d 86 c4 04 0d 86  ce 43 20 3b 20 73 63 72  |.........C ; scr|
0001b430  65 65 6e 20 6d 65 6d 6f  72 79 20 69 73 20 73 61  |een memory is sa|
0001b440  76 65 64 20 68 65 72 65  20 73 6f 20 74 68 65 79  |ved here so they|
0001b450  20 63 61 6e 20 62 65 20  77 69 74 68 65 72 65 64  | can be withered|
0001b460  20 6f 6e 20 26 20 6f 66  66 0d 86 d8 04 0d 86 e2  | on & off.......|
0001b470  0c 20 2e 6d 65 6d 6f 72  79 0d 86 ec 04 0d 86 f6  |. .memory.......|
0001b480  05 20 0d 87 00 06 20 5d  0d 87 0a 04 0d 87 14 32  |. .... ].......2|
0001b490  20 f4 20 54 77 6f 20 73  63 72 65 65 6e 73 20 65  | . Two screens e|
0001b4a0  61 63 68 20 26 41 30 30  30 20 20 28 34 30 4b 29  |ach &A000  (40K)|
0001b4b0  20 61 72 65 20 73 65 74  20 61 73 69 64 65 0d 87  | are set aside..|
0001b4c0  1e 11 20 50 25 3d 50 25  2b 26 31 34 30 30 30 0d  |.. P%=P%+&14000.|
0001b4d0  87 28 06 20 ed 0d 87 32  06 20 e1 0d ff           |.(. ...2. ...|
0001b4dd