;******************************************************************
;
; Bin2Bcd -- 24 bit binary to 8 digit packed BCD (16 bit core)
;
; Number Range: 000000..FFFFFF (0..16,777,215)
;
; 28 words, 537 cycles (including call and return)
;
Bin2Bcd
clrf BCDL+0 ; LSB..MSB
clrf BCDL+1 ;
clrf BCDL+2 ;
clrf BCDL+3 ;
movlw 24 ;
movwf BitCtr ;
ConvertBit
rlcf BINL+0,F ; LSB..MSB
rlcf BINL+1,F ;
rlcf BINL+2,F ;
movf BCDL+0,W ;
addwfc BCDL+0,W ;
daw ;
movwf BCDL+0 ;
movf BCDL+1,W ;
addwfc BCDL+1,W ;
daw ;
movwf BCDL+1 ;
movf BCDL+2,W ;
addwfc BCDL+2,W ;
daw ;
movwf BCDL+2 ;
movf BCDL+3,W ;
addwfc BCDL+3,W ;
daw ;
movwf BCDL+3 ;
decfsz BitCtr,F ;
bra ConvertBit ;
return ;