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
