Just FYI:
I saw a thread (discussion) related to BCD: Binary Encoded Decimal:
This is just a "convention" about the value range possible in a register (half of register byte = nibble), as a value.
BCD covers values as 0..9. But any nibble byte can cover 0..15 - before it overflows, in regular hex (base 16) math.
So, when you do math on BCD values, such as:
char myBCD = 9;
char otherBCD;
otherBCD = myBCD + 1;
you want to get "otherBCD" also as BCD: the next higher digit is also 0..9 and the +1 results in an "overflow" (carry bit) so that 9 + 1 = 10. But 10 here here as BCD is 1 in higher nibble, 0 in lower nibble. So, the "9 + 1" already overflows (0..9) and next higher nibble has to take the carry bit. So, it would be come "10" (instead of 0x0A on hex mode).
This BCD stuff is "very old" MCU related. You might find support on very old MCU (e.g. Zilog Z80) for this "format". Actually it is not a format: it is a "convention": when you do a VAL +1 on a BCD value - it should "roll-over on value 10" (instead of 16). But a regular nibble byte rolls over at 16 (0..15 possible as value for a nibble).
It needs a special instruction. And modern MCUs do not have anymore BCD format support. They assume all as 0..15 (for 4bit, as a nibble, in hex). BCD can be handled in software (if needed): just make sure that a value overflow (value 10) results in a carry bit taken to next higher nibble.
BCD is a "convention" about possible values in a byte, in a "nibble" (half byte, 4bit). If you have support for BCD: it forwards the carry bit (if larger as 9) to the next higher nibble. The carry bit is set on transition from value 9 to 10.
But regular hex nibbles roll-over on value 16: so, the carry bit is taken to next higher nibble just of it is larger as 15. BCD arithmetic is not there anymore on modern MCUs. They assume real hex values (0..15) in a nibble. BCD math can be done in SW.
But you cannot do so much with BCD, except some external devices need the data in BCD format. A processor would never use internally BCD format, instead hex (4bit covers 0..15 instead of 0..9).