
;*******************************
;16 BIT BINARY TO BCD CONVERTER
;TAKES 16 BITS BINARY IN R3,2
;AND CONVERTS IT TO 6 DIGIT BCD IN R6,5,4
;TIMING 284 CYCLES AND 31 BYTES (500us @7.37MHz)

BINBCD  CLR A
        MOV R4,A
        MOV R5,A
        MOV R6,A        ;CLEAR RESULT
        SETB C          ;COUNTER
        CALL BBCDB      ;CONVERT HI BYTE
        MOV A,R2        ;CONVERT LO BYTE
        SETB C          ;COUNTER
        JMP BBCDC

BBCDA   MOV A,R4
        ADDC A,R4
        DA A
        MOV R4,A

        MOV A,R5
        ADDC A,R5
        DA A
        MOV R5,A

        MOV A,R6
        ADDC A,R6
        DA A
        MOV R6,A

BBCDB   MOV A,R3
BBCDC   RLC A
        MOV R3,A
        JNZ BBCDA       ;17 CYCLES/LOOP
        RET

