ORIGINALLY PUBLISHED IN OCTOBER 1991 LIMA NEWSLETTER THE TI "99/2 BASIC COMPUTER" a hands on review by Charles Good Lima Ohio User Group Did you know that in 1983 TI came very close to selling a $100 home computer based on the 9995 CPU, the same CPU planned for the never released 99/8 and found today in the Geneve? Officially called the 99/2 BASIC COMPUTER, this cheap entry level machine was envisioned by TI as an inexpensive means of introducing the public to home computing and as a learning tool to teach BASIC programming. The 99/2 produces a silent black and white display on any TV and comes with a version of BASIC that runs 10 TIMES FASTER than TI BASIC. This is really amazing speed, and compares favorably with the speed of BASIC on some modern MS-DOS computers. I recently acquired one of these "never released" computers and have been playing with it extensively. A photo of the 99/2 appears in the December 1984 issue of MICROPENDIUM showing a little white paper sticker in the upper left side of the computer bearing the notation "Hex OK". My 99/2 has a similar paper sticker, apparently indicating a quality control text of the 99/2's Hexbus interface. I personally know of only two other 99/2's in private hands. ---------- THE LITERATURE, AND A SHORT HISTORY OF THE 99/2: It was the Summer of 1982 and the home computer price wars were just beginning. TI decided to produce a computer to compete directly with the $100 Timex/Sinclair 1000, and in 4 1/2 months they had working wire wrap prototypes of the 99/2 for display at the January 1983 Consumer Electronics Show. Photos of the 99/2's on display at this show appeared in March 1983 issue of 99er Home Computer Magazine showing a machine specific command module inserted in its rear expansion port. It is interesting that these show a difference from later production prototypes like the one I own. Later prototypes like mine have the Hexbus port on the extreme right side of the back of the computer, while the January 1983 CES photos show the Hexbus port in the middle of the back panel. Product development and the FCC certification process continued. I have a copy of the final "TI 99/2 MAIN LOGIC BOARD SCHEMATIC" containing the signatures of Mark Jander, project design engineer, and several other TI people involved in the project. The last of these signatures is dated 5/5/83. The time between initial product conception, FCC certification, and the first limited production run was about 8 months. An advertising campaign was developed and a two page ad showing Bill Cosby holding a 99/2 under his chin actually appeared in the May 1983 issue of Popular Science (inside front cover). An article was written by the 99/2 project development team for BYTE magazine (BYTE, June 1983, pages 128-134) that gives lots of technical details about the 99/2 computer and includes a photograph of the computer's circuit board. A review comparing the 99/2 other very cheap computers of that time appeared in COMPUTERS & ELECTRONICS, June 1983, pp. 48-51. The 99/2 is also illustrated and briefly described in the March 1983 COMPUTE! (p. 30-31) and the May 1983 issue of POPULAR COMPUTING (p. 28). And then the price wars really took off! According to ads in 99er Home Computer Magazine (April and May 1983) the price of a new 99/4A was $150. By mid-March the $70 cash price of the Timex/Sinclair 1000 was reduced even more with a $15 rebate (Computers & Electronics, June 83, p. 51). In June 1983 TI initiated a $50 rebate bringing the price of the /4A to $100. This was supposed to be the selling price of the 99/2, so just as full scale production was about to begin the May issue of 99er HCM announced that the /2 project was put on indefinite hold. The last 1983 published photo of the 99/2 I know about is on the inside back cover of the July 1983 issue of ENTHUSIAST 99 (volume 1, #2). In this advertisement for itself, ENTHUSIAST 99 shows the 99/2 just barely visible in the background shadow, right next to a 99/4 (without the A). How appropriate! ---------- SUMMARY OF THE 99/2's FEATURES: --9995 CPU running at 10.7 MHz. The 99/4A's 9900 CPU runs at about 3.3 MHz. --32K ROM with built in BASIC closely resembling TI BASIC except that color, sound, and joysticks are not supported. --4K RAM plus 256K "scratch pad RAM" directly on the CPU chip. 32K RAM and/or ROM memory expansion is possible. --Flicker free black and white TV display of 32 characters by 24 lines. This is done using a "direct memory access" video controller chip that uses CPU memory. There is no "video display processor" with its own VDP memory as there is on the /4A and Geneve. --Cassette interface compatible with the cassette interface of the 99/4A. --Hexbus port for use with all Hexbus peripherals. ---------- GENERAL DESCRIPTION: If you removed the right side of the 99/4A, the part with the cartridge port and the top cooling vent holes, what you have left would just be about the length and width of the 99/2. The /2 is, however, only about 1/2 as thick as the /4A. The /2's keyboard very closely resembles that of the /4A in size, number, and position of keys. However, the 99/2 has "chicklet" keys that are not nearly as nice to use as the full depression keys of the 99/4A. Although it IS possible to touch type using the 99/2, it isn't easy. You need a VERY heavy touch to depress the 99/2's keys. There are 48 keys including a CTRL and FCTN key. Where the alpha lock key is located on the /4A there is a BREAK key on the 99/2. The BREAK key does exactly what FCTN/4 does on the /4A (and the /2), it stops the running of a BASIC program and returns to command mode. The FCTN key, in combination with the top row of number keys produces the same results as on the /4A (DEL, INS, ERASE, etc) except for FCTN/=. This combination resets the /4A to the title screen but does nothing on the /2. (I consider the lack of a FCTN/= QUIT to be an improvement.) To exit BASIC with the /2 you either have to turn off the computer or type BYE, which I consider an improvement. As far as I can tell, the CTRL key on the /2 does nothing at all. Apparently this CTRL key can only be accessed from assembly language and not from 99/2 BASIC. All ports are on the back of the /2. As you face the rear panel, from left to right are the following: --EXPANSION PORT where cartridges and expansion memory plug in. According to the BYTE article the expansion port has all system control address and data bus signals and allows for expansion with RAM, ROM, or I/O cartridges. There is a 32K expansion memory space available that can be shared by RAM and ROM. The March 1983 99er has photos of a command module cartridge pluged into this port. Both the March 1983 99er and the BYTE article mention two command module programming tutorial titles specifically made for the 99/2. A 32K RAM memory expansion was also supposed to plug into this expansion port. I know of nobody who has actually ever seen these command modules or the memory expansion device. --TV. An RF modulator is built into the console, so the signal that comes out of this port is modulated. This means you MUST use a TV to display the output. You can't use a composite monochrome (or color) monitor to improve resolution, although a composite monochrome video signal is available via the expansion port. --"CASSETTE IN" and "CASSETTE OUT". These take take cables with "miniature phono plugs" at both ends and connect to the cassette recorder's earphone and microphone jacks. These cables did not come with my 99/2, but I had no trouble finding the correct cables at my local Radio Shack store. These ports support OLD CS1 and SAVE CS1. There is no automatic control of the cassette motor, but this causes me no trouble. The 99/2 does not support sound, so you hear nothing at all when saving and loading from cassette. The screen display goes blank during the actual save or load, and this helps you keep track of what is going on. The only error message is "NO DATA FOUND". There is no "ERROR DETECTED IN DATA" message as there is in the /4A. This caused me some confusion when I first tried to SAVE and then verify a typed in program. I kept turning up the cassette recorder volume in response to the NO DATA FOUND message, right up to maximum volume, without success. What I should have done was to reduce the volume. I have managed to find the correct volume setting on my TI Data Recorder and my 99/2 OLDs and SAVES quite reliably to and from cassette. The 99/2 BASIC programs I save to cassette can be successfully loaded into and run from my 99/4A. --"CH3 - OFF - CH4" This three position sliding switch sets the video output for channel 3 or 4, or turns the computer off. This recessed switch is very difficult to get at, and is the only way other then unplugging the power supply to turn off the computer. A more convenient on/off switch would have been nice. I often leave the computer "on" for hours and just turn off the TV. There is no automatic video blanking, so when you turn on the TV several hours later your display is still there waiting for you. --POWER. The power transformer (TI model AC9700) connects here. The two wire connector on the end of the transformer is apparently unique to the 99/2. It is a little white flat thing and I have seen nothing similar elsewhere. --"CC PORT" This is the Hexbus port. The "CC" designation on the back of the 99/2 apparently refers to TI's CC40 computer and is meant to indicate that the CC40's peripherals can connect to this port. ALL features of TI's never released HEXBUS INTERFACE for the 99/4A are supported by this port, including some features not mentioned anywhere in the 99/2 documentation. It is a good thing I have the 99/4A HEXBUS INTERFACE USER GUIDE or I would have missed some of these undocumented features. You can SAVE, OLD, LIST to and from this port, as well as OPEN #1:"HEXBUS...." and then PRINT #1 or INPUT #1 for complete file management. Some of the undocumented features include OPEN #1:"HEXBUS.CA.n" to INPUT CAtalog information from a wafertape or disk device number "n", and OPEN #1:"HEXBUS.TR.n" to TRansfer raw binary data between the computer and hexbus device n. ---------- VIDEO DISPLAY AND GRAPHICS: The only display available is in black and white and is comparable to the 99/4A's TI BASIC screen, with 24 lines that can contain up to 32 graphic patterns or 28 keyboard typed characters per line. The other graphic modes available on the /4A are not supported. The TV display is very clear, and does not show the annoying flicker or diagonal line interference commonly produced by the Timex/Sinclair 1000 computer. Characters corresponding to ASCII 0-127 are stored in ROM and can be displayed on screen. Only uppercase letters and usual special characters and digits (ASCII 32-96, 123-126) can be entered directly from the keyboard, but the other ASCII characters, including lower case letters, (ASCII 97-122) can be displayed using PRINT CHR$(XX), CALL HCHAR, and CALL VCHAR. The lower case letters are actually the same stupid small upper case letters normally displayed as "lower case" by the 99/4A. ASCII 0-31 are predefined graphic shapes (lines, open and closed squares and rectangles, etc). ASCII 127 looks really strange. On the 99/4A this is the DEL character and prints as a blank space. On the 99/2 this character looks like a little black round face with short legs. The two eyes and straight mouth show as uncolored (white) pixels. Because there is no CALL CHAR in 99/2 BASIC you cannot define your own custom graphic shapes, so this strange shape is probably included for use in games. I'll bet the 99/2 firmware author who created this was having fun. ---------- TI-99/2 BASIC: When you PRESS ANY KEY TO BEGIN from the title screen you are presented with the following: PRESS 1 FOR TI-99/2 BASIC I suspect that there is provision for command modules to add other items to this menu. When you press 1, the computer tells you TI-99/2 BASIC READY. 99/2 BASIC contains all the features of TI BASIC except those relating to color, sound, joysticks, and custom graphic shapes. The following is a list of 99/2 BASIC's reserved words, most of which should be familiar to you. ABS APPEND ASC ATN BASE BREAK BYE CALL CHR$ CLEAR CLOSE CON CONTINUE COS DATA DEF DELETE DIM DISPLAY EDIT ELSE END EOF EXP FIXED FOR GCHAR GO GOSUB GOTO HCHAR IF INPUT INT INTERNAL KEY LEN LET LIST LOG MCHL NEW NEXT NUM NUMBER OLD ON OPEN OPTION OUTPUT PEEK PERMANENT POKE POS PRINT RANDOMIZE READ REC RELATIVE REM RES RESEQUENCE RESTORE RETURN RND RUN SAVE SEG$ SEQUENTIAL SGN SIN SQR STEP STOP STR$ SUB TAB TAN THEN TO TRACE UNBREAK UNTRACE UPDATE VAL VARIABLE VCHAR POKE and PEEK allow the user some access to assembly language programming. These are not found in TI BASIC. CALL MCHL(address) allows you to execute assembly language (machine language) code starting at the specified address. CALL KEY(KEYUNIT,K,S) on the 99/2 only recognizes key units 0 and 1, both of which are interpreted the same. In TI BASIC you can have your choice of 5 key units, each of which returns different sets of values for K when the same specific keys are pressed. There is no GPL or GROM in the 99/2. The 99/2 BASIC interpreter is written in assembly, unlike the GPL BASIC interpreter of the /4A. This means that 99/2 BASIC is interpreted only once, not twice as is the case with TI BASIC on the 99/4A. This single interpretation of 99/2 BASIC, plus the faster speed of the 99/2's 9995 CPU (10.7 MHz) compared to the 9900 processor of the 99/4A (about 3.3 MHz) means that 99/2 BASIC is really fast!. 100 FOR N=1 TO 10000 110 PRINT N 120 NEXT N The above program takes 30 minutes 20 seconds in TI BASIC with the 99/4A. It takes only 3 minutes and 3 seconds in 99/2 BASIC. In this case, 99/2 BASIC is a blistering TEN TIMES FASTER than TI BASIC. For comparison, the same BASIC program took exactly 6 minutes to run to completion on my Tandy 1000HX, an XT clone running at 7.16 MHz. Barry Traver told me, "I saw a demo of the 99/2 at the original west coast TI show years ago. A guy typed in a benchmark program on the 99/4A and then set it going with RUN. He then walked over to the 99/2, typed in the same program and RUN. The 99/2 caught up with and passed the 99/4A. The 99/2's program terminated first." ---------- DOCUMENTATION: The 99/2 was supposed to be packaged with 4 instruction books, each book slightly more advanced than the previous. A demonstration cassette tape with three programs, "Cannon Blast", "Addition Tutor", and "Loans" also was supposed to be packaged with the 99/2. None of my sources know anything about the cassette tape except the titles. I have copies of what is claimed in the header on each page to be the "FINAL DRAFT" of the four 99/2 books, apparently printed by a main frame computer printer. The top of each page bears one of these cryptic notations: 1718L, 0266P, 0318P, 0319P, and 0326P. The books are titled "Getting Started", "BASIC for Beginners", "Advanced BASIC Programming", and "BASIC Reference Guide", also known as books 1,2,3 and 4. Book 4, the Reference Guide, is almost identical (often word for word and sample program by sample program identical) to the 99/4A's User's Reference Guide. Books 2 and 3 resemble, but are not identical to, the 99/4A's Beginner's Basic book (the blue book). Some nice application software listings are found at the end of book 3. It is obvious to me that these four books are not really FINAL drafts. There are lots of errors. Book one states that the zero is slashed so you can distinguish it from the letter O. It isn't. The docs say that FCTN/= (QUIT) resets the computer to the title screen. It doesn't. One of the sample programs in book 4 uses CS1 and CS2, but the 99/2 only supports CS1 as a mass storage device. The MEMORY FULL error message is mentioned several times in the books when in fact the 99/2 generates the message OUT OF MEMORY. There are other error messages that differ between the /4A and the /2. The documentation lists these messages as they would appear on a /4A. Some of the /4A's error messages are lacking on the /2, but still mentioned in the /2 books. For example, the ERROR DETECTED IN DATA cassette error message is mentioned several times in the books when no such message is generated by the 99/2. Important aspects of the Hexbus interface, such as the CAtalog feature, are not mentioned. I have discovered some error messages that are not mentioned in any of the 99/2 books. For example, under two different sets of circumstances I have run into the message INTERNAL ERROR, PRESS ENTER. Pressing then resets the computer to the title screen. Book 3 (Advanced BASIC) contains a heavily commented listing of a BASIC program designed to produce a neat moving graphic display with the 99/2's built in graphic characters (ASCII 0-31). The only problem is that the listed program is too large to fit into the 99/2's limited memory. Before you are finished typing in the program as listed, the computer informs you that it is OUT OF MEMORY. I have been told by knowledgeable sources that there are at least three kinds of 99/2's known to exist; wire wrap prototypes shown at the Jan 83 CES, production versions with 3 ROM chips such as that photographed in the BYTE article, and 99/2's with only one larger capacity ROM. Obviously my 99/2 is not one of the wire wrap jobs. I am afraid to pop the cover off my 99/2 (the cover is held in place by spring loaded metal clips, not screws) to see how many ROM's it has. The documentation errors mentioned above may be due to my 99/2 being different than those available to the documentation authors. Another possibility is that my 99/2 "FINAL DRAFT" documentation was written by individuals who only had printed specifications and did not have hands on access to an actual 99/2. ---------- CONCLUDING REMARKS: With the promised 32K memory expansion attached, the 99/2 would probably be easy to program in assembly for powerful applications. There is only one kind of programmable memory, CPU RAM. There is no GROM/GRAM or VDP RAM to slow things down and confuse the assembly programmer. BASIC programming on the 99/2 is also easy, and 99/2 BASIC's speed is probably unparalleled among 99/4A related products. Even TI Extended Basic does not begin to approach the speed of the 99/2's BASIC. Unfortunately, the 32K 99/2 memory expansion device is not known to exist, and the slightly over 4K of RAM is very restrictive. The usual method of estimating free memory with TI BASIC on the 99/4A is to run this program: 1 A=A+1 2 GOSUB A When the OUT OF MEMORY message appears, type PRINT A*8 to get the number of bytes of free memory. With TI BASIC the 99/4A without memory expansion and without any cartridge in the cartridge port gives an answer of 14536 to the PRINT A*8 command. My 99/2 shows only 4302. What little memory the 99/2 does have has to be used to control the video display as well as to store and execute BASIC programs. A BASIC program starting at line number 100, incrementing line numbers by 10, and ending with line number 1000 is about all that can be squeezed into the 99/2's RAM. Speed, and the potential of expanded memory give the 99/2 lots of potential as a serious computer capable of useful applications. However, without memory expansion, the 99/2 is little more than what TI envisioned for the product, a learning tool. .PL 1