![]() |
Routines |
Prev: D37F | Up: Map | Next: D473 |
Used by the routine at 9470.
|
||||
D424 | LD B,$03 | Set B the number of channels to play | ||
D426 | LD IX,$D5CA | Set IX to address for channel #1 sound data | ||
D42A | LD D,$00 | Set sound register for fine pitch on channel #1 | ||
D42C | LD A,$01 | Set channel volume #1 | ||
D42E | LD ($D5EF),A | |||
D431 | PUSH BC | Save BC and DE | ||
D432 | PUSH DE | |||
D433 | CALL $D473 | Configure next tone/noise data for current channel | ||
D436 | POP DE | |||
D437 | PUSH DE | |||
D438 | LD A,(IX+$00) | Jump to next channel if this channel is disabled | ||
D43B | CP $FF | |||
D43D | JP Z,$D460 | |||
D440 | LD A,(IX+$06) | Jump forward if noise sound | ||
D443 | CP $00 | |||
D445 | JP NZ,$D458 | |||
play note
|
||||
D448 | LD E,(IX+$04) | Send command for fine pitch | ||
D44B | CALL $D4F1 | |||
D44E | INC D | Increase register number | ||
D44F | LD E,(IX+$05) | Send command for coarse pitch | ||
D452 | CALL $D4F1 | |||
D455 | JP $D460 | Jump forward and play next channel | ||
play noise
|
||||
D458 | LD E,(IX+$04) | Send command for noise pitch | ||
D45B | LD D,$06 | |||
D45D | CALL $D4F1 | |||
play next channel
|
||||
D460 | LD BC,$0008 | Point IX to the next channel data buffer | ||
D463 | ADD IX,BC | |||
D465 | POP DE | Restore DE and BC | ||
D466 | POP BC | |||
D467 | INC D | Increment register for next channel | ||
D468 | INC D | |||
D469 | LD A,($D5EF) | Increment volume channel | ||
D46C | INC A | |||
D46D | LD ($D5EF),A | |||
D470 | DJNZ $D431 | Jump back and play next channel | ||
D472 | RET |
Prev: D37F | Up: Map | Next: D473 |