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