Texas Instruments TI-99/4A

In 1981 Texas Instruments released TI99/4, the first series of 16-bit home computers. The computer has a Texas Instruments TMS9900 processor running at 3MHz. It has a true 16-bit bus and works at 3MHz, so it was needed to use very fast memory chips: Static RAM. But static RAM was expensive, so engineers designed only 256 bytes of SRAM for quick access. 16kB of 8-bit normal dynamic RAM used (by design) for graphics purposes is placed on a 8-bit bus and is significantly slower.
The similar thing is with ROM: TI99 has 8kB of its own ROM and serially available "GROM" - Graphics ROM. This memory is initialized at some address and read byte by byte, every byte a "pointer" advances one byte forward.
TI99 gained its popularity in USA as a home computer and game console, as many games have been released on ROM cartridges (called Modules). It was possible to expand it using a modular rack for many cartridges, floppy disk drive or memory expansion. In Europe it was quite rare because of strict export laws and lack of applications of so memory-constrained systems.

Manufacturer Texas Instruments

Origin USA
Year of unit 1982
Year of introduction 1981
End of production 1983
Speed 3MHz
RAM 256B "Scratchpad RAM"
16kB graphics RAM
18kB Serial ROM (GROM)
Colors: 16
Sound: 3 channels
OS: Basic, many expansions
Display modes: Text: 32x26, 40x24 (mono)
Graphics: 48x64, 256x192.


Media: Tape, cartridge  

Power supply:

4-pin male socket on the rear.
1 - Nc
2-4: 8V AC, 0.2A
3-4: 16V AC,1.6A

I/O: Keyboard
Joystick port for 2 joysticks (multiplexed)
Video output
System bus
Cartridge slot
Tape I/O for 2 recorders (Switched)
Possible upgrades: With
Other peripherals in collection:
 -- Texas Instruments Program Recorder cassette deck.
 -- Game cartridge "Schachmeister".
Software accessibility: TOSEC, dedicated sites

My unit is in relatively good condition. It is one of these European PAL units with YPbPr output, not composite.

Important note about internal power supply pinout. The internal power supply connector's pinout, if used to power the computer externally (or power regulator PCB replaced) should be compared using ohmmeter with a real hardware, +5V and ground can be checked with power pins of any  TTL chip, -5V and +12V with DRAM 4116 chips. Just don't trust any schematic, but test conductivity of IC connections with proper pins in power plug (disconnect plug from regulator before) in YOUR MAINBOARD. The pinout shown in schematic from technical manual (-5V, +12V, GND, +5V starting from sharp part) is totally different than in my unit (+12V, +5V, GND, -5V starting from sharp part). In another schematic accessible here, I can read another pinout: +5V, +12V, GND, -5V. It means that in different versions and revisions, the pinout of power connections changes. Do not damage your TI99 by giving it improper voltages from replaced regulator module or PC power supply. And if you power it up using PC power supply, do not disconnect -5V with other voltages present. This gives a really bad results on DRAM.
According to this source, my TI99/4A has TI99/4 power regulator module and has totally non-standard pinout.

During disassembly, be careful with power switch lever, is is fragile. There is also a cartridge port riser which should be inserted during reassembly.

Contents: Starting Tapes Pinouts Power plug Links


Computer starts to boot screen, then (if no cartridge is installed) when key is pressed, it allows to choose operating environment to run. Bare computer has only normal TI BASIC, so it can load and save programs only in TI BASIC, not in e.g. Extended BASIC (which can be started from cartridge). In TI BASIC, you can load program by positioning your tape and typing (ALPHA LOCK key down!):


There is no program name on tape, so you have to rely on your tape recorder's counter.
You may meet 2 errors: NO DATA FOUND means that there's no difference on line for some time - volume is too low or too high. If you get ERROR IN DATA, you can make computer read a fragment again. Press R, then rewind as prompted. If it have read more (tape advanced after replaying), you just increase volume a bit. If it can't read before first error, decrease volume. It is convenient to remember the counter position during this process.

To save program, go with:


Computer will ask to verify program, which is quite useful. Remember that if you get message like "PRESS ... THEN PRESS ENTER" it usually doesn't wait for this Enter :).

And again, you don't have any method of tape navigation other than a counter. And in fact TI BASIC is a really poor BASIC implementation with only the most simple commands. It cannot access most of available program memory easily, so Extended BASIC programs are usually just too large for it.

Preparing tapes

TI99 is very simple about file types, so it is urually easy to convert program recorded on tape to disk. It is harder in reverse. The typical way to transfer disk images is to use DSK, and programs is Fles In A Disk: FIAD. There are also compressed FIAD which can be uncompressed on TI99 with Extended BASIC and Archiver software.

To extract file from DSK image to TIFILES, use TIImageTool. You will get TIFILE type files, which are a type of FIAD. TIFILES have special marks inside to be transferred serially to TI99. This Java program works nice even in Linux.

To convert FIAD to sounds, you can use CS1er or Tape994a programs. CS1er works well with Linux and Wine, Tape994a will run only on Windows.

In fact, there is also one more format called V9T9 FIAD, and CS1er should have support for it. See here for details.

About cartridges... This is quite difficult. You will have problems if you think about burning EPROM, putting in some magic PCB and having a new cartridge. The cartridge memory is divided to ROM, maximum 8kB (but sometimes can be bank-switched like in some C64 cartridges) and serially-accessible GROM - Graphics ROM. After reading a byte from initialized GROM, the virtual "pointer" moves to next one and you can read it. This solution is perfect when keeping pictures, but is not good for random access. As with Commodore 64 there are different ways to build a cartridge.





Video pinout For European 'component video' YPbPr version only:

1 - +12V DC
2 - Y (you can use it as composite monochrome)
3 - Pr (R-Y)
4 - Pb (B-Y)
5 - Audio
6 - GND

There are at least 3 versions of video connector. DIN5 with composite, DIN5 with component (very rare) or DIN6 with component like this one. You have been warned. 

Cassette port pinout:

1,2 -  Deck 1, start/stop (1 to tip)
3,5 - Output to deck(3 to GND)
4 - Audio gate (??)
6,7 - Deck 2, start/stop (6 to tip)
8,9 - Input from deck (9 to GND)

You should be aware that all connectors have their own ground connections. The original cable had 5 connectors, In, Out and Start/stop to Deck 1, and Out and Start/Stop to Recorder 2. Recorder 2 cannot load programs, it can only save taking signal from computer's output. It was made intentionally not to destroy decks' outputs when two of them are playing simultaneously. Usually only single deck 1 is used.

Joystick port pinout

1 - NC
2 - Select joystick 2
3 - Up
4 - Fire
5 - Left
6 - NC
7 - Select joystick 1
8 - Down
9 - Right

In TI99, two joysticks share the same connections for Up/Down/Right/Left/Fire. They are multiplexed (switched very fast) as two additional keyboard rows. Joystick becomes "selected" when there is -0,5V in the proper Select line. All other time there is 5V on it.  Commodore joysticks can be used with adapter.




Making power plug

To make power plug for your TI99, you have to use 2 female Molex (in fact the proper name is AMP plug, but Molex is the popular name of these) plugs from old PC AT/ATX power supply unit, like these ones for connecting PATA hard drives or CD/DVD drives. You can see such plug in the picture. First, remove wires with metal parts from plastic plugs by pressing the metal protrusions in plugs' holes. Remove all wires. Select 3 of them you will use. I recommend using 3 different colors (Red, yellow and black in typical AT/X Molex plug), it makes further connections easier. Now prepare one plug by sticking two wires in the middle holes of it, and second plug by sticking single wire in the LEFTMOST hole (looking towards rear of plug, means front of TI99's connector and having trapezoidal side pointing upwards). Before, you may need to bend the small metal protrusions on metal parts of wires again to make them hook inside plastic plug, because you've bent them in the opposite direction when removing wires. Don't deform them too much there.

Now using small screwdriver make the metal rings a bit bigger by bending them outwards a bit. Pins in TI99's connector are bigger, so they need to be a bit bigger. Sticking one connector a time make them fit to upper (single pin on the left of the TI99) and lower (pins closer to each other) part of TI99's socket. Verify with pinout that single pin in plug does not go to NC pin (are you sure you haven't made a mistake? Maybe I made?), and both plugs are going with right angles surfaces facing together, chamfered outwards.
Now if you put the plugs with right angle (flat, without trapezoidal cut-offs) faces together, you will get a single plug with roughly shape of TI99's power socket, but with too big spacing between upper and lower pins. This is normal.

Using a sharp knife, remove a protrusion in the flat side. You can see it in the picture above between black and yellow wires. Using the same knife or small saw, remove protruding part of plug's rear too. You will see partially metal parts of wires, this is normal.
When you prepare two plugs this way and put them together, they usually still don't fit to TI99's power socket. You have to grind these surfaces a bit, but be careful not to cut them totally off on one side. Generally, grind some material, put them together and test with TI99's connector.
If both connector fit OK the same time, polish it using smaller file. Put them, test pins alignment and, using a strong glue, glue the plugs together. To make them sit well during glue drying out, you can put them to TI99's connector, removing excessive glue before and moving them from time to time not to make them stick to TI99.
As the last step, cover unused holes (except one for NC pin!) with strong glue. The ready plug can be seen in the left picture..
And don't forget about these loose wires. Use some elastic tube, heat-shrink tubing or sew them with a twine or sth. Weaving them in a braid is not a good idea :).





http://shawweb.myzen.co.uk/stephen/TI.htm - "Getting Started with TI-99/4A" book online and MESS emulation instructions.
http://www.chiark.greenend.org.uk/~pmaydell/hardware/tapeth/ - Description of one of computer
http://web.archive.org/web/20140923060256/http://www.ninerpedia.org/index.php/Media  - What media can be supported?
http://web.archive.org/web/20141012233723/http://www.ninerpedia.org/index.php/Formats - File formats of floppy images and ROM dumps.
http://www.mainbyte.com/ti99/hardware/cassette/recorder.html - Cassette recorder manual
http://www.mainbyte.com/ti99/index.html - Interesting site about TI99
http://www.mainbyte.com/ti99/man/console.html - Service manual with schematic of USA version
http://www.unige.ch/medecine/nouspikel/ti99/titechpages.htm - Technical resources
http://atariage.com/forums/topic/217298-good-joystick-for-my-old-ti994a/?p=2841169 - Connect two joysticks to TI99 (they're multiplexed).
http://www.robotsandcomputers.com/computers/ti_994A.htm - Pinouts and downloadable manuals
http://www.dsapsc.com/home-brew-hardware.html - Sound mod
http://www.harmlesslion.com/text/TI%2032k%20Mod.pdf - Memory mod
http://tigameshelf.net/ - Game archive
https://ftp.whtech.com/ - One of the biggest servers with TI99 resources.
http://www.harmlesslion.com/cgi-bin/showprog.cgi?search=Classic99 - Probably the most known emulator.
http://www.mrousseau.org/programs/ti99sim/ - Emulator, one of many.