![]() |
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 |