
BCD4Bin:
   clr   a
   mov   r2,a
   mov   r3,a
   mov   r4,a
   mov   r5,a
   mov   a,@r0
   inc   r0
   call  BCD1BinPlus
   mov   a,@r0
   inc   r0
   call  BCD1BinPlus
   mov   a,@r0
   inc   r0
   call  BCD1BinPlus
   mov   a,@r0
   inc   r0
;   call  BCD1BinPlus ;fallthrough
;   ret

BCD1BinPlus:   ;converts BCD in ACC into bin in ACC; uses no extra resources
   xrl   a,#0F0h
   jbc   acc.4,BCD1BX1
   add   a,#10
BCD1BX1:
   jbc   acc.5,BCD1BX2
   add   a,#20
BCD1BX2:
   jbc   acc.6,BCD1BX3
   add   a,#40
BCD1BX3:
   jbc   acc.7,BCD1BX4
   add   a,#80
BCD1BX4:
              ;multiplies r5..r2 by 100 and adds a
   xch   a,r2
   mov   b,#100
   mul   ab
   add   a,r2
   mov   r2,a
   clr   a
   addc  a,b
   xch   a,r3
   mov   b,#100
   mul   ab
   add   a,r3
   mov   r3,a
   clr   a
   addc  a,b
   xch   a,r4
   mov   b,#100
   mul   ab
   add   a,r4
   mov   r4,a
   clr   a
   addc  a,b
   xch   a,r5
   mov   b,#100
   mul   ab
   add   a,r5
   mov   r5,a
   ret