diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index e698a636..b0f62225 100644 Binary files a/.Floppies/A2OSX.BOOT.po and b/.Floppies/A2OSX.BOOT.po differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 3096e12c..35d34ae6 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 8235e970..60464098 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/SBIN/SHELL.S.TXT.txt b/SBIN/SHELL.S.TXT.txt index 7c25a034..2ae65a62 100644 --- a/SBIN/SHELL.S.TXT.txt +++ b/SBIN/SHELL.S.TXT.txt @@ -5,47 +5,39 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -TXT.OpenFileYA pha - >PUSHWI 0 Aux type - >PUSHBI 4 S.FILEINFO.TYPE.TXT - >PUSHBI SYS.FOpen.R+SYS.FOpen.T - pla - - >PUSHYA - >SYSCALL FOpen +TXT.Exec jsr TXT.GetBuffer + jsr TXT.GetChar bcs .9 - ldy #hInputFile - sta (pData),y -.9 rts -*-------------------------------------- -TXT.ReadFile >PUSHWI UsrBuf256+1 - >PUSHWI 127 - ldy #hInputFile - lda (pData),y - >PUSHA - >SYSCALL FRead - bcs .9 - - tya - beq .10 - - lda UsrBuf256,y Y,A=Bytes read - cmp #$0D +.11 cmp #' ' bne .10 - - dey -.10 tya - sta (pData) + jsr TXT.GetNextChar + bcc .11 + bcs .9 + +.10 ldy #0 + + cmp #$0D beq .2 - -.1 lda UsrBuf256,y - sta (pData),y - dey + +.1 iny + sta (pData),y + + cpy #CmdLine.MAX + beq .2 + + jsr TXT.GetNextChar + bcs .3 + cmp #$0D bne .1 -.2 ldy #bEcho +.2 jsr TXT.GetNextChar Skip CR + +.3 tya + sta (pData) + + ldy #bEcho lda (pData),y beq .8 @@ -55,15 +47,68 @@ TXT.ReadFile >PUSHWI UsrBuf256+1 .8 clc .9 rts *-------------------------------------- -TXT.CloseFile ldy #hInputFile +TXT.GetBuffer ldy #hBatchFile lda (pData),y - beq .9 + >SYSCALL GetMemPtrA + >STYA ZPBufBase - >SYSCALL FCloseA + ldy #BatchFileLen + lda (pData),y + clc + adc ZPBufBase + sta ZPBufEnd -.9 lda #0 - ldy #hInputFile + iny + lda (pData),y + adc ZPBufBase+1 + sta ZPBufEnd+1 + +TXT.SetBufPtr ldy #BatchFilePtr + lda (pData),y + clc + adc ZPBufBase + sta ZPBufPtr + + iny + lda (pData),y + adc ZPBufBase+1 + sta ZPBufPtr+1 + rts +*-------------------------------------- +TXT.PushPtr +*-------------------------------------- +TXT.GetNextChar phy + ldy #BatchFilePtr + lda (pData),y + inc sta (pData),y + bne .1 + + iny + lda (pData),y + inc + sta (pData),y + +.1 ply + + inc ZPBufPtr + bne TXT.GetChar + inc ZPBufPtr+1 + +TXT.GetChar lda ZPBufPtr + eor ZPBufEnd + bne .1 + + lda ZPBufPtr+1 + eor ZPBufEnd+1 + bne .1 + + lda #MLI.ERR.EOF + sec + rts + +.1 lda (ZPBufPtr) + clc rts *-------------------------------------- MAN diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 5e875285..03ce39e9 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -15,6 +15,9 @@ AUTO 6 ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 ZPPTR3 .EQ ZPBIN+4 +ZPBufBase .EQ ZPBIN+8 +ZPBufPtr .EQ ZPBIN+10 +ZPBufEnd .EQ ZPBIN+12 *-------------------------------------- CmdLine.MAX .EQ 127 VarLen.MAX .EQ 15 @@ -74,11 +77,27 @@ CS.INIT jsr SetPWD beq CS.INIT.INTERACTIVE no arg, continue starting interactive + >PUSHWI 0 Aux type + >PUSHBI 4 S.FILEINFO.TYPE.TXT + >PUSHBI SYS.FOpen.R + lda #1 >SYSCALL GetArgA - jsr TXT.OpenFileYA + >PUSHYA + >SYSCALL LoadFile bcs .9 + phy + ldy #BatchFileLen+1 + sta (pData),y + dey + pla + sta (pData),y + + txa + ldy #hBatchFile + sta (pData),y + ldy #bExitOnEOF lda #$FF sta (pData),y @@ -114,7 +133,7 @@ CS.RUN ldy #bPause jsr ERR.Print bcs CS.RUN.EXIT.RTS -.11 ldy #hInputFile batch mode ? +.11 ldy #hBatchFile batch mode ? lda (pData),y beq .10 @@ -200,15 +219,13 @@ CS.RUN.READ lda #0 plp rts *-------------------------------------- -CS.RUN.BATCH jsr TXT.ReadFile +CS.RUN.BATCH jsr TXT.Exec bcs .9 jsr CmdBuffer.Normalize lda (pData) beq CS.RUN.BATCH Empty line -* jsr HIS.Add - >LDYA pData jsr Cmd.ExecYA ldy #S.PS.RC @@ -216,8 +233,7 @@ CS.RUN.BATCH jsr TXT.ReadFile clc rts -.9 jsr TXT.CloseFile - ldy #bExitOnEOF +.9 ldy #bExitOnEOF lda (pData),y bne CS.RUN.EXIT @@ -228,14 +244,13 @@ CS.DOEVENT sec rts *-------------------------------------- CS.CHARIN tax - ldy #hInputFile Batch mode ? + ldy #hBatchFile Batch mode ? lda (pData),y beq .10 * Batch Mode cpx #3 test Ctrl-c bne .12 - jsr TXT.CloseFile ldy #bExitOnEOF lda (pData),y ldy #bExit @@ -367,10 +382,10 @@ CS.CHARIN.CTRL cpx #13 CR *-------------------------------------- CS.QUIT jsr HIS.Quit - ldy #hInputFile + ldy #hBatchFile lda (pData),y beq .1 - >SYSCALL FCloseA + >SYSCALL FreeMemA .1 .8 clc @@ -391,10 +406,15 @@ PrintPrompt >LDYA L.ENV.PS1 >SYSCALL ExpandPStrYA phx >PUSHYA - pla - >SYSCALL FreeMemA >LDYA L.MSG.PROMPT >SYSCALL PPrintFYA + plx + php + pha + txa + >SYSCALL FreeMemA + pla + plp .9 rts *-------------------------------------- * Remove extra SPACE & comment @@ -507,7 +527,6 @@ hNEWPATH .BS 1 hCmdLine .BS 1 Cmd.Exec.Mode .BS 1 hFullPath .BS 1 -hTextFile .BS 1 *-------------------------------------- .DUMMY .OR 0 @@ -523,7 +542,9 @@ bExitOnEOF .BS 1 hCmdHistory .BS 1 CmdHistory.IDX .BS 1 CmdHistory.END .BS 1 -hInputFile .BS 1 +hBatchFile .BS 1 +BatchFilePtr .BS 2 +BatchFileLen .BS 2 DS.END .ED *--------------------------------------