mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-02 20:30:24 +00:00
Kernel 0.93+
This commit is contained in:
parent
cd69ff354c
commit
827bda1c4b
Binary file not shown.
@ -96,8 +96,17 @@ K.Expand jsr K.strdup
|
||||
bcs .70
|
||||
|
||||
jsr ENV.NextEnvP3Y Skip NAME=
|
||||
|
||||
.DO AUXENV=1
|
||||
sta SETREADAUX
|
||||
.FIN
|
||||
|
||||
jsr ENV.AddP3ToBuf Add VALUE
|
||||
|
||||
|
||||
.DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
.FIN
|
||||
|
||||
.70 lda (TXTPTR)
|
||||
beq .72
|
||||
|
||||
@ -329,8 +338,8 @@ K.SetEnv >PULLW FORPNT value
|
||||
>PULLW TXTPTR name
|
||||
|
||||
K.SetEnv.I jsr K.UnsetEnv.I
|
||||
|
||||
.1 jsr ENV.InitEnvP3 ZPPtr3 -> Env
|
||||
|
||||
.1 jsr ENV.InitEnvP3 ZPPtr3 -> Env (SETREADAUX)
|
||||
|
||||
lda #1
|
||||
sta ZPPtr4
|
||||
@ -338,18 +347,26 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
||||
|
||||
.10 lda (ZPPtr3) End of ENV
|
||||
beq .15
|
||||
|
||||
jsr ENV.GetP3LenY
|
||||
jsr ENV.NextEnvP3Y
|
||||
jsr ENV.NextEnvP4Y
|
||||
bra .10
|
||||
|
||||
.15 ldy #$ff
|
||||
.15 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
.FIN
|
||||
|
||||
ldy #$ff
|
||||
|
||||
.16 iny
|
||||
lda (TXTPTR),y
|
||||
bne .16
|
||||
beq .17
|
||||
|
||||
jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VAR
|
||||
jsr SHARED.IsIDValid
|
||||
bcc .16
|
||||
|
||||
.17 jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VAR
|
||||
|
||||
ldy #$ff
|
||||
|
||||
@ -375,7 +392,14 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
||||
pha
|
||||
ldy #S.PS.hENV
|
||||
lda (pPs),y
|
||||
|
||||
.DO AUXENV=1
|
||||
ldx #SYS.FreeStkObj
|
||||
jsr K.SYSCALL2.AUX
|
||||
.ELSE
|
||||
jsr K.Freemem
|
||||
.FIN
|
||||
|
||||
pla
|
||||
ldy #S.PS.hENV
|
||||
sta (pPs),y
|
||||
@ -386,6 +410,10 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
||||
|
||||
.22 ldy #$ff
|
||||
|
||||
.DO AUXENV=1
|
||||
sta SETWRITEAUX
|
||||
.FIN
|
||||
|
||||
.23 iny
|
||||
lda (TXTPTR),y
|
||||
sta (ZPPtr3),y
|
||||
@ -407,7 +435,12 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
||||
iny
|
||||
sta (ZPPtr3),y don't forget array ending 0
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
.9 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetEnv
|
||||
* searches the environment list to find the environment variable name,
|
||||
@ -425,6 +458,9 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
||||
*\--------------------------------------
|
||||
K.GetEnv >PULLW FORPNT value
|
||||
>PULLW TXTPTR name
|
||||
|
||||
lda TXTPTR
|
||||
beq K.GetEnvDump
|
||||
|
||||
jsr ENV.FindVarTXTPTR
|
||||
bcs .9
|
||||
@ -443,13 +479,22 @@ K.GetEnv >PULLW FORPNT value
|
||||
iny
|
||||
bne .2
|
||||
inc
|
||||
|
||||
.2 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
|
||||
.2 jsr K.getmem
|
||||
jsr K.getmem
|
||||
bcs .99
|
||||
|
||||
>STYA FORPNT
|
||||
|
||||
.3 .DO AUXENV=1
|
||||
sta SETREADAUX
|
||||
.FIN
|
||||
|
||||
.3 ldy #$ff
|
||||
ldy #$ff
|
||||
|
||||
.4 iny
|
||||
lda (ZPPtr3),y
|
||||
@ -457,6 +502,9 @@ K.GetEnv >PULLW FORPNT value
|
||||
bne .4
|
||||
|
||||
>LDYA FORPNT
|
||||
.DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
.FIN
|
||||
|
||||
clc
|
||||
rts
|
||||
@ -464,6 +512,9 @@ K.GetEnv >PULLW FORPNT value
|
||||
.9 >LDYAI 0
|
||||
* sec
|
||||
.99 rts
|
||||
|
||||
K.GetEnvDump sec
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # UnsetEnv
|
||||
* Remove an environment variable
|
||||
@ -482,6 +533,7 @@ K.UnsetEnv.I jsr ENV.FindVarTXTPTR
|
||||
|
||||
jsr ENV.DelVarP3 Ptr3 -> NAME=VALUE
|
||||
K.UnsetEnv.I.8 clc
|
||||
|
||||
K.UnsetEnv.I.9 rts
|
||||
*--------------------------------------
|
||||
* ENV.FindVarTXTPTR
|
||||
@ -497,6 +549,11 @@ K.UnsetEnv.I.9 rts
|
||||
* ZPPtr3 -> PTR to Ending 0
|
||||
*--------------------------------------
|
||||
ENV.FindVarTXTPTR
|
||||
.DO AUXENV=1
|
||||
sta SETREADAUX
|
||||
sta SETWRITEAUX
|
||||
.FIN
|
||||
|
||||
jsr ENV.InitEnvP3 Store ENV
|
||||
|
||||
.1 lda (ZPPtr3)
|
||||
@ -505,7 +562,11 @@ ENV.FindVarTXTPTR
|
||||
ldy #$ff
|
||||
|
||||
.2 iny
|
||||
.DO AUXENV=1
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
.ELSE
|
||||
lda (TXTPTR),y
|
||||
.FIN
|
||||
beq .3
|
||||
|
||||
jsr SHARED.IsIDValid
|
||||
@ -520,20 +581,32 @@ ENV.FindVarTXTPTR
|
||||
cmp #'='
|
||||
bne .4
|
||||
|
||||
.DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
clc
|
||||
rts
|
||||
|
||||
.4 jsr ENV.NextEnvP3 Skip NAME=VALUE
|
||||
bra .1
|
||||
|
||||
.9 sec
|
||||
.9 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
* ENV.DelVarP3
|
||||
* In:
|
||||
* ZPPtr3 -> ENV.NAME to Discard
|
||||
*--------------------------------------
|
||||
ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr
|
||||
ENV.DelVarP3 .DO AUXENV=1
|
||||
sta SETREADAUX
|
||||
sta SETWRITEAUX
|
||||
.FIN
|
||||
>LDYA ZPPtr3 save actual Ptr
|
||||
>STYA ZPPtr4
|
||||
jsr ENV.NextEnvP3 Skip NAME=VALUE
|
||||
|
||||
@ -543,14 +616,29 @@ ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr
|
||||
lda (ZPPtr3),y Move back CSTRs...
|
||||
sta (ZPPtr4),y
|
||||
bne .2
|
||||
|
||||
tya
|
||||
beq ENV.InitEnvP3.RTS we moved back ending \0
|
||||
|
||||
beq .8 we moved back ending \0
|
||||
|
||||
jsr ENV.NextEnvP3Y
|
||||
jsr ENV.NextEnvP4Y
|
||||
bra .1
|
||||
|
||||
.8 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
rts
|
||||
*--------------------------------------
|
||||
ENV.InitEnvP3 ldy #S.PS.hENV
|
||||
ENV.InitEnvP3 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
.FIN
|
||||
ldy #S.PS.hENV
|
||||
lda (pPs),y
|
||||
.DO AUXENV=1
|
||||
sta SETREADAUX
|
||||
.FIN
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr3 Store ENV
|
||||
ENV.InitEnvP3.RTS
|
||||
@ -591,7 +679,22 @@ ENV.Dup ldy #S.PS.ENVPAGECNT
|
||||
lda (pPs),y
|
||||
|
||||
ENV.Dup.A sta .8+1 Store target page Count
|
||||
|
||||
ldy #S.PS.ENVPAGECNT get SOURCE page count
|
||||
lda (pPs),y
|
||||
sta .10+1
|
||||
|
||||
ldy #S.PS.hENV
|
||||
lda (pPs),y
|
||||
.DO AUXENV=1
|
||||
sta SETREADAUX
|
||||
sta SETWRITEAUX
|
||||
.FIN
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
|
||||
ldy #0
|
||||
lda .8+1
|
||||
jsr K.GetMem
|
||||
bcs .9
|
||||
|
||||
@ -599,17 +702,9 @@ ENV.Dup.A sta .8+1 Store target page Count
|
||||
phx save hMem
|
||||
jsr Mem.SetOwner Set Ownership
|
||||
|
||||
ldy #S.PS.ENVPAGECNT get SOURCE page count
|
||||
lda (pPs),y
|
||||
tax
|
||||
|
||||
iny #S.PS.hENV
|
||||
lda (pPs),y
|
||||
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
|
||||
ldy #0
|
||||
|
||||
.10 ldx #$ff SELF MODIFIED
|
||||
|
||||
.1 lda $ffff,y SELF MODIFIED
|
||||
.2 sta $ffff,y SELF MODIFIED
|
||||
@ -624,7 +719,12 @@ ENV.Dup.A sta .8+1 Store target page Count
|
||||
.8 ldx #$ff SELF MODIFIED Target Page Count
|
||||
pla hMem
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
.9 .DO AUXENV=1
|
||||
sta CLRREADAUX
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.ENV
|
||||
|
@ -734,6 +734,10 @@ DevMgrInit.USR ldx #4
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
DevMgrInit.BLK ldx #6
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
DevMgrInit.REMAP
|
||||
ldx #10
|
||||
*--------------------------------------
|
||||
>LDYAI DRV.BlkDevice
|
||||
bra DevMgrInit.AddBDev
|
||||
@ -744,9 +748,6 @@ DevMgrInit.SP ldy #$ff
|
||||
adc #3 Compute smartport entry point
|
||||
sta FD.BDEV+S.FD.DEV.BUSPTR
|
||||
ldx #8
|
||||
.HS 2C BIT ABS
|
||||
DevMgrInit.REMAP
|
||||
ldx #10
|
||||
>LDYAI DRV.SmartPort
|
||||
*--------------------------------------
|
||||
DevMgrInit.AddBDev
|
||||
@ -1016,15 +1017,25 @@ TskMgrInit >LDYAI MSG.TSK
|
||||
|
||||
iny #S.PS.hENV
|
||||
sta (pPs),y
|
||||
|
||||
.DO AUXENV=1
|
||||
sta SETWRITEAUX
|
||||
.FIN
|
||||
lda #0
|
||||
sta (ZPPtr1) make sure blank!!
|
||||
|
||||
.DO AUXENV=1
|
||||
sta CLRWRITEAUX
|
||||
.FIN
|
||||
|
||||
>LDYAI $2E0 Get ROOT from QC
|
||||
>SYSCALL2 strdup
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
ldy #S.PS.hCWD
|
||||
sta (pPs),y
|
||||
|
||||
>PUSHWI I.ENV.BOOT
|
||||
>PUSHWI $2C0 Get BOOT from QC
|
||||
>SYSCALL2 SetEnv
|
||||
|
Loading…
x
Reference in New Issue
Block a user