### input

1. `long getch()`

   Returns the next available character, or EOF if no character is available. This character is not echoed thru the output vector. This input is not buffered.

2. `long getche()`

   Returns the next available character, or EOF if no character is available. This character is echoed thru output vector. For this reason, `set_putchar_vector()` must be used prior any use of `getche()`. This input is not buffered.

3. `long getchar()`

   Returns the next available character, or EOF if no character is available. This character is echoed thru output vector. This input is buffered. (See `ungetchar()`). The input buffer is 80 bytes long, but this can be easily changed at source code level.

   All «high level» functions such as `scanf()` or `gets()` use `getchar()` as low level input function.

   Notice that (like `getch()` or `getche()`) this function returns a `long`, so all values ranging from `0` to `255` can be returned.

4. `unsigned int fillbuf(char p[],unsigned int nmax, int *eof_flag)`

   This function is used to fill the input buffer when it is empty. `p` points to this buffer, which can contains up to `nmax` characters. This function stops reading when the buffer is full (`nmax` characters) or when the `'\n'` character is encountered.

   `fillbuf` returns the number of character stored in the input buffer, including the `'\n'` terminator, but excluding the `'\0'` trailer.

   As a side effect, `eof_flag` is set to 1 when end-of-file condition is reached, and 0 if not.

   `fillbuf` interprets the `Backspace` character, so it provides a primitive but useful line editing capability.

5. `char *gets(char *t)`

   Read input characters until `'\n'` is encountered, and store them into buffer pointed to by `p`. Terminating `'\n'` is not stored into buffer. Always return `t`.

6. `int getlong(long *pn,int base);`

   Reads a signed long integer in base `base`, and store it at location pointed to by `pn`. Returns 1 if successful, else 0.

7. `int getlong32(long long *pn,int base);`

   Reads a signed long long integer in base `base`, and store it at location pointed to by `pn`. Returns 1 if successful, else 0.

8. `int getfloat(float *pf);`

   Reads a `float` number, and store it in the variable pointed to by `pf`.

   This function returns the number of digits of the number (ie: returning `0` means that the input has failed).

9. `int scanf(const char *fmt, ... ) ;`

   Mini implementation of `scanf()` function. Recognized format specifications are :
   `%c %s %d %u %x %ld %lu %lx %lld %llu %llx %f`

   This function returns the number of conversion specifiers successfully processed.

10. `int RFscanf(ROMF_i8_t fmt, ... ) ;`

    Version of `scanf()` receiving its format string thru a rom accessor. Please see section 10.8 for details about data located in ROM.

    This function returns the number of conversion specifiers successfully processed.