Go to Stephen's Entry Page

Go to TI pages: TI Book front page |   Articles Index page |   TI Resources Page |   PC99 Review |   PC99 Programs

contact - please use subject="pc99 page" to avoid spam trap!

This page contains a description of the ancestor of the TI99/4A, the earlier TI99/4.


THE 99/4 HOME COMPUTER - description of an antique by Charles Good, Lima Ohio User Group.


TI began shipping the 99/4 (copyright 1979 on the color bar title screen) in October 1979. It cost $1150 bundled with a 13 inch color monitor (FORTUNE, December 3, 1979, p.54).

Initially you had to take the monitor and could not purchase the 99/4 separately, and most purchasers had to pay close to full price. Bundling was necessary because the 99/4 console passed but TIs TV modulator initially failed to pass FCC lab tests for noninterference with radio and TV broadcast reception. The modulator emitted too much RF radiation (BUSINESS WEEK, March 19, 1979, p.37). However, at that time the FCC did not regulate RF radiation from computing devices not hooked directly to TVs.

So TI got around the FCC regulations by offering to the public a "complete package". It wasn't until January 1, 1981 that the FCC began testing ALL computers likely to be used in a home environment for TV/radio broadcast interference (POPULAR COMPUTING, November 1981, p.6).

TI eventually came up with a TV modulator that would pass FCC tests and on November 28, 1980 began selling the console and monitor separately. The console's list price was $650 (BUSINESS WEEK, December 8, 1980, p.28). This was in one respect was actually a price increase, because the separate prices of the console and monitor were $250 more than their previous bundled price.

TI never published any sales data for the 99/4, but an independent market research firm estimated that TI would sell 25,000 between its introduction and the end of 1980 (FORTUNE, June 16, 1980, p.139). During the summer of 1981 TI quietly introduced the 99/4A with a list price of $525. By the time production of the 99/4A ceased in late 1983 or early 1984 the store price for a brand new 99/4A was $50, and over 1 million, perhaps several million 99/4As had been sold.


The most obvious differences are the keyboard, the lack of lower case letters on the "4", and the "4"s EQUATION CALCULATOR. Most "4"s have an earphone jack on the front for private listening, but mine doesn't. I will discuss most of these obvious differences in detail.

The 4A gets its "A" from the fact that it has a 9918A video processor, whereas the 99/4 has a 9918 video processor. The 9918A has bit map mode, which is not found on the 9918 processor. This means that any software that uses bit map mode will not run on the 99/4. Other differences between the 99/4 and 99/4A (such as the "4"s lack of an XOP assembly directive) are referenced in the index of the Editor/Assembler manual (p.456) under the heading "Computer differences".

In general, all software written for the "4" will run on the 4A. Some complicated routines on the 4A were required to achieve this compatibility. The "4" has 256 bytes more free memory in TI BASIC than the 4A, so some BASIC software written on a "4" may not work on an unexpanded 4A. Lots of assembly or GPL software written for the 4A will NOT work on the "4", and there is no easy way to upgrade a "4" to a 4A.

The Mini Memory module and its line by line assembler, and the E/A module and its editor and assembler work OK on the "4".

A partial list of "won't work on the 99/4" software includes TI-Writer, Multiplan, Funnelweb v4.x, the LINES program that comes with the Mini Memory module, all the Milton Bradley game modules that were created to accompany the MBX system, Word Invasion, Parsec, Story Machine, Alpiner, Dragon Mix, and Word Radar. Most of these modules and the LINES program are probably incompatible because they use bit map mode.

There are probably other reasons for the incompatibility of Multiplan, TI-Writer, and Funnelweb. Even the non-editor parts of Funnelweb won't work on the "4". When you boot Funnelweb into the "4" using the extended basic module, the title screen shows blanks where there should be lower case letters. You can then go to Funnelweb's extended basic user list, but here the "4" locks up. You can't boot any software from the XB user list.


There are 41 "chicklet" style keys, each slightly contoured and shaped like a narrow rectangle. The 4A keyboard has 48 keys. Although each 99/4 key depresses separately, the keys are not what experienced users would call "full travel" There is no tactile response, no click, before the keys suddenly bottom out at the end of their downward travel. Non-alphanumeric keys include one (and only one) SHIFT, an ENTER, a SPACE bar, and a SPACE key immediately to the left of the "A" key.

Alpha keys always produce upper case letters, so the SHIFT key is not used as often as it is on the 99/4A. There is are no ALPHA LOCK, FCTN, or CTRL keys on the "4". The "4"s SPACE key and bar do exactly the same thing, leave a blank space. I can see no reason at all for this space KEY, in addition to the normally positioned space bar. There are ASCII characters built into the 99/4 console that are not implemented on its limited keyboard, yet there is this extra space key.

Touch typing on the 99/4 is difficult. The keys are spread apart the same distance as on the familiar 99/4A keyboard, so it is possible to get all your fingers at once onto the keys. But the small vertical size of the keys and their lack of tactile feel makes touch typing difficult.

The small size and minimal contour of the "4"s keys makes it difficult for a touch typist to find by feel and seat his or her fingers in the center of the desired keys as the fingers move blindly around the keyboard. The fully contoured much larger keys of the 4A (larger because there is less space between keys) makes touch typing much easier. A special problem to experienced touch typists is the lack of any key to the right of the "L". This means there is no "home" key for the little finger of the right hand to touch, and this will drive most touch typists crazy.

Frequently, when I try to type on my "4" I end up accidently moving my fingers over one key to the left on the home key row so that all ten fingers have something to touch. My left hand pinky finger is then on the useless SPACE key instead of on the "A" where it should be. Then I type rtow fevfw. TI recognized this problem. The only application software written for the 99/A that is likely to require touch typing, the Terminal Emulator II, has a keyboard overlay (for the /4) with a raised area creating a fake key for the right hand's little finger.

TI provided a series of overlays specifically for use with the 99/4 and not usable with the 4A. Some overlays were packaged with the "4" and others were available with specific command modules. Because of the narrow vertical size of each key there is enough room between rows of keys on the "4" to display a text prompt immediately above ANY key, not just above the numeric keys as is the case with the 4A. The overlays have text prompts for special keypresses, and cover the entire "4" keyboard, with the keys sticking up through holes in the overlay. Special keypress usually involve using the SHIFT key in combination with a letter key.

One overlay packaged with the "4" shows the editing keys used in BASIC.
SHIFT/Q=quit. SHIFT/W=begin. SHIFT/ESDX= arrows.
SHIFT/R=redo. SHIFT/T=erase. SHIFT/A=aid.
SHIFT/F=delete. SHIFT/G=insert. SHIFT/Z=back.
SHIFT/C=clear. SHIFT/V=proceed.

There is nothing intuitive about some of these keypresses (why not SHIFT/B instead of /Z for back), so the overlay is really needed. Another overlay packaged with the "4" shows the split keyboard keys that can be used with some games to simulate the 8 positions of joysticks #1 and #2. In addition to the overlays packaged with the computer, I have seen overlays designed for use with the following command modules: Terminal emulator I, Terminal emulator II, Video graphs (PHM3005), and Video Chess. There may be other overlays I haven't seen.

One of the reasons I give the 99/4 my "real dog" rating is the uncontrollable multiple repeat of the keys on my "4"s keyboard. This makes it almost impossible to do any useful typing, touch or hunt and peck, on my "4". Autorepeat of all keys at rate of 12 characters per second after a 1 second delay is listed as a NEW feature of the 99/4A (99ER MAGAZINE, Vol 1 #2, July/August 1981, p.48).

Autorepeat is NOT described in TI literature as a feature of the "4". On my "4" any of the keys are likely to repeat INSTANTLY. When you depress a "4" key, the keypress registers in the memory of the computer at a point about 1/2 way down the travel of the key. There is no tactile response that this has occured.

The only thing your finger feels during a keypress is the sudden stop when the key bottoms out. If the key hovers in this "1/2 way down" region you get mmmultiiiplle displays of theee keeey on the scrrreennn. Try as I might, I can't seem to avoid this. My "4"s keyboard is very sensitive.

Other experienced 4A users who have tried my "4" all have the same problem. Having to use backspace (SHIFT/S) and delete (SHIFT/F) after every 6-10 keystrokes gets old really fast. It has been suggested to me that this problem may be related to the ageing of my "4". The condition may not have existed when my "4" was built. One collector of TI computer products told me, "I had a 99/4 that did that. I got rid of it and replaced it with a 99/4 that still works fine."


No keypress on the "4" keyboard will give ASCII codes 97-122, the lower case letters. Everything you type is in upper case, and this means you only use the SHIFT key in routine typing to shift the numeric keys and display !@@#$%^&&*(). The 99/4 uses a 5x6 pixel grid to display upper case letters. The 99/4A uses a 5x7 grid to display both upper case and lower case text. If you load into the "4" BASIC software written on a 4A that includes lower case text, the program seems to work OK, but no lowercase letters are displayed on screen.


When you PRESS ANY KEY TO CONTINUE from the color bar powerup screen of the "4", you get a menu with three choices. Press 1 for TI BASIC, 2 for EQUATION CALCULATOR, 3 for TITLE OF COMMAND MODULE.

The EQUATION CALCULATOR is a way of using the "4" in mathematical calculations without having to write a BASIC program to do the calculations. You can do simple arithmetic, and you can also use exponential numbers, PI, SQR, exponents, SIN, COS, TAN, and ATN in your calculations. Everything that can be done using EQUIATION CALCULATOR can also be done using a TI BASIC program, or directly from BASIC command mode.

The EQUATION CALCULATOR screen is divided into three sections. The bottom section is where you do your calculating. You can, for example, type in a simple calculation such as 1567+56.98-145+(12/98), press <enter>, and display the answer. To do the same thing in BASIC command mode, you would have to type PRINT before you typed the numbers of the calculation. A single calculation is limited to 28 characters (one line of text).

You can define variables such as LENGTH=60, press the up arrow, and have this variable stored in memory and permanently displayed in the upper third of the EQUATION CALCULATOR screen. You can display up to 6 variable names and their current values on screen in this way and not have to worry about the display scrolling off the top of the screen. You can do the same thing in BASIC command mode by pressing <enter> after typing LENGTH=60. The value of LENGTH would be stored in the computer's memory, but it would only remain on screen until it scrolled off the top due to subsequent entrys.

You can also define an equation such as PERIMETER=2*LENGTH+2*WIDTH and store this equation in the middle part of the EQUATION CALCULATOR screen. You can then define the values of the variables LENGTH and WIDTH, use the down arrow to bring the equation into the bottom work area of the EQUATION CALCULATOR screen, press <enter> and display the current value of PERIMETER. You can then redefine LENGTH and/or WIDTH, and reuse the equation to calculate the new value of PERIMETER. You can also store equations for repeated use in a BASIC program, although you cannot store such an equation in memory in BASIC command mode. In command mode you would have to retype the equation each time.

I don't think EQUATION CALCULATOR is very useful. Apparently TI didn't either, because they dropped it when the 4A was released. From BASIC (a program or from command mode) you can do all the same things, and more. The main limitation of EQUATION CALCULATOR is the 28 character size of a formula or chain calculation. The most common routine calculating I do on my 99/4A is to balance my checkbook.

I enter BASIC command mode and type PRINT, followed by my initial bank balance, followed by all my subsequent withdrawals (as minus numbers) and deposits (as positive numbers). Before I press <enter> to display my balance I can check the screen to see that all the numbers in the calculation are typed correctly and use INSERT or DELETE to correct mistakes. Such a long chain calculation requires several lines on the screen to display all the digits before pressing <enter>.
TI BASIC command mode gives me 4 lines.
EXTENDED BASIC command mode gives me 5 lines.
EQUATION CALCULATOR allows me only one line of digits.


When it was released in 1979 the 99/4 was the only consumer device that could really be called a "Home Computer". It was the first to utilize cartridge software. Its speech synthesis was, and still is, unequaled. It was easy to use, easy to program in BASIC, and it was powerful. Its high price was probably the major reason for its initially limited sales. Its rotten keyboard didn't help either. I'm sure glad we now have the 99/4A. The 4A is much superior to the "4".



Mike Wright
45 Centerville Drive, Salem, New Hampshire 03079

December 21, 1990.

(1999- Mike Wright sells the PC99 emulator which lets you run TI programs on a PC)

The 99/4 proved to be more elusive than I had thought. For example, 99'er only put out one issue before the 4A was announced. TI chose not to mention the release of the 4A in its own newsletter. The resultant material is thus a bit of a composite picture, but there is a lot of information there. I found the end piece on the 99/2 compatibility surprising, to say the least.

The end of the 99/4 was signalled by TI at the Consumer Electronics Show.

The following was extracted from the "99/4 Home Computer Users-Group Newsletter", Vol 1 No. 6, August 10, 1981:
"On June 30th Texas Instruments Consumer Products Div. announced at the Consumer Electronics Show a revised 99/4 computer console labeled the 99/4A. Also T.I. announced another price reduction in the suggested retail price of their console at $525.00." (Note that 99'er Magazine gives the dates of the show as May 31 through June 3, 1981)

The differences between the 99/4 and 99/4A were described in 99'er Magazine, Vol 1 No. 2, p48:
"Enter the 99/4A personal computer -- a new console that retains the same profile, speech capability, color graphics and software compatibility of its predecessor, but replaces the old 40-key calculator-style keyboard with a standard-configuration, 48-key typewriter keyboard. This, in itself, would be quite a welcome improvement; but take a closer look at the new keyboard's specifications and you'll soon discover that it really is a new keyboard and not just the recipient of some superficial cosmetic changes.

Witness its impressive array of features: such niceties as both upper and lowercase; an ALPHA LOCK key (for conveniently keeping the keyboard in uppercase mode); auto repeat (with a two second time delay) on all keys; function (FCT'N) and control (CTRL) [sic] keys (for secondary functions and telecommunications use); and finally, a Basic that will accept both upper and lowercase characters but displays all reserved words, variable names, and subprogram names in capitals for easy identification. How's that for versatility.

The keyboard action has an excellent "feel". Although it is still the same small size as it predecessor, touch typing on this new keyboard gives you the illusion of typing on a big office machine.

It seemed quite capable of keeping up with my occasional blinding bursts of speed -- something the old keyboard (and quite a few other microcomputer keyboards as well) is incapable of doing.

Incidentally, I have been informed by Texas Instruments that since the circuit board has been re-designed, there's no practical way of retrofitting existing TI-99/4s with the new keyboard.

In addition to the features I've mentioned above, there have been some other changes ...

Don't expect the familiar keyboard overlay to fit this new machine. Instead, it uses a two-level strip overlay mounted above the top row of keys (similar to supermarket shelf pricing strips and holders).

Also, due to some ROM/GROM swaps on the new circuit board, the console now has a built-in "trap" circuit (that has to be installed in the old console through a separate factory modification) for TMS9900 assembly language debugging on the UCSD Pascal Development System...; in the process, however, the console lost its Equation Calculator mode."

The indifference of TI to the introduction of the 4A is reflected in its own newsletter "Texas Instruments Personal Computer User's Newsletter".

The June 1981 issue only contains references to the 99/4 computer. Then in August 1981, on page 4, the newsletter casually refers to the "growing list of applications programs available for the TI-99/4 and TI-99/4A computers".

There is no official mention of the end of 99/4 production. My guess is that TI did not want to upset existing purchasers, since the 99/4 could not be upgraded to a 99/4A.

The following material is taken from "TI-99/4 and TI-99/4A Personal Computer System Software, Comprehensive Specification", dated February 25, 1983. It illustrates some of the problems TI had with the original 99/4 console, and how they were fixed or affected the 99/4A:

"Section 4. TI-99/4A Keyboard Scan Routine.
4.1 Introduction.
The TI-99/4A has a 48-key typewriter style keyboard. In order to support this new device and maintain compatibility with existing software, a rather complex keyboard scan routine was written. The following sections explain the various aspects of this routine.

4.2 State of the Keyboard.
The TI-99/4A keyboard has three possible states. They are:
1. TI-99/4 Emulator keyboard.
2. Pascal keyboard.
3. Basic keyboard.
Also, to maintain compatibility with existing software, the scan routine supports a split keyboard configuration.

The console software maintains an internal flag which determines the state of the keyboard. This flag can be controlled by any application by means of the keyboard number parameter in the GPL status block. The keyboard number parameter is in CPU RAM location >8374. The value 0 is used to scan the keyboard in whatever state it happens to be. The values 3, 4, and 5 are used to change keyboard states. The following paragraphs describe each state of the keyboard and the use of the keyboard number parameter to select that state.

4.2.1 TI-99/4 Emulator Keyboard.
The TI-99/4A powers up with the keyboard in this state. The keyboard number is set to zero. If an application needs to return to this state from some other state, the keyboard is scanned with keyboard number set to 3. Scanning keyboard number three sets the internal state flag to "99/4 Emulator", resets the keyboard number parameter to zero, and performs a keyboard scan in that state. Thereafter, the keyboard may be scanned with keyboard number set to 0.

In this state only 99/4 keyboard values are returned. There are three exceptions : [, \, and ]. These characters were built into the 99/4 console but were not implemented on the keyboard.

All other key codes are ignored and a no key condition is returned. For example, "CONTROL 1", which returns the value >B1, is not a legal 99/4 key. Therefore, the scan would return "No Key" for "CONTROL 1". Another result is that in this state the keyboard is "alpha-locked" regardless of the state of the ALPHA LOCK key."

"Section 6. TI-99/4A Basic.
6.1 Functional Changes.
The following is a list of the functional differences between 99/4 Basic and 99/4A Basic:

1. 99/4A Basic uses the "Basic" version of the keyboard described in section 4.2.3. The state of the keyboard can be changed by CALL KEY. However, the state reverts to "Basic" whenever Basic returns to the command level, e.g. at program termination or on a breakpoint.

2. Both upper and lower case character definitions are initialized. Since Basic uses dynamic allocation for the "graphics" characters, this means that 99/4A Basic powers up with 256 fewer bytes of free memory than 99/4 Basic does.

3. Input in the edit mode or in response to a program INPUT statement now includes an auto-repeat feature. A key which is held down for a second will begin to repeat at a rate of 12 characters per second.

4. The "Equation Calculator" was removed.

5. Failure of an OLD command no longer necessarily destroys the program previously in memory. Since the current program may or may not be partially overwritten before the "OLD" failure, a warning message is displayed.

6. The cursor was changed to a solid rectangular box.

6.2 Bug Fixes
The following is a list of bugs in 99/4 Basic which were fixed in 99/4A Basic:
1. Line numbers listed to a peripheral device are printed properly at a record boundary.

2. The POS function will now find substrings beyond position 127.

3. 255 byte records are now properly blank-filled.

4. String expressions in CALL SOUND do not crash the system.

5. User-defined numeric functions with string parameters will return values near zero.

6. Programs with breakpoints may be safely edited.

7. Editing a program followed by performing an imperative command will not destroy the program.

8. Multi-line insertions and deletions do not garbage the margins.

9. Dimension wrap-around at 65536 has been fixed.

10. Garbage collection lockup when using files has been fixed.

11. Illegal long constants in INPUT, READ, etc. generate error messages rather than crashing system.

12. Illegal uses of UDFs cause error messages rather than destroying the program.

Section 7. GPL Interpreter Modifications.
Three known bugs in the GPL interpreter were fixed. The bugs and the fixes are described below.
7.1 CRU IN
The CRU IN portion of the GPL I/O instruction has never worked. The interpreter uses the information provided by the GPL instruction to create the appropriate 9900 CRU instruction. The 9900 instruction is then executed in a register. Because an increment-by-two instruction was used in place of an increment instruction, the original code was not creating a legal CRU IN instruction. Changing the increment-by-two to an increment fixed this bug.

7.2 CASE
The GPL CASE instruction has caused problems in some application programs. The problem is one of timing. The original code repeatedly performs two successive GROM reads with no time delay between them. Therefore, some GROMs which pass virtually every other test may fail to execute a particular CASE statement because of this timing problem. To fix this problem, a NOP was added between the GROM reads.

The original GPL FETCH instruction would not fetch data into VDP RAM. The source of this problem was a register conflict. A register containing certain flags was being used to save another value during execution of the FETCH instruction. This bug was fixed by using a free register to save the necessary value during FETCH execution."

"Section 9. Other Modifications.
9.1 BREAK Key Routine.
One of the major problems in converting from the 99/4 keyboard to the 99/4A keyboard was the location of the Basic "BREAK" key.

On the 99/4 "Shift-C" was used both as the Basic "BREAK" key and the RS232 "ABORT" key. Unfortunately the Basic interpreter, Extended Basic interpreter, and RS232 directly scan the keyboard lines to check for this key. The problem arises from the fact that "Function-4", instead of "Shift-C", is the "BREAK" key on the 99/4A.

Therefore, some rearranging had to be done on the 99/4A keyboard to insure that "Function-4" was located in the keyboard matrix at the same position as "Shift-C" on the 99/4 keyboard.

To avoid this problem in the future, a "Check for BREAK key" routine was added to the console software. This routine is executed via a BL @@>20 instruction. This routine only modifies the value of register 12. If the BREAK key is down, it returns to the caller with the equal bit set. Otherwise it returns with the equal bit reset. All future software which needs to check for this key must use this routine rather than testing keyboard lines directly.

9.2 ROM-Only Applications.
For the 99/4 every SSS command module application had to have at least one GROM. The system power up code only searched the GROMs for applications programs. The TI-99/4A has the additional capability of executing ROM-only applications. The power up code now checks CPU memory location >6000 (usually referred to as ROM-in-GROM) for a valid ROM/GROM header. It then searches the linked list of user programs (if any) indicated by that header. These user programs are added to the applications selection list. Some 99/4As have this capability; others do not.

9.3 New Character Definitions.
The 99/4A keyboard has the capability of generating the full Ascii character from 0 to >7F. To further enhance this capability, definitions for the complete Ascii printable character set were added to the console. The previous 5x6 uppercase character set was increased in size to 5x7 and lowercase definitions were added. Due to software compatibility issues the console will still power up with the 6x8 uppercase character set and the character loading routines are as follows:

1. Console routine >16 loads the 6x8 character set which includes characters >20 through >5F.

2. Console routine >18 loads the 5x7 uppercase character set which includes characters >20 through >5F.

3. Console routine >4A loads the 5x7 lowercase character set which includes characters >60 through >7E.

These routines are executed by storing the starting VDP RAM address in CPU RAM location >834A and performing a GPL CALL instruction to the appropriate routine."

"Appendix B. Compatibility.
In general there will be no designated compatibility between the TI-99/4 and any previous computers.

There is no compatibility with products of Texas Instruments calculator line. The Basic language is very similar to other microcomputer Basics, however, most programs will need some changes to run on the 99/4.

Any programs which use the graphics capabilities of other computers will need to be totally rewritten to run on the 99/4. The memory format of a Basic program is unique as are most personal computers. The image which is recorded to mass-storage in SAVE command is this memory image which limits the capability of transporting Basic programs to other computers even if they could read our mass storage media.

Peripheral devices for the 99/4 including the Mini-floppy Disk and RS-232 Interface will not work on any other personal computer. Peripherals from other computers will not work on the 99/4 except for those with RS-232 interfaces which can be attached to our RS-232 peripheral. The media or other mass storage peripheral (audio tape or disk) will not be transferable to the 99/4.

The TI-99/2 Basic program cassette tapes are compatible with the 99/4, but the 99/2 is not compatible with 99/4A Solid-State Software, or vice-versa."


[ TI Book front page   |    TI Resources Page    |   PC99 Review    |   PC99 Programs ]