mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-22 12:29:21 +00:00
Kernel 0.92
This commit is contained in:
parent
a6e317b765
commit
30687b8c52
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user