diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 0191f191..7bd33196 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 69ecfde9..453272c1 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/SBIN/INSDRV.S.txt b/SBIN/INSDRV.S.txt index 255d9180..087c771b 100644 --- a/SBIN/INSDRV.S.txt +++ b/SBIN/INSDRV.S.txt @@ -39,7 +39,7 @@ L.MSG.LOAD .DA MSG.LOAD CS.RUN ldy #S.PS.ARGC lda (pPs),y cmp #2 - bne .9 + bcc .9 lda #1 get PTR to ARG[1] (Driver name) >SYSCALL ArgV diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 86a6bb1c..d0fba61b 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -47,7 +47,10 @@ Cmd.Parse >STZ.G CMD.bCmd lda (ZPCMDBuf) beq .8 -.1 >LDA.G CMD.bCmd +.1 cmp #'#' comment ? + beq .8 yes, ignore remaining + + >LDA.G CMD.bCmd bne .6 we already have Cmd, go check args ldy #2 @@ -245,18 +248,16 @@ Cmd.INT.CD ldx #1 .4 >STYA ZPCMDBuf txa - >STA.G CMD.hCmdLine - -**** MEMORY LEAK : CMD.hCmdLine not released + >STA.G CMD.hCmdLine ldy #1 lda (ZPCMDBuf),y beq .8 we have '/' - + >PUSHEA.G CMD.Stat >LDYA ZPCMDBuf >SYSCALL STAT - bcs .9 + bcs .90 >LDA.G CMD.Stat+S.STAT.P.TYPE cmp #S.FI.T.DIR @@ -264,7 +265,7 @@ Cmd.INT.CD ldx #1 .8 >LDYA ZPCMDBuf >SYSCALL NewStr - bcs .9 + bcs .90 phx ldy #S.PS.hPREFIX @@ -275,8 +276,14 @@ Cmd.INT.CD ldx #1 ldy #S.PS.hPREFIX sta (pPs),y - jmp SetPWD - + jsr SetPWD + +.90 php + pla + >LDA.G CMD.hCmdLine + >SYSCALL FreeMem + pla + plp .9 rts *-------------------------------------- Cmd.Exec.ERRSYN lda #E.SYN @@ -336,7 +343,7 @@ Cmd.INT.SET ldx #1 .9 rts *-------------------------------------- Cmd.INT.SETVAR >STYA ZPPTR1 - >SYSCALL puts + lda (ZPPTR1) cmp #'=' string is '=value' ? beq .99 syntax error @@ -363,6 +370,7 @@ Cmd.INT.SETVAR >STYA ZPPTR1 sta (ZPPTR1),y >LDYA ZPPTR1 String is "VAR"... + >DEBUG >SYSCALL UnsetEnv rts diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index b41fe299..cf31cd5a 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -186,7 +186,7 @@ CSH.Run jsr CL.RESET >STA.G bCmdBufexec >LDA.G bSET.X -* beq .80 + beq .80 >PUSHW ZPCMDBuf >PUSHBI 2 diff --git a/SYS/KERNEL.S.ARG.txt b/SYS/KERNEL.S.ARG.txt index c770091a..93e21e66 100644 --- a/SYS/KERNEL.S.ARG.txt +++ b/SYS/KERNEL.S.ARG.txt @@ -15,21 +15,15 @@ AUTO 4,1 *\-------------------------------------- ARG.bInQuote .BS 1 *-------------------------------------- -K.Args2ArgV pha - >PULLW ZPPtr2 Get target buffer - pla - -K.Args2ArgV.I jsr K.ExpandStr +K.Args2ArgV jsr K.ExpandStr + bcs .9 - phy - pha - >SYSCALL puts - pla - ply >STYA ZPPtr1 stx .80+1 + >PULLW ZPPtr2 Get target buffer + ldx #0 Arg Count stz ARG.bInQuote @@ -77,7 +71,9 @@ K.Args2ArgV.I jsr K.ExpandStr pla get back Arg Count * clc -.9 rts + rts + +.9 >RET 2 Discard target buffer */-------------------------------------- * # ArgV * ## ASM diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index a15630de..9187939c 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -586,18 +586,16 @@ ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV .1 lda (ZPPtr3) beq .9 end of ENV - ldy #0 + ldy #$ff -.2 lda (ZPPtr1),y +.2 iny + lda (ZPPtr1),y cmp (ZPPtr3),y bne .3 ora #0 - beq .8 - - iny bne .2 - + .8 clc rts @@ -647,14 +645,13 @@ ENV.InitEnvP3 ldy #S.PS.hENV >STYA ZPPtr3 Store ENV rts *-------------------------------------- -ENV.NextEnvP3 ldy #0 +ENV.NextEnvP3 ldy #$ff -.1 lda (ZPPtr3),y - beq .2 - iny +.1 iny + lda (ZPPtr3),y bne .1 -.2 tya + tya sec adc ZPPtr3 sta ZPPtr3 @@ -672,7 +669,6 @@ ENV.AddAToBuf ldx ENV.BufLen ENV.BufLen .BS 1 ENV.bNoExp .BS 1 ENV.VarLen .BS 1 -ENV.VarNamePtr .BS 2 ENV.VarName .BS 16 *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 3ff1c556..97144f78 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -3,7 +3,7 @@ PREFIX /A2OSX.BUILD AUTO 4,1 *-------------------------------------- PS.Flags .BS 1 -PS.Args .BS 2 +PS.ArgV .BS 2 */-------------------------------------- * # ExecL * ## C @@ -15,23 +15,34 @@ PS.Args .BS 2 * ## RETURN VALUE * A = Child PSID *\-------------------------------------- -K.ExecL pha - lda #K.IOBuf - sta ZPPtr2 - lda /K.IOBuf - sta ZPPtr2+1 - pla - jsr K.Args2ArgV.I - bcc .1 - - >RET 1 discard flags +K.ExecL sty .1+1 + sta .2+1 + >PULLB PS.Flags -.1 >LDYAI K.IOBuf - phy + >LDYAI 256 + jsr K.GetMem + bcs .99 + + stx .90+1 + >STYA PS.ArgV + >PUSHYA +.1 ldy #$ff SELF MODIFIED +.2 lda #$ff SELF MODIFIED + + jsr K.Args2ArgV + + bcs .9 + + jsr PS.Exec + +.9 php pha - >SYSCALL puts +.90 lda #$ff SELF MODIFIED + jsr K.FreeMem pla - ply + plp + +.99 rts */-------------------------------------- * # ExecV * ## C @@ -43,15 +54,15 @@ K.ExecL pha * ## RETURN VALUE * A = Child PSID *\-------------------------------------- -K.ExecV >STYA PS.Args +K.ExecV >STYA PS.ArgV >PULLB PS.Flags - jsr PS.CreateChild Child S.PS at ZPPtr3 +PS.Exec jsr PS.CreateChild Child S.PS at ZPPtr3 bcs .9 sta .8+1 - >LDYA PS.Args + >LDYA PS.ArgV jsr PS.DupArgs ldy #S.PS.hARGV @@ -63,13 +74,7 @@ K.ExecV >STYA PS.Args pla >SYSCALL GetMemPtr - - phy - pha - >SYSCALL puts - pla - ply - >DEBUG + jsr PS.Load bcc .8