| Gyruss | Routines |
| Prev: 9CE7 | Up: Map | Next: 9D67 |
|
Reset sound data pointer to point to sound data rather than fx data. Also sets sound fx data command to 0. Used by the routines at sound_fx_command_9.
|
||||||||
| sound_fx_done | 9D3D | RLCA | Multiply channel by 2 | |||||
| 9D3E | LD C,A | Store word offset in C | ||||||
| 9D3F | RLCA | Multiply by 4 | ||||||
| 9D40 | RLCA | Multiply by 8 | ||||||
| 9D41 | LD E,A | DE = A | ||||||
| 9D42 | LD D,$00 | ... | ||||||
| 9D44 | LD IY,sound_fx_data_buffer_1 | Sound fx data 1 | ||||||
| 9D48 | ADD IY,DE | Add offset | ||||||
| 9D4A | LD A,(IY+$05) | Get command (not used?) | ||||||
| 9D4D | LD (IY+$05),D | Set command to 0 | ||||||
| 9D50 | LD E,C | Word offset (channel * 2) | ||||||
| 9D51 | LD IY,ptr_psg_noise_data | First pointer | ||||||
| 9D55 | ADD IY,DE | Add offset (IY now points to a pointer) | ||||||
| 9D57 | LD A,C | Word offset | ||||||
| 9D58 | RLCA | Multiply by 2 | ||||||
| 9D59 | RLCA | Multiply by 4 | ||||||
| 9D5A | ADD A,C | Multiply by 5, i.e. channel * 10 | ||||||
| 9D5B | LD E,A | DE = A | ||||||
| 9D5C | LD HL,tune_data_buffer_1 | Sound data base | ||||||
| 9D5F | ADD HL,DE | Add offset | ||||||
| 9D60 | LD (IY+$00),L | Update pointer with sound data address | ||||||
| 9D63 | LD (IY+$01),H | ... | ||||||
| 9D66 | RET | |||||||
| Prev: 9CE7 | Up: Map | Next: 9D67 |