Prev: 9CE7 Up: Map Next: 9D67
9D3D: Sound fx done
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.
Input
A Channel
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