-<P>
-<B><FONT SIZE="+1">stdio.h</FONT></B> - Contains the following functions printf
-& sprintf these routines are developed by <I>Martijn van Balen
-<balen@natlab.research.philips.com>. </I>
-
-<P>
-<FONT SIZE="-2">%[flags][width][b|B|l|L]type</FONT>
-<P>
-
-
-<P>
-<FONT SIZE="-2"> flags: - left justify
-output in specified field width </FONT>
-<BR><FONT SIZE="-2"> + prefix
-output with +/- sign if output is signed type </FONT>
-<BR><FONT SIZE="-2"> space prefix output
-with a blank if it's a signed positive value </FONT>
-<BR><FONT SIZE="-2"> width: specifies
-minimum number of characters outputted for numbers </FONT>
-<BR><FONT SIZE="-2"> or
-strings. </FONT>
-<BR><FONT SIZE="-2"> -
-For numbers, spaces are added on the left when needed. </FONT>
-<BR><FONT SIZE="-2">
-If width starts with a zero character, zeroes and used </FONT>
-<BR><FONT SIZE="-2">
-instead of spaces. </FONT>
-<BR><FONT SIZE="-2"> -
-For strings, spaces are are added on the left or right (when </FONT>
-<BR><FONT SIZE="-2">
-flag '-' is used) when needed. </FONT>
-<BR><FONT SIZE="-2"> </FONT>
-<BR><FONT SIZE="-2"> b/B: byte argument
-(used by d, u, o, x, X) </FONT>
-<BR><FONT SIZE="-2"> l/L: long argument
-(used by d, u, o, x, X)</FONT>
-<BR><FONT SIZE="-2"> type: d decimal number
-</FONT>
-<BR><FONT SIZE="-2"> u unsigned
-decimal number </FONT>
-<BR><FONT SIZE="-2"> o unsigned
-octal number </FONT>
-<BR><FONT SIZE="-2"> x unsigned
-hexadecimal number (0-9, a-f) </FONT>
-<BR><FONT SIZE="-2"> X unsigned
-hexadecimal number (0-9, A-F) </FONT>
-<BR><FONT SIZE="-2"> c character
-</FONT>
-<BR><FONT SIZE="-2"> s string
-(generic pointer) </FONT>
-<BR><FONT SIZE="-2"> p generic
-pointer (I:data/idata, C:code, X:xdata, P:paged) </FONT>
-<BR><FONT SIZE="-2"> f float
-(still to be implemented)</FONT>
-<P>
-
-
-<P>
-Also contains a very simple version of printf (<B>printf_small</B>).
-This simplified version of printf supports only the following formats.
-
-<P>
-<U><FONT SIZE="-2">format output type argument-type</FONT></U>
-<BR><FONT SIZE="-2">%d decimal short/int </FONT>
-<BR><FONT SIZE="-2">%ld decimal long </FONT>
-<BR><FONT SIZE="-2">%hd decimal char </FONT>
-<BR><FONT SIZE="-2">%x hexadecimal short/int </FONT>
-<BR><FONT SIZE="-2">%lx hexadecimal long </FONT>
-<BR><FONT SIZE="-2">%hx hexadecimal char </FONT>
-<BR><FONT SIZE="-2">%o octal short/int
-</FONT>
-<BR><FONT SIZE="-2">%lo octal long </FONT>
-<BR><FONT SIZE="-2">%ho octal char </FONT>
-<BR><FONT SIZE="-2">%c character char </FONT>
-<BR><FONT SIZE="-2">%s character _generic pointer</FONT>
-<P>
-
-
-<P>
-The routine is <B>very stack intesive</B> , -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 <I>putchar(char
-)</I> to be present (this can be changed). When using the %s format
-the string / pointer should be cast to a generic pointer. eg.
-
-<P>
-<FONT SIZE="-2">printf_small(``my str %s, my int %d\n'',(char
-_generic *)mystr,myint);</FONT>
-<P>
-
-
-<P>
-
-<UL>
-<LI><B><FONT SIZE="+1">stdarg.h</FONT></B> - contains definition for the following macros
-to be used for variable parameter list, note that a function can have
-a variable parameter list if and only if it is 'reentrant'
-
-<P>
-<FONT SIZE="-1">va_list, va_start, va_arg, va_end.</FONT>
-<P>
-
-
-<P>
-</LI>
-<LI><B><FONT SIZE="+1">setjmp.h</FONT></B> - contains defintion for ANSI <B>setjmp</B>
-& <B>longjmp</B> routines. Note in this case setjmp & longjmp
-can be used between functions executing within the same register bank,
-if long jmp is executed from a function that is using a different
-register bank from the function issuing the setjmp function, the results
-may be unpredictable. The jump buffer requires 3 bytes of data (the
-stack pointer & a 16 byte return address), and can be placed in any
-address space.
-</LI>
-<LI><B><FONT SIZE="+1">stdlib.h</FONT></B> - contains the following functions.
-
-<P>
-<FONT SIZE="-1">atoi, atol.</FONT>
-<P>
-
-
-<P>
-</LI>
-<LI><B><FONT SIZE="+1">string.h</FONT></B> - contains the following functions.
-
-<P>
-<FONT SIZE="-1">strcpy, strncpy, strcat, strncat, strcmp, strncmp,
-strchr, strrchr, strspn, strcspn, strpbrk, strstr, strlen, strtok,
-memcpy, memcmp, memset.</FONT>
-<P>
-
-
-<P>
-</LI>
-<LI><B><FONT SIZE="+1">ctype.h</FONT></B> - contains the following routines.
-
-<P>
-<FONT SIZE="-1">iscntrl, isdigit, isgraph, islower, isupper, isprint,
-ispunct, isspace, isxdigit, isalnum, isalpha.</FONT>
-<P>
-
-
-<P>
-</LI>
-<LI><B><FONT SIZE="+1">malloc.h</FONT></B> - The malloc routines are developed by Dmitry
-S. Obukhov (dso@usa.net). These routines will allocate memory from
-the external ram. Here is a description on how to use them (as described
-by the author).
-
-<P>
-<FONT SIZE="-2">//Example: </FONT>
-<BR><FONT SIZE="-2"> // #define DYNAMIC_MEMORY_SIZE 0x2000
-</FONT>
-<BR><FONT SIZE="-2"> // ..... </FONT>
-<BR><FONT SIZE="-2"> // unsigned char xdata dynamic_memory_pool[DYNAMIC_MEMORY_SIZE];
-</FONT>
-<BR><FONT SIZE="-2"> // unsigned char xdata * current_buffer;
-</FONT>
-<BR><FONT SIZE="-2"> // ..... </FONT>
-<BR><FONT SIZE="-2"> // void main(void) </FONT>
-<BR><FONT SIZE="-2"> // { </FONT>
-<BR><FONT SIZE="-2"> // ... </FONT>
-<BR><FONT SIZE="-2"> // init_dynamic_memory(dynamic_memory_pool,DYNAMIC_MEMORY_SIZE);
-</FONT>
-<BR><FONT SIZE="-2"> // //Now it's possible to use
-malloc. </FONT>
-<BR><FONT SIZE="-2"> // ... </FONT>
-<BR><FONT SIZE="-2"> // current_buffer = malloc(0x100);
-</FONT>
-<BR><FONT SIZE="-2"> //</FONT>
-<P>
-
-
-<P>
-</LI>
-<LI><B><FONT SIZE="+1">serial.h</FONT></B> - Serial IO routines are also developed by
-Dmitry S. Obukhov (dso@usa.net). These routines are interrupt driven
-with a 256 byte circular buffer, they also expect external ram to
-be present. Please see documentation in file SDCCDIR/sdcc51lib/serial.c.
-Note the header file ``serial.h'' MUST be included in the file
-containing the 'main' function.
-</LI>
-<LI><B><FONT SIZE="+1">ser.h</FONT></B> - Alternate serial routine provided by Wolfgang
-Esslinger <wolfgang@WiredMinds.com> these routines are more compact
-and faster. Please see documentation in file SDCCDIR/sdcc51lib/ser.c
-</LI>
-<LI><B><FONT SIZE="+1">ser_ir.h</FONT></B> - Another alternate set of serial routines
-provided by Josef Wolf <jw@raven.inka.de> , these routines do not
-use the external ram.
-</LI>
-<LI><B><FONT SIZE="+1">reg51.h</FONT></B> - contains register definitions for a standard
-8051
-</LI>
-<LI><B><FONT SIZE="+1">float.h</FONT></B> - contains min, max and other floating point
-related stuff.
-</LI>
-</UL>
-All library routines are compiled as -model-small , they are all
-non-reentrant, if you plan to use the large model or want to make
-these routines reentrant, then they will have to be recompiled with
-the appropriate compiler option.
-
-<P>
+<p>
+stdio.h - Contains the following functions printf & sprintf these
+routines are developed by Martijn van Balen <balen@natlab.research.philips.com>.
+
+<p>
+%[flags][width][b|B|l|L]type
+
+<p>
+ flags: - left justify output in
+specified field width <br />
+ + prefix output with
++/- sign if output is signed type <br />
+ space prefix output with a
+blank if it's a signed positive value <br />
+ width: specifies minimum number
+of characters outputted for numbers <br />
+ or strings. <br />
+ - For numbers,
+spaces are added on the left when needed. <br />
+ If width starts
+with a zero character, zeroes and used <br />
+ instead of
+spaces. <br />
+ - For strings,
+spaces are are added on the left or right (when <br />
+ flag '-' is
+used) when needed. <br />
+ <br />
+ b/B: byte argument (used
+by d, u, o, x, X) <br />
+ l/L: long argument (used
+by d, u, o, x, X)<br />
+ type: d decimal number <br />
+ u unsigned decimal
+number <br />
+ o unsigned octal number
+<br />
+ x unsigned hexadecimal
+number (0-9, a-f) <br />
+ X unsigned hexadecimal
+number (0-9, A-F) <br />
+ c character <br />
+ s string (generic pointer)
+<br />
+ p generic pointer (I:data/idata,
+C:code, X:xdata, P:paged) <br />
+ f float (still to be
+implemented)
+
+<p>
+Also contains a very simple version of printf (printf_small). This
+simplified version of printf supports only the following formats.
+
+<p>
+format output type argument-type <br />
+%d decimal short/int <br />
+%ld decimal long <br />
+%hd decimal char <br />
+%x hexadecimal short/int <br />
+%lx hexadecimal long <br />
+%hx hexadecimal char <br />
+%o octal short/int <br />
+%lo octal long <br />
+%ho octal char <br />
+%c character char <br />
+%s character _generic pointer
+
+<p>
+The routine is 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.
+
+<p>
+printf_small(``my str %s, my int %dn'',(char
+_generic *)mystr,myint);
+
+<p>
+
+<ul><p>
+<li> stdarg.h - contains definition for the following macros to be used
+for variable parameter list, note that a function can have a variable
+parameter list if and only if it is 'reentrant'
+
+<p>
+va_list, va_start, va_arg, va_end.</li>
+<p>
+<li> setjmp.h - contains defintion for ANSI setjmp & longjmp routines.
+Note in this case setjmp & longjmp can be used between functions
+executing within the same register bank, if long jmp is executed from
+a function that is using a different register bank from the function
+issuing the setjmp function, the results may be unpredictable. The
+jump buffer requires 3 bytes of data (the stack pointer & a 16 byte
+return address), and can be placed in any address space.</li>
+<p>
+<li> stdlib.h - contains the following functions.
+
+<p>
+atoi, atol.</li>
+<p>
+<li> string.h - contains the following functions.
+
+<p>
+strcpy, strncpy, strcat, strncat, strcmp, strncmp, strchr, strrchr,
+strspn, strcspn, strpbrk, strstr, strlen, strtok, memcpy, memcmp,
+memset.</li>
+<p>
+<li> ctype.h - contains the following routines.
+
+<p>
+iscntrl, isdigit, isgraph, islower, isupper, isprint, ispunct, isspace,
+isxdigit, isalnum, isalpha.</li>
+<p>
+<li> malloc.h - The malloc routines are developed by Dmitry S. Obukhov
+(dso@usa.net). These routines will allocate memory from the external
+ram. Here is a description on how to use them (as described by the
+author).
+
+<p>
+//Example: <br />
+ // #define DYNAMIC_MEMORY_SIZE 0x2000 <br />
+ // ..... <br />
+ // unsigned char xdata dynamic_memory_pool[DYNAMIC_MEMORY_SIZE];
+<br />
+ // unsigned char xdata * current_buffer; <br />
+ // ..... <br />
+ // void main(void) <br />
+ // { <br />
+ // ... <br />
+ // init_dynamic_memory(dynamic_memory_pool,DYNAMIC_MEMORY_SIZE);
+<br />
+ // //Now it's possible to use malloc. <br />
+ // ... <br />
+ // current_buffer = malloc(0x100); <br />
+ //</li>
+<p>
+<li> serial.h - Serial IO routines are also developed by Dmitry S. Obukhov
+(dso@usa.net). These routines are interrupt driven with a 256 byte
+circular buffer, they also expect external ram to be present. Please
+see documentation in file SDCCDIR/sdcc51lib/serial.c. Note the header
+file ``serial.h'' MUST be included in the file containing the
+'main' function.</li>
+<p>
+<li> ser.h - Alternate serial routine provided by Wolfgang Esslinger <wolfgang@WiredMinds.com>
+these routines are more compact and faster. Please see documentation
+in file SDCCDIR/sdcc51lib/ser.c</li>
+<p>
+<li> ser_ir.h - Another alternate set of serial routines provided by Josef
+Wolf <jw@raven.inka.de>, these routines do not use the external ram.</li>
+<p>
+<li> reg51.h - contains register definitions for a standard 8051</li>
+<p>
+<li> float.h - contains min, max and other floating point related stuff.</li>
+</ul>
+All library routines are compiled as -model-small, they are all non-reentrant,
+if you plan to use the large model or want to make these routines
+reentrant, then they will have to be recompiled with the appropriate
+compiler option.
+
+<p>