From 4358169b4042382986d5910812c7ee9635928906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 5 Apr 2018 21:32:22 +0100 Subject: [PATCH] Kernel 0.9.1 : KERNEL, bugfix in VBL & IRQ handler --- .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SYS/KERNEL.S.GP.txt | 107 ++++++++++++++-- SYS/KERNEL.S.INIT.txt | 255 +++++++++++++++++++++------------------ SYS/KERNEL.S.IRQ.txt | 11 +- SYS/KERNEL.S.txt | 3 +- 7 files changed, 244 insertions(+), 132 deletions(-) diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index 402a090ee99ff32282c10f2b8ad63dbbbb86a3bc..9d66922ea56a4ba87e67cb9fbdd15b74d5d71f0c 100644 GIT binary patch delta 4911 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 delta 4891 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 WfTDzw1SJ_t3Y63n^ibM&$NmozGxLT3 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index ed567b563b93369028a2cb53605e00736df833ed..425c565e1c8f4b325c0844c7e6d7bc114b7dada4 100644 GIT binary patch delta 10078 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 diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 4541fbc9..06d768bc 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -222,30 +222,111 @@ GO.EXIT.JMP jmp $FFFF Self Modified * must exit with RTS * - CC if IRQ cleared, CS if NOT *-------------------------------------- -GP.IrqH cld - lda RDALTZP - sta .2+1 +*GP.IrqH cld +* lda RDALTZP +* sta .2+1 +* +* bmi .1 we are already in AuxZP/LC - bmi .1 we are already in AuxZP/LC +* sta SETALTZP coming from MainLC, switch to aux +* tsx +* stx A2osX.SaveSM +* ldx A2osX.SaveSX +* txs + +*.1 jsr K.IrqH + +*.2 lda #$ff get back ZP status when called +* bmi .3 we were coming from AuxZP/LC - sta SETALTZP coming from MainLC, switch to aux +* tsx go back to Main +* stx A2osX.SaveSX +* ldx A2osX.SaveSM +* txs +* sta CLRALTZP + +*.3 rts +*-------------------------------------- +GP.IrqH.TCLOCK ldy IRQ.VBL.n0 + + lda $c080,y + and #$20 + beq GP.IrqH.DEV + + lda $c080,y + lda $c088,y + + inc CORE.IRQTick + + clc + rts +*-------------------------------------- +GP.IrqH.VBL jsr IRQ.VBL.MSM SERVEMOUSE + bcs GP.IrqH.DEV Not From Mouse + + ldx IRQ.VBL.0n + lda MOUSESTSx,x + and #MOUSESTSx.INTVBL IRQ was caused by VBL ? + beq GP.IrqH.DEV + + ldx IRQ.VBL.MRM+2 $Cn + ldy IRQ.VBL.n0 + jsr IRQ.VBL.MRM READMOUSE + + inc CORE.IRQTick + + clc + rts +*-------------------------------------- +GP.IrqH.DEV sta SETALTZP switch to aux LC tsx stx A2osX.SaveSM ldx A2osX.SaveSX txs - -.1 jsr K.IrqH - -.2 lda #$ff get back ZP status when called - bmi .3 we were coming from AuxZP/LC - tsx go back to Main + >LDYAI Dev.Table + >STYA $fe + + ldx DevMgr.Count + +.4 ldy #S.DEV.S + lda ($fe),y + and #S.DEV.S.IRQ + beq .6 + + phx + jsr GP.IrqHJMP + plx + bcc .8 CC, IRQ cleared by device + +.6 lda $fe + clc + adc #S.DEV + sta $fe + bcc .7 + inc $ff + +.7 dex + bne .4 + + sec + +.8 tsx go back to Main stx A2osX.SaveSX ldx A2osX.SaveSM txs sta CLRALTZP - -.3 rts + + rts +*-------------------------------------- +GP.IrqHJMP ldx #DEVMGR.IRQ + jmp ($fe) +*-------------------------------------- +IRQ.IntNum .BS 1 +IRQ.VBL.n0 .BS 1 +IRQ.VBL.0n .BS 1 +IRQ.VBL.MSM jmp $0000 +IRQ.VBL.MRM jmp $0000 *-------------------------------------- *GO.Reset jsr GO.A2osX * jmp CORE.Run diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 7c1c6af2..a3d41231 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -566,45 +566,32 @@ DevMgr.SYS cld *-------------------------------------- IrqMgrInit >LDYAI MSG.IRQ >SYSCALL PrintF.YA - php - sei - >LDYA $FFFE - >STYA IRQ.OldFFFE - >LDYAI K.IrqHAuxLC - >STYA $FFFE +* php +* sei +* >LDYA $FFFE +* >STYA IRQ.OldFFFE +* >LDYAI K.IrqHAuxLC +* >STYA $FFFE - >LDYAI GP.IrqH - >STYA K.MLI.PARAMS+2 - >MLICALL MLIALLOCIRQ - bcs .9 +* >LDYAI GP.IrqH +* >STYA K.MLI.PARAMS+2 +* >MLICALL MLIALLOCIRQ +* bcs .9 - lda K.MLI.PARAMS+1 - sta IRQ.INTNUM +* lda K.MLI.PARAMS+1 +* sta IRQ.INTNUM - plp +* plp - jsr IrqMgrInit.Mouse + jsr IrqMgrInit.TClock bcs .1 - lda #"V" - sta SYS.BASL0+38 - - >LDYAI K.IrqH.VBL - >STYA K.IrqH+1 - - >LDYAI MSG.IRQ.VBL - >SYSCALL PrintF.YA - clc - rts - -.1 jsr IrqMgrInit.TClock - bcs .8 - lda #"C" sta SYS.BASL0+38 - >LDYAI K.IrqH.TClock - >STYA K.IrqH+1 + >LDYAI GP.IrqH.TClock + jsr IrqMgrInit.MLI + bcs .9 >LDYAI MSG.IRQ.CLOCK >SYSCALL PrintF.YA @@ -612,6 +599,22 @@ IrqMgrInit >LDYAI MSG.IRQ clc rts +.1 jsr IrqMgrInit.Mouse + bcs .8 + + lda #"V" + sta SYS.BASL0+38 + + >LDYAI GP.IrqH.VBL + jsr IrqMgrInit.MLI + bcs .9 + + >LDYAI MSG.IRQ.VBL + >SYSCALL PrintF.YA + + clc + rts + .8 jsr IrqMgrInit.HZ2Tick lda #"P" @@ -623,105 +626,25 @@ IrqMgrInit >LDYAI MSG.IRQ clc rts -.9 plp - sec +.9 sec rts *-------------------------------------- -IrqMgrInit.HZ2Tick - ldx #50 - lda A2osX.HZ - sta CORE.TickPer10t - sta CORE.Tick10t - cmp #5 - beq .1 - ldx #60 - -.1 stx CORE.TickPerSec - stx CORE.TickSec - - rts -*-------------------------------------- -IrqMgrInit.Mouse - stz ZPPtr1 Try finding a Mouse Card... - lda #$C1 - sta ZPPtr1+1 - -.1 ldx #Mouse.SIG-Mouse.OFS-1 - -.2 ldy Mouse.OFS,x - lda (ZPPtr1),y - cmp Mouse.SIG,x - bne .3 - dex - bpl .2 - bra .4 - -.3 inc ZPPtr1+1 no match, try next slot.... - lda ZPPtr1+1 - cmp #$C8 - bne .1 - - sec - rts - -.4 lda ZPPtr1+1 - - sta IRQ.VBL.MSM+2 - sta IRQ.VBL.MRM+2 - - and #$0f - sta IRQ.VBL.0n - asl - asl - asl - asl - - sta IRQ.VBL.n0 - - ldy #$13 SERVEMOUSE - lda (ZPPtr1),y - sta IRQ.VBL.MSM+1 - - ldy #$14 READMOUSE - lda (ZPPtr1),y - sta IRQ.VBL.MRM+1 - - ldy #$12 SETMOUSE - - lda (ZPPtr1),y - sta .7+1 - - lda #9 #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE - - ldx ZPPtr1+1 DEVSLOTCn - stx .7+2 - ldy IRQ.VBL.n0 +IrqMgrInit.MLI >STYA K.MLI.PARAMS+2 php sei - - bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly - -.7 jsr $ffff self Modified, CALL SETMOUSE + >MLICALL MLIALLOCIRQ bcs .9 - bit RRAMWRAMBNK1 Back To LC Ram - bit RRAMWRAMBNK1 - - jsr IrqMgrInit.HZ2Tick - - dec CORE.IRQMode - + lda K.MLI.PARAMS+1 + sta IRQ.INTNUM plp - clc + clc rts .9 plp sec rts - -Mouse.OFS .HS 05070B0CFB -Mouse.SIG .HS 38180120D6 *-------------------------------------- IrqMgrInit.TClock stz ZPPtr1 Try finding a Mouse Card... @@ -781,6 +704,106 @@ IrqMgrInit.TClock TClock.SIG .HS 0878282c58ff700538b00118b8087848 .HS 8a489848adffcf201ac86868ba8df807 *-------------------------------------- +IrqMgrInit.Mouse + stz ZPPtr1 Try finding a Mouse Card... + lda #$C1 + sta ZPPtr1+1 + +.1 ldx #Mouse.SIG-Mouse.OFS-1 + +.2 ldy Mouse.OFS,x + lda (ZPPtr1),y + cmp Mouse.SIG,x + bne .3 + dex + bpl .2 + bra .4 + +.3 inc ZPPtr1+1 no match, try next slot.... + lda ZPPtr1+1 + cmp #$C8 + bne .1 + + sec + rts + +.4 lda ZPPtr1+1 + + sta .11+2 + sta IRQ.VBL.MSM+2 + sta IRQ.VBL.MRM+2 + + and #$0f + sta IRQ.VBL.0n + asl + asl + asl + asl + + sta IRQ.VBL.n0 + + php + sei + + bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly + + ldy #INITMOUSE + jsr .10 + + ldy #SETMOUSE + lda #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE + jsr .10 + + bit RRAMWRAMBNK1 Back To LC Ram + bit RRAMWRAMBNK1 + + ldy #SERVEMOUSE + lda (ZPPtr1),y + sta IRQ.VBL.MSM+1 + + ldy #READMOUSE + lda (ZPPtr1),y + sta IRQ.VBL.MRM+1 + + jsr IrqMgrInit.HZ2Tick + + dec CORE.IRQMode + + plp + clc + rts + +.9 plp + sec + rts + +.10 pha + lda (ZPPtr1),y + sta .11+1 + pla + + ldx .11+2 Cn + ldy IRQ.VBL.n0 + +.11 jmp $ffff SELF MODIFIED + +Mouse.OFS .HS 05070B0CFB +Mouse.SIG .HS 38180120D6 +*-------------------------------------- +IrqMgrInit.HZ2Tick + ldx #50 + lda A2osX.HZ + sta CORE.TickPer10t + sta CORE.Tick10t + cmp #5 + beq .1 + ldx #60 + +.1 stx CORE.TickPerSec + stx CORE.TickSec + + rts +*-------------------------------------- DevMgrInit >LDYAI MSG.DEV >SYSCALL PrintF.YA diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 83584313..eab27cc8 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -34,9 +34,17 @@ K.IrqHAuxLC sta .6+1 pha sta CLRREADAUX Make sure we can access Dev.Table + lda RDWRITEAUX + pha + sta CLRWRITEAUX Driver may R/W in screen holes + jsr K.IrqH pla Must keep Carry + bpl .10 + sta SETWRITEAUX + +.10 pla bpl .1 sta SETREADAUX @@ -62,8 +70,7 @@ K.IrqHAuxLC sta .6+1 bcs .8 rti -.7 pla pull P - bra * +.7 lda .6+1 .8 jmp (IRQ.OldFFFE) *-------------------------------------- diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index bd9473e8..9f19d8fc 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -12,6 +12,7 @@ AUTO 4,1 .INB INC/IO.I .INB INC/PRODOS.I .INB INC/MLI.ERR.I + .INB INC/XY.MOUSE.I .INB INC/GUI.I .INB /A2OSX.SRC/SYS/KERNEL.S.INIT @@ -49,7 +50,7 @@ A2osX.D2 .PH $D000 .EP A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.JMP - .INB /A2OSX.SRC/SYS/KERNEL.S.IRQ +* .INB /A2OSX.SRC/SYS/KERNEL.S.IRQ .INB /A2OSX.SRC/SYS/KERNEL.S.MEM DevMgr.FreeMem .EQ * .EP