From e6c28cd69e66cb3c3e55741a992479f6ed2f4e6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 4 Jun 2019 17:49:58 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.IO.txt | 48 +++++++++++--------------- BIN/SH.S.txt | 10 +++--- BIN/X.CPMVRM.S.txt | 5 +-- DRV/X.U2.DRV.S.txt | 4 +-- SYS/KERNEL.S.IO.txt | 2 +- SYS/KERNEL.S.MEM.txt | 33 ++++++++++++++++++ SYS/KERNEL.S.STAT.txt | 72 ++++++++++++++++++--------------------- 8 files changed, 96 insertions(+), 78 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 82683b457a98ffc764bc2f28612a9004a44c6751..ef48c0c63eb4d4bf8670c09ab78856bed710537b 100644 GIT binary patch delta 27908 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 z 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 - ldy #S.PS.hStdErr - lda (pPS),y - >SYSCALL fputc - ply - bra .5 + sta (ZPCLBuf),y -.6 >PUSHBI 0 - >PUSHW L.MSG.ECHOCRLF - ldy #S.PS.hStdErr - lda (pPS),y - >SYSCALL fprintf +.6 >PUSHW ZPCLBuf + + >PUSHBI 2 + >PUSHW L.MSG.BATCHLINE + jsr .80 ldy #$ff + ldx #'-' .7 iny - lda (ZPPtr1),y + lda (ZPCLBuf),y beq .8 - cmp #C.CR - beq .8 - - phy - >PUSHBI '-' - ldy #S.PS.hStdErr - lda (pPS),y - >SYSCALL fputc - ply + txa + sta (ZPCLBuf),y bra .7 - + .8 >PUSHW M32.TMP - - >PUSHBI 2 + >PUSHW ZPCLBuf + >PUSHBI 4 >PUSHW L.MSG.BATCHERR - ldy #S.PS.hStdErr + +.80 ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf - rts +.9 rts *-------------------------------------- IO.PrintErrMsg pha Save EC for PrintF diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index e5ebc553..c63ac5e9 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -58,7 +58,7 @@ E.NOFOR .EQ $C5 E.NOIF .EQ $C6 E.BADEXP .EQ $C7 E.BADFTYPE .EQ $C8 -E.FUNDEF .EQ $C7 +E.FUNDEF .EQ $C9 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I @@ -112,6 +112,7 @@ L.MSG.PROMPT .DA MSG.PROMPT L.MSG.PROMPTCRLF .DA MSG.PROMPTCRLF L.MSG.TRACE .DA MSG.TRACE L.MSG.ECHOCRLF .DA MSG.ECHOCRLF +L.MSG.BATCHLINE .DA MSG.BATCHLINE L.MSG.BATCHERR .DA MSG.BATCHERR L.MSG.ERROR .DA MSG.ERROR L.MSG.PRINTENV .DA MSG.PRINTENV @@ -193,7 +194,6 @@ L.PS1 .DA PS1 L.M32.Printf .DA M32.Printf L.ERR.Codes .DA ERR.Codes L.ERR.Messages .DA ERR.Messages -L.NOD.Template .DA NOD.Template .DA 0 *-------------------------------------- CS.INIT clc @@ -586,8 +586,9 @@ CS.END MSG.GREETINGS .AZ "\r\nA2osX-SH %d.%d\r\n\r\n" MSG.PROMPT .AZ "\e[?7h$ " Enable Line Wrap MSG.PROMPTCRLF .AZ "\e[?7l\r\n" Disable Line Wrap -MSG.TRACE .AZ ">%s\r\n" -MSG.BATCHERR .AZ "^\r\nLine #%D:" +MSG.TRACE .AS ">" +MSG.BATCHLINE .AZ "%s\r\n" +MSG.BATCHERR .AZ "%s^\r\nLine #%D:" MSG.ERROR .AS "[$%h]:%S." MSG.ECHOCRLF .AZ "\r\n" MSG.PRINTENV .AZ "%s = %s\r\n" @@ -703,7 +704,6 @@ EXP.OP.LOGIC .AZ "AND" EscChars .AS 'DBAC' EscChars.Cnt .EQ *-EscChars EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS -NOD.Template .AZ "/DEV/PIPE%h" M32.Printf .AZ "%L" *-------------------------------------- .DUMMY diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 3f2e31d4..58bc16ba 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -751,9 +751,10 @@ CS.QUIT jsr LeaveSubDir .7 lda (pData),y beq .9 >SYSCALL FreeMem -.9 rts +.9 clc + rts *-------------------------------------- MAN SAVE USR/SRC/BIN/X.CPMVRM.S -LOAD USR/SRC/BIN/CP.S +LOAD USR/SRC/BIN/RM.S ASM diff --git a/DRV/X.U2.DRV.S.txt b/DRV/X.U2.DRV.S.txt index 92b3f36d..90bc5621 100644 --- a/DRV/X.U2.DRV.S.txt +++ b/DRV/X.U2.DRV.S.txt @@ -492,13 +492,13 @@ READ php dex bpl .11 + ldx DEVSLOTx0 + ldy #S.IP .ELSE ldy #0 .FIN - ldx DEVSLOTx0 - .2 inc Counter bne .3 inc Counter+1 diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 73ec9bde..40d765db 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -853,7 +853,7 @@ IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF *-------------------------------------- IO.DEVDIR .DA #5 >PSTR "/DEV/" *-------------------------------------- -STAT.FIFO .AZ "/DEV/FIFO%d" +STAT.FIFO .AS "/DEV/FIFO" *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.IO diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index f47d3137..835a2ff9 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -769,6 +769,39 @@ MEM.NextCharPtr2 bne .8 inc ZPPtr2+1 .8 rts +*/-------------------------------------- +* # GetMemStat +* **In:** +* Y,A = Ptr to 24 bytes buffer +* ## RETURN VALUE +* Buffer filled with memory stats +*\-------------------------------------- +K.GetMemStat >STYA ZPPtr1 + + ldy #23 + ldx #7 + +.1 lda DevMgr.Stat,x + sta (ZPPtr1),y + dey + dex + bpl .1 + + sta SETREADAUX + + jsr .2 + + sta CLRREADAUX + +.2 ldx #7 + +.3 lda Mem.Table,x + sta (ZPPtr1),y + dey + dex + bpl .3 + + rts *-------------------------------------- DevMgr.Stat .DA DevMgr.FreeMem DevMgr.Free .DA DevMgr.FreeMem diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 58f055c6..0107c0a8 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -1,38 +1,5 @@ NEW AUTO 3,1 -*/-------------------------------------- -* # GetMemStat -* **In:** -* Y,A = Ptr to 24 bytes buffer -* ## RETURN VALUE -* Buffer filled with memory stats -*\-------------------------------------- -K.GetMemStat >STYA ZPPtr1 - - ldy #23 - ldx #7 - -.1 lda DevMgr.Stat,x - sta (ZPPtr1),y - dey - dex - bpl .1 - - sta SETREADAUX - - jsr .2 - - sta CLRREADAUX - -.2 ldx #7 - -.3 lda Mem.Table,x - sta (ZPPtr1),y - dey - dex - bpl .3 - - rts *-------------------------------------- * # ChMod * change permissions of a file @@ -310,15 +277,42 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer jsr K.pipe bcs STAT.Access2Mode.RTS - sta K.S.STAT+S.STAT.DEV + sta K.S.STAT+S.STAT.DEV hFD + tax + + ldy #11 + lda #0 + sta (ZPPtr1),y + dey - >PUSHA - >PUSHBI 1 - >PUSHWI STAT.FIFO - >LDYA ZPPtr1 - jsr K.sprintf + txa + and #$0F + jsr .7 + sta (ZPPtr1),y + dey + + txa + lsr + lsr + lsr + lsr + jsr .7 + +.1 sta (ZPPtr1),y + lda STAT.FIFO-1,y + dey + bpl .1 + bra K.MkNod.I + +.7 ora #$30 + cmp #'9'+1 + bcc .8 + + adc #6 + +.8 rts */-------------------------------------- * # MkNod * Create a special or ordinary file.