A2osX/SYS/KERNEL.S.STRVX.txt

131 lines
1.8 KiB
Plaintext
Raw Normal View History

2020-02-07 15:35:52 +00:00
NEW
AUTO 3,1
*--------------------------------------
2020-03-10 16:42:07 +00:00
STRVX.StrVShift phy
jsr K.GetMemPtr
2020-02-07 15:35:52 +00:00
>STYA ZPPtr1 strV
2020-03-10 16:42:07 +00:00
plx
2020-02-07 15:35:52 +00:00
.1 inx
beq .2
2020-03-12 16:44:11 +00:00
jsr STRV.NStrPtr1
2020-02-07 15:35:52 +00:00
bcc .1
rts
.2 >LDYA ZPPtr1
>STYA ZPPtr2
2020-03-12 16:44:11 +00:00
jsr STRV.NStrPtr1
2020-02-07 15:35:52 +00:00
2020-03-12 16:44:11 +00:00
jsr STRV.Ptr1Ptr2cpy
2020-02-07 15:35:52 +00:00
clc
rts
*--------------------------------------
2020-03-10 16:42:07 +00:00
STRVX.StrVGet phy
jsr K.GetMemPtr
2020-02-07 15:35:52 +00:00
>STYA ZPPtr1 strV
2020-03-10 16:42:07 +00:00
plx
2020-02-07 15:35:52 +00:00
.1 inx
beq .2
2020-03-12 16:44:11 +00:00
jsr STRV.NStrPtr1
2020-02-07 15:35:52 +00:00
bcc .1
rts
.2 lda (ZPPtr1)
tay
bne .3
sec
rts Y,A = 0
.3 lda FORPNT+1
beq .8
.4 ldy #$ff
.5 iny
lda (ZPPtr1),y
jsr SHARED.FORPNT.PutY
bne .5
>LDYA FORPNT
clc
rts
.8 >LDYA ZPPtr1
clc
.9 rts
*--------------------------------------
STRVX.StrVAdd jsr K.GetMemPtr
>STYA ZPPtr1
lda TXTPTR+1
bne .10
sta (ZPPtr1)
clc
rts
.10 lda #1 for \0
sta ZPPtr2
stz ZPPtr2+1
2020-03-12 16:44:11 +00:00
.1 jsr STRV.NStrPtr1
2020-02-07 15:35:52 +00:00
bcs .2
jsr SHARED.AddYp1ToPtr2
bra .1
.2 ldy #$ff
.3 iny
jsr SHARED.TXTPTR.GetY
bne .3
tya
sec
adc ZPPtr2
bcc .4
inc ZPPtr2+1
ldy #S.MEM.LEN
lda (ZPMemMgrSPtr),y
cmp ZPPtr2
iny
lda (ZPMemMgrSPtr),y
sbc ZPPtr2+1
bcs .4
lda #E.OOM
sec
rts
.4 ldy #$ff
.5 iny
jsr SHARED.TXTPTR.GetY
sta (ZPPtr1),y
bne .5
iny
sta (ZPPtr1),y StrV Ending \0
clc
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STRVX
LOAD USR/SRC/SYS/KERNEL.S
ASM