mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-18 00:30:40 +00:00
Kernel 0.9.1 : Code reorganization & move to CSTR : ENV & SHELL
This commit is contained in:
parent
ea86f48bc7
commit
56cdcf925a
@ -92,7 +92,7 @@ Returns argument count in the process command line.
|
|||||||
# PutEnv.YA
|
# PutEnv.YA
|
||||||
|
|
||||||
## In:
|
## In:
|
||||||
+ Y,A = PTR to String NAME=VALUE (PSTR)
|
+ Y,A = PTR to String NAME=VALUE (C-String)
|
||||||
|
|
||||||
## Out:
|
## Out:
|
||||||
|
|
||||||
@ -193,19 +193,6 @@ And return, if found, the full path to it.
|
|||||||
+ PUSHW = GID
|
+ PUSHW = GID
|
||||||
+ PUSHW = PATH
|
+ PUSHW = PATH
|
||||||
|
|
||||||
# NewPStrYA
|
|
||||||
Create a new copy of PSTR
|
|
||||||
|
|
||||||
## In:
|
|
||||||
+ Y,A = PTR to buffer
|
|
||||||
|
|
||||||
## Out:
|
|
||||||
+ CC : success
|
|
||||||
+ Y,A = PTR to String
|
|
||||||
+ X = hMem (PSTR)
|
|
||||||
+ CS : error
|
|
||||||
+ A = SYS error code
|
|
||||||
|
|
||||||
# GetMem
|
# GetMem
|
||||||
|
|
||||||
## In:
|
## In:
|
||||||
@ -272,22 +259,27 @@ Create a new copy of PSTR
|
|||||||
+ Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
+ Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
||||||
+ X unmodified
|
+ X unmodified
|
||||||
|
|
||||||
|
# NewStr.YA
|
||||||
|
Create a new copy of this C-String
|
||||||
|
|
||||||
|
## In:
|
||||||
|
+ Y,A = Ptr to source C-String
|
||||||
|
|
||||||
|
## Out:
|
||||||
|
+ CC : success
|
||||||
|
+ Y,A = PTR to String
|
||||||
|
+ X = hMem (PSTR)
|
||||||
|
+ CS : error
|
||||||
|
+ A = SYS error code
|
||||||
|
|
||||||
# GetMemStat.YA
|
# GetMemStat.YA
|
||||||
|
|
||||||
## In:
|
## In:
|
||||||
+ Y,A = 24 bytes buffer
|
+ Y,A = Ptr to 24 bytes buffer
|
||||||
|
|
||||||
## Out:
|
## Out:
|
||||||
+ Buffer filled with memory stats
|
+ Buffer filled with memory stats
|
||||||
|
|
||||||
# GetPSByID.A
|
|
||||||
|
|
||||||
## In :
|
|
||||||
+ A = PID
|
|
||||||
|
|
||||||
## Out :
|
|
||||||
+ Y,A = PTR to TSKSLOT
|
|
||||||
|
|
||||||
# Sleep
|
# Sleep
|
||||||
Make current process suspend until next RUN
|
Make current process suspend until next RUN
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -73,13 +73,13 @@ Cmd.Exec stz bStartProc
|
|||||||
|
|
||||||
>LDYA ZPCMDBuf
|
>LDYA ZPCMDBuf
|
||||||
|
|
||||||
Cmd.ExecYA >SYSCALL ExpandStr.YA
|
>SYSCALL ExpandStr.YA
|
||||||
>STYA ZPPtr1 Ptr to CMD
|
>STYA ZPPtr1 Ptr to CMD
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>STA.G CMD.hCmdLine
|
>STA.G CMD.hCmdLine
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
Cmd.ExecYA >LDYA ZPPtr1
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
jsr Cmd.Exec.ECHO.CR
|
jsr Cmd.Exec.ECHO.CR
|
||||||
>DEBUG
|
>DEBUG
|
||||||
@ -135,7 +135,6 @@ Cmd.ExecYA >SYSCALL ExpandStr.YA
|
|||||||
cmp (ZPPtr2),y
|
cmp (ZPPtr2),y
|
||||||
bne .4
|
bne .4
|
||||||
dey
|
dey
|
||||||
dey
|
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
ply get back Cmd Len
|
ply get back Cmd Len
|
||||||
@ -400,45 +399,57 @@ Cmd.Exec.STARTPROC
|
|||||||
ror bStartProc
|
ror bStartProc
|
||||||
|
|
||||||
>LDYA ZPPTR2
|
>LDYA ZPPTR2
|
||||||
|
>STYA ZPPTR1
|
||||||
|
|
||||||
jmp Cmd.ExecYA
|
jmp Cmd.ExecYA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.Exec.SET lda (ZPPTR2)
|
Cmd.Exec.SET lda (ZPPTR2)
|
||||||
bne Cmd.Exec.SETVAR
|
bne Cmd.Exec.SETVAR
|
||||||
|
|
||||||
|
* No arg, print all ENV
|
||||||
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
|
|
||||||
* No arg, print all ENV
|
|
||||||
|
|
||||||
.1 lda (ZPPTR1)
|
.1 lda (ZPPTR1)
|
||||||
beq .8 Ending 0 ?
|
beq .8 Ending 0 ?
|
||||||
|
|
||||||
lda ZPPTR1 get next for value
|
ldy #$ff
|
||||||
sec
|
|
||||||
adc (ZPPTR1) Add len+1 to PTR
|
|
||||||
sta ZPPTR2
|
|
||||||
lda ZPPTR1+1
|
|
||||||
adc #0
|
|
||||||
sta ZPPTR2+1
|
|
||||||
|
|
||||||
lda (ZPPTR2) just in case...
|
.2 iny
|
||||||
beq .8
|
lda (ZPPTR1),y
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
tya
|
||||||
|
sec
|
||||||
|
adc ZPPTR1
|
||||||
|
sta ZPPTR2
|
||||||
|
lda #0
|
||||||
|
adc ZPPTR1+1
|
||||||
|
sta ZPPTR2+1
|
||||||
|
|
||||||
>PUSHW ZPPTR2 Push value
|
>PUSHW ZPPTR2 Push value
|
||||||
>PUSHW ZPPTR1 Push name
|
>PUSHW ZPPTR1 Push name
|
||||||
|
|
||||||
>LDYA L.MSG.PRINTENV
|
>LDYA L.MSG.PRINTENV
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
>DEBUG
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda ZPPTR2
|
ldy #$ff
|
||||||
|
|
||||||
|
.3 iny
|
||||||
|
lda (ZPPTR2),y
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
tya
|
||||||
sec
|
sec
|
||||||
adc (ZPPTR2) Add len+1 to PTR
|
adc ZPPTR2
|
||||||
sta ZPPTR1
|
sta ZPPTR1
|
||||||
lda ZPPTR2+1
|
lda #0
|
||||||
adc #0
|
adc ZPPTR2+1
|
||||||
sta ZPPTR1+1
|
sta ZPPTR1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ VarLen.MAX .EQ 15
|
|||||||
|
|
||||||
CSH.Stack.MAX .EQ 15
|
CSH.Stack.MAX .EQ 15
|
||||||
CSH.Name.MAX .EQ 15
|
CSH.Name.MAX .EQ 15
|
||||||
CSH.E.SYNTAX .EQ $7F
|
CSH.E.SYNTAX .EQ $7F
|
||||||
CSH.E.SOVERFLW .EQ $7E
|
CSH.E.SOVERFLW .EQ $7E
|
||||||
CSH.E.NOVERFLW .EQ $7D
|
CSH.E.NOVERFLW .EQ $7D
|
||||||
CSH.E.OOM .EQ $7C
|
CSH.E.OOM .EQ $7C
|
||||||
@ -553,7 +553,7 @@ MSG.ECHO >CSTR ">%S\r\n"
|
|||||||
MSG.PSTRCR >CSTR "%S\r\n"
|
MSG.PSTRCR >CSTR "%S\r\n"
|
||||||
MSG.PSTR >CSTR "%S"
|
MSG.PSTR >CSTR "%S"
|
||||||
MSG.ERROR >CSTR "Err:%S [%h]\r\n"
|
MSG.ERROR >CSTR "Err:%S [%h]\r\n"
|
||||||
MSG.PRINTENV >CSTR "%S=%S\r\n"
|
MSG.PRINTENV >CSTR "%s=%s\r\n"
|
||||||
MSG.CSHERR >PSTR "Pos %D:"
|
MSG.CSHERR >PSTR "Pos %D:"
|
||||||
FMT.DATE >CSTR "%A, %B %d %Y"
|
FMT.DATE >CSTR "%A, %B %d %Y"
|
||||||
FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)"
|
FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)"
|
||||||
|
@ -12,31 +12,31 @@ AUTO 6
|
|||||||
* Y,A = PTR to Expanded String
|
* Y,A = PTR to Expanded String
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
||||||
|
|
||||||
.1 >STYA ZPPtr2
|
.1 >STYA ZPPtr2
|
||||||
stz K.ExpandStr.Len init Expanded String len=0
|
stz K.ExpandStr.Len init Expanded String len=0
|
||||||
stz K.ExpandStr.bFound No var found yet
|
stz K.ExpandStr.bFound No var found yet
|
||||||
|
|
||||||
stz K.ExpandStr.bNoExp Reset no expand flag
|
stz K.ExpandStr.bNoExp Reset no expand flag
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.10 stz K.ExpandStr.VarLen
|
.10 stz K.ExpandStr.VarLen
|
||||||
stz K.ExpandStr.bInVar
|
stz K.ExpandStr.bInVar
|
||||||
|
|
||||||
.11 lda (ZPPtr2),y End of CSTR?
|
.11 lda (ZPPtr2),y End of CSTR?
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
cmp #'''
|
cmp #'''
|
||||||
bne .21
|
bne .21
|
||||||
|
|
||||||
lda K.ExpandStr.bNoExp
|
lda K.ExpandStr.bNoExp
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta K.ExpandStr.bNoExp toggle flag
|
sta K.ExpandStr.bNoExp toggle flag
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.21 bit K.ExpandStr.bNoExp
|
.21 bit K.ExpandStr.bNoExp
|
||||||
bpl .23
|
bpl .23
|
||||||
|
|
||||||
@ -45,23 +45,23 @@ K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
|||||||
inx
|
inx
|
||||||
stx K.ExpandStr.Len
|
stx K.ExpandStr.Len
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.23 ldx K.ExpandStr.bInVar already in a var?
|
.23 ldx K.ExpandStr.bInVar already in a var?
|
||||||
bne .3 yes....
|
bne .3 yes...
|
||||||
|
|
||||||
cmp #'$' no, found one ?
|
cmp #'$' no, found one ?
|
||||||
bne .22 no, store....
|
bne .22 no, store...
|
||||||
|
|
||||||
sta K.ExpandStr.bFound Toggle flag
|
sta K.ExpandStr.bFound Toggle flag
|
||||||
sta K.ExpandStr.bInVar
|
sta K.ExpandStr.bInVar
|
||||||
|
|
||||||
bra .11 skip this char
|
bra .11 skip this char
|
||||||
|
|
||||||
.3 cmp #'{' we are in var, "{" after "$"?
|
.3 cmp #'{' we are in var, "{" after "$"?
|
||||||
bne .31
|
bne .31
|
||||||
ldx K.ExpandStr.VarLen No char in var yet ?
|
ldx K.ExpandStr.VarLen No char in var yet ?
|
||||||
beq .11 normal, "${" syntax is ok,skip
|
beq .11 normal, "${" syntax is ok,skip
|
||||||
|
|
||||||
bne .5 not allowed char in varname, end of var
|
bne .5 not allowed char in varname, end of var
|
||||||
|
|
||||||
.31 cmp #'}' end of var?
|
.31 cmp #'}' end of var?
|
||||||
@ -186,17 +186,17 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
|
|||||||
sta K.Buf256,y
|
sta K.Buf256,y
|
||||||
|
|
||||||
tya
|
tya
|
||||||
clc
|
sec
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
lda ZPPtr1+1
|
lda ZPPtr1+1
|
||||||
adc #0
|
adc #0
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
>LDYAI K.Buf256
|
>LDYAI K.Buf256
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
bra K.SetEnvPtr1Ptr2
|
bra K.SetEnvPtr1Ptr2
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
@ -207,76 +207,102 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
|
|||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.SetEnv jsr PullPtr1Ptr2 Ptr1=NAME,Ptr2=VALUE
|
K.SetEnv jsr PullPtr1Ptr2 Ptr1=NAME,Ptr2=VALUE
|
||||||
|
|
||||||
K.SetEnvPtr1Ptr2
|
K.SetEnvPtr1Ptr2
|
||||||
jsr S.UnsetEnvPtr1
|
jsr S.UnsetEnvPtr1
|
||||||
|
|
||||||
jsr ENV.InitEnvPtr3 ZPPtr3 -> Env
|
jsr ENV.InitEnvPtr3 ZPPtr3 -> Env
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
ldx #0
|
||||||
|
|
||||||
lda ZPPtr3 Compute ENV UPPER LIMIT in Ptr4
|
.10 lda (ZPPtr3) End of ENV
|
||||||
clc
|
beq .15
|
||||||
adc #K.ENV.SIZE
|
|
||||||
sta ZPPtr4
|
|
||||||
|
|
||||||
lda ZPPtr3+1
|
.11 iny Compute ENV size in X,Y
|
||||||
adc /K.ENV.SIZE
|
bne .12
|
||||||
sta ZPPtr4+1
|
inx
|
||||||
|
|
||||||
ldy ZPPtr3+1
|
.12 inc ZPPtr3
|
||||||
lda ZPPtr3 Compute New Env Upper limit in A,Y
|
bne .13
|
||||||
|
inc ZPPtr3+1
|
||||||
|
|
||||||
|
.13 lda (ZPPtr3) End of string
|
||||||
|
bne .11
|
||||||
|
|
||||||
|
iny
|
||||||
|
bne .14
|
||||||
|
inx
|
||||||
|
|
||||||
|
.14 inc ZPPtr3
|
||||||
|
bne .10
|
||||||
|
inc ZPPtr3+1
|
||||||
|
bra .10
|
||||||
|
|
||||||
|
.15 sty ZPPtr4
|
||||||
|
stx ZPPtr4+1
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.16 lda (ZPPtr1),y
|
||||||
|
beq .17
|
||||||
|
iny
|
||||||
|
bne .16
|
||||||
|
|
||||||
|
.17 tya
|
||||||
sec
|
sec
|
||||||
adc (ZPPtr1) add NAME len +1
|
adc ZPPtr4
|
||||||
bcc .1
|
sta ZPPtr4
|
||||||
iny
|
bcc .18
|
||||||
|
inc ZPPtr4+1
|
||||||
|
|
||||||
.1 sec
|
.18 ldy #0
|
||||||
adc (ZPPtr2) add VALUE len +1
|
|
||||||
bcc .2
|
.19 lda (ZPPtr2),y
|
||||||
|
beq .20
|
||||||
iny
|
iny
|
||||||
|
bne .19
|
||||||
|
|
||||||
.2 cmp ZPPtr4 GE than hMem Upper limit ?
|
.20 tya
|
||||||
tya
|
sec
|
||||||
sbc ZPPtr4+1
|
adc ZPPtr4
|
||||||
|
tax
|
||||||
|
bcc .21
|
||||||
|
inc ZPPtr4+1
|
||||||
|
|
||||||
|
.21 cpx #K.ENV.SIZE
|
||||||
|
lda ZPPtr4+1
|
||||||
|
sbc /K.ENV.SIZE
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
.3 lda (ZPPtr3) Scan until ending 0...
|
ldy #$ff
|
||||||
beq .4
|
|
||||||
|
.22 iny
|
||||||
inc ZPPtr3
|
lda (ZPPtr1),y
|
||||||
bne .3
|
sta (ZPPtr3),y
|
||||||
|
bne .22
|
||||||
|
|
||||||
|
tya
|
||||||
|
sec
|
||||||
|
adc ZPPtr3
|
||||||
|
sta ZPPtr3
|
||||||
|
bcc .23
|
||||||
inc ZPPtr3+1
|
inc ZPPtr3+1
|
||||||
bne .3
|
|
||||||
|
|
||||||
.4 lda (ZPPtr1)
|
.23 ldy #$ff
|
||||||
sta (ZPPtr3)
|
|
||||||
tay
|
.24 iny
|
||||||
|
lda (ZPPtr2),y
|
||||||
.5 lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
dey
|
bne .24
|
||||||
bne .5
|
|
||||||
|
iny
|
||||||
jsr ENV.NextEnvPtr3
|
.25 lda #0
|
||||||
|
sta (ZPPtr3),y don't forget array ending 0
|
||||||
lda (ZPPtr2)
|
|
||||||
sta (ZPPtr3)
|
|
||||||
tay
|
|
||||||
|
|
||||||
.6 lda (ZPPtr2),y
|
|
||||||
sta (ZPPtr3),y
|
|
||||||
dey
|
|
||||||
bne .6
|
|
||||||
|
|
||||||
jsr ENV.NextEnvPtr3
|
|
||||||
|
|
||||||
.8 lda #0
|
|
||||||
|
|
||||||
sta (ZPPtr3)
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #SYSMGR.ERRENVF
|
.99 lda #SYSMGR.ERRENVF
|
||||||
sec
|
* sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetEnv.YA
|
* # GetEnv.YA
|
||||||
@ -448,7 +474,7 @@ ENV.SysVarsExit2
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV
|
ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
beq .9 end of ENV
|
beq .9 end of ENV
|
||||||
|
|
||||||
@ -457,24 +483,24 @@ ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV
|
|||||||
.2 lda (ZPPtr1),y
|
.2 lda (ZPPtr1),y
|
||||||
cmp (ZPPtr3),y
|
cmp (ZPPtr3),y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ora #0
|
ora #0
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 jsr ENV.NextEnvPtr3 Skip NAME
|
.3 jsr ENV.NextEnvPtr3 Skip NAME
|
||||||
jsr ENV.NextEnvPtr3 Skip VALUE
|
jsr ENV.NextEnvPtr3 Skip VALUE
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ENV.DiscardVarPtr3
|
* ENV.DiscardVarPtr3
|
||||||
* In:
|
* In:
|
||||||
* ZPPtr3 -> ENV.NAME to Discard
|
* ZPPtr3 -> ENV.NAME to Discard
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -483,22 +509,29 @@ ENV.DiscardVarPtr3
|
|||||||
>STYA ZPPtr4
|
>STYA ZPPtr4
|
||||||
jsr ENV.NextEnvPtr3 Skip current NAME....
|
jsr ENV.NextEnvPtr3 Skip current NAME....
|
||||||
jsr ENV.NextEnvPtr3 Skip current VALUE....
|
jsr ENV.NextEnvPtr3 Skip current VALUE....
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda (ZPPtr3),y Move back CSTRs...
|
.1 lda (ZPPtr3),y Move back CSTRs...
|
||||||
|
|
||||||
.2 sta (ZPPtr4),y
|
.2 sta (ZPPtr4),y
|
||||||
beq .2 0 ended....
|
beq .3 0 ended....
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
inc ZPPtr3
|
inc ZPPtr3+1
|
||||||
inc ZPPtr4
|
inc ZPPtr4+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
lda (ZPPtr3),y
|
bne .4
|
||||||
bne .3 Until array ending 0
|
|
||||||
|
inc ZPPtr3+1
|
||||||
|
inc ZPPtr4+1
|
||||||
|
|
||||||
|
.4 lda (ZPPtr3),y
|
||||||
|
bne .2 Until array ending 0
|
||||||
|
sta (ZPPtr4),y
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.InitEnvPtr3 ldy #S.PS.hENV
|
ENV.InitEnvPtr3 ldy #S.PS.hENV
|
||||||
@ -513,30 +546,31 @@ ENV.NextEnvPtr3 ldy #0
|
|||||||
beq .2
|
beq .2
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.2 tya
|
.2 tya
|
||||||
sec
|
sec
|
||||||
adc ZPPtr3
|
adc ZPPtr3
|
||||||
sta ZPPtr3
|
sta ZPPtr3
|
||||||
bcc .8
|
bcc .8
|
||||||
inc ZPPtr3+1
|
inc ZPPtr3+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.AppendPtr3ToBuf
|
ENV.AppendPtr3ToBuf
|
||||||
ldx #$ff
|
ldx #$ff
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
lda K.Buf256,x
|
lda K.Buf256,x
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
ldy #0
|
ldy #$ff
|
||||||
|
dex
|
||||||
.2 lda (ZPPtr3),y
|
|
||||||
|
.2 iny
|
||||||
|
inx
|
||||||
|
lda (ZPPtr3),y
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
inx
|
|
||||||
stz K.Buf256,x
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -779,16 +779,27 @@ TskMgrInit >LDYAI MSG.TSK
|
|||||||
>MLICALL MLIGETPREFIX
|
>MLICALL MLIGETPREFIX
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYAI K.Buf256
|
ldy K.Buf256
|
||||||
jsr K.NewCStr.YA
|
iny
|
||||||
bcs .9
|
lda #0
|
||||||
|
jsr K.GetMem.YA
|
||||||
|
>STYA ZPPtr1
|
||||||
txa
|
txa
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
|
||||||
|
ldy K.Buf256
|
||||||
|
lda #0
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
.4 lda K.Buf256,y
|
||||||
|
dey
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
>PUSHW ZPPtr1 push ENV value = PREFIX
|
||||||
|
|
||||||
>PUSHWI K.Buf256 push ENV value
|
>PUSHWI I.ENV.A2osX push ENV name = A2OSX
|
||||||
>PUSHWI I.ENV.A2osX push ENV name
|
|
||||||
>SYSCALL SetEnv
|
>SYSCALL SetEnv
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -414,73 +414,7 @@ PullPtr1Ptr2 clc
|
|||||||
bcc .9
|
bcc .9
|
||||||
>PULLW ZPPtr3
|
>PULLW ZPPtr3
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
|
||||||
* # NewPStrYA
|
|
||||||
* Create a new copy of PSTR
|
|
||||||
* ## In:
|
|
||||||
* Y,A = PTR to buffer
|
|
||||||
* ## Out:
|
|
||||||
* CC : success
|
|
||||||
* Y,A = PTR to String
|
|
||||||
* X = hMem (PSTR)
|
|
||||||
* CS : error
|
|
||||||
* A = SYS error code
|
|
||||||
*\--------------------------------------
|
|
||||||
K.NewPStr.YA >STYA ZPPtr2
|
|
||||||
lda (ZPPtr2)
|
|
||||||
inc
|
|
||||||
tay
|
|
||||||
lda #0 Y,A = len of new string
|
|
||||||
jsr K.GetMem.YA
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
lda (ZPPtr2)
|
|
||||||
sta (ZPPtr1)
|
|
||||||
tay
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
.1 lda (ZPPtr2),y
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
dey
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.2 >LDYA ZPPtr1
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.NewCStr.YA >STYA ZPPtr1
|
|
||||||
lda (ZPPtr1)
|
|
||||||
inc
|
|
||||||
tay
|
|
||||||
lda #0 Y,A = len of new string
|
|
||||||
jsr K.GetMem.YA
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPPtr2
|
|
||||||
|
|
||||||
lda (ZPPtr1)
|
|
||||||
tay
|
|
||||||
phy
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
.1 lda (ZPPtr1),y
|
|
||||||
dey
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.2 ply
|
|
||||||
lda #0
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
@ -366,7 +366,7 @@ K.FreeMem.A phy
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>LDYAI K.FreeMem.A.ERR
|
>LDYAI K.FreeMem.A.ERR
|
||||||
jsr K.PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.91 ldx #$ff
|
.91 ldx #$ff
|
||||||
bit $C000,x
|
bit $C000,x
|
||||||
|
Loading…
x
Reference in New Issue
Block a user