Chase H.Q. | Routines |
Prev: EF19 | Up: Map | Next: F0C6 |
Used by the routine at play_music_48k.
|
||||||||
playdrum_2 | EF22 | LD HL,$F05A | Address of drum 2 data | |||||
EF25 | LD D,$6C | 108 sample bytes | ||||||
EF27 | JR pd_start | Jump to pd_start | ||||||
This entry point is used by the routine at play_music_48k.
|
||||||||
playdrum_1 | EF29 | LD HL,$EF5E | Address of drum 1 data | |||||
EF2C | LD D,$FC | 252 sample bytes | ||||||
This modifies the number of bits of each sample byte that is output.
|
||||||||
pd_start | EF2E | LD ($EF3A),A | Self modify 'LD B' @ pd_go <speed value> to be A as passed in | |||||
EF31 | LD A,$01 | Self modify 'LD A' @ pm_start_drums <drum is playing flag> to be 1 | ||||||
EF33 | LD ($EF0E),A | |||||||
EF36 | JR pd_go | Jump to pd_go | ||||||
This entry point is used by the routine at play_music_48k.
|
||||||||
pd_bank_go | EF38 | EXX | Bank | |||||
Output a byte.
|
||||||||
pd_go | EF39 | LD B,$08 | <speed value> iterations -- Self modified by pd_start (sampled: 8, 3, 1) | |||||
pd_loop | EF3B | LD A,$10 | Set speaker flag | |||||
EF3D | NOP | Delay | ||||||
EF3E | BIT 7,(HL) | Test a sample bit | ||||||
EF40 | JR NZ,pd_output_bit | Set speaker flag to match sample bit | ||||||
EF42 | RES 4,A | |||||||
pd_output_bit | EF44 | OUT ($FE),A | Output it | |||||
EF46 | RLC (HL) | Rotate sample byte in-place | ||||||
EF48 | DJNZ pd_loop | Loop to pd_loop while B | ||||||
EF4A | INC HL | Move to next sample byte | ||||||
EF4B | DEC D | Decrement sample bytes remaining | ||||||
EF4C | JR Z,pd_end_of_sample | Jump to pd_end_of_sample if no bytes remain | ||||||
EF4E | LD A,($EF14) | Read A from 'LD A' @ pm_wait_for_interrupt -- <interrupt flag> | ||||||
EF51 | AND A | Set flags | ||||||
EF52 | JP Z,pd_go | Loop to pd_go if clear | ||||||
EF55 | EXX | Otherwise unbank | ||||||
EF56 | RET | Return | ||||||
pd_end_of_sample | EF57 | XOR A | Self modify 'LD A' @ pm_start_drums <drum is playing flag> to be 0 -- zeroed when playing stops | |||||
EF58 | LD ($EF0E),A | |||||||
EF5B | JP pm_wait_for_interrupt | Jump to pm_wait_for_interrupt | ||||||
drum1 | EF5E | DEFB $FF,$00,$00,$00,$0F,$FF,$FF,$FF | Drum 1 sample/data | |||||
EF66 | DEFB $EF,$FF,$FF,$FF,$BE,$36,$10,$00 | |||||||
EF6E | DEFB $00,$00,$00,$00,$00,$00,$00,$00 | |||||||
EF76 | DEFB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
EF7E | DEFB $FF,$FF,$FF,$FF,$FF,$F8,$78,$80 | |||||||
EF86 | DEFB $00,$00,$00,$00,$00,$00,$00,$00 | |||||||
EF8E | DEFB $00,$C0,$E1,$FF,$FF,$FF,$FF,$FF | |||||||
EF96 | DEFB $FF,$FF,$FF,$FF,$FF,$BE,$F3,$9E | |||||||
EF9E | DEFB $70,$C0,$00,$00,$00,$00,$00,$00 | |||||||
EFA6 | DEFB $01,$9E,$FF,$3F,$FF,$FF,$FF,$FF | |||||||
EFAE | DEFB $FF,$FF,$FF,$FF,$FF,$FB,$FF,$3F | |||||||
EFB6 | DEFB $38,$F0,$03,$80,$00,$00,$00,$00 | |||||||
EFBE | DEFB $00,$00,$C6,$DB,$9D,$FF,$FF,$FF | |||||||
EFC6 | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
EFCE | DEFB $FF,$FE,$07,$70,$60,$00,$00,$00 | |||||||
EFD6 | DEFB $01,$00,$00,$08,$80,$77,$DF,$FF | |||||||
EFDE | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
EFE6 | DEFB $FE,$FF,$F8,$A3,$CE,$1C,$64,$02 | |||||||
EFEE | DEFB $20,$00,$0E,$00,$00,$3F,$18,$8F | |||||||
EFF6 | DEFB $9F,$FF,$FF,$DF,$FF,$FF,$FF,$FF | |||||||
EFFE | DEFB $FF,$EF,$FF,$FF,$EF,$FF,$3F,$FC | |||||||
F006 | DEFB $9C,$38,$CE,$00,$03,$00,$00,$00 | |||||||
F00E | DEFB $C4,$7F,$01,$FF,$FF,$FF,$FF,$FF | |||||||
F016 | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
F01E | DEFB $3E,$40,$98,$10,$C0,$1F,$80,$00 | |||||||
F026 | DEFB $FF,$00,$1F,$FF,$7F,$FF,$FF,$FF | |||||||
F02E | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$B8,$77 | |||||||
F036 | DEFB $7E,$FC,$FE,$7F,$E7,$6F,$DE,$FF | |||||||
F03E | DEFB $FE,$07,$F9,$FF,$3B,$3F,$3F,$FE | |||||||
F046 | DEFB $DF,$FF,$FF,$EF,$FF,$FF,$FF,$FF | |||||||
F04E | DEFB $FF,$FF,$03,$FE,$FF,$33,$A7,$FF | |||||||
F056 | DEFB $9F,$FF,$EF,$00 | |||||||
drum2 | F05A | DEFB $FF,$FF,$FF,$FF,$FF,$F3,$F8,$30 | Drum 2 sample/data | |||||
F062 | DEFB $FF,$DE,$00,$FF,$81,$FF,$FF,$FF | |||||||
F06A | DEFB $FF,$FF,$FF,$FF,$FF,$F4,$3B,$80 | |||||||
F072 | DEFB $00,$00,$00,$00,$00,$3C,$00,$00 | |||||||
F07A | DEFB $00,$00,$1B,$FF,$FF,$FF,$FF,$FF | |||||||
F082 | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
F08A | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
F092 | DEFB $FF,$FF,$E0,$00,$00,$00,$00,$00 | |||||||
F09A | DEFB $00,$00,$00,$00,$00,$00,$00,$00 | |||||||
F0A2 | DEFB $00,$00,$00,$00,$7F,$FF,$FF,$FF | |||||||
F0AA | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
F0B2 | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
F0BA | DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |||||||
F0C2 | DEFB $FF,$FD,$7E,$00 |
Prev: EF19 | Up: Map | Next: F0C6 |