
The TICI 1.0 Protocol
TICI 1.0, the Texas Instruments Calculator Interface, is a USB-like standard that allows connection of all sorts of devices such as keyboards, mice, modems, speakers, etc.
Connectors
| Type 'A' | Type 'B' | Type 'B mini' |
Female |  |  |  |
Male |  |  |  |
Description | 6-pin mini-DIN | 3.5mm Stereo | 2.5mm Stereo |
Hardware Connection Protocol
Pin Number | Use [Alternate] |
1 | Data [Data 1] |
2 | N/A |
3 | Ground (GND) |
4 | +5v DC |
5 | Clock [Data 2] |
6 | N/A |
Hardware Developer's Kit
Making a TICI 1.0 Hub
If you create a new design for a TICI 1.0 hub, it must have the following basic features:
- 4.5v supply for external devices
- At least one 2.5mm socket
- At least one female 6 pin mini-DIN socket
- The TICI 1.0 Hub logo
You can add any other features you want, such as built-in adapter(s) for modems, etc, as long as you have these four basic features.
Making a TICI 1.0 Adapter
If you create an adapter for TICI 1.0 that allows you to connect non-PS/2 devices to a TICI hub, it must have the following basic features:
- A 6 pin mini-DIN male connector to connect the adapter to a TICI 1.0 hub
- A connector compatible with the device you are adapting
- (Optional) A power supply for the device you are adapting
Once again, you can add any other features that you want.
Software Developer's Kit
Making a Driver for a TICI 1.0 device
Any driver for a TICI 1.0 device is obviously probably going to be in ASM or C, so it would probably be pointless to try to use TI-basic. A TICI driver program must do several things. First of all, it should be able to detect whether there is actually a device attached. For example, with my PS/2 Mouse Driver for the TI-83, I detected it like this:
INITMSE:
ld b,255d
call SENDBYTE
call RECBYTE
cp 250d
jp nz,INITMSE
This queries the TICI Hub; if the mouse responded with an FAh (Acknowledge), then the program continues on to initialize the device. So the second thing a TICI 1.0 driver must do is initialize the device. Finally, it must be able to interface the device. If you don't plan to include a GUI or program that uses the device, put in labels so that another program can call the routines (i.e. 1=init, 2=get input, 3=output).
©2002 Kerm Martian