mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-10 00:29:09 +00:00
Kernel 0.93++
This commit is contained in:
parent
ddf079965d
commit
dc10f1715e
Binary file not shown.
104
BIN/SH.S.HIS.txt
104
BIN/SH.S.HIS.txt
@ -19,117 +19,67 @@ HIS.Init >LDYAI HISTORY.MAX Get a buffer for History
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.Add >LDA.G HIS.hBuf
|
HIS.Add >LDA.G HIS.hBuf
|
||||||
beq .9
|
beq .9
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPPTR1
|
|
||||||
|
|
||||||
.10 lda #$ff
|
>PUSHA
|
||||||
jsr HIS.GetA Y=ending 0
|
>PUSHW ZPCLBuf
|
||||||
phy
|
>SYSCALL StrVAdd
|
||||||
tya
|
bcc .1
|
||||||
sec add len+1
|
|
||||||
>ADC.G CL.Len CmdBuffer length
|
>PUSHB.G HIS.hBuf
|
||||||
pla
|
lda #0
|
||||||
bcc .2 enough room
|
>PUSHA
|
||||||
jsr GetPtr1LenY get len of oldest string
|
>SYSCALL StrVShift
|
||||||
tya
|
|
||||||
* sec
|
|
||||||
adc ZPPTR1
|
|
||||||
sta ZPPTR2
|
|
||||||
lda ZPPTR1+1
|
|
||||||
adc #0
|
|
||||||
sta ZPPTR2+1
|
|
||||||
ldy #$FF
|
|
||||||
.1 iny
|
|
||||||
lda (ZPPTR2),y move back until String ending 0 found
|
|
||||||
sta (ZPPTR1),y
|
|
||||||
bne .1
|
|
||||||
iny
|
|
||||||
lda (ZPPTR2),y move back until Array ending 0 found
|
|
||||||
sta (ZPPTR1),y
|
|
||||||
bne .1
|
|
||||||
>DEC.G HIS.Count
|
>DEC.G HIS.Count
|
||||||
bra .10 retry....
|
bra HIS.Add
|
||||||
.2 jsr AddAPtr1 A = ending O offset
|
|
||||||
|
|
||||||
ldy #$ff
|
.1 >STZ.G HIS.Index Reset Index
|
||||||
.4 iny
|
|
||||||
lda (ZPCLBuf),y
|
|
||||||
sta (ZPPTR1),y
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
iny
|
|
||||||
sta (ZPPTR1),y set new array ending 0
|
|
||||||
* lda #0
|
|
||||||
>STA.G HIS.Index Reset Index
|
|
||||||
>INC.G HIS.Count
|
>INC.G HIS.Count
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.GetPrev >LDA.G HIS.hBuf
|
HIS.GetPrev >LDA.G HIS.hBuf
|
||||||
beq HISTORY.RTS
|
beq HISTORY.RTS
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPPTR1
|
|
||||||
>LDA.G HIS.Count
|
>LDA.G HIS.Count
|
||||||
beq HISTORY.RTS empty history,nothing to do
|
beq HISTORY.RTS empty history,nothing to do
|
||||||
|
|
||||||
>LDA.G HIS.Index
|
>LDA.G HIS.Index
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDA.G HIS.Count
|
>LDA.G HIS.Count
|
||||||
.1 dec
|
.1 dec
|
||||||
>STA.G HIS.Index
|
bra HIS.GetToCl
|
||||||
bra HIS.SetA
|
|
||||||
|
|
||||||
History.RTS rts
|
History.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.GetNext >LDA.G HIS.hBuf
|
HIS.GetNext >LDA.G HIS.hBuf
|
||||||
beq HISTORY.RTS
|
beq HISTORY.RTS
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPPTR1
|
|
||||||
|
|
||||||
>LDA.G HIS.Count
|
>LDA.G HIS.Count
|
||||||
beq HISTORY.RTS empty history,nothing to do
|
beq HISTORY.RTS empty history,nothing to do
|
||||||
|
|
||||||
>LDA.G HIS.Index
|
>LDA.G HIS.Index
|
||||||
inc
|
inc
|
||||||
>CMP.G HIS.Count
|
>CMP.G HIS.Count
|
||||||
bne .1
|
bne HIS.GetToCl
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
>STA.G HIS.Index
|
>STA.G HIS.Index
|
||||||
jmp CL.CLR
|
jmp CL.CLR
|
||||||
.1 >STA.G HIS.Index
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.SetA jsr HIS.GetA
|
HIS.GetToCl >STA.G HIS.Index
|
||||||
|
|
||||||
tya
|
|
||||||
jsr AddAPtr1
|
|
||||||
jsr CL.CLR
|
jsr CL.CLR
|
||||||
ldy #$ff
|
|
||||||
.2 iny
|
>PUSHB.G HIS.hBuf
|
||||||
lda (ZPPTR1),y
|
>PUSHB.G HIS.Index
|
||||||
sta (ZPCLBuf),y
|
>PUSHW ZPCLBuf
|
||||||
bne .2
|
|
||||||
tya
|
>SYSCALL StrVGet
|
||||||
>STA.G CL.Ptr
|
|
||||||
|
>STZ.G CL.Ptr
|
||||||
>STA.G CL.Len
|
>STA.G CL.Len
|
||||||
jmp CL.PrintCLBuf
|
jmp CL.PrintCLBuf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.GetA ldy #0
|
|
||||||
tax
|
|
||||||
beq .80
|
|
||||||
lda (ZPPTR1),y
|
|
||||||
beq .9
|
|
||||||
.1 iny
|
|
||||||
lda (ZPPTR1),y
|
|
||||||
bne .1
|
|
||||||
dex
|
|
||||||
beq .8
|
|
||||||
iny
|
|
||||||
lda (ZPPTR1),y
|
|
||||||
bne .1
|
|
||||||
.9 sec Found ending 0....
|
|
||||||
rts
|
|
||||||
.8 iny
|
|
||||||
|
|
||||||
.80 clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/SH.S.HIS
|
SAVE USR/SRC/BIN/SH.S.HIS
|
||||||
LOAD USR/SRC/BIN/SH.S
|
LOAD USR/SRC/BIN/SH.S
|
||||||
|
@ -266,9 +266,9 @@ SYS.Kill .EQ $A6
|
|||||||
SYS.LoadFile .EQ $A8
|
SYS.LoadFile .EQ $A8
|
||||||
SYS.LoadTxtFile .EQ $AA
|
SYS.LoadTxtFile .EQ $AA
|
||||||
SYS.GetMemStat .EQ $AC
|
SYS.GetMemStat .EQ $AC
|
||||||
SYS.StrVDup .EQ $AE
|
* .EQ $AE
|
||||||
|
|
||||||
SYS.StrVGet .EQ $B0
|
* .EQ $B0
|
||||||
SYS.ArgV .EQ $B2
|
SYS.ArgV .EQ $B2
|
||||||
SYS.Expand .EQ $B4
|
SYS.Expand .EQ $B4
|
||||||
SYS.FileSearch .EQ $B6
|
SYS.FileSearch .EQ $B6
|
||||||
@ -293,10 +293,10 @@ SYS.GetPWName .EQ $D2
|
|||||||
SYS.PutPW .EQ $D4
|
SYS.PutPW .EQ $D4
|
||||||
SYS.FlushEtcPasswd .EQ $D6
|
SYS.FlushEtcPasswd .EQ $D6
|
||||||
|
|
||||||
* .EQ $D8
|
SYS.StrVShift .EQ $D8
|
||||||
* .EQ $DA
|
SYS.StrVGet .EQ $DA
|
||||||
* .EQ $DC
|
SYS.StrVAdd .EQ $DC
|
||||||
* .EQ $DE
|
SYS.StrVDup .EQ $DE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.GetMem .EQ $E0
|
SYS.GetMem .EQ $E0
|
||||||
SYS.Realloc .EQ $E2
|
SYS.Realloc .EQ $E2
|
||||||
|
@ -2,7 +2,6 @@ NEW
|
|||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
AUXPIPE .EQ 1
|
AUXPIPE .EQ 1
|
||||||
AUXENV .EQ 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPKERNEL .EQ $0
|
ZPKERNEL .EQ $0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -353,9 +353,7 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
|||||||
jsr ENV.NextEnvP4Y
|
jsr ENV.NextEnvP4Y
|
||||||
bra .10
|
bra .10
|
||||||
|
|
||||||
.15 .DO AUXENV=1
|
.15 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
.FIN
|
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
@ -395,12 +393,8 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
|||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
ldx #SYS.FreeStkObj
|
ldx #SYS.FreeStkObj
|
||||||
jsr K.SYSCALL2.AUX
|
jsr K.SYSCALL2.AUX
|
||||||
.ELSE
|
|
||||||
jsr K.Freemem
|
|
||||||
.FIN
|
|
||||||
|
|
||||||
pla hEnv
|
pla hEnv
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
@ -412,9 +406,7 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
|||||||
|
|
||||||
.22 ldy #$ff
|
.22 ldy #$ff
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
.23 iny
|
.23 iny
|
||||||
lda (TXTPTR),y
|
lda (TXTPTR),y
|
||||||
@ -438,10 +430,8 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
|||||||
sta (ZPPtr3),y don't forget array ending 0
|
sta (ZPPtr3),y don't forget array ending 0
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 .DO AUXENV=1
|
.9 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetEnv
|
* # GetEnv
|
||||||
@ -461,8 +451,34 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
|||||||
K.GetEnv >PULLW FORPNT value
|
K.GetEnv >PULLW FORPNT value
|
||||||
>PULLW TXTPTR name
|
>PULLW TXTPTR name
|
||||||
|
|
||||||
K.GetEnv.I lda TXTPTR
|
K.GetEnv.I ldy #S.PS.hENV
|
||||||
beq K.GetEnvDump
|
lda (pPs),y
|
||||||
|
tax
|
||||||
|
|
||||||
|
ldy TXTPTR+1
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
sta SETREADAUX
|
||||||
|
jsr MEM.GetMemByID
|
||||||
|
|
||||||
|
ldy #S.MEM.LEN
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
ply
|
||||||
|
sta CLRREADAUX
|
||||||
|
|
||||||
|
jmp MEM.CopyToMain
|
||||||
|
|
||||||
|
.10
|
||||||
|
* sta SETREADAUX
|
||||||
|
* sta SETWRITEAUX
|
||||||
|
* stx ENVX.hEnv
|
||||||
|
* jsr ENVX.GetEnv
|
||||||
|
* sta CLRREADAUX
|
||||||
|
* sta CLRWRITEAUX
|
||||||
|
* rts
|
||||||
|
|
||||||
jsr ENV.FindVar
|
jsr ENV.FindVar
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -474,35 +490,27 @@ K.GetEnv.I lda TXTPTR
|
|||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .2
|
bne .2
|
||||||
inc
|
inc
|
||||||
|
|
||||||
.2 .DO AUXENV=1
|
.2 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
jsr K.getmem
|
jsr K.getmem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA FORPNT
|
>STYA FORPNT
|
||||||
|
|
||||||
.3 .DO AUXENV=1
|
.3 sta SETREADAUX
|
||||||
sta SETREADAUX
|
|
||||||
.FIN
|
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
@ -512,9 +520,7 @@ K.GetEnv.I lda TXTPTR
|
|||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
>LDYA FORPNT
|
>LDYA FORPNT
|
||||||
.DO AUXENV=1
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -522,42 +528,6 @@ K.GetEnv.I lda TXTPTR
|
|||||||
.9 >LDYAI 0
|
.9 >LDYAI 0
|
||||||
* sec
|
* sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
K.GetEnvDump ldy #S.PS.ENVPAGECNT
|
|
||||||
lda (pPs),y
|
|
||||||
sta .1+1
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
jsr K.getmem
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA FORPNT
|
|
||||||
sty .80+1
|
|
||||||
sta .81+1
|
|
||||||
stx .82+1
|
|
||||||
|
|
||||||
jsr ENV.InitEnvP3 SETREADAUX
|
|
||||||
|
|
||||||
.1 ldx #$ff SELF MODIFIED
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.2 lda (ZPPtr3),y
|
|
||||||
sta (FORPNT),y
|
|
||||||
iny
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
|
|
||||||
.80 ldy #$ff SELF MODIFIED
|
|
||||||
.81 lda #$ff SELF MODIFIED
|
|
||||||
.82 ldx #$ff SELF MODIFIED
|
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta CLRREADAUX
|
|
||||||
.FIN
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # UnsetEnv
|
* # UnsetEnv
|
||||||
* Remove an environment variable
|
* Remove an environment variable
|
||||||
@ -591,10 +561,8 @@ K.UnsetEnv.I jsr ENV.FindVar
|
|||||||
* ZPPtr3 -> PTR to Ending 0
|
* ZPPtr3 -> PTR to Ending 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.FindVar
|
ENV.FindVar
|
||||||
.DO AUXENV=1
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
jsr ENV.InitEnvP3 Store ENV
|
jsr ENV.InitEnvP3 Store ENV
|
||||||
|
|
||||||
@ -604,11 +572,7 @@ ENV.FindVar
|
|||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
.DO AUXENV=1
|
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTR.GetY
|
||||||
.ELSE
|
|
||||||
lda (TXTPTR),y
|
|
||||||
.FIN
|
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
@ -623,20 +587,16 @@ ENV.FindVar
|
|||||||
cmp #'='
|
cmp #'='
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 jsr ENV.NextEnvP3 Skip NAME=VALUE
|
.4 jsr ENV.NextEnvP3 Skip NAME=VALUE
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 .DO AUXENV=1
|
.9 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -644,10 +604,8 @@ ENV.FindVar
|
|||||||
* In:
|
* In:
|
||||||
* ZPPtr3 -> ENV.NAME to Discard
|
* ZPPtr3 -> ENV.NAME to Discard
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.DelVarP3 .DO AUXENV=1
|
ENV.DelVarP3 sta SETREADAUX
|
||||||
sta SETREADAUX
|
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
.FIN
|
|
||||||
>LDYA ZPPtr3 save actual Ptr
|
>LDYA ZPPtr3 save actual Ptr
|
||||||
>STYA ZPPtr4
|
>STYA ZPPtr4
|
||||||
jsr ENV.NextEnvP3 Skip NAME=VALUE
|
jsr ENV.NextEnvP3 Skip NAME=VALUE
|
||||||
@ -667,20 +625,14 @@ ENV.DelVarP3 .DO AUXENV=1
|
|||||||
jsr ENV.NextEnvP4Y
|
jsr ENV.NextEnvP4Y
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 .DO AUXENV=1
|
.8 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.InitEnvP3 .DO AUXENV=1
|
ENV.InitEnvP3 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
.FIN
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
.DO AUXENV=1
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
.FIN
|
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPPtr3 Store ENV
|
>STYA ZPPtr3 Store ENV
|
||||||
|
|
||||||
@ -728,10 +680,8 @@ ENV.Dup.A sta .8+1 Store target page Count
|
|||||||
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
.DO AUXENV=1
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
.FIN
|
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA .1+1
|
>STYA .1+1
|
||||||
|
|
||||||
@ -762,10 +712,8 @@ ENV.Dup.A sta .8+1 Store target page Count
|
|||||||
pla hMem
|
pla hMem
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 .DO AUXENV=1
|
.9 sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ENVX.hEnv .BS 1
|
||||||
|
*--------------------------------------
|
||||||
ENVX.PutEnv ldy #$ff
|
ENVX.PutEnv ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
@ -70,7 +72,7 @@ ENVX.SetEnv jsr ENVX.UnsetEnv
|
|||||||
bcs .22 env is large enough
|
bcs .22 env is large enough
|
||||||
|
|
||||||
lda ZPPtr4+1
|
lda ZPPtr4+1
|
||||||
jsr ENV.Dup.A
|
jsr ENVX.Dup.A
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
pha
|
pha
|
||||||
@ -113,10 +115,7 @@ ENVX.SetEnv jsr ENVX.UnsetEnv
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENVX.GetEnv lda TXTPTR
|
ENVX.GetEnv jsr ENVX.FindVar
|
||||||
beq ENVX.Dump
|
|
||||||
|
|
||||||
jsr ENVX.FindVar
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr ENVX.NextEnvP3Y Skip NAME=
|
jsr ENVX.NextEnvP3Y Skip NAME=
|
||||||
@ -162,55 +161,11 @@ ENVX.GetEnv lda TXTPTR
|
|||||||
* sec
|
* sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENVX.Dump sta CLRREADAUX
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
|
|
||||||
ldy #S.PS.ENVPAGECNT
|
|
||||||
lda (pPs),y
|
|
||||||
sta .1+1
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
jsr K.getmem
|
|
||||||
|
|
||||||
sta SETREADAUX
|
|
||||||
sta SETWRITEAUX
|
|
||||||
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA FORPNT
|
|
||||||
sty .80+1
|
|
||||||
sta .81+1
|
|
||||||
stx .82+1
|
|
||||||
|
|
||||||
jsr ENV.InitEnvP3 SETREADAUX
|
|
||||||
|
|
||||||
.1 ldx #$ff SELF MODIFIED
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.2 lda (ZPPtr3),y
|
|
||||||
jsr SHARED.FORPNT.PutY
|
|
||||||
iny
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
inc ZPPtr3+1
|
|
||||||
inc FORPNT+1
|
|
||||||
|
|
||||||
dex
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
.80 ldy #$ff SELF MODIFIED
|
|
||||||
.81 lda #$ff SELF MODIFIED
|
|
||||||
.82 ldx #$ff SELF MODIFIED
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
ENVX.UnsetEnv jsr ENVX.FindVar
|
ENVX.UnsetEnv jsr ENVX.FindVar
|
||||||
bcs . 8 not found, quit
|
bcs .8 not found, quit
|
||||||
|
|
||||||
jsr ENVX.DelVarP3 Ptr3 -> NAME=VALUE
|
jsr ENVX.DelVarP3 Ptr3 -> NAME=VALUE
|
||||||
clc
|
.8 clc
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -283,10 +238,7 @@ ENVX.DelVarP3 >LDYA ZPPtr3 save actual Ptr
|
|||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENVX.InitEnvP3 sta CLRREADAUX
|
ENVX.InitEnvP3 lda ENVX.hEnv
|
||||||
ldy #S.PS.hENV
|
|
||||||
lda (pPs),y
|
|
||||||
sta SETREADAUX
|
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPPtr3 Store ENV
|
>STYA ZPPtr3 Store ENV
|
||||||
|
|
||||||
@ -323,10 +275,10 @@ ENVX.NextEnvP4Y tya
|
|||||||
* A = hMem to new ENV
|
* A = hMem to new ENV
|
||||||
* X = Page Count
|
* X = Page Count
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.Dup ldy #S.PS.ENVPAGECNT
|
ENVX.Dup ldy #S.PS.ENVPAGECNT
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
|
|
||||||
ENV.Dup.A sta .8+1 Store target page Count
|
ENVX.Dup.A sta .8+1 Store target page Count
|
||||||
|
|
||||||
ldy #S.PS.ENVPAGECNT get SOURCE page count
|
ldy #S.PS.ENVPAGECNT get SOURCE page count
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
|
@ -992,12 +992,8 @@ TskMgrInit >LDYAI MSG.TSK
|
|||||||
>SYSCALL2 puts
|
>SYSCALL2 puts
|
||||||
|
|
||||||
>LDYAI K.ENV.SIZE get a buffer for ENV
|
>LDYAI K.ENV.SIZE get a buffer for ENV
|
||||||
.DO AUXENV=1
|
|
||||||
ldx #SYS.NewStkObj
|
ldx #SYS.NewStkObj
|
||||||
jsr K.SYSCALL2.AUX Buffer in AUX mem
|
jsr K.SYSCALL2.AUX Buffer in AUX mem
|
||||||
.ELSE
|
|
||||||
jsr K.GetMem
|
|
||||||
.FIN
|
|
||||||
bcs EvtMgrInit.RTS
|
bcs EvtMgrInit.RTS
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
ldy #S.PS.ENVPAGECNT
|
ldy #S.PS.ENVPAGECNT
|
||||||
@ -1009,15 +1005,11 @@ TskMgrInit >LDYAI MSG.TSK
|
|||||||
iny #S.PS.hENV
|
iny #S.PS.hENV
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
.FIN
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPPtr1) make sure blank!!
|
sta (ZPPtr1) make sure blank!!
|
||||||
|
|
||||||
.DO AUXENV=1
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
|
||||||
|
|
||||||
>LDYAI $2E0 Get ROOT from QC
|
>LDYAI $2E0 Get ROOT from QC
|
||||||
>SYSCALL2 strdup
|
>SYSCALL2 strdup
|
||||||
|
@ -104,9 +104,9 @@ K.SYSCALL .DA 0 $00
|
|||||||
.DA K.LoadFile
|
.DA K.LoadFile
|
||||||
.DA K.LoadTxtFile
|
.DA K.LoadTxtFile
|
||||||
.DA K.GetMemStat
|
.DA K.GetMemStat
|
||||||
.DA K.StrVDup
|
.DA 0
|
||||||
|
|
||||||
.DA K.StrVGet $B0
|
.DA 0 $B0
|
||||||
.DA K.ArgV
|
.DA K.ArgV
|
||||||
.DA K.Expand
|
.DA K.Expand
|
||||||
.DA K.FileSearch
|
.DA K.FileSearch
|
||||||
@ -128,10 +128,10 @@ K.SYSCALL .DA 0 $00
|
|||||||
.DA K.GetPWName
|
.DA K.GetPWName
|
||||||
.DA K.PutPW
|
.DA K.PutPW
|
||||||
.DA K.FlushEtcPasswd
|
.DA K.FlushEtcPasswd
|
||||||
.DA 0
|
.DA K.StrVShift
|
||||||
.DA 0
|
.DA K.StrVGet
|
||||||
.DA 0
|
.DA K.StrVAdd
|
||||||
.DA 0 X.OSD
|
.DA K.StrVDup
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $E000
|
* $E000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -386,13 +386,13 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
|||||||
.DA #$80
|
.DA #$80
|
||||||
.DA #0 PWD
|
.DA #0 PWD
|
||||||
.DA #$80
|
.DA #$80
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #0 StrV
|
||||||
.DA #$80
|
.DA #$80
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #0
|
||||||
.DA #$80
|
.DA #$80
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #0
|
||||||
.DA #$80
|
.DA #$80
|
||||||
.DA #$C0 Off Screen Driver
|
.DA #0
|
||||||
.DA #$80
|
.DA #$80
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA #0 $E0 : MemMgr at $E000
|
.DA #0 $E0 : MemMgr at $E000
|
||||||
|
@ -29,13 +29,14 @@ K.Realloc ldy #2 src hMem
|
|||||||
|
|
||||||
ldy #S.MEM.LEN
|
ldy #S.MEM.LEN
|
||||||
lda (ZPMemMgrSPtr),y
|
lda (ZPMemMgrSPtr),y
|
||||||
sta .2+1
|
|
||||||
pha
|
pha
|
||||||
iny
|
iny
|
||||||
lda (ZPMemMgrSPtr),y
|
lda (ZPMemMgrSPtr),y
|
||||||
sta .3+1
|
|
||||||
ply
|
ply
|
||||||
|
|
||||||
|
sty .2+1
|
||||||
|
sta .3+1
|
||||||
|
|
||||||
jsr MEM.MoveToAux x = Src hMem, YA = LEN
|
jsr MEM.MoveToAux x = Src hMem, YA = LEN
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -498,8 +499,12 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0
|
|||||||
* none.
|
* none.
|
||||||
* (X,Y unmodified)
|
* (X,Y unmodified)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
MEM.MoveToMain stx .1+1 Save AUX hMem
|
MEM.CopyToMain clc
|
||||||
>STYA A2L Save LEN to move
|
.HS B0 BCS
|
||||||
|
MEM.MoveToMain sec
|
||||||
|
ror .1+1
|
||||||
|
stx .2+1 Save AUX hMem
|
||||||
|
>STYA A2L Save LEN to copy/move
|
||||||
|
|
||||||
jsr K.GetMem
|
jsr K.GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -507,7 +512,7 @@ MEM.MoveToMain stx .1+1 Save AUX hMem
|
|||||||
stx .8+1 Save MAIN hMem
|
stx .8+1 Save MAIN hMem
|
||||||
>STYA A4L Save MAIN Ptr
|
>STYA A4L Save MAIN Ptr
|
||||||
|
|
||||||
lda .1+1
|
lda .2+1
|
||||||
>SYSCALL2 GetStkObjPtr
|
>SYSCALL2 GetStkObjPtr
|
||||||
>STYA A1L Save AUX base Ptr
|
>STYA A1L Save AUX base Ptr
|
||||||
pha Add Allocated LEN
|
pha Add Allocated LEN
|
||||||
@ -523,10 +528,14 @@ MEM.MoveToMain stx .1+1 Save AUX hMem
|
|||||||
jsr AuxMove
|
jsr AuxMove
|
||||||
|
|
||||||
.1 lda #$ff SELF MODIFIED
|
.1 lda #$ff SELF MODIFIED
|
||||||
|
bpl .8
|
||||||
|
|
||||||
|
.2 lda #$ff SELF MODIFIED
|
||||||
>SYSCALL2 FreeStkObj release AUX memory
|
>SYSCALL2 FreeStkObj release AUX memory
|
||||||
|
|
||||||
.8 ldx #$ff Returns MAIN hMem
|
.8 ldx #$ff Returns MAIN hMem
|
||||||
* clc
|
txa
|
||||||
|
jmp K.GetMemPtr Y,A = Ptr
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -581,12 +581,8 @@ K.Kill.2 ldy #S.PS.hSID
|
|||||||
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
.DO AUXENV=1
|
|
||||||
ldx #SYS.FreeStkObj
|
ldx #SYS.FreeStkObj
|
||||||
jsr K.SYSCALL2.AUX
|
jsr K.SYSCALL2.AUX
|
||||||
.ELSE
|
|
||||||
jsr K.Freemem
|
|
||||||
.FIN
|
|
||||||
|
|
||||||
ldx #4
|
ldx #4
|
||||||
|
|
||||||
|
@ -43,14 +43,14 @@ K.StrVShift >PULLA index
|
|||||||
* CC: Y,A = Ptr
|
* CC: Y,A = Ptr
|
||||||
* CS: Y,A = NULL
|
* CS: Y,A = NULL
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrVGet >PULLW ZPPtr2 ptr
|
K.StrVGet >PULLW FORPNT ptr
|
||||||
|
|
||||||
>PULLA index
|
>PULLA index
|
||||||
eor #$ff
|
eor #$ff
|
||||||
tax
|
tax
|
||||||
|
|
||||||
>PULLA
|
>PULLA
|
||||||
>SYSCALL GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPPtr1 strV
|
>STYA ZPPtr1 strV
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
@ -63,20 +63,22 @@ K.StrVGet >PULLW ZPPtr2 ptr
|
|||||||
|
|
||||||
.2 lda (ZPPtr1)
|
.2 lda (ZPPtr1)
|
||||||
tay
|
tay
|
||||||
sec
|
bne .3
|
||||||
beq .9 Y,A = 0
|
|
||||||
|
|
||||||
lda ZPPtr2+1
|
sec
|
||||||
|
rts Y,A = 0
|
||||||
|
|
||||||
|
.3 lda FORPNT+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.4 ldy #$ff
|
.4 ldy #$ff
|
||||||
|
|
||||||
.5 iny
|
.5 iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta (ZPPtr2),y
|
sta (FORPNT),y
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
>LDYA ZPPtr2
|
>LDYA FORPNT
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -93,7 +95,7 @@ K.StrVGet >PULLW ZPPtr2 ptr
|
|||||||
* CC : str added to hSTRV
|
* CC : str added to hSTRV
|
||||||
* CS : hSTRV full
|
* CS : hSTRV full
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrVAdd >PULLW ZPPtr2 str
|
K.StrVAdd >PULLW TXTPTR str
|
||||||
>PULLA
|
>PULLA
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
@ -105,13 +107,13 @@ K.StrVAdd >PULLW ZPPtr2 str
|
|||||||
.1 jsr STRV.NStrPtr1
|
.1 jsr STRV.NStrPtr1
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
jsr SHARED.AddYp1ToPtr1
|
jsr SHARED.AddYp1ToPtr2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 ldy #$ff
|
.2 ldy #$ff
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
lda (ZPPtr1),y
|
lda (TXTPTR),y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
tya
|
tya
|
||||||
@ -137,12 +139,12 @@ K.StrVAdd >PULLW ZPPtr2 str
|
|||||||
.4 ldy #$ff
|
.4 ldy #$ff
|
||||||
|
|
||||||
.5 iny
|
.5 iny
|
||||||
lda (ZPPtr2),y
|
lda (TXTPTR),y
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
iny
|
iny
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y StrV Ending \0
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -45,9 +45,10 @@ A2osX.AUX .DA #0
|
|||||||
|
|
||||||
A2osX.AUX.B .PH Mem.XHiMem
|
A2osX.AUX.B .PH Mem.XHiMem
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TERMX
|
.INB USR/SRC/SYS/KERNEL.S.TERMX
|
||||||
|
.INB USR/SRC/SYS/KERNEL.S.ENVX
|
||||||
|
.INB USR/SRC/SYS/KERNEL.S.TIMEX
|
||||||
.INB USR/SRC/SYS/KERNEL.S.MD5X
|
.INB USR/SRC/SYS/KERNEL.S.MD5X
|
||||||
.INB USR/SRC/SYS/KERNEL.S.PWDX
|
.INB USR/SRC/SYS/KERNEL.S.PWDX
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TIMEX
|
|
||||||
.INB USR/SRC/SYS/KERNEL.S.SLISTX
|
.INB USR/SRC/SYS/KERNEL.S.SLISTX
|
||||||
.EP
|
.EP
|
||||||
A2osX.AUX.S .EQ *-A2osX.AUX.B
|
A2osX.AUX.S .EQ *-A2osX.AUX.B
|
||||||
@ -95,16 +96,16 @@ A2osX.E0 .DA #0
|
|||||||
A2osX.E0.B .PH $E000
|
A2osX.E0.B .PH $E000
|
||||||
.INB USR/SRC/SYS/KERNEL.S.JMP
|
.INB USR/SRC/SYS/KERNEL.S.JMP
|
||||||
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
||||||
.INB USR/SRC/SYS/KERNEL.S.MEM
|
.INB USR/SRC/SYS/KERNEL.S.SHARED
|
||||||
.INB USR/SRC/SYS/KERNEL.S.MATH
|
.INB USR/SRC/SYS/KERNEL.S.MATH
|
||||||
.INB USR/SRC/SYS/KERNEL.S.STRV
|
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TERM
|
.INB USR/SRC/SYS/KERNEL.S.TERM
|
||||||
|
.INB USR/SRC/SYS/KERNEL.S.TIME
|
||||||
.INB USR/SRC/SYS/KERNEL.S.MD5
|
.INB USR/SRC/SYS/KERNEL.S.MD5
|
||||||
.INB USR/SRC/SYS/KERNEL.S.PWD
|
.INB USR/SRC/SYS/KERNEL.S.PWD
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TIME
|
.INB USR/SRC/SYS/KERNEL.S.STRV
|
||||||
.INB USR/SRC/SYS/KERNEL.S.SHARED
|
.INB USR/SRC/SYS/KERNEL.S.MEM
|
||||||
.INB USR/SRC/SYS/KERNEL.S.STDIO2
|
|
||||||
* go to A2osX.D1
|
* go to A2osX.D1
|
||||||
|
.INB USR/SRC/SYS/KERNEL.S.STDIO2
|
||||||
.INB USR/SRC/SYS/KERNEL.S.IO
|
.INB USR/SRC/SYS/KERNEL.S.IO
|
||||||
.INB USR/SRC/SYS/KERNEL.S.PIPE
|
.INB USR/SRC/SYS/KERNEL.S.PIPE
|
||||||
.INB USR/SRC/SYS/KERNEL.S.PFT
|
.INB USR/SRC/SYS/KERNEL.S.PFT
|
||||||
|
Loading…
Reference in New Issue
Block a user