irq.s added

This commit is contained in:
jede 2017-10-16 17:34:32 +02:00
parent 7107019d6f
commit 7b74264720
1 changed files with 59 additions and 0 deletions

59
libsrc/telestrat/irq.s Normal file
View File

@ -0,0 +1,59 @@
;
; IRQ handling (Oric version)
;
.export initirq, doneirq
.import callirq
.include "telestrat.inc"
; ------------------------------------------------------------------------
.segment "ONCE"
initirq:
lda IRQVec
ldx IRQVec+1
sta IRQInd+1
stx IRQInd+2
lda #<IRQStub
ldx #>IRQStub
jmp setvec
; ------------------------------------------------------------------------
.code
doneirq:
lda IRQInd+1
ldx IRQInd+2
setvec: sei
sta IRQVec
stx IRQVec+1
cli
rts
; ------------------------------------------------------------------------
.segment "LOWCODE"
IRQStub:
cld ; Just to be sure
pha
txa
pha
tya
pha
jsr callirq ; Call the functions
pla
tay
pla
tax
pla
jmp IRQInd ; Jump to the saved IRQ vector
; ------------------------------------------------------------------------
.data
IRQInd: jmp $0000