From 1e0867a9f2c16f796f68b72f42d58449693616c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 12 Mar 2020 08:46:43 +0100 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/DHGR.DRV.S.txt | 29 +++++++++++++---------------- INC/A2osX.I.txt | 6 +++--- SYS/KERNEL.S.CORE.txt | 6 +++--- SYS/KERNEL.S.GP.txt | 6 +++--- SYS/KERNEL.S.INIT.txt | 5 +++-- SYS/KERNEL.S.PIPE.txt | 19 +++++++++++++++++++ SYS/KERNEL.S.SHARED.txt | 6 ++++++ SYS/KERNEL.S.STAT.txt | 1 + SYS/KERNEL.S.TERM.txt | 2 +- SYS/KERNEL.S.TERMX.txt | 31 +++++++++++++++++++++---------- SYS/KERNEL.S.txt | 2 -- 12 files changed, 73 insertions(+), 40 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 27ad990db59745f478c9c4240d6dd028207a842d..e317fea1911b9be9b0ac1e7e667946dc2453d0b5 100644 GIT binary patch delta 39974 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 Izk>ewKWAm-q5uE@ delta 40739 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 : Public Variables +* $BED0->$BEEF : Public Variables *-------------------------------------- -*A2osX.ASCREEN .EQ $BEE0 Active Screen -*A2osX.SCRNDEVS .EQ $BEE1 -> $BEE5 (5 screen devices) +A2osX.SCRNDEVS .EQ $BED0 0=console, 1-8=VT100, 9=GFX +A2osX.ASCREEN .EQ $BEDA Active Screen A2osX.CPUTYPE .EQ $BEE6 A2osX.CPUSPEED .EQ $BEE7 WORD, (->255.99 Mhz) diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index c4858c39..ac69bf85 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -94,10 +94,10 @@ CORE.Events jsr CORE.GetEvents sta KBDSTROBE and #$0F tax - lda DevMgr.SCRNDEVS,x Get DevID + lda A2osX.SCRNDEVS,x Get DevID beq .8 No device claimed this screen - cmp DevMgr.ASCREEN Same as active screen...nothing to do + cmp A2osX.ASCREEN Same as active screen...nothing to do beq .8 >PUSHA @@ -165,7 +165,7 @@ CORE.GetEvents lda #Evt.Table lda IRQ.Mode eor #$C0 sta IRQ.Mode - ldx DevMgr.ASCREEN + ldx A2osX.ASCREEN cpx #3 devID 3 is /DEV/CONSOLE bne .22 sta SYS.BASL0+38 diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index ac7a81aa..190f563e 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -438,11 +438,11 @@ IRQ.Tick .BS 1 *-------------------------------------- *BrkHandler bra * *-------------------------------------- -GP.CodeEnd .BS $BEE0-* +GP.CodeEnd .BS $BED0-* *-------------------------------------- -* $BEE0->$BEEF : Public Variables +* $BED0->$BEEF : Public Variables *-------------------------------------- - .BS 16 + .BS 32 *-------------------------------------- * $BEF0->$BEFF : Kernel Config Block *-------------------------------------- diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index e2f8f935..bbe8cd43 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -112,7 +112,7 @@ Kernel.Init3 sta SETALTZP >PUSHWI FD.NULL >PUSHWI FD.NULL.NAME >SYSCALL2 MKDev - + jsr SysScrInit bcs * >PUSHWI DEV.CONSOLE @@ -296,7 +296,7 @@ SysScrInit >LDYAI Mem.XHiMem >PUSHWI FD.TTY >PUSHWI FD.CONSOLE.NAME - + >SYSCALL2 MKDev bcs .9 @@ -309,6 +309,7 @@ SysScrInit >LDYAI Mem.XHiMem >PUSHWI FD.TTY >PUSHWI FD.TTY.NAME + >SYSCALL2 MKDev plx bcs .9 diff --git a/SYS/KERNEL.S.PIPE.txt b/SYS/KERNEL.S.PIPE.txt index d45751a3..41bfead0 100644 --- a/SYS/KERNEL.S.PIPE.txt +++ b/SYS/KERNEL.S.PIPE.txt @@ -59,7 +59,9 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S ldy #S.FD.PIPE.Head+1 jsr IO.PIPE.GET.BUF + >STYA IO.PIPE.DSTBUF + >PULLA get cnt lo sta IO.PIPE.CNT eor #$ff @@ -81,22 +83,28 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S pla inc beq .8 + pha + .2 lda (IO.PIPE.SRCBUF) sta (IO.PIPE.DSTBUF),y inc IO.PIPE.SRCBUF bne .4 + inc IO.PIPE.SRCBUF+1 .4 iny bne .1 + lda IO.PIPE.BUFH inc cmp IO.PIPE.SIZEH beq .6 + sta IO.PIPE.BUFH inc IO.PIPE.DSTBUF+1 bra .1 + .6 stz IO.PIPE.BUFH lda IO.PIPE.BASEH Pipe Buffer Base sta IO.PIPE.DSTBUF+1 @@ -131,10 +139,12 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 dey ora (pFD),y bne .10 yes... + ldy #S.FD.PIPE.S lda (pFD),y bmi IO.READ.PIPE.EOF Remote PS closed the Pipe bpl IO.READ.PIPE.NODATA + .10 >PULLW IO.PIPE.DSTBUF get dest buf ldy #S.FD.PIPE.Tail+1 @@ -146,6 +156,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 tax ldy #S.FD.PIPE.Used cmp (pFD),y + >PULLA get cnt hi pha iny #S.FD.PIPE.Used+1 @@ -158,6 +169,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 tax iny lda (pFD),y X,A = Used + .12 stx IO.PIPE.CNT sta IO.PIPE.CNT+1 @@ -174,25 +186,32 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 .1 inx bne .2 + pla inc beq .8 + pha + .2 lda (IO.PIPE.SRCBUF),y sta (IO.PIPE.DSTBUF) inc IO.PIPE.DSTBUF bne .4 + inc IO.PIPE.DSTBUF+1 .4 iny bne .1 + lda IO.PIPE.BUFH inc cmp IO.PIPE.SIZEH beq .6 + sta IO.PIPE.BUFH inc IO.PIPE.SRCBUF+1 bra .1 + .6 stz IO.PIPE.BUFH lda IO.PIPE.BASEH sta IO.PIPE.SRCBUF+1 Restore Pipe Buf base diff --git a/SYS/KERNEL.S.SHARED.txt b/SYS/KERNEL.S.SHARED.txt index ceb39ed7..95f76af3 100644 --- a/SYS/KERNEL.S.SHARED.txt +++ b/SYS/KERNEL.S.SHARED.txt @@ -149,6 +149,12 @@ SHARED.ZPPtr3.GetY sta SETREADAUX rts *-------------------------------------- +SHARED.GetScrnDevX + sta CLRREADAUX + lda A2osX.SCRNDEVS,x + sta SETREADAUX + rts +*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.SHARED LOAD USR/SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index f62d5555..b6b38803 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -307,6 +307,7 @@ K.Pipe sta .1+1 SIZE HI txa hFD * clc rts + .9 pha save error code lda .8+1 get back PIPE buffer diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index a0142c6b..91a428c3 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -77,7 +77,7 @@ TERM.GetDCB ldy #S.FD.DEV.DCBPTR sta ZPBufBase+1 lda (ZPDCBPtr) #S.DCB.TTY.DEVID - cmp DevMgr.ASCREEN + cmp A2osX.ASCREEN beq .1 CS clc diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index d246a986..c537c157 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -98,21 +98,28 @@ TERMX.OPEN tax jsr TERMX.ISOPENED bne TERMX.OPEN.E -TERMX.OPEN.1 txa + phx + ldx #0 -.2 ldy DevMgr.SCRNDEVS,x +.2 jsr SHARED.GetScrnDevX beq .3 inx cpx #K.TTY.MAX+1 bne .2 + plx + lda #E.OOH sec rts -.3 sta DevMgr.SCRNDEVS,x +.3 pla + + sta CLRWRITEAUX + sta A2osX.SCRNDEVS,x + sta SETWRITEAUX sta (ZPDCBPtr) #S.DCB.TTY.DEVID @@ -124,8 +131,11 @@ TERMX.OPEN.1 txa jsr RESET *-------------------------------------- TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID - sta DevMgr.ASCREEN - + + sta CLRWRITEAUX + sta A2osX.ASCREEN + sta SETWRITEAUX + sta SETTEXT jsr TERMX.SCRCPY @@ -146,11 +156,13 @@ TERMX.CLOSE jsr TERMX.ISOPENED sta (ZPDCBPtr),y ldx #0 -.1 lda DevMgr.SCRNDEVS,x +.1 jsr SHARED.GetScrnDevX cmp (ZPDCBPtr) #S.DCB.TTY.DEVID bne .2 - stz DevMgr.SCRNDEVS,x + sta CLRWRITEAUX + stz A2osX.SCRNDEVS,x + sta SETWRITEAUX clc rts @@ -181,7 +193,7 @@ TERMX.READ bit bActive is screen active? .1 jsr TERMX.Title.OFF lda KBD - sta A2osX.RANDOM16 + bpl .6 sta KBDSTROBE @@ -1311,8 +1323,7 @@ SetCharAtCurPos pha cpy #80 bcs SetCharAtYX.8 *-------------------------------------- -SetCharAtYX ror A2osX.RANDOM16+1 - cmp #$40 +SetCharAtYX cmp #$40 bcc .1 cmp #$60 bcs .1 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index a3ce11de..cb556ba8 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -114,8 +114,6 @@ A2osX.E0.B .PH $E000 .INB USR/SRC/SYS/KERNEL.S.PFT DevMgr.Timer .BS 1 -DevMgr.ASCREEN .BS 1 -DevMgr.SCRNDEVS .BS K.TTY.MAX+2 1-8=VT100, 9=GFX, 0=console DevMgr.Stat .DA DevMgr.FreeMem DevMgr.Free .DA DevMgr.FreeMem .DA DevMgr.HiMem