diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d2f89cea..38127d11 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 16ca2e5d..2e9f0949 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -7,6 +7,7 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i + .INB inc/kernel.i .INB inc/mli.i .INB inc/mli.e.i *-------------------------------------- @@ -108,6 +109,25 @@ CS.RUN >STYA ZPBufPtr stx hBuf + ldy #S.PS.hStdOut + lda (pPS),y + + tax + + lsr + bcc CS.RUN.LOOP + + lda Nod.Table.hFD-2,x + >SYSCALL GetMemPtr + >STYA ZPPtr1 + + lda (ZPPtr1) + + beq CS.RUN.LOOP + + cmp #S.FD.T.PIPE + beq CS.RUN.LOOP + >PUSHW L.MSG.INIT >PUSHBI 0 >SYSCALL PrintF diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 0158a821..e263b098 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -56,23 +56,32 @@ CS.INIT clc CS.RUN lda #1 >SYSCALL ArgV bcs .10 + >SYSCALL AToI bcs .90 + tax bne .90 + tya + * ldx #0 + .11 cmp PS.Table.PID,x beq .12 + inx cpx #K.PS.MAX bne .11 + lda #E.NSP * sec rts -.12 jsr CS.RUN.DUMP +.12 lda PS.Table.hPS,x + jsr CS.RUN.DUMP bcs .9 + lda #0 sec rts @@ -158,22 +167,27 @@ CS.RUN.DecodeFlags lda (ZPPSPtr) Get flags ldy #PS.FLAGS+7 ldx #7 + .2 lsr pha lda #'-' bcc .3 + lda MSG.FLAGS,x + .3 sta (pData),y pla dey dex bpl .2 + rts *-------------------------------------- CS.RUN.PrintArgs ldy #S.PS.hARGV lda (ZPPSPtr),y beq .8 NO ARGV in PS0 + >SYSCALL GetMemPtr >STYA ZPArgV @@ -185,13 +199,17 @@ CS.RUN.PrintArgs >PUSHBI 2 >SYSCALL PrintF bcs .9 + .2 inc ZPArgV bne .3 + inc ZPArgV+1 .3 lda (ZPArgV) bne .2 + inc ZPArgV bne .1 + inc ZPArgV+1 bra .1 diff --git a/BIN/SH.S.CL.txt b/BIN/SH.S.CL.txt index 7543f903..95177d09 100644 --- a/BIN/SH.S.CL.txt +++ b/BIN/SH.S.CL.txt @@ -5,9 +5,11 @@ NEW CL.Init >LDYAI 256 >SYSCALL GetMem bcs .9 + >STYA ZPCLBuf txa >STA.G CL.hCLBuf + .9 rts *-------------------------------------- CL.PrintPrompt >PUSHW L.PS1 @@ -66,7 +68,7 @@ CL.CHARIN tax .8 rts invalid \e[ sequence -.2 >LDA.G READ.N +.2 >LDA.G CL.MaxCnt bne .3 lda EscChars.Remap,x @@ -85,7 +87,7 @@ CL.CHARIN tax clc rts -.5 >LDA.G READ.N +.5 >LDA.G CL.MaxCnt beq CL.READN0X cpx #C.SPACE @@ -98,10 +100,11 @@ CL.CHARIN tax *-------------------------------------- >LDA.G CL.Len beq .8 + >LDA.G CL.Ptr beq .8 - >LDA.G bREAD.S + >LDA.G CL.bSilent bmi .6 lda #C.BS @@ -111,7 +114,7 @@ CL.CHARIN tax jmp CL.DEL *-------------------------------------- CL.Insert >LDA.G CL.Len - >CMP.G READ.N + >CMP.G CL.MaxCnt beq .8 Buffer full, discard... inc @@ -138,14 +141,14 @@ CL.Insert >LDA.G CL.Len sta (ZPCLBuf),y >INC.G CL.Ptr - >LDA.G bREAD.S + >LDA.G CL.bSilent bmi .7 txa >SYSCALL PutChar jsr CL.PrintEOL -.7 >LDA.G READ.N READ N = 1, don't wait for CR +.7 >LDA.G CL.MaxCnt READ N = 1, don't wait for CR dec bne .8 @@ -159,7 +162,7 @@ CL.CHARIN.CTRL cpx #C.CR beq .18 cpx #C.EOF - beq .18 + beq .19 cpx #3 Ctrl-C beq CL.CLR @@ -176,7 +179,7 @@ CL.CHARIN.CTRL cpx #C.CR .18 jsr CheckLFAfterCR Check for any extra LF bcs .9 - lda #$ff +.19 lda #$ff >STA.G CL.bReady .8 clc @@ -185,7 +188,7 @@ CL.CHARIN.CTRL cpx #C.CR CL.CLR lda (ZPCLBuf) beq CL.Reset.1 - >LDA.G bREAD.S + >LDA.G CL.bSilent bmi CL.Reset.1 .1 >LDA.G CL.Ptr @@ -221,13 +224,22 @@ CL.Reset.1 lda #0 rts *-------------------------------------- +CL.ReadResetV sec Verbose mode + +CL.ReadReset lda #$ff + >STA.G CL.MaxCnt + adc #0 CC = silent + iny CL.bSilent + sta (pData),y + rts +*-------------------------------------- CL.BS >LDA.G CL.Ptr beq .9 dec sta (pData),y - >LDA.G bREAD.S + >LDA.G CL.bSilent bmi .9 lda #C.BS @@ -237,12 +249,16 @@ CL.BS >LDA.G CL.Ptr CL.NAK >LDA.G CL.Ptr >CMP.G CL.Len beq .9 + inc >STA.G CL.Ptr - >LDA.G bREAD.S + + >LDA.G CL.bSilent bmi .9 + lda #C.FS >SYSCALL PutChar + .9 rts *-------------------------------------- * Erase char UNDER cursor @@ -265,12 +281,13 @@ CL.DEL pha >CMP.G CL.Len bne .1 + pla + >DEC.G CL.Len - >LDA.G bREAD.S - bpl CL.PrintEOL - clc - rts + + >LDA.G CL.bSilent + bmi CL.PrintEOL.8 *-------------------------------------- CL.PrintEOL >LDA.G CL.Ptr diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index ca85f62c..975b6169 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -1,6 +1,6 @@ NEW AUTO 3,1 - .LIST OFF + .LIST OFF *-------------------------------------- CMD.. lda (ZPArgVBufPtr) beq CMD...9 @@ -33,7 +33,7 @@ CMD.SHIFT lda (ZPArgVBufPtr) jsr EXP.GetInt8Exp bcs CMD.SHIFTA.RTS .HS B0 BCS - + CMD.SHIFT.1 inc CMD.SHIFTA >SYSCALL Shift @@ -101,10 +101,10 @@ CMD.CD.YA >PUSHYA .12 >LDYA ZPPtr1 jsr IO.StatYA bcs .19 - + cmp /S.STAT.MODE.DIR beq .11 - + lda #MLI.E.INVPATH .19 pha lda ZPTmpW @@ -118,7 +118,7 @@ CMD.CD.YA >PUSHYA lda #'/' cmp (ZPPtr1),y beq .14 - + iny sta (ZPPtr1),y iny @@ -166,19 +166,20 @@ CMD.SET lda (ZPArgVBufPtr) *-------------------------------------- * SET +X VAR = VALUE1 op VALUE2 op VALUE3 ... *-------------------------------------- -CMD.SET.1 +CMD.SET.1 .1 jsr CMD.IsSwitch bcs .6 ldx #SET.VARS-SET.FLAGS - + .2 dex bmi .4 + cmp SET.FLAGS,x bne .2 ldy SET.VARS,x - + lda (pData),y eor #$ff sta (pData),y @@ -201,7 +202,7 @@ CMD.SET.1 jsr CORE.ArgV.Next beq CMD.SET.GET - + cmp #'=' bne .99 @@ -211,7 +212,7 @@ CMD.SET.1 jsr CORE.ArgV.Next beq CMD.SET.UNSET - + cmp #'`' beq CMD.SET.EXEC @@ -228,7 +229,7 @@ CMD.SET.YA pha >PUSHYA >SYSCALL SetEnv rts - + CMD.SET.UNSET >PUSHW ZPVarNamePtr >SYSCALL UnsetEnv rts @@ -237,12 +238,12 @@ CMD.SET.GET >PUSHW ZPVarNamePtr >PUSHW ZPCLBuf >SYSCALL GetEnv bcs .8 - + >LDYA ZPCLBuf >SYSCALL PutS rts - + .8 clc rts *-------------------------------------- @@ -256,9 +257,9 @@ CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`" jsr IO.Pipe.In bcs .9 - lda #255 - >STA.G READ.N - >STA.G bREAD.S + +* clc Silent Mode + jsr CL.ReadReset jmp CMD.READ.VAR .9 rts @@ -267,18 +268,19 @@ CMD.DATE >PUSHEA.G TimeBuf >SYSCALL Time >PUSHEA.G TimeBuf - + >PUSHW ZPCLBuf - + lda (ZPArgVBufPtr) beq .1 - + >LDYA ZPArgVBufPtr bra .2 + .1 >LDYA L.FMT.DATE .2 >PUSHYA - + >PUSHEA.G TimeBuf >SYSCALL StrFTime @@ -294,15 +296,18 @@ CMD.ECHO stz ZPPtr1 echo -N .1 jsr CMD.IsSwitch bcs .2 + cmp #'N' bne CMD.ECHO.CSYN lda #$ff eor ZPPtr1 sta ZPPtr1 - bra .4 + bra .4 + .2 lda ZPPtr1+1 beq .3 + lda #C.SPACE >SYSCALL PutChar @@ -334,9 +339,8 @@ CMD.READ lda (ZPArgVBufPtr) beq CMD.ECHO.CSYN stz ZPVarNamePtr+1 - >STZ.G bREAD.S - dec - >STA.G READ.N + + jsr CL.ReadResetV .1 jsr CMD.IsSwitch bcs .4 @@ -345,7 +349,7 @@ CMD.READ lda (ZPArgVBufPtr) bne .2 lda #$ff - >STA.G bREAD.S + >STA.G CL.bSilent bra .5 .2 cmp #'P' @@ -367,7 +371,7 @@ CMD.READ lda (ZPArgVBufPtr) jsr EXP.GetInt8Arg bcs CMD.ECHO.RTS - >STA.G READ.N + >STA.G CL.MaxCnt bra .5 .4 >LDYA ZPArgVBufPtr @@ -378,7 +382,7 @@ CMD.READ lda (ZPArgVBufPtr) lda ZPVarNamePtr+1 beq CMD.ECHO.CSYN - +*-------------------------------------- CMD.READ.VAR jsr CL.Reset .1 >SYSCALL GetChar @@ -391,9 +395,9 @@ CMD.READ.VAR jsr CL.Reset lda (ZPCLBuf) bne .2 - + jmp CMD.SET.UNSET - + .2 >LDYA ZPCLBuf jmp CMD.SET.YA *-------------------------------------- @@ -427,10 +431,10 @@ CMD.PWD jsr GetCWD *-------------------------------------- CMD.RD lda (ZPArgVBufPtr) beq CMD.REN.CSYN - + jsr IO.StatArgVBufPtr bcs .99 - + cmp /S.STAT.MODE.DIR bne CMD.REN.CSYN @@ -451,52 +455,52 @@ CMD.REN lda (ZPArgVBufPtr) >PUSHWI 0 Allocate >SYSCALL RealPath bcs CMD.REN.CSYN - + >STYA ZPPtr1 stx ZPTmpW - + ldy #$ff - + .1 iny lda (ZPPtr1),y beq .2 cmp #'/' bne .1 - + tya tax bra .1 - + .2 ldy #$ff .3 iny inx lda (ZPArgVBufPtr),y bne .3 - + txa tay lda #0 - + >SYSCALL GetMem bcs .90 >STYA ZPPtr2 stx ZPTmpW+1 - + ldy #$ff - + .4 iny - lda (ZPPtr1),y + lda (ZPPtr1),y beq .5 sta (ZPPtr2),y cmp #'/' bne .4 - + tya inc tax bra .4 - + .5 txa tay lda #0 @@ -505,12 +509,12 @@ CMD.REN lda (ZPArgVBufPtr) >PUSHW ZPPtr2 >PUSHW ZPArgVBufPtr >SYSCALL StrCat - + lda ZPTmpW >SYSCALL FreeMem lda ZPTmpW+1 sta ZPTmpW - + >PUSHW ZPPtr1 >PUSHW ZPPtr2 >SYSCALL Rename @@ -530,15 +534,15 @@ CMD.FUNCTION lda (ZPArgVBufPtr) >LDA.G hFuncList bne .1 - + >SYSCALL SListNew bcs .99 - + >STA.G hFuncList - + .1 >PUSHA >PUSHW ZPArgVBufPtr - + >SYSCALL SListNewKey bcs .99 @@ -552,9 +556,10 @@ CMD.FUNCTION lda (ZPArgVBufPtr) ldy #1 lda (ZPArgVBufPtr),y beq .11 + .9 jmp CMD.E.CSYN -.99 rts +.99 rts *-------------------------------------- .10 jsr CORE.GetCharNB bcs .9 @@ -565,48 +570,46 @@ CMD.FUNCTION lda (ZPArgVBufPtr) jsr CORE.GetNextCharNB bcs .9 -.11 stz M32.ACC '{' counter - - >LDYA ZPInputBufPtr +.11 >LDYA ZPInputBufPtr >STYA ZPPtr1 - ldy #0 - ldx #0 + stz ZPPtr2 + stz ZPPtr2+1 DataLen + + ldx #0 '{' counter + lda (ZPInputBufPtr) beq .6 .12 cmp #'{' bne .13 - inc M32.ACC + inx bra .14 .13 cmp #'}' bne .14 - dec M32.ACC + dex bmi .7 -.14 iny +.14 inc ZPPtr2 bne .15 - inx + + inc ZPPtr2+1 .15 jsr CORE.GetNextChar bne .12 -.6 lda M32.ACC +.6 txa bpl .9 .7 jsr CORE.GetNextChar skip ending '}' - phx - phy >PUSHB.G hFuncList >PUSHW ZPTmpW KeyID >PUSHW ZPPtr1 DataPtr - ply - pla - >PUSHYA DataLen + >PUSHW ZPPtr2 DataLen >SYSCALL SListAddData bcs .99 @@ -627,7 +630,7 @@ CMD.CALL jsr CMD.CALL.GETFUNC >PUSHWZ Allocate.. >PUSHWI $ffff all >PUSHWZ From Start - + >SYSCALL SListGetData X = hMem bcs CMD.CALL.RTS @@ -638,7 +641,7 @@ CMD.CALL jsr CMD.CALL.GETFUNC lda #$C0+C.CALL jmp CORE.StkPush *-------------------------------------- -CMD.CALL.GETFUNC +CMD.CALL.GETFUNC >LDA.G hFuncList beq CMD.CALL.UNDEF @@ -646,7 +649,7 @@ CMD.CALL.GETFUNC >PUSHW ZPArgVBufPtr >SYSCALL SListLookup bcc CMD.CALL.RTS - + CMD.CALL.UNDEF lda #E.FUNDEF sec CMD.CALL.RTS rts @@ -656,7 +659,7 @@ CMD.EXIT lda (ZPArgVBufPtr) jsr EXP.GetInt8Exp bcs .9 - + .1 ldy #S.PS.RC sta (pPS),y @@ -671,7 +674,7 @@ CMD.EXIT lda (ZPArgVBufPtr) cmp #$C0+C.CLEXEC beq .8 - + jsr CORE.StkPopCtxA bcc .2 rts @@ -705,7 +708,7 @@ CMD.EXIT.FILE jsr CORE.StkPullFree Code buffer ldy #S.PS.RC lda (pPS),y - + clc rts *-------------------------------------- @@ -753,7 +756,7 @@ CMD.SWITCH jsr CORE.StkGetCtx CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult bcs .9 - tax + tax and #$3F cmp #C.SWITCH beq .1 @@ -857,12 +860,12 @@ CMD.FOR.LIST >LDYA ZPArgVBufPtr phy pha - + jsr CORE.StkPushInputBufPtr Push CmdPtr AFTER FOR pla ply - + jsr CORE.StkPushYAX Push listPtr,hList jsr CORE.PushVarName Push hVARNAME @@ -882,7 +885,7 @@ CMD.FOR.FILE jsr CORE.ArgV.NextChar skip "(" ldx #O.RDONLY+O.TEXT jsr IO.FOpenYAX bcc CMD.FOR.PUSH -FOR.FILE.9 rts +FOR.FILE.9 rts *-------------------------------------- CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`" @@ -895,7 +898,7 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`" jsr IO.Pop.Out Restore OUT (NO close) jsr IO.Pipe.OpenR - + bcs FOR.FILE.9 CMD.FOR.PUSH pha save hFILE/hPIPE @@ -915,7 +918,7 @@ CMD.FOR.PUSH pha save hFILE/hPIPE jsr CMD.NEXT.LINE bcs FOR.FILE.9 - + CMD.FOR.LOOP ora CORE.TestResult ora #C.FOR Push FOR pha @@ -1036,7 +1039,7 @@ CMD.NEXT.LIST.TOKEN * stack-4 CmdPtr * stack-3 hFILE/hPIPE * stack-2 hVARNAME -* stack-1 FOR SUB TOKEN +* stack-1 FOR SUB TOKEN * stack FOR TOKEN *-------------------------------------- CMD.NEXT.FILEEXEC @@ -1090,7 +1093,7 @@ CMD.NEXT.LINE jsr CMD.NEXT.GetVarNamePtr >PUSHWI 256 >SYSCALL FGetS bcs CMD.NEXT.END - + >LDYA ZPCLBuf jsr CMD.SET.YA bcs CMD.NEXT.LINE.RTS @@ -1098,7 +1101,7 @@ CMD.NEXT.LINE jsr CMD.NEXT.GetVarNamePtr lda #$80 * clc rts - + CMD.NEXT.END jsr CMD.SET.UNSET bcs .9 lda #0 @@ -1120,7 +1123,7 @@ CMD.NEXT.GetVarNamePtr ply rts *-------------------------------------- -CMD.WHILE +CMD.WHILE CMD.IF jsr CORE.StkGetCtx bit #$40 Parent is true ? @@ -1153,7 +1156,7 @@ CMD.LOOP jsr CORE.StkPull bne .9 txa bmi .8 true, loop - + jmp CORE.StkPopCtxA false, Discard loop Ptr .8 jmp CORE.StkPullInputBufPtr @@ -1213,7 +1216,7 @@ CMD.IsSwitch lda (ZPArgVBufPtr) txa jmp ToUpperCase - + .9 sec rts *-------------------------------------- diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 8013050d..7a9c4820 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -117,6 +117,7 @@ CORE.Run jsr IO.Reset >LDYAI 256 >SYSCALL GetMem bcs CORE.Run.RTS + >STYA ZPArgVBuf txa >STA.G CORE.hArgVBuf @@ -148,6 +149,7 @@ CORE.Run.1 sec coming from PIPE OUT cmp #C.CR empty line ? bne .33 + jsr CORE.GetNextChar skip CR... bra .8 @@ -184,13 +186,16 @@ CORE.Run.1 sec coming from PIPE OUT .45 txa bpl .43 context is FALSE, skip line + asl bmi CORE.Run.7 parent context is true, exec + .43 jsr CORE.GetCharNB bcs .44 EOF cmp #C.CR beq .44 + cmp #';' TODO ";" beq .44 @@ -426,11 +431,11 @@ CORE.ArgV.Add lda #C.SPACE ldx #')' stx ZPTmpW - bra .12 .11 cmp #'`' bne .12 + sta ZPTmpW .12 sta (ZPArgVBufPtr),y @@ -566,25 +571,32 @@ CORE.IO.Open pha Open Mode CORE.IsSpaceOrEndCmd cmp #C.SPACE beq CORE.IsEndCmd.8 + CORE.IsEndCmd cmp #';' beq CORE.IsEndCmd.8 + cmp #C.CR beq CORE.IsEndCmd.8 + cmp #'|' beq CORE.IsEndCmd.8 + sec rts + CORE.IsEndCmd.8 clc rts *-------------------------------------- CORE.GetCharNB jsr CORE.GetChar bcs CORE.GetNextCharNB.RTS + jsr CORE.CheckCharNB bcc CORE.GetNextCharNB.RTS *-------------------------------------- CORE.GetNextCharNB jsr CORE.GetNextChar bcs CORE.GetNextCharNB.RTS + jsr CORE.CheckCharNB bcs CORE.GetNextCharNB CORE.GetNextCharNB.RTS @@ -593,22 +605,28 @@ CORE.GetNextCharNB.RTS CORE.CheckCharNB cmp #C.SPACE beq .9 + cmp #C.LF beq .9 + cmp #C.TAB beq .9 + clc .9 rts *-------------------------------------- CORE.GetNextChar inc ZPInputBufPtr bne CORE.GetChar + inc ZPInputBufPtr+1 *-------------------------------------- CORE.GetChar lda (ZPInputBufPtr) beq .9 + clc rts + .9 sec rts *-------------------------------------- @@ -686,6 +704,7 @@ CORE.StkCheck sec adc (pData) StackPtr cmp #CORE.STACK.MAX bcc .8 + lda #E.STKOVERFLOW * sec .8 rts @@ -740,11 +759,14 @@ CORE.StkGetCtx jsr CORE.StkGet cmp #$C0+C.CALL beq .1 CS + cmp #$C0+C.CLEXEC beq .1 CS + and #$80 get current.. lsr becomes parent bra .8 + .1 lda #$40 ...set Parent = true .8 sta CORE.TestResult @@ -755,9 +777,11 @@ CORE.StkGetCtx jsr CORE.StkGet CORE.StkPullInputBufPtr jsr CORE.StkPull bcs .9 + sta ZPInputBufPtr jsr CORE.StkPull bcs .9 + sta ZPInputBufPtr+1 .9 rts @@ -774,11 +798,13 @@ CORE.StkPullFree *-------------------------------------- CORE.StkPull jsr CORE.StkGet bcs .9 + dey pha tya sta (pData) StackPtr pla + .9 rts *-------------------------------------- CORE.StkGet lda (pData) StackPtr diff --git a/BIN/SH.S.EXP.txt b/BIN/SH.S.EXP.txt index dbbe2f5a..3164886e 100644 --- a/BIN/SH.S.EXP.txt +++ b/BIN/SH.S.EXP.txt @@ -1,6 +1,6 @@ NEW AUTO 3,1 - .LIST OFF + .LIST OFF *-------------------------------------- EXP.GET jsr CORE.ArgV.Next bne .1 @@ -14,7 +14,7 @@ EXP.GET jsr CORE.ArgV.Next >LDYA ZPArgVBufPrev jsr EXP.GetInt32YA To Int32 on stack bcs .94 4 bytes on stack - + .2 >LDYA L.EXP.OP.MATH + - .... ? jsr CORE.LookupArgVBuf bcs .98 @@ -55,7 +55,7 @@ EXP.TEST lda (ZPArgVBufPtr) jsr CORE.LookupArgVBuf bcs .9 - + dex 0=[ or 1=![ , $ff or 0 txa asl in C @@ -74,7 +74,7 @@ EXP.TEST lda (ZPArgVBufPtr) bcs .1 stx CORE.Operator - + jsr EXP.TEST.UNARY bcs .9 eor CORE.TestResult @@ -132,7 +132,7 @@ EXP.TEST lda (ZPArgVBufPtr) jsr CORE.ArgV.Next beq .9 - jmp .10 + jmp .10 .80 lda CORE.LogicOp bne .88 NONE, or OR : exit with last result @@ -146,7 +146,7 @@ EXP.TEST lda (ZPArgVBufPtr) *-------------------------------------- EXP.TEST.UNARY jsr CORE.ArgV.Next beq EXP.OP.UNARY.ESYN we need one arg or ] - + lda CORE.Operator asl tax @@ -161,7 +161,7 @@ EXP.OP.UNARY.D jsr IO.StatArgVBufPtr cmp /S.STAT.MODE.DIR bne EXP.OP.UNARY.DEF.9 bra EXP.OP.UNARY.DEF.8 - + EXP.OP.UNARY.E jsr IO.StatArgVBufPtr bcs EXP.OP.UNARY.DEF.9 bra EXP.OP.UNARY.DEF.8 DIR or FILE exist @@ -171,18 +171,18 @@ EXP.OP.UNARY.F jsr IO.StatArgVBufPtr cmp /S.STAT.MODE.DIR beq EXP.OP.UNARY.DEF.9 - -EXP.OP.UNARY.DEF.8 + +EXP.OP.UNARY.DEF.8 sec true .HS 90 BCC -EXP.OP.UNARY.DEF.9 +EXP.OP.UNARY.DEF.9 clc false jsr CORE.ArgV.Next lda #0 ror - + * clc EXP.OP.UNARY.DEF.RTS rts @@ -191,7 +191,7 @@ EXP.OP.UNARY.I jsr EXP.GetInt32Arg bcs EXP.OP.UNARY.DEF.9 jsr IncPStack4 Discard Long - + bra EXP.OP.UNARY.DEF.8 *-------------------------------------- EXP.OP.UNARY.N jsr EXP.OP.UNARY.Z @@ -199,7 +199,7 @@ EXP.OP.UNARY.N jsr EXP.OP.UNARY.Z eor #$80 * clc rts - + EXP.OP.UNARY.Z lda (ZPArgVBufPtr) [ -Z ] ? cmp #']' bne .1 @@ -232,20 +232,22 @@ EXP.TEST.BINARY lda CORE.Operator >PUSHW ZPPtr1 >PUSHW ZPArgVBufPtr >SYSCALL StrCmp - bcs .1 CS if != + + bcs .1 CS if != lda #%010 010 str1 = str2 bra .3 .1 asl CS if < - bcs .2 + bcc .2 - lda #%100 010 str1 < str2 + lda #%100 100 str1 < str2 bra .3 -.2 lda #%001 010 str1 > str2 +.2 lda #%001 001 str1 > str2 .3 ldx CORE.Operator + and EXP.OP.BINARY.BITS-6,x beq .8 false @@ -263,7 +265,7 @@ EXP.TEST.BINARY.NUM >LDYA ZPArgVBufPrev jsr EXP.GetInt32YA bcs EXP.TEST.BINARY.ESYN - + jsr CORE.ArgV.Next beq EXP.TEST.BINARY.ESYN4 @@ -288,7 +290,7 @@ EXP.TEST.BINARY.NUM EXP.GetInt8Exp jsr EXP.GET bcc EXP.GetInt8YA rts - + EXP.GetInt8Arg >LDYA ZPArgVBufPtr EXP.GetInt8YA jsr EXP.GetInt32YA @@ -298,7 +300,7 @@ EXP.GetInt8YA jsr EXP.GetInt32YA jsr IncPStack3 * clc - + .9 rts *-------------------------------------- EXP.GetInt32Arg >LDYA ZPArgVBufPtr @@ -308,14 +310,14 @@ EXP.GetInt32YA >PUSHYA >PUSHBI 10 >SYSCALL StrToL bcs EXP.E.ESYN - + lda (ZPPtr1) beq EXP.GetInt32YA.RTS EXP.E.ESYN lda #E.ESYN sec EXP.GetInt32YA.RTS - rts + rts *-------------------------------------- MAN SAVE usr/src/bin/sh.s.exp diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index ee2ffba0..be7b993f 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -187,6 +187,7 @@ IO.PrintBatchErrMsg .1 inc ZPTmpW bne .2 + inc ZPTmpW+1 .2 ldy #$ff diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 1d4ec4c5..5703eb23 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -325,13 +325,11 @@ CS.RUN.INTERACTIVE jsr IO.Reset jsr CL.Reset + jsr CL.ReadResetV + jsr CL.PrintPrompt bcs CS.RUN.CMDLINE.9 - >STZ.G bREAD.S - dec - >STA.G READ.N - .1 >SYSCALL GetChar bcs CS.RUN.CMDLINE.9 I/O error @@ -697,16 +695,16 @@ bSET.C .BS 1 bSET.E .BS 1 bSET.X .BS 1 -bREAD.S .BS 1 -READ.N .BS 1 - Sleep .BS 4 CL.hCLBuf .BS 1 + CL.Ptr .BS 1 CL.Len .BS 1 CL.bReady .BS 1 CL.bEscMode .BS 1 +CL.MaxCnt .BS 1 +CL.bSilent .BS 1 CORE.hArgVBuf .BS 1 CORE.bPipeIn .BS 1