From 9be1af0109ad21d5af7aede7ca4c3c749ead0cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 25 Oct 2019 17:09:13 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/DNSINFO.S.txt | 10 ++++-- BIN/SH.S.CMD.txt | 14 ++++---- BIN/SH.S.CORE.txt | 26 ++++++++++++-- BIN/SH.S.IO.txt | 75 ++++++++++++++++++++++++++++----------- LIB/LIBTCPIP.S.ARP.txt | 15 ++------ LIB/LIBTCPIP.S.txt | 18 ++++++++-- SYS/KERNEL.S.BIN.txt | 13 ++++--- 8 files changed, 119 insertions(+), 52 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 630f9dbf4c5f3091dc036755c059dc667ff18668..1516f2a42ef30398af84720073136cefca70592d 100644 GIT binary patch delta 37138 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 BkMIBh delta 32534 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 U`AhzmNAg&n1V^#-3w}E3AJ;t5v;Y7A diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index fea9a93d..bd96ff10 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -15,8 +15,7 @@ NEW ZS.START ZPPTR1 .BS 2 EntryCount .BS 1 -ZS.END - .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -60,15 +59,19 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? >STYA ZPPTR1 lda (ZPPTR1) Configured ? bmi CS.RUN.IPOK + >LDYA L.MSG.IPKO >SYSCALL puts lda #E.SYN sec rts + CS.RUN.IPOK ldy #S.PS.ARGC lda (pPs),y bne .1 + jmp CS.RUN.DUMP + .1 cmp #2 beq CS.RUN.ADD >PUSHBI 0 @@ -83,18 +86,21 @@ CS.RUN.ADD >PUSHEA.G DST.IP+3 >PUSHEA.G DST.IP+2 >PUSHEA.G DST.IP+1 >PUSHEA.G DST.IP + >PUSHBI 8 4 PTRs >PUSHW L.SSCANF.IP lda #2 >SYSCALL ArgV >SYSCALL sscanf bcs .9 + >PUSHEA.G DST.IP lda #1 >SYSCALL ArgV >PUSHYA >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD bcs .99 + lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index dea480ba..5af42a04 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -952,16 +952,14 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`" >LDYA ZPArgVBufPtr >SYSCALL execl bcs FOR.FILE.9 - >LDA.G IO.hOut - ldy #S.PS.hStdOut - sta (pPS),y - >STZ.G IO.hOut - >LEA.G IO.FIFO - ldx #O.RDONLY+O.TEXT - jsr IO.FOpenYAX + + jsr IO.Pop.Out Restore OUT (NO close) + + jsr IO.Pipe.OpenR + bcs FOR.FILE.9 -CMD.FOR.PUSH jsr CORE.StkPush push hPIPE +CMD.FOR.PUSH jsr CORE.StkPush push hPIPE for read jsr CORE.PushVarName Push hVARNAME bcs FOR.FILE.9 diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 906a6c66..c77068f2 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -106,6 +106,7 @@ CORE.Run.EOF jsr CORE.StkPull CORE.Run.SYN lda #E.SYN sec rts +*-------------------------------------- CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping >STYA ZPInputCmdPtr @@ -117,23 +118,28 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping sta CORE.PSFlags lda #$ff sta CORE.IntCmd assume external + jsr CORE.GetCharNB bcs CORE.Run.EOF cmp #'|' bne .21 + jsr IO.Pipe.In bcs .9 + jsr CORE.GetNextCharNB Skip | bcs CORE.Run.SYN - bra .3 + .21 pha jsr IO.Reset pla + .3 cmp #C.CR empty line ? bne .33 jsr CORE.GetNextChar skip CR... bra .8 + .33 cmp #'#' commented line? bne .4 @@ -143,6 +149,7 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping lda #0 clc .9 rts EOL, CS,A=0 + .4 >LDYA L.CMD internal command ? jsr CORE.LookupInputBuf bcc .41 @@ -186,13 +193,17 @@ CORE.Run.5 >LDYA L.CORE.IO jsr CORE.IO.JMP bcs CORE.Run.RTS bra CORE.Run.7 + CORE.Run.6 jsr CORE.ArgV.Add + CORE.Run.7 jsr CORE.GetCharNB bcs CORE.ExecCmd.1 Nothing to skip jsr CORE.IsEndCmd bcs CORE.Run.5 + cmp #'|' bne CORE.ExecCmd skip CR, ; + jsr IO.Pipe.Out bcs CORE.Run.RTS @@ -200,7 +211,15 @@ CORE.Run.7 jsr CORE.GetCharNB and #$ff^S.PS.F.HOLD Run in the background... ora #S.PS.F.CLOSEONX ...and close PIPE on exit sta CORE.PSFlags - bra CORE.ExecCmd.1 Do not skip | + jsr CORE.ExecCmd.1 Do not skip | + + php + pha + + jsr IO.Pop.Out restore Output + + pla + plp CORE.Run.RTS rts *-------------------------------------- * Input : ZPArgVBuf @@ -228,6 +247,7 @@ CORE.ExecExtCmd >PUSHB CORE.PSFlags lda CORE.PSFlags and #S.PS.F.HOLD bne .4 + txa >PUSHA >PUSHBI 1 @@ -236,11 +256,13 @@ CORE.ExecExtCmd >PUSHB CORE.PSFlags lda (pPS),y >SYSCALL fprintf rts + .4 >SLEEP Suspend this PID sec ldy #S.PS.RC CPID will update S.PS.RC lda (pPs),y bne .9 + .8 clc .9 rts *-------------------------------------- diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index 335fde10..c67732da 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -15,16 +15,20 @@ IO.Load pha >SYSCALL LoadTxtFile rts *-------------------------------------- -IO.Pipe.In >LDA.G IO.hOut - ldy #S.PS.hStdOut - sta (pPS),y - >STZ.G IO.hOut - - >LEA.G IO.FIFO - ldx #O.RDONLY+O.TEXT - jsr IO.FOpenYAX - +IO.Pipe.In jsr IO.Pipe.OpenR Open last created PIPE bcs IO.Set.RTS + + pha + + ldy #S.PS.hStdIn + lda (pPS),y + >STA.G IO.hIn + + pla + + ldy #S.PS.hStdIn + sta (pPS),y + rts *-------------------------------------- IO.Set.In pha jsr IO.Reset.In @@ -35,9 +39,15 @@ IO.Set.In pha ldy #S.PS.hStdIn sta (pPS),y IO.Set.RTS rts +*-------------------------------------- +IO.Pop.In clc + .HS B0 BCS *-------------------------------------- -IO.Reset.In >LDA.G IO.hIn +IO.Reset.In sec + >LDA.G IO.hIn beq .8 + bcc .1 + pha ldy #S.PS.hStdIn @@ -45,22 +55,32 @@ IO.Reset.In >LDA.G IO.hIn >SYSCALL fclose pla - ldy #S.PS.hStdIn + +.1 ldy #S.PS.hStdIn sta (pPS),y >STZ.G IO.hIn + .8 clc IO.Reset.In.RTS rts *-------------------------------------- IO.Pipe.Out >PUSHWZ mode >LEA.G IO.FIFO >SYSCALL MKFIFO - bcs IO.Reset.In.RTS + bcs IO.Reset.In.RTS Create a new PIPE - >LEA.G IO.FIFO - ldx #O.WRONLY+O.TEXT - jsr IO.FOpenYAX + jsr IO.Pipe.OpenW Open for OUTPUT bcs IO.Reset.In.RTS + + pha + ldy #S.PS.hStdOut + lda (pPS),y + >STA.G IO.hOut + pla + ldy #S.PS.hStdOut + sta (pPS),y + + rts *-------------------------------------- IO.Set.Out pha jsr IO.Reset.Out @@ -70,17 +90,25 @@ IO.Set.Out pha pla ldy #S.PS.hStdOut sta (pPS),y + clc rts *-------------------------------------- -IO.Reset.Out >LDA.G IO.hOut +IO.Pop.Out clc + .HS B0 BCS +*-------------------------------------- +IO.Reset.Out sec + >LDA.G IO.hOut beq .8 + + bcc .1 + pha ldy #S.PS.hStdOut lda (pPS),y - >SYSCALL fclose pla - ldy #S.PS.hStdOut + +.1 ldy #S.PS.hStdOut sta (pPS),y >STZ.G IO.hOut .8 rts @@ -107,14 +135,18 @@ IO.Reset.Err >LDA.G IO.hErr >STZ.G IO.hErr .8 rts *-------------------------------------- -IO.FOpenYAX phy - pha +IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT + .HS 2C BIT ABS + +IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT + >LEA.G IO.FIFO +*-------------------------------------- +IO.FOpenYAX pha >PUSHWZ Aux type >PUSHBI S.FI.T.TXT txa >PUSHA pla - ply >SYSCALL fopen rts *-------------------------------------- @@ -228,6 +260,7 @@ IO.PrintErrMsg pha Save EC for PrintF >PUSHA >PUSHBI 3 >PUSHW L.MSG.ERROR + IO.PrintErr ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index a5fdc64d..001031e9 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -7,24 +7,15 @@ NEW * **In:** * ## RETURN VALUE *\-------------------------------------- -ARP.Clear lda hARPCache - bne .1 - - >LDYAI K.ARPCACHE.SIZE*S.ARPCACHE - >SYSCALL2 GetMem0 - bcs .9 - - stx hARPCache - rts - -.1 jsr ARP.GetCache +ARP.Clear jsr ARP.GetCache lda #0 tay + .2 sta (ZPCachePtr),y iny cpy #K.ARPCACHE.SIZE*S.ARPCACHE - bne .1 + bne .2 clc .9 rts diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 4db3294f..067f1494 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -164,15 +164,27 @@ LIB.LOAD ldx RefCount sta FD.DSOCK+S.FD.DSOCK.IOHANDLER sta FD.SSOCK+S.FD.SSOCK.IOHANDLER - jsr ARP.CLEAR + >LDYAI K.ARPCACHE.SIZE*S.ARPCACHE + >SYSCALL2 GetMem0 + bcs .9 + + stx hARPCache + jsr DNS.CLEAR .8 inc RefCount clc - rts +.9 rts *-------------------------------------- LIB.UNLOAD dec RefCount - clc + bne .8 + + lda hARPCache + beq .8 + + >SYSCALL2 freemem + +.8 clc rts *-------------------------------------- INCOMING sta hFrameIn diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 81f88f6a..3a6f9eea 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -42,13 +42,18 @@ K.UnloadLib pha jsr K.GetMemPtr >STYA .2+1 - jsr Mem.DecRefCnt + ldy #S.MEM.REFCNT + lda (ZPMemMgrSPtr),y + dec bne .8 -.1 ldx #LIBMGR.UNLOAD + + ldx #LIBMGR.UNLOAD .2 jsr $ffff Self Modified, Call LIB.UNLOAD function pla jmp K.FreeMem -.8 pla + +.8 sta (ZPMemMgrSPtr),y + pla * clc rts */-------------------------------------- @@ -263,7 +268,7 @@ BIN.RelExe ldy #H.BIN.T+1 .HS 2C bit abs *-------------------------------------- - BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE +BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE .1 iny lda (ZPPtr1),y HI in A