libticonv, libtifiles: add 84+CSE calc models, and image types.

libticonv part by Benjamin, libtifiles part by Lionel.

Signed-off-by: Benjamin Moody <floppusmaximus@users.sf.net>
Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
libticalcs: add 84+CSE ROM dumping support, for both legacy I/O and DirectLink.

Code by Benjamin; integration (e.g. POT/PO file changes) by Lionel.

Signed-off-by: Benjamin Moody <floppusmaximus@users.sf.net>
Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
libticalcs: add dusb_recv_data_varsize function, and torture tests.

This is a variant of dusb_recv_data that allows packets to be larger
or smaller than the size declared in the packet header.  (In most
cases this is an error, but 84+CSE screenshot packets are an
exception, because the total size can't be predicted ahead of time.)

In addition, rewrite dusb_recv_data to use dusb_recv_data_varsize,
treating it as an error if the declared size does not match the actual
size.

Code by Benjamin, torture tests by Lionel.

Signed-off-by: Benjamin Moody <floppusmaximus@users.sf.net>
Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
libticalcs: add dusb_cmd_r_screenshot function, and torture tests.

This function reads a special variant form of the parameter data
packet, used by the 84+CSE to send screenshots.  This function should
also work for receiving screenshots from 84+/89T (although, for those
cases, the normal dusb_cmd_r_param_data is more flexible.)

Code by Benjamin, torture tests by Lionel.

Signed-off-by: Benjamin Moody <floppusmaximus@users.sf.net>
Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
libticalcs: add support for 84+CSE screenshots.

For both DBUS and DUSB, the type of screenshot is determined based on
the size of the packet the calc sends back.  In the DBUS case, note
that the calc will send many packets, each of which (at least in the
current implementation) will be no larger than 250 bytes, and the end
of the sequence is marked with an EOT.  (The traditional protocol, in
contrast, uses a single 768-byte packet and no EOT.  This means we
have to guess, after receiving the first packet, whether to expect
more packets or not.)

The DUSB case uses dusb_cmd_r_screenshot, which receives the entire
screenshot as a single (non-standard) packet.

In addition, a 'pixel_format' field has been added to the
CalcScreenCoord struct, defining the format of pixel data (currently
including monochrome, 4-bit grayscale, or 16-bit RGB.)  All versions
of recv_screen have been updated to set this field appropriately.
(NOTE: this change constitutes an ABI break!)

Code by Benjamin, French translation by Lionel.

Signed-off-by: Benjamin Moody <floppusmaximus@users.sf.net>
Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>