A while back I decided to build a homebrew system based on the TMS99105A CPU, thanks both to this article and to Ben Eater's terrific videos. It's a pretty cool platform. It's been my first real exposure to working in assembly language and I've been having a blast.
Due to the way the it provides bus status signals, you can effectively build a system with completely separate memory address spaces for executable code and data ... and a another separate address space for both of those when you use the built-in memory mapper support. It gets more fun if you can take advantage of the way it handles a subset of unimplemented opcodes: it shelves the current workspace and treats the opcode like a branch call. The 990/12 minicomputer and the 99110A CPU use this technique, branded "Macrostore," to add floating point instructions to the platform.
That's three separate memory address spaces each for instructions and data... and another entirely separate address space for I/O devices!
I really like this thing and one fine day I'll actually have something concrete enough to publish an article about it. If you want to learn more about the clever and insane things that 9900-series fans are doing, your best bet is heading over to the Atari Age forums where there are a bunch of homebrew software and hardware projects in progress: https://forums.atariage.com/forum/119-ti-994a-development/
Somewhere buried in there you'll also find commentary from TI employees and other insiders about this article.
I interviewed with TI in the early 80s. They asked me about the 9900 and - thinking about those slow off-chip registers - I used the words "weird architecture". For some reason they seemed very unhappy about this.
I'm very entertained that TI's own 9900 manager had the same opinion of it.
The article doesn't mention the TI 770 and later 771 Intelligent Terminal which were based on the TMS9900. The 771 with two 8" floppy drives is shown in this brochure:
The 770 was oriented toward business forms and interaction built with TI's TPL 700 (Terminal Programming Language).
I put the 770 and TPL to good use at Tymshare in the 1970s. I'd been called down to our Houston office to design and build yet another prompt-and-response Teletype UI for one of our business customers.
Being in Texas, the office just happened to have a TI 770 in a back room. When I saw it, I stayed up all night and used TPL to implement our data input forms onscreen instead of the Teletype interaction.
Our sales guy loved it, and more importantly, so did our customers. The app went on to make the company a good bit of money for those days.
One thing I didn't find in my web search: a TPL manual! If anyone finds one, please post it in a reply. Thanks!
So I knew about the CPU before I knew about the home computer..
Oh, one other thing I remembered: there were integrated injection logic (I2L) versions of the 9900: the SBP9900 (this was bugging me because the I thought the TMS9900 was I2L, but it's NMOS):
I never knew that TI's DS-990[1] series of minicomputers was created for Ramada Inns. It was one of the first computers I used intensively and I thought it was great. I think I wrote code in almost every language they supported. Good times, and the TI documentation was quite good, in my view.
Hit me with your WP (Workspace Pointer) register, baby!
Many other things happened that way. My favorite were all these systems research efforts where entire operating systems, network file systems, directory services, etc were developed within individual companies or CS departments and unleashed upon the staff :). MIT Athena, anyone?
Ramada may have been the first / most important customer. But growing up in North Texas where TI sales-people were thick on the ground, I noticed that just about EVERY police department within 30 miles of Dallas had a 990 in the back and 770 terminals up front. I remember writing a check to cover traffic tickets in Cedar Hill and Arlington. Both had 770's and a friend from high school got a job in Arlington running their 990.
I sometimes look for a 990/10 or /12 on eBay but I haven't seen any in years. I think bitsavers.org has some software for the 990 series, like DX-10 and some language systems.
I found one in a thrift shop in the early 90s, with no storage or other peripherals. Never got it to do anything by itself, but 17-year-old me successfully soldered the (white ceramic and gold) CPU into the TI-99/4a my dad bought in about 1981. I passed that computer on to a younger kid who learned to code assembly on it.
Wow, I've not heard Eli Goldratt (z'l) mentioned in such a long time. In my very first job ('80s), the company owner handed me a copy of The Goal and said it was the most essential book I would need. I know now after many years dealing with manufacturing, that he was correct!
Anyway, I'm very curious about that mentor-at-a-distance? Can you share more?
I have been a student of TOC since the early 90s. I used to attend the various conferences that groups like APICS put on in the early years. I just got back a few weeks ago from the TOCICO conference in Orlando.
Eli really dug into the subjects that interested him. He always came up with interesting insights. At the conferences, from time to time, I'd join Eli with a few others for dinner or lunch. We didn't go out for beers, though, and I wasn't really in his inner circle.
He has published many good books, and usually, they are Socratic novels. They are fun to read, and I get something new out of them every time I read them.
His last book, "The Choice," was written with his daughter, Efrat Goldratt-Ashlag. In that book, Eli really lays out his general approach. I recommend it.
Slightly related... I heard someone at Tandy say that when they were pitching the TRS-80, they said "hey, if the computers aren't popular, we can give them to each store to use for inventory tracking." -- That was probably around '75 / '76 when they were pitching the idea. Same time frame.
The chip, along with the rest of the TI-99/4A has been fully emulated in JS in this fantastic project you can run in the browser. It even has a debugger and all the original cartridge software, too.
There's no better or faster way to experiment with a TI-99/4A today. Besides the great hardware emulation, a huge collection of the software released for the platform is available right there on the site.
And you can map emulated disks to Google Drive folders. It's disturbing how much I enjoy writing TI-BASIC programs with half-way realistic data files I stuffed up on the GDrive.
The TI-99/4A was unique among 1980s computers for having a distinctly different memory architecture. The 2022 Commander x16 similarly uses IO ports to access video RAM and eliminates some bottlenecks that kind of machine had but it has generous RAM, not a pittance.
I actually used the DNOS operating system on the mini line where the 9900 originated.
I flew around the country ripping these out of industrial equipment dealerships (replacing them with SCO), so I never saw any of the DNOS networking features.
> Also, to be slightly pedantic, the X-16 doesn't have IO ports. It's using a 65C02 processor, where all I/O is memory mapped.
The video ram is not on the 65C02's bus apparently and is accessed through a set of registers which must slow down things quite a bit, you get plenty of video memory this way though I guess. Must be what they mean by "IO Ports"
The X16 has a clever trick in that it has a memory mapped register that points to the next address to write to, and a register that causes anything you write to it to be written to that pointer in VRAM… and the pointer auto increments. So if you are doing a block copy it is as fast to write to VRAM.
One advantage of this scheme is that the CPU is not sharing access to RAM with the video processor so ordinary RAM access is fast.
1. Rhines implies TI never made an 8-bit CPU, but tried to "leapfrog" the industry and go direct to 16-bit. This isn't exactly true. TI competed with Intel on the Datapoint contract, but didn't win. Intel went on to evolve the 8008 into the 8080 and turn it into a commercial product. But TI shelved it's TMX1795 project. My guess is they already had a nice chip business and didn't need to risk anything on building a "pie in the sky" project like a single-chip microprocessor. I mean, imagine, a CPU on a single chip! How unrealistic!
2. The 9900 series was't a loser by the standards of the day. Sure, it didn't get picked up by IBM, which made it a loser by 1981 standards. But by 1978, it was picking up some design wins because for less than $100k, you could buy a 990 mini-computer with a full-fledged development system (Assembler, Linker, Pascal Compiler, etc.) The 8080 was a lot cheaper in volume, but development was slightly more difficult. Intel's 8080 development systems weren't really that great, though by early 1980 they were light years ahead of TI (you could get an official Intel development system for around $35k IIRC.)
As an interesting aside, Marinchip Systems shipped a S-100 board with a 9900 (9940? 9995?) CPU. But it didn't take off, so they started selling software and changed their name to AutoCAD.
3. The 99105 / 99110 (with a much larger address space) was definitely on the drawing board in '78. IBM probably asked "hey. what chips do you have right now?"
4. Everyone likes to rag on the 9900 for being a memory-to-memory architecture. But in the day, the plan was to put your register file in bipolar memory. This was before we all got the RISC religion, and it wasn't so obviously bad.
5. This article only scratches the surface of the dysfunction that was the TI-99/4. But... the industry learned a lot of what NOT to do by watching TI try to deliver a game console.
But to recap. Sure. The 9900 had some problems. The 9980 kept having more and more problems. But the 9995 wasn't half bad. And the 99105 & 99110 weren't bad at all.
Also... something that's been bugging me for decades.
This is WELL before most companies figured out the importance of third-party software developers. In the IBM world, you leased some big iron and got IBM to write custom software for you. If you were a larger firm, you hired a third party firm to write custom software for your business. And if you even larger, you had the funds to keep the coders on staff.
By around the mid 70s, DEC was innovating by releasing detailed specs of various PDP's and what we might call open source software through DECUS (DEC Users Group.) But I remember Harris being freaked out when we asked them for anything more than the absolute basics of VOS (their operating system.)
Tandy, Apple and Commodore were innovative in that they were happy to publish details of how to write software for their platforms. I guess the new microcomputer upstarts had to innovate.
TI seemed to be frightened third parties might make money by writing software for their platform. I remember when I wanted to sell a stupid (by today's standards) game for the 99/4 in the 79-80 time frame they send me a 20 page NDA and a price list for TI-990 systems. My uncle (who worked at TI) got me a flyer for an internal program where you (as a TI employee) could get a bonus for writing 99/4 software, but no royalties. Later versions of the 99/4A had features in ROM to explicitly crash third-party modules.
I mention it because there were many, many reasons the 99/4(A) fell into obscurity, but I don't think it was solely based on the 9900 family of chips. The system design of the 99/4 was a bit ham-fisted, but other systems using 9900s seemed to operate fine.
I wrote assembler code for the 9900 when I worked at TI. I freaking loved that architecture: There was only one real register and it was a pointer to memory where the actual registers for the current thread were stored. This meant that a context switch only required the single master register to change. It was an absolutely glorious idea for writing multithreaded code.
And also slow as frozen dog crap because every register access was a RAM access. Sigh.
The TMS9900 architecture lives on in TI's MSP430 line of MCUs, and they're everywhere. You probably won't get through today without interacting with a bunch of things that have MSP430s inside.
"Like many processor designs, the 9900 didn’t die, it provided the basis of TI’s current 16-bit MCU line, the MSP430 series. The MSP430s instruction set is heavily influenced by the 9900 and largely retains its memory architecture and orthogonal instructions."
> IBM’s Boca Raton group understood the momentum behind CP/M as an open standard, and so they commissioned Digital Research to develop a version, called CP/M-86. Later in the process, however, Microsoft came through with the MS-DOS operating system, about which much has already been written.
As I understand it, 86-DOS/SDOS was basically an x86 clone of CP/M, and CP/M-80 source programs can even be automatically translated and then reassembled to run on DOS[1] or CP/M-86[2].
Due to the way the it provides bus status signals, you can effectively build a system with completely separate memory address spaces for executable code and data ... and a another separate address space for both of those when you use the built-in memory mapper support. It gets more fun if you can take advantage of the way it handles a subset of unimplemented opcodes: it shelves the current workspace and treats the opcode like a branch call. The 990/12 minicomputer and the 99110A CPU use this technique, branded "Macrostore," to add floating point instructions to the platform.
That's three separate memory address spaces each for instructions and data... and another entirely separate address space for I/O devices!
I really like this thing and one fine day I'll actually have something concrete enough to publish an article about it. If you want to learn more about the clever and insane things that 9900-series fans are doing, your best bet is heading over to the Atari Age forums where there are a bunch of homebrew software and hardware projects in progress: https://forums.atariage.com/forum/119-ti-994a-development/
Somewhere buried in there you'll also find commentary from TI employees and other insiders about this article.