Kernel 0.9.1 : KERNEL, bugfix in IRQ Manager not properly managing C8xx Space.

This commit is contained in:
Rémy GIBERT 2018-05-18 15:59:11 +02:00
parent 20f35fbbcd
commit f23b7a890a
4 changed files with 31 additions and 16 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -13,6 +13,8 @@ AUTO 4,1
*--------------------------------------
MSLOT .EQ $7f8
*--------------------------------------
K.IrqHAuxLC.BRK jmp K.IrqHAuxLC.6
*--------------------------------------
K.IrqHAuxLC cld
sec
@ -21,7 +23,7 @@ K.IrqHAuxLC cld
pla
pha
and #$10 BRK?
bne K.IrqHAuxLC.6
bne K.IrqHAuxLC.BRK
stx K.IrqHAuxLC.5+1
sty K.IrqHAuxLC.4+1
@ -31,9 +33,6 @@ K.IrqHAuxLC cld
lda $ff
pha
lda MSLOT Save MSLOT
pha
lda RDREADAUX
pha
sta CLRREADAUX Make sure we can access Dev.Table
@ -42,28 +41,44 @@ K.IrqHAuxLC cld
pha
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
pla Must keep Carry
bpl K.IrqHAuxLC.10
sta SETWRITEAUX
ldx #CLRCXROM
pla Get CXROM State
bpl .3
inx
.3 sta $C000,x
K.IrqHAuxLC.10 pla
bpl K.IrqHAuxLC.1
sta SETREADAUX
K.IrqHAuxLC.1 pla Get back MSLOT
pla Get back MSLOT
sta MSLOT
sta K.IrqHAuxLC.2+2
and #$C0
and #$F0
eor #$C0 ....mmm...not looking link Cn....
bne K.IrqHAuxLC.3
sta $CFFF Release $C800
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
pla
sta $fe
@ -81,10 +96,10 @@ K.IrqHAuxLC.3 pla
tsx
lda $104,x get RTI PC LO
bne .1
bne .3
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
sta $101,x down 2 bytes