Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FMsetParam:
- ; d3 = port
- ; d4 = part1or2
- ; d5 = data
- movem.l d4/a1-a2, -(a7)
- lea ($A04000), a1
- lea ($A04001), a2
- and.l #$FFFFFF00, d4
- add.b d4, d4
- add.l d4, a1
- add.l d4, a2
- move.b d3, (a1)
- move.b d5, (a2)
- movem.l (a7)+, d4/a1-a2
- rts
- FMNoteOn
- movem.l d3-d5/a0-a2, -(a7)
- move.l d3, d5
- lea ($A04000), a1
- lea ($A04001), a2
- btst #3, d3
- beq.s NoteON_NoSet
- subq.b #4, d3
- add.l #2, a1
- add.l #2, a2
- NoteON_NoSet:
- WaitYM
- add.b #$A4, d3
- move.b d3, (a1)
- ror.w #8, d4
- move.b d4, (a2)
- WaitYM
- subq.b #4, d3
- move.b d3, (a1)
- rol.w #8, d4
- move.b d4, (a2)
- WaitYM
- move.b #$28, (a1)
- move.b d5, (a2)
- WaitYM
- or.b #%11110000, d5
- move.b d5, (a2)
- movem.l (a7)+, d3-d5/a0-a2
- rts
- LoadFM:
- movem.l d3-d4/a0-a2, -(a7)
- ;a0 = instrument
- ;d3 = channel
- lea ($A04000), a1
- lea ($A04001), a2
- btst #3, d3
- beq.s LoadFM_NoSet
- add.l #2, a1
- add.l #2, a2
- LoadFM_NoSet:
- add.b #$B0, d3
- WaitYM
- move.b d3, (a1)
- move.b (a0)+, d4
- or.b #$C0, d4
- move.b d4, (a2)
- sub.b #$80, d3
- moveq.l #$1B, d4
- LoadFM_Loop
- WaitYM
- move.b d3, (a1)
- move.b (a0)+, (a2)
- addq.b #4, d3
- dbf d4, LoadFM_Loop
- movem.l (a7)+, d3-d4/a0-a2
- rts
Add Comment
Please, Sign In to add comment