home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
INDRIVER.PRD.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
3KB
|
85 lines
; ***************
; * 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
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 #$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
INY
INTEXIT LDA #$01
BIT $C0A8
BNE GRABBYTE
STY SEQPTRL
PLA
TAY
PLA
CLI
RTI
;