Kernel 0.92

This commit is contained in:
Rémy GIBERT 2019-01-26 14:01:05 +00:00
parent a6e317b765
commit 30687b8c52
14 changed files with 67 additions and 82 deletions

Binary file not shown.

Binary file not shown.

View File

@ -499,7 +499,7 @@ Cmd.INT.GETKEY ldx #1
>SYSCALL SetEnv
.9 rts
.99 jmp Cmd.Exec.CSYN
.99 jmp Cmd.Exec.CSYN
*--------------------------------------
Cmd.INT.READ lda #1
>STA.G CMD.ArgIndex

View File

@ -102,7 +102,7 @@ CS.RUN >STZ.G hUSERNAME
jsr CS.RUN.SETENV
bcs .9
>PUSHBI S.PS.F.HOLD
>PUSHBI S.PS.F.HOLD+S.PS.F.DUPENV
>LDYA L.SHELL
>SYSCALL ExecL
rts

View File

@ -13,7 +13,7 @@ AUTO 4,1
* ## RETURN VALUE
* A = Arg count
*\--------------------------------------
ARG.bInQuote .BS 1
ARG.bInQuote .EQ ZPPtr3
*--------------------------------------
K.Args2ArgV jsr K.ExpandStr

View File

@ -25,26 +25,17 @@ K.LoadLib jsr ENV.Search.LIB
jsr BIN.Load Y,A = "/PATH/BIN"
bcs .9
stx .8+1
>STYA .1+1
txa Pass hLib to LibLoad
ldx #LIBMGR.LOAD
.1 jsr $ffff Self Modified, Call LIB.LOAD function
bcs .99
bcs BIN.Load.Cleanup
.8 lda #$ff hLib
lda BIN.hMem hLib
clc
.9 rts
.99 pha
lda .8+1
jsr K.FreeMem
pla
sec
rts
*--------------------------------------
* UnloadLib
* in :
@ -83,7 +74,6 @@ K.LoadDrv >STYA .2+1 Save "BIN\0ARGS\0\0"
bcs .9
>STYA .3+1
stx .97+1
ldx #$ff
@ -99,21 +89,22 @@ K.LoadDrv >STYA .2+1 Save "BIN\0ARGS\0\0"
adc .2+2 Y,A = ARGS
.3 jsr $ffff SELF MODIFIED, call Dev.Detect
bcs .96
bcs BIN.Load.Cleanup
jsr .96 Cleanup...
jsr BIN.Load.Cleanup
lda #0 Make sure RC = 0 if success
clc
.9 rts
.96 pha
.97 lda #$ff
BIN.Load.Cleanup
pha
lda BIN.hMem
jsr K.FreeMem
pla
sec
K.LoadDrv.RTS rts
BIN.Load.Cleanup.RTS
rts
*--------------------------------------
* BIN.Load
* in :
@ -162,15 +153,10 @@ BIN.Load >STYA BIN.CmdLine
jmp K.GetMemPtr.ZPMemMgrSPtr
* X=hMem, Y,A=Ptr
*--------------------------------------
BIN.Load.1
* >PUSHWI K.S.STAT
* >LDYA BIN.CmdLine
* >SYSCALL STAT BANK1!!! Look for AUXTYPE
* bcs .9
* Already called by Filesearch in FindDRV, FindLIB
* Already called by PS.Load (TXT,BIN,SYS)
>LDYA K.S.STAT+S.STAT.P.AUXTYPE
* STAT Already called by Filesearch in FindDRV, FindLIB
* STAT Already called by PS.Load (TXT,BIN,SYS)
*--------------------------------------
BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE
>STYA BIN.R.CS.Start
>PUSHYA Push AUXTYPE
@ -179,7 +165,7 @@ BIN.Load.1
>LDYA BIN.CmdLine
>SYSCALL LoadFile BANK1!!!
.9 bcs .99 Error Loading file
bcs BIN.Load.Cleanup.RTS Error Loading file
stx BIN.hMem save hMem
@ -237,13 +223,7 @@ BIN.Load.1
clc
jmp K.GetMemPtr.ZPMemMgrSPtr ...and Y,A=PTR to CS
.98 pha
lda BIN.hMem
jsr K.FreeMem Discard Loaded Code
pla
sec
.99 rts
.98 jmp BIN.Load.Cleanup Discard Loaded Code, exits CS
*/--------------------------------------
* # InsDrv
* ## C

View File

@ -339,32 +339,31 @@ CORE.Dispatch stz CORE.PSIndex
* X unmodified
*--------------------------------------
CORE.GetPSByID jsr CORE.GetPS
bcs CORE.GetPSByID.RTS
bcs CORE.GetPS.RTS
lda PS.TABLE.hPS,y
jmp K.GetMemPtr
CORE.GetPSByID.8
clc
CORE.GetPSByID.RTS
rts
*--------------------------------------
* X,A unmodified
*--------------------------------------
CORE.GetPS tay
beq CORE.GetPSByID.8 PS0 requested
beq CORE.GetPS.8 PS0 requested
ldy #0
bra .2 Skip PS0
.1 cmp PS.Table.PID,y
beq CORE.GetPSByID.8
beq CORE.GetPS.8
.2 iny
cpy CORE.PSCount
bne .1
.9 lda #E.NSP
* sec
CORE.GetPS.RTS rts
rts
CORE.GetPS.8
clc
CORE.GetPS.RTS rts
*--------------------------------------
*CORE.DumpEvent ldy #S.EVT-1

View File

@ -229,9 +229,8 @@ ENV.Search.YA >STYA .4+1
inx
bra .4
.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
>SYSCALL STAT BANK1
.5 >LDYAI K.Buf256
jsr K.STAT.YA.JMP
bcs .1 Failed...retry next path...
lda K.S.STAT+S.STAT.P.TYPE
@ -404,7 +403,7 @@ K.GetEnv >STYA ZPPtr1
bcs .9
jsr ENV.NextEnvP3 Skip NAME
clc just in case ADC in NextEnvPtr1 disturb CC
clc just in case ADC in NextEnvPtr3 disturb CC
.9 >LDYA ZPPtr3
rts
@ -657,8 +656,7 @@ ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV
.8 clc
rts
.3 jsr ENV.NextEnvP3 Skip NAME
jsr ENV.NextEnvP3 Skip VALUE
.3 jsr ENV.NextEnvP3x2 Skip NAME & VALUE
bra .1
.9 sec
@ -670,8 +668,7 @@ ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV
*--------------------------------------
ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr
>STYA ZPPtr4
jsr ENV.NextEnvP3 Skip current NAME....
jsr ENV.NextEnvP3 Skip current VALUE....
jsr ENV.NextEnvP3x2 Skip NAME & VALUE
.1 ldy #$ff
@ -695,8 +692,10 @@ ENV.InitEnvP3 ldy #S.PS.hENV
>STYA ZPPtr3 Store ENV
rts
*--------------------------------------
ENV.NextEnvP3x2 jsr ENV.NextEnvP3
*--------------------------------------
ENV.NextEnvP3 jsr ENV.GetP3LenY
*--------------------------------------
ENV.NextEnvP3Y tya
sec
adc ZPPtr3

View File

@ -422,6 +422,12 @@ K.GUIOSD.JMP sta SETREADAUX
sta CLRWRITEAUX
rts
*--------------------------------------
K.STAT.YA.JMP pha
>PUSHWI K.S.STAT
pla
>SYSCALL stat
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.JMP
LOAD USR/SRC/SYS/KERNEL.S

View File

@ -747,6 +747,10 @@ MEM.SPtr1PPtr2 >STYA ZPPtr1
>PULLW ZPPtr2
rts
*--------------------------------------
MEM.SPtr2PPtr1 >STYA ZPPtr2
>PULLW ZPPtr1
rts
*--------------------------------------
MEM.GetCharPtr1 lda (ZPPtr1)
beq MEM.GetCharPtr1.8
MEM.NextCharPtr1

View File

@ -215,9 +215,8 @@ PS.Load ldy #$ff
cmp #'/'
bne .1
>PUSHWI K.S.STAT
>LDYA PS.ArgV found /, some path specified, no search
>SYSCALL stat BANK 1
jsr K.STAT.YA.JMP
bcc .6 REAL path in K.Buf256
.99 rts
@ -292,9 +291,8 @@ PS.Load.SCRIPT ldx #$ff
sta K.Buf256-1,x K.Buf256 = "/ROOT/BIN/SHELL\0"
.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
>SYSCALL stat BANK 1
.5 >LDYAI K.Buf256
jsr K.STAT.YA.JMP
bcs PS.Load.RTS
lda K.S.STAT+S.STAT.P.TYPE

View File

@ -254,8 +254,15 @@ K.PrintF.1 stz PrintF.Cnt
.8 lda pIOBuf+1
eor /K.IOBuf
bne .99
jsr PrintF.Flush
beq .11 Writing to File/dev...
lda #0 Writing to buffer, append \0
ldy PrintF.Cnt
sta (pIOBuf),y
bra .99
.11 jsr PrintF.Flush
bra .99
.10 cmp #'\'
@ -680,11 +687,7 @@ PrintF.Flush >PUSHW PrintF.Cnt
PrintF.Flush.hFILE
lda #$ff SELF MODIFIED
jsr PFT.CheckNodeA
bcs .9
jmp IO.Write.I
.9 >RET 4
jmp K.FWrite
*/--------------------------------------
* # FGetS
* read bytes from stream into the array
@ -704,7 +707,7 @@ PrintF.Flush.hFILE
* CC = success
*\--------------------------------------
K.FGetS jsr PFT.CheckNodeA
bcs .90
bcs K.FGetS.RET4
>PULLW ZPPtr2 s
@ -740,8 +743,7 @@ K.FGetS jsr PFT.CheckNodeA
sta (ZPPtr2)
pla
.99 rts
.90 >RET 4
K.FGetS.RET4 >RET 4
*/--------------------------------------
* # GetChar
* Get char from StdIn
@ -805,8 +807,7 @@ K.GetC.9 rts
* ## RETURN VALUE
* A = Number of arguments filled.
*\--------------------------------------
K.SScanF >STYA ZPPtr2 String to Scan
>PULLW ZPPtr1 format
K.SScanF jsr MEM.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format
stz .5+1 reset LStack Ptr
stz .80+1 rest Arg processed
@ -1041,7 +1042,7 @@ K.FClose jsr PFT.CheckNodeA
* Y,A = Bytes Read
*\--------------------------------------
K.FRead jsr PFT.CheckNodeA
bcs K.Write.9
bcs K.FWrite.9
jmp IO.Read.I
*/--------------------------------------
@ -1059,10 +1060,10 @@ K.FRead jsr PFT.CheckNodeA
* Y,A = Bytes Written
*\--------------------------------------
K.FWrite jsr PFT.CheckNodeA
bcs K.Write.9
bcs K.FWrite.9
jmp IO.Write.I
K.Write.9 >RET 4
K.FWrite.9 >RET 4
*/--------------------------------------
* # FFlush
* ## C

View File

@ -14,11 +14,10 @@ AUTO 4,1
* ## RETURN VALUE
* On stack (float)
*\--------------------------------------
K.strtof >STYA TXTPTR Ptr to source string
K.strtof jsr K.AToF.I
>PULLW ZPPtr1
jsr K.AToF.I
lda TXTPTR
sta (ZPPtr1)
ldy #1
@ -61,8 +60,7 @@ K.AToF.I jsr CHARGOT
K.StrToL sec Signed
.HS 90 BCC
K.StrToUL clc Unsigned
>STYA ZPPtr2
>PULLW ZPPtr1
jsr MEM.SPtr2PPtr1
>PULLA Base
jsr K.AToL.I

View File

@ -47,6 +47,7 @@ A2osX.D1 .PH $D000
.INB USR/SRC/SYS/KERNEL.S.STDLIB
.INB USR/SRC/SYS/KERNEL.S.DEV
.INB USR/SRC/SYS/KERNEL.S.FIO
.INB USR/SRC/SYS/KERNEL.S.PFT
.EP
A2osX.D2 .PH $D000
.DA #RRAMWRAMBNK2
@ -56,6 +57,7 @@ A2osX.D2 .PH $D000
.INB USR/SRC/SYS/KERNEL.S.PS
.INB USR/SRC/SYS/KERNEL.S.ARG
.INB USR/SRC/SYS/KERNEL.S.ENV
.INB USR/SRC/SYS/KERNEL.S.MATH
.EP
A2osX.E0 .PH $E000
.INB USR/SRC/SYS/KERNEL.S.JMP
@ -64,9 +66,7 @@ A2osX.E0 .PH $E000
.INB USR/SRC/SYS/KERNEL.S.TERMLC
********* TMP ***** go to A2osX.D1
.INB USR/SRC/SYS/KERNEL.S.IO
.INB USR/SRC/SYS/KERNEL.S.PFT
********* TMP ***** go to A2osX.D2
.INB USR/SRC/SYS/KERNEL.S.MATH
.LIST ON
DevMgr.FreeMem .EQ *
.LIST OFF