Time Pilot Sound Board

; Sound processor for the arcade game "Time Pilot"
; 1982 by Centuri/Konami

; TO DO
; - Decompose music script into command text

; Z80 CPU and 2 AY-3-8910 Sound Chips
; The sound board receives commands from the game board through
; port A of one sound chip. The upper nibble of Port B is connected
; to an oscillator and drives sound timing.
;
; Sound board oscillator is 14.318MHz. The CPU and sound chips use
; the same division ... 14.31818 / 8 = 1.789772.
;
; The timer on the upper four bits of Port B reaches 0 at the main
; clock divided by 10240 (1024*10).
;
; Processing loop = 1.789772MHz / 10240 = 174.782421875Hz (0.005721399 sec per tick)

SoundCommands: 
;
; First number is command number
; Second is filter-capacitor configuration
;
; 00   Write 0 to voice
; 01 0 Coin 
; 02 0 Plane fire
; 03 0 1910 bomb
; 04 1 Missile launch
; 05 0 UFO shot
; 06 0 Missile (continuous)
; 07 0 User Fire
; 08 1 Enemy Explosion Component (thud)
; 09 1 Enemy Explosion Component (white-noise)
; 0A 0 Tracker or Bomb Explosion
; 0B 0 Squad Appears
; 0C 1 1st boss (blimp)
; 0D 1 2nd boss (jet)
; 0E 1 3rd boss (helicopter)
; 0F 1 4th boss (super jet)
; 10 1 5th boss (mother ship)
; 11 1 User explosion component
; 12 1 User explosion component
; 13 2 User explosion component
; 14 2 User explosion component
; 15 1 User explosion component
; 16 0 Pickup parachute
; 17 1 Free man
; 18 0 Time jump 1
; 19 0 Time jump 2
; 1A 0 Initialize song 2
; 1B 1 Initialize song 1
; 1C 0 Initialize music D1
; 1D 0 Initialize music D2
; 1E 0 Initialize music D3
; 1F 0 Initialize music D4
; 20 0 Initialize music D5

MemoryMap: 
; Memory usage starts at 3000
; 3000-0B Command Buffer (see COMMAND BUFFER)
; 300C,0D Current cap-filter settings
; 300E Voice number = command index

; Music descriptors (see MUSIC PROCESSING)
; 300F,10,11,12,13,14,15,16,17,18
; 3019,1A,1B,1C,1D,1E,1F,00,01,02
; 3023,24,25,26,27,28,29,2A,2B,2C
; 302D,2E,2F,30,31,32,33,34,35,36
; 3037,38,39,3A,3B,3C,3D,3E,3F,40

; Individual sound routines use some memory above 3040

Start: 
; Reset/Startup
0000: 21 00 30        LD      HL,$3000            ; Command buffer
0003: 06 00           LD      B,$00               ; Fill value
0005: C3 9B 00        JP      $009B               ; Continue initialization

AYChipIO: 
; Read CHIP0 register. A=register, return in A
0008: 32 00 50        LD      (AY0_ADDR),A        ; Store the register number
000B: 3A 00 40        LD      A,(AY0_DATA)        ; Read the value
000E: C9              RET                         ; Done
000F: FF              RST     $38                 ; Filler to align RST routines

; Read CHIP1 register. A=register, retun in A
0010: 32 00 70        LD      (AY1_ADDR),A        ; Store the register number
0013: 3A 00 60        LD      A,(AY1_DATA)        ; Read the value
0016: C9              RET                         ; Done
0017: FF              RST     $38                 ; Filler to align RST routines

; Write CHIP0 register. A=register, C=value
0018: 32 00 50        LD      (AY0_ADDR),A        ; Store register number
001B: 79              LD      A,C                 ; Write ...
001C: 32 00 40        LD      (AY0_DATA),A        ; ... value
001F: C9              RET                         ; Done

; Write CHIP1 register. A=register, C=value
0020: 32 00 70        LD      (AY1_ADDR),A        ; Store register number
0023: 79              LD      A,C                 ; Write ...
0024: 32 00 60        LD      (AY1_DATA),A        ; ... value
0027: C9              RET                         ; Done

; Vector to desired function indexed by A
; HL = address table
; A  = index
0028: 87              ADD     A,A                 ; *2
0029: 85              ADD     A,L                 ; Add to offset
002A: 6F              LD      L,A                 ; Set LSB of pointer
002B: 7C              LD      A,H                 ; Carry into ...
002C: CE 00           ADC     A,$00               ; ... MSB of pointer
002E: 67              LD      H,A                 ; Set MSB of pointer
002F: 7E              LD      A,(HL)              ; Get LSB of address
0030: 23              INC     HL                  ; Next in table
0031: 66              LD      H,(HL)              ; Get MSB of address
0032: 6F              LD      L,A                 ; Get LSB of address
0033: E9              JP      (HL)                ; Jump to routine
0034: FF              RST     $38                 ; Filler ...
0035: FF              RST     $38                 ; ...
0036: FF              RST     $38                 ; ...
0037: FF              RST     $38                 ; ...

InterruptService: 
; # #### Interrupt Service Routine #######################################
; Called when the main CPU signals a new sound command.
; Switch banks and call the command fetch routine
0038: D9              EXX                         ; Switch banks B-L
0039: 08              EX      AF,AF'              ; Switch AF banks
003A: CD 40 00        CALL    CommandBuffer       ; Make the call
003D: 08              EX      AF,AF'              ; Set the AF banks back
003E: D9              EXX                         ; Set the B-L banks back
003F: C9              RET                         ; Done

CommandBuffer: 
; # #### COMMAND BUFFER########################################
;
; COMMAND BUFFER
; Command Buffer is kept at 3000 and contains 6 2-byte entries.
; The first byte is the command. A zero marks an available slot.
; Commands are read from Port A of Chip 0. 
;
; Command 0 clears the command buffer.
;
; If a command is already running, it is restarted.
;
; The command numbers are used as priorities if the buffer is full. The
; higher the command number, the higher the priority. If all commands
; in the buffer are of higher priority than the new command then the
; new command is ignored. Otherwise the new command replaces the lowest
; priority command in the buffer.
;
; If the upper bit is set, the command is removed from the buffer. Command 
; values above 0x20 are ignored. 
;
; The second byte indicates initialization status. 0=not initialized, 1=
; initialized. Note that entries are removed by setting them to 0000 which
; forces an initialization of command 00 which turns the voice off.
;
; # ###########################################################

; Fetch a command from the port and place it in the
; command buffer.
0040: 3E 0E           LD      A,$0E               ; Port A
0042: CF              RST     $08                 ; Read CHIP0 Port A
0043: B7              OR      A                   ; Set flags
0044: 28 2F           JR      Z,$0075             ; If 0, clear 3000-300B and out
0046: 57              LD      D,A                 ; Hang on to command
0047: E6 7F           AND     $7F                 ; Mask off upper bit
0049: FE 21           CP      $21                 ; Compare command to 21
004B: D0              RET     NC                  ; Invalid command (above 20)
004C: CB 7A           BIT     7,D                 ; Upper bit set?
004E: 20 42           JR      NZ,$0092            ; Yes -- remove the command from the buffer
0050: CD 80 00        CALL    $0080               ; Is the command already in the buffer?
0053: 20 1C           JR      NZ,$0071            ; Found ... restart it.
0055: CD 80 00        CALL    $0080               ; Find 0 in the buffer
0058: 20 16           JR      NZ,$0070            ; Found a slot -- store command in buffer
; Find the lowest numbered command
005A: 21 00 30        LD      HL,$3000            ; Buffer
005D: 1E 06           LD      E,$06               ; 6 entries to check
005F: 7E              LD      A,(HL)              ; Get command value
0060: 1D              DEC     E                   ; Count down
0061: 28 08           JR      Z,$006B             ; All checked --
0063: 2C              INC     L                   ; Bump to next ...
0064: 2C              INC     L                   ; ... entry
0065: BE              CP      (HL)                ; Compare current lowest with next entry
0066: 38 F8           JR      C,$0060             ; Next entry is higher -- keep our lowest
0068: C3 5F 00        JP      $005F               ; New lowest value
;
006B: BA              CP      D                   ; Is the new command even lower?
006C: D0              RET     NC                  ; Yes -- ignore the command
; Find entry, replace type with D and clear second byte
006D: CD 80 00        CALL    $0080               ; Find entry
0070: 72              LD      (HL),D              ; Store D
0071: 2C              INC     L                   ; Second byte in entry
0072: 36 00           LD      (HL),$00            ; Flag command needs initializing
0074: C9              RET                         ; Done

; Clear buffer
0075: 21 00 30        LD      HL,$3000            ; Clear 13 bytes ...
0078: 06 0C           LD      B,$0C               ; ... starting at ...
007A: AF              XOR     A                   ; ...
007B: 77              LD      (HL),A              ; ...
007C: 2C              INC     L                   ; ...
007D: 10 FC           DJNZ    $007B               ; ... 3000
007F: C9              RET                         ; Done

; Find entry A in buffer. Return 7-index and HL if found.
; If not found, return 0
0080: 21 00 30        LD      HL,$3000            ; Buffer area.
0083: 06 06           LD      B,$06               ; 6 entries to check.
0085: 0E 07           LD      C,$07               ; Subtraction value.
0087: BE              CP      (HL)                ; Found?
0088: 28 05           JR      Z,$008F             ; Yes -- done
008A: 2C              INC     L                   ; Bump to ...
008B: 2C              INC     L                   ; ... next entry
008C: 10 F9           DJNZ    $0087               ; Check all entries
008E: 41              LD      B,C                 ; Not found -- use 7 as index
008F: 79              LD      A,C                 ; Substract found ...
0090: 90              SUB     B                   ; ... index from 7
0091: C9              RET                         ; Return index

; Remove entry from buffer
0092: CD 80 00        CALL    $0080               ; Find entry
0095: C8              RET     Z                   ; Not found -- out
0096: AF              XOR     A                   ; Fast 0
0097: 77              LD      (HL),A              ; Clear ...
0098: 2C              INC     L                   ; ... entry ...
0099: 77              LD      (HL),A              ; ... from buffer.
009A: C9              RET                         ; Out

; Initialization continued.
; Clear RAM
009B: 70              LD      (HL),B              ; Store 0
009C: 23              INC     HL                  ; Bump pointer
009D: 7C              LD      A,H                 ; Clear until ...
009E: FE 34           CP      $34                 ; ... done
00A0: 20 F9           JR      NZ,$009B            ; Loop back
00A2: F9              LD      SP,HL               ; Set SP to 3400
00A3: ED 56           IM      1                   ; Set interrupt MODE 1 (always vector to 0038)
00A5: 21 00 80        LD      HL,$8000            ; All cap filters ...
00A8: 22 0C 30        LD      ($300C),HL          ; ... (current value) ...
00AB: 77              LD      (HL),A              ; ... disconnected from channels

; Initialize sound chips
00AC: 0E 00           LD      C,$00               ; Value 0
00AE: 16 06           LD      D,$06               ; 6 voices
00B0: 7A              LD      A,D                 ; Pass to function
00B1: CD 9C 01        CALL    $019C               ; Amplitude to silence.
00B4: 15              DEC     D                   ; ...
00B5: 20 F9           JR      NZ,$00B0            ; Silence all voices
00B7: 0E 38           LD      C,$38               ; Both IO Ports IN, Tones only on ...
00B9: 3E 07           LD      A,$07               ; ... all voices.
00BB: DF              RST     $18                 ; Configure AY38910 chip 0
00BC: 3E 07           LD      A,$07               ; "Enable" register again
00BE: E7              RST     $20                 ; Configure AY38910 chip 1

MainLoop: 
; == MAIN PROCESSING LOOP ==
00BF: FB              EI                          ; Enable interrupts
00C0: 3E 0F           LD      A,$0F               ; Port B
00C2: CF              RST     $08                 ; Read CHIP0 Port B
00C3: E6 F0           AND     $F0                 ; Timer value hit?
00C5: 20 F9           JR      NZ,$00C0            ; No -- keep waiting

; Process Entry Index 1
00C7: F3              DI                          ; Disable interrupts
00C8: 3E 01           LD      A,$01               ; Voice index 1
00CA: 32 0E 30        LD      ($300E),A           ; Hang onto it
00CD: 3A 01 30        LD      A,($3001)           ; First voice, 2nd byte
00D0: B7              OR      A                   ; Set flags about 2nd byte
00D1: 3A 00 30        LD      A,($3000)           ; Get commmand (no flags)
00D4: 28 06           JR      Z,$00DC             ; 2nd byte == 0
00D6: CD 7F 01        CALL    $017F               ; Continue command
00D9: C3 DF 00        JP      $00DF               ; Skip over
00DC: CD 69 01        CALL    $0169               ; Initialize command
00DF: FB              EI                          ; Enable interrupts
00E0: 00              NOP                         ; Pause
00E1: 00              NOP                         ; Pause

; Process Entry Index 2 (see Index 1 above)
00E2: F3              DI                          ;
00E3: 3E 02           LD      A,$02               ;
00E5: 32 0E 30        LD      ($300E),A           ;
00E8: 3A 03 30        LD      A,($3003)           ;
00EB: B7              OR      A                   ;
00EC: 3A 02 30        LD      A,($3002)           ;
00EF: 28 06           JR      Z,$00F7             ;
00F1: CD 7F 01        CALL    $017F               ;
00F4: C3 FA 00        JP      $00FA               ;
00F7: CD 69 01        CALL    $0169               ;
00FA: FB              EI                          ;
00FB: 00              NOP                         ;
00FC: 00              NOP                         ;

; Process Entry Index 3 (see Index 1 above)
00FD: F3              DI                          ;
00FE: 3E 03           LD      A,$03               ;
0100: 32 0E 30        LD      ($300E),A           ;
0103: 3A 05 30        LD      A,($3005)           ;
0106: B7              OR      A                   ;
0107: 3A 04 30        LD      A,($3004)           ;
010A: 28 06           JR      Z,$0112             ;
010C: CD 7F 01        CALL    $017F               ;
010F: C3 15 01        JP      $0115               ;
0112: CD 69 01        CALL    $0169               ;
0115: FB              EI                          ;
0116: 00              NOP                         ;
0117: 00              NOP                         ;

; Process Entry Index 4 (see Index 1 above)
0118: F3              DI                          ;
0119: 3E 04           LD      A,$04               ;
011B: 32 0E 30        LD      ($300E),A           ;
011E: 3A 07 30        LD      A,($3007)           ;
0121: B7              OR      A                   ;
0122: 3A 06 30        LD      A,($3006)           ;
0125: 28 06           JR      Z,$012D             ;
0127: CD 7F 01        CALL    $017F               ;
012A: C3 30 01        JP      $0130               ;
012D: CD 69 01        CALL    $0169               ;
0130: FB              EI                          ;
0131: 00              NOP                         ;
0132: 00              NOP                         ;

; Process Entry Index 5 (see Index 1 above)
0133: F3              DI                          ;
0134: 3E 05           LD      A,$05               ;
0136: 32 0E 30        LD      ($300E),A           ;
0139: 3A 09 30        LD      A,($3009)           ;
013C: B7              OR      A                   ;
013D: 3A 08 30        LD      A,($3008)           ;
0140: 28 06           JR      Z,$0148             ;
0142: CD 7F 01        CALL    $017F               ;
0145: C3 4B 01        JP      $014B               ;
0148: CD 69 01        CALL    $0169               ;
014B: FB              EI                          ;
014C: 00              NOP                         ;
014D: 00              NOP                         ;

; Process Entry Index 6 (see Index 1 above)
014E: F3              DI                          ;
014F: 3E 06           LD      A,$06               ;
0151: 32 0E 30        LD      ($300E),A           ;
0154: 3A 0B 30        LD      A,($300B)           ;
0157: B7              OR      A                   ;
0158: 3A 0A 30        LD      A,($300A)           ;
015B: 28 06           JR      Z,$0163             ;
015D: CD 7F 01        CALL    $017F               ;
0160: C3 BF 00        JP      MainLoop            ;
0163: CD 69 01        CALL    $0169               ;

; Commands return 0 if still playing or else to remove from buffer

0166: C3 BF 00        JP      MainLoop            ; Continue main loop

; Initialize command and flag it initialized
; Vector to command. If return is 0, set second byte to 1. If return
; is not 0, remove the command from the buffer.
0169: 21 92 0A        LD      HL,$0A92            ; Jump table
016C: EF              RST     $28                 ; Vector to address A in table HL
016D: B7              OR      A                   ; Test return
016E: 20 17           JR      NZ,$0187            ; Remove the command
0170: 21 01 30        LD      HL,$3001            ; Command buffer (2nd bytes)
0173: 3A 0E 30        LD      A,($300E)           ; Index of command
0176: 3D              DEC     A                   ; Convert to ...
0177: 87              ADD     A,A                 ; ... pointer
0178: 5F              LD      E,A                 ; LSB
0179: 16 00           LD      D,$00               ; MSB=0
017B: 19              ADD     HL,DE               ; Pointer to command 2nd byte
017C: 36 01           LD      (HL),$01            ; Set second byte to 1
017E: C9              RET                         ; Done

; Continue processing a command
; Vector to command. If return is 0, leave buffer alone. If return
; is not 0, remove command from buffer.
; The vector table for "continues" does have an entry for "0" even
; though the initialization does (it clears the voice). I would have
; pointed the "continue" for command 0 at a return-zero for consistency. Then
; no special check would be needed here.
017F: B7              OR      A                   ; If slot is empty ...
0180: C8              RET     Z                   ; ... do nothing
0181: 21 D4 0A        LD      HL,$0AD4            ; Jump table
0184: EF              RST     $28                 ; Vector to address A in table HL
0185: B7              OR      A                   ; Test return
0186: C8              RET     Z                   ; If zero -- out
0187: 21 00 30        LD      HL,$3000            ; Command buffer
018A: 3A 0E 30        LD      A,($300E)           ; Index of command
018D: 3D              DEC     A                   ; Convert to ...
018E: 87              ADD     A,A                 ; ... pointer
018F: 4F              LD      C,A                 ; LSB
0190: 06 00           LD      B,$00               ; MSB=0
0192: 09              ADD     HL,BC               ; Pointer to command
0193: 70              LD      (HL),B              ; Clear command type
0194: 2C              INC     L                   ; Next byte
0195: 70              LD      (HL),B              ; Clear second byte
0196: C9              RET                         ; Done

Command00: 
; Initialize Routine Vector 00 (Silence the channel)

0197: 0E 00           LD      C,$00               ; Silence the voice
;  Write to amplitude control of given voice
0199: 3A 0E 30        LD      A,($300E)           ; Get voice number
019C: FE 04           CP      $04                 ; Voice 4-6
019E: 30 05           JR      NC,$01A5            ; Yes -- do chip 1
01A0: C6 07           ADD     A,$07               ; Add 7 (8,9, or 10)
01A2: C3 18 00        JP      $0018               ; Write C to reg A chip 0
01A5: C6 04           ADD     A,$04               ; Add 4 (8,9, or 10)
01A7: C3 20 00        JP      $0020               ; Write C to reg A chip 1

; Write to tone registers for the specified voice.
; Write HL = value, voice (1-3 Chip0, 4-6 Chip1)
01AA: 3A 0E 30        LD      A,($300E)           ; Get register
01AD: FE 04           CP      $04                 ; Register 4-6
01AF: 30 0B           JR      NC,$01BC            ; Yes ... next chip
01B1: 3D              DEC     A                   ; -1
01B2: 87              ADD     A,A                 ; *2
01B3: 47              LD      B,A                 ; Hold onto register
01B4: 4D              LD      C,L                 ; Value
01B5: DF              RST     $18                 ; Write Chip 0
01B6: 78              LD      A,B                 ; Restore register
01B7: 3C              INC     A                   ; Next
01B8: 4C              LD      C,H                 ; Value
01B9: C3 18 00        JP      $0018               ; Write Chip 0
01BC: D6 04           SUB     $04                 ; Registers in chip 1
01BE: 87              ADD     A,A                 ; ...
01BF: 47              LD      B,A                 ; ...
01C0: 4D              LD      C,L                 ; ...
01C1: E7              RST     $20                 ; ...
01C2: 78              LD      A,B                 ; ...
01C3: 3C              INC     A                   ; ...
01C4: 4C              LD      C,H                 ; ...
01C5: C3 20 00        JP      $0020               ; Done

FilterCaps: 
; There are two capacitors that can be switched onto each audio channel
; to ground. The MSB bit set to one selects a 0.22 and the LSB bit set selects
; a 0.047 cap. Most effects just switch out the caps (writing 00), but the
; explosion effects switch in one or the other (never both).
;
; V1 1000xxxxAAxxxxxx
; V2 1000xxAAxxxxxxxx
; V3 1000AAxxxxxxxxxx
; V4 1000xxxxxxxxxxAA
; V5 1000xxxxxxxxAAxx
; V6 1000xxxxxxAAxxxx

; Reverse A bits
01C8: 01 FC FF        LD      BC,$FFFC            ; 11111111 11111100
01CB: 21 00 00        LD      HL,$0000            ; Clear HL
01CE: 1F              RRA                         ; Bit 0 ...
01CF: CB 15           RL      L                   ; ... into L
01D1: 1F              RRA                         ; Bit 1 ...
01D2: CB 15           RL      L                   ; ... into L
; Move bits and calculate mask
; V=1 HL*=64    BC=1111111100111111
;   2 HL*=256   BC=1111110011111111
;   3 HL*=1024  BC=1111001111111111
;   4 HL*=1     BC=1111111111111100
;   5 HL*=4     BC=1111111111110011
;   6 HL*=16    BC=1111111111001111
01D4: 3A 0E 30        LD      A,($300E)           ; Voice number
01D7: C6 02           ADD     A,$02               ; 2 bits in field
01D9: FE 06           CP      $06                 ; Split the field map
01DB: 38 04           JR      C,$01E1             ; ...
01DD: D6 06           SUB     $06                 ; ...
01DF: 28 0A           JR      Z,$01EB             ; ...
01E1: 87              ADD     A,A                 ; = number of moves
01E2: 29              ADD     HL,HL               ; HL * 2
01E3: 37              SCF                         ; Set carry flag
01E4: CB 11           RL      C                   ; Roll ...
01E6: CB 10           RL      B                   ; ... the mask
01E8: 3D              DEC     A                   ; Position counter
01E9: 20 F7           JR      NZ,$01E2            ; Complete the pattern
; CurrentValue = (CurrentValue & Mask) | HL
01EB: EB              EX      DE,HL               ; HL->DE
01EC: 2A 0C 30        LD      HL,($300C)          ; Old value
01EF: 7D              LD      A,L                 ; LSB
01F0: A1              AND     C                   ; Mask
01F1: B3              OR      E                   ; OR in old value
01F2: 6F              LD      L,A                 ; New LSB
01F3: 7C              LD      A,H                 ; MSB
01F4: A0              AND     B                   ; Mask
01F5: B2              OR      D                   ; OR in old value
01F6: 67              LD      H,A                 ; New MSB
01F7: 22 0C 30        LD      ($300C),HL          ; New configuration value
; Write to memory -- why?
01FA: 77              LD      (HL),A              ; Any write will do (using the ...
01FB: C9              RET                         ; ... address lines as data.)

MusicProcessing: 
; # ### MUSIC PROCESSING #######################################
;
; Bytes are loaded from the music pointer. The upper three bits
; define the MSB delay and the lower five bits define a note
; offset from the base note pointer. If the lower five bits are
; all ones, a special command is executed instead and then
; processing continues.
;
; The MSB delay is a power of 2 (ie 128th,64th, ... quarter,half,whole).
; The Running LSB delay is the base counter for note delay.
; The Music Pointer points to the next byte in the song to process.
; The Base Note Table Pointer points to the start of an octave in
;   the note table. Subsequent notes are relative to the base.
; The initial amplitude is the initial volume of the note.
; The running amplitude is the current volume level. The modifier is
;   used to change the volume ever other MSB delay count. (The volume
;   becomes fixed when silenced.)
; The LSB delay is the 128th-note-equals specification. This is used
;   to reload the running count.
; The Amplitude Modification is the value added (or subtracted) to
;   the amplitude each change.
;
; Music Descriptors
;
; 00 01 02 03 04 05 06 07 08 09 0A
;
; 00 - MSB Note Delay
; 01 - Running LSB Note delay (base delay)
; 02,03 - Music Pointer
; 04,05 - Note Table Base Pointer
; 06 Initial Amplitude
; 07 Running amplitude
; 08 LSB delay reload
; 09 Amplitude modification
; 0A -- not used
;
; # ###########################################################

; Process Music Descriptor
; Amplitude of a note is reduced at a rate of 0.5 the MSB delay.
01FC: DD 35 01        DEC     (IX+$01)            ; Decrement LSB of delay
01FF: C0              RET     NZ                  ; Not time for new note -- out
0200: DD 7E 08        LD      A,(IX+$08)          ; Reload ...
0203: DD 77 01        LD      (IX+$01),A          ; ... LSB of delay
0206: DD 35 00        DEC     (IX+$00)            ; Decrement MSB of delay
0209: 28 15           JR      Z,$0220             ; Load next note
020B: DD CB 00 46     BIT     0,(IX+$00)          ; Test bit 0 of MSB of delay
020F: C8              RET     Z                   ; Not time to fool with volume
0210: DD 7E 09        LD      A,(IX+$09)          ; Get volume modifier
0213: B7              OR      A                   ; Test it
0214: C8              RET     Z                   ; No modification ... out
0215: DD 86 07        ADD     A,(IX+$07)          ; Modify current volume.
0218: F8              RET     M                   ; Ignore it if it wrapped
0219: DD 77 07        LD      (IX+$07),A          ; New amplitude
021C: 4F              LD      C,A                 ; To C
021D: C3 99 01        JP      $0199               ; Set amplitude and out
; Load next note
0220: DD 6E 02        LD      L,(IX+$02)          ; LSB of music pointer
0223: DD 66 03        LD      H,(IX+$03)          ; MSB of music pointer
0226: 7E              LD      A,(HL)              ; Get next command
0227: 57              LD      D,A                 ; Hang onto it
0228: E6 1F           AND     $1F                 ; Mask out note
022A: 28 24           JR      Z,$0250             ; Note 0? Just set delay
022C: FE 1F           CP      $1F                 ; Special command?
022E: 28 37           JR      Z,$0267             ; Yes ... process special command.
0230: CD 50 02        CALL    $0250               ; Regular note -- set delay
0233: 7A              LD      A,D                 ; Get note
0234: E6 1F           AND     $1F                 ; Mask off upper 3 bits
0236: 3D              DEC     A                   ; -1 (0 is not a note)
0237: 07              RLCA                        ; *2 (2 bytes per note)
0238: 4F              LD      C,A                 ; Hold it
0239: DD 6E 04        LD      L,(IX+$04)          ; Base pointer into ...
023C: DD 66 05        LD      H,(IX+$05)          ; ... note table
023F: 09              ADD     HL,BC               ; B got set to 0 in the delay set!
0240: 5E              LD      E,(HL)              ; Get tone ...
0241: 23              INC     HL                  ; ... value ...
0242: 56              LD      D,(HL)              ; ... from table
0243: EB              EX      DE,HL               ; To HL
0244: CD AA 01        CALL    $01AA               ; Write tone
0247: DD 4E 06        LD      C,(IX+$06)          ; Get amplitude
024A: DD 71 07        LD      (IX+$07),C          ; Initialize running amplitude
024D: C3 99 01        JP      $0199               ; Set amplitude and out

; Convert next byte to power of 2 and store as delay MSB
0250: 23              INC     HL                  ; Next byte in music
0251: DD 75 02        LD      (IX+$02),L          ; Update ...
0254: DD 74 03        LD      (IX+$03),H          ; ... music pointer
0257: 7A              LD      A,D                 ; Restore command
0258: E6 E0           AND     $E0                 ; Mask off lower 5 bits
025A: 07              RLCA                        ; Move upper three bits ...
025B: 07              RLCA                        ; ...
025C: 07              RLCA                        ; ... to lower bits.
025D: 47              LD      B,A                 ; Save it
025E: 3E 80           LD      A,$80               ; One bit
0260: 07              RLCA                        ; Set bit position ...
0261: 10 FD           DJNZ    $0260               ; ... B
0263: DD 77 00        LD      (IX+$00),A          ; Store to MSB delay
0266: C9              RET                         ; Done

; Music byte xxx11111
; Vector to function xxx and continue processing
0267: 7A              LD      A,D                 ; Restore command
0268: E6 E0           AND     $E0                 ; Mask off lower bits
026A: 07              RLCA                        ; Move upper ...
026B: 07              RLCA                        ; ... three bits ...
026C: 07              RLCA                        ; ... to low end
026D: 11 20 02        LD      DE,$0220            ; Return to process ...
0270: D5              PUSH    DE                  ; ... next command
0271: 23              INC     HL                  ; Bump music pointer
0272: 5D              LD      E,L                 ; Hold ...
0273: 54              LD      D,H                 ; ... pointer
0274: 23              INC     HL                  ; Next
0275: DD 75 02        LD      (IX+$02),L          ; Save ...
0278: DD 74 03        LD      (IX+$03),H          ; ... music pointer
027B: 21 81 02        LD      HL,$0281            ; Jump table
027E: C3 28 00        JP      $0028               ; Do command and continue with next

; Music commands (DE contains pointer to 2nd byte)
0281: 91 02 ; Load base note table pointer from music
0283: A5 02 ; Load LSB delay from music
0285: B5 02 ; Load amplitude from music
0287: BA 02 ; Load amplitude modification from music
0289: C9 02 ; End sound command
028B: C9 02 ; End sound command
028D: BF 02 ; Jump to new music address
028F: C9 02 ; End sound command

; Music function 00
; Load base note table pointer
0291: EB              EX      DE,HL               ; Pointer to second byte
0292: 4E              LD      C,(HL)              ; Get second byte
0293: CB 21           SLA     C                   ; *2
0295: 06 00           LD      B,$00               ; MSB = 0
0297: 21 CE 02        LD      HL,$02CE            ; Octave pointers
029A: 09              ADD     HL,BC               ; Offset into table
029B: 5E              LD      E,(HL)              ; Get byte
029C: 23              INC     HL                  ; Next
029D: 56              LD      D,(HL)              ; Get byte
029E: DD 73 04        LD      (IX+$04),E          ; Store ...
02A1: DD 72 05        LD      (IX+$05),D          ; ... tone pointer
02A4: C9              RET                         ;

; Music function 01
; Load delay from table
02A5: EB              EX      DE,HL               ; Second byte pointer
02A6: 4E              LD      C,(HL)              ; Get second byte
02A7: 06 00           LD      B,$00               ; MSB = 0
02A9: 21 66 03        LD      HL,$0366            ; Data
02AC: 09              ADD     HL,BC               ; Point to entry
02AD: 7E              LD      A,(HL)              ; Get data
02AE: DD 77 08        LD      (IX+$08),A          ; Delay
02B1: DD 77 01        LD      (IX+$01),A          ; Delay
02B4: C9              RET                         ; Done

; Music function 02
; Load amplitude
02B5: 1A              LD      A,(DE)              ; Get second byte
02B6: DD 77 06        LD      (IX+$06),A          ; Store it to amplitude
02B9: C9              RET                         ; Done

; Music function 03
; Set 09 Amplitude modification
02BA: 1A              LD      A,(DE)              ; Get second byte
02BB: DD 77 09        LD      (IX+$09),A          ; Store it to ?
02BE: C9              RET                         ; Done

; Music function 06
; Jump to new music address
02BF: 1A              LD      A,(DE)              ; Get second byte
02C0: DD 77 02        LD      (IX+$02),A          ; Set ...
02C3: 13              INC     DE                  ; ...
02C4: 1A              LD      A,(DE)              ; ...
02C5: DD 77 03        LD      (IX+$03),A          ; ... new pointer
02C8: C9              RET                         ; Done

; Music function 04, 05, 07
; End this music command
02C9: E1              POP     HL                  ; Clear for return ...
02CA: E1              POP     HL                  ; ... from music routine
02CB: 3E FF           LD      A,$FF               ; Flag end of processing
02CD: C9              RET                         ; Done

;Octave offsets into note table
02CE: EE 02 
02D0: F2 02 
02D2: F6 02 
02D4: FA 02 
02D6: FE 02 
02D8: 02 03 
02DA: 06 03 
02DC: 0A 03 
02DE: 0E 03 
02E0: 12 03 
02E2: 16 03 
02E4: 1A 03 
02E6: 1E 03 
02E8: 22 03 
02EA: 26 03 
02EC: 2A 03 

; Note Table -- tones for notes on the chromatic scale
02EE: FF 0F ; Lowest possible note
02F0: F2 07 
02F2: 80 07 
02F4: 14 07 
02F6: AE 06 
02F8: 4E 06 
02FA: F3 05 
02FC: 9E 05 
02FE: 4E 05 
0300: 01 05 
0302: B9 04 
0304: 76 04 
0306: 36 04 
0308: F9 03 
030A: C0 03 
030C: 8A 03 
030E: 57 03 
0310: 27 03 
0312: FA 02 
0314: CF 02 
0316: A7 02 
0318: 81 02 
031A: 5D 02 
031C: 3B 02 
031E: 1B 02 
0320: FD 01 
0322: E0 01 
0324: C5 01 
0326: AC 01 
0328: 94 01 
032A: 7D 01 
032C: 68 01 
032E: 53 01 
0330: 40 01 
0332: 2E 01 
0334: 1D 01 
0336: 0D 01 
0338: FE 00 
033A: F0 00 
033C: E3 00 
033E: D6 00 
0340: CA 00 
0342: BE 00 
0344: B4 00 
0346: AA 00 
0348: A0 00 
034A: 97 00 
034C: 8F 00 
034E: 87 00 
0350: 7F 00 
0352: 78 00 
0354: 71 00 
0356: 6B 00 
0358: 65 00 
035A: 5F 00 
035C: 5A 00 
035E: 55 00 
0360: 50 00 
0362: 4C 00 
0364: 07 00 ; Really high

; Delay table (bytes)
0366: 3C 
0367: 38 34 
0369: 30 2C 
036B: 28 24 
036D: 20 1E 
036F: 1C 
0370: 1A 
0371: 18 16 
0373: 14 
0374: 12 
0375: 10 0F 
0377: 0E 0D 
0379: 0C 
037A: 0B 
037B: 0A 
037C: 09 
037D: 08 

; Initialize descriptors for a specified song number
037E: 21 B5 03        LD      HL,$03B5            ; Initialization data
0381: 11 0F 30        LD      DE,$300F            ; First music descriptor
0384: 01 32 00        LD      BC,$0032            ; 10*5 = 50 bytes
0387: ED B0           LDIR                        ; Initialize the data
0389: 87              ADD     A,A                 ; *2
038A: 4F              LD      C,A                 ; Hold
038B: 87              ADD     A,A                 ; *4
038C: 87              ADD     A,A                 ; *8
038D: 81              ADD     A,C                 ; *10
038E: 4F              LD      C,A                 ; Hold it
038F: 06 00           LD      B,$00               ; MSB = 0
0391: 21 6E 0B        LD      HL,$0B6E            ; Data region
0394: 09              ADD     HL,BC               ; Point to song
0395: 11 11 30        LD      DE,$3011            ; Music pointer descriptor 1
0398: ED A0           LDI                         ; Set ...
039A: ED A0           LDI                         ; ... pointer
039C: 1E 1B           LD      E,$1B               ; Music pointer descriptor 2
039E: ED A0           LDI                         ; Set ...
03A0: ED A0           LDI                         ; ... pointer
03A2: 1E 25           LD      E,$25               ; Music pointer descriptor 3
03A4: ED A0           LDI                         ; Set ...
03A6: ED A0           LDI                         ; ... pointer
03A8: 1E 2F           LD      E,$2F               ; Music pointer descriptor 4
03AA: ED A0           LDI                         ; Set ...
03AC: ED A0           LDI                         ; ... pointer
03AE: 1E 39           LD      E,$39               ; Music pointer descriptor 5
03B0: ED A0           LDI                         ; Set ...
03B2: ED A0           LDI                         ; ... pointer
03B4: C9              RET                         ; Done

; Initialization data for music descriptors (10 bytes each)
03B5: 01 01 00 00 00 00 00 00 00 FF 
03BF: 01 01 00 00 00 00 00 00 00 FF 
03C9: 01 01 00 00 00 00 00 00 00 FF 
03D3: 01 01 00 00 00 00 00 00 00 FF 
03DD: 01 01 00 00 00 00 00 00 00 FF 

; The sounds produced by this code were discovered by modifying
; the game code ROM to play a single sound and go into an infinite
; loop. The modified code was run through the MAME emulator.

Command01: 
; Initialize Routine Vector 01 (Coin Drop)
03E7: AF              XOR     A                   ;
03E8: CD C8 01        CALL    FilterCaps          ;
03EB: 21 6B 00        LD      HL,$006B            ; Fine=6B, Coars=00
03EE: CD AA 01        CALL    $01AA               ; Write to tone registers
03F1: 21 41 30        LD      HL,$3041            ;
03F4: 36 00           LD      (HL),$00            ;
03F6: 2C              INC     L                   ;
03F7: 36 47           LD      (HL),$47            ;
03F9: 2C              INC     L                   ;
03FA: 0E 09           LD      C,$09               ; Amplitude
03FC: 71              LD      (HL),C              ;
03FD: CD 99 01        CALL    $0199               ; Set amplitude
0400: AF              XOR     A                   ; Return 0
0401: C9              RET                         ; Done

; Continue Sound Routine Vector 01  (Coin Drop)
0402: 21 41 30        LD      HL,$3041            ;
0405: 35              DEC     (HL)                ;
0406: 7E              LD      A,(HL)              ;
0407: E6 03           AND     $03                 ;
0409: 20 18           JR      NZ,$0423            ;
040B: 2C              INC     L                   ;
040C: 35              DEC     (HL)                ;
040D: 7E              LD      A,(HL)              ;
040E: 28 1D           JR      Z,$042D             ; Return 1
0410: E6 07           AND     $07                 ;
0412: 28 11           JR      Z,$0425             ;
0414: E6 03           AND     $03                 ;
0416: 3D              DEC     A                   ;
0417: 4F              LD      C,A                 ;
0418: 06 00           LD      B,$00               ;
041A: 21 2F 04        LD      HL,$042F            ;
041D: 09              ADD     HL,BC               ;
041E: 6E              LD      L,(HL)              ;
041F: 60              LD      H,B                 ;
0420: CD AA 01        CALL    $01AA               ; Write tone registers
0423: AF              XOR     A                   ; Return 0
0424: C9              RET                         ; Out
0425: 2C              INC     L                   ;
0426: 35              DEC     (HL)                ;
0427: 4E              LD      C,(HL)              ;
0428: CD 99 01        CALL    $0199               ; Set amplitude
042B: AF              XOR     A                   ; Return 0
042C: C9              RET                         ; Out
042D: 3D              DEC     A                   ; Zero becomes FF
042E: C9              RET                         ; Done

042F: 47              LD      B,A                 ;
0430: 55              LD      D,L                 ;
0431: 6B              LD      L,E                 ;

Command02: 
; Initialization Vector Routine 02 (Plane Fire)
0432: AF              XOR     A                   ; A=0
0433: CD C8 01        CALL    FilterCaps          ; No filter caps on channel
0436: 0E 0A           LD      C,$0A               ; Set volume ...
0438: CD 99 01        CALL    $0199               ; ... to 10
043B: 3E 80           LD      A,$80               ; Loop count ...
043D: 32 44 30        LD      ($3044),A           ; ... is 128
0440: 21 04 00        LD      HL,$0004            ; Initial frequency ...
0443: 22 45 30        LD      ($3045),HL          ; ... is 4
0446: CD AA 01        CALL    $01AA               ; Write tone (HL=tone)
0449: AF              XOR     A                   ; Return a 0 (continue)
044A: C9              RET                         ;

; Continue Sound Routine Vector 02 (Plane Fire)
044B: 21 44 30        LD      HL,$3044            ; Decrement ...
044E: 35              DEC     (HL)                ; ... counter
044F: 7E              LD      A,(HL)              ; Stop if ...
0450: 28 0E           JR      Z,$0460             ; ... done
0452: FE 6D           CP      $6D                 ; At loop value 6D ...
0454: 28 EA           JR      Z,$0440             ; ... reset frequency to 4
0456: 2A 45 30        LD      HL,($3045)          ; Current tone value
0459: 01 18 00        LD      BC,$0018            ; Add ...
045C: 09              ADD     HL,BC               ; ... 18 to frequency
045D: C3 43 04        JP      $0443               ; Store and play tone
0460: 3D              DEC     A                   ; Return ...
0461: C9              RET                         ; ... -1 (finished)

Command03: 
; Initialization Routine Vector 03 (1910 Bomb)
0462: AF              XOR     A                   ; No filter ...
0463: CD C8 01        CALL    FilterCaps          ; ... caps on channel
0466: 21 C0 00        LD      HL,$00C0            ; Inital ...
0469: 22 47 30        LD      ($3047),HL          ; ... tone
046C: CD AA 01        CALL    $01AA               ; Write tone
046F: 0E 09           LD      C,$09               ; Set ...
0471: CD 99 01        CALL    $0199               ; ... volume
0474: AF              XOR     A                   ; Set ...
0475: 21 49 30        LD      HL,$3049            ; ... 3049 = 0 ...
0478: 77              LD      (HL),A              ; ...
0479: C9              RET                         ;

; Continue Sound Routine Vector 03 (1910 Bomb)
047A: 21 49 30        LD      HL,$3049            ; Decrement ...
047D: 35              DEC     (HL)                ; ... counter
047E: 7E              LD      A,(HL)              ; Do nothing ...
047F: E6 07           AND     $07                 ; ... until MSB ...
0481: 20 12           JR      NZ,$0495            ; ... is 0
0483: 2A 47 30        LD      HL,($3047)          ; Add ...
0486: 01 40 00        LD      BC,$0040            ; ... 40 ...
0489: 09              ADD     HL,BC               ; ... to tone
048A: 7C              LD      A,H                 ; When MSB is ...
048B: FE 0C           CP      $0C                 ; ... 0C ...
048D: 28 08           JR      Z,$0497             ; ... the effect is done
048F: 22 47 30        LD      ($3047),HL          ; Store new tone
0492: CD AA 01        CALL    $01AA               ; Write tone
0495: AF              XOR     A                   ; Continue
0496: C9              RET                         ;
0497: 3E FF           LD      A,$FF               ; Done
0499: C9              RET                         ;

Command04: 
; Initialization Routine Vector 04 (Missile Launch)
049A: 3E 01           LD      A,$01               ;
049C: CD C8 01        CALL    FilterCaps          ;
049F: 21 4A 30        LD      HL,$304A            ;
04A2: 36 00           LD      (HL),$00            ;
04A4: 2C              INC     L                   ;
04A5: 0E 0F           LD      C,$0F               ;
04A7: 71              LD      (HL),C              ;
04A8: CD 99 01        CALL    $0199               ; Set volume
04AB: 21 60 00        LD      HL,$0060            ;
04AE: 22 4C 30        LD      ($304C),HL          ;
04B1: AF              XOR     A                   ;
04B2: C9              RET                         ;

; Continue Sound Routine Vector 04 (Missile Launch)
04B3: 21 4A 30        LD      HL,$304A            ;
04B6: 35              DEC     (HL)                ;
04B7: 7E              LD      A,(HL)              ;
04B8: E6 0F           AND     $0F                 ;
04BA: 28 16           JR      Z,$04D2             ;
04BC: 2A 4C 30        LD      HL,($304C)          ;
04BF: FE 0C           CP      $0C                 ;
04C1: 01 10 00        LD      BC,$0010            ;
04C4: 30 03           JR      NC,$04C9            ;
04C6: 01 D0 FF        LD      BC,$FFD0            ;
04C9: 09              ADD     HL,BC               ;
04CA: 22 4C 30        LD      ($304C),HL          ;
04CD: CD AA 01        CALL    $01AA               ; Write tone
04D0: AF              XOR     A                   ;
04D1: C9              RET                         ;
04D2: 2C              INC     L                   ;
04D3: 35              DEC     (HL)                ;
04D4: 4E              LD      C,(HL)              ;
04D5: 20 D1           JR      NZ,$04A8            ;
04D7: 3D              DEC     A                   ;
04D8: C9              RET                         ;

Command05: 
; Initialization Routine Vector 05 (Missile - continuous)
04D9: AF              XOR     A                   ;
04DA: CD C8 01        CALL    FilterCaps          ;
04DD: 21 4E 30        LD      HL,$304E            ;
04E0: 36 B0           LD      (HL),$B0            ;
04E2: 2C              INC     L                   ;
04E3: 36 0D           LD      (HL),$0D            ;
04E5: 35              DEC     (HL)                ;
04E6: 4E              LD      C,(HL)              ;
04E7: CD 99 01        CALL    $0199               ; Set volume
04EA: 2C              INC     L                   ;
04EB: 36 20           LD      (HL),$20            ;
04ED: 6E              LD      L,(HL)              ;
04EE: 26 00           LD      H,$00               ;
04F0: CD AA 01        CALL    $01AA               ; Write tone
04F3: AF              XOR     A                   ;
04F4: C9              RET                         ;

; Continue Sound Routine Vector 05 (Missile - continuous)
04F5: 21 4E 30        LD      HL,$304E            ;
04F8: 35              DEC     (HL)                ;
04F9: 7E              LD      A,(HL)              ;
04FA: 28 0C           JR      Z,$0508             ;
04FC: 2C              INC     L                   ;
04FD: E6 0F           AND     $0F                 ;
04FF: 28 E4           JR      Z,$04E5             ;
0501: 2C              INC     L                   ;
0502: 34              INC     (HL)                ;
0503: C3 ED 04        JP      $04ED               ;
0506: AF              XOR     A                   ;
0507: C9              RET                         ;
0508: 3D              DEC     A                   ;
0509: C9              RET                         ;

Command06: 
; Initialization Routine Vector 06 (UFO shot)
050A: AF              XOR     A                   ;
050B: CD C8 01        CALL    FilterCaps          ;
050E: 21 50 00        LD      HL,$0050            ;
0511: CD AA 01        CALL    $01AA               ; Write tone
0514: 21 51 30        LD      HL,$3051            ;
0517: 36 40           LD      (HL),$40            ;
0519: 2C              INC     L                   ;
051A: 0E 05           LD      C,$05               ;
051C: 71              LD      (HL),C              ;
051D: CD 99 01        CALL    $0199               ; Set volume
0520: 2C              INC     L                   ;
0521: 36 17           LD      (HL),$17            ;
0523: 2C              INC     L                   ;
0524: 36 50           LD      (HL),$50            ;
0526: AF              XOR     A                   ;
0527: C9              RET                         ;

; Continue Sound Routine Vector 06 (UFO shot)
0528: 21 51 30        LD      HL,$3051            ;
052B: 35              DEC     (HL)                ;
052C: 28 E9           JR      Z,$0517             ;
052E: 7E              LD      A,(HL)              ;
052F: 2C              INC     L                   ;
0530: E6 0F           AND     $0F                 ;
0532: 20 05           JR      NZ,$0539            ;
0534: 34              INC     (HL)                ;
0535: 4E              LD      C,(HL)              ;
0536: CD 99 01        CALL    $0199               ; Set volume
0539: 2C              INC     L                   ;
053A: 7E              LD      A,(HL)              ;
053B: C6 29           ADD     A,$29               ;
053D: 77              LD      (HL),A              ;
053E: 2C              INC     L                   ;
053F: AE              XOR     (HL)                ;
0540: E6 3F           AND     $3F                 ;
0542: C6 50           ADD     A,$50               ;
0544: 77              LD      (HL),A              ;
0545: 6F              LD      L,A                 ;
0546: 26 00           LD      H,$00               ;
0548: CD AA 01        CALL    $01AA               ; Write tone
054B: AF              XOR     A                   ;
054C: C9              RET                         ;

Command07: 
; Initialization Routine Vector 07 (User Fire)
054D: AF              XOR     A                   ;
054E: CD C8 01        CALL    FilterCaps          ;
0551: 21 56 30        LD      HL,$3056            ;
0554: 36 08           LD      (HL),$08            ;
0556: 2D              DEC     L                   ;
0557: 36 2C           LD      (HL),$2C            ;
0559: 2C              INC     L                   ;
055A: 35              DEC     (HL)                ;
055B: 28 29           JR      Z,$0586             ;
055D: 4E              LD      C,(HL)              ;
055E: CD 99 01        CALL    $0199               ; Set volume
0561: 21 00 00        LD      HL,$0000            ;
0564: 22 57 30        LD      ($3057),HL          ;
0567: CD AA 01        CALL    $01AA               ; Write tone
056A: AF              XOR     A                   ;
056B: C9              RET                         ;

; Continue Sound Routine Vector 07 (User Fire)
056C: 21 55 30        LD      HL,$3055            ;
056F: 35              DEC     (HL)                ;
0570: 7E              LD      A,(HL)              ;
0571: 28 E4           JR      Z,$0557             ;
0573: FE 16           CP      $16                 ;
0575: 28 EA           JR      Z,$0561             ;
0577: 2A 57 30        LD      HL,($3057)          ;
057A: 01 10 00        LD      BC,$0010            ;
057D: 09              ADD     HL,BC               ;
057E: 22 57 30        LD      ($3057),HL          ;
0581: CD AA 01        CALL    $01AA               ; Write tone
0584: AF              XOR     A                   ;
0585: C9              RET                         ;
0586: 3D              DEC     A                   ;
0587: C9              RET                         ;

Command08: 
; Initialization Routine Vector 08 (Enemy Explosion Component - thud)
0588: 3E 01           LD      A,$01               ;
058A: CD C8 01        CALL    FilterCaps          ;
058D: 21 5C 30        LD      HL,$305C            ;
0590: 36 0C           LD      (HL),$0C            ;
0592: 4E              LD      C,(HL)              ;
0593: CD 99 01        CALL    $0199               ; Set volume
0596: 2D              DEC     L                   ;
0597: 36 00           LD      (HL),$00            ;
0599: 21 80 00        LD      HL,$0080            ;
059C: 22 59 30        LD      ($3059),HL          ;
059F: CD AA 01        CALL    $01AA               ; Write tone
05A2: AF              XOR     A                   ;
05A3: C9              RET                         ;

; Continue Sound Routine Vector 08 (Enemy Explosion Component - thud)
05A4: 21 5B 30        LD      HL,$305B            ;
05A7: 34              INC     (HL)                ;
05A8: 7E              LD      A,(HL)              ;
05A9: FE 59           CP      $59                 ;
05AB: 28 0F           JR      Z,$05BC             ;
05AD: 4F              LD      C,A                 ;
05AE: 06 00           LD      B,$00               ;
05B0: 2A 59 30        LD      HL,($3059)          ;
05B3: 09              ADD     HL,BC               ;
05B4: 22 59 30        LD      ($3059),HL          ;
05B7: CD AA 01        CALL    $01AA               ; Write tone
05BA: AF              XOR     A                   ;
05BB: C9              RET                         ;
05BC: 2C              INC     L                   ;
05BD: 7E              LD      A,(HL)              ;
05BE: D6 04           SUB     $04                 ;
05C0: 28 04           JR      Z,$05C6             ;
05C2: 77              LD      (HL),A              ;
05C3: C3 92 05        JP      $0592               ;
05C6: 3D              DEC     A                   ;
05C7: C9              RET                         ;

Command09: 
; Initialization Routine Vector 09 (Enemy Explosion Component white-noise)
05C8: 3E 01           LD      A,$01               ;
05CA: CD C8 01        CALL    FilterCaps          ;
05CD: 21 5D 30        LD      HL,$305D            ;
05D0: 36 00           LD      (HL),$00            ;
05D2: 2C              INC     L                   ;
05D3: 36 E0           LD      (HL),$E0            ;
05D5: 2C              INC     L                   ;
05D6: 0E 0D           LD      C,$0D               ;
05D8: 71              LD      (HL),C              ;
05D9: CD 99 01        CALL    $0199               ; Set volume
05DC: 2C              INC     L                   ;
05DD: 36 93           LD      (HL),$93            ;
05DF: 2C              INC     L                   ;
05E0: 36 D5           LD      (HL),$D5            ;
05E2: 21 C0 00        LD      HL,$00C0            ;
05E5: CD AA 01        CALL    $01AA               ; Write tone
05E8: AF              XOR     A                   ;
05E9: C9              RET                         ;

; Continue Sound Routine Vector 09 (Enemy Explosion Component white-noise)
05EA: 21 5D 30        LD      HL,$305D            ;
05ED: 35              DEC     (HL)                ;
05EE: CB 46           BIT     0,(HL)              ;
05F0: 20 25           JR      NZ,$0617            ;
05F2: 2C              INC     L                   ;
05F3: 35              DEC     (HL)                ;
05F4: 7E              LD      A,(HL)              ;
05F5: 28 22           JR      Z,$0619             ;
05F7: FE D0           CP      $D0                 ;
05F9: 28 DA           JR      Z,$05D5             ;
05FB: 2C              INC     L                   ;
05FC: E6 0F           AND     $0F                 ;
05FE: 20 05           JR      NZ,$0605            ;
0600: 35              DEC     (HL)                ;
0601: 4E              LD      C,(HL)              ;
0602: CD 99 01        CALL    $0199               ; Set volume
0605: 2C              INC     L                   ;
0606: 7E              LD      A,(HL)              ;
0607: C6 53           ADD     A,$53               ;
0609: 77              LD      (HL),A              ;
060A: 2C              INC     L                   ;
060B: AE              XOR     (HL)                ;
060C: 77              LD      (HL),A              ;
060D: 6F              LD      L,A                 ;
060E: FE E0           CP      $E0                 ;
0610: 38 01           JR      C,$0613             ;
0612: AF              XOR     A                   ;
0613: 67              LD      H,A                 ;
0614: CD AA 01        CALL    $01AA               ; Write tone
0617: AF              XOR     A                   ;
0618: C9              RET                         ;
0619: 3D              DEC     A                   ;
061A: C9              RET                         ;

Command0A: 
; Initialization Routine Vector 0A (Traker or Bomb Explosion)
061B: AF              XOR     A                   ;
061C: CD C8 01        CALL    FilterCaps          ;
061F: 21 62 30        LD      HL,$3062            ;
0622: 36 00           LD      (HL),$00            ;
0624: 2C              INC     L                   ;
0625: 36 C0           LD      (HL),$C0            ;
0627: 2C              INC     L                   ;
0628: 36 0D           LD      (HL),$0D            ;
062A: 35              DEC     (HL)                ;
062B: 4E              LD      C,(HL)              ;
062C: CD 99 01        CALL    $0199               ; Set volume
062F: 21 20 00        LD      HL,$0020            ;
0632: 22 65 30        LD      ($3065),HL          ;
0635: CD AA 01        CALL    $01AA               ; Write tone
0638: AF              XOR     A                   ;
0639: C9              RET                         ;

; Continue Sound Routine Vector 0A (Traker or Bomb Explosion)
063A: 21 62 30        LD      HL,$3062            ;
063D: 35              DEC     (HL)                ;
063E: 7E              LD      A,(HL)              ;
063F: E6 01           AND     $01                 ;
0641: 20 17           JR      NZ,$065A            ;
0643: 2C              INC     L                   ;
0644: 35              DEC     (HL)                ;
0645: 7E              LD      A,(HL)              ;
0646: 28 14           JR      Z,$065C             ;
0648: 2C              INC     L                   ;
0649: E6 0F           AND     $0F                 ;
064B: 28 DD           JR      Z,$062A             ;
064D: 2A 65 30        LD      HL,($3065)          ;
0650: 01 40 00        LD      BC,$0040            ;
0653: 09              ADD     HL,BC               ;
0654: 22 65 30        LD      ($3065),HL          ;
0657: CD AA 01        CALL    $01AA               ; Write tone
065A: AF              XOR     A                   ;
065B: C9              RET                         ;
065C: 3D              DEC     A                   ;
065D: C9              RET                         ;

Command0B: 
; Initialization Routine Vector 0B (Squad appears)
065E: AF              XOR     A                   ; No filter ...
065F: CD C8 01        CALL    FilterCaps          ; ... caps on channel
0662: 0E 0C           LD      C,$0C               ; Set ...
0664: CD 99 01        CALL    $0199               ; ... volume
0667: 21 67 30        LD      HL,$3067            ; Set ...
066A: 36 B8           LD      (HL),$B8            ; ... 3067 = B8
066C: 2C              INC     L                   ; Set ...
066D: 36 1F           LD      (HL),$1F            ; ... 3068 = 1F
066F: 21 1F 00        LD      HL,$001F            ; Initial tone
0672: CD AA 01        CALL    $01AA               ; Write tone
0675: AF              XOR     A                   ; Continue
0676: C9              RET                         ;

; Continue Sound Routine Vector 0B (Squad appears)
0677: 21 67 30        LD      HL,$3067            ; (3067) = (3067) - 1
067A: 35              DEC     (HL)                ; ...
067B: 7E              LD      A,(HL)              ; End when MSB ...
067C: 28 15           JR      Z,$0693             ; ... is 0
067E: FE 60           CP      $60                 ;
0680: 28 EA           JR      Z,$066C             ;
0682: E6 03           AND     $03                 ;
0684: 20 0B           JR      NZ,$0691            ;
0686: 2C              INC     L                   ;
0687: 7E              LD      A,(HL)              ;
0688: C6 20           ADD     A,$20               ;
068A: 77              LD      (HL),A              ;
068B: 6F              LD      L,A                 ;
068C: 26 00           LD      H,$00               ;
068E: CD AA 01        CALL    $01AA               ; Write tone
0691: AF              XOR     A                   ;
0692: C9              RET                         ;
0693: 3D              DEC     A                   ;
0694: C9              RET                         ;

Command0C: 
; Initialization Routine Vector 0C (1st boss - blimp)
0695: 3E 01           LD      A,$01               ;
0697: CD C8 01        CALL    FilterCaps          ;
069A: 21 C0 00        LD      HL,$00C0            ;
069D: CD AA 01        CALL    $01AA               ; Write tone
06A0: 0E 0F           LD      C,$0F               ;
06A2: CD 99 01        CALL    $0199               ; Set volume
06A5: AF              XOR     A                   ;
06A6: 21 69 30        LD      HL,$3069            ;
06A9: 77              LD      (HL),A              ;
06AA: 2C              INC     L                   ;
06AB: 36 53           LD      (HL),$53            ;
06AD: 2C              INC     L                   ;
06AE: 36 09           LD      (HL),$09            ;
06B0: 2C              INC     L                   ;
06B1: 36 37           LD      (HL),$37            ;
06B3: C9              RET                         ;

; Continue Sound Routine Vector 0C (1st boss - blimp)
06B4: 21 69 30        LD      HL,$3069            ;
06B7: 35              DEC     (HL)                ;
06B8: 56              LD      D,(HL)              ;
06B9: 2C              INC     L                   ;
06BA: 7E              LD      A,(HL)              ;
06BB: C6 D5           ADD     A,$D5               ;
06BD: 77              LD      (HL),A              ;
06BE: 2C              INC     L                   ;
06BF: CB 42           BIT     0,D                 ;
06C1: 20 09           JR      NZ,$06CC            ;
06C3: AE              XOR     (HL)                ;
06C4: 77              LD      (HL),A              ;
06C5: E6 EF           AND     $EF                 ;
06C7: 4F              LD      C,A                 ;
06C8: CD 99 01        CALL    $0199               ; Set volume
06CB: 79              LD      A,C                 ;
06CC: 2C              INC     L                   ;
06CD: AE              XOR     (HL)                ;
06CE: 77              LD      (HL),A              ;
06CF: F6 80           OR      $80                 ;
06D1: 6F              LD      L,A                 ;
06D2: 26 00           LD      H,$00               ;
06D4: CD AA 01        CALL    $01AA               ; Write tone
06D7: AF              XOR     A                   ;
06D8: C9              RET                         ;

Command0D: 
; Initialization Routine Vector 0D (2nd boss - jet)
06D9: 3E 01           LD      A,$01               ;
06DB: CD C8 01        CALL    FilterCaps          ;
06DE: 21 6D 30        LD      HL,$306D            ;
06E1: 36 28           LD      (HL),$28            ;
06E3: 2C              INC     L                   ;
06E4: 36 05           LD      (HL),$05            ;
06E6: 2C              INC     L                   ;
06E7: 36 30           LD      (HL),$30            ;
06E9: 21 00 06        LD      HL,$0600            ;
06EC: CD AA 01        CALL    $01AA               ; Write tone
06EF: 0E 08           LD      C,$08               ;
06F1: CD 99 01        CALL    $0199               ; Set volume
06F4: AF              XOR     A                   ;
06F5: C9              RET                         ;

; Continue Sound Routine Vector 0D (2nd boss - jet)
06F6: 21 6D 30        LD      HL,$306D            ;
06F9: 35              DEC     (HL)                ;
06FA: 28 E5           JR      Z,$06E1             ;
06FC: 7E              LD      A,(HL)              ;
06FD: E6 07           AND     $07                 ;
06FF: C6 08           ADD     A,$08               ;
0701: 4F              LD      C,A                 ;
0702: CD 99 01        CALL    $0199               ; Set volume
0705: 2C              INC     L                   ;
0706: 7E              LD      A,(HL)              ;
0707: C6 B9           ADD     A,$B9               ;
0709: 77              LD      (HL),A              ;
070A: 2C              INC     L                   ;
070B: AE              XOR     (HL)                ;
070C: 77              LD      (HL),A              ;
070D: 6F              LD      L,A                 ;
070E: 26 06           LD      H,$06               ;
0710: CD AA 01        CALL    $01AA               ; Write tone
0713: AF              XOR     A                   ;
0714: C9              RET                         ;

Command0E: 
; Initialization Routine Vector 0E (3rd boss - helicopter)
0715: 3E 01           LD      A,$01               ;
0717: CD C8 01        CALL    FilterCaps          ;
071A: 21 00 01        LD      HL,$0100            ;
071D: CD AA 01        CALL    $01AA               ; Write tone
0720: 21 70 30        LD      HL,$3070            ;
0723: 36 00           LD      (HL),$00            ;
0725: 2C              INC     L                   ;
0726: 0E 0F           LD      C,$0F               ;
0728: 71              LD      (HL),C              ;
0729: CD 99 01        CALL    $0199               ; Set volume
072C: AF              XOR     A                   ;
072D: 2C              INC     L                   ;
072E: 77              LD      (HL),A              ;
072F: 2C              INC     L                   ;
0730: 77              LD      (HL),A              ;
0731: C9              RET                         ;

; Continue Sound Routine Vector 0E (3rd boss - helicopter)
0732: 21 70 30        LD      HL,$3070            ;
0735: 35              DEC     (HL)                ;
0736: 7E              LD      A,(HL)              ;
0737: CB 47           BIT     0,A                 ;
0739: 23              INC     HL                  ;
073A: 20 0B           JR      NZ,$0747            ;
073C: 35              DEC     (HL)                ;
073D: E6 10           AND     $10                 ;
073F: 20 02           JR      NZ,$0743            ;
0741: 34              INC     (HL)                ;
0742: 34              INC     (HL)                ;
0743: 4E              LD      C,(HL)              ;
0744: CD 99 01        CALL    $0199               ; Set volume
0747: 2C              INC     L                   ;
0748: 7E              LD      A,(HL)              ;
0749: C6 D3           ADD     A,$D3               ;
074B: 77              LD      (HL),A              ;
074C: 2C              INC     L                   ;
074D: AE              XOR     (HL)                ;
074E: 77              LD      (HL),A              ;
074F: E6 7F           AND     $7F                 ;
0751: C6 A8           ADD     A,$A8               ;
0753: 6F              LD      L,A                 ;
0754: E6 07           AND     $07                 ;
0756: 67              LD      H,A                 ;
0757: CD AA 01        CALL    $01AA               ; Write tone
075A: AF              XOR     A                   ;
075B: C9              RET                         ;

Command0F: 
; Initialization Routine Vector 0F (4th boss - super jet)
075C: 3E 01           LD      A,$01               ;
075E: CD C8 01        CALL    FilterCaps          ;
0761: 21 00 01        LD      HL,$0100            ;
0764: CD AA 01        CALL    $01AA               ; Write tone
0767: 0E 0C           LD      C,$0C               ;
0769: CD 99 01        CALL    $0199               ; Set volume
076C: AF              XOR     A                   ;
076D: 21 74 30        LD      HL,$3074            ;
0770: 77              LD      (HL),A              ;
0771: 2C              INC     L                   ;
0772: 77              LD      (HL),A              ;
0773: C9              RET                         ;

; Continue Sound Routine Vector 0F (4th boss - super jet)
0774: 21 74 30        LD      HL,$3074            ;
0777: 7E              LD      A,(HL)              ;
0778: C6 97           ADD     A,$97               ;
077A: 77              LD      (HL),A              ;
077B: 2C              INC     L                   ;
077C: AE              XOR     (HL)                ;
077D: 77              LD      (HL),A              ;
077E: E6 7F           AND     $7F                 ;
0780: C6 C0           ADD     A,$C0               ;
0782: 6F              LD      L,A                 ;
0783: 26 01           LD      H,$01               ;
0785: CD AA 01        CALL    $01AA               ; Write tone
0788: AF              XOR     A                   ;
0789: C9              RET                         ;

Command10: 
; Initialization Routine Vector 10 (5th boss - mother ship)
078A: 3E 01           LD      A,$01               ;
078C: CD C8 01        CALL    FilterCaps          ;
078F: 0E 0A           LD      C,$0A               ;
0791: CD 99 01        CALL    $0199               ; Set volume
0794: 21 76 30        LD      HL,$3076            ;
0797: 36 30           LD      (HL),$30            ;
0799: 2C              INC     L                   ;
079A: 36 02           LD      (HL),$02            ;
079C: 2C              INC     L                   ;
079D: 3E E0           LD      A,$E0               ;
079F: 77              LD      (HL),A              ;
07A0: 2C              INC     L                   ;
07A1: 77              LD      (HL),A              ;
07A2: 6F              LD      L,A                 ;
07A3: 26 00           LD      H,$00               ;
07A5: CD AA 01        CALL    $01AA               ; Write tone
07A8: AF              XOR     A                   ;
07A9: C9              RET                         ;

; Continue Sound Routine Vector 10 (5th boss - mother ship)
07AA: 21 76 30        LD      HL,$3076            ;
07AD: 35              DEC     (HL)                ;
07AE: 7E              LD      A,(HL)              ;
07AF: 28 E6           JR      Z,$0797             ;
07B1: 2C              INC     L                   ;
07B2: E6 0F           AND     $0F                 ;
07B4: 28 07           JR      Z,$07BD             ;
07B6: 7E              LD      A,(HL)              ;
07B7: 2C              INC     L                   ;
07B8: 2C              INC     L                   ;
07B9: 86              ADD     A,(HL)              ;
07BA: C3 A1 07        JP      $07A1               ;
07BD: 34              INC     (HL)                ;
07BE: 34              INC     (HL)                ;
07BF: 2C              INC     L                   ;
07C0: 7E              LD      A,(HL)              ;
07C1: D6 20           SUB     $20                 ;
07C3: C3 9F 07        JP      $079F               ;

Command11: 
; Initialization Routine Vector 11 (User Explosion Component)
07C6: 3E 01           LD      A,$01               ;
07C8: CD C8 01        CALL    FilterCaps          ;
07CB: 21 00 00        LD      HL,$0000            ;
07CE: CD AA 01        CALL    $01AA               ; Write tone
07D1: 21 7A 30        LD      HL,$307A            ;
07D4: 36 00           LD      (HL),$00            ;
07D6: 2C              INC     L                   ;
07D7: 0E 0F           LD      C,$0F               ;
07D9: 71              LD      (HL),C              ;
07DA: CD 99 01        CALL    $0199               ; Set volume
07DD: 2C              INC     L                   ;
07DE: 36 45           LD      (HL),$45            ;
07E0: 2C              INC     L                   ;
07E1: 36 99           LD      (HL),$99            ;
07E3: AF              XOR     A                   ;
07E4: C9              RET                         ;

; Continue Sound Routine Vector 11 (User Explosion Component)
07E5: 21 7A 30        LD      HL,$307A            ;
07E8: 35              DEC     (HL)                ;
07E9: 7E              LD      A,(HL)              ;
07EA: CB 47           BIT     0,A                 ;
07EC: 20 19           JR      NZ,$0807            ;
07EE: 2C              INC     L                   ;
07EF: E6 3F           AND     $3F                 ;
07F1: 20 07           JR      NZ,$07FA            ;
07F3: 35              DEC     (HL)                ;
07F4: 28 13           JR      Z,$0809             ;
07F6: 4E              LD      C,(HL)              ;
07F7: CD 99 01        CALL    $0199               ; Set volume
07FA: 2C              INC     L                   ;
07FB: 7E              LD      A,(HL)              ;
07FC: C6 D3           ADD     A,$D3               ;
07FE: 77              LD      (HL),A              ;
07FF: 2C              INC     L                   ;
0800: AE              XOR     (HL)                ;
0801: 77              LD      (HL),A              ;
0802: 6F              LD      L,A                 ;
0803: 67              LD      H,A                 ;
0804: CD AA 01        CALL    $01AA               ; Write tone
0807: AF              XOR     A                   ;
0808: C9              RET                         ;
0809: 3D              DEC     A                   ;
080A: C9              RET                         ;

Command12: 
; Initialization Routine Vector 12 (User Explosion Component)
080B: 3E 01           LD      A,$01               ;
080D: CD C8 01        CALL    FilterCaps          ;
0810: 21 00 00        LD      HL,$0000            ;
0813: 22 81 30        LD      ($3081),HL          ;
0816: CD AA 01        CALL    $01AA               ; Write tone
0819: 21 7E 30        LD      HL,$307E            ;
081C: 36 00           LD      (HL),$00            ;
081E: 2C              INC     L                   ;
081F: 0E 0F           LD      C,$0F               ;
0821: 71              LD      (HL),C              ;
0822: CD 99 01        CALL    $0199               ; Set volume
0825: 2C              INC     L                   ;
0826: AF              XOR     A                   ;
0827: 77              LD      (HL),A              ;
0828: C9              RET                         ;

; Continue Sound Routine Vector 12 (User Explosion Component)
0829: 21 7E 30        LD      HL,$307E            ;
082C: 35              DEC     (HL)                ;
082D: 7E              LD      A,(HL)              ;
082E: 57              LD      D,A                 ;
082F: 2C              INC     L                   ;
0830: E6 1F           AND     $1F                 ;
0832: 20 07           JR      NZ,$083B            ;
0834: 35              DEC     (HL)                ;
0835: 28 1E           JR      Z,$0855             ;
0837: 4E              LD      C,(HL)              ;
0838: CD 99 01        CALL    $0199               ; Set volume
083B: 2C              INC     L                   ;
083C: 7E              LD      A,(HL)              ;
083D: C6 C5           ADD     A,$C5               ;
083F: 77              LD      (HL),A              ;
0840: 2A 81 30        LD      HL,($3081)          ;
0843: AA              XOR     D                   ;
0844: AD              XOR     L                   ;
0845: 6F              LD      L,A                 ;
0846: 67              LD      H,A                 ;
0847: FE 80           CP      $80                 ;
0849: 30 02           JR      NC,$084D            ;
084B: 26 01           LD      H,$01               ;
084D: 22 81 30        LD      ($3081),HL          ;
0850: CD AA 01        CALL    $01AA               ; Write tone
0853: AF              XOR     A                   ;
0854: C9              RET                         ;
0855: 3D              DEC     A                   ;
0856: C9              RET                         ;

Command13: 
; Initialization Routine Vector 13 (User Explosion Component)
0857: 3E 02           LD      A,$02               ;
0859: CD C8 01        CALL    FilterCaps          ;
085C: 21 00 00        LD      HL,$0000            ;
085F: CD AA 01        CALL    $01AA               ; Write tone
0862: 21 83 30        LD      HL,$3083            ;
0865: 0E 0F           LD      C,$0F               ;
0867: 71              LD      (HL),C              ;
0868: CD 99 01        CALL    $0199               ; Set volume
086B: 2C              INC     L                   ;
086C: 36 30           LD      (HL),$30            ;
086E: 2C              INC     L                   ;
086F: 36 95           LD      (HL),$95            ;
0871: 2C              INC     L                   ;
0872: 36 3D           LD      (HL),$3D            ;
0874: 21 70 00        LD      HL,$0070            ;
0877: 22 87 30        LD      ($3087),HL          ;
087A: 22 89 30        LD      ($3089),HL          ;
087D: AF              XOR     A                   ;
087E: C9              RET                         ;

; Continue Sound Routine Vector 13 (User Explosion Component)
087F: 21 84 30        LD      HL,$3084            ;
0882: 35              DEC     (HL)                ;
0883: 7E              LD      A,(HL)              ;
0884: 28 28           JR      Z,$08AE             ;
0886: FE 10           CP      $10                 ;
0888: 38 10           JR      C,$089A             ;
088A: 2C              INC     L                   ;
088B: 7E              LD      A,(HL)              ;
088C: C6 C9           ADD     A,$C9               ;
088E: 77              LD      (HL),A              ;
088F: 2C              INC     L                   ;
0890: AE              XOR     (HL)                ;
0891: 77              LD      (HL),A              ;
0892: 6F              LD      L,A                 ;
0893: 26 01           LD      H,$01               ;
0895: CD AA 01        CALL    $01AA               ; Write tone
0898: AF              XOR     A                   ;
0899: C9              RET                         ;
089A: D6 10           SUB     $10                 ;
089C: ED 44           NEG                         ;
089E: 87              ADD     A,A                 ;
089F: 4F              LD      C,A                 ;
08A0: 06 00           LD      B,$00               ;
08A2: 2A 89 30        LD      HL,($3089)          ;
08A5: 09              ADD     HL,BC               ;
08A6: 22 89 30        LD      ($3089),HL          ;
08A9: CD AA 01        CALL    $01AA               ; Write tone
08AC: AF              XOR     A                   ;
08AD: C9              RET                         ;
08AE: 2D              DEC     L                   ;
08AF: 35              DEC     (HL)                ;
08B0: 28 1C           JR      Z,$08CE             ;
08B2: 4E              LD      C,(HL)              ;
08B3: CD 99 01        CALL    $0199               ; Set volume
08B6: 2C              INC     L                   ;
08B7: 3A 85 30        LD      A,($3085)           ;
08BA: E6 3F           AND     $3F                 ;
08BC: C6 30           ADD     A,$30               ;
08BE: 77              LD      (HL),A              ;
08BF: 2A 87 30        LD      HL,($3087)          ;
08C2: 01 60 00        LD      BC,$0060            ;
08C5: 09              ADD     HL,BC               ;
08C6: 22 87 30        LD      ($3087),HL          ;
08C9: 22 89 30        LD      ($3089),HL          ;
08CC: AF              XOR     A                   ;
08CD: C9              RET                         ;
08CE: 3D              DEC     A                   ;
08CF: C9              RET                         ;

Command14: 
; Initialization Routine Vector 14 (User Explosion Component)
08D0: 3E 02           LD      A,$02               ;
08D2: CD C8 01        CALL    FilterCaps          ;
08D5: 21 00 00        LD      HL,$0000            ;
08D8: CD AA 01        CALL    $01AA               ; Write tone
08DB: 21 8B 30        LD      HL,$308B            ;
08DE: 0E 0F           LD      C,$0F               ;
08E0: 71              LD      (HL),C              ;
08E1: CD 99 01        CALL    $0199               ; Set volume
08E4: 2C              INC     L                   ;
08E5: 36 30           LD      (HL),$30            ;
08E7: 2C              INC     L                   ;
08E8: 36 95           LD      (HL),$95            ;
08EA: 2C              INC     L                   ;
08EB: 36 3D           LD      (HL),$3D            ;
08ED: 21 38 00        LD      HL,$0038            ;
08F0: 22 8F 30        LD      ($308F),HL          ;
08F3: 22 91 30        LD      ($3091),HL          ;
08F6: AF              XOR     A                   ;
08F7: C9              RET                         ;

; Continue Sound Routine Vector 14 (User Explosion Component)
08F8: 21 8C 30        LD      HL,$308C            ;
08FB: 35              DEC     (HL)                ;
08FC: 7E              LD      A,(HL)              ;
08FD: 28 23           JR      Z,$0922             ;
08FF: FE 10           CP      $10                 ;
0901: 38 10           JR      C,$0913             ;
0903: 2C              INC     L                   ;
0904: 7E              LD      A,(HL)              ;
0905: C6 D3           ADD     A,$D3               ;
0907: 77              LD      (HL),A              ;
0908: 2C              INC     L                   ;
0909: AE              XOR     (HL)                ;
090A: 77              LD      (HL),A              ;
090B: 6F              LD      L,A                 ;
090C: 26 01           LD      H,$01               ;
090E: CD AA 01        CALL    $01AA               ; Write tone
0911: AF              XOR     A                   ;
0912: C9              RET                         ;
0913: 2A 91 30        LD      HL,($3091)          ;
0916: 01 30 00        LD      BC,$0030            ;
0919: 09              ADD     HL,BC               ;
091A: 22 91 30        LD      ($3091),HL          ;
091D: CD AA 01        CALL    $01AA               ; Write tone
0920: AF              XOR     A                   ;
0921: C9              RET                         ;
0922: 2D              DEC     L                   ;
0923: 35              DEC     (HL)                ;
0924: 28 1C           JR      Z,$0942             ;
0926: 4E              LD      C,(HL)              ;
0927: CD 99 01        CALL    $0199               ; Set volume
092A: 2C              INC     L                   ;
092B: 3A 8D 30        LD      A,($308D)           ;
092E: E6 3F           AND     $3F                 ;
0930: C6 30           ADD     A,$30               ;
0932: 77              LD      (HL),A              ;
0933: 2A 8F 30        LD      HL,($308F)          ;
0936: 01 06 00        LD      BC,$0006            ;
0939: 09              ADD     HL,BC               ;
093A: 22 8F 30        LD      ($308F),HL          ;
093D: 22 91 30        LD      ($3091),HL          ;
0940: AF              XOR     A                   ;
0941: C9              RET                         ;
0942: 3D              DEC     A                   ;
0943: C9              RET                         ;

Command15: 
; Initialization Routine Vector 15 (User Explosion Component)
0944: 3E 01           LD      A,$01               ;
0946: CD C8 01        CALL    FilterCaps          ;
0949: 21 93 30        LD      HL,$3093            ;
094C: 36 00           LD      (HL),$00            ;
094E: 2C              INC     L                   ;
094F: 36 D0           LD      (HL),$D0            ;
0951: 2C              INC     L                   ;
0952: 0E 0D           LD      C,$0D               ;
0954: 71              LD      (HL),C              ;
0955: CD 99 01        CALL    $0199               ; Set volume
0958: 2C              INC     L                   ;
0959: 36 93           LD      (HL),$93            ;
095B: 2C              INC     L                   ;
095C: 36 D5           LD      (HL),$D5            ;
095E: 21 C0 00        LD      HL,$00C0            ;
0961: CD AA 01        CALL    $01AA               ; Write tone
0964: AF              XOR     A                   ;
0965: C9              RET                         ;

; Continue Sound Routine Vector 15 (User Explosion Component)
0966: 21 93 30        LD      HL,$3093            ;
0969: 35              DEC     (HL)                ;
096A: 7E              LD      A,(HL)              ;
096B: E6 03           AND     $03                 ;
096D: 20 29           JR      NZ,$0998            ;
096F: 2C              INC     L                   ;
0970: 35              DEC     (HL)                ;
0971: 28 27           JR      Z,$099A             ;
0973: 7E              LD      A,(HL)              ;
0974: FE 98           CP      $98                 ;
0976: 28 D9           JR      Z,$0951             ;
0978: FE 80           CP      $80                 ;
097A: 28 D5           JR      Z,$0951             ;
097C: 2C              INC     L                   ;
097D: E6 0F           AND     $0F                 ;
097F: 20 05           JR      NZ,$0986            ;
0981: 35              DEC     (HL)                ;
0982: 4E              LD      C,(HL)              ;
0983: CD 99 01        CALL    $0199               ; Set volume
0986: 2C              INC     L                   ;
0987: 7E              LD      A,(HL)              ;
0988: C6 53           ADD     A,$53               ;
098A: 77              LD      (HL),A              ;
098B: 2C              INC     L                   ;
098C: AE              XOR     (HL)                ;
098D: 77              LD      (HL),A              ;
098E: 6F              LD      L,A                 ;
098F: FE E0           CP      $E0                 ;
0991: 38 01           JR      C,$0994             ;
0993: AF              XOR     A                   ;
0994: 67              LD      H,A                 ;
0995: CD AA 01        CALL    $01AA               ; Write tone
0998: AF              XOR     A                   ;
0999: C9              RET                         ;
099A: 3D              DEC     A                   ;
099B: C9              RET                         ;

Command16: 
; Initialization Routine Vector 16 (Pickup Parachute)
099C: AF              XOR     A                   ;
099D: CD C8 01        CALL    FilterCaps          ;
09A0: 0E 09           LD      C,$09               ;
09A2: CD 99 01        CALL    $0199               ; Set volume
09A5: 21 99 30        LD      HL,$3099            ;
09A8: 3E F6           LD      A,$F6               ;
09AA: D6 06           SUB     $06                 ;
09AC: 77              LD      (HL),A              ;
09AD: D6 7E           SUB     $7E                 ;
09AF: 28 1E           JR      Z,$09CF             ;
09B1: 2D              DEC     L                   ;
09B2: 36 30           LD      (HL),$30            ;
09B4: 21 30 00        LD      HL,$0030            ;
09B7: CD AA 01        CALL    $01AA               ; Write tone
09BA: AF              XOR     A                   ;
09BB: C9              RET                         ;

; Continue Sound Routine Vector 16 (Pickup Parachute)
09BC: 21 98 30        LD      HL,$3098            ;
09BF: 7E              LD      A,(HL)              ;
09C0: C6 06           ADD     A,$06               ;
09C2: 77              LD      (HL),A              ;
09C3: 2C              INC     L                   ;
09C4: BE              CP      (HL)                ;
09C5: 28 E3           JR      Z,$09AA             ;
09C7: 6F              LD      L,A                 ;
09C8: 26 00           LD      H,$00               ;
09CA: CD AA 01        CALL    $01AA               ; Write tone
09CD: AF              XOR     A                   ;
09CE: C9              RET                         ;
09CF: 3D              DEC     A                   ;
09D0: C9              RET                         ;

Command17: 
; Initialization Routine Vector 17 (Free Man)
09D1: 3E 01           LD      A,$01               ;
09D3: CD C8 01        CALL    FilterCaps          ;
09D6: 0E 0F           LD      C,$0F               ;
09D8: CD 99 01        CALL    $0199               ; Set volume
09DB: 21 9A 30        LD      HL,$309A            ;
09DE: 36 1D           LD      (HL),$1D            ;
09E0: 2C              INC     L                   ;
09E1: 2D              DEC     L                   ;
09E2: 35              DEC     (HL)                ;
09E3: 7E              LD      A,(HL)              ;
09E4: 28 1A           JR      Z,$0A00             ;
09E6: 2C              INC     L                   ;
09E7: 77              LD      (HL),A              ;
09E8: 87              ADD     A,A                 ;
09E9: 6F              LD      L,A                 ;
09EA: 26 00           LD      H,$00               ;
09EC: CD AA 01        CALL    $01AA               ; Write tone
09EF: AF              XOR     A                   ;
09F0: C9              RET                         ;

; Continue Sound Routine Vector 17 (Free Man)
09F1: 21 9B 30        LD      HL,$309B            ;
09F4: 35              DEC     (HL)                ;
09F5: 28 EA           JR      Z,$09E1             ;
09F7: 6E              LD      L,(HL)              ;
09F8: 26 00           LD      H,$00               ;
09FA: 29              ADD     HL,HL               ;
09FB: CD AA 01        CALL    $01AA               ; Write tone
09FE: AF              XOR     A                   ;
09FF: C9              RET                         ;
0A00: 3D              DEC     A                   ;
0A01: C9              RET                         ;

Command18: 
; Initialization Routine Vector 18 (Time Jump 1)
0A02: AF              XOR     A                   ;
0A03: CD C8 01        CALL    FilterCaps          ;
0A06: 0E 0A           LD      C,$0A               ;
0A08: CD 99 01        CALL    $0199               ; Set volume
0A0B: 3E 80           LD      A,$80               ;
0A0D: 32 9E 30        LD      ($309E),A           ;
0A10: 21 9C 30        LD      HL,$309C            ;
0A13: 36 00           LD      (HL),$00            ;
0A15: 2C              INC     L                   ;
0A16: 36 C0           LD      (HL),$C0            ;
0A18: 21 C0 00        LD      HL,$00C0            ;
0A1B: CD AA 01        CALL    $01AA               ; Write tone
0A1E: AF              XOR     A                   ;
0A1F: C9              RET                         ;

; Continue Sound Routine Vector 18 (Time Jump 1)
0A20: 21 9C 30        LD      HL,$309C            ;
0A23: 35              DEC     (HL)                ;
0A24: CB 46           BIT     0,(HL)              ;
0A26: 23              INC     HL                  ;
0A27: 7E              LD      A,(HL)              ;
0A28: 20 15           JR      NZ,$0A3F            ;
0A2A: 35              DEC     (HL)                ;
0A2B: 7E              LD      A,(HL)              ;
0A2C: FE 20           CP      $20                 ;
0A2E: 28 18           JR      Z,$0A48             ;
0A30: 2C              INC     L                   ;
0A31: BE              CP      (HL)                ;
0A32: 3A 9D 30        LD      A,($309D)           ;
0A35: 20 09           JR      NZ,$0A40            ;
0A37: 7E              LD      A,(HL)              ;
0A38: C6 05           ADD     A,$05               ;
0A3A: 77              LD      (HL),A              ;
0A3B: 2D              DEC     L                   ;
0A3C: C3 16 0A        JP      $0A16               ;
0A3F: 1F              RRA                         ;
0A40: 6F              LD      L,A                 ;
0A41: 26 00           LD      H,$00               ;
0A43: CD AA 01        CALL    $01AA               ; Write tone
0A46: AF              XOR     A                   ;
0A47: C9              RET                         ;
0A48: 3E FF           LD      A,$FF               ;
0A4A: C9              RET                         ;

Command19: 
; Initialization Routine Vector 19 (Time Jump 2)
0A4B: AF              XOR     A                   ;
0A4C: CD C8 01        CALL    FilterCaps          ;
0A4F: 21 C0 00        LD      HL,$00C0            ;
0A52: CD AA 01        CALL    $01AA               ; Write tone
0A55: 0E 0F           LD      C,$0F               ;
0A57: CD 99 01        CALL    $0199               ; Set volume
0A5A: 21 9F 30        LD      HL,$309F            ;
0A5D: 36 00           LD      (HL),$00            ;
0A5F: 2C              INC     L                   ;
0A60: 36 10           LD      (HL),$10            ;
0A62: 2C              INC     L                   ;
0A63: 36 03           LD      (HL),$03            ;
0A65: 2C              INC     L                   ;
0A66: 36 05           LD      (HL),$05            ;
0A68: AF              XOR     A                   ;
0A69: C9              RET                         ;

; Continue Sound Routine Vector 19 (Time Jump 2)
0A6A: 21 9F 30        LD      HL,$309F            ;
0A6D: 35              DEC     (HL)                ;
0A6E: 7E              LD      A,(HL)              ;
0A6F: 2C              INC     L                   ;
0A70: E6 3F           AND     $3F                 ;
0A72: 20 03           JR      NZ,$0A77            ;
0A74: 35              DEC     (HL)                ;
0A75: 28 19           JR      Z,$0A90             ;
0A77: E6 03           AND     $03                 ;
0A79: 20 13           JR      NZ,$0A8E            ;
0A7B: 56              LD      D,(HL)              ;
0A7C: 2C              INC     L                   ;
0A7D: 7E              LD      A,(HL)              ;
0A7E: C6 05           ADD     A,$05               ;
0A80: 77              LD      (HL),A              ;
0A81: 2C              INC     L                   ;
0A82: AE              XOR     (HL)                ;
0A83: E6 0F           AND     $0F                 ;
0A85: 77              LD      (HL),A              ;
0A86: BA              CP      D                   ;
0A87: 38 01           JR      C,$0A8A             ;
0A89: AF              XOR     A                   ;
0A8A: 4F              LD      C,A                 ;
0A8B: CD 99 01        CALL    $0199               ; Set volume
0A8E: AF              XOR     A                   ;
0A8F: C9              RET                         ;
0A90: 3D              DEC     A                   ;
0A91: C9              RET                         ;

CommandTable: 
; Initialize sound routines
0A92: 97 01 ; 0   Write 0 to voice
0A94: E7 03 ; 1  0 Coin Drop
0A96: 32 04 ; 2  0 Plane Fire
0A98: 62 04 ; 3  0 1910 Bomb
0A9A: 9A 04 ; 4  1 Missile launch
0A9C: D9 04 ; 5  0 Missile (continuous)
0A9E: 0A 05 ; 6  0 UFO shot
0AA0: 4D 05 ; 7  0 User Fire
0AA2: 88 05 ; 8  1 Enemy Explosion Component (thud)
0AA4: C8 05 ; 9  1 Enemy Explosion Component (white-noise)
0AA6: 1B 06 ; A  0 Tracker or Bomb Explosion
0AA8: 5E 06 ; B  0 Squad Appears
0AAA: 95 06 ; C  1 1st Boss
0AAC: D9 06 ; D  1 2nd Boss
0AAE: 15 07 ; E  1 3rd Boss
0AB0: 5C 07 ; F  1 4th Boss
0AB2: 8A 07 ; 10 1 5th Boss
0AB4: C6 07 ; 11 1 User Explosion Component
0AB6: 0B 08 ; 12 1 User Explosion Component
0AB8: 57 08 ; 13 2 User Explosion Component
0ABA: D0 08 ; 14 2 User Explosion Component
0ABC: 44 09 ; 15 1 User Explosion Component
0ABE: 9C 09 ; 16 0 Pickup Parachute
0AC0: D1 09 ; 17 1 Free Man
0AC2: 02 0A ; 18 0 Time Jump 1
0AC4: 4B 0A ; 19 0 Time Jump 2
0AC6: 16 0B ; 1A 0 Initialize song 2
0AC8: 1A 0B ; 1B 1 Initialize song 1
0ACA: 3B 0B ; 1C 0 Initialize music D1
0ACC: 3B 0B ; 1D 0 Initialize music D2
0ACE: 3B 0B ; 1E 0 Initialize music D3
0AD0: 3B 0B ; 1F 0 Initialize music D4
0AD2: 3B 0B ; 20 0 Initialize music D5

; Continue sound routines
0AD4: 00 00 ; 0 Place holder for initialize command
0AD6: 02 04 ; 1
0AD8: 4B 04 ; 2
0ADA: 7A 04 ; 3 
0ADC: B3 04 ; 4 
0ADE: F5 04 ; 5
0AE0: 28 05 ; 6
0AE2: 6C 05 ; 7
0AE4: A4 05 ; 8
0AE6: EA 05 ; 9
0AE8: 3A 06 ; A
0AEA: 77 06 ; B
0AEC: B4 06 ; C
0AEE: F6 06 ; D
0AF0: 32 07 ; E
0AF2: 74 07 ; F
0AF4: AA 07 ; 10
0AF6: E5 07 ; 11
0AF8: 29 08 ; 12
0AFA: 7F 08 ; 13
0AFC: F8 08 ; 14
0AFE: 66 09 ; 15
0B00: BC 09 ; 16
0B02: F1 09 ; 17
0B04: 20 0A ; 18
0B06: 6A 0A ; 19
0B08: 00 00 ; 1A -- Playing song 0 (never kept in buffer)
0B0A: 00 00 ; 1B -- Playing song 1 (never kept in buffer)
0B0C: 41 0B ; 1C Continue music D1
0B0E: 4A 0B ; 1D Continue music D2
0B10: 53 0B ; 1E Continue music D3
0B12: 5C 0B ; 1F Continue music D4
0B14: 65 0B ; 20 Continue music D5

Command1A: 
; Initialization Routine Vector 1A
0B16: AF              XOR     A                   ; Play song 0
0B17: C3 1C 0B        JP      $0B1C               ; Play it

Command1B: 
; Initialization Routine Vector 1B
0B1A: 3E 01           LD      A,$01               ; Play song 1
0B1C: CD 7E 03        CALL    $037E               ; Initialize music descriptors
0B1F: 11 00 30        LD      DE,$3000            ; Command table
0B22: 21 2F 0B        LD      HL,$0B2F            ; Fill ...
0B25: 01 0C 00        LD      BC,$000C            ; ... symultaneous
0B28: ED B0           LDIR                        ; ... commands
0B2A: E1              POP     HL                  ; Clean ...
0B2B: E1              POP     HL                  ; ... stack frame
0B2C: C3 BF 00        JP      MainLoop            ; Goto main loop

; Play song command buffer
0B2F: 1C 00 ; All five music processors playing
0B31: 1D 00 ; ...
0B33: 1E 00 ; ...
0B35: 1F 00 ; ...
0B37: 20 00 ; ...
0B39: 00 00 ;

; Initialization Routine Vector 1C,1D,1E,1F,20 Music
; Do nothing.
0B3B: AF              XOR     A                   ;
0B3C: CD C8 01        CALL    FilterCaps          ; That mysterious routine ?
0B3F: AF              XOR     A                   ; Initialized
0B40: C9              RET                         ; Done

; Continue Sound Routine Vector 1C
0B41: DD 21 0F 30     LD      IX,$300F            ; Descriptor 1
0B45: CD FC 01        CALL    MusicProcessing     ; Process
0B48: AF              XOR     A                   ; Continue flag
0B49: C9              RET                         ; Done

; Continue Sound Routine Vector 1D
0B4A: DD 21 19 30     LD      IX,$3019            ; Descriptor 2
0B4E: CD FC 01        CALL    MusicProcessing     ; Process
0B51: AF              XOR     A                   ; Continue flag
0B52: C9              RET                         ; Done

; Continue Sound Routine Vector 1E
0B53: DD 21 23 30     LD      IX,$3023            ; Descriptor 3
0B57: CD FC 01        CALL    MusicProcessing     ; Process
0B5A: AF              XOR     A                   ; Continue flag
0B5B: C9              RET                         ; Done

; Continue Sound Routine Vector 1F
0B5C: DD 21 2D 30     LD      IX,$302D            ; Descriptor 4
0B60: CD FC 01        CALL    MusicProcessing     ; Process
0B63: AF              XOR     A                   ; Continue flag
0B64: C9              RET                         ; Done

; Continue Sound Routine Vector 20
0B65: DD 21 37 30     LD      IX,$3037            ; Descriptor 5
0B69: CD FC 01        CALL    MusicProcessing     ; Process
0B6C: AF              XOR     A                   ; Continue flag
0B6D: C9              RET                         ; Done

MusicData: 
; Descriptor pointers for songs (10 bytes each)
; Song 0
0B6E: 82 0B 
0B70: B2 0B 
0B72: E2 0B 
0B74: 08 0C 
0B76: 2D 0C 
; Song 1
0B78: 2E 0C 
0B7A: 70 0C 
0B7C: AD 0C 
0B7E: EB 0C 
0B80: 04 0D 

;Song data
; Song 0 Descriptor 0
0B82: 1F 0E 3F 16 5F 00 81 60 5F 08 66 A8 AD 92 7F 
0B91: 00 B1 91 7F FF B1 B2 91 7F 00 D4 B4 7F FF B4 
0BA0: 60 74 3F 13 77 76 74 74 73 71 71 70 6D 6D 70 
0BAF: 71 AD FF 

; Song 0 Descriptor 1
0BB2: 1F 02 3F 16 5F 00 81 60 5F 08 66 A8 AD 92 7F 
0BC1: 00 B1 91 7F FF B1 B2 91 7F 00 D4 B4 7F FF B4 
0BD0: 60 74 3F 13 77 76 74 74 73 71 71 70 6D 6D 70 
0BDF: 71 AD FF 

; Song 0 Descriptor 2
0BE2: 1F 0E 3F 13 5F 08 8D 6D 8D 6D 8D 6D 8D 6D 8D 
0BF1: 6D 8D 6D 8D 6D 8D 6D 88 68 85 60 86 60 87 60 
0C00: 7F 00 CB 7F FF AB AD FF 

; Song 0 Descriptor 3
0C08: 1F 02 3F 13 5F 08 8D 6D 8D 6D 8D 6D 8D 6D 8D 
0C17: 6D 8D 6D 8D 6D 8D 6D 88 68 85 60 86 60 87 60 
0C26: 7F 00 CB 7F FF AB AD 

; Song 0 Descriptor 4
0C2D: FF 

; Song 1 Descriptor 0
0C2E: 1F 0E 3F 15 5F 00 81 5F 07 65 65 25 25 25 25 
0C3D: A5 85 65 85 65 65 80 65 65 25 25 25 25 A5 85 
0C4C: 65 61 68 6C 6F 80 6A 6A 2A 2A 2A 2A AA 8A 6A 
0C5B: 8A 6A 6A 80 6A 6A 2A 2A 2A 2A AA 8A 68 68 68 
0C6A: 6A 6A 80 DF 37 0C 

; Song 1 Descriptor 1
0C70: 1F 0E 3F 15 5F 00 81 5F 07 68 68 28 28 28 28 
0C7F: A8 88 68 88 68 68 80 68 68 28 28 28 28 A8 88 
0C8E: A8 60 80 6D 6D 2D 2D 2D 2D AD 8D 6D 8D 6D 6D 
0C9D: 80 6D 6D 2D 2D 2D 2D AD 8D 6D 6D 6D AD DF 79 
0CAC: 0C 

; Song 1 Descriptor 2
0CAD: 1F 0E 3F 15 5F 00 81 5F 07 6C 6C 2C 2C 2C 2C 
0CBC: AC 8C 6C 8C 6C 6C 80 6C 6C 2C 2C 2C 2C AC 8C 
0CCB: AC 60 80 72 72 32 32 32 32 B2 92 72 92 72 72 
0CDA: 80 72 72 32 32 32 32 B2 92 72 72 72 92 80 DF 
0CE9: B6 0C 

; Song 1 Descriptor 3
0CEB: 1F 0E 3F 15 5F 00 E1 E0 E0 C0 A0 5F 07 78 74 
0CFA: 79 76 E0 E0 E0 C0 A0 DF F8 0C 

; Song 1 Descriptor 4
0D04: 1F 02 3F 15 5F 07 8D 60 6D 88 60 6D 60 6D 60 
0D13: 6D 28 28 28 28 88 60 8D 60 6D 88 60 6D 60 6D 
0D22: 60 6D 88 6D 68 8F 60 6F 8A 60 6F 60 6F 60 6F 
0D31: 2A 2A 2A 2A 8A 60 8F 60 6F 8A 60 8F 8F 6F 6A 
0D40: 6F 6A 6E DF 0A 0D 1F 0E 3F 16 5F 09 BF B3 B2 
0D4F: A9 B0 B9 BB BA AE E2 B7 B3 B4 C1 B5 B9 FF 

0D5D: FF FF FF
0D60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0D70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0D80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0D90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0DA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0DB0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0DC0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0DD0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0DE0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0DF0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

0E00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0EA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0EB0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0EC0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0ED0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0EE0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0EF0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

0F00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FB0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FC0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FD0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FE0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FF0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF