mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-03 05:55:42 +00:00
Kernel 0.9.1 : Code reorganization & move to CSTR (SHELL)
This commit is contained in:
parent
b057d6e2f5
commit
07fb258787
Binary file not shown.
Binary file not shown.
@ -53,7 +53,7 @@ CSH.Run jsr CSH.GetBuf
|
|||||||
jsr CSH.GetPtrs
|
jsr CSH.GetPtrs
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData) Reset Cmdline
|
>SETG.A CmdBuflen Reset Cmdline
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -125,6 +125,10 @@ CSH.Run jsr CSH.GetBuf
|
|||||||
|
|
||||||
jsr CSH.RestorePtr Restore ptr to get full cmd line to execute
|
jsr CSH.RestorePtr Restore ptr to get full cmd line to execute
|
||||||
|
|
||||||
|
>GETG.A hCmdBuf Get the buffer
|
||||||
|
>SYSCALL GetMemPtr.A
|
||||||
|
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
@ -120,21 +120,14 @@ CS.INIT jsr SetPWD
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL LoadFile
|
>SYSCALL LoadFile
|
||||||
bcs .9
|
bcs .9
|
||||||
|
>DEBUG
|
||||||
phy
|
>SETG.YA CSH.BufLen+1
|
||||||
ldy #CSH.BufLen+1
|
|
||||||
sta (pData),y
|
|
||||||
dey
|
|
||||||
pla
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #CSH.hBuf
|
>SETG.A CSH.hBuf
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
ldy #bExitOnEOF
|
|
||||||
lda #$FF
|
lda #$FF
|
||||||
sta (pData),y
|
>SETG.A bExitOnEOF
|
||||||
|
|
||||||
jmp CSH.Init
|
jmp CSH.Init
|
||||||
|
|
||||||
@ -143,8 +136,7 @@ CS.INIT jsr SetPWD
|
|||||||
|
|
||||||
>LDYA L.MSG.GREETINGS
|
>LDYA L.MSG.GREETINGS
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
* clc
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >GETG.A bReadMode READ Command ?
|
CS.RUN >GETG.A bReadMode READ Command ?
|
||||||
@ -201,7 +193,7 @@ CS.RUN >GETG.A bReadMode READ Command ?
|
|||||||
|
|
||||||
jsr HIS.Add
|
jsr HIS.Add
|
||||||
|
|
||||||
>LDYA pData
|
>LDYA ZPBufBase
|
||||||
jsr Cmd.ExecYA
|
jsr Cmd.ExecYA
|
||||||
|
|
||||||
ldy #S.PS.RC
|
ldy #S.PS.RC
|
||||||
@ -255,7 +247,9 @@ CS.RUN.READ >GETG.A hCmdBuf Get the buffer
|
|||||||
plp
|
plp
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.BATCH jsr CSH.Run
|
CS.RUN.BATCH >DEBUG
|
||||||
|
|
||||||
|
jsr CSH.Run
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda (pData)
|
lda (pData)
|
||||||
@ -610,15 +604,17 @@ hCmdBuf .BS 1
|
|||||||
CmdBuflen .BS 1
|
CmdBuflen .BS 1
|
||||||
bCmdBufexec .BS 1
|
bCmdBufexec .BS 1
|
||||||
|
|
||||||
bReadMode .BS 1
|
|
||||||
|
|
||||||
bEscMode .BS 1
|
bEscMode .BS 1
|
||||||
bPause .BS 1
|
bPause .BS 1
|
||||||
bExit .BS 1
|
bExit .BS 1
|
||||||
bEcho .BS 1
|
bEcho .BS 1
|
||||||
bSecureRead .BS 1
|
|
||||||
bExitOnEOF .BS 1
|
bExitOnEOF .BS 1
|
||||||
|
|
||||||
|
bReadMode .BS 1
|
||||||
|
bSecureRead .BS 1
|
||||||
|
|
||||||
Sleep .BS 4
|
Sleep .BS 4
|
||||||
|
|
||||||
VarBuffer .BS 16
|
VarBuffer .BS 16
|
||||||
|
|
||||||
HIS.hBuf .BS 1
|
HIS.hBuf .BS 1
|
||||||
|
@ -17,7 +17,7 @@ CORE.Run jsr CORE.TskMgrRun
|
|||||||
jsr CORE.DispatchEvents
|
jsr CORE.DispatchEvents
|
||||||
bcc .4 CC=All Events Dispatched
|
bcc .4 CC=All Events Dispatched
|
||||||
|
|
||||||
jsr PS.Select0
|
jsr CORE.PSSelect0
|
||||||
|
|
||||||
lda #EvtMgr.Table
|
lda #EvtMgr.Table
|
||||||
sta pEvent
|
sta pEvent
|
||||||
@ -115,8 +115,11 @@ CORE.TskMgrRun >LDYAI TskMgr.Table+S.PS skip PS 0
|
|||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
lda (pPs) get S.PS.F
|
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?
|
bit #S.PS.F.HOLD Waiting for Another Task to Terminate?
|
||||||
beq .2
|
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
|
and #$FF^S.PS.F.HOLD unmark as HOLD
|
||||||
sta (pPs)
|
sta (pPs)
|
||||||
|
|
||||||
.2 jsr PS.Select
|
.2 jsr CORE.PSSelect
|
||||||
|
|
||||||
lda (pPS)
|
lda (pPS)
|
||||||
bit #S.PS.F.INIT
|
bit #S.PS.F.INIT
|
||||||
@ -189,6 +192,55 @@ CORE.TskMgrRun >LDYAI TskMgr.Table+S.PS skip PS 0
|
|||||||
bcs .1 Always
|
bcs .1 Always
|
||||||
|
|
||||||
.8 clc
|
.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
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CORE.GetEvents :
|
* CORE.GetEvents :
|
||||||
@ -298,7 +350,7 @@ CORE.DispatchEvents
|
|||||||
bit #S.PS.F.EVENT Accept Events ?
|
bit #S.PS.F.EVENT Accept Events ?
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
jsr PS.Select
|
jsr CORE.PSSelect
|
||||||
|
|
||||||
lda #EvtMgr.Table
|
lda #EvtMgr.Table
|
||||||
sta pEvent Select first event in list
|
sta pEvent Select first event in list
|
||||||
|
@ -139,6 +139,7 @@ Kernel.Init3 sta SETALTZP
|
|||||||
phx Save Expanded CMDLINE for discard
|
phx Save Expanded CMDLINE for discard
|
||||||
|
|
||||||
>SYSCALL CreateProcessYA
|
>SYSCALL CreateProcessYA
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
pla
|
pla
|
||||||
>SYSCALL FreeMem.A ...discard...
|
>SYSCALL FreeMem.A ...discard...
|
||||||
@ -146,9 +147,6 @@ Kernel.Init3 sta SETALTZP
|
|||||||
>LDYAI MSG.Init3.OK
|
>LDYAI MSG.Init3.OK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
>LDYAI TskMgr.Table
|
|
||||||
>STYA pPs
|
|
||||||
|
|
||||||
>DEBUGOA
|
>DEBUGOA
|
||||||
|
|
||||||
jmp CORE.Run
|
jmp CORE.Run
|
||||||
|
@ -453,22 +453,49 @@ K.GetMemByID.A sta ZPMemMgrSPtr
|
|||||||
* A = SYS error code
|
* A = SYS error code
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.NewStr.YA >STYA .1+1
|
K.NewStr.YA >STYA .1+1
|
||||||
>STYA .
|
>STYA .4+1
|
||||||
|
|
||||||
.1 lda $ffff,
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ldy #0
|
||||||
stz MemMgr.ReqFlags
|
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
|
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
|
K.LoadStkObj.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -341,14 +341,15 @@ PS.Init jsr BIN.Load.YA Y,A=filename full path
|
|||||||
|
|
||||||
.2 ldy #H.BIN.EXE.SS.SIZE
|
.2 ldy #H.BIN.EXE.SS.SIZE
|
||||||
lda (ZPPtr4),y Load SS.SIZE.LO
|
lda (ZPPtr4),y Load SS.SIZE.LO
|
||||||
pha
|
pha Save it....
|
||||||
|
|
||||||
dec
|
dec set SP to top
|
||||||
|
|
||||||
ldy #S.PS.SP
|
ldy #S.PS.SP
|
||||||
sta (ZPPtr3),y
|
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
|
bne .3 SS.SIZE=0, set as default $100
|
||||||
inc SS.SIZE.HI
|
inc SS.SIZE.HI
|
||||||
@ -400,55 +401,6 @@ PS.Free.A.PsY lda (ZPPtr1),y
|
|||||||
beq PS.Free.A.RTS
|
beq PS.Free.A.RTS
|
||||||
jmp K.FreeMem.A
|
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
|
* PS.DupEnv.A
|
||||||
* In:
|
* In:
|
||||||
* A = ENV hMem To Duplicate
|
* A = ENV hMem To Duplicate
|
||||||
|
Loading…
Reference in New Issue
Block a user