.TITLE BCDASC .GLOBL BCDASC ;CALL BCDASC(ADDR,BYTECOUNT) TO CONVERT BCD ARRAY ;TO ASCII. ASSUMES 6 BITS PACKED PER CHAR. ; ASCII: .ASCII "ABCDEFGHIJ" .ASCII "KLMNOPQRST" .ASCII "UVWXYZ0123" .ASCII "456789+-*/" .ASCII "()$= ,.?[]" .ASCII "%??????<>?" .ASCII "??;?" ; BCDASC: MOV 2(R5),R0 ;ADDRESS MOV @4(R5),R1 ;BYTECOUNT BGT 1$ ;CHECK POSITIVE RTS PC 1$: MOVB (R0),R2 ;GET A BYTE BIC #^C77,R2 ;ZAP ALL BUT 6 BITS MOVB ASCII(R2),(R0)+ ;STORE RESULT DEC R1 BGT 1$ ;LOOP OVER WHOLE ARRAY. RTS PC .END