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 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 pla Get CXROM State
bpl .3
inx
.3 sta $C000,x
K.IrqHAuxLC.10 pla pla Get back MSLOT
bpl K.IrqHAuxLC.1
sta SETREADAUX
K.IrqHAuxLC.1 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