Many thanks to Raphael Nabet for his analysis of the Tutor ROMs.
Updates and corrections gratefully accepted. Last modify 27 January 2009.
The 99/4 and 99/4A were TI's only major entries, although two other more or less "official" TI home computer systems appeared in very limited quantities (not counting the portable TI-74 and CC-40 systems, which are fascinating but dissimilar devices and will not be discussed further). The 99/2 was a prototype system dating from early-to-mid 1983 using the new TMS 9995 CPU on a 10.7MHz clock but running at an effective 2.7MHz (same as the Tutor), with 4K of true CPU RAM in addition to the 9995's 256-byte scratchpad RAM. It was intended as a direct entry against the Timex Sinclair and even had some physical and functional resemblance, such as its black and white display. Atypically, it has no VDP nor VDP RAM (it uses a DMA video chip that reads from real CPU RAM) and no GPL-based OS (all functions are written in native machine code) -- thus it is a tremendously faster architecture. It was only prototyped and never officially released.
The 99/8 was another prototype system dating from late 1983. It too is based on the 9995 at the same speed as the 99/2, but has the 9918ANL (also the same as the Tutor) VDP and the return of the 16K VDP RAM architecture. However, unlike the 99/4 and 99/4A, it has 64K of real CPU RAM as well, with reputed expansion capability to a whopping 15MB. Also unlike the unfriendly programming atmosphere of the virgin 99/4 and 99/4A, it features a very powerful upgraded Extended BASIC built-in, as well as support for user-written 9995 assembly programs. Unfortunately, it did not have the 100% assembly operating system of the 99/2, but it leveraged all the documented graphics modes of the 9918ANL, featured moderate compatibility with its predecessors, and despite its impressive technical potential was never released either.
(As an ending for this story, TI was unwise enough to enter into a price war with Commodore Business Machines during 1982-3. While TI initially had the upper hand, Commodore's Jack Tramiel, determined to win the war, dropped the MSRP on their loss-leading Commodore VIC-20 system so low that TI was unable to follow suit and stay solvent. This, combined with simultaneous struggles against Atari and Sinclair, led to the inevitable self-destruction of Texas Instruments' home computer division on 28 March 1984 after recording staggering losses totalling over US$500 million.)
After all this, however, one last gasp occurred in the TI evolution in the form of the Myarc Geneve 9640, introduced 1987. An expansion card designed for the 99/4A's Peripheral Expansion Box chassis that replaced the connection to the 99/4A itself, this card was in fact a full system motherboard with a 9995 using a 12MHz master clock, a 9938 VDP with 128K of VDP RAM offering up to 512x424 graphics from a palette of 512 colours and 80-column text, IBM-compatible keyboard port, 512K of CPU RAM expandable to 2MB (though many appeared with 640K, hence the '9640'), and a complement of disk-based software including a TI-99 emulator for backwards compatibility. It is mentioned here primarily for completeness, as it considerably post-dates the Tutor and the original TI systems.
CPU, Bus and Addressing
As explained on the Hardware page, the 99/4 has a 16-bit path to its scratchpad RAM and to the sole CPU system ROM, using a 16-bit-to-8-bit muxer to access the remainder of the 9900 addressing space.
The 9995 in the Tutor, and presumably in the 99/2 and 99/8, actually muxes its own 8-bit data bus to obtain 16-bit quantities. It does not have an external scratchpad RAM, since it is entirely internal, but it functions identically and because it is in fact internal has a 16-bit path, just like the 9900. The system ROMs are accessed over the 8-bit data bus. (Strangely, Jim Krych mentions that the scratch pad RAM in the 99/8 is actually disabled, probably for compatibility reasons.)
Both the 99/8 and the Tutor use the same divided clock technique (a 10.7MHz master oscillator divided down for the video and CPU clocks) for their video timing, as well as everything else. The 99/4 has the same 10.7MHz clock for video, but the CPU clock is based off of a 12MHz oscillator.
All architectures that include some derivation of the 9918/9918A/9918ANL must draw a distinction between true CPU-addressable memory and VDP-accessible memory. The base 99/4, other than its scratchpad RAM, must access all of its built-in RAM through the VDP and only part of its ROM operating system is fully available to it (the GROM-based remainder must be addressed through murderously slow serial access at the ghastly rate of 447kHz). If you have RAM expansion installed in a PEB, however (see below), you can access that RAM directly over the 8-bit data bus and only the VDP RAM must still be accessed in the old manner.
The 99/8 still has VDP RAM to worry about, but it also has 64K of RAM all to itself built-in. Unfortunately, for compatibility reasons, GROMs still lurk in the 99/8.
The Tutor is similar to the stock 99/4 and 99/4A in that other than its scratchpad RAM, all memory is tied up in the VDP. Similarly, if the Tutor were equipped with the vapourware expansion box [see below and the Purcell Pamphlet], any RAM it carried would now become CPU RAM, just like an expanded 99/4A and the default 99/8 configuration, so the expansion potential is there. (It's not known if the Tomy OS would know what to do with the extra RAM in its current form, though, and some banking strategy would need to be employed since much of the 9995's addressing space in the Tutor is already occupied with the BIOS and system ROMs.) However, all of its operating system ROMs are available to it over the conventional system bus and at the full bus speed, which is much faster than the hybrid ROM/serial GROM strategy of the 99/4.
The Tutor has the 9918ANL, same as the 99/8, which is functionally equivalent to the 9918A in the 99/4A (but not the 9918 in the 99/4). As such, it has the same screen resolution, characteristics and sprite capabilities.
Interestingly, the advanced Extended BASIC for the 99/8 offers split-screen modes that are identical to the split-screen technique used for the palettes displayed in Tutor GRAPHIC mode.
The 99/2's DMA video system is totally dissimilar from all others.
Neither system can be said to be a paragon of expandability, but the Tomy is clearly worse. That said, Texas Instruments' way of improving the upgrade path was releasing their Peripheral Expansion System, christened the PEB or Peripheral Expansion Box. This was a large interface box with card slots for controllers, ports and memory upgrades, tethered to the mothership with another interface card and a ribbon cable.
In the Purcell Pamphlet, we see the TP 1500 Expansion System, itself a very large interface box presumably with card slots and billed as accomodating memory upgrades (and probably other sorts of upgrade cards). Tomy even seemed to imply some degree of TI compatibility by calling the Expansion System the "TI-Adapter" in the Demo Cartridge.
TI, at least, did release the PEB. Tomy didn't.
Major portions of the 99/4 and /4A, all the way up to the /8, were written in TI's middle-level "Graphics Programming Language," designed to make certain types of memory access (obviously and particularly VDP RAM) more systematic and to provide elemental instructions for common 'complex' operations. To insure against tampering and unauthorized commercial exploitation, GPL codes were loaded into GROMs, and executed by an interpreter in the system ROM. This makes them secure, and GPL is (for a middle-level language) rather functional, but since BASIC is itself written in GPL on these systems, BASIC programs ran glacially slow. Even the 99/8, for compatibility reasons, still has a significant portion of its operating system written in GPL, though many sections were rewritten in assembly later.
The Tomy BIOS is 100% assembly language. That includes GRAPHIC mode and both the original Japanese G-BASIC and GBASIC (thus, GBASIC is not the same as GPL). Thus, the Pyuuta (and the Pyuuta Mk II, since it doesn't have BASIC either) are 100% fully assembly language operating systems.
What is startling, however, is that Tomy BASIC in the American Tutor is not! Although there are no GROMs in the Tomy Tutor, Raphael Nabet has found that the Tomy Tutor also has GPL! -- but a strange variant that is not binary-compatible with the GPL of the TI. Nevertheless, analysis of the Tomy OS has shown that while the original GBASIC and GRAPHIC modes are entities unto themselves, Tomy BASIC is very similar to the 99/4A's BASIC regardless. Per Barry Boone, the 99/4A Extended BASIC tokens are the same as the Tomy BASIC tokens, and much of the scratchpad RAM usage is identical. Bluntly, there is no other way a BASIC written in GPL could have ended up in the Tomy Tutor with all the commonalities above unless it was a direct port of TI's (in this case Extended BASIC).
Unlike the GROM-based systems, however, the Tutor is not hobbled by having to fetch GPL instructions from slower GROM repositories for execution; GPL-based ROMs in the Tomy OS are simply ROMs like any other and can be accessed as fast as the bus will permit, which makes the Tomy's GPL interpreter tremendously faster.
The actual Tomy interpreter is in the "Tutor-1" BIOS, and some portions of the original Pyuuta ROMs probably had to be liquidated to get it to fit. (Because the Pyuuta Mk II also has the American firmware, it also has the GPL interpreter, but there's nothing for it to interpret!) Raphael does note that GPL on the Tomy is very strange, with it being virtually impossible to port arbitrary TI GPL to run on the Tutor's interpreter. Not only are the opcodes different, Tutor GPL only supports 1-byte addressing, using an offset into a 256-byte lookup table to address data in RAM and VRAM (except jump instructions). This table is fixed, and exists in ROM just before the BASIC option ROM.
Interestingly, there is evidence that the OS offers hooks into the GPL interpreter. There may have been plans for expansion cartridges that never materialized. Some evidence of this is hinted at by experiments with the Pyuuta Mark II, which has a GPL interpreter but no GPL to run; see that page for the details.
What is particularly frustrating about Tomy BASIC, though, is that they clearly started with Extended BASIC and then ripped out a lot of the useful features such as direct memory access. This is not a great way to facilitate software-driven enhancements.
The 99/2 has the same philosophies as the Tutor, and has itself its own fast assembly OS, but its DMA chip and system architecture are very unlike the Tomy.
The similarities of the 99/8 with the Tutor, however, are much more than one would suspect. Indeed, based on the system architecture at large, the Tutor seems to be an evolved, independent system based on the 99/8's hardware, just without Texas Instruments. Certainly with the large number of internal similarities between TI Extended BASIC and Tomy BASIC, TI either had a direct or unwitting hand in its construction. The 99/8 was, as mentioned, never released officially and other than the few leaked prototypes suffered an undeserved death in development hell.
It would be interesting to compare the 99/8 and Tomy Tutor systems in action and see what additional similarities and differences could be elucidated. Till then, this article is in progress ...