home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-02-16 | 2.7 KB | 93 lines | [04] ASCII Text (0x0000) |
- ; ***************
- ; * INDRIVER.SRC - MIDI INPUT DRIVER - BUFFERS NOTE EVENTS TO $2000 PAGE
- ; ***************
- ;
- ORG $1E00
- ;
- ;ZP ADDRESSES
- ;
- SEQPTRL EQU $06
- SEQPTRH EQU $07
- SEQSTRT EQU $08
- SEQSTOP EQU $09
- SEQBUFL EQU $CE
- SEQBUFH EQU $CF
- ERRCTR EQU $D7
- ;
- ORIGIN JMP NORMNTRY
- JMP DISABLE
- THRUMODE DFB $00
- INTSAVL DFB $00
- INTSAVH DFB $00
- ;
- NORMNTRY LDA #$13 ;INITIALIZE ACIA
- STA $C0A8
- LDA #$11
- STA $C0A8
- LDA $03FE ;SAVE CURRENT INTRUPT VECTOR
- STA INTSAVL
- LDA $03FF
- STA INTSAVH
- LDA #>INTHAND ;SETUP OUR INTERRUPT HANDLER
- STA $03FE
- LDA #<INTHAND
- STA $03FF
- LDA THRUMODE
- BNE CONTINUE
- LDA #$EA
- STA MIDITHRU
- STA MIDITHRU+1
- STA MIDITHRU+2
- ;
- CONTINUE LDA #$00
- STA ERRCTR
- STA SEQPTRL
- STA SEQBUFL
- LDA SEQSTRT
- STA SEQPTRH
- STA SEQBUFH
- CLC
- ADC #$01
- STA SEQSTOP
- ;
- LDA $C0A9 ;ACTIVATE RECEIVE INTERRUPT
- LDA #$91
- STA $C0A8
- RTS
- ;
- DISABLE LDA #$13 ;DISABLE INTERRUPTS
- STA $C0A8
- LDA #$11
- STA $C0A8
- LDA INTSAVL ;RESTORE INT VECTOR
- STA $03FE
- LDA INTSAVH
- STA $03FF
- RTS
- ;
- INTHAND SEI
- PHA ;SAVE A AND Y
- TYA
- PHA
- LDY SEQPTRL
- GRABBYTE LDA #$20
- BIT $C0A8
- BEQ NOERR
- INC ERRCTR
- NOERR LDA $C0A9
- CMP #$F8 ;IF REALTIME MSG, EXIT
- BCS INTEXIT
- STA (SEQBUFL),Y
- MIDITHRU STA $C0A9
- INY
- INTEXIT LDA #$01
- BIT $C0A8
- BNE GRABBYTE
- STY SEQPTRL
- PLA
- TAY
- PLA
- CLI
- RTI
- ;
-