diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ca6440c1..c8281c8c 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 92ca2d97..38f4743f 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/SH.S.CL.txt b/BIN/SH.S.CL.txt index a8ebb6b4..a9cf80c3 100644 --- a/BIN/SH.S.CL.txt +++ b/BIN/SH.S.CL.txt @@ -264,8 +264,10 @@ CL.DEL pha rts *-------------------------------------- CL.PrintEOL >LDA.G CL.Ptr + .1 >CMP.G CL.Len beq .2 + pha tay lda (ZPCLBuf),y @@ -277,14 +279,17 @@ CL.PrintEOL >LDA.G CL.Ptr .2 lda #C.SPACE >SYSCALL PutChar >LDA.G CL.Ptr + .3 >CMP.G CL.Len beq .4 + pha lda #C.BS >SYSCALL PutChar pla inc bra .3 + .4 lda #C.BS >SYSCALL PutChar diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 05de964e..92cebbd6 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -3,19 +3,20 @@ NEW .LIST OFF *-------------------------------------- CMD.. lda (ZPArgVBufPtr) - beq .9 + beq CMD...9 + >LDYA ZPArgVBufPtr jsr IO.Load bcs CMD.SHIFTA.RTS >LDYA ZPArgVBufPtr - jsr CORE.Load.YAX Exec . file + +CMD..EXEC.YAX jsr CORE.Load.YAX Exec . file bcs CMD.SHIFTA.RTS lda #$C0+C.. jmp CORE.StkPush -.9 CMD...9 jmp CMD.E.CSYN *-------------------------------------- CMD.NOHUP lda (ZPArgVBufPtr) @@ -46,6 +47,7 @@ CMD.PUSHD >LDA.G PUSHD.STACK jsr GetCWD >SYSCALL StrDup bcs CMD.POPD.CSYN + >INC.G PUSHD.STACK tay txa @@ -621,7 +623,7 @@ CMD.CALL jsr CMD.CALL.GETFUNC >PUSHWI $ffff all >PUSHWZ From Start - >SYSCALL SListGetData + >SYSCALL SListGetData X = hMem bcs CMD.CALL.RTS >LDYA ZPArgVBufPtr FUNC PARAM1 PARAM2... diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 87c4781d..ad5f9063 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -16,6 +16,13 @@ CORE.FUNCRESET >LDA.G hFuncList .8 rts *-------------------------------------- +* stack-6 InputBuf +* stack-4 InputBufPtr +* stack-3 old ARGC +* stack-2 old ARGV +* stack-1 new hCode +* stack +*-------------------------------------- CORE.Load.YAX stx M32.ACC X = Code to Execute >SYSCALL ArgVDup Y,A = ArgV diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index c2ed2e20..3acf013f 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -179,7 +179,7 @@ L.PS1 .DA PS1 .DA 0 *-------------------------------------- CS.INIT clc -CS.INIT.RTS rts + rts *-------------------------------------- CS.RUN jsr CL.Init jsr CORE.Init @@ -195,6 +195,7 @@ CS.RUN jsr CL.Init jsr GetArgV >STYA ZPPtr1 + lda (ZPPtr1) cmp #'-' bne .1 @@ -217,38 +218,35 @@ CS.RUN jsr CL.Init jsr GetArgV jmp CS.RUN.CMDLINE -.1 jsr GetArgV +.1 jsr GetArgV Load SH batch file jsr IO.Load - bcs CS.INIT.RTS + bcs .9 - jsr GetArgV - - jsr CORE.Load.YAX Exec Batch file - bcs CS.INIT.RTS - lda #$C0+C.. - jsr CORE.StkPush - bra CS.RUN.LOOP + phx X = loaded file hMem + jsr GetArgV Y,A = Args + plx + jsr CMD..EXEC.YAX Execute . Batch file + bcc CS.RUN.LOOP + +.9 rts *-------------------------------------- .2 jsr CMD.CD.HOME jsr HIS.Init -.99 bcs CS.INIT.RTS + bcs .9 >PUSHW L.MSG.GREETINGS >PUSHB #K.VER >PUSHB /K.VER >PUSHBI 2 >SYSCALL PrintF - bcs .99 + bcs .9 >LDYA L.HOME.PROFILE jsr IO.Load bcs CS.RUN.LOOP No profile... >LDYA L.HOME.PROFILE - jsr CORE.Load.YAX Exec profile and continue - bcs CS.RUN.LOOP - lda #$C0+C.. - jsr CORE.StkPush + jsr CMD..EXEC.YAX Execute . ${home}profile *-------------------------------------- CS.RUN.LOOP >SLEEP @@ -347,7 +345,9 @@ CS.RUN.INTERACTIVE CS.RUN.CMDLINE >SYSCALL StrDup bcs CS.RUN.CMDLINE.8 - jsr GetArgV Y,A=ARGV, X=strdup + phx + jsr GetArgV + plx Y,A=ARGV, X=strdup jsr CORE.Load.YAX Exec CL bcs CS.RUN.CMDLINE.9 @@ -468,16 +468,13 @@ CS.QUIT jsr CORE.FUNCRESET .8 clc rts *-------------------------------------- -GetCWD phx - ldy #S.PS.hCWD +GetCWD ldy #S.PS.hCWD bra GetArgV.1 *-------------------------------------- -GetArgV phx - ldy #S.PS.hARGV +GetArgV ldy #S.PS.hARGV GetArgV.1 lda (pPS),y >SYSCALL GetMemPtr - plx rts *-------------------------------------- CheckLFAfterCR ldy #S.PS.hStdIn Check for any extra LF diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index dcde04b0..fa31493f 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -133,7 +133,6 @@ L538E lda A4L get command # jsr XRW.TestWP 0 = status bcs XRW.E.WP - lda #0 bra XRW.E.OK .1 cmp #4 3 = format @@ -145,8 +144,7 @@ L538E lda A4L get command # jsr XRW.TestWP bcs XRW.E.WP *-------------------------------------- -.2 lda A4L get command # - jsr regrwts +.2 jsr regrwts bcs XRW.E.IO inc buf+1 @@ -154,7 +152,6 @@ L538E lda A4L get command # inc XRW.ReqSector inc XRW.ReqSector - lda A4L get command # jsr regrwts get 2nd half of block dec buf+1 @@ -167,7 +164,6 @@ XRW.E.OK bit IO.D2.DrvOff,x turn off XRW.E.IO lda #MLI.E.IO .HS 2C BIT ABS XRW.E.WP lda #MLI.E.WRTPROT - .HS 2C BIT ABS XRW.E.ND lda #MLI.E.NODEV @@ -178,6 +174,8 @@ XRW.E.ND lda #MLI.E.NODEV regrwts ldy #1 sty XRW.RecalibrateCnt + lda A4L get command # + lsr set carry = 1 for read, 0 for write. bcs .1 must prenibblize for write diff --git a/SBIN/INITD.S.txt b/SBIN/INITD.S.txt index 0f9bcd5d..5e26c80a 100644 --- a/SBIN/INITD.S.txt +++ b/SBIN/INITD.S.txt @@ -142,9 +142,8 @@ CS.RUN.ETCINIT >LDYAI 256 beq .1 >PUSHW BufPtr - >PUSHBI S.PS.F.NOHUP + >PUSHBI S.PS.F.NOHUP+S.PS.F.HOLD >SYSCALL ExecL - >SLEEP bra .1 diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index 2eac59e5..c427b5a9 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -23,7 +23,7 @@ DBG .EQ 0 ZS.START pNETCFG .BS 2 pBuf .BS 2 -hNetworkFile .BS 1 +hEtcNetwork .BS 1 hLineBuf .BS 1 hFrameIn .BS 1 ZS.END .ED @@ -207,11 +207,11 @@ CS.INIT.CONF >LDYAI 64 >SYSCALL FOpen bcs .98 - sta hNetworkFile + sta hEtcNetwork .1 >PUSHWI 64 >PUSHW pBuf - lda hNetworkFile + lda hEtcNetwork >SYSCALL fgets bcs .80 @@ -223,7 +223,6 @@ CS.INIT.CONF >LDYAI 64 >PUSHW pBuf >PUSHBI S.PS.F.HOLD >SYSCALL execL - jsr CS.RUN.CheckErr >SLEEP bra .1 @@ -234,7 +233,7 @@ CS.INIT.CONF >LDYAI 64 sec rts -.80 lda hNetworkFile +.80 lda hEtcNetwork >SYSCALL FClose .81 lda hLineBuf