mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-28 10:52:33 +00:00
196 lines
2.5 KiB
Plaintext
196 lines
2.5 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
STRVX.StrVFree jsr K.FreeMem
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
STRVX.StrVNew jsr K.GetMem
|
||
bcs .9
|
||
|
||
>STYA ZPPtr1 strV
|
||
|
||
lda #0
|
||
sta (ZPPtr1)
|
||
|
||
txa
|
||
|
||
* clc
|
||
|
||
.9 rts
|
||
*--------------------------------------
|
||
STRVX.StrVSet jsr STRVX.GetID
|
||
bcs .7
|
||
|
||
ldy #$ff
|
||
|
||
.1 iny
|
||
jsr SHARED.FORPNTgY
|
||
bne .1
|
||
|
||
tya
|
||
|
||
* clc
|
||
adc #4 LEN+IDlo+IDhi+\0
|
||
bcs .9
|
||
|
||
cmp (ZPPtr1)
|
||
bne .4
|
||
|
||
lda ZPPtr1 Same Length, replace
|
||
clc
|
||
adc #3
|
||
sta ZPPtr1
|
||
bcc .2
|
||
|
||
inc ZPPtr1+1
|
||
|
||
.2 ldy #$ff
|
||
|
||
.3 iny
|
||
jsr SHARED.FORPNTgY
|
||
sta (ZPPtr1),y
|
||
bne .3
|
||
|
||
clc
|
||
.9 rts
|
||
*--------------------------------------
|
||
.4 >LDYA ZPPtr1
|
||
>STYA ZPPtr2
|
||
|
||
jsr STRVX.Next
|
||
|
||
.40 lda (ZPPtr1)
|
||
beq .6
|
||
|
||
tax
|
||
|
||
ldy #0
|
||
|
||
.5 lda (ZPPtr1),y
|
||
sta (ZPPtr2),y
|
||
iny
|
||
dex
|
||
bne .5
|
||
|
||
jsr SHARED.AddY2P1
|
||
jsr SHARED.AddY2P2
|
||
bra .40
|
||
|
||
.6 >LDYA ZPPtr2
|
||
>STYA ZPPtr1
|
||
*--------------------------------------
|
||
.7 ldy #$ff
|
||
|
||
.8 iny
|
||
jsr SHARED.FORPNTgY
|
||
bne .8
|
||
|
||
tya
|
||
|
||
clc
|
||
adc #4
|
||
bcs .99
|
||
|
||
sta (ZPPtr1)
|
||
ldy #1
|
||
lda TXTPTR
|
||
sta (ZPPtr1),y
|
||
iny
|
||
lda TXTPTR+1
|
||
sta (ZPPtr1),y
|
||
|
||
lda ZPPtr1
|
||
clc
|
||
adc #3
|
||
sta ZPPtr1
|
||
bcc .10
|
||
|
||
inc ZPPtr1+1
|
||
|
||
.10 ldy #$ff
|
||
|
||
.11 iny
|
||
jsr SHARED.FORPNTgY
|
||
sta (ZPPtr1),y
|
||
bne .11
|
||
|
||
iny
|
||
sta (ZPPtr1),y StrV Ending \0
|
||
|
||
clc
|
||
rts
|
||
|
||
.99 lda #E.OOM
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
STRVX.StrVGet jsr STRVX.GetID
|
||
bcs .9
|
||
|
||
lda ZPPtr1
|
||
* clc
|
||
adc #3
|
||
sta ZPPtr1
|
||
bcc .1
|
||
|
||
inc ZPPtr1+1
|
||
|
||
.1 ldy #$ff
|
||
|
||
.5 iny
|
||
lda (ZPPtr1),y
|
||
jsr SHARED.FORPNTpY
|
||
bne .5
|
||
|
||
>LDYA FORPNT
|
||
clc
|
||
rts
|
||
|
||
.8 >LDYA ZPPtr1
|
||
clc
|
||
.9 rts
|
||
*--------------------------------------
|
||
STRVX.GetID jsr K.GetMemPtr
|
||
>STYA ZPPtr1 strV
|
||
|
||
.1 lda (ZPPtr1)
|
||
beq .9
|
||
|
||
ldy #1
|
||
|
||
lda (ZPPtr1),y
|
||
cmp TXTPTR
|
||
bne .2
|
||
|
||
iny
|
||
lda (ZPPtr1),y
|
||
cmp TXTPTR+1
|
||
beq .8
|
||
|
||
.2 jsr STRVX.Next
|
||
bra .1
|
||
|
||
.8 clc
|
||
rts
|
||
|
||
.9 lda #E.NOKEY
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
STRVX.Next lda (ZPPtr1)
|
||
clc
|
||
adc ZPPtr1
|
||
sta ZPPtr1
|
||
bcc .8
|
||
|
||
inc ZPPtr1+1
|
||
|
||
.8 rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/sys/kernel.s.strvx
|
||
LOAD usr/src/sys/kernel.s
|
||
ASM
|