From 07fb2587871cc99c6fbb1024b095eb2c75f343b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 6 Sep 2017 17:00:10 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR (SHELL) --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/SHELL.S.CSH.txt | 6 +++- SBIN/SHELL.S.txt | 32 +++++++++----------- SYS/KERNEL.S.CORE.txt | 62 +++++++++++++++++++++++++++++++++++---- SYS/KERNEL.S.INIT.txt | 4 +-- SYS/KERNEL.S.MEM.txt | 43 ++++++++++++++++++++++----- SYS/KERNEL.S.PS.txt | 56 +++-------------------------------- 8 files changed, 116 insertions(+), 87 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 1befd328acb43bc11d755cbbb4a6c221fef7b08e..3286554959ac8dbea76ee3cdb35ba7db808bfae4 100644 GIT binary patch delta 6784 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

Jv?Fo&Y9zUQ;p#rN7VCC1zJ8q#4gHBWK@4Tb=o` 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 delta 20309 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.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