A2osX/SHARED/X.STRESC.S.txt

165 lines
2.1 KiB
Plaintext
Raw Permalink 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
*--------------------------------------
*
*
*
*--------------------------------------
X.STRESC >STYA ZPPtr1 In
>STYA ZPPtr2 Out
ldy #0
.1 lda (ZPPtr1)
beq .8
jsr X.STRESC.IncPtr1
cmp #'\'
bne .6
lda (ZPPtr1)
beq .7
ldx #X.STRESC.EscCharsCnt-1
.2 cmp X.STRESC.EscChars,x
beq .5
dex
bpl .2
stz ZPTmpByte
jsr X.STRESC.ToUC
cmp #'X'
bne .3
.20 jsr X.STRESC.IncPtr1
lda (ZPPtr1)
beq .40
jsr X.STRESC.IsHex
bcs .40
asl ZPTmpByte
asl ZPTmpByte
asl ZPTmpByte
asl ZPTmpByte
ora ZPTmpByte
sta ZPTmpByte
bra .20
.3 jsr X.STRESC.IsOct
bcs .40
jsr X.STRESC.IncPtr1
asl ZPTmpByte
asl ZPTmpByte
asl ZPTmpByte
ora ZPTmpByte
sta ZPTmpByte
lda (ZPPtr1)
bne .3
.40 lda ZPTmpByte
bra .6
.4 tax
lda #'\'
sta (ZPPtr2),y
iny
txa
bra .6
.5 lda X.STRESC.EscCodes,x
jsr X.STRESC.IncPtr1
.6 sta (ZPPtr2),y
iny
bra .1
.7 lda #'\'
sta (ZPPtr2),y
iny
lda #0
.8 sta (ZPPtr2),y
>LDYA ZPPtr2
rts
*--------------------------------------
X.STRESC.IncPtr1
inc ZPPtr1
bne .8
inc ZPPtr1+1
.8 rts
*--------------------------------------
X.STRESC.ToUC cmp #'a'
bcc .8
cmp #'z'+1
bcs .8
eor #$20
.8 rts
*--------------------------------------
X.STRESC.IsOct cmp #'0'
bcc .9
cmp #'7'+1
bcs .9
and #%00000111
clc
rts
.9 sec
rts
*--------------------------------------
X.STRESC.IsHex cmp #'0'
bcc .9
cmp #'9'+1
bcc .8
cmp #'A'
bcc .9
cmp #'Z'+1
bcc .7
cmp #'a'
bcc .9
cmp #'z'+1
bcc .9
* sec
sbc #$20
.7 sec
sbc #'A'-10
.8 and #$0F
clc
rts
.9 sec
rts
*--------------------------------------
MAN
SAVE usr/src/shared/x.stresc.s
ASM