diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 1befd328..32865549 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 5b19bc1f..1b985967 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index c89c9367..91d82a8f 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -53,7 +53,7 @@ CSH.Run jsr CSH.GetBuf jsr CSH.GetPtrs lda #0 - sta (pData) Reset Cmdline + >SETG.A CmdBuflen Reset Cmdline jsr CSH.GetCharNB bcs .9 @@ -125,6 +125,10 @@ CSH.Run jsr CSH.GetBuf jsr CSH.RestorePtr Restore ptr to get full cmd line to execute + >GETG.A hCmdBuf Get the buffer + >SYSCALL GetMemPtr.A + + jsr CSH.GetCharNB ldy #0 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 2164f168..58172758 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -120,21 +120,14 @@ CS.INIT jsr SetPWD >PUSHYA >SYSCALL LoadFile bcs .9 - - phy - ldy #CSH.BufLen+1 - sta (pData),y - dey - pla - sta (pData),y + >DEBUG + >SETG.YA CSH.BufLen+1 txa - ldy #CSH.hBuf - sta (pData),y + >SETG.A CSH.hBuf - ldy #bExitOnEOF lda #$FF - sta (pData),y + >SETG.A bExitOnEOF jmp CSH.Init @@ -143,8 +136,7 @@ CS.INIT jsr SetPWD >LDYA L.MSG.GREETINGS >SYSCALL PrintF.YA - -* clc + .9 rts *-------------------------------------- CS.RUN >GETG.A bReadMode READ Command ? @@ -201,7 +193,7 @@ CS.RUN >GETG.A bReadMode READ Command ? jsr HIS.Add - >LDYA pData + >LDYA ZPBufBase jsr Cmd.ExecYA ldy #S.PS.RC @@ -255,7 +247,9 @@ CS.RUN.READ >GETG.A hCmdBuf Get the buffer plp rts *-------------------------------------- -CS.RUN.BATCH jsr CSH.Run +CS.RUN.BATCH >DEBUG + + jsr CSH.Run bcs .9 lda (pData) @@ -610,15 +604,17 @@ hCmdBuf .BS 1 CmdBuflen .BS 1 bCmdBufexec .BS 1 -bReadMode .BS 1 - bEscMode .BS 1 bPause .BS 1 bExit .BS 1 bEcho .BS 1 -bSecureRead .BS 1 bExitOnEOF .BS 1 + +bReadMode .BS 1 +bSecureRead .BS 1 + Sleep .BS 4 + VarBuffer .BS 16 HIS.hBuf .BS 1 diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 41449888..84d2273e 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -17,7 +17,7 @@ CORE.Run jsr CORE.TskMgrRun jsr CORE.DispatchEvents bcc .4 CC=All Events Dispatched - jsr PS.Select0 + jsr CORE.PSSelect0 lda #EvtMgr.Table sta pEvent @@ -115,8 +115,11 @@ CORE.TskMgrRun >LDYAI TskMgr.Table+S.PS skip PS 0 beq .8 lda (pPs) get S.PS.F - bit #S.PS.F.INUSE In use ? - beq .7 + +* bit #S.PS.F.INUSE In use ? +* beq .7 + + bpl .7 bit #S.PS.F.HOLD Waiting for Another Task to Terminate? beq .2 @@ -130,7 +133,7 @@ CORE.TskMgrRun >LDYAI TskMgr.Table+S.PS skip PS 0 and #$FF^S.PS.F.HOLD unmark as HOLD sta (pPs) -.2 jsr PS.Select +.2 jsr CORE.PSSelect lda (pPS) bit #S.PS.F.INIT @@ -189,6 +192,55 @@ CORE.TskMgrRun >LDYAI TskMgr.Table+S.PS skip PS 0 bcs .1 Always .8 clc + rts +*-------------------------------------- +CORE.PSSelect0 >LDYAI TskMgr.Table Select PS0 + >STYA pPs + + lda K.STACK+$ff + >STYA pStack + rts +*-------------------------------------- +CORE.PSSelect ldy #S.PS.hCS + lda (pPs),y + + jsr K.GetMemPtr.A + >STYA pCode + + iny +* ldy #S.PS.hDS + lda (pPs),y + beq .1 + + jsr K.GetMemPtr.A + >STYA pData + +.1 iny +* ldy #S.PS.hSS + lda (pPs),y + jsr K.GetMemPtr.A + >STYA pStack + + iny +* ldy #S.PS.SP + lda pStack + clc + adc (pPs),y + sta pStack + bcc .8 + inc pStack+1 + +.8 clc + rts +*-------------------------------------- +CORE.PSLeave ldy #S.PS.hSS + lda (pPs),y + jsr K.GetMemPtr.A + + + + + rts *-------------------------------------- * CORE.GetEvents : @@ -298,7 +350,7 @@ CORE.DispatchEvents bit #S.PS.F.EVENT Accept Events ? beq .4 - jsr PS.Select + jsr CORE.PSSelect lda #EvtMgr.Table sta pEvent Select first event in list diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index e99c9a60..9df7e441 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -139,6 +139,7 @@ Kernel.Init3 sta SETALTZP phx Save Expanded CMDLINE for discard >SYSCALL CreateProcessYA + bcs .9 pla >SYSCALL FreeMem.A ...discard... @@ -146,9 +147,6 @@ Kernel.Init3 sta SETALTZP >LDYAI MSG.Init3.OK >SYSCALL PrintF.YA - >LDYAI TskMgr.Table - >STYA pPs - >DEBUGOA jmp CORE.Run diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index ad690859..c7f4d742 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -453,22 +453,49 @@ K.GetMemByID.A sta ZPMemMgrSPtr * A = SYS error code *\-------------------------------------- K.NewStr.YA >STYA .1+1 - >STYA . - -.1 lda $ffff, - - - + >STYA .4+1 + ldy #0 stz MemMgr.ReqFlags - jsr K.GemMem.YA + stz MemMgr.ReqSize+1 + +.1 lda $ffff,y + beq .2 + iny + bne .1 + inc MemMgr.ReqSize+1 + inc .1+2 + bne .1 + +.2 iny + bne .3 + inc MemMgr.ReqSize+1 + +.3 sty MemMgr.ReqSize + + jsr K.GetMem.I bcs .9 + >STYA .5+1 + phy + pha + ldy #0 +.4 lda $ffff,y +.5 sta $ffff,y + beq .8 + iny + bne .4 + inc .4+2 + inc .5+2 + bne .4 - +.8 pla + ply + clc +.9 rts *-------------------------------------- K.LoadStkObj.YA *-------------------------------------- diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 871cce82..4dedf173 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -341,14 +341,15 @@ PS.Init jsr BIN.Load.YA Y,A=filename full path .2 ldy #H.BIN.EXE.SS.SIZE lda (ZPPtr4),y Load SS.SIZE.LO - pha + pha Save it.... - dec + dec set SP to top ldy #S.PS.SP sta (ZPPtr3),y - phy SS.SIZE.LO.... + lda #0 set SS.SIZE.HI + ply get back SS.SIZE.LO.... bne .3 SS.SIZE=0, set as default $100 inc SS.SIZE.HI @@ -400,55 +401,6 @@ PS.Free.A.PsY lda (ZPPtr1),y beq PS.Free.A.RTS jmp K.FreeMem.A *-------------------------------------- -PS.Select0 >LDYAI TskMgr.Table Select PS0 - >STYA pPs - - lda K.STACK+$ff - >STYA pStack - rts -*-------------------------------------- -PS.Select ldy #S.PS.hCS - lda (pPs),y - - jsr K.GetMemPtr.A - >STYA pCode - - iny -* ldy #S.PS.hDS - lda (pPs),y - beq .1 - - jsr K.GetMemPtr.A - >STYA pData - -.1 iny -* ldy #S.PS.hSS - lda (pPs),y - jsr K.GetMemPtr.A - >STYA pStack - - iny -* ldy #S.PS.SP - lda pStack - clc - adc (pPs),y - sta pStack - bcc .8 - inc pStack+1 - -.8 clc - rts -*-------------------------------------- -PS.Leave ldy #S.PS.hSS - lda (pPs),y - jsr K.GetMemPtr.A - - - - - - rts -*-------------------------------------- * PS.DupEnv.A * In: * A = ENV hMem To Duplicate