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