mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-14 13:29:02 +00:00
Kernel 0.9.1 : KERNEL, bugfix in IRQ Manager not properly managing C8xx Space.
This commit is contained in:
parent
20f35fbbcd
commit
f23b7a890a
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,6 +13,8 @@ AUTO 4,1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSLOT .EQ $7f8
|
MSLOT .EQ $7f8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
K.IrqHAuxLC.BRK jmp K.IrqHAuxLC.6
|
||||||
|
*--------------------------------------
|
||||||
K.IrqHAuxLC cld
|
K.IrqHAuxLC cld
|
||||||
|
|
||||||
sec
|
sec
|
||||||
@ -21,7 +23,7 @@ K.IrqHAuxLC cld
|
|||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
and #$10 BRK?
|
and #$10 BRK?
|
||||||
bne K.IrqHAuxLC.6
|
bne K.IrqHAuxLC.BRK
|
||||||
|
|
||||||
stx K.IrqHAuxLC.5+1
|
stx K.IrqHAuxLC.5+1
|
||||||
sty K.IrqHAuxLC.4+1
|
sty K.IrqHAuxLC.4+1
|
||||||
@ -31,9 +33,6 @@ K.IrqHAuxLC cld
|
|||||||
lda $ff
|
lda $ff
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda MSLOT Save MSLOT
|
|
||||||
pha
|
|
||||||
|
|
||||||
lda RDREADAUX
|
lda RDREADAUX
|
||||||
pha
|
pha
|
||||||
sta CLRREADAUX Make sure we can access Dev.Table
|
sta CLRREADAUX Make sure we can access Dev.Table
|
||||||
@ -42,28 +41,44 @@ K.IrqHAuxLC cld
|
|||||||
pha
|
pha
|
||||||
sta CLRWRITEAUX Driver may R/W in screen holes
|
sta CLRWRITEAUX Driver may R/W in screen holes
|
||||||
|
|
||||||
|
lda MSLOT Save MSLOT
|
||||||
|
pha
|
||||||
|
|
||||||
|
lda RDCXROM
|
||||||
|
pha
|
||||||
|
sta CLRCXROM Enable access to slot C800 space
|
||||||
|
|
||||||
K.IrqHAuxLC.JSR jsr K.IrqH.DEV SELF MODIFIED
|
K.IrqHAuxLC.JSR jsr K.IrqH.DEV SELF MODIFIED
|
||||||
|
|
||||||
pla Must keep Carry
|
ldx #CLRCXROM
|
||||||
bpl K.IrqHAuxLC.10
|
|
||||||
sta SETWRITEAUX
|
|
||||||
|
|
||||||
K.IrqHAuxLC.10 pla
|
pla Get CXROM State
|
||||||
bpl K.IrqHAuxLC.1
|
bpl .3
|
||||||
sta SETREADAUX
|
inx
|
||||||
|
.3 sta $C000,x
|
||||||
|
|
||||||
K.IrqHAuxLC.1 pla Get back MSLOT
|
pla Get back MSLOT
|
||||||
sta MSLOT
|
sta MSLOT
|
||||||
sta K.IrqHAuxLC.2+2
|
sta K.IrqHAuxLC.2+2
|
||||||
|
|
||||||
and #$C0
|
and #$F0
|
||||||
eor #$C0 ....mmm...not looking link Cn....
|
eor #$C0 ....mmm...not looking link Cn....
|
||||||
bne K.IrqHAuxLC.3
|
bne K.IrqHAuxLC.3
|
||||||
sta $CFFF Release $C800
|
sta $CFFF Release $C800
|
||||||
|
|
||||||
K.IrqHAuxLC.2 lda $ff00 SELF MODIFIED
|
K.IrqHAuxLC.2 lda $ff00 SELF MODIFIED
|
||||||
|
|
||||||
K.IrqHAuxLC.3 pla
|
K.IrqHAuxLC.3 pla Must keep Carry
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
sta SETWRITEAUX
|
||||||
|
|
||||||
|
.1 pla
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
sta SETREADAUX
|
||||||
|
|
||||||
|
.2 pla
|
||||||
sta $ff
|
sta $ff
|
||||||
pla
|
pla
|
||||||
sta $fe
|
sta $fe
|
||||||
@ -81,10 +96,10 @@ K.IrqHAuxLC.3 pla
|
|||||||
tsx
|
tsx
|
||||||
|
|
||||||
lda $104,x get RTI PC LO
|
lda $104,x get RTI PC LO
|
||||||
bne .1
|
bne .3
|
||||||
dec $105,x adjust RTI PC HI
|
dec $105,x adjust RTI PC HI
|
||||||
|
|
||||||
.1 dec $104,x back one byte, to make it a "RTS" return adddress
|
.3 dec $104,x back one byte, to make it a "RTS" return adddress
|
||||||
|
|
||||||
lda $103,x get IRQ pushed P
|
lda $103,x get IRQ pushed P
|
||||||
sta $101,x down 2 bytes
|
sta $101,x down 2 bytes
|
||||||
|
Loading…
Reference in New Issue
Block a user