Guest User

Untitled

a guest
Jul 26th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. FMsetParam:
  3. ;   d3 = port
  4. ;   d4 = part1or2
  5. ;   d5 = data
  6.     movem.l d4/a1-a2, -(a7)
  7.     lea ($A04000), a1
  8.     lea ($A04001), a2
  9.     and.l #$FFFFFF00, d4
  10.     add.b d4, d4
  11.     add.l d4, a1
  12.     add.l d4, a2
  13.     move.b d3, (a1)
  14.     move.b d5, (a2)
  15.     movem.l (a7)+, d4/a1-a2
  16.     rts  
  17.  
  18. FMNoteOn
  19.    movem.l d3-d5/a0-a2, -(a7)
  20.     move.l d3, d5
  21.     lea ($A04000), a1
  22.     lea ($A04001), a2
  23.     btst #3, d3
  24.     beq.s NoteON_NoSet
  25.     subq.b #4, d3
  26.     add.l #2, a1
  27.     add.l #2, a2
  28. NoteON_NoSet:
  29.    WaitYM
  30.     add.b #$A4, d3
  31.     move.b d3, (a1)
  32.     ror.w #8, d4
  33.     move.b d4, (a2)
  34.     WaitYM
  35.     subq.b #4, d3
  36.     move.b d3, (a1)
  37.     rol.w #8, d4
  38.     move.b d4, (a2)
  39.     WaitYM
  40.     move.b #$28, (a1)
  41.     move.b d5, (a2)
  42.     WaitYM
  43.     or.b #%11110000, d5
  44.     move.b d5, (a2)
  45.     movem.l (a7)+, d3-d5/a0-a2
  46.     rts    
  47.  
  48. LoadFM:
  49.    movem.l d3-d4/a0-a2, -(a7)
  50.     ;a0 = instrument
  51.     ;d3 = channel
  52.     lea ($A04000), a1
  53.     lea ($A04001), a2
  54.     btst #3, d3
  55.     beq.s LoadFM_NoSet
  56.     add.l #2, a1
  57.     add.l #2, a2
  58. LoadFM_NoSet:
  59.    add.b #$B0, d3
  60.     WaitYM
  61.     move.b d3, (a1)
  62.     move.b (a0)+, d4
  63.     or.b #$C0, d4
  64.     move.b d4, (a2)
  65.     sub.b #$80, d3
  66.     moveq.l #$1B, d4
  67. LoadFM_Loop
  68.    WaitYM
  69.     move.b d3, (a1)
  70.     move.b (a0)+, (a2)
  71.     addq.b #4, d3
  72.     dbf d4, LoadFM_Loop
  73.     movem.l (a7)+, d3-d4/a0-a2
  74.     rts
Add Comment
Please, Sign In to add comment