diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index f254cb41..7e7d8287 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/MEM.S.txt b/BIN/MEM.S.txt index 13ff4ff6..7235fc19 100644 --- a/BIN/MEM.S.txt +++ b/BIN/MEM.S.txt @@ -12,8 +12,11 @@ AUTO 4,1 PAGELEN .EQ 22 FOOTERLEN .EQ 8 *-------------------------------------- -ZPPTR1 .EQ ZPBIN -ZPPTR2 .EQ ZPBIN+2 + .DUMMY + .OR ZPBIN +ZS.START +MemStat .BS S.MSTAT +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -25,7 +28,7 @@ CS.START cld .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #16 SS - .DA #4 ZP + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table @@ -57,16 +60,10 @@ CS.RUN >LDYA L.MemStat tay lda MemStat+S.MSTAT.MF+1 sbc MemStat+S.MSTAT.ML+1 - >PUSHYA - - >PUSHW MemStat+S.MSTAT.MH - >PUSHW MemStat+S.MSTAT.MF - >PUSHW MemStat+S.MSTAT.ML - >PUSHBI 8 - >LDYA L.MSG.Stat - >SYSCALL printf + ldx #S.MSTAT.MH+1 + jsr CS.RUN.PRINT >SLEEP -*-------------------------------------- + >LDYA L.MSG.Aux >SYSCALL puts @@ -76,16 +73,10 @@ CS.RUN >LDYA L.MemStat tay lda MemStat+S.MSTAT.XF+1 sbc MemStat+S.MSTAT.XL+1 - >PUSHYA - - >PUSHW MemStat+S.MSTAT.XH - >PUSHW MemStat+S.MSTAT.XF - >PUSHW MemStat+S.MSTAT.XL - >PUSHBI 8 - >LDYA L.MSG.Stat - >SYSCALL printf + ldx #S.MSTAT.XH+1 + jsr CS.RUN.PRINT >SLEEP -*-------------------------------------- + >LDYA L.MSG.Kernel >SYSCALL puts @@ -95,19 +86,28 @@ CS.RUN >LDYA L.MemStat tay lda MemStat+S.MSTAT.DH+1 sbc MemStat+S.MSTAT.DF+1 - >PUSHYA + ldx #S.MSTAT.DH+1 + jsr CS.RUN.PRINT + + >LDYA L.MSG.END + >SYSCALL puts + + lda #0 + sec + rts +*-------------------------------------- +CS.RUN.PRINT >PUSHYA + + ldy #6 + +.1 >PUSHB MemStat,x + dex + dey + bne .1 - >PUSHW MemStat+S.MSTAT.DH - >PUSHW MemStat+S.MSTAT.DF - >PUSHW MemStat+S.MSTAT.DL >PUSHBI 8 >LDYA L.MSG.Stat >SYSCALL printf - - >LDYA L.MSG.End - >SYSCALL puts - lda #0 - sec rts *-------------------------------------- CS.DOEVENT sec @@ -125,7 +125,6 @@ MSG.Stat .AS " Low : $%H\r\n" .AS " High : $%H\r\n" .AZ " Available Memory : %05D Bytes\r\n" MSG.End .AZ "-------------------------------" -MemStat .BS S.MSTAT *-------------------------------------- .DUMMY .OR 0 diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 42bd3dfb..4e198eeb 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -81,9 +81,7 @@ CMD.CD.HOME >LDYA L.ENV.HOME >SYSCALL GetEnv bcs CMD.PWD -CMD.CD.1 -* >DEBUG - >SYSCALL realpath +CMD.CD.1 >SYSCALL realpath bcs CMD.POPD.RTS >STYA ZPPtr1 @@ -576,7 +574,7 @@ CMD.FOR jsr CORE.StkGet iny lda (ZPArgVBufPtr),y bne CMD.CONTINUE.CSYN - + jsr CORE.ArgV.Next beq CMD.CONTINUE.CSYN @@ -584,7 +582,9 @@ CMD.FOR jsr CORE.StkGet beq FOR.FILE cmp #'`' - beq FOR.EXEC + bne FOR.LIST + + jmp FOR.EXEC *-------------------------------------- FOR.LIST sec jsr CORE.StkPushPtr Push CmdPtr AFTER FOR @@ -636,7 +636,52 @@ FOR.LIST sec .99 rts *-------------------------------------- -FOR.FILE +FOR.FILE sec + jsr CORE.StkPushPtr Push CmdPtr AFTER FOR + bcs .99 + + jsr CORE.ArgV.NextChar skip "(" + + >PUSHWI 0 Aux type + >PUSHBI S.FI.T.TXT + >PUSHBI O.RDONLY+O.TEXT + + >LDYA ZPArgVBufPtr + >SYSCALL fopen + bcs .99 + jsr CORE.StkPush push hFILE + bcs .99 + + >LDYA ZPVarNamePtr + >SYSCALL strdup + bcs .99 + + txa + jsr CORE.StkPush Push hVARNAME + bcs .99 + + lda #C.FOR.FILE + jsr CORE.StkPush + bcs .99 + + lda #C.FOR + jsr CORE.StkPush + bcs .99 + + jsr CMD.NEXT.FILE.1 + bcs .99 + + >ORA.G CORE.Test + ora #C.FOR Push FOR + pha + lda (pData) + tay + pla + sta (pData),y + +* clc + +.99 rts *-------------------------------------- FOR.EXEC * lda #$ff @@ -778,7 +823,91 @@ CMD.NEXT.LIST.1 lda (pData) * clc .9 rts *-------------------------------------- -CMD.NEXT.FILE +* stack-4 CmdPtr +* stack-3 hFILE +* stack-2 hVARNAME +* stack-1 FOR SUB TOKEN +* stack FOR TOKEN +*-------------------------------------- +CMD.NEXT.FILE lda (pData),y Y = StkPtr + + bpl .1 + + jsr CMD.NEXT.FILE.1 + bcs .9 + bpl .1 + + lda (pData) + sec + sbc #4 + tay + + lda (pData),y + sta ZPInputBufPtr+1 + dey + lda (pData),y + sta ZPInputBufPtr + + clc + rts + +.1 lda (pData) + tay + sec + sbc #6 + sta (pData) + + dey + dey + lda (pData),y hVARNAME + pha + dey + lda (pData),y hFILE + >SYSCALL fclose + pla + >SYSCALL freemem + +* clc +.9 rts +*-------------------------------------- +CMD.NEXT.FILE.1 lda (pData) + dec skip FOR + dec skip SUB TOKEN + + tay + lda (pData),y + phy + >SYSCALL GetMemPtr hVARNAME + >STYA ZPVarNamePtr + ply + + + dey + lda (pData),y hFILE + pha + >PUSHWI 256 + >PUSHW ZPCLBuf + pla + pha + >SYSCALL fgets + bcs .8 + + >PUSHW ZPCLBuf + >LDYA ZPVarNamePtr + >SYSCALL SetEnv + bcs .9 + + lda #$80 +* clc + rts + +.8 >LDYA ZPVarNamePtr + >SYSCALL UnSetEnv + bcs .9 + + lda #0 +* clc +.9 rts *-------------------------------------- CMD.NEXT.EXEC clc rts diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index dd354891..024e5cd7 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -318,14 +318,18 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr cmp #'"' bne .10 sta TmpByte - bra .1 -.10 cmp #'`' +.10 cmp #'(' bne .11 sta TmpByte + bra .12 + +.11 cmp #'`' + bne .12 + sta TmpByte -.11 jsr CORE.ArgV.PutChar +.12 jsr CORE.ArgV.PutChar .1 jsr CORE.GetNextChar bcs .5