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

  1. ; ***************
  2. ; * INDRIVER.SRC  - MIDI INPUT DRIVER - BUFFERS NOTE EVENTS TO $2000 PAGE
  3. ; ***************
  4. ;
  5.                     ORG   $1E00
  6. ;
  7. ;ZP ADDRESSES
  8. ;
  9. SEQPTRL  EQU       $06
  10. SEQPTRH  EQU       $07
  11. SEQSTRT  EQU       $08
  12. SEQSTOP  EQU       $09
  13. SEQBUFL  EQU       $CE
  14. SEQBUFH  EQU       $CF
  15. ERRCTR   EQU       $D7
  16. ;
  17. ORIGIN              JMP   NORMNTRY     
  18.                     JMP   DISABLE
  19. THRUMODE            DFB   $00
  20. INTSAVL             DFB   $00
  21. INTSAVH             DFB   $00
  22. ;
  23. NORMNTRY            LDA   #$13         ;INITIALIZE ACIA
  24.                     STA   $C0A8
  25.                     LDA   #$11
  26.                     STA   $C0A8
  27.                     LDA   $03FE        ;SAVE CURRENT INTRUPT VECTOR
  28.                     STA   INTSAVL
  29.                     LDA   $03FF
  30.                     STA   INTSAVH
  31.                     LDA   #>INTHAND    ;SETUP OUR INTERRUPT HANDLER
  32.                     STA   $03FE
  33.                     LDA   #<INTHAND
  34.                     STA   $03FF
  35.                     LDA   THRUMODE
  36.                     BNE   CONTINUE
  37.                     LDA   #$EA
  38.                     STA   MIDITHRU
  39.                     STA   MIDITHRU+1
  40.                     STA   MIDITHRU+2
  41. ;
  42. CONTINUE            LDA   #$00
  43.                     STA   ERRCTR
  44.                     STA   SEQPTRL
  45.                     STA   SEQBUFL
  46.                     LDA   SEQSTRT
  47.                     STA   SEQPTRH
  48.                     STA   SEQBUFH
  49.                     CLC
  50.                     ADC   #$01
  51.                     STA   SEQSTOP
  52. ;
  53.                     LDA   $C0A9        ;ACTIVATE RECEIVE INTERRUPT
  54.                     LDA   #$91
  55.                     STA   $C0A8
  56.                     RTS
  57. ;
  58. DISABLE             LDA   #$13         ;DISABLE INTERRUPTS
  59.                     STA   $C0A8
  60.                     LDA   #$11
  61.                     STA   $C0A8
  62.                     LDA   INTSAVL      ;RESTORE INT VECTOR
  63.                     STA   $03FE
  64.                     LDA   INTSAVH
  65.                     STA   $03FF
  66.                     RTS   
  67. ;
  68. INTHAND             SEI
  69.                     PHA                ;SAVE A AND Y
  70.                     TYA   
  71.                     PHA   
  72.                     LDY   SEQPTRL
  73. GRABBYTE            LDA   #$20
  74.                     BIT   $C0A8
  75.                     BEQ   NOERR
  76.                     INC   ERRCTR
  77. NOERR               LDA   $C0A9
  78.                     CMP   #$F8         ;IF REALTIME MSG, EXIT
  79.                     BCS   INTEXIT
  80.                     STA   (SEQBUFL),Y
  81. MIDITHRU            STA   $C0A9
  82.                     INY
  83. INTEXIT             LDA   #$01
  84.                     BIT   $C0A8
  85.                     BNE   GRABBYTE
  86.                     STY   SEQPTRL
  87.                     PLA   
  88.                     TAY   
  89.                     PLA
  90.                     CLI   
  91.                     RTI   
  92. ;
  93.