674 } |
674 } |
675 if(res.len > STR_MAX_LEN) res.len = STR_MAX_LEN; |
675 if(res.len > STR_MAX_LEN) res.len = STR_MAX_LEN; |
676 return res; |
676 return res; |
677 } |
677 } |
678 /* BCD */ |
678 /* BCD */ |
|
679 #define __bcd_digit(fac) |
679 static inline ULINT __bcd_to_uint(LWORD IN){ |
680 static inline ULINT __bcd_to_uint(LWORD IN){ |
680 return IN & 0xf + |
681 return IN & 0xf + |
681 ((IN >>= 4) & 0xf) * 10 + |
682 !(IN >>= 4) ? 0 : IN & 0xf * 10ULL + |
682 ((IN >>= 4) & 0xf) * 100 + |
683 !(IN >>= 4) ? 0 : IN & 0xf * 100ULL + |
683 ((IN >>= 4) & 0xf) * 1000 + |
684 !(IN >>= 4) ? 0 : IN & 0xf * 1000ULL + |
684 ((IN >>= 4) & 0xf) * 10000 + |
685 !(IN >>= 4) ? 0 : IN & 0xf * 10000ULL + |
685 ((IN >>= 4) & 0xf) * 100000 + |
686 !(IN >>= 4) ? 0 : IN & 0xf * 100000ULL + |
686 ((IN >>= 4) & 0xf) * 1000000 + |
687 !(IN >>= 4) ? 0 : IN & 0xf * 1000000ULL + |
687 ((IN >>= 4) & 0xf) * 10000000 + |
688 !(IN >>= 4) ? 0 : IN & 0xf * 10000000ULL + |
688 ((IN >>= 4) & 0xf) * 100000000 + |
689 !(IN >>= 4) ? 0 : IN & 0xf * 100000000ULL + |
689 ((IN >>= 4) & 0xf) * 1000000000 + |
690 !(IN >>= 4) ? 0 : IN & 0xf * 1000000000ULL + |
690 ((IN >>= 4) & 0xf) * 10000000000 + |
691 !(IN >>= 4) ? 0 : IN & 0xf * 10000000000ULL + |
691 ((IN >>= 4) & 0xf) * 100000000000 + |
692 !(IN >>= 4) ? 0 : IN & 0xf * 100000000000ULL + |
692 ((IN >>= 4) & 0xf) * 1000000000000 + |
693 !(IN >>= 4) ? 0 : IN & 0xf * 1000000000000ULL + |
693 ((IN >>= 4) & 0xf) * 10000000000000 + |
694 !(IN >>= 4) ? 0 : IN & 0xf * 10000000000000ULL + |
694 ((IN >>= 4) & 0xf) * 100000000000000 + |
695 !(IN >>= 4) ? 0 : IN & 0xf * 100000000000000ULL + |
695 ((IN >>= 4) & 0xf) * 1000000000000000; |
696 !(IN >>= 4) ? 0 : IN & 0xf * 1000000000000000ULL; |
|
697 |
696 } |
698 } |
697 static inline LWORD __uint_to_bcd(ULINT IN){ |
699 static inline LWORD __uint_to_bcd(ULINT IN){ |
698 return (IN - (IN /= 10))| |
700 return (IN - (IN /= 10))| |
699 (IN - (IN /= 10)) << 4 | |
701 (IN - (IN /= 10)) << 4 | |
700 (IN - (IN /= 10)) << 8 | |
702 (IN - (IN /= 10)) << 8 | |