inline void print_info_dec(unsigned long value,unsigned long res) { for(;res;res/=10) print_info_char('0'+value/res%10); }
On Mon, Jul 09, 2007 at 09:43:49AM +0300, Indrek Kruusa wrote: > print_info("CPU "); print_info_dec(cpu_clk,100); > print_info(" MHz\r\n"); Note this only prints the modulus while Indrek's code indicates that the value does not fit in 3 positions by printing a non-digit hundreds character. Multiply the resoluton by 10 to get more digits. 1000=4, 10000=5 etc. Omitting leading 0:s would need some state to be kept and cost one more register. //Peter -- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios