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