diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 630f9dbf..1516f2a4 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ 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