mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-14 02:29:33 +00:00
Kernel 0.9.1 : Code reorganization & move to CSTR (ENV,FileSearch)
This commit is contained in:
parent
56cdcf925a
commit
8d4c55130b
Binary file not shown.
Binary file not shown.
|
@ -37,8 +37,10 @@ L.MSG.HELP .DA MSG.HELP
|
|||
L.MSG.LOAD .DA MSG.LOAD
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >SYSCALL GetArgC
|
||||
cmp #1
|
||||
CS.INIT >DEBUG
|
||||
ldy #S.PS.ARGC
|
||||
lda (pPs),y
|
||||
|
||||
bne .1
|
||||
|
||||
>LDYA L.MSG.HELP
|
||||
|
|
|
@ -68,21 +68,15 @@ Cmd.Parse.NextC lda (ZPPtr1)
|
|||
Cmd.Exec stz bStartProc
|
||||
>LDYA ZPCMDBuf
|
||||
|
||||
>SYSCALL PrintF.YA
|
||||
jsr Cmd.Exec.ECHO.CR
|
||||
|
||||
>LDYA ZPCMDBuf
|
||||
|
||||
>SYSCALL ExpandStr.YA
|
||||
>STYA ZPPtr1 Ptr to CMD
|
||||
|
||||
txa
|
||||
>STA.G CMD.hCmdLine
|
||||
|
||||
Cmd.ExecYA >LDYA ZPPtr1
|
||||
|
||||
Cmd.Exec.2 >LDYA ZPPtr1
|
||||
>SYSCALL PrintF.YA
|
||||
jsr Cmd.Exec.ECHO.CR
|
||||
>DEBUG
|
||||
|
||||
ldy #$ff CMD Len
|
||||
|
||||
|
@ -152,13 +146,6 @@ Cmd.ExecYA >LDYA ZPPtr1
|
|||
sta ZPPtr2+1 ZPPtr2->ARGS
|
||||
|
||||
jsr Cmd.Exec.INT Found an internal Cmd...
|
||||
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
|
||||
.9 ldy #S.PS.RC
|
||||
sta (pPS),y
|
||||
|
||||
Cmd.Exec.Done php
|
||||
pha
|
||||
|
@ -171,6 +158,7 @@ Cmd.Exec.Done php
|
|||
Cmd.Exec.INT jmp (J.INTCMDS,x)
|
||||
*--------------------------------------
|
||||
Cmd.Exec.EXT pla Discard CMD len
|
||||
>DEBUG
|
||||
|
||||
lda (ZPPtr1)
|
||||
cmp #'/' Command line is already full path, no search
|
||||
|
@ -279,8 +267,6 @@ Cmd.Exec.CD lda (ZPPTR2)
|
|||
Cmd.Exec.PWD ldy #S.PS.hPREFIX
|
||||
lda (pPs),y
|
||||
>SYSCALL GetMemPtr.A
|
||||
>PUSHYA
|
||||
>LDYA L.MSG.PSTRCR
|
||||
>SYSCALL PrintF.YA
|
||||
rts
|
||||
|
||||
|
@ -401,7 +387,7 @@ Cmd.Exec.STARTPROC
|
|||
>LDYA ZPPTR2
|
||||
>STYA ZPPTR1
|
||||
|
||||
jmp Cmd.ExecYA
|
||||
jmp Cmd.Exec.2
|
||||
*--------------------------------------
|
||||
Cmd.Exec.SET lda (ZPPTR2)
|
||||
bne Cmd.Exec.SETVAR
|
||||
|
@ -435,7 +421,6 @@ Cmd.Exec.SET lda (ZPPTR2)
|
|||
|
||||
>LDYA L.MSG.PRINTENV
|
||||
>SYSCALL PrintF.YA
|
||||
>DEBUG
|
||||
bcs .9
|
||||
|
||||
ldy #$ff
|
||||
|
@ -475,6 +460,7 @@ Cmd.Exec.SETVAR ldy #0
|
|||
|
||||
>LDYA ZPPTR2 String is VAR=VALUE...
|
||||
>SYSCALL PutEnv.YA
|
||||
>DEBUG
|
||||
rts
|
||||
|
||||
.2 dey String is "VAR=", Remove endig '='
|
||||
|
@ -525,10 +511,8 @@ Cmd.Exec.TIME clc
|
|||
Cmd.Exec.ECHO lda (ZPPtr2)
|
||||
beq Cmd.Exec.ECHO.CR
|
||||
|
||||
>PUSHW ZPPtr2
|
||||
>LDYA L.MSG.PSTRCR
|
||||
>LDYA ZPPtr2
|
||||
>SYSCALL PrintF.YA
|
||||
rts
|
||||
|
||||
Cmd.Exec.ECHO.CR
|
||||
lda #13
|
||||
|
|
|
@ -163,7 +163,7 @@ CSH.Run jsr CSH.GetBuf
|
|||
>STA.G bCmdBufexec
|
||||
|
||||
>LDA.G bEcho
|
||||
beq .80
|
||||
* beq .80
|
||||
|
||||
>PUSHW ZPCMDBuf
|
||||
>LDYA L.MSG.ECHO
|
||||
|
|
|
@ -5,7 +5,7 @@ INC 1
|
|||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
IO.PrintErrMsg >PUSHA Save EC for PrintF
|
||||
IO.PrintErrMsg pha Save EC for PrintF
|
||||
|
||||
ldx L.ERR.Codes
|
||||
stx ZPPTR1
|
||||
|
@ -37,6 +37,8 @@ IO.PrintErrMsg >PUSHA Save EC for PrintF
|
|||
bra .3
|
||||
|
||||
.8 >PUSHW ZPPTR1
|
||||
pla
|
||||
>PUSHA
|
||||
>LDYA L.MSG.ERROR
|
||||
>SYSCALL PrintF.YA
|
||||
rts
|
||||
|
|
|
@ -58,8 +58,6 @@ CS.START cld
|
|||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||
L.MSG.PROMPT .DA MSG.PROMPT
|
||||
L.MSG.ECHO .DA MSG.ECHO
|
||||
L.MSG.PSTRCR .DA MSG.PSTRCR
|
||||
L.MSG.PSTR .DA MSG.PSTR
|
||||
L.MSG.ERROR .DA MSG.ERROR
|
||||
L.MSG.PRINTENV .DA MSG.PRINTENV
|
||||
L.MSG.CSHERR .DA MSG.CSHERR
|
||||
|
@ -123,13 +121,13 @@ CS.INIT jsr SetPWD
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN >LDA.G bReadMode READ Command ?
|
||||
CS.RUN >DEBUG
|
||||
>LDA.G bReadMode READ Command ?
|
||||
bne CS.RUN.READ
|
||||
|
||||
ldy #S.PS.RC
|
||||
lda (pPs),y
|
||||
beq .11
|
||||
|
||||
jsr IO.PrintErrMsg
|
||||
bcs CS.RUN.EXIT.RTS
|
||||
|
||||
|
@ -142,7 +140,7 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
|||
.13 jsr CheckSleep
|
||||
bne .8
|
||||
|
||||
>LDA.G CSH.hBuf batch mode ?
|
||||
>LDA.G CSH.hBuf batch mode ?
|
||||
beq .10
|
||||
|
||||
jmp CS.RUN.BATCH
|
||||
|
@ -510,8 +508,7 @@ CmdLine.DEL >LDA.G CmdBuflen
|
|||
>SYSCALL PutChar.A
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CmdLine.SET >PUSHW ZPCMDBuf
|
||||
>LDYA L.MSG.PSTR
|
||||
CmdLine.SET >LDYA ZPCMDBuf
|
||||
>SYSCALL PrintF.YA
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -522,9 +519,10 @@ CmdLine.SET >PUSHW ZPCMDBuf
|
|||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
ENV.PATH >PSTR "PATH"
|
||||
ENV.PWD >PSTR "PWD"
|
||||
ENV.PS1 >PSTR "PS1"
|
||||
ENV.PATH >CSTR "PATH"
|
||||
ENV.PWD >CSTR "PWD"
|
||||
ENV.PS1 >CSTR "PS1"
|
||||
*--------------------------------------
|
||||
INTCMDS >PSTR "CD"
|
||||
>PSTR "DATE"
|
||||
>PSTR "ECHO"
|
||||
|
@ -548,13 +546,11 @@ CSHCMDS >PSTR "IF"
|
|||
.HS 00
|
||||
*--------------------------------------
|
||||
MSG.GREETINGS >CSTR "\r\nA2osX-Shell\r\n\r\n"
|
||||
MSG.PROMPT >CSTR "%S$ "
|
||||
MSG.ECHO >CSTR ">%S\r\n"
|
||||
MSG.PSTRCR >CSTR "%S\r\n"
|
||||
MSG.PSTR >CSTR "%S"
|
||||
MSG.ERROR >CSTR "Err:%S [%h]\r\n"
|
||||
MSG.PROMPT >CSTR "%s$ "
|
||||
MSG.ECHO >CSTR ">%s\r\n"
|
||||
MSG.ERROR >CSTR "[$%h]:%S.\r\n"
|
||||
MSG.PRINTENV >CSTR "%s=%s\r\n"
|
||||
MSG.CSHERR >PSTR "Pos %D:"
|
||||
MSG.CSHERR >CSTR "Pos %D:"
|
||||
FMT.DATE >CSTR "%A, %B %d %Y"
|
||||
FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)"
|
||||
*--------------------------------------
|
||||
|
|
|
@ -469,9 +469,6 @@ CORE.DispatchEvents
|
|||
CORE.TskMgrQuit clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TskMgr.Idx .BS 1
|
||||
TSKMGR.EVENTCNT .BS 1
|
||||
*--------------------------------------
|
||||
CORE.DestroyEvent
|
||||
lda (pEvent)
|
||||
beq .9
|
||||
|
@ -497,6 +494,22 @@ CORE.DestroyEvent
|
|||
dec EvtMgr.Count
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
TskMgr.Idx .BS 1
|
||||
TSKMGR.EVENTCNT .BS 1
|
||||
*--------------------------------------
|
||||
DevMgr.Stat .DA DevMgr.NUL.Code
|
||||
DevMgr.Free .DA DevMgr.FreeMem
|
||||
.DA DevMgr.HiMem
|
||||
DevMgr.Count .DA #2 NUL,SYS
|
||||
*--------------------------------------
|
||||
EvtMgr.VBLState .BS 1
|
||||
EvtMgr.10TH.CNT .BS 1
|
||||
EvtMgr.HZ.CNT .BS 1
|
||||
EvtMgr.Count .BS 1
|
||||
*--------------------------------------
|
||||
TskMgr.Count .DA #1 One Slot Busy (Kernel PS=0)
|
||||
TskMgr.LastID .DA #0
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.CORE
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
LOMEM $A00
|
||||
INC 1
|
||||
AUTO 6
|
||||
*--------------------------------------
|
||||
DevMgr.Stat .DA DevMgr.NUL.Code
|
||||
DevMgr.Free .DA DevMgr.FreeMem
|
||||
.DA DevMgr.HiMem
|
||||
DevMgr.Count .DA #2 NUL,SYS
|
||||
*--------------------------------------
|
||||
EvtMgr.VBLState .BS 1
|
||||
EvtMgr.10TH.CNT .BS 1
|
||||
EvtMgr.HZ.CNT .BS 1
|
||||
EvtMgr.Count .BS 1
|
||||
*--------------------------------------
|
||||
TskMgr.Count .DA #1 One Slot Busy (Kernel PS=0)
|
||||
TskMgr.LastID .DA #0
|
||||
*--------------------------------------
|
||||
EmptyPSTR .DA #0
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DAT
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
ASM
|
|
@ -14,7 +14,7 @@ AUTO 6
|
|||
K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
||||
|
||||
.1 >STYA ZPPtr2
|
||||
stz K.ExpandStr.Len init Expanded String len=0
|
||||
stz K.ExpandStr.BufLen init Expanded String len=0
|
||||
stz K.ExpandStr.bFound No var found yet
|
||||
|
||||
stz K.ExpandStr.bNoExp Reset no expand flag
|
||||
|
@ -40,10 +40,10 @@ K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
|||
.21 bit K.ExpandStr.bNoExp
|
||||
bpl .23
|
||||
|
||||
.22 ldx K.ExpandStr.Len
|
||||
.22 ldx K.ExpandStr.BufLen
|
||||
sta K.Buf256,x
|
||||
inx
|
||||
stx K.ExpandStr.Len
|
||||
stx K.ExpandStr.BufLen
|
||||
bra .11
|
||||
|
||||
.23 ldx K.ExpandStr.bInVar already in a var?
|
||||
|
@ -108,7 +108,7 @@ K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
|||
|
||||
jsr K.FreeMem.A yes, discard....
|
||||
|
||||
.81 ldx K.ExpandStr.Len
|
||||
.81 ldx K.ExpandStr.BufLen
|
||||
stz K.Buf256,x
|
||||
|
||||
>LDYAI K.Buf256
|
||||
|
@ -146,7 +146,7 @@ K.ExpandStrValidChar
|
|||
K.ExpandStrGetValue
|
||||
jsr ENV.ExpandSysVar
|
||||
bcc .9
|
||||
|
||||
|
||||
>LDYAI K.ExpandStr.VarName
|
||||
jsr K.GetEnv.YA
|
||||
bcs .9
|
||||
|
@ -157,7 +157,7 @@ K.ExpandStrGetValue
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
K.ExpandStr.Len .BS 1
|
||||
K.ExpandStr.BufLen .BS 1
|
||||
K.ExpandStr.bNoExp .BS 1
|
||||
K.ExpandStr.bInVar .BS 1
|
||||
K.ExpandStr.bFound .BS 1
|
||||
|
@ -296,7 +296,7 @@ K.SetEnvPtr1Ptr2
|
|||
bne .24
|
||||
|
||||
iny
|
||||
.25 lda #0
|
||||
|
||||
sta (ZPPtr3),y don't forget array ending 0
|
||||
clc
|
||||
rts
|
||||
|
@ -317,11 +317,9 @@ K.GetEnv.YA >STYA ZPPtr1
|
|||
bcs .9
|
||||
|
||||
jsr ENV.NextEnvPtr3 Skip NAME
|
||||
>LDYA ZPPtr3
|
||||
clc just in case ADC in NextEnvPtr1 disturb CC
|
||||
.8 rts
|
||||
|
||||
.9 >LDYAI EmptyPSTR
|
||||
.9 >LDYA ZPPtr3
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # UnsetEnv.YA
|
||||
|
@ -405,16 +403,29 @@ ENV.SysVarsArgs lda #1
|
|||
lda (ZPPtr3)
|
||||
beq ENV.SysVarsExit2
|
||||
|
||||
ldx K.Buf256
|
||||
inx
|
||||
beq ENV.SysVarsExit2 make sure not overlapping buf 256
|
||||
stx K.Buf256
|
||||
lda #' '
|
||||
sta K.Buf256,x
|
||||
stx K.ExpandStr.BufLen
|
||||
|
||||
jsr ENV.AppendPtr3ToBuf
|
||||
bra .2
|
||||
*--------------------------------------
|
||||
ENV.AppendPtr3ToBuf
|
||||
ldx K.ExpandStr.BufLen
|
||||
ldy #$ff
|
||||
dex
|
||||
|
||||
.1 iny
|
||||
inx
|
||||
lda (ZPPtr3),y
|
||||
sta K.Buf256,x
|
||||
bne .1
|
||||
|
||||
stx K.ExpandStr.BufLen
|
||||
rts
|
||||
*--------------------------------------
|
||||
ENV.SysVarsArgC jsr K.GetArgC Trash Ptr1
|
||||
bra ENV.SysVarsA
|
||||
|
||||
|
@ -555,24 +566,6 @@ ENV.NextEnvPtr3 ldy #0
|
|||
inc ZPPtr3+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
ENV.AppendPtr3ToBuf
|
||||
ldx #$ff
|
||||
|
||||
.1 inx
|
||||
lda K.Buf256,x
|
||||
bne .1
|
||||
|
||||
ldy #$ff
|
||||
dex
|
||||
|
||||
.2 iny
|
||||
inx
|
||||
lda (ZPPtr3),y
|
||||
sta K.Buf256,x
|
||||
bne .2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.ENV
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
|
|
@ -19,17 +19,15 @@ AUTO 6
|
|||
* CS : not found
|
||||
*\--------------------------------------
|
||||
K.FileSearch >PULLW ZPPtr2 DstBuf
|
||||
>DEBUG
|
||||
jsr K.FileSearch.I
|
||||
bcs .9
|
||||
|
||||
lda K.Buf256
|
||||
sta (ZPPtr2)
|
||||
ldy #$ff
|
||||
|
||||
tay
|
||||
|
||||
.1 lda K.Buf256,y
|
||||
.1 iny
|
||||
lda K.Buf256,y
|
||||
sta (ZPPtr2),y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
.9 rts
|
||||
|
@ -44,16 +42,13 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandStr.YA
|
|||
|
||||
stz .11+1
|
||||
|
||||
.1 stz K.Buf256 reset String
|
||||
ldx #0
|
||||
.1 ldx #$ff
|
||||
|
||||
.11 ldy #$ff Self Modified
|
||||
|
||||
.2 tya
|
||||
cmp (ZPPtr3) end of src string ?
|
||||
.2 lda (ZPPtr3),y end of src string ?
|
||||
beq .3 end of string, try it....
|
||||
iny
|
||||
lda (ZPPtr3),y
|
||||
cmp #';'
|
||||
beq .3
|
||||
inx
|
||||
|
@ -65,17 +60,15 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandStr.YA
|
|||
|
||||
sty .11+1 save current index
|
||||
|
||||
ldy #0
|
||||
ldy #$ff
|
||||
|
||||
.4 iny
|
||||
lda (ZPPtr4),y Append Fiename...
|
||||
inx
|
||||
sta K.Buf256,x
|
||||
tya
|
||||
cmp (ZPPtr4)
|
||||
bne .4
|
||||
|
||||
stx K.Buf256 set string length
|
||||
stz K.Buf256+1,x set string ending 0
|
||||
|
||||
>PUSHWI K.S.STAT
|
||||
>PUSHWI K.Buf256
|
||||
|
@ -150,7 +143,8 @@ K.GetFullPath.YA
|
|||
* Y,A = File Length
|
||||
* X = hMem of Loaded File
|
||||
*\--------------------------------------
|
||||
K.LoadFile lda (pStack) read PTR.LO on top of stack
|
||||
K.LoadFile >DEBUG
|
||||
lda (pStack) read PTR.LO on top of stack
|
||||
pha
|
||||
ldy #1
|
||||
lda (pStack),y read PTR.HI on top of stack
|
||||
|
|
|
@ -300,7 +300,7 @@ 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 Save it....
|
||||
|
||||
>DEBUG
|
||||
dec set SP to top
|
||||
|
||||
ldy #S.PS.SP
|
||||
|
@ -312,12 +312,12 @@ PS.Init jsr BIN.Load.YA Y,A=filename full path
|
|||
bne .3 SS.SIZE=0, set as default $100
|
||||
inc SS.SIZE.HI
|
||||
|
||||
.3 jsr K.GetMem0.YA
|
||||
.3 jsr K.GetMem.YA
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
ldy #S.PS.hSS
|
||||
sta (ZPPtr3),y save DS hMem in TSKSLOT
|
||||
sta (ZPPtr3),y save SS hMem in TSKSLOT
|
||||
|
||||
|
||||
clc
|
||||
|
|
|
@ -47,7 +47,6 @@ A2osX.D2 .PH $D000
|
|||
A2osX.E0 .PH $E000
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.JMP
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CORE
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DAT
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||
|
|
Loading…
Reference in New Issue
Block a user