# General Information about the TiConv library

The TiConv library is a part of the TiLP & TiEmu projects and constitutes with the other libraries a complete framework for developping linking and/or TI files oriented applications.

### Overview

The ticonv library is a library capable of conversions between TI charsets and UTF-8 / UTF-16 charsets but uses UTF-16 natively.
The library provides a complete API which is very easy to use and makes things easier.
The library supports all the currently available calculators:
- TI8x calculators: TI73, 82, 83, TI83+, 85 and 86,
- TI9x calculators: TI89, 92, 92+ and V200PLT,
- built-in USB calculators: TI84+ and Titanium.
Why this library?
Kevin is interested in the ability to directly use in a C program (e.g. KTIGCC) some characters from the TI charset.
I (Romain) need to do some particular conversions at many stages in the TiLP framework and TiLP/TiEmu itself.
This is needed because the name of variable (varname, for short):
- may be tokenized on some calcs (TI8x),
- use a charset dependant of the calculator model,
Some vocabulary:
- GFE : GLib Filename Encoding, the encoding used by GLib for filenames,
- LVE : Linking Varname Encoding, the encoding used by hand-helds in the transfer protocol (also known as 'native'),
- TVE : TI-File Varname Encoding, the encoding used by hand-helds (except built-in USB ones) and TI files (also known as 'raw');
LVE and TVE are the same except for USB,
- TI8X or TI9X charset: maps of characters internally stored in the hand-held and used usually for varnames,
- TI-UTF-8 charset: the charset used by TI for built-in USB hand-helds. This charset is not a fully compliant UTF-8 charset. Some chars need to be re-mapped to be displayed fine.
The varname need to be converted into:
- valid UTF-8 to be displayed correctly by GTK,
- valid 'GLib Filename Encoding' to be saved correctly,
- raw varname to be used in TI files.
The following charsets are supported for varnames:
- TI8x: raw/TI-8X (may be tokenized),
- TI9x: TI-9x ,
- USB calcs: TI-UTF-8.
To sum up:

detokenized (TI8x) (char maps)
raw varname ----------------------> TI8X charset --+------------+-> UTF-8 or UTF-16 for display
|
copied (TI9x) |
raw varname ----------------------> TI9X charset --+
|
copied (USB) |
raw varname ----------------------> TIUTF8 charset --+
| (switch case)
+----------------> Glib Filename Encoding for filenames
(char maps) tokenized (TI8x)
TI-UTF-8 -------------> TI-8X/9X charset -+------------------+-> TI-file varname encoding for TI files contents
| |
| copied (TI9x) |
+------------------+

If you want to look at the TI charsets, you will find them in the docs/charset folder of the ticonv archive or in the TI Link Guide or below :

TI82 | TI85 | TI86 | TI9x
TI73 | TI83 | TI83+/84+ |

TI8x images are courtesy of Benjamin Moody. Thanks !

###

### Requirements

This library is dependent on GLib 2.x.

### Bug Reports

There may still be some bugs in the library, please send an email to TiLP development mailing list.

### Copyright

>     Copyright (C) 2006-2009 the TiLP team
>     See AUTHORS for detailed authorship information.

>     This library is free software; you can redistribute it and/or modify it under
>     the terms of the GNU General Public License as published by the Free Software
>     Foundation; either version 2 of the License, or (at your option) any later
>     version.

>     This library is distributed in the hope that it will be useful, but WITHOUT ANY
>     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
>     PARTICULAR PURPOSE.  See the GNU General Public License for more details.

>     You should have received a copy of the GNU General Public License along with
>     this library (in the COPYING file); if not, see http://www.gnu.org/licenses/.

### Return to the main index