Bin2BCD
CLRF Val1
SWAPF BinDisplay, W ;w = A0*16+A1
ADDWF BinDisplay, W ;w = A0+A1
ANDLW b'00001111' ;w = A0+A1 % 16
SKPNDC ;if A0+A1 > 16
ADDLW 0x16 ; w += 16
SKPNDC ;if w % 16 > 10
ADDLW 0x06 ; w += 6
ADDLW 0x06 ;w += 6
SKPDC ;if w < 10
ADDLW -0x06 ; w -= 6
BTFSC BinDisplay,4
ADDLW 0x16 - 1 + 0x6
SKPDC
ADDLW -0x06
BTFSC BinDisplay, 5
ADDLW 0x30
BTFSC BinDisplay, 6
ADDLW 0x60
BTFSC BinDisplay, 7
ADDLW 0x20
ADDLW 0x60
RLF Val1, F
BTFSS Val1, 0
ADDLW -0x60
MOVWF Val3
BTFSC BinDisplay, 7
INCF Val1, F
;Tientallen EN eenheden zitten nu in Val3 - omzetten en tientallen in Val2 - eenheden in Val3
SWAPF Val3, W ;swap nibbles naar W - tientallen zitten nu aan LSB zijde in W
ANDLW b'00001111' ;verwijder de eenheden
MOVWF Val2 ;en sla op in Val2
MOVLW b'00001111'
ANDWF Val3, F ;en verwijder de tientallen uit Val3
RETURN