
Texas Instruments’ Biggest Blunder: The TMS9900 Microprocessor - nradov
http://spectrum.ieee.org/geek-life/history/the-inside-story-of-texas-instruments-biggest-blunder-the-tms9900-microprocessor
======
waynecochran
My first job out of college was to write a polygon fill routine for the
TMS34010 graphics processor. I developed a love for it's clean 32-bit risc
architecture ... it was even bit addressable with a flat address space. I
actually loved programming in assembly language ... you could fit most
subroutine arguments in registers.. use any of 32 registers you pleased.

Later I did some 8086 assembly programming. I learned why a generation of
programmers hate assembly... only a few special purpose registers, segmented
memory, long list of nonorthogonal instructions, ... yuck

I blame the general aversion for assembly programming to the choice of using
the 8086 for PC's.

~~~
gp2000
You could choose that the memory accesses be at any bit size from 1 to 32 with
both unsigned and sign-extended register loads. In fact, I think you got to
pick two sizes and for most normal operation you'd choose 16 and 32 bits.
There were some load/store operations that always operated at 8 bits so you'd
get the usual complement of data sizes. Pretty useful feature for something
that was intended to be a graphics processor. I've also seen the different bit
sizes used for fast and simple Huffman decoding in gzip decompression.

The auto-increment/decrement addressing modes were aware of the bit size. Thus
you could have polymorphic subroutines where the same code could be used to
sum an array of bytes, words, 13 bit quantities or whatever size word you
wanted (up to 32 bits).

Since the processor had built-in circuitry to help drive graphics displays it
took a high input frequency of something like 40 or 50 MHz and actually
divided that down to run the processor at around 10 MHz or so. The opposite of
what we're used to now and made the darn things look scary (well, scarier)
from an emulation programmer's perspective.

The memory interface was designed to work with shift-register VRAM. The idea
there being that the VRAM chips had a built-in shift register 512 pixels wide.
The display circuitry would make use of it by having each line from the frame
buffer dumped into the shift register as the raster was moving down the
screen. And then the shift register would clock out the pixels as the raster
moved across each line.

During VBLANK (when the video circuitry is waiting for the raster to return to
the top of the screen) you could use special instructions to load and store
the shift register which would be as fast as any load/store operation. The
entire frame buffer could be filled very quickly with any repetitive pattern
or erased entirely by copying some fixed line to all the others.

Lotta cool stuff in that beast.

~~~
waynecochran
Yes and then the TMS34020 came out which had a trapezoid fill instruction.
Essentially you would partition your polygon into trapezoids; For each
trapezoid you would load the appropriate registers ... the slopes of the edges
used 16.16 fixed point numbers. I remember how much you could do with fixed
point arithmetic.. very few programmers even know how program using fixed
point anymore. A very useful lost art.

There was also a built in Bressenhsm line drawing instruction.

Then there was the TMS34082 floating point coprocessor. I essentially wrote a
primitive OpenGL'ish pipeline API. That was fun.

Wow... I really wish a general purpose processor like this made it into the
PC. The best stuff doesn't always win in the marketplace.

~~~
pjmlp
Last time I used fixed point arithmetic was for a J2ME game targeted at the
Sharp GX20, for a game competition sponsored by Vodafone.

------
msarnoff
The same chip family included the TMS9918 Video Display Processor:
[https://en.wikipedia.org/wiki/Texas_Instruments_TMS9918](https://en.wikipedia.org/wiki/Texas_Instruments_TMS9918)

The TMS9918 was the first chip to refer to overlaid graphical objects as
"sprites." It was used in a multitude of early computers and game consoles,
like the MSX1, Colecovision, Sega's SG-1000, and of course TI's own 99/4
(where it was paired with a TMS9900 CPU). It also served as the basis for the
video controllers in the Sega Master System and Genesis/Mega Drive.

The TMS9918 is also interesting because it was one of the few off-the-shelf
video generator chips ever produced. (There were a couple others, like the
MC6847 used by the CoCo, but almost every other home computer/console of the
era used custom silicon for video generation.)

~~~
sehugg
And for $395 you could get a SuperSprite board for your Apple ][, which was a
card containing a TMS9918 and a AY3-8912 programmable sound generator,
basically turning your Apple ][ into a ColecoVision. Except you'd have to
write your own games, because no existing games supported it. I still wanted
one!

------
dbcurtis
The architectural Achilles' heel of the 9900 is the obtuse excessive use of
memory bandwidth. It specifies a workspace pointer, which points to an area of
memory to be used as registers. Which isn't actually so bad if you accelerate
those architectural registers into on-chip physical registers. But they
didn't. The 9900 squandered great amounts of memory bandwidth.

~~~
Analemma_
Wait, am I understanding you correctly? It used _main memory_ as registers? I
feel like I must be misunderstanding this, because that seems absurd even for
1978.

~~~
kabdib
Sure, it's a decent idea. You can even make it fast if you cheat.

I believe that the PDP-10 (well, some versions) had the first few memory
locations equivalent to registers.

The AT&T Hobbit (Aka Crisp) chip had a stack pointer, and aggressively cached
memory around the stack, essentially. Once cached, stack-relative memory
operations were as fast as registers. (The Apple Newton was going to use the
Hobbit, but switched to ARM when it became clear that AT&T wasn't truly
interested in committing to consumer grade pricing of the CPUs).

~~~
gumby
> I believe that the PDP-10 (well, some versions) had the first few memory
> locations equivalent to registers.

Essentially. Actually the registers were addressable as the first 16 addresses
in memory for all models. For the PDP-6 and first PDP-10 (model KA) the
registers were fast semiconductor devices (DTL, as I believe it predated TTL)
while the rest of memory was literally core (convenient for when the power
went out, as happened occasionally in Cambridge -- whatever process was
running died since the registers were lost, but everything else was in core,
so the machine could just be restarted).

Since they were addressable you could run code out of them, like bootstrap
routines or some deranged TECO code I once wrote). On the other hand any word
of memory could be used as a stack pointer (two addresses fit in a word, so
one half was the base and the other half the depth).

It was quite a RISC-like, highly symmetrical architecture for its time and a
pleasure to program. I still miss it.

------
dreamcompiler
Great article. The 68000 went on to become the first processor in Sun
workstations and the original Macintosh so I wouldn't call it a total loser.

~~~
pmarreck
Also the Amiga and the NeXT. All of the above were influential computers, and
obviously the Mac achieved some success, so I think calling it an "also-ran"
is a bit of a stretch.

~~~
cmrdporcupine
Also the Atari ST series, a whole wack of arcade games, the Sharp X68000, a
bunch of Unix workstations, dedicated network hardware, etc. etc. And it is
still manufactured in a modified form in the ColdFire.

But it still never approached near the volume of sales of x86. And was
abandoned by Motorola by the early 90s (when they started to go down the RISC
road with the 88000 and then PowerPC)

------
sehugg
The MSP430 instruction set is heavily influenced by the 9900, so although TI
missed the PC revolution they sold a heck of a lot of silicon derived from
this project.

------
nsxwolf
What strikes me about this article is the disparity between how much TI-99/4A
hackers love that machine and the TMS9900 vs. how much the TI leadership of
the time seem to hate it.

There's virtually no inside information written down about the history of this
chip, so this was pretty fascinating.

~~~
tyingq
The love/hate thing might have been related to the eventual fire sale pricing.

Towards the end, you could pick them up for $200, which was unheard of for
that class of PC. Easy to see why that would draw an adoring audience while
frustrating TI.

~~~
ams6110
At the very end they could be had for under $100.

~~~
nsxwolf
Mine was $50 in 1983 and I've met several people who remember getting it for
that price.

------
msh
From the article:

If IBM, and not Microsoft, had controlled MS-DOS, Windows, and so on, the
computing world would now be a different environment.

-

iMHO probably a much worse world. Microsoft might have been the "evil empire"
but ibm was the original.

~~~
pjmlp
People complain about Apple, but they are the single company left from those
days, where each manufacturer controlled the whole stack.

Had IBM done that, we would be in a similar position regarding PCs.

On the other hand, maybe thanks to that single event, Atari ST or Amiga
variants would still exist.

However, the industry seems to be turning back to those days.

Even FOSS won't help here, because each OEM just packages their own OS and SDK
flavour and locks down the hardware.

~~~
bluedino
Commodore/Amiga/Atari couldn't capture a big enough market.

Apple (Mac) was never open enough.

None of the UNIX companies would have ever made anything cheap enough to hit
the mass-market until after Windows 95 came out.

Without Microsoft we could have ended up with some weird IBM world running
OS/2\. They might have even switched to Motorola eventually.

But Microsoft and Compaq made things open and cheap enough to get us to where
we are today.

~~~
pjmlp
But that was kind of my point, without Microsoft, the PC would just be yet
another platform like the Commodore/Amiga/Atari/Mac.

None of them would get a piece big enough of the pie.

The PC only happened due to the way OEM market was created, originating a race
to the bottom regarding computer components.

My other point being that given the current state of computer market with
iDevices, Android, Chromebooks, IoT, hybrid tablets (aka netbooks), TVs,
Watches,..., those OEMs are now trying to turn the remaining of the market
into that vision.

So besides their proprietary OSes, we get customised versions of their own
forks from open source OSes (e.g. Huawei Linux, LG BSD, put your flavour here)
in locked down hardware like those computer systems with their OSes written in
ROMs.

Microsoft is still here, but the day they actually do loose the PC market,
don't expect the "Year of Linux/BSD" to happen.

------
oxryly1
It's always interesting to hear stories of when a hodgepodge of companies like
TI, Commodore, and Radio Shack were vying to become dominant stewards of
computer technology, from the OS down to the processors. It doesn't seem like
that will ever happen again, but who knows?

~~~
nradov
That tends to happen with most new disruptive technologies. So we probably
won't see the same thing happen again with microcomputers, but maybe with AR
goggles or whatever comes next.

~~~
tyingq
Seems to be happening with Lidar right now. Granted, a much narrower space.

------
pmarreck
So the Intel won with the ugliest instruction set and Microsoft won with the
ugliest OS. "Ugly" is apparently an overrated design disinclination.

~~~
KGIII
I have wondered about that. I have programmed. I am not skilled enough to
warrant calling me a programmer. I did so out of necessity, I kinda hated it
most of the time.

But, I hear this about Intel's instruction set - at a number of tech sites.

Intel got their start making memory (SRAM). They had Moore and Noyce, as I
recall.

Anyhow, I am not qualified to opine on instruction sets. I am curious as to
where it went 'wrong.' I accept your declaration as being likely true - I've
seen it echoed elsewhere. But, if you know, do you happen to know where
(perhaps even why) it went wrong?

I have tried the mighty Google, by the way. It was no help. I may have not had
the correct search terms. I am a mathematician, I only programmed (retired
now) out of necessity. In fact, I hated computers for the longest time. I am
just curious about the history of where they went so wrong that so many people
complain about it.

~~~
kartD
This is a basic summary of why it sucks.
[https://news.ycombinator.com/item?id=276471](https://news.ycombinator.com/item?id=276471)

~~~
JetSetWilly
That tells me why it sucks from the perspective of a compiler writer in 2017.
But it doesn't tell me if it sucked in 1979 in an era when ask was much more
frequently hand-written and there were many more physical constraints and
trade-offs. x86 seems often to be judged by later innovations like RISC. But
that wasn't a thing in 1979 and sucks for hand-writing anyway - perhaps you
_want_ more complex and non-orthogonal instructions in 1979.

~~~
kartD
Someone who is familiar with the 70s and 80s will have to chime in, but I'm
not sure how popular it was with assembly writers then (I don't think it was).

~~~
FullyFunctional
As someone who wrote a reasonable amount of assembler, my first exposure to
RISC (SPARC) nearly blew my mind; so easy to learn and much less struggle to
write well. I never understood the attachment to arcane ISAs.

------
rootbear
My sister's school bought a bunch of TI99/4As and I got to play with hers once
when visiting. She said it was a little flakey, as I recall. One interesting
feature of the 99/4A was the speech synthesizer module, which used the same
LPC technology that TI used in the Speak & Spell toy. That was a fairly
unusual peripheral for that generation of home computer.

~~~
Zardoz84
Well, I remember a lot of fun with my father Spectrum. He attached a board
with a SPO256 chip and we had the Speccy talking us with weird accent (We are
Spaniard.)

------
zurn
Pretty bizarre that they call the 68000 an "also-ran" (twice!). But I guess
this is more of a personal story than an attempt at objective computer
history.

------
ScottBurson
One of the links on that page points to this fascinating memoir by Gary
Kildall: [http://www.computerhistory.org/atchm/in-his-own-words-
gary-k...](http://www.computerhistory.org/atchm/in-his-own-words-gary-
kildall/)

As an erstwhile CP/M user, I have of course known Kildall's name for decades,
but never had a sense of who he was as a person. This somewhat
autobiographical recounting is very illuminating in that regard.

------
Animats
The first personal computer to use the TMS9900 - the Marinchip 9900.[1] This
dealt with the problem of using a 16-bit computer on an 8-bit bus by using
external logic which turned one TMS9900 memory access into two bus accesses.

Everything ran much slower back then.

[1]
[http://www.s100computers.com/Hardware%20Folder/Marinchip/990...](http://www.s100computers.com/Hardware%20Folder/Marinchip/9900%20CPU%20board/9900%20CPU.htm)

------
bluenose69
This is an intriguing article, and the comments posted here are that, squared.
This happens quite a lot on HN, so much so that asking "did you read such-and-
such on HN last week, and what did you think of the discussion" would be an
excellent interview question for students applying to a computing program at
university. Showing an interest in such threads would be a good indication of
future potential for jobs above the code-monkey level.

------
CamperBob2
One of the comments has a pointer to a fascinating article in InfoWorld,
reprinted from Texas Monthly, recounting the rise and fall of the TI 99/4\. I
can't figure out how to copy and paste the 500-character URL but it's very
much worth following the link in the comment.

~~~
soundsop
[https://books.google.ca/books?id=wy4EAAAAMBAJ&pg=PA63&lpg=PA...](https://books.google.ca/books?id=wy4EAAAAMBAJ&pg=PA63&lpg=PA63&dq=ti+99/4a+lawsuit&source=bl&ots=vWNx4mFFgg&sig=jkeSAPUwPQCTPoBj-
AJy2d3lYtA&hl=en&sa=X&redir_esc=y#v=onepage&q=ti%2099%2F4a%20lawsuit&f=false)

------
xxxxxxxx
What a great story - and now I know about Lubbock, TX.

Google street view has confirmed the authors' opinion.

~~~
fred_is_fred
If you are not from the US, I cannot express the desolation, wind, dust, and
smells of West Texas. Hell even if you are from the US. Imagine a windier
drier more right wing Mongolia, with feed lots and oil wells everywhere.

~~~
dreamcompiler
West Texas holds a certain primitive charm to me as a native Texan. But if I
ever moved back to Texas, I'd want to live near Austin. It's the only part of
Texas that has urban amenities, educated people, and relatively tolerable
weather.

------
gcb0
the only lesson is that ibm being a huge monopoly at the time got to make the
wrong decisions for everyone else. So, the lesson is: please the big
monopolies?

