How to change the below code to show the results on LCD multiplied 256.
Code:
;---------------------------------------------------------------------------
; Bin To BCD conversion ( 32 bit word -> 8 digits )
; Bin in Result, Result+1, Result+2, Result+3
; BCD in BCD3, BCD2, BCD1, BCD0
Bin2BCD
clrc
Movlf .32,N ; Init Loop counter
clrf BCD3 ; Init result
clrf BCD2
clrf BCD1
clrf BCD0
LoopBB ; For N = 1 To 32
rlf Result+3,f ; Shift bin value (LSB first)
rlf Result+2,f
rlf Result+1,f
rlf Result,f
rlf BCD3,f ; Shift BCD value (LSD first)
rlf BCD2,f
rlf BCD1,f
rlf BCD0,f
decfsz N,f
goto DecAdj ; Decimal adjust
return
DecAdj
Movlf BCD3,FSR ; Init pointer
call BCDAdj ; BCD adjust
Movlf BCD2,FSR ; Init pointer
call BCDAdj ; BCD adjust
Movlf BCD1,FSR ; Init pointer
call BCDAdj ; BCD adjust
Movlf BCD0,FSR ; Init pointer
call BCDAdj ; BCD adjust
goto LoopBB
BCDAdj
movlw 3
addwf INDF,w
movwf Temp
btfsc Temp,3 ; Test if result > 7
movwf INDF
movlw 30H
addwf INDF,w
movwf Temp
btfsc Temp,7 ; Test if result > 7
movwf INDF ; Save as MSD
return
;--------------------------------------------------------------------------
; Display Frequency stored in BCD3, BCD2, BCD1 and BCD0 (LSD)
;OK
DispFreq
DDRam 3
swapf BCD0,W
andlw 0FH
call DispHex
movf BCD0,W
andlw 0FH
call DispHex
Disp '.'
swapf BCD1,W
andlw 0FH
call DispHex
movf BCD1,W
andlw 0FH
call DispHex
;DDRam 0x40
swapf BCD2,W
andlw 0FH
call DispHex
Disp '.'
movf BCD2,W
andlw 0FH
call DispHex
swapf BCD3,W
andlw 0FH
call DispHex
movf BCD3,W
andlw 0FH
call DispHex
return
;---------------------------------------------------------------------------
; Display hex digit
; input : w = hex
; OK
DispHex
addlw -0AH
SkipNC
addlw 7
addlw 3AH
call SEND_CHAR
return