Sound_E1: ; XREF: Sound_ExIndex move.w #$100,($A11100).l @loop: btst #0,($A11100).l bne.s @loop lea (SegaPCM).l,a2 ; Load the "SEGA" PCM sample into a2. It's important that we use a2 since a0 and a1 are going to be used up ahead when reading the joypad ports move.l #$6978,d3 ; Load the size of the "SEGA" PCM sample into d3 move.b #$2A,($A04000).l ; $A04000 = $2A -> Write to DAC channel PlayPCM_Loop: move.b (a2)+,($A04001).l ; Write the PCM data (contained in a2) to $A04001 (YM2612 register D0) move.w #$2A,d0 ; Write the pitch ($2A in this case) to d0 dbf d0,* ; Decrement d0; jump to itself if not 0. (for pitch control, avoids playing the sample too fast) sub.l #1,d3 ; Subtract 1 from the PCM sample size bne.s PlayPCM_Loop ; Otherwise, continue playing PCM sample return_PlayPCM: addq.w #4,sp rts