### output functions

1. `void putchar(char c)`

   Writes character `c`.

2. `int puts(char *s)`

   Writes string `s`. Always returns 0.

3. `int RFputs(ROMF_i8_t p)`

   Writes the string corresponding to the rom accessor `p`. Please see section 10.8 for details about data located in ROM. Always returns 0.

4. `void outhex(unsigned long n, char up)`

   Writes the unsigned long `n` in hexadecimal. If `up` is `'A'` uppercase letters are used for `A B C D E F` digits, else `up` must be equals to `'a'`, and lowercases are used. Any other value leads to unpredictable result.

   Due to automatic type conversion and leading zeros suppression, this function can be also used for 8 bit numbers

5. `void outhex32(unsigned long long n, char up)`

   Writes the unsigned long long `n` in hexadecimal. If `up` is `'A'` uppercase letters are used for `A B C D E F` digits, else `up` must be equals to `'a'`, and lowercases are used.

   Due to automatic type conversion and leading zeros suppression, this function can be also used for 8 bit or 16 bit numbers. However I do not recommend this option if resource are limited because it leads to import unnecessary 32 bit code in your application.

6. `void outdecu(unsigned long n)`

   Writes unsigned long `n` in decimal. Leading 0 are suppressed, so this function can be also used for 8 bit numbers, which are promoted to `unsigned long` before call.

7. `void outdecu32(unsigned long long n)`

   Writes unsigned long long `n` in decimal. Leading 0 are suppressed, so this function can be also used for 8 bit or 16 bit numbers, which are promoted to `unsigned long long` before call. However I do not recommend this option if ressources are limited because it leads to import unnecessary 32 bit code in your application.

8. `void outdec(long n)`

   Writes long `n` in decimal. Leading 0 are suppressed, so this function can be also used for 8 bit numbers.

9. `void outdec32(long long n)`

   Writes long long `n` in decimal. Leading 0 are suppressed, so this function can be also used for 8 bit or 16 bit numbers. However I do not recommend this option if resources are limited because it leads to import unnecessary 32 bit code in your application.

10. `int putfloat (float x, int prec, int format)`

    Writes the `float` number `x` on the standard output. The `prec` parameter specify the number of digit that must be printed after the decimal point. `prec` can range from `0` to `7`. A negative value ask the function to print with the maximum precision. The `format` parameter can be either `'f'` (classic format like in «`1.0022`» ), `'e'` or `'E'` (scientific format like in «`31.4158e-1`» or «`-1.0E4`»).

11. `int printf(const char *fmt, ...)`

    Mini implementation of the standard `printf()` function. Recognized conversion specifications are :
    `%c %s %d %u %x %ld %lu %lx %lld %llu %llx %f %e %E`

    See more information about conversion specifiers in section 14.1.3

    This function return the number of characters printed.

12. `int RFprintf(ROMF_i8_t fmt)`

    Version of `printf()` receiving its format string through a rom accessor. Please see section 10.8 for details about what is a rom accessor.
    See more information about conversion specifiers in section 14.1.3

    This function return the number of characters printed.