diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 5bb19e4f..11c1d70d 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 9d074aad..3c5a07c9 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -166,21 +166,16 @@ CMD.SET lda (ZPArgVBufPtr) >STYA ZPPTR1 .1 lda (ZPPTR1) - beq .9 Ending 0 ? + beq .8 Ending 0 ? - >PUSHW L.MSG.PRINTENV + >LDYA ZPPTR1 + >SYSCALL puts + bcs .9 - >PUSHW ZPPTR1 Push name jsr GetPtr1NextString - - >PUSHW ZPPTR1 Push value - jsr GetPtr1NextString - - >PUSHBI 4 - >SYSCALL printf2 - - bcc .1 - + bra .1 +.8 +* clc .9 rts *-------------------------------------- * SET +X VAR = VALUE1 op VALUE2 op VALUE3 ... @@ -262,15 +257,7 @@ CMD.SET.GET >LDYA ZPVarNamePtr clc rts -.1 pha - >PUSHW L.MSG.PRINTENV - >PUSHW ZPVarNamePtr push name - - pla - >PUSHYA push value - - >PUSHBI 4 - >SYSCALL printf2 +.1 >SYSCALL puts rts *-------------------------------------- CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`" diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index b41d43be..4cdb7379 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -119,7 +119,6 @@ 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 L.MSG.PID .DA MSG.PID L.FMT.DATE .DA FMT.DATE L.FMT.Long .DA FMT.Long @@ -569,7 +568,6 @@ 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" MSG.PID .AZ "PID=%d\r\n" FMT.DATE .AZ "%A, %B %d %Y %H:%M:%S" FMT.Long .AZ "%L" diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 1cbfd218..86af7b74 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -88,9 +88,11 @@ K.ExpandStr stz ENV.hMem Reset Intermediate string... .40 jsr ENV.ExpandStrVar bcc .70 + .50 jsr ENV.FindVarP1 bcs .70 - jsr ENV.NextEnvP3 + + jsr ENV.NextEnvP3Y Skip NAME= jsr ENV.AddP3ToBuf .70 ldy #$ff @@ -242,6 +244,7 @@ K.PutEnv >STYA ZPPtr2 NAME=VALUE .1 lda (ZPPtr2),y copy NAME to K.Buf256 beq .9 + cmp #'=' beq .2 @@ -337,6 +340,9 @@ K.SetEnv.I jsr K.UnsetEnv.I sta (ZPPtr3),y bne .23 + lda #'=' + sta (ZPPtr3),y + jsr ENV.NextEnvP3Y ldy #$ff @@ -364,10 +370,11 @@ K.SetEnv.I jsr K.UnsetEnv.I * CS : not found *\-------------------------------------- K.GetEnv >STYA ZPPtr1 + jsr ENV.FindVarP1 bcs .9 - jsr ENV.NextEnvP3 Skip NAME + jsr ENV.NextEnvP3Y Skip NAME= clc just in case ADC in NextEnvPtr3 disturb CC .9 >LDYA ZPPtr3 \0 @@ -387,7 +394,7 @@ K.UnsetEnv >STYA ZPPtr1 Store VAR Name K.UnsetEnv.I jsr ENV.FindVarP1 bcs K.UnsetEnv.I.8 not found, quit - jsr ENV.DelVarP3 Ptr3 -> ENVNAME + jsr ENV.DelVarP3 Ptr3 -> NAME=VALUE K.UnsetEnv.I.8 clc K.UnsetEnv.I.9 rts *-------------------------------------- @@ -513,7 +520,7 @@ ENV.StrVarsSession * CC: Found * Y = NAME len * ZPPtr1 -> NAME -* ZPPtr3 -> ENV.NAME +* ZPPtr3 -> NAME=VALUE * CS: Not Found * ZPPtr1 -> NAME * ZPPtr3 -> PTR to Ending 0 @@ -522,24 +529,28 @@ ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV .1 lda (ZPPtr3) beq .9 end of ENV + ldy #$ff .2 iny lda (ZPPtr1),y beq .3 + jsr SHARED.IsIDValid bcs .3 cmp (ZPPtr3),y beq .2 bra .4 + .3 lda (ZPPtr3),y + cmp #'=' bne .4 clc rts -.4 jsr ENV.NextEnvP3x2 Skip NAME & VALUE +.4 jsr ENV.NextEnvP3 Skip NAME=VALUE bra .1 .9 sec @@ -551,7 +562,7 @@ ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV *-------------------------------------- ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr >STYA ZPPtr4 - jsr ENV.NextEnvP3x2 Skip NAME & VALUE + jsr ENV.NextEnvP3 Skip NAME=VALUE .1 ldy #$ff @@ -577,8 +588,6 @@ ENV.InitEnvP3 ldy #S.PS.hENV ENV.InitEnvP3.RTS rts *-------------------------------------- -ENV.NextEnvP3x2 jsr ENV.NextEnvP3 -*-------------------------------------- ENV.NextEnvP3 jsr ENV.GetP3LenY *-------------------------------------- ENV.NextEnvP3Y tya diff --git a/SYS/KERNEL.S.SHARED.txt b/SYS/KERNEL.S.SHARED.txt index 0eb56f6e..c025ad46 100644 --- a/SYS/KERNEL.S.SHARED.txt +++ b/SYS/KERNEL.S.SHARED.txt @@ -80,6 +80,12 @@ SHARED.TXTPTR.GetY sta SETREADAUX rts *-------------------------------------- +SHARED.FORPNT.PutY + sta CLRWRITEAUX + sta (FORPNT),y + sta SETWRITEAUX + rts +*-------------------------------------- SHARED.TXTPTR.GetNext sta CLRREADAUX lda (TXTPTR)