The more characters that are processed in each I/O request, the higher the
total throughput of the device. The following technique will minimize
device overhead for reads:
* Use the SDCMD_QUERY command to get the number of characters currently
in the buffer (see the devices/serial.h Autodocs for information on
SDCMD_QUERY).
* Use DoIO() to read all available characters (or the maximum size of
your buffer). In this case, DoIO() is guaranteed to return without
waiting.
* If zero characters are in the buffer, post an asynchronous request
(SendIO()) for 1 character. When at least one is ready, the device
will return it. Now go back to the first step.
* If the user decides to quit the program, AbortIO() any pending
requests.