; Hex to BCD
; converts a hex number (eg. $10) to its BCD representation (eg. $16).
; Input: a = hex number
; Output: a = BCD number
; Clobbers: b,c
HexToBCD:
ld c,a ; Original (hex) number
ld b,8 ; How many bits
xor a ; Output (BCD) number, starts at 0
-: sla c ; shift c into carry
adc a,a
daa ; Decimal adjust a, so shift = BCD x2 plus carry
djnz - ; Repeat for 8 bits