Texas Instruments TI-99/4A

From Wikipedia, the free encyclopedia

Texas Instruments TI-99/4A
Type Home computer
Released June, 1981 (99/4 in June, 1979)
Discontinued October, 1983
Processor TI TMS9900 @ 3.0 MHz
Memory 256 bytes + 16 KB VDP (graphics RAM)
Operating system TI BASIC
1979 TI-99/4 with RF modulator, optional Speech Synthesizer, keyboard overlays, and a cartridge. Note orange shift keys.
1979 TI-99/4 with RF modulator, optional Speech Synthesizer, keyboard overlays, and a cartridge. Note orange shift keys.

The Texas Instruments TI-99/4A was an early home computer, released in June of 1981, originally at a price of USD $525. It was an enhanced version of the less-successful - and quite rare - TI-99/4 model released in late 1979 at a price of $1,150. The TI-99/4A added an additional graphics mode, "lowercase" characters comprised of small capitals, and a full travel keyboard. Its predecessor, the TI-99/4, featured a calculator-style chiclet keyboard and lacked any provision for lowercase text.

Contents

[edit] Features

The TI-99/4A's CPU, motherboard, and cartridge ("Solid State Software") slot were built into a single console, along with the keyboard. The power supply board (linear in early systems, switching in later systems) was housed below and in front of the cartridge slot under the sloped area to the right of the keyboard.

Available peripherals included a 5¼" floppy disk drive and controller, an RS-232 card comprising two serial ports and one parallel port, a P-Code card for PASCAL support, a thermal printer, an acoustic coupler, a tape drive using standard audio cassettes as media, and a 32 KB memory expansion card.

In the early 1980s, TI was known as a pioneer in speech synthesis, and a highly popular plug-in speech synthesizer module was available for the TI-99/4 and 4A. Speech synthesizers were offered free with the purchase of a number of cartridges and were used by many TI-written video games (notable titles offered with speech during this promotion were Alpiner and Parsec). The synthesizer used a variant of linear predictive coding and had a small in-built vocabulary. The original intent was to release small cartridges that plugged directly into the synthesizer unit, which would increase the device's built in vocabulary. However, the success of software text-to-speech in the Terminal Emulator II cartridge cancelled that plan. (Most speech synthesizers were still shipped with the intriguing door that opened on the top, although very few had the connector inside. There are no known speech modules in existence for those few units with the connector.) In many games (mostly those produced by TI), the speech synthesizer had relatively realistic voices. As an example, Alpiner's speech included male and female voices and could be quite sarcastic when the player made a bad move.

In terms of expansion, initially the idea behind the TI-99/4 was that peripherals would be connected serially to the console and each other, in a 'daisy-chain' fashion. The 'sidecar' expansion units could be connected together in a continuing chain, but could rapidly occupy an entire desktop and cause crashes and lockups due to the large numbers of connectors on the system bus.

This original idea was soon replaced by the now-familiar expansion card. Encased in cast aluminum, these plugged into the bulky "Peripheral Expansion System" (usually known among TI owners as the Peripheral Expansion Box or "PEB"), an eight slot chassis made of two plies of thick-gauge steel, containing its own linear power supply and a full-height 5¼" floppy bay. Each card also had its own "access light", an LED which would blink or flicker when the card was being used by software. Another unique feature of the Peripheral Expansion System was that the section of the power supply that powered the card slots was unregulated - each card had on-board regulators for its own requirements, thus reducing power consumption on a partially-loaded PEB and allowing for future expansion cards which might have unusual voltage requirements.

Even more unusual was an analog sound input on the expansion bus. This allowed the TI Speech Synthesizer's audio to be carried through the console to the monitor. The audio was also carried through the ribbon cable ("firehose", as TI users often call it) to the Peripheral Expansion System, both allowing the relocation of the Speech Synthesizer to the Expansion box and allowing for the possibility of audio cards offering more features than the console's built-in sound.

State Of The Art, 16 bits in 1979 - a TI-99/4 console fully loaded. Note the rare Thermal Printer.

Early models (the TI-99/4, identified by its keyboard and "(C)1979 TEXAS INSTRUMENTS" on the title page) included a built-in equation calculator, but in the 99/4A ("(C)1981 TEXAS INSTRUMENTS") this feature was discontinued. All consoles included TI BASIC, a strict ANSI-compliant BASIC programming language interpreter which was largely incompatible with the more popular Microsoft BASIC. Later consoles, identified by "(C)1983 TEXAS INSTRUMENTS V2.2" on the title page, also removed the ability for the system to execute unlicensed ROM-based cartridges, locking out third-party manufacturers such as Atarisoft.

The system also supported saving and loading to two cassette drives through a dedicated port, and had a joystick port that supported two digital joysticks, which TI referred to as "wired remote controllers". The two joysticks were connected through a single nine pin port, which therefore supported only TI joysticks directly. Aftermarket adapters were available which allowed the use of two Atari-compatible joysticks. Composite video and audio were output through another port on NTSC-based machines, and combined by an external RF Modulator for use with a television. PAL-based machines output a more complex component-like signal which is also modulated externally.

[edit] First domestic computer with a 16-bit processor

The TI-99/4 series holds the distinction of being the first 16-bit personal computer. The TI-99/4A had a 16-bit TMS9900 CPU running at 3.0 MHz. The TMS9900 was based on TI's range of TI-990 mini computers. There's some discussion about whether it should be recognized as an early RISC processor, but in truth it had very few of the features traditionally associated with RISC - it had a rich instruction set, a complex fetch/decode/process/store architecture (which required external support from the clock), extremely variable instruction timing and size, and a rich selection of addressing modes. Using the more modern differentiator of register-based or memory-based architecture, the 9900 clearly falls into the memory-base.

One feature that some have looked at as either being inspired by, or alternately inspiring, RISC processors was the concept of 'Workspaces'. Only the Program Counter, Status Register, and Workspace Pointer registers were on the chip, all work registers were kept in RAM at an address indicated by the Workspace Pointer. 16 registers were available at any given time, and a context switch instruction which changed to another workspace automatically allowed fast context switches compared to other processors which may have had to store and restore the registers. To support this requirement on a machine which only had video RAM available, a 256-byte block of RAM called the "scratchpad" was included. This memory was placed directly on the 16-bit bus with no wait states and is the fastest RAM in the machine.

Although the CPU was a full 16-bit processor, only the system ROMs and 256 bytes of scratchpad RAM was available on the 16-bit bus. All other memory and peripherals were connected to the CPU through a 16-to-8-bit multiplexer, requiring twice the cycles for any access and introducing an additional wait state. (This is reportedly due to the failure of a new 8-bit processor being designed by TI for this system, the 9900 processor was already in production and proven.) A popular user modification in later years involved "piggybacking" static RAM chips onto the console's 16-bit ROM chips, allowing a standard 32K RAM expansion without the wait state and approximately a 30% speed increase for many applications. Most hardware was based on the system clock, not the program execution speed, and the hardware access still ran through the 8-bit bus with the wait states intact, so this particular modification was not known to impact any peripherals.

Like most machines of the day, the TI-99 series incorporated a Video Display Processor to handle the generation of its display. The Video Display processor in the 99/4 was a TMS9918. It lacked a bitmap mode, which was added in the 99/4A. The VDP in the American 99/4A was the TMS9918A (which gives the machine the A in its name). In the European PAL consoles this was replaced with the TMS9929A which also powered MSX machines.

A unique feature of these VDP chips is that they contained hardware support for super-imposing on-screen graphics over other video signals. Although TI announced a Peripheral card called the Video Controller Card which allowed the control of select Laser Disk players, which could switch between the TI's display and the Laserdisc player, the 'genlock' capability of the 9918 was disabled in the design of the 99/4A and would require hardware modifications to use.

All accesses to the VDP system were executed 8 bits at a time. Although this impacted performance, it made it somewhat easier to upgrade the VDP when newer, relatively compatible chips were released by Yamaha. Peripherals from Mechatronics, and Michael Becker, simply called "80-column cards" included the Yamaha V9938 VDP which gives the 99/4A a top resolution of 512×424 in 16 colours or 256×424 in 256 colours. This also increased the VDP memory from 16K to a maximum of 192K, although only software explicitly written for the 9938 could take advantage of it.

The unusual architecture of the 99/4 series is documented to be due to the failure of the 9985, an 8-bit processor which was being created especially for the machine. When it was abandoned, the 16-bit 9900 was selected to replace it, and a great deal of 'glue logic' had to be added to fit the processor into the existing design, while no changes were made to take advantage of the 9900's strengths.

[edit] "Plug and Play" hardware support

All TI-99 models, from the earliest TI-99/4 to the unreleased TI-99/2 and TI-99/8, included "plug and play" support for all peripherals. Device drivers (called "Device Service Routines", or DSRs) were built into ROMs in the hardware; when a new card was inserted, it was immediately available for any software which needed or wanted to use it. All device access utilized a generic file-based I/O mechanism, allowing new devices to be added without updating software to use it. However, each card ran at a hard-wired address on the CRU (Communications Register Unit) bus, and so multiple cards of the same type could not be supported without modification. The only official card known to be modifiable was the RS232 card, which supported two different base addresses. This allowed the system to support four RS232 ports and two parallel printer ports. 4-line BBSes were being run, using properly jumpered serial cards, on TI-99/4A systems as recently as the mid 1990s.[citation needed]

Most hobbyist-created cards released after TI's exit from the hardware business included switches to set the base CRU address.

The HexBus Interface was designed in 1982 and intended for commercial release in late 1983. It connected the console to peripherals via a high-speed serial link. Though it was prototypical to today's USB (plug and play, hot-swappable, etc.), it was never released, with only a small number of prototypes appearing in collector hands after TI pulled out of the market. Several HexBus peripherals were planned or produced. A WaferTape drive never made it past the prototype stage due to reliability issues with the tapes. The 5.25-inch Floppy drive also never made it past the prototype stage, even though it worked. A 4-color Printer-Plotter, a 300-Baud Modem, and an RS-232 Interface were released in quantity, mostly for use with the TI CC-40. All HexBus peripherals could be used with a TI-99/4A when connected through the HexBus Interface, through direct connection to the TI-99/8, or through direct connection to the Texas Instruments Compact Computer 40.

[edit] VDP RAM and GPL

Texas Instruments engineers afforded the TI99/4A's graphics coprocessor, a TMS9918A 16K of VDP ("Video Display Processor") RAM, stored in DRAM with the VDP handling refresh. This was the primary RAM in the unexpanded console and the maximum that the VDP supported.

VDP RAM was also used for temporarily storing users' BASIC programs. BASIC was implemented on the TI-99 series using a second interpreted language called Graphics Programming Language, or GPL. The GPL interpreter resided in the ROMs and took control of the machine at power-up, and was very close to the native 9900 machine code, adding instructions to transparently access the different types of memory in the machine and perform higher level functions such as memory copy and formatted display.

The TI minicomputer-inspired architecture of the TMS9900 series meant that the "Workspace" of registers currently in use were stored in main memory. Because static RAM was also very expensive in the early 80's, TI only gave the machines 256 bytes of fast "scratch pad" RAM where register workspaces could be stored.

The same VDP was used in the MSX and ColecoVision machines. Further upgrade chips, the 9938 and 9958, were produced by Yamaha based on TI's design. Boards were created that took advantage of these new chips to upgrade the graphics capabilities of the TI-99/4A. The 9938, the more common of the two upgrades, allowed 512 * 424 pixels at 16 colours, or 256 * 424 at 256 colours. These upgrades were not a simple drop-in and replace, however - a small board including additional RAM (at a minimum) was required. In addition, although the chips were largely software-compatible, certain bugs in the ROMs caused compatibility issues with the new chips. However, these were all worked around and the upgrade boards were very popular with those who obtained them.

[edit] Graphics Read-Only Memory

Graphics Read-Only Memory was another set of memory accessed a single byte at a time through a dedicated memory port, and were auto-incrementing read-only devices. (There is also support in the console for 'GRAM', simulators for which were created by third parties later.) The vast majority of TI cartridges (Disk Manager 2, Editor/Assembler, TI Writer, most games) used this system, as did the console's TI-BASIC. (Swapping the TI-BASIC GROM with a GROM removed from a favorite cartridge was a popular modification, as was installing several GROMs into one cartridge allowing a "multicart", the selected program available in the boot menu.)

As there was no realistic amount of RAM addressable by the CPU, machine code programs could not be loaded unless more RAM was added in the form of either the 32 KB expansion card or the 4 KB "Mini Memory" module.

Some sophisticated cartridges (for example Parsec, Alpiner, TI LOGO, TI Extended BASIC) included memory addressable ROM which was available for machine code, primarily for games or applications which demanded the speed of machine code. None of this memory was available to the user. In general, ROM-equipped cartridges may be identified by having 28-pin IC's on the board, while the GROM IC's have 14 pins. A small number of cartridges also included a small amount of RAM (notably those games produced for the Milton Bradley MBX expansion system).

Tigervision developed a unique solution to the memory limitation of the standard cartridge slot. They had a 24K cartridge that attached to the side expansion interface, emulating an expansion device. This allowed them to implement a larger game completely in machine code. Tigervision cartridges using the expansion port included Espial and Miner 2049'er. A third cartridge, Sprinter, is listed in their 1984 catalog but was not released.

Because of the speed bottlenecks (8-16 bus multiplexer) and the doubly-interpreted BASIC, the TI-99 series gained a reputation for being quirky and eccentric, which endeared it to some and maddened others. Many people who had only experienced TI BASIC also considered it very slow, although assembly programs actually managed fairly good speed despite the hardware issues to overcome.

[edit] Games

Some of the most popular TI-99/4A games included Parsec, TI Invaders, Munch Man, Alpiner, Tombstone City: 21st century, and Car Wars.

Many TI-developed video games, especially those developed by John Pillips, may be forced into "cheat mode" by holding the shift key and pressing 838. Terse messages often appear, which may allow the user to move to a different round of the game. In Munch Man, the top screen and top round includes invisible Hoonoos ("ghosts" in this blatant Pac-Man derivative) which travel several times faster than Munch Man. In Alpiner, you can select which mountain to climb. 838 (with or without SHIFT) in Star Trek gives you a random but high level of torpedoes, phaser power, and warp drive energy.

[edit] History

Bill Cosby with a TI-99/4A, Peripheral Expansion System, and matching TI Color Monitor
Bill Cosby with a TI-99/4A, Peripheral Expansion System, and matching TI Color Monitor

Initially, the TI-99/4A was reasonably successful, and it has been estimated that it had about 35% of the home computer market at its peak. However, TI quickly found itself engaged in a price war, particularly with Commodore International, and was forced to lower the computer's price in order to compete. By August 1982, the computer was still losing shelf space. TI offered a $100 rebate, which caused spokesman Bill Cosby to quip about how easy it was to sell a computer if you paid people $100 to buy one.

In February 1983, TI lowered the price to $150 and was selling the computers at a loss. And in June 1983, TI released a redesigned beige cost-reduced version that it sold, also at a loss, for $99. TI lost $100 million in the second quarter of 1983 and $330 million in the third quarter. In October 1983, TI announced it was exiting the home computer business.

A total of 2.8 million units were shipped before the TI-99/4A was discontinued in March 1984.

The TI-99/4A was technologically a competitive computer, offering more memory and more advanced graphics capabilities than the Commodore VIC-20 and in some regards rivaling the Commodore 64, which was aimed at a higher point in the market. However, a number of elements of its design attracted criticism: All peripherals plugged directly into the right-hand side of the unit (unless the user purchased the expensive and heavy Peripheral Expansion Box), which caused the computer to not fit well on top of a desk if a user added many peripherals besides a tape drive and a printer. In addition, the 48-key keyboard layout didn't match that of a typewriter very closely, and there was (at the time) no option for an 80-column display. The keyboard and display limitations made it unpopular for word processing.

However, the 99/4A's biggest drawback was its limited software library. TI closely controlled both hardware and software production for the machine, which resulted in a software library of around 300 titles and few of the big-name hits available for other computers of its day. No official technical documentation was released until the "Editor/Assembler" assembly language development suite was released in 1981; no system schematics were ever released to the public until after TI had discontinued the computer. By comparison, the VIC-20, whose history paralleled the TI-99/4 series except its hardware and software development was completely open (Commodore even included schematics in the owner's manual, allowing anyone to build hardware for the machine), had a library of more than 700 titles.

As a result, the TI-99/4A found itself selling for around the same price as the VIC-20, even though it was much more expensive to manufacture. It is worth noting that Texas Instruments and Commodore each owned their own IC fabrication facilities, allowing creation of custom ICs to combine functions of smaller ICs. Commodore used this aggressively to reduce the cost of their consoles, while TI continued to use off the shelf components and making only relatively small revisions to their motherboards. Commodore also made other cost-cutting changes including using aluminized cardboard to build RF shields for some of their systems.[citation needed] Texas Instruments never followed suit, electing instead to continue to use the highest quality components and materials with the unfulfilled hope that the marketplace would recognize it.

TI-99/4A startup screen, which welcomed users to their computers.
TI-99/4A startup screen, which welcomed users to their computers.

The TI-99/4A maintained a cult following for years after its death in the marketplace, in part because of its eccentricities, and in part because TI had actively supported a network of user groups during the production of the machine. There is still some life: several of these user groups still exist with histories of first supporting a state-of-the-art machine, then die-hards discussing their obsolete machine, and now enjoying today's "retro computing" resurgence. In 2004 a Universal Serial Bus (USB) card and Advanced Technology Attachment controller for IDE hard disks for the PEB were released, and there is still an annual Chicago TI Fair where people congregate to celebrate the historic TI-99 family of computers. Third party devices such as expanded memory cards, improved floppy controllers, and hardware ramdisks are very stable and popular additions to the machine, although there are no current known sources for these devices. In the early 1980s, a Bulletin Board System (TIBBS), developed by Ralph Fowler of Marietta, GA, running on the 99/4A became very popular and brought many users together. Also, a number of emulators for the TI-99 exist today for PC-based systems.

There was also a portable sibling to the TI-99/4A. Dubbed the CC40 (Compact Computer 40), it was a battery-powered compact with an LCD display and a version of TI BASIC. It also pioneered TI's HexBUS interface, a high speed serial expansion port similar in concept to USB. The HexBUS peripherals were compatible with all members of the TI-99 family; CC40 cartridges were not.

In 1987, the "Turbo XT" was introduced by Triton. Though rare, it allowed a TI-99/4A and an IBM PC XT to share the same desktop space, though without sharing such things as memory or disk drives. Pictures of this unusual peripheral are available here. The Turbo XT had at least two serious failings - first, it extended the use of the TI's already marginal keyboard to the XT whereas the reverse would have probably been far more marketable; second, it did not allow the TI to share or use resources with the XT (custom BIOS might have allowed the XT to serve as ramdisk, diskette controller/drives and serial ports).

[edit] Successors and clones

At the time they left the home computer market, TI had been actively developing two successors to the TI-99/4A. Neither actually entered production, though several prototypes of each are in the hands of TI-99/4A collectors. Both machines were to feature the TMS9995 CPU and would therefore have been substantially faster than the original TI-99/4A, and both were to use TI's "HexBUS" serial interface (which was available as an option on the TI-99/4A and could be viewed as a prototype for today's ubiquitous USB - the link for the TI-99/8 includes some images of HexBUS peripherals).

  • TI-99/2, a low-cost black-and-white only machine with no sound, reminiscent of the ZX81, TS1000 and TRS-80 MC-10 given its 16-bit processor. Designed by Texas Instruments but fairly rare.
  • TI-99/8, a premium successor for the TI-99/4A, with a large keyboard, 64 KB of RAM expandable to 15 MiB, built-in speech synthesis, built-in Pascal operating environment with UCSD P-System and the full 16-bit data bus available on the expansion port. Designed by Texas Instruments, but abandoned in the Prototype stage. Some prototypes are known to exist and are worth a fair bit of money to collectors. In addition, the emulator MESS is capable of running what are believed to be the system's ROMs.
  • Myarc Geneve 9640, an enhanced TI-99/4A clone which was built by Myarc as a card to fit into the TI Peripheral Expansion System and used an IBM PC/XT detached keyboard. Released in 1987, it was in many ways similar to the earlier TI-99/8 which was in prototype form in early 1983. Included a faster processor (12MHz TMS9995), enhanced graphics with 80 column text mode (via 9938), 16-bit wide RAM, MDOS, and was compatible with nearly all TI software and slot-mounted hardware (an adapter was available to allow the sidecar-only Speech Synthesizer to be installed inside the PEB). A toggle switch was mounted to the side of the PEB to allow insertion of wait states to bring the computer down to the same speed as the original console, allowing compatibility for games and other timing-critical software.
  • SGCPU, the Second Generation CPU card was released by the System 99 User Group in 1996 as a card to be installed in the PEB. It was also known as the TI99/4P, and included standard 9900 CPU, ROMs, and up to 1 MiB of 16-bit RAM using the 'AMS' memory expansion scheme. This card required the HSGPL card, which provided the GROM emulation needed to run the system, and the EVPC, which included the 9938 video processor for display.
  • The Tomy Tutor and its sibling systems were Japanese computers very similar in architecture and firmware to the 99/8. Unlike the 99/8, it was released commercially, but sold very poorly outside of Japan. Portions of the operating system and BASIC code are similar to the 99/8. According to Barry Boone (a well known programmer for the TI-99/4A), the Tutor's built-in BASIC uses the same internal one byte tokens as does TI's Extended BASIC, and many of the memory scratchpad locations are placed at the same relative locations as the TI-99/4A and TI-99/8. For instance, keyscan values are returned at offset >75 and floating point is stored at >4A.

[edit] Technical specifications

  • CPU: TI TMS9900, 3.0 MHz, 16-bit
  • Memory: 16 KB video RAM (expandable to 192 KB with the use of YAMAHA V9938 - this was not a standard upgrade option but was a user-designed modification), 256 bytes CPU RAM (expandable to 40 KB+256 bytes without bank switching using a 32 KB memory expansion card and also an 8 KB "supercart" in the cartridge slot. However, the Supercart was a user-designed upgrade that had limited support and used the cartridge ROM space.) The 256 bytes was a fast "scratchpad RAM" intended for the TMS9900 to maintain register workspaces.
  • Video: TI TMS9918A VDP (TMS9918 in the earlier 99/4, TMS9929/9929A in PAL versions. Distinct in being the only chip on the TI motherboard which had a heat sink.)
    • 32 single-color sprites in defined layers allowing higher-numbered sprites to transparently flow over lower-numbered sprites. Sprites were available at 8x8 pixels or 16x16 pixels, with a 'magnify' bit that doubled all sprites' size but not their resolution. A single bit was available in hardware for coincidence (collision detection), and the console supported automatic movement via an interrupt routine in the ROM. There could be no more than 4 sprites per horizontal scanline.
    • 16 fixed colors (15 visible, one color reserved for 'transparent' which merely showed the background color. Transparent was intended for the 9918's genlock functionality used in conjunction with TI's Video Controller Card. This feature was demonstrated in October 1999 at an international TI meeting near Stuttgart, Germany. (This would have required a hardware modification to the console itself, as the video input line is not routed on the motherboard.)
    • Text mode: 40×24 characters (256 6×8 user-defineable characters, no sprites, foreground and background color only, not accessible in BASIC)
    • Graphics mode: 32×24 characters (256 8×8 user-definable characters, full 15 color palette + transparent (available in groups of 8 through the character table) and 32 sprites (The only mode available in BASIC. Extended BASIC is required for sprites, and can only access 28 of them.)
    • Bitmap mode: 256×192 pixels (no more than two colors in an eight pixel row, full 15 color palette + transparent, all 32 sprites available but interrupt-based motion through the ROM routine is not due to the memory layout, not available to BASIC or the original 9918). Bitmap mode could be arranged in such a way as to use less memory but still provide improved color or improved pattern layout, leading to the popularity of so-called "half-bitmap" modes. In fact these modes were not undocumented modes of the VDP (which fully documented this masking) but simply clever layout of Bitmap mode.
    • Multicolor mode: 64×48 pixels (each pixel may be any color, all 32 sprites are available)
    • All of the above comprise 36 "layers" starting with the video overlay input, then the background color, then two graphics mode layers, then a layer for each of the 32 sprites. A higher layer would obscure a lower layer in hardware, unless that higher layer was transparent.
  • Sound: TI TMS9919, similar to the SN76489 used in many other systems
    • 3 voices, 1 noise (white or periodic)
    • Voices generate square waves from 110 Hz to approximately 115 kHz
    • Console ROM includes interrupt-driven music list playback

[edit] See also

[edit] External links

FAQ Sites
User groups
List Serve
Emulators
Music