home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / ERIC / SOURCE / LORESMON.SRC < prev    next >
Encoding:
Text File  |  2000-04-19  |  5.1 KB  |  197 lines  |  [04] ASCII Text (0x0000)

  1. ;LO-RES MIDI MONITOR
  2. ;REQUIRES LORES.MAP TO BE LOADED AT $2000
  3. ;
  4.          ORG       $6000
  5.          JMP       INITPGM
  6. ;--------------------------
  7. ;
  8. ZP1L     EQU       $06
  9. ZP1H     EQU       $07
  10. ZP2L     EQU       $08
  11. ZP2H     EQU       $09
  12. ;
  13. MIDISLOT DFB       $20
  14. INBYTE   DFB       $00
  15. CHANNEL  DFB       $00
  16. PHASE    DFB       $00
  17. NOTENUM  DFB       $00
  18. VEL      DFB       $00
  19. PROGRAM  DFB       $00
  20. SCRNBYTE DFB       $00
  21. CHNLCOLR DFB       $01,$02,$03,$04,$05,$06,$07,$08
  22.          DFB       $09,$0F,$0A,$0B,$0C,$0D,$0E,$0F
  23. ;
  24. ; THE FOLLOWING ARE DEPENDENT ON LOAD ADDRESS OF LORES.MAP ($2000)
  25. LOWADRH  DFB       $20,$21,$22,$23,$24,$25,$26,$27
  26.          DFB       $28,$29,$2A,$2B,$2C,$2D,$2E,$2F
  27. LOWADRL  DFB       $00,$00,$00,$00,$00,$00,$00,$00
  28.          DFB       $00,$00,$00,$00,$00,$00,$00,$00
  29. HIADRH   DFB       $20,$21,$22,$23,$24,$25,$26,$27
  30.          DFB       $28,$29,$2A,$2B,$2C,$2D,$2E,$2F
  31. HIADRL   DFB       $80,$80,$80,$80,$80,$80,$80,$80
  32.          DFB       $80,$80,$80,$80,$80,$80,$80,$80
  33. ;
  34. CHNLNIBL DFB       $0F,$0F,$0F,$0F,$F0,$F0,$F0,$F0
  35.          DFB       $0F,$0F,$0F,$0F,$F0,$F0,$F0,$F0
  36. ANDMASK  DFB       $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F
  37.          DFB       $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F
  38. ;-------------------------------------------------
  39. INITPGM  LDA   #$13
  40.          LDX   MIDISLOT
  41.          STA   $C088,X
  42.          LDA   #$11    
  43.          STA   $C088,X    
  44. MAINLOOP LDA   $C000
  45.          BMI   ADIOS
  46.          LDX   MIDISLOT
  47.          LDA   $C088,X       
  48.          AND   #$01       
  49.          BEQ   MAINLOOP
  50.          LDX   MIDISLOT    
  51.          LDA   $C089,X   
  52.          CMP   #$F1
  53.          BCS   MAINLOOP
  54. SYSXRET  STA   INBYTE 
  55.          JSR   PRCSBYTE   
  56.          LDA   $C000       
  57.          BPL   MAINLOOP
  58. ADIOS    LDA   $C010
  59.          RTS   
  60. ;------------------------------
  61. PRCSBYTE LDA       INBYTE
  62.          BPL       DATABYTE
  63.          AND       #$F0
  64.          CMP       #$80
  65.          BNE       CHK90
  66.          LDA       INBYTE
  67.          AND       #$0F
  68.          STA       CHANNEL
  69.          LDA       #$81
  70.          STA       PHASE
  71.          JMP       MAINLOOP
  72. CHK90    CMP       #$90
  73.          BNE       CHKC0
  74.          LDA       INBYTE
  75.          AND       #$0F
  76.          STA       CHANNEL
  77.          LDA       #$91
  78.          STA       PHASE
  79.          JMP       MAINLOOP
  80. CHKC0    CMP       #$C0
  81.          BNE       STSFF
  82.          LDA       INBYTE
  83.          AND       #$0F
  84.          STA       CHANNEL
  85.          LDA       #$C1
  86.          STA       PHASE
  87.          JMP       MAINLOOP
  88. STSFF    LDA       #$FF
  89.          STA       PHASE
  90.          JMP       MAINLOOP
  91. ;-----------------------------
  92. DATABYTE LDA       PHASE
  93.          CMP       #$81
  94.          BNE       CHK82
  95.          LDA       INBYTE
  96.          STA       NOTENUM
  97.          LDA       #$82
  98.          STA       PHASE
  99.          JMP       MAINLOOP
  100. CHK82    CMP       #$82
  101.          BNE       CHK91
  102.          LDA       INBYTE
  103.          STA       VEL
  104.          LDA       #$81
  105.          STA       PHASE
  106.          JSR       NOTEOFF
  107.          JMP       MAINLOOP
  108. CHK91    CMP       #$91
  109.          BNE       CHK92
  110.          LDA       INBYTE
  111.          STA       NOTENUM
  112.          LDA       #$92
  113.          STA       PHASE
  114.          JMP       MAINLOOP
  115. CHK92    CMP       #$92
  116.          BNE       CHKC1
  117.          LDA       INBYTE
  118.          STA       VEL
  119.          LDA       #$91
  120.          STA       PHASE
  121.          LDA       VEL
  122.          BEQ       DONOFF
  123.          JSR       NOTEON
  124.          JMP       MAINLOOP   
  125. DONOFF   JSR       NOTEOFF
  126.          JMP       MAINLOOP
  127. CHKC1    CMP       #$C1
  128.          BNE       PHASEFF
  129.          LDA       INBYTE
  130.          STA       PROGRAM
  131.          JSR       PROGCHG
  132. PHASEFF  JMP       MAINLOOP
  133. ;------------------------------
  134. PROGCHG  LDA       PROGRAM
  135.          LSR       A
  136.          LSR       A
  137.          LSR       A
  138.          LSR       A
  139.          LDX       CHANNEL
  140.          STA       CHNLCOLR,X
  141.          RTS
  142. ;
  143. NOTEOFF  LDX       CHANNEL
  144.          LDY       NOTENUM
  145.          LDA       LOWADRL,X
  146.          STA       ZP1L
  147.          LDA       LOWADRH,X
  148.          STA       ZP1H
  149.          LDA       (ZP1L),Y
  150.          STA       ZP2L
  151.          LDA       HIADRL,X
  152.          STA       ZP1L
  153.          LDA       HIADRH,X
  154.          STA       ZP1H
  155.          LDA       (ZP1L),Y
  156.          STA       ZP2H
  157.          LDY       #$00
  158.          LDA       (ZP2L),Y
  159.          AND       ANDMASK,X
  160.          STA       (ZP2L),Y
  161.          RTS
  162. ;
  163. NOTEON   LDX       CHANNEL
  164.          LDY       NOTENUM
  165.          LDA       LOWADRL,X
  166.          STA       ZP1L
  167.          LDA       LOWADRH,X
  168.          STA       ZP1H
  169.          LDA       (ZP1L),Y
  170.          STA       ZP2L
  171.          LDA       HIADRL,X
  172.          STA       ZP1L
  173.          LDA       HIADRH,X
  174.          STA       ZP1H
  175.          LDA       (ZP1L),Y
  176.          STA       ZP2H
  177.          LDY       #$00
  178.          LDA       (ZP2L),Y
  179.          AND       ANDMASK,X
  180.          STA       SCRNBYTE
  181.          LDA       CHNLNIBL,X
  182.          BMI       HIGHNIBL
  183.          LDX       CHANNEL
  184.          LDA       CHNLCOLR,X
  185.          ORA       SCRNBYTE
  186. HIGHNIBL JMP       POKEIT
  187.          LDX       CHANNEL
  188.          LDA       CHNLCOLR,X
  189.          ASL       A
  190.          ASL       A
  191.          ASL       A
  192.          ASL       A
  193.          ORA       SCRNBYTE
  194. POKEIT   STA       (ZP2L),Y
  195.          RTS
  196. ;
  197.