home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / SOURCE / DHRNOTE.SC0.txt < prev    next >
Text File  |  2020-08-13  |  3KB  |  156 lines

  1. ; DHRNOTE.SC0 - NON-INTERRUPT DRIVEN
  2. ;
  3.          ORG $6000
  4. ;
  5.          JSR INITDHR
  6.          JSR START
  7.          JMP DONEDHR
  8. ;
  9. DISPMODE DFB $01
  10. INBYTE   DFB $00
  11. PHASE    DFB $00
  12. LASTSTAT DFB $00
  13. XMITSTS  DFB $00
  14. XMITBYT1 DFB $00
  15. XMITBYT2 DFB $00
  16. XMITBYT3 DFB $00
  17. DBYTES   DFB $00
  18. MIDISLOT DFB $20
  19. ;
  20. GETINST  EQU $00
  21. DATA1    EQU $01
  22. DATA2    EQU $02
  23. DATA3    EQU $03
  24. SYSX0    EQU $04
  25. DATA2B   EQU $05
  26. ;
  27. START    LDA   #$13
  28.          LDX   MIDISLOT
  29.          STA   $C088,X
  30.          LDA   #$11    
  31.          STA   $C088,X    
  32. WAITMIDI LDA   $C000
  33.          BMI   ADIOS
  34.          LDX   MIDISLOT
  35.          LDA   $C088,X       
  36.          AND   #$01       
  37.          BEQ   WAITMIDI
  38.          LDX   MIDISLOT    
  39.          LDA   $C089,X   
  40.          CMP   #$F0
  41.          BEQ   SKIPSYSX
  42.          BCS   WAITMIDI
  43. SYSXRET  STA   INBYTE 
  44.          JSR   PRCSBYTE   
  45.          LDA   $C000       
  46.          BPL   WAITMIDI
  47. ADIOS    LDA   $C010
  48.          RTS   
  49. ;
  50. SKIPSYSX LDX MIDISLOT
  51.          LDA $C088,X
  52.          AND #$01
  53.          BEQ SKIPSYSX
  54.          LDA $C089,X
  55.          BPL SKIPSYSX
  56.          BMI SYSXRET
  57. ;
  58. PRCSBYTE LDA PHASE
  59. PHINST   CMP #GETINST
  60.          BEQ PHINST0
  61.          JMP PHDATA3
  62. PHINST0  LDA INBYTE
  63.          BPL RUNNING
  64. ;
  65. ;         CMP #$F0
  66. ;         BCS CHKF0
  67. ;
  68.          STA LASTSTAT
  69.          STA XMITSTS
  70.          CMP #$E0
  71.          BCS TWOBYTES
  72.          CMP #$C0
  73.          BCC TWOBYTES
  74. ;
  75.          LDA #1
  76.          STA DBYTES
  77.          LDA #DATA1
  78.          STA PHASE
  79.          RTS
  80. ;
  81. TWOBYTES LDA #2
  82.          STA DBYTES
  83.          LDA #DATA2
  84.          STA PHASE
  85.          RTS
  86. ;
  87. ;CHKF0    BNE CHKF7
  88. ;         LDA #SYSX0
  89. ;         STA PHASE
  90. ;         RTS
  91. ;
  92. ;CHKF7    CMP #$F7
  93. ;         BNE INVAL
  94. ;         LDA #GETINST
  95. ;         STA PHASE
  96. ;         RTS
  97. ;
  98. ;INVAL    RTS
  99. ;
  100. RUNNING  LDA LASTSTAT
  101.          STA XMITSTS
  102.          LDA INBYTE
  103.          STA XMITBYT1
  104.          LDA #$FF
  105.          STA XMITBYT2
  106.          LDA DBYTES
  107.          CMP #1
  108.          BEQ SENDMSG
  109.          LDA #DATA3
  110.          STA PHASE
  111.          RTS
  112. ;
  113. PHDATA3  CMP #DATA3
  114.          BNE PHDATA2
  115.          LDA INBYTE
  116.          STA XMITBYT2
  117.          LDA #$FF
  118.          STA XMITBYT3
  119.          JMP SENDMSG
  120. ;
  121. PHDATA2  CMP #DATA2
  122.          BNE PHDATA1
  123.          LDA INBYTE
  124.          STA XMITBYT1
  125.          LDA #DATA2B
  126.          STA PHASE
  127.          RTS
  128. ;
  129. PHDATA1  CMP #DATA1
  130.          BNE PHDATA2B
  131.          LDA INBYTE
  132.          STA XMITBYT1
  133.          LDA #$FF
  134.          STA XMITBYT2
  135.          JMP SENDMSG
  136. ;
  137. PHDATA2B CMP #DATA2B
  138.          BNE PHSYSX
  139.          LDA INBYTE
  140.          STA XMITBYT2
  141.          LDA #$FF
  142.          STA XMITBYT3
  143.          JMP SENDMSG
  144. ;
  145. PHSYSX   RTS
  146. ;
  147. SENDMSG  LDA XMITSTS
  148.          LDX XMITBYT1
  149.          LDY XMITBYT2
  150.          JSR MIDIGRPH
  151. SENDEXIT LDA #GETINST
  152.          STA PHASE
  153.          RTS
  154. ;
  155.          CHN DHRNOTE.SC1
  156.