1. Introduction

1.1 What's TiEmu

TiEmu is a program allowing a computer to emulate a hand-held:  TI89, TI89 Titanium, TI92, TI92+, V200PLT.
At the time being, it works on Linux and Windows platforms.

It uses GTK+ (The GiMP ToolKit) for the GUI and for the display.

All link cables supported by the TiLP 2 framework are available:
- home-made parallel cable,
- home-made serial cable,
- Black TI Graph Link,
- Gray TI Graph Link,
- and now the SilverLink cable.

TiEmu was based on XTiger, the original TI emulator for Linux which uses the m68k emulation core from UAE (The Ultimate Amiga Emulator).
It also uses the TiLP framework (ti* libraries). See the AUTHORS file for more details.

TiEmu is provided with a default and free OS : PedroM.

As of TiEmu 3, it is provided as 2 versions: TiEmu with gdb (+gdb for short) and TiEmu without gdb (-gdb for short). Both of them are the same except for the debugger.

1.2 Features and limitations

Features:
Limitations:

1.3 System requirements

In order to run TiEmu, your computer must meet one of the following sets of requirements, depending on your operating system:

Linux:

Windows:

Mac OS-X:

FreeBSD:

All systems must have an available port that will support your cable (see section 3 below).

1.4 Installation

Linux:

Windows:

1.5 Configuration / Setting-up (Linux)

A burning issue with TiLP and Linux is good set-up of device access. Linux is secure because it heavily relies on permissions.
You should always run TiLP as root for the first run. By this way, you will be almost sure to run TiLP with success.

If you want to run TiLP as a simple user, you must take care of permissions. This is explained below.

For BlackLink or home-made serial cable, the node is '/dev/ttySx". You must have r/w permissions on this device. This can be done by:
- giving up r/w permissions to other (chmod ugo+rw /dev/ttyS0) or, better,
- adding your user to the group 'dialout' (edit /etc/group and your username after the ':').

Example 1:
    crw-rw-rw-  1 root dialout 4, 64 2006-02-08 13:40 /dev/ttyS0
Example 2:
    dialout:x:20:romain


For parallel link cable, the node is '/dev/parportX' and the same rules apply.

For SilverLink cable, things are more complicated...

libusb uses a pseudo-filesystem known as 'usbdevfs` or 'usbfs` to access the USB devices connected to your machine. This filesystem must be mounted
under /proc/bus/usb for libusb to work.

It could be done using the following command:
        mount -t usbfs none /proc/bus/usb

An alternative and more permanent method would be to add
        none /proc/bus/usb usbfs defaults 0 0
to your /etc/fstab file. It will mount the usbfs for you automatically at boot time ; only root will be able to access the USB devices with this setup.

Several mount options are available, that allow you to set the permissions on the files created under /proc/bus/usb so that non-root users can use libusb applications:
 - devuid=xxx, devgid=xxx, devmode=xxx respectively set the uid, the gid and the mode of the devices files, ie /proc/bus/usb/BBB/DDD
 - busuid=xxx, busgid=xxx, devmode=xxx respectively set the uid, the gid and the mode of the bus files, ie /proc/bus/usb/BBB
 - listuid=xxx, listgid=xxx, listmode=xxx respectively set the uid, the gid and the mode of /proc/bus/usb/devices

 -- Aurelien Jarno <aurel32@debian.org>, Sun, 21 Mar 2004 01:01:44 +0100