Prev | Home | Next
Table of content |  | Images

# 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,
- home-made serial,
- Black TI Graph Link,
- Gray TI Graph Link,
- SilverLink.
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:

- support TI89, TI89 Titanium, TI92, TI92+ and V200PLT hand-helds
- nice assembly-level debugger (disassembly, memory, breakpoints, traps, vectors, stack contents, trace, ...)
- assembly-level debugger supports: run, step in, step over, step out, run to cursor
- nice source-level debugger (source, GDB console, stack backtrace, watches, ...) based on Insight
- ability to load/save the emulator state
- file linkport emulation (direct loading of files)
- works with 1/2/4 MB ROMs, 128 or 256 KB RAM
- emulate HW1, HW2, and HW3
- can run from ROM dumps or FLASH upgrades
- automatic ROM version/model detection
- contrast emulated (try [Alt] + [+] & [-])
- pretty fast emulation code
- sreenshot of LCD and/or calculator in several images format (JPG/PNG/ICO)
- TI keyboard useable directly from PC kesyboard or with the mouse on the skin
- archive memory support as well as ghost spaces
- full emulation of HW1/2/3 protection (stealth I/O)
- full emulation of HW2 & HW3 clock
- no buggy MC68000 SR & nbcd (TiEmu can't be detected as VTI: you have true emulation)
- 4-level and 7/8-level grayscale support (thx Kevin !) for both HW1 and HW2/3
- the letter keys are aliased to produce their respective letters. No need to press the Alpha key, just type (TI89).
- full-featured graphical debugger
- keyboard mapping and menu shortcuts are fully VTI-compatible
- keyboard mapping can be customized

Limitations:

- linkport emulation has not been tested with USB cable yet
- no DirectLink support
- no debugger while sending/receiving a file to/from the virtual calculator

## 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:

- any personal computer (a 386-compatible PC (Pentium or higher strongly recommended) or a Macintosh (PPC G4 or higher strongly recommended)) or workstation (Sparc, Alpha, etc.) with any Linux distribution installed
- 64 MB of RAM (most part is used by GTK and GDB/Insight)
- an X Window System (X.Org X11 is the most common)
- GTK+ 2.6 libraries

Windows:

- a Pentium PC @450MHz or better with Microsoft Windows 95/98/Me or NT4/2000/XP
- 64 MB of RAM (most part is used by GTK and GDB/Insight)
- GTK+ 2.6 libraries like 2.6.8 (it is recommended to use an NT-based version of Windows: NT4, 2000 or XP)

Mac OS-X:

- to test...

FreeBSD:

- same requirements as Linux.

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

## 1.4 Installation

Linux:

- install the TiLP 2 framework
- install TiEmu either by compiling sources, either by installing a package from your favorite distro

Windows:

- execute the InnoSetup or NSIS installer.

## 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