The following library routines are provided for your convenience.
stdio.h - Contains the following functions printf & sprintf these routines are developed by Martijn van Balen <email@example.com>.
%[flags][width][b|B|l|L]type flags: - left justify output in specified field width + prefix output with +/- sign if output is signed type space prefix output with a blank if it's a signed positive value width: specifies minimum number of characters outputted for numbers or strings. - For numbers, spaces are added on the left when needed. If width starts with a zero character, zeroes and used instead of spaces. - For strings, spaces are are added on the left or right (when flag '-' is used) when needed. b/B: byte argument (used by d, u, o, x, X) l/L: long argument (used by d, u, o, x, X) type: d decimal number u unsigned decimal number o unsigned octal number x unsigned hexadecimal number (0-9, a-f) X unsigned hexadecimal number (0-9, A-F) c character s string (generic pointer) p generic pointer (I:data/idata, C:code, X:xdata, P:paged) f float (still to be implemented)
Also contains a very simple version of printf (printf_small). This simplified version of printf supports only the following formats.
format output type argument-type <bf> %d decimal int %ld decimal long %hd decimal short/char %x hexadecimal int %lx hexadecimal long %hx hexadecimal short/char %o octal int %lo octal long %ho octal short/char %c character char/short %s character _generic pointer <p><tt>The routine is <tt><bf>very stack intesive , --stack-after-data parameter should be used when using this routine, the routine also takes about 1K of code space .It also expects an external function named putchar(char ) to be present (this can be changed). When using the %s format the string / pointer should be cast to a generic pointer. eg.