Kernel 0.9.1 : Code reorganization & move to CSTR (SHELL)

This commit is contained in:
Rémy GIBERT 2017-09-06 17:00:10 +02:00
parent b057d6e2f5
commit 07fb258787
8 changed files with 116 additions and 87 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*--------------------------------------

View File

@ -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