Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/05/05 09:45
Read: times


 
#104689 - thanks
Responding to: ???'s previous message
Thanks for the comments, Slobodan; I have much less of them...
Just one note, the constants I wrote in decimal (e.g. mov b,#100).

The mess with unrolled multiply and add can be solved too, making it also more universal (for different length of packed BCD - BCD5 is quite common). Takes about 50% more time to execute.

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


Jan Waclawek


List of 30 messages in thread
TopicAuthorDate
week puzzle V            01/01/70 00:00      
   that would be intersating only to codebr            01/01/70 00:00      
      codebreakers            01/01/70 00:00      
         busted            01/01/70 00:00      
   having a guess            01/01/70 00:00      
   Hmm,isn't it demotivating to reengineer?            01/01/70 00:00      
      Cool algorithm            01/01/70 00:00      
      maybe            01/01/70 00:00      
   Looks like BCD to binary routine            01/01/70 00:00      
   My assumption            01/01/70 00:00      
   The source with comments !            01/01/70 00:00      
      thanks            01/01/70 00:00      
         Seems more elegant ...            01/01/70 00:00      
            optimized=ugly            01/01/70 00:00      
         why "xrl a,#0F0h" ?            01/01/70 00:00      
            Wow!            01/01/70 00:00      
         A bit shorter ...            01/01/70 00:00      
            za Slobodana Mandarica            01/01/70 00:00      
      another approach            01/01/70 00:00      
         optimizing further            01/01/70 00:00      
            packed bcd            01/01/70 00:00      
               packed bcd... by specification :-)            01/01/70 00:00      
      that is not comments, that is "explanati            01/01/70 00:00      
         true if            01/01/70 00:00      
         Yes they are Comments            01/01/70 00:00      
            Exactly !            01/01/70 00:00      
            I have seen such called "comments" way t            01/01/70 00:00      
               more on comments            01/01/70 00:00      
                  the point            01/01/70 00:00      
                     "anyone" and the point            01/01/70 00:00      

Back to Subject List