A2osX/SYS/KERNEL.S.STRVX.txt
2020-12-15 14:23:22 +01:00

156 lines
2.1 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
STRVX.StrVShift phy
jsr K.GetMemPtr
>STYA ZPPtr1 strV
plx
.1 inx
beq .2
jsr STRVX.NStrPtr1
bcc .1
rts
.2 >LDYA ZPPtr1
>STYA ZPPtr2
jsr STRVX.NStrPtr1
jsr STRV.Ptr1Ptr2cpy
clc
rts
*--------------------------------------
STRVX.StrVGet phy
jsr K.GetMemPtr
>STYA ZPPtr1 strV
plx
.1 inx
beq .2
jsr STRVX.NStrPtr1
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
.1 jsr STRVX.NStrPtr1
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
*--------------------------------------
STRVX.NStrPtr1 ldy #$ff
.1 iny
lda (ZPPtr1)
beq .2
inc ZPPtr1
bne .1
inc ZPPtr1+1
bra .1
.2 tya
beq .9
inc ZPPtr1
bne .8
inc ZPPtr1+1 skip \0
.8 clc
rts
.9 sec Y,A = 0
rts
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.strvx
LOAD usr/src/sys/kernel.s
ASM