mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-27 00:30:55 +00:00
Kernel 0.9.1 : KERNEL, bug fix in IRQ manager while IRQ happens in $C8xx space..
(btw, Expansion cards NOT supporting MSLOT protocol should crash!)
This commit is contained in:
parent
56ba5ecc08
commit
4f2ee9a6bd
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -12,8 +12,8 @@ CLRREADAUX .EQ $C002 W
|
|||||||
SETREADAUX .EQ $C003 W
|
SETREADAUX .EQ $C003 W
|
||||||
CLRWRITEAUX .EQ $C004 W
|
CLRWRITEAUX .EQ $C004 W
|
||||||
SETWRITEAUX .EQ $C005 W
|
SETWRITEAUX .EQ $C005 W
|
||||||
*CLRCXROM .EQ $C006 W
|
CLRCXROM .EQ $C006 W
|
||||||
*SETCXROM .EQ $C007 W
|
SETCXROM .EQ $C007 W
|
||||||
CLRALTZP .EQ $C008 W
|
CLRALTZP .EQ $C008 W
|
||||||
SETALTZP .EQ $C009 W
|
SETALTZP .EQ $C009 W
|
||||||
*CLRC3ROM .EQ $C00A W
|
*CLRC3ROM .EQ $C00A W
|
||||||
@ -27,7 +27,7 @@ RDLCBNK2 .EQ $C011 R
|
|||||||
RDLCRAM .EQ $C012 R
|
RDLCRAM .EQ $C012 R
|
||||||
RDREADAUX .EQ $C013 R
|
RDREADAUX .EQ $C013 R
|
||||||
RDWRITEAUX .EQ $C014 R
|
RDWRITEAUX .EQ $C014 R
|
||||||
*RDCXROM .EQ $C015 R
|
RDCXROM .EQ $C015 R
|
||||||
RDALTZP .EQ $C016 R
|
RDALTZP .EQ $C016 R
|
||||||
*RDC3ROM .EQ $C017 R
|
*RDC3ROM .EQ $C017 R
|
||||||
RD80STORE .EQ $C018 R
|
RD80STORE .EQ $C018 R
|
||||||
|
@ -14,6 +14,8 @@ POWERUPBYTE .EQ $3F4
|
|||||||
*NMIJMP .EQ $3FB jmp $xxxx
|
*NMIJMP .EQ $3FB jmp $xxxx
|
||||||
IRQVECT .EQ $3FE
|
IRQVECT .EQ $3FE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
MSLOT .EQ $7F8 $Cn n=slot using $C800
|
||||||
|
*--------------------------------------
|
||||||
COL80FIRM .EQ $C300
|
COL80FIRM .EQ $C300
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PLOT .EQ $F800 PLOT LORES BLOCK
|
PLOT .EQ $F800 PLOT LORES BLOCK
|
||||||
|
@ -11,18 +11,25 @@ AUTO 4,1
|
|||||||
* if A2osX Drivers cannot clear IRQ,
|
* if A2osX Drivers cannot clear IRQ,
|
||||||
* must call regular System Handler
|
* must call regular System Handler
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHAuxLC sta .12+1
|
MSLOT .EQ $7f8
|
||||||
|
*--------------------------------------
|
||||||
|
K.IrqHAuxLC sta .6+1
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
and #$10 BRK?
|
and #$10 BRK?
|
||||||
bne .2
|
bne .7
|
||||||
|
|
||||||
stx .11+1
|
stx .5+1
|
||||||
sty .10+1
|
sty .4+1
|
||||||
lda $fe
|
|
||||||
|
lda $fe Save 2 bytes in ZP
|
||||||
pha
|
pha
|
||||||
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
|
||||||
@ -33,18 +40,29 @@ K.IrqHAuxLC sta .12+1
|
|||||||
bpl .1
|
bpl .1
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
|
|
||||||
.1 pla
|
.1 pla Get back MSLOT
|
||||||
|
sta MSLOT
|
||||||
|
sta .2+2
|
||||||
|
|
||||||
|
and #$C0
|
||||||
|
eor #$C0 ....mmm...not looking link Cn....
|
||||||
|
bne .3
|
||||||
|
sta $CFFF Release $C800
|
||||||
|
|
||||||
|
.2 lda $ff00 SELF MODIFIED
|
||||||
|
|
||||||
|
.3 pla
|
||||||
sta $ff
|
sta $ff
|
||||||
pla
|
pla
|
||||||
sta $fe
|
sta $fe
|
||||||
|
|
||||||
.10 ldy #$ff Self Modified
|
.4 ldy #$ff Self Modified
|
||||||
.11 ldx #$ff Self Modified
|
.5 ldx #$ff Self Modified
|
||||||
.12 lda #$ff Self Modified
|
.6 lda #$ff Self Modified
|
||||||
bcs .8
|
bcs .8
|
||||||
rti
|
rti
|
||||||
|
|
||||||
.2 pla pull P
|
.7 pla pull P
|
||||||
bra *
|
bra *
|
||||||
|
|
||||||
.8 jmp (IRQ.OldFFFE)
|
.8 jmp (IRQ.OldFFFE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user