Routines |
Prev: D682 | Up: Map | Next: D6DB |
D68C | LD B,$03 | Set B the number of channels to play | ||
D68E | LD IX,$D832 | Set IX to address for channel #1 sound data | ||
D692 | LD D,$00 | Set sound register for fine pitch on channel #1 | ||
D694 | LD A,$01 | Set channel volume #1 | ||
D696 | LD ($D857),A | |||
D699 | PUSH BC | Save BC and DE | ||
D69A | PUSH DE | |||
D69B | CALL $D6DB | Configure next tone/noise data for current channel | ||
D69E | POP DE | |||
D69F | PUSH DE | |||
D6A0 | LD A,(IX+$00) | Jump to next channel if this channel is disabled | ||
D6A3 | CP $FF | |||
D6A5 | JP Z,$D6C8 | |||
D6A8 | LD A,(IX+$06) | Jump forward if noise sound | ||
D6AB | CP $00 | |||
D6AD | JP NZ,$D6C0 | |||
play note
|
||||
D6B0 | LD E,(IX+$04) | Send command for fine pitch | ||
D6B3 | CALL $D759 | |||
D6B6 | INC D | Increase register number | ||
D6B7 | LD E,(IX+$05) | Send command for coarse pitch | ||
D6BA | CALL $D759 | |||
D6BD | JP $D6C8 | Jump forward and play next channel | ||
play noise
|
||||
D6C0 | LD E,(IX+$04) | Send command for noise pitch | ||
D6C3 | LD D,$06 | |||
D6C5 | CALL $D759 | |||
play next channel
|
||||
D6C8 | LD BC,$0008 | Point IX to the next channel data buffer | ||
D6CB | ADD IX,BC | |||
D6CD | POP DE | Restore DE and BC | ||
D6CE | POP BC | |||
D6CF | INC D | Increment register for next channel | ||
D6D0 | INC D | |||
D6D1 | LD A,($D857) | Increment volume channel | ||
D6D4 | INC A | |||
D6D5 | LD ($D857),A | |||
D6D8 | DJNZ $D699 | Jump back and play next channel | ||
D6DA | RET |
Prev: D682 | Up: Map | Next: D6DB |