called if the user program has interrupts disabled which makes it
easier to avoid race conditions.
.segment "INIT"
initirq:
- lda VVBLKI
- ldx VVBLKI+1
+ lda VVBLKD
+ ldx VVBLKD+1
sta IRQInd+1
stx IRQInd+2
- lda #6
+ lda #7
ldy #<IRQStub
ldx #>IRQStub
jsr SETVBV
.code
doneirq:
- lda #6
+ lda #7
ldy IRQInd+1
ldx IRQInd+2
jsr SETVBV
IRQStub:
cld ; Just to be sure
.ifdef __ATARIXL__
- pha
.ifdef CHARGEN_RELOC
lda CHBAS
pha
sta CHBAS
sta CHBASE
.endif
- pla
.endif
jmp IRQInd ; Jump to the saved IRQ vector