diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 6eb49145..954b90d5 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 6d31e22b..9d074aad 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -841,16 +841,13 @@ CMD.FOR jsr CORE.StkGetCtx lda #8 Make sure 8 bytes free on stack jsr CORE.StkCheck - bcs .9 + bcs FOR.FILE.9 lda (ZPArgVBufPtr) cmp #'(' beq CMD.FOR.FILE cmp #'`' - bne CMD.FOR.LIST - - bra CMD.FOR.EXEC -.9 rts + beq CMD.FOR.EXEC *-------------------------------------- CMD.FOR.LIST >LDYA ZPArgVBufPtr >SYSCALL strdup diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 16be7c37..6b89672b 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -373,20 +373,23 @@ CORE.Lookup >STYA ZPPtr2 *-------------------------------------- * ArgV *-------------------------------------- -CORE.ArgV.Add >LDYA ZPArgVBufPtr - >STYA ZPArgVBufPrev Save String start of Expand - - lda #C.SPACE +CORE.ArgV.Add lda #C.SPACE sta ZPTmpW + + ldy #0 + jsr CORE.GetCharNB bcs .9 cmp #'"' bne .10 + sta ZPTmpW bra .1 + .10 cmp #'(' bne .11 + ldx #')' stx ZPTmpW @@ -395,58 +398,60 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr .11 cmp #'`' bne .12 sta ZPTmpW -.12 jsr CORE.ArgV.PutChar + +.12 sta (ZPArgVBufPtr),y + iny .1 jsr CORE.GetNextChar bcs .5 + .2 cmp ZPTmpW bne .3 jsr CORE.GetNextChar bra .5 -.3 ldy ZPTmpW - cpy #C.SPACE +.3 ldx ZPTmpW + cpx #C.SPACE bne .40 + jsr CORE.IsEndCmd bcc .5 -.40 jsr CORE.ArgV.PutChar + +.40 sta (ZPArgVBufPtr),y + iny + .4 jsr CORE.GetNextChar bcc .2 -.5 lda #0 - jsr CORE.ArgV.PutChar - >LDYA ZPArgVBufPrev +.5 lda #0 + sta (ZPArgVBufPtr),y + + >LDYA ZPArgVBufPtr >SYSCALL ExpandStr bcs .9 + phx >STYA ZPPtr1 - >LDYA ZPArgVBufPrev - >STYA ZPArgVBufPtr - ldy #$ff .7 iny lda (ZPPtr1),y - beq .8 - jsr CORE.ArgV.PutChar - bra .7 -.8 tya - beq .81 - lda #0 - jsr CORE.ArgV.PutChar -.81 pla + sta (ZPArgVBufPtr),y + bne .7 + + tya + sec + adc ZPArgVBufPtr + sta ZPArgVBufPtr + bcc .8 + + inc ZPArgVBufPtr+1 + +.8 pla >SYSCALL freemem .9 rts *-------------------------------------- -CORE.ArgV.PutChar - sta (ZPArgVBufPtr) -CORE.ArgV.NextChar - inc ZPArgVBufPtr - bne .8 - inc ZPArgVBufPtr+1 -.8 rts -*-------------------------------------- CORE.ArgV.Next lda (ZPArgVBufPtr) beq .8 @@ -462,6 +467,12 @@ CORE.ArgV.Next lda (ZPArgVBufPtr) .8 rts *-------------------------------------- +CORE.ArgV.NextChar + inc ZPArgVBufPtr + bne .8 + inc ZPArgVBufPtr+1 +.8 rts +*-------------------------------------- * IO *-------------------------------------- CORE.IO.JMP txa