I'll never forget the TI-99/4A. I was 8 years old, in second grade in Southern California. We had a "computer lab" which was a mobile building with 13 or 15 TI-99/4A's, and about half of them had color TV's and the rest, B+W. Nobody really knew anything, but we did have books to copy BASIC programs out of.
One kid entered a program that flashed colors and patterns on the color TV. Our teacher was epileptic, and this sent her into a seizure. Myself and another kid ran to get the 5th grade teacher who'd been a doctor at some point (don't ask, I dont know, I was 8) and he came running and attended to her. She was fine.
I'd always been interested in how things work, taking things apart, playing with my 30-in-1 electronics lab from Radio Shack. But this new computer thing... this was something. That experience flipped a bit in my 8 year old brain. All because of a TI-99/4A.
I love this story, but not because the teacher had epilepsy! The flashing colors, and ability to draw from the center of the screen to the outer bounds, and showing it happen in real time (since the graphics weren't so fast then) was a huge factor in me getting involved in programming. I started off with Atari BASIC, and my first program of my own was a strobe light, where I could control the speed and generate a random color to display on each "strobe".
Once I saw how fun that was to actually run and show friends (which I think was the big draw for me in the 80's), I created an English to Pig Latin translator, which was more based on an official example, but I remember putting more work into it, including a trigger for certain "bad words" my friends would definitely enter, and giving them a surprise flash and warning. Not sophisticated in any way, just a bunch of IF statements for specific words, then a fall through for anything not matching to be translated.
I used to have a book on experiments using a 6-volt battery, and I got my son one of those 30-in-1 kits, and we had a lot of fun with it. I was more easily able to move from the electronic kit to software with him, having had interest in both, and now he's picked up the software itch.
I still have my TI-99/4A! I received it Christmas morning of 1983, although a Timex/Sinclair had been on my wish list. Sears had them marked down to $50 during the 8-bit wars. Mom had been up all night hand-typing in a BASIC demo so it would be running in the morning. Many Wumpuses were hunted that day.
There's still a community of fairly active development for retrogames, and some of them are quite good given capabilities of the hardware. My niece particularly enjoys a marble game called Skyway, try it on the online emulator at https://ti99ers.com
She was a High School math teacher, but had an intensest in computing and programming from working on her Master's degree, where she learned state-of-the art COBOL programming. The first computer we had in the house at all was a few years previous, when her school district allowed her to take home a brand new Commodore PET over the summer break. On that machine, many stick-figure men were hung from the gallows. https://www.commodoregames.net/CommodorePET/Hangman-(2)-342....
I've been buying and restoring older stuff (2013 Mac Pro most recently, recapped a Mac SE before that) and I think you just gave my 99 4/a new life. Thanks for that!
It was our family computer. We rented games for it, and that was fun. I learned BASIC. I tried to create things with it, as advertised, and sort of only semi-succeeded repeatedly.
My parents saw that I was running into the limits of the system, and got me both the Extended Basic and Terminal Emulator II cartridges. I dug into Extended Basic, and was able to write "games" with actual sprites that could be manipulated! There they were, flying around, those sprites. That being said, these games always ended up being quite bad, and there wasn't a clear path for them to being much better. We were part of a users group, and the Extended Basic games others were making were perhaps more refined but also honestly not much better.
At the same time, Atarisoft were releasing epic cartridges for the TI. A strangely OK Donkey Kong and Ms. Pac Man, as good or better than on the other home computers. It was clear there was no path at all from whatever was going on with the Extended Basic cartridge to whatever magic voodoo allowed for the TI ports of these arcade games. (To be honest, I still don't really understand it, other than something to do with... GROM? Assembly?)
On the other hand, Terminal Emulator II, which my parents bought me so I could fool around with the TI's speech synthesizer, taught me about the need to connect to online services via a modem. I asked my parents about getting a modem, and they were like... "no".
My pre-teen brain was like "I need to buy myself a modem as soon as I can!"
I bought a 1200 baud modem out of Computer Shopper for mere dollars when I was 16. It changed my life. I got on boards, and then the Internet, before most - and probably you. I learned networking and architecture. No regrets.
But I still have no idea whatsoever how those TI programmers bridged the gap between my horrifically bad Extended Basic programs, where I felt I had maxed out the capabilities of the computer, and the magnificent games and arcade ports available via cartridge. It sort of haunts me. What even?
The fundamental issue with BASIC on the TI-99/4A, be it the regular BASIC or even the Extended BASIC, is that the program was stored in the video memory. This meant that you couldn't use all features of the VDP, you could only use a limited number of tiles (96 afaicr), you could not use other graphics mode, raster interrupts and sprite multiplexing, forget it. The games on cartridges were not limited to that and could use up to 24K (afaicr) of machine code + a lot of GROM.
One needs only to look at what a Coleco console or a MSX1 could do with a system that didn't use the graphic chip for what it was not intended to be.
The difference is definitely Assembly. You could dip into heavier memory management, and control every aspect from that low level.
I got on to my local public library (in the US) with an 800 baud modem on the Atari 8-bit. There was barely any security, which was all bypassed by "password". I could check out books for individuals, alter the amount they owed in late-fees, or erase that someone had a book and then erase that the book ever existed. I have always been more of a white/grey hacker, as far as I don't always report an exploit, but I don't abuse it either. Now that I'm older, I am happy to report exploits confidentially.
I quickly found the BBS in my area were not as usable at 800 baud, and moved to a 286 with a modem slightly higher baud. Until my family got a 386, it was a bit slow, but I was still sitting there like an addict consuming my digital fix! Even in the mid-90's I was amazed at the speed of modems coming out. I believe in 1997/early 1998 I had saved enough money to buy myself my own PC, and had a faster modem. I'm not sure what the speed was back then, but it was good enough to play Quake 1. I started to lose touch with the low-level of computers around that time, but also saw the value in higher-level programming. I think having understood lower-level computers in my early years helped me to understand things like memory management in current days, where a lot of my co-workers have no concept of running into memory problems until they hit a wall.
There was a cartridge with an assembler & text editor plus a little CPU RAM. (4k? My memory is gone but it certainly wasn't much even for the 80s.) You'd still need to use cassette tape to save your work. Ah it was this: https://www.arcadeshopper.com/wp/ti-99-4a-faq-mini-memory/
For actually usable development you could buy a TI expansion box, 32K RAM expansion, and 5 1/4" floppy drive. This cost the equivalent of like two thousand bucks today. Less than an Apple ][, somewhat more than a base C-64, but a lot more than the TI-99 itself.
My parents were very indulgent in this. Once I had this setup, I bought a third-party Forth and coded my own Forth assembler vocabulary, and finally had a reasonably capable dev env, for maybe a year before leaving for college. But still had basically no way to share my work (wasn't online).
> Each source statement you enter is immediately assembled into object code and stored into memory. Some source code is retained in a nine-page text buffer. You can scroll the screen to review previously entered lines of source code by pressing the Up- and down-arrow keys.
I gave up on this system pretty quick -- with so little space for your code, it just wasn't worth so much trouble.
I remember I made a (in my eyes) pretty decent Donkey Kong in Extended Basic with my father. But we knew nothing about better variants, so our impression wasn't spoiled by that. I am sure the program and game was pretty crude in comparison to what you tried to get out of this TI device, but we had no notion of "maxing out the capabilities". We just programmed and had tremendous fun. Printing out the entire program on a matrix printer, and annotating changes with a pen. Precious times.
> I asked my parents about getting a modem, and they were like... "no".
I asked my parents for a modem the same year Matthew Broderick's "Wargames" came out. My mom forbid me from ever using one because she had seen a movie about what happens when you have one of those things...
Particularly it only had 256 bytes of RAM attached to the CPU but had (I think) 16 kb of RAM attached to the video controller which the CPU could read and write through I/O registers. You could use this for non-video storage but you couldn't access it directly.
Coding in BASIC could, at the very least, hide the insanity from you.
The TMS9900 didn't have any internal data registers. It only had a program counter, a status register, and a workspace pointer. Instead, it put the "registers" in that same 256 bytes of RAM. There were sixteen 16-bit registers which the workspace pointer pointed to.
The original idea was that this made for fast context switches, instead of dumping all registers to stack (it doesn't even have a stack pointer), just update the workspace pointer to point at a new set. But I have to assume this wasn't really used on the TI-99/4A, as there just wasn't enough RAM. Because your only other ram was locked behind the video controller, that 256 bytes had to contain all your registers, any your dynamically loaded code and any data you wanted rapid access to.
The TMS9900 is weird, because it's the only CPU of the early home computer era that wasn't designed for microcomputers. It's actually an implementation of the TI-990 mini-computer on a single chip and is actually used in later versions of the minicomputer. Those minicomputers had more than enough fast 16-bit memory to take advantage of this fast context switching.
Every other commonly used microprocessor of the 70s (8080, 6800, F8, 6502, RCA1802, Z80, 6809, 8086, 68000) was explicitly designed to target the low-cost microcomputer market.
If you disasembled the ROMs you'd find they're filled with BLWP/RTWP instructions. That's how subroutines were executed: Branch and Load Workspace Pointer. The BLWP instruction would load the WP and PC from the next two words and save the current WP/PC/SR into the new R13/14/15. RTWP would restore R13/14/15 into WP/PC/SR. The end result was a stack implemented as a linked list instead of a contiguous array. A lot of the subroutines in ROM just read/wrote tokens from/to the VRAM and then interpreted them as BASIC.
Back when I lived in Texas and they started doing vanity plates, I applied for the plate "BLWP" (I lived in D/FW and visited Lubbock from time to time, so there was a non-zero chance someone driving by would get it.) After waiting a month, I got the letter from the DPS... no... someone beat me to it. So I guess there were at least two fans of the 990's memory-to-memory architecture out there.
I've been working on a TMS99110 homebrew & emulator, and have studied the architecture of the 990 a whole lot over the past couple years. I want to make a very important distinction in a few things you said.
For anyone that didn't get the context, it's the 99/4 design that has this weird RAM layout. The 990 architecture itself can use any (16-bit) word in memory as the starting point of the 16 registers. Developers have been known to use and abuse the workspace pointer to slide around the "window" on the registers.
The window itself also uses the top three registers to link back to the previous workspace, status, and PC, if you use the proper instructions to branch and return. While there is no stack*, you can still crawl back through those references and get the state of each call.
It's a really cool little architecture, hobbled by the 16-bit address space and how slow it was to keep the registers in RAM. Nowadays I can pick up a 1MB memory chip that's faster than the native bus speed for a few bucks, but that wasn't anywhere near the case in the late 70s and early 80s.
*: The 990/12 minicomputer features the PSHS and POPS instructions, which take a pointer to a definition of where the stack lives and how big it should be. These instructions are not implemented in any production processor, but the platform makes it possible to emulate these instructions in software transparently... as an actual explicit instead of accidental feature in the later few iterations. The 990/12 itself was microcoded on a set of four daisy-chained programmable 4-bit bit slicers so they didn't need any of that nonsense.
So before people start saying "OMG! Memory-to-Memory architectures are so slow! What a stupid idea!" allow me to remind people that back in the early 70s when the 960 was turning into the 990, external bipolar memory was faster than on-chip NMOS static RAM. And since the 960 and 990 were originally implemented with a weird collection of ASICs, discrete parts and 7400-series logic chips, the idea that you would just drop a bipolar part in the design wasn't that weird of an idea. But then as the 990 evolved and TI built a single chip implementation, they retained the memory-to-memory architecture for software compatibility reasons. So yeah... ultimately... CMOS logic got faster than bipolar memory and in retrospect it wasn't the greatest design. But at the time it wasn't THAT bad of an idea. And yeah, it did make task switching very fast. But don't get me started on serial IO off the CPU. And dang, what a great, largely orthogonal instruction set. I sometimes fire up the Assembler / Editor on my 99/4 emulator just to play with it.
Anywho... this isn't a critique of the OP or @phire, it's a reminder for the community at large that tech decisions that seem bad in retrospect often had non-idiotic motivations at the time.
Speaking of interesting bits, this machine isn't actually an 8-bit computer, the CPU is 16-bit. (The video controller is 8-bit though, i.e. the VRAM data bus is 8-bits. It's also the same video controller used in various other machines, e.g. MSX.)
Much more influential 16-bit CPUs from that era include the PDP-11's CPU, the Data General Nova's CPU, the Xerox Alto's CPU, and arguably even the 8086 and 8088. The chronology seems to go as follows:
- 01965: IBM 1130
- 01966: HP 2116A, the first model of the HP 2100 series
- 01974: PACE (which was from National Semiconductor, not National Instruments)
- 01975: CP1600
- 01976: TMS9900 (what the TI-99/4A used)
- 01976: Tandem (first Tandem/16 shipped to Citibank)
- 01978: 8086
- 01979: 8088
- 01981: TI-99/4A
Since there were plenty of 6-bit, 8-bit, 12-bit, 32-bit, 36-bit, 60-bit, and 64-bit CPUs in the 01950s, you'd think there would be some 16-bit CPUs then too, but I can't think of any. I'd even forgotten about the HP 2100 until I went looking just now.
Depends what you call '16-bit'. The addressable word size [1] for the PDP-11 was 8-bits and the problem space address space was 16-bits so a user program on the PDP-11 could ac cess 64kB of RAM, same as an Apple ][, except that multiple users could have their own address spaces.
The IBM 360 had 24-bit addresses, 8-bit words, and 16 32-bit registers.
8-bit words were thoroughly established by 1980s for general purpose computers, I think because of the use of 7/8-bit ASCII characters. I mean, you could pack ASCII characters into larger words in different ways but the most comfortable (portable) way to handle them is to have a char* which requires either 8-bit words or some way to address subwords.
The PDP-10 was probably the most loved heterodox architecture with a 20-bit address space and 36-bit words. It had pointers that could point to specific bits inside a word so it was possible to port C to it with char*'s. The user space was 256k words and 1152M bytes. (If an architecture like the PDP-10 let you access bits in the next word you could even point something like a char* at a variable sized UTF-8 char if you don't mind pointer arithmetic being limited to scans)
Some of the 8-bit micros had 16-bit registers such as the 8086/8088 and the 6809. The word size doesn't have to be related to the size of the data bus: the 8088 had an 8-bit data bus and the 8086 had a 16-bit data bus, it just pumped twice if it needed 16-bits. The 68k series had 32-bit registers and a 32-bit address space (like the DEC VAX which was the first modern computer) but had various bus sizes as low as 8-bits in the 68008.
With a cache the data bus could be larger than the word size.
Programming really isn't fun if you don't have index registers at least as large as the address space. There were numerous attempts to extend 8-bit architectures to a 24-bit address space that didn't provide large enough index registers, the 65816 is probably the most famous. The eZ80 on the other hand, extends the registers to 24-bits so it's easy to write programs that use the whole address space.
You are using "word size" to mean "memory addressing unit size", and while you are clear about this, its clash with common usage makes your comment somewhat confusing to read. But, doing the mental translations, I think everything you said is correct, even though much of it would be false if interpreted in accordance with the usual definitions.
Usually "word size" means "register size" and a "16-bit architecture" is one with a word size, in that sense, of 16 bits; that is, one whose architectural registers are 16 bits wide. That describes all the CPUs in my list, I think. The definition necessarily gets a bit ambiguous on machines with multiple register widths like the CDC 6600, the 8080, the 8086, and the 80386. But usually on this basis we say the 6600 was 60-bit (despite its smaller address registers), the 8080 was 8-bit (despite its 16-bit register-pair instructions) and so was the 6809, the 8086 was 16-bit (despite AH, AL, etc.) and so was the 65816, and the 386 and 360 and 68k and VAX were 32-bit.
I suspect that standardizing on 8-bit byte addressability was largely due to the influence of the 360, which didn't use ASCII. ASCII (a 7-bit code) was probably a significant influence, but it fit as nicely into 9-bit PDP-10 bytes as into 8-bit bytes, with space for a 512-character character set.
One minor quibble on the PDP-11: though addresses were 16 bits, as you probably know, later PDP-11 models supported split instruction and data spaces, with separate code and data segments. This doubled the memory available for a normal user program over what an Apple ][ could manage without bank switching. Later versions of PDP-11 Unix required this capability for some larger programs, though I don't remember which.
I think the status of the VAX as "the first modern computer" is pretty debatable. Other defensible candidates might be the IBM 801, the IBM PC, the SUN workstation, the Alto, Berkeley RISC I, Stretch, the CDC 6600, the IBM 360, the IBM 360 Model 91, the IBM 360 Model 67, and the Acorn Archimedes. But the VAX definitely has a plausible claim to that title.
A interesting 12-bit microcontroller I just learned about is the "Toshiba Transistor Works" TLCS-12 for Ford's engine control module (1973). I'm trying to find a full datasheet for it:
"Bits" is a stupid measure of "computer". The TI-99/4A clearly belongs in the 8-bit era of computers.
Motorola's 68000 was the single most prolific microprocessor of the 16-bit era. Yet all the registers are 32-bit, and all the instructions easily operate on 32-bit values [1]. About the only claim to being "16-bit" is the 16-bit wide data bus.
If we go by that metric, then the IBM PC (with its 8088 hobbled by an 8-bit data bus) is clearly just another 8-bit microcomputer.
BTW, this is absolutely the way that Motorola sees it. The 68008 is just a 68000 hobbled with an 8-bit data bus, and they label it as a 8/32-bit microprocessor.
[1] And if anyone dares to point out that the 68000's ALU is only 16-bits wide, then I have bad news about the Z-80: It only has a 4-bit ALU, so I guess it's actually a 4-bit microprocessor
The Amiga was loudly marketed as having a 32-bit CPU though (the Atari ST a lot less so, for whatever reason).
Having a 16-bit ALU in theory would make the 9900 a 16-bit processor as much as the 8086. The TI-99/4A is definitely weird (and slow!!) but it does fit the definition of a 16-bit system.
Judging by the cycle counts, it's a 16 bit cpu internally? Word operations are almost always cheaper, even when there are no additional memory accesses for the long case. (I think long register to register moves are the only free long case. It's been a while, though.)
The '8-bit' micros all had a 16-bit address space, at least in their early implementations. (Later we got the eZ80, 65816, etc.) which lets you address 64k words of memory and the word was always 8-bit bytes.
Contrast that to the PDP-10 [1] which had a 36 bit word and a 20-bit address space and could access 256k words for a total of 1152 kilobytes.
The use of 8-bit bytes for characters I think killed off any word size other than 8-bit because otherwise it would be awkward to work with characters. [2] To be efficient you have to pack multiple characters into a word, it's something that comes up common enough you could create some special machine instructions for it, but if you want to support a C compiler you need a char. It's easiest if native pointers point to a byte. If it was otherwise you could make up a char that consists of a native pointer plus a pointer to the char inside the word, but boy what a hassle. [3]
Modern computers get many of the benefits of a larger word size (wider pipe to suck data through) by having a cache system that decouples the memory interface from the CPU, so a CPU could ask for 32 bits and get it retrieved 8 bits at a time, or it could ask for 32 bits and get the surrounding 128 bits stored in the cache so they don't need to be retrieved next)
[2] DEC had a system of 6-bit characters, which divides nicely into 36, but you have the same problem
[3] That PDP-10 did have deep pointers that could point to a specific range of bits inside a word, that's what you need if you want something like that to be reasonable to program. I've been thinking about a fantasy computer to run inside Javascript and came across a 48-bit word size to use doubles efficiently to store words. That thing would have 24-bit address spaces, plus it would be possible to make 'deep pointers' that have 6 bits of offset and 6 bits of length (with the possibility of 0-length to point to a specific bit) and could be extended to 'wide pointers' by putting a few bits in front that would reference particular address spaces (might be video RAM, or a unit of memory protection, or made contiguous to represent a larger address space) I think I'd want enough to make a 1GB word address space so it could outdo a 32-bit machine and then let the rest be used for flags just to make it as baroque as possible... And that's why you only see 8-bit words today!
Well, I was gonna say this: A CPU is X bits if the highest number of bits that the value of a "load immediate" instruction can have is X. But I think this makes MIPS 16-bit.
Worse, that would mean Arm64 is a 12-bit CPU. The original 32-bit ARM encoding could only load 8 bit immediates, though later versions gained a 16-bit load immediate instruction.
RISC-V is a bit better off, as it has a special encoding for 20 bit immediates, while Alpha and PowerPC are the same as MIPS, stuck with 16-bit immediates.
Ahh, but that would be mean because it would make ARM64 CPUs 16-bit too. Though actually if you put -1 and it sign-extends to 0xFFFF'FFFF'FFFF'FFFF then that's technically 64-bit? :p
Wait'll you discover that different CPUs use different word lengths, and not just your expected 8-bit X power-of-2 of current modern processors). 36-bit native word with a 9 bit databus and a 16-bit address bus with 64 kilowords of memory... welcome to the fun of early digital computing.
But that is the very way that they are defined through our historical understanding. The 990 platform, established in 1973, not the 80s, is 16-bit, with 16-bit words and 16-bit pointers.
As I recall at the time, very few people knew how to write assembly for that machine, as there just wasn't a lot to go on.
I enjoyed the sprites though, and that was something that was definitely different than Apple II, IBM, etc. at the time. Apple and IBM's graphics were definitely a step down.
C64 could do sprites with POKE statements apparently. But that was definitely not as nice as the TI.
"Coding in BASIC could, at the very least, hide the insanity from you."
Except TI-BASIC is a hell-riddled double-interpreted language. I had a 99/4A at the age of 6, learned how to use all of the TI-BASIC language by 8, and said screw that, hardware it is for me, dad's buying me a 286 for Christmas, time to learn how to build that!
I used TI99/4As at school in the Isle of Man at age 16 or so. I thought they were sad, rather crippled things then. Horribly slow, limited BASIC, and the school didn't have Extended BASIC cartridges.
I still wonder... Could TI have made a non-crippled TI99 at the time that wouldn't have been vastly more expensive?
I know there was the planned, prototyped, and cancelled TI99/8:
Somewhere I read a story about a group of TI sales engineers in Britain who put together a much more "typical" micro-computer system using the 9940 or 9980 CPU. They, of course, lost out the the 99/4 design because of politics. Though to be fair, I've heard there was A LOT of confusion over the 99/4's requirements. It supposedly started as a video game console after the Atari VCS was released to great acclaim in '77. But by the time they released it they decided they wanted to compete with the personal computing trinity: Apple ][, TRS-80 and Commodore PET.
I think it was certainly possible for SOMEONE to have come up with a better design targeting the nascent PC market. Also remember the 99/4 was pretty cheap compared to "real" computers. A typical CP/M or Apple ][ machine would have cost somewhere around $2500-$3500 in 1979. The 99/4 was a "bargain" at $1150. You have to think a 9900-based system that had a front-panel, floppy disk, RS-232 interface like contemporary CP/M machines wouldn't have cost too much more than a CP/M device. It may be a scratch more expensive cause you would likely want a bit more memory than the 16k that was common in the Altair or IMSAI machines at the time.
Every now and again 99/8 prototype systems will surface on eBay and sell for THOUSANDS of dollars. I just saw a CC-40 Plus system go for about $3500. Alas, I can't really justify that many dollars for these old systems. When TI got out of the business, they had the 99/8 and CC-70 in development. Assuming they were able to sell them for a decent price, they couldn't have been as bad at the 99/4 and CC-40.
OK, this seems like a good thread to ask about something that was contemporary to the TI-99/4A ... namely, the idea of "Fairware". As near as I can tell this term was coined to refer to freeware at a time when that term was still trademarked by Andrew Fluegelman / Headlands Press, and seems largely to have been current among TI-99/4A users (probably because after their platform got orphaned freeware/fairware was all they had), but not so much anywhere else (with a few exceptions, and then probably because by the time anyone had heard of it Andrew was dead and his trademark died not long after, so everyone took to calling freeware 'freeware'... or shareware, since that term had also been coined to get around that trademark).
Anyway, the question is: Who actually coined the term "fairware"? I did some preliminary research in old periodicals and books, but I never came to a satisfactory answer. The closest I found it that it might have been one of the sysops of the TI conference on ... I think either Compuserve or GEnie? Either way, I never found any smoking gun, and this is one of those bits of historical trivia where not knowing the answer irritates me greatly. I tried asking around on the Atari Age forums, but I guess the right kind of graybeards don't hang out around there. Maybe someone here will know the answer?
My dad taught me to read with Dr Seuss and the TI-99/4A BASIC programming manual. Starting writing my first programs at 4. Love that old machine. There was a sort of Gradius knock off for it called Parsec that I played the hell out of too.
When I was a little older I would borrow books at the library to write games in BASIC. Basically key stuff in that the book told you to write, and since a lot of it was for the C64 or TRS-80 I had to figure out how to “port” it to the TI. I wrote notes for my changes in pencil in the library books so I wouldn’t get in trouble with the librarian. Invariably I’d check the book out again a few weeks after I’d returned it. I was probably the only person who read my notes, but I like to think someone got some use out of my addenda.
Wrote my first programs for this too, at 7. Copied from the manual with no understanding but eventually writing my own. The only coder in the house! Didn't write anything decent until the C64 when I made a few small games.
The graphics chip on this thing was a big deal. Variants ended up in the ColecoVision, the MSX line of computers and Sega's SG-1000 console. Later machines like the MSX2 and the Sega Master System had backwards-compatible but entirely different evolutions of the design.
Quite an impact for a graphics chip coming from a rather unsuccessful computer. I never played around with or even saw a TI-99 but from my understanding the CPU needing to use VRAM as data storage (because the system RAM was way too low for the time), accessed through IO ports, really hampered the machine.
While it lacked the hardware scrolling, massive master palette and display list tricks of the Atari machines, it displayed multi-color high-resolution graphics with ease. Being able to set a different color for each line of a background tile allowed for really detailed art.
Only 4 sprites per line like the Atari (not counting the weird missiles), but the TI-99 sprites are 16 pixels wide and high-resolution, rather than 8 fat pixels wide, and there's 32 to work with in total rather than needing to use raster splits to multiplex sprites.
Way ahead of its time. MSX homebrew games like Mini Ghost, The Cure, Invasion of the Zombie Monsters, etc. really show what it can do.
> Way ahead of its time. MSX homebrew games like Mini Ghost, The Cure, Invasion of the Zombie Monsters, etc. really show what it can do.
Too bad that at the time, TI actively discouraged third party developers from developing software for the TI-99/4(A) - they were selling the machines below production cost (because of the difficult market and the competition from cheaper mostly Commodore models) and hoped to recoup the losses by selling software (according to https://en.wikipedia.org/wiki/TI-99/4A#Lack_of_third-party_d...).
That's the biggest "what if" omission of the TMS9918 for me - I wonder how the 8-bit landscape would have evolved if it had even minimal support like the scroll registers of the VIC-II...
I'm more shocked that the MSX2 graphics chip (before the plus revision) had a "screen adjust" register but no border blanking for horizontal scrolling. Massive miss there, much worse than the lack of scrolling on the original TMS9918 which was developed at a time where scrolling wasn't all that common.
I do so love the TI-99/4A. I've been going through some TI-99/4A disk archives from the Chicago Texas Instruments User Group (which streams its meetings every month) and one of my favorite finds so far was this fun demo:
> This would normally result in just being another forgotten also-ran like the Timex Sinclair 2068 (a ZX Spectrum variant for the US that was basically incompatible with all ZX Spectrum software
As proud owner of one, this isn't exactly right.
Turns out one of their factories was in Portugal, so until the 128 K models took off, many Portuguese homes had a Timex instead of the real ZX Spectrum.
And while it was incompatible in default mode, it had an eprom bay that extended its capabilities in various ways, including a being copy of Spectrum 48.
A cartridge that most folks owned as well.
In its incompatible mode, it had a great sound chip, for its time.
The factory was so relevant for Timex culture in Portugal during the 1980's, that there is even a museum.
> And learn - in case you don’t know it yet - about the important role that Portugal played at the TIMEX factory when this phenomenon started in the 80s.
My first computer as well! I remember typing game code from a magazine and saving it to the cassette tape. My big Christmas present the next year was the giant expansion box with the floppy drive.
Same here, I'm in the TI-99 as first computer club as well.
98% of what I did on it was just play cartridge games, but I did have a year or so of trying to type in Basic programs from library magazines. None of them ever came close to working since they were never for TI's weird dialect of Basic and I didn't know anything about the differences. Mostly what I did was CALL COLOR instructions for some pretty colors. I think the furthest I ever got with Basic was the "higher/lower" guess-the-number game. Eventually then we got a Tandy 1000 with GW-Basic and I moved on to that.
I didn't really get into Parsec. Tombstone City was my jam. And then I bought the Editor / Assembler package and it came with the source for Tombstone City as an example. It turns out the algorithm for figuring out which tumbleweed was going to turn into a monster was very simple. Reading that one bit of the source, I was able to predict where the bad guys would spawn and be ready for them. After that I could flip the counter and pretty much play as long as I wanted on two or three lives.
I figured that out just from playing Tombstone City. It's the first paired cactus by scanning the board in reading order (each row from the top, left-to-right.) (You mean a cactus that turns into a monster, not a tumbleweed.) And yes, once you know that, the game is pretty easy when you can anticipate every threat. I remember being able to go for at least a couple hours in one game; don't remember if I ever rolled it over or got bored before that.
I wanted the TI-99/4 that was marketed at the beginning of the 80s. As it turned out, I didn't own a computer until buying a Tandy PC-6 pocket computer in the mid-eighties.
Fast forward to buying the later TI-99/4A in the beige case in 2023. Booting it up into the Basic prompt gave me a nice flashback to learning Basic in High School on the Radio Shack TRS-80 Model I.
I've also bought its cousin the TI-74 BASICALC. Given hindsight, the TI-74 is my favorite TI-99 for retro computing, even though the similarity is limited to a subset of the TI Basic from the TI-99 family. The TI-74s are rugged and available. It's very useful as a desk calculator.
I still have both the 74ALC and a CC-40. I'm embarrassed to say I didn't pick up on how the 74 was essentially just a re-skinned CC-40 until about 10 years ago. You can apparently get a plug adapter for the 74 that lets you drive CC-40 peripherals (not that there are a lot of them around.)
This seems like an expensive hobby, but one that chases that feeling we first got off our first system! I often wish that I understood hardware a bit more when I learned Atari 8-bit BASIC, in the late 80's/early 90's, and would have known to keep everything wrapped up in an environment that wasn't humid. I feel the one I learned on, owned by my dad, was probably moved to the basement storage and is completely corroded at this point.
I have dim memories of going to a show in San Francisco’s Brooks Hall(?) called TI-Fest. It was a show all for TI’s home computers and they had the speech synthesizer and some kind of expansion chassis and lots of other stuff. My dad was looking for a home computer that me and my brother could use, so he brought us along. The show was exciting, at least that’s the way I remember it. There was this feeling that something big was happening.
Dad ended up buying an Atari 800 instead of a 99/4A. It was a good decision.
They bought this machine because it was the best value for the hardware specs. I didn’t realize TI actually lost money on the hardware until reading this article
This was my very first computer, at age 13. I learned hexadecimal by drawing pictures of spaceships on graph paper, coloring in the squares that had lines through them, splitting the grid into 8x8 sections with a ruler, converting each row of 8 pixels into a hexadecimal number, and then typing them all into DATA statements, just to see the picture take shape on my screen when I ran the program. For some reason, I thought that was just the coolest. About a year later I upgraded to the Commodore 64, but I'll always have a spot in my heart for my TI.
This was my first computer as well! (age 8?) And I too spent time in class drawing spaceships on graph paper, rather than listening to the teacher. I was certainly obsessed with BASIC programming. I didn't start assembly language until the Apple IIe a few years later.
I'm surprised now to see it was a 16-bit CPU -- I had no idea. I assumed 8-bit as most home computers were (6502, Z80, etc).
Two things I remember:
Saving and loading programs on cassette tapes (where are they? I'm jealous of another poster who still has their TI99/4a).
It was insanely easy to reboot it accidentally -- I had to look it up again but apparently it was by pressing Shift-Q [1]. I lost some work several times, until I got the muscle anti-memory.
Yeah, the cassette tape was an awesome bit of technology. Once I got one, I didn't have to type in the USS Enterprise program every time I wanted to see it. It also made for nice lo-fi background music. :)
I had one of these growing up, until it was replace with a Tandy 1000 from Radio Shack. Well, I kept it around until I moved into my second house.
I had TI Forth, the huge accessory box, a disk drive, the works. It was fun, I learned quite a bit and have forgotten most of the Forth that I learned.
I had a similar setup eventually with Wycove Forth -- can't remember even the existence of TI Forth. Anyway playing with that was my foot in the door to a summer job at FORTH, Inc. as a teen.
Lost all of that code because my 99 system got stolen a few years later.
Didn't TI-Forth have a mode where it would use a 3x7 font so you could get 64 characters per line? I still have nightmares. But... you have to appreciate the work that went into it.
I think the TI Forth was based on L&P-83 FORTH (L&P for Laxen and Perry, the two authors.) I was in a friend's house in silly valley and met a friend-of-that-friend and started talking about tech. At some point I mentioned TI forth and L&P83 on the PC and how it was a great, simple system. He said "thank you." Turns out I was talking with Mike Perry.
I had a TI-99/4A. I learned to program from the excellent Basic manual that came with it. I wrote my code on paper, then keyed it in to run.
I mainly wrote basic games for my friends. Most popular was a two player competetive snakes variant, a bit like Tron but with traces only growing as you gobbled up food. I also wrote a 'defender' like game that enjoyed some success amongst friends.
I had no periperals or cartridges as that was too expensive. The living room TV was my monitor. It was quite a while before I got a cassette tape player, so in the early days a computer session started by retyping all code from my notebook.
I later got a ZX Spectrum which was far more powerfull, but the TI (and a HP41cv) are what got me into programming.
It was not until years later I actually understood what I was doing. The little dancing guy was magic when I did it the first few times. Now I see it as a boring little program that loads up a bitmap into memory and then hangs out in a loop. I think the 'magic' may be gone :)
Oh yeah. I sort of forgot. The 99/4 came with some very decent manuals. I remember the Extended Basic manual being a bit "meh" compared to the regular 99/4 manuals, but I'm probably doing it a disservice. It was probably still a great manual.
Like a lot of people here, I learned to program on a 99/4A before moving to a PC. The 99/4A was actually great, but looking back very primitive. TI-Basic -> Extended Basic -> Assembly. When I got to the PC, I missed hardware sprites and a real sound chip (a sound card for a PC cost $300 at the time - about $100 more than my TI cost my Dad!).
It always amazed me that the 99/4A had such a vibrant community (that is still creating hardware and software around the machine) and so many outlandish ways to expand the machine.
This brings fun memories of being a kid in deciding which one I am going to pick - Apple II, TRS-80, Commodore 64, Sinclair ZX80, Commodore PET, Atari 800, etc.
One thing TI (Extended) Basic had for it that was almost unique among early home computers was its use of decimal floating point with 13 digits precision. It was so useful for maths. I used it a lot at that time in high school. When I switched to an Apple II with its 5 byte binary floats, man was it a disappointment. It was faster, yes, but, boy oh boy, what a catastrophic loss of precision.
anything 6502 SBC -- hex code / assembly, later BASIC, etc.
Timex Sinclair -- disabled screen for run so CPU could save screen code cycles
TRS-80 CoCo -- poke 65535,65536, 65537 -- clock 1x, overclock 2x, 3x
TI99/4a -- sprites + cartridges + accessible
PC Jr + Turbo Pascal -- first compiler in
I had one when I was like 11 or so. Loved its fake Pacman game. I learned some Basic. Such a distinct memory of spending a whole day copying a program from Byte magazine (or something like it), getting the game to run well after my bedtime, playing it one or two times, then… just turning off the computer, losing all that work. I was never able to convince my mom to buy the fancy tape recorder that would have let me save programs. It was a while till I programmed again, but the seed was definitely planted.
Never knew the TI-99/4A was useful for anything but playing Parsec. That’s all I ever did on my BFF Mark’s TI-99/4A. Then I would go home, use my C64 and be grateful my parents didn’t get me a TI-99/4A.
Although I did love playing Parsec (and Fathom and TI Invaders and Munch Man and ...), I did a significant amount of programming on mine.
First I made a text-based "cave explorer" deal, with significant randomization, various choices that might lead to pits, monsters, rockfalls, and the like, with warnings and the ability to "back up." Also, some character creation business for Dungeons and Dragons (doing all of the attribute rolling, then selecting an optimal class, then doing the hitpoints, then some money, and on to one of twenty convenient "equipment packs" I designed), right on out to the printouts. Math drills.
I made a fairly dumb video game that drew in an uninspiring manner from Berzerk and Pac-Man and the like, which was quite slow due to the various walls and pits and such which had to be checked for in many lines of tedious IF THEN ELSE statements ... but then I hit on the idea of merely drawing all of these items and then checking the video register to see what was there, resulting in a massive speedup, or as much as one could manage using doubly-interpreted BASIC.
After I got the Speech Synthesis module, I revisited some of my dumb little games and added some voice bits, not much more than your Sinistar "I hunger!" bits.
My last was Black Cat, wherein your titular cat had to cross traffic (like Frogger) on one screen, navigate various screens of terrain, visit a child at school, and eventually find your way home, hopefully bringing with you a bird or mouse as a trophy for bonus points.
I only ever played Temple of Apshai on the Commodore.
Same here. I specifically remember staying home "sick" from school just so I could transfer those COMPUTE! programs from paper to screen and eventually to cassette tape! Still have the entire setup except for the 13" Montgomery Ward TV it was connected to. I owe my entire tech career to my parents buying me that little TI from Shopko in 1983.
I didn't know the TI-99/4A was 16-bit until many years later when the Atari ST and Commodore Amiga were taking over from the Spectrum, C-64 and Amstrad (in the UK). Aside from the refueling tunnels getting a bit tricky later on in Parsec, I have fond memories of Alpiner and Pirate's Adventure. That latter one being the bundled game with the Adventure cartridge, requiring you to insert the cartridge (containing parser etc., I think) and then load the particular adventure story from tape.
I had one for a while in my early teens and it had the floppy disk drive option. I did some sprite and graphics programming. It's obviously been a long time and I was young so I could be mistaken, but one bad experience I had with it was that the filesystem considered a file either a program or data and there was no obvious way (to me) to switch between the two. Well one day the machine decided that my basic files were data and not programs and so I lost them.
After so long I have no idea, but... that floppy file system also had a notion of copy-protected files. It turned out to be straightforward to work around that copy protection, so maybe there was some similar way around the data/program thing.
(All I remember is reading the docs of the filesystem calls and thinking "hm, could you do thus-and-so" and being a bit surprised it just worked.)
There is a working one in the gaming area of the Computer History Museum in Roswell, GA. The instructions direct you to play the Wumpus game but you can go to ti-basic and other programs instead.
I have one. It was the first computer that was completely mine.
I was disappointed in what the embedded basic could give me...it was slow, it had sprite-only graphics exposed (couldn't draw a vector from X,Y to X,Y) and my parents only bought touch typing tutor.
and in my boredom, I'd slot and pull the cartridge which made it do -interesting- things...dumping memory space to what would eventually be called a frame buffer...and when it did, it would show cycling bitmaps at a much higher speed than you'd ever be able to do with Basic.
So you could see the potential, but a 12 year old with nothing but a tape drive and one cartridge couldn't and didn't know how to touch it.
And 4 months after spending $350 for it, Sears was closing them out for $50. Which was why, a few years later, when I wanted an Amiga, Dad bought an XT clone. It's support and software cpabilities was much improved over the TI.
So... my grand-mother worked for DeGolyer as a computer (back when that was a person who manually computed figures with a slide rule or mechanical calculator.) And my grand-father was one of the original investors in GSI (which later became TI.) The 990 and 960 were a bit before my time, but I remember my uncle (who at the time of his retirement was supposedly the longest serving TI employee, having worked there from 1946 to 2007) talking about having 960 systems on-board boats in the Gulf of Mexico to calculate seismic reflection data. But I found this link:
so maybe I'm mis-remembering it. But wasn't the 990 already planned as being a cost reduced version of the 960 and 980? Though in those days it seemed like a lot of computer systems were being built for specific customers. The story I heard about the 8008 and TMX1795 were they were built exclusively to win the DataPoint terminal contract.
Thx for the reference in your post, but it doesn't say anything about the 990 being developed for a Hotel Chain (though I have a distinct memory of it being used as a prop in the TV series "Hotel" -- https://starringthecomputer.com/computer.html?c=578 ) Maybe you saw the hotel reference on a different page?
I think that was the Recursiv, that was built by some TI escapees in Britain. But this is based on very old neurons, so I could DEFINITELY be wrong on this one. Just offering what I think I remember.
TI definitely had a defense oriented business up until the late 90s when they sold their Defense Semiconductor Engineering Group (DESG) to (I think) Raytheon.
The 99/4 & 4A have such a great place in my heart. One of my uncles worked for TI (he was the exec sponsor for the Speak & Spell.) My mom had a LINC for a while and my dad bought a TRS-80 when it came out. So when the 99/4 was about to be released, we got the full court press from my uncle: there's a new 16 bit computer with color and sound and all sorts of cool features.
So we bought a 99/4. Pretty sure we got the friends and family discount. Many don't remember the original 99/4 released in '79, but it was definitely a weird beast. In retrospect it was very clear TI couldn't decide whether it was a console gaming system to compete with the Atari VCS or a personal computer to compete with the Atari 800, Apple ][, TRS-80 or Commodore PET. Peripherals were originally (large) boxes that chained off the side of the main unit. We had a speech synthesizer, memory expansion, RS-232 interface and floppy controller, so we wound up buying a special cable to let us move the chain to a different part of the desk.
To a modern audience, the most interesting part of the confusion between being a personal computer or game console might have been TI's attitude towards 3rd party software developers. If you wanted to write software for the 99/4, the first thing they wanted you to do was to give them $10k. And this was back in the late 70s, when $10k was a chunk of change. Companies like Milton-Bradley ponied up the cash for a license and a dev system (which I think was a $25k 990 system.) I wrote a couple games for the Apple ][, put floppies in a zip-lock and sold them through the local ByteShop. I think I sold 10 copies. For a kid in Jr. High, the $50 in profit I made was real money. I could not even conceive of where I would get $10k for a license to make anything for the 99/4.
In '81, TI released an upgraded version called the 99/4A, which was mostly identical, but had the upgraded video chip (the 9918A vs the 9918) and lower case characters (actually small caps, but who cares.) Even though there was plenty of data to suggest this Nintendo-esque approach to 3rd party software was more of a games console thing than a personal computer thing, TI stuck with it. I think the beige models of the 99/4A that started coming out in '83 before they exited the market included scrambled entry-points to various OS calls to make it harder for people to make unlicensed software (didn't AtariSoft run afoul of this? or maybe it was ActiVision. I know one of the "big names" didn't want to pay for the license and thus didn't get the "secret" information about how to properly call I/O functions on the beige machines.)
My uncle participated in researching a book on TI's corporate history in the late 90s / early 2000s. I helped him out a bit and one day called the main corporate library asking for any public info they might have on the 99/4. They claimed TI never made a machine called the 99/4 or 99/4A and I must be thinking about the TI-84 calculator. Maybe they just wanted to forget the whole thing or maybe I had reached the calculator library. In any event, most of the people I talked with who were involved in the project thought it was a failure and don't seem to want to share their memories. This is kinda sad. I loved my little 99/4, quirks and all.
This is where my programming journey began! Somewhere, tucked away in a scrapbook, is a handwritten set of BASIC instructions I wrote around 1983 when I would have been about 6 (probably for an Apple IIe, not this computer).
My dad bought it with the stated intent of writing a program that would display ASCII art associated with a keypress, to help me learn the alphabet and reading (e.g., pressing "A" would have brought up an ascii art apple). He claimed that he was only able to make it halfway through the alphabet before running out of storage on the cassette tape.
He would later go on to be a sysadmin at Cleveland FreeNet (as a hobby), and in the early 1980s was the first principal to put a "computer lab" in our local high school.
I have many fond memories of playing Munch Man (and, I think, Parsec) on this home computer.
My first computer. Played Blast-O!, Hunt The Wumpus, Chisolm Trail, A-MAZE-ING, and a couple other games. Learned the crummy programming language of TI-BASIC, gave up on software and stuck with hardware ever since.
Funny enough, now as part of my job, I advise TI on various upcoming power ranges for various lighting types, and they do on occasion make an IC based on my specs for general production.
I'm embarrassed to say how often I visit js99er.net to play the old TI version of Hunt the Wumpus. I should have something better to do with my finite time on Earth.
Oh, alright...I'll be that guy. All respect to those infected with this particular strain of nostalgia, but I hated that piece of crap.
I was starting to program back in those halcyon days (BASIC and fortunately for my later life, Fortran), so my dad got me one. Probably because it was cheap. Cheap it was, and slow. Like, my friends VIC20 seemed faster (but then, he had a floppy, more on that later). And the games were mostly inferior to anything on something like the C64. And they were games none of my friends had, or more importantly, my friends had games I couldn't. And the business apps, according to my dad, were 'just shit'.
OK...I will give the thing one huge props: it had a relatively cheap voice synthesizer "sidecar" thing, that my dad actually sprung for. It. Was. AWESOME. Write a little BASIC program and a robot voice would call your friend a 'butthead' or something. For a couple of days I was the most popular kid in the neighborhood and everyone had to see (hear) this thing. And then...they all went "cool man, but we're gonna go and play Fargoal or Double Dragon or whatever that you don't have and don't know how to play". So back alone with my 99/4a calling my friends 'butthead', but now in a sad way.
But dad bought it for me to program on, so let's do that. The BASIC was...okay, I guess, but since it was some TI thing unrelated to MS BASIC used by pretty much everyone else at the time I couldn't compare notes with and get help from my friends with sane parents who had gotten their kids a C64, Atari 800 or TRS-80. The Logo cart was actually pretty fun, but it was also it's own thing and more of a toy to play with; moving the turtle around the screen got old quick. I probably should have gotten the assembler cart, but I didn't know that was probably the only way to really have fun programming the thing. Nut anyway...I'm a couple of BASIC programs in, and a floppy sure would be nice (read: required). Oh, you want floppy? You have to buy the giant expansion box, which is 5 times bigger than and costs more than the computer. And then buy the floppy. And probably a memory expansion.
At this point dad realized he'd been sold a bill of goods, did the math, knew what a sunk cost is, and went out and bought a TRS-80 4P for a lot more than the TI. Added CP/M, Turbo Pascal, 123 and Wordstar and a modem and I was off to the races. Got me all the way to my second year of college or so.
At some point in the '90s, a buddy showed me around his new job (manufacturing) and we spent some time on the TI-990 minicomputer he was in charge of. I remember thinking "if this is what is possible with a 9900, they had to have worked hard crippling it for the 99/4a".
No argument, it was terrible. :) But still I had good times and started learning to program.
The assembler cartridge was nearly as useless as the BASIC cartridge for the Atari VCS. (Not that I ever tried the latter, but similar problems of very limited memory holding text you'd typed in, the assembled program, and whatever data it's processing at runtime -- and needing to save to cassette tape before you can start on anything else.) However, the CPU architecture actually did give you a nice clean assembly language once you had enough of a system to really code in it.
Being away from the mainstream... isn't an advantage but I'd have to call it part of my development as a programmer. I had to get into Forth for a reasonably powerful system.
And at the end of it's life, the local Base Exchange was selling them for $50 along with a $99 rebate voucher. The offer didn't last for long, though my brother scrabbled enough cash to buy 5 of them, got the rebate checks and wound up making money on the deal. But then he had 5 99/4As that he couldn't even give away.
It was a bit of a crap-fest handicapped by bizarre corporate strategies from TI and a "baroque" internal architecture. But it was DURT CHEAP compared to "real" computers like PCs/clones, Apple ][s or CP/M devices.
(Not arguing with the fact that in 1983 when TI pulled out of the market, it was clear it was ready to move to a computer farm upstate. But none of us knew any better in '79 when the 99/4 was originally released. And besides, BILL COSBY was the spokes-person, so it COULDN'T be a bad machine!)
I'll never forget the TI-99/4A. I was 8 years old, in second grade in Southern California. We had a "computer lab" which was a mobile building with 13 or 15 TI-99/4A's, and about half of them had color TV's and the rest, B+W. Nobody really knew anything, but we did have books to copy BASIC programs out of.
One kid entered a program that flashed colors and patterns on the color TV. Our teacher was epileptic, and this sent her into a seizure. Myself and another kid ran to get the 5th grade teacher who'd been a doctor at some point (don't ask, I dont know, I was 8) and he came running and attended to her. She was fine.
I'd always been interested in how things work, taking things apart, playing with my 30-in-1 electronics lab from Radio Shack. But this new computer thing... this was something. That experience flipped a bit in my 8 year old brain. All because of a TI-99/4A.
I love this story, but not because the teacher had epilepsy! The flashing colors, and ability to draw from the center of the screen to the outer bounds, and showing it happen in real time (since the graphics weren't so fast then) was a huge factor in me getting involved in programming. I started off with Atari BASIC, and my first program of my own was a strobe light, where I could control the speed and generate a random color to display on each "strobe".
Once I saw how fun that was to actually run and show friends (which I think was the big draw for me in the 80's), I created an English to Pig Latin translator, which was more based on an official example, but I remember putting more work into it, including a trigger for certain "bad words" my friends would definitely enter, and giving them a surprise flash and warning. Not sophisticated in any way, just a bunch of IF statements for specific words, then a fall through for anything not matching to be translated.
I used to have a book on experiments using a 6-volt battery, and I got my son one of those 30-in-1 kits, and we had a lot of fun with it. I was more easily able to move from the electronic kit to software with him, having had interest in both, and now he's picked up the software itch.
My god, your classmate hacked the teacher!
I still have my TI-99/4A! I received it Christmas morning of 1983, although a Timex/Sinclair had been on my wish list. Sears had them marked down to $50 during the 8-bit wars. Mom had been up all night hand-typing in a BASIC demo so it would be running in the morning. Many Wumpuses were hunted that day.
Today, it has a F17A video processor that enables VGA output: https://dnotq.io/f18a/intro.html
And a FinalGROM99 cartridge, so I can have an SD card with all the program cartridges loaded. https://endlos99.github.io/finalgrom99/
There's still a community of fairly active development for retrogames, and some of them are quite good given capabilities of the hardware. My niece particularly enjoys a marble game called Skyway, try it on the online emulator at https://ti99ers.com
> Mom had been up all night hand-typing in a BASIC demo so it would be running in the morning. Many Wumpuses were hunted that day.
Hah, that’s a bit of special effort into making Christmas a little bit more magic. Was she a tech person of some kind?
She was a High School math teacher, but had an intensest in computing and programming from working on her Master's degree, where she learned state-of-the art COBOL programming. The first computer we had in the house at all was a few years previous, when her school district allowed her to take home a brand new Commodore PET over the summer break. On that machine, many stick-figure men were hung from the gallows. https://www.commodoregames.net/CommodorePET/Hangman-(2)-342....
Well she was smarter than those families who paid for the cartridge edition of "Hunt the Wumpus", like mine.
>Many Wumpuses were hunted that day
Oh man! I remember playing 'Hunt the Wumpus'[0] with my cousins on my grandfathers TI-99 in the mid 80's. Probably the first computer I ever touched!
In the spirit of HN pedantry, should the plural be Wumpi? I will concede that wumpuses is way more fun to say..
[0]https://en.wikipedia.org/wiki/Hunt_the_Wumpus
> Today, it has a F17A video processor that enables VGA output: https://dnotq.io/f18a/intro.html
This is awesome. I don't have a TI-99, but I do have an MSX that would hugely benefit from this.
I've been buying and restoring older stuff (2013 Mac Pro most recently, recapped a Mac SE before that) and I think you just gave my 99 4/a new life. Thanks for that!
I have such mixed feelings about the TI-99/4A.
It was our family computer. We rented games for it, and that was fun. I learned BASIC. I tried to create things with it, as advertised, and sort of only semi-succeeded repeatedly.
My parents saw that I was running into the limits of the system, and got me both the Extended Basic and Terminal Emulator II cartridges. I dug into Extended Basic, and was able to write "games" with actual sprites that could be manipulated! There they were, flying around, those sprites. That being said, these games always ended up being quite bad, and there wasn't a clear path for them to being much better. We were part of a users group, and the Extended Basic games others were making were perhaps more refined but also honestly not much better.
At the same time, Atarisoft were releasing epic cartridges for the TI. A strangely OK Donkey Kong and Ms. Pac Man, as good or better than on the other home computers. It was clear there was no path at all from whatever was going on with the Extended Basic cartridge to whatever magic voodoo allowed for the TI ports of these arcade games. (To be honest, I still don't really understand it, other than something to do with... GROM? Assembly?)
On the other hand, Terminal Emulator II, which my parents bought me so I could fool around with the TI's speech synthesizer, taught me about the need to connect to online services via a modem. I asked my parents about getting a modem, and they were like... "no".
My pre-teen brain was like "I need to buy myself a modem as soon as I can!"
I bought a 1200 baud modem out of Computer Shopper for mere dollars when I was 16. It changed my life. I got on boards, and then the Internet, before most - and probably you. I learned networking and architecture. No regrets.
But I still have no idea whatsoever how those TI programmers bridged the gap between my horrifically bad Extended Basic programs, where I felt I had maxed out the capabilities of the computer, and the magnificent games and arcade ports available via cartridge. It sort of haunts me. What even?
The fundamental issue with BASIC on the TI-99/4A, be it the regular BASIC or even the Extended BASIC, is that the program was stored in the video memory. This meant that you couldn't use all features of the VDP, you could only use a limited number of tiles (96 afaicr), you could not use other graphics mode, raster interrupts and sprite multiplexing, forget it. The games on cartridges were not limited to that and could use up to 24K (afaicr) of machine code + a lot of GROM. One needs only to look at what a Coleco console or a MSX1 could do with a system that didn't use the graphic chip for what it was not intended to be.
The difference is definitely Assembly. You could dip into heavier memory management, and control every aspect from that low level.
I got on to my local public library (in the US) with an 800 baud modem on the Atari 8-bit. There was barely any security, which was all bypassed by "password". I could check out books for individuals, alter the amount they owed in late-fees, or erase that someone had a book and then erase that the book ever existed. I have always been more of a white/grey hacker, as far as I don't always report an exploit, but I don't abuse it either. Now that I'm older, I am happy to report exploits confidentially.
I quickly found the BBS in my area were not as usable at 800 baud, and moved to a 286 with a modem slightly higher baud. Until my family got a 386, it was a bit slow, but I was still sitting there like an addict consuming my digital fix! Even in the mid-90's I was amazed at the speed of modems coming out. I believe in 1997/early 1998 I had saved enough money to buy myself my own PC, and had a faster modem. I'm not sure what the speed was back then, but it was good enough to play Quake 1. I started to lose touch with the low-level of computers around that time, but also saw the value in higher-level programming. I think having understood lower-level computers in my early years helped me to understand things like memory management in current days, where a lot of my co-workers have no concept of running into memory problems until they hit a wall.
There was a cartridge with an assembler & text editor plus a little CPU RAM. (4k? My memory is gone but it certainly wasn't much even for the 80s.) You'd still need to use cassette tape to save your work. Ah it was this: https://www.arcadeshopper.com/wp/ti-99-4a-faq-mini-memory/
For actually usable development you could buy a TI expansion box, 32K RAM expansion, and 5 1/4" floppy drive. This cost the equivalent of like two thousand bucks today. Less than an Apple ][, somewhat more than a base C-64, but a lot more than the TI-99 itself.
My parents were very indulgent in this. Once I had this setup, I bought a third-party Forth and coded my own Forth assembler vocabulary, and finally had a reasonably capable dev env, for maybe a year before leaving for college. But still had basically no way to share my work (wasn't online).
The mini-memory cart has 4k of CPU RAM and a line-by-line assembler, no text editor.
It also has no disassembler. I spent many many hours dumping the ROMS using easy-bug and disassembling them by hand. Many happy hours.
Thanks for the correction. From my link:
> Each source statement you enter is immediately assembled into object code and stored into memory. Some source code is retained in a nine-page text buffer. You can scroll the screen to review previously entered lines of source code by pressing the Up- and down-arrow keys.
I gave up on this system pretty quick -- with so little space for your code, it just wasn't worth so much trouble.
I remember I made a (in my eyes) pretty decent Donkey Kong in Extended Basic with my father. But we knew nothing about better variants, so our impression wasn't spoiled by that. I am sure the program and game was pretty crude in comparison to what you tried to get out of this TI device, but we had no notion of "maxing out the capabilities". We just programmed and had tremendous fun. Printing out the entire program on a matrix printer, and annotating changes with a pen. Precious times.
> I asked my parents about getting a modem, and they were like... "no".
I asked my parents for a modem the same year Matthew Broderick's "Wargames" came out. My mom forbid me from ever using one because she had seen a movie about what happens when you have one of those things...
sprites were amazing for the time and then came the amiga!
I guess next week they're going to get to the interesting bit which is how weird the architecture actually was on that thing...
https://en.wikipedia.org/wiki/TI-99/4A
Particularly it only had 256 bytes of RAM attached to the CPU but had (I think) 16 kb of RAM attached to the video controller which the CPU could read and write through I/O registers. You could use this for non-video storage but you couldn't access it directly.
Coding in BASIC could, at the very least, hide the insanity from you.
It gets way weirder.
The TMS9900 didn't have any internal data registers. It only had a program counter, a status register, and a workspace pointer. Instead, it put the "registers" in that same 256 bytes of RAM. There were sixteen 16-bit registers which the workspace pointer pointed to.
The original idea was that this made for fast context switches, instead of dumping all registers to stack (it doesn't even have a stack pointer), just update the workspace pointer to point at a new set. But I have to assume this wasn't really used on the TI-99/4A, as there just wasn't enough RAM. Because your only other ram was locked behind the video controller, that 256 bytes had to contain all your registers, any your dynamically loaded code and any data you wanted rapid access to.
The TMS9900 is weird, because it's the only CPU of the early home computer era that wasn't designed for microcomputers. It's actually an implementation of the TI-990 mini-computer on a single chip and is actually used in later versions of the minicomputer. Those minicomputers had more than enough fast 16-bit memory to take advantage of this fast context switching.
Every other commonly used microprocessor of the 70s (8080, 6800, F8, 6502, RCA1802, Z80, 6809, 8086, 68000) was explicitly designed to target the low-cost microcomputer market.
If you disasembled the ROMs you'd find they're filled with BLWP/RTWP instructions. That's how subroutines were executed: Branch and Load Workspace Pointer. The BLWP instruction would load the WP and PC from the next two words and save the current WP/PC/SR into the new R13/14/15. RTWP would restore R13/14/15 into WP/PC/SR. The end result was a stack implemented as a linked list instead of a contiguous array. A lot of the subroutines in ROM just read/wrote tokens from/to the VRAM and then interpreted them as BASIC.
Back when I lived in Texas and they started doing vanity plates, I applied for the plate "BLWP" (I lived in D/FW and visited Lubbock from time to time, so there was a non-zero chance someone driving by would get it.) After waiting a month, I got the letter from the DPS... no... someone beat me to it. So I guess there were at least two fans of the 990's memory-to-memory architecture out there.
I've been working on a TMS99110 homebrew & emulator, and have studied the architecture of the 990 a whole lot over the past couple years. I want to make a very important distinction in a few things you said.
For anyone that didn't get the context, it's the 99/4 design that has this weird RAM layout. The 990 architecture itself can use any (16-bit) word in memory as the starting point of the 16 registers. Developers have been known to use and abuse the workspace pointer to slide around the "window" on the registers.
The window itself also uses the top three registers to link back to the previous workspace, status, and PC, if you use the proper instructions to branch and return. While there is no stack*, you can still crawl back through those references and get the state of each call.
It's a really cool little architecture, hobbled by the 16-bit address space and how slow it was to keep the registers in RAM. Nowadays I can pick up a 1MB memory chip that's faster than the native bus speed for a few bucks, but that wasn't anywhere near the case in the late 70s and early 80s.
*: The 990/12 minicomputer features the PSHS and POPS instructions, which take a pointer to a definition of where the stack lives and how big it should be. These instructions are not implemented in any production processor, but the platform makes it possible to emulate these instructions in software transparently... as an actual explicit instead of accidental feature in the later few iterations. The 990/12 itself was microcoded on a set of four daisy-chained programmable 4-bit bit slicers so they didn't need any of that nonsense.
So before people start saying "OMG! Memory-to-Memory architectures are so slow! What a stupid idea!" allow me to remind people that back in the early 70s when the 960 was turning into the 990, external bipolar memory was faster than on-chip NMOS static RAM. And since the 960 and 990 were originally implemented with a weird collection of ASICs, discrete parts and 7400-series logic chips, the idea that you would just drop a bipolar part in the design wasn't that weird of an idea. But then as the 990 evolved and TI built a single chip implementation, they retained the memory-to-memory architecture for software compatibility reasons. So yeah... ultimately... CMOS logic got faster than bipolar memory and in retrospect it wasn't the greatest design. But at the time it wasn't THAT bad of an idea. And yeah, it did make task switching very fast. But don't get me started on serial IO off the CPU. And dang, what a great, largely orthogonal instruction set. I sometimes fire up the Assembler / Editor on my 99/4 emulator just to play with it.
Anywho... this isn't a critique of the OP or @phire, it's a reminder for the community at large that tech decisions that seem bad in retrospect often had non-idiotic motivations at the time.
Speaking of interesting bits, this machine isn't actually an 8-bit computer, the CPU is 16-bit. (The video controller is 8-bit though, i.e. the VRAM data bus is 8-bits. It's also the same video controller used in various other machines, e.g. MSX.)
The other early 16-bit CPUs include:
National Instrument's PACE- I've never seen one used in anything: https://en.wikipedia.org/wiki/National_Semiconductor_PACE
but its bit-slice precursor, the IMP-16 was used in Aston Martin's Lagonda https://sprague.com/peter-sprague/aston-martin/
https://opposite-lock.com/topic/90934/lagonda-dashboards
General Instrument's CP1600, used in the Intellivision (a video game console yes, but there was a home computer keyboard attachment).
http://spatula-city.org/~im14u2c/chips/GICP1600.pdf
Its co-processor, the CP1640 is famous for evolving into Microchip's PIC microcontroller.
Much more influential 16-bit CPUs from that era include the PDP-11's CPU, the Data General Nova's CPU, the Xerox Alto's CPU, and arguably even the 8086 and 8088. The chronology seems to go as follows:
- 01965: IBM 1130
- 01966: HP 2116A, the first model of the HP 2100 series
- 01969: Nova
- 01970: PDP-11
- 01971: IBM System/7
- 01973: Alto (not shipped. NEVER shipped)
- 01973: TI-990 (the 990/3, according to https://cozx.com/dpitts/ti990.html)
- 01974: HP 3000
- 01974: PACE (which was from National Semiconductor, not National Instruments)
- 01975: CP1600
- 01976: TMS9900 (what the TI-99/4A used)
- 01976: Tandem (first Tandem/16 shipped to Citibank)
- 01978: 8086
- 01979: 8088
- 01981: TI-99/4A
Since there were plenty of 6-bit, 8-bit, 12-bit, 32-bit, 36-bit, 60-bit, and 64-bit CPUs in the 01950s, you'd think there would be some 16-bit CPUs then too, but I can't think of any. I'd even forgotten about the HP 2100 until I went looking just now.
Depends what you call '16-bit'. The addressable word size [1] for the PDP-11 was 8-bits and the problem space address space was 16-bits so a user program on the PDP-11 could ac cess 64kB of RAM, same as an Apple ][, except that multiple users could have their own address spaces.
The IBM 360 had 24-bit addresses, 8-bit words, and 16 32-bit registers.
8-bit words were thoroughly established by 1980s for general purpose computers, I think because of the use of 7/8-bit ASCII characters. I mean, you could pack ASCII characters into larger words in different ways but the most comfortable (portable) way to handle them is to have a char* which requires either 8-bit words or some way to address subwords.
The PDP-10 was probably the most loved heterodox architecture with a 20-bit address space and 36-bit words. It had pointers that could point to specific bits inside a word so it was possible to port C to it with char*'s. The user space was 256k words and 1152M bytes. (If an architecture like the PDP-10 let you access bits in the next word you could even point something like a char* at a variable sized UTF-8 char if you don't mind pointer arithmetic being limited to scans)
Some of the 8-bit micros had 16-bit registers such as the 8086/8088 and the 6809. The word size doesn't have to be related to the size of the data bus: the 8088 had an 8-bit data bus and the 8086 had a 16-bit data bus, it just pumped twice if it needed 16-bits. The 68k series had 32-bit registers and a 32-bit address space (like the DEC VAX which was the first modern computer) but had various bus sizes as low as 8-bits in the 68008.
With a cache the data bus could be larger than the word size.
Programming really isn't fun if you don't have index registers at least as large as the address space. There were numerous attempts to extend 8-bit architectures to a 24-bit address space that didn't provide large enough index registers, the 65816 is probably the most famous. The eZ80 on the other hand, extends the registers to 24-bits so it's easy to write programs that use the whole address space.
[1] which I'm just going to call word size
You are using "word size" to mean "memory addressing unit size", and while you are clear about this, its clash with common usage makes your comment somewhat confusing to read. But, doing the mental translations, I think everything you said is correct, even though much of it would be false if interpreted in accordance with the usual definitions.
Usually "word size" means "register size" and a "16-bit architecture" is one with a word size, in that sense, of 16 bits; that is, one whose architectural registers are 16 bits wide. That describes all the CPUs in my list, I think. The definition necessarily gets a bit ambiguous on machines with multiple register widths like the CDC 6600, the 8080, the 8086, and the 80386. But usually on this basis we say the 6600 was 60-bit (despite its smaller address registers), the 8080 was 8-bit (despite its 16-bit register-pair instructions) and so was the 6809, the 8086 was 16-bit (despite AH, AL, etc.) and so was the 65816, and the 386 and 360 and 68k and VAX were 32-bit.
I suspect that standardizing on 8-bit byte addressability was largely due to the influence of the 360, which didn't use ASCII. ASCII (a 7-bit code) was probably a significant influence, but it fit as nicely into 9-bit PDP-10 bytes as into 8-bit bytes, with space for a 512-character character set.
One minor quibble on the PDP-11: though addresses were 16 bits, as you probably know, later PDP-11 models supported split instruction and data spaces, with separate code and data segments. This doubled the memory available for a normal user program over what an Apple ][ could manage without bank switching. Later versions of PDP-11 Unix required this capability for some larger programs, though I don't remember which.
I think the status of the VAX as "the first modern computer" is pretty debatable. Other defensible candidates might be the IBM 801, the IBM PC, the SUN workstation, the Alto, Berkeley RISC I, Stretch, the CDC 6600, the IBM 360, the IBM 360 Model 91, the IBM 360 Model 67, and the Acorn Archimedes. But the VAX definitely has a plausible claim to that title.
Famous 16-bit computer from the 1950s: https://en.wikipedia.org/wiki/Whirlwind_I
A interesting 12-bit microcontroller I just learned about is the "Toshiba Transistor Works" TLCS-12 for Ford's engine control module (1973). I'm trying to find a full datasheet for it:
https://www.shmj.or.jp/english/pdf/ic/exhibi739E.pdf
https://en.wikipedia.org/wiki/Ford_EEC
https://www.cpu-world.com/forum/viewtopic.php?p=304576
Oh, thank you very much!
"Bits" is a stupid measure of "computer". The TI-99/4A clearly belongs in the 8-bit era of computers.
Motorola's 68000 was the single most prolific microprocessor of the 16-bit era. Yet all the registers are 32-bit, and all the instructions easily operate on 32-bit values [1]. About the only claim to being "16-bit" is the 16-bit wide data bus.
If we go by that metric, then the IBM PC (with its 8088 hobbled by an 8-bit data bus) is clearly just another 8-bit microcomputer.
BTW, this is absolutely the way that Motorola sees it. The 68008 is just a 68000 hobbled with an 8-bit data bus, and they label it as a 8/32-bit microprocessor.
[1] And if anyone dares to point out that the 68000's ALU is only 16-bits wide, then I have bad news about the Z-80: It only has a 4-bit ALU, so I guess it's actually a 4-bit microprocessor
The Amiga was loudly marketed as having a 32-bit CPU though (the Atari ST a lot less so, for whatever reason).
Having a 16-bit ALU in theory would make the 9900 a 16-bit processor as much as the 8086. The TI-99/4A is definitely weird (and slow!!) but it does fit the definition of a 16-bit system.
The ST very subtly so, even :)
> "ST" officially stands for "Sixteen/Thirty-two", referring to the Motorola 68000's 16-bit external bus and 32-bit internals.
via https://en.wikipedia.org/wiki/Atari_ST
Judging by the cycle counts, it's a 16 bit cpu internally? Word operations are almost always cheaper, even when there are no additional memory accesses for the long case. (I think long register to register moves are the only free long case. It's been a while, though.)
The '8-bit' micros all had a 16-bit address space, at least in their early implementations. (Later we got the eZ80, 65816, etc.) which lets you address 64k words of memory and the word was always 8-bit bytes.
Contrast that to the PDP-10 [1] which had a 36 bit word and a 20-bit address space and could access 256k words for a total of 1152 kilobytes.
The use of 8-bit bytes for characters I think killed off any word size other than 8-bit because otherwise it would be awkward to work with characters. [2] To be efficient you have to pack multiple characters into a word, it's something that comes up common enough you could create some special machine instructions for it, but if you want to support a C compiler you need a char. It's easiest if native pointers point to a byte. If it was otherwise you could make up a char that consists of a native pointer plus a pointer to the char inside the word, but boy what a hassle. [3]
Modern computers get many of the benefits of a larger word size (wider pipe to suck data through) by having a cache system that decouples the memory interface from the CPU, so a CPU could ask for 32 bits and get it retrieved 8 bits at a time, or it could ask for 32 bits and get the surrounding 128 bits stored in the cache so they don't need to be retrieved next)
[1] https://en.wikipedia.org/wiki/PDP-10
[2] DEC had a system of 6-bit characters, which divides nicely into 36, but you have the same problem
[3] That PDP-10 did have deep pointers that could point to a specific range of bits inside a word, that's what you need if you want something like that to be reasonable to program. I've been thinking about a fantasy computer to run inside Javascript and came across a 48-bit word size to use doubles efficiently to store words. That thing would have 24-bit address spaces, plus it would be possible to make 'deep pointers' that have 6 bits of offset and 6 bits of length (with the possibility of 0-length to point to a specific bit) and could be extended to 'wide pointers' by putting a few bits in front that would reference particular address spaces (might be video RAM, or a unit of memory protection, or made contiguous to represent a larger address space) I think I'd want enough to make a 1GB word address space so it could outdo a 32-bit machine and then let the rest be used for flags just to make it as baroque as possible... And that's why you only see 8-bit words today!
Well, I was gonna say this: A CPU is X bits if the highest number of bits that the value of a "load immediate" instruction can have is X. But I think this makes MIPS 16-bit.
Worse, that would mean Arm64 is a 12-bit CPU. The original 32-bit ARM encoding could only load 8 bit immediates, though later versions gained a 16-bit load immediate instruction.
RISC-V is a bit better off, as it has a special encoding for 20 bit immediates, while Alpha and PowerPC are the same as MIPS, stuck with 16-bit immediates.
Ahh, but that would be mean because it would make ARM64 CPUs 16-bit too. Though actually if you put -1 and it sign-extends to 0xFFFF'FFFF'FFFF'FFFF then that's technically 64-bit? :p
the motorola 6809 can load 16 bit values into some of its registers but i've always seen it called an 8 bit CPU
Wait'll you discover that different CPUs use different word lengths, and not just your expected 8-bit X power-of-2 of current modern processors). 36-bit native word with a 9 bit databus and a 16-bit address bus with 64 kilowords of memory... welcome to the fun of early digital computing.
> "Bits" is a stupid measure of "computer".
But that is the very way that they are defined through our historical understanding. The 990 platform, established in 1973, not the 80s, is 16-bit, with 16-bit words and 16-bit pointers.
As I recall at the time, very few people knew how to write assembly for that machine, as there just wasn't a lot to go on.
I enjoyed the sprites though, and that was something that was definitely different than Apple II, IBM, etc. at the time. Apple and IBM's graphics were definitely a step down.
C64 could do sprites with POKE statements apparently. But that was definitely not as nice as the TI.
"Coding in BASIC could, at the very least, hide the insanity from you."
Except TI-BASIC is a hell-riddled double-interpreted language. I had a 99/4A at the age of 6, learned how to use all of the TI-BASIC language by 8, and said screw that, hardware it is for me, dad's buying me a 286 for Christmas, time to learn how to build that!
I used TI99/4As at school in the Isle of Man at age 16 or so. I thought they were sad, rather crippled things then. Horribly slow, limited BASIC, and the school didn't have Extended BASIC cartridges.
I still wonder... Could TI have made a non-crippled TI99 at the time that wouldn't have been vastly more expensive?
I know there was the planned, prototyped, and cancelled TI99/8:
http://www.99er.net/998art.html
http://www.99er.net/998.html
64kB RAM, Extended BASIC as standard, expandable to 15MB.
But that would have cost a fortune at the time.
I'm just wondering if a TI99/4 with 32kB of RAM attached directly to the CPU and maybe a better BASIC would have been achievable for not much more?
The 99/8 never shipped but the Geneve 9640 shows what the architecture could do.
https://en.wikipedia.org/wiki/Geneve_9640
Somewhere I read a story about a group of TI sales engineers in Britain who put together a much more "typical" micro-computer system using the 9940 or 9980 CPU. They, of course, lost out the the 99/4 design because of politics. Though to be fair, I've heard there was A LOT of confusion over the 99/4's requirements. It supposedly started as a video game console after the Atari VCS was released to great acclaim in '77. But by the time they released it they decided they wanted to compete with the personal computing trinity: Apple ][, TRS-80 and Commodore PET.
I think it was certainly possible for SOMEONE to have come up with a better design targeting the nascent PC market. Also remember the 99/4 was pretty cheap compared to "real" computers. A typical CP/M or Apple ][ machine would have cost somewhere around $2500-$3500 in 1979. The 99/4 was a "bargain" at $1150. You have to think a 9900-based system that had a front-panel, floppy disk, RS-232 interface like contemporary CP/M machines wouldn't have cost too much more than a CP/M device. It may be a scratch more expensive cause you would likely want a bit more memory than the 16k that was common in the Altair or IMSAI machines at the time.
Every now and again 99/8 prototype systems will surface on eBay and sell for THOUSANDS of dollars. I just saw a CC-40 Plus system go for about $3500. Alas, I can't really justify that many dollars for these old systems. When TI got out of the business, they had the 99/8 and CC-70 in development. Assuming they were able to sell them for a decent price, they couldn't have been as bad at the 99/4 and CC-40.
OK, this seems like a good thread to ask about something that was contemporary to the TI-99/4A ... namely, the idea of "Fairware". As near as I can tell this term was coined to refer to freeware at a time when that term was still trademarked by Andrew Fluegelman / Headlands Press, and seems largely to have been current among TI-99/4A users (probably because after their platform got orphaned freeware/fairware was all they had), but not so much anywhere else (with a few exceptions, and then probably because by the time anyone had heard of it Andrew was dead and his trademark died not long after, so everyone took to calling freeware 'freeware'... or shareware, since that term had also been coined to get around that trademark).
Anyway, the question is: Who actually coined the term "fairware"? I did some preliminary research in old periodicals and books, but I never came to a satisfactory answer. The closest I found it that it might have been one of the sysops of the TI conference on ... I think either Compuserve or GEnie? Either way, I never found any smoking gun, and this is one of those bits of historical trivia where not knowing the answer irritates me greatly. I tried asking around on the Atari Age forums, but I guess the right kind of graybeards don't hang out around there. Maybe someone here will know the answer?
My dad taught me to read with Dr Seuss and the TI-99/4A BASIC programming manual. Starting writing my first programs at 4. Love that old machine. There was a sort of Gradius knock off for it called Parsec that I played the hell out of too.
When I was a little older I would borrow books at the library to write games in BASIC. Basically key stuff in that the book told you to write, and since a lot of it was for the C64 or TRS-80 I had to figure out how to “port” it to the TI. I wrote notes for my changes in pencil in the library books so I wouldn’t get in trouble with the librarian. Invariably I’d check the book out again a few weeks after I’d returned it. I was probably the only person who read my notes, but I like to think someone got some use out of my addenda.
Wrote my first programs for this too, at 7. Copied from the manual with no understanding but eventually writing my own. The only coder in the house! Didn't write anything decent until the C64 when I made a few small games.
Great memories of Parsec too.
The graphics chip on this thing was a big deal. Variants ended up in the ColecoVision, the MSX line of computers and Sega's SG-1000 console. Later machines like the MSX2 and the Sega Master System had backwards-compatible but entirely different evolutions of the design.
Quite an impact for a graphics chip coming from a rather unsuccessful computer. I never played around with or even saw a TI-99 but from my understanding the CPU needing to use VRAM as data storage (because the system RAM was way too low for the time), accessed through IO ports, really hampered the machine.
While it lacked the hardware scrolling, massive master palette and display list tricks of the Atari machines, it displayed multi-color high-resolution graphics with ease. Being able to set a different color for each line of a background tile allowed for really detailed art.
Only 4 sprites per line like the Atari (not counting the weird missiles), but the TI-99 sprites are 16 pixels wide and high-resolution, rather than 8 fat pixels wide, and there's 32 to work with in total rather than needing to use raster splits to multiplex sprites.
Way ahead of its time. MSX homebrew games like Mini Ghost, The Cure, Invasion of the Zombie Monsters, etc. really show what it can do.
> Way ahead of its time. MSX homebrew games like Mini Ghost, The Cure, Invasion of the Zombie Monsters, etc. really show what it can do.
Too bad that at the time, TI actively discouraged third party developers from developing software for the TI-99/4(A) - they were selling the machines below production cost (because of the difficult market and the competition from cheaper mostly Commodore models) and hoped to recoup the losses by selling software (according to https://en.wikipedia.org/wiki/TI-99/4A#Lack_of_third-party_d...).
Yeah that was a big mistake.
> While it lacked the hardware scrolling
That's the biggest "what if" omission of the TMS9918 for me - I wonder how the 8-bit landscape would have evolved if it had even minimal support like the scroll registers of the VIC-II...
I'm more shocked that the MSX2 graphics chip (before the plus revision) had a "screen adjust" register but no border blanking for horizontal scrolling. Massive miss there, much worse than the lack of scrolling on the original TMS9918 which was developed at a time where scrolling wasn't all that common.
I do so love the TI-99/4A. I've been going through some TI-99/4A disk archives from the Chicago Texas Instruments User Group (which streams its meetings every month) and one of my favorite finds so far was this fun demo:
https://www.youtube.com/watch?v=ejGlI0yxqGA
Over at https://js99er.net/ there's a fair bit of software available right from the web interface, as well.
> This would normally result in just being another forgotten also-ran like the Timex Sinclair 2068 (a ZX Spectrum variant for the US that was basically incompatible with all ZX Spectrum software
As proud owner of one, this isn't exactly right.
Turns out one of their factories was in Portugal, so until the 128 K models took off, many Portuguese homes had a Timex instead of the real ZX Spectrum.
And while it was incompatible in default mode, it had an eprom bay that extended its capabilities in various ways, including a being copy of Spectrum 48.
A cartridge that most folks owned as well.
In its incompatible mode, it had a great sound chip, for its time.
The factory was so relevant for Timex culture in Portugal during the 1980's, that there is even a museum.
https://loadzx.com/en/
> And learn - in case you don’t know it yet - about the important role that Portugal played at the TIMEX factory when this phenomenon started in the 80s.
It gets celebrated, not forgotten.
My first computer as well! I remember typing game code from a magazine and saving it to the cassette tape. My big Christmas present the next year was the giant expansion box with the floppy drive.
Same here, I'm in the TI-99 as first computer club as well.
98% of what I did on it was just play cartridge games, but I did have a year or so of trying to type in Basic programs from library magazines. None of them ever came close to working since they were never for TI's weird dialect of Basic and I didn't know anything about the differences. Mostly what I did was CALL COLOR instructions for some pretty colors. I think the furthest I ever got with Basic was the "higher/lower" guess-the-number game. Eventually then we got a Tandy 1000 with GW-Basic and I moved on to that.
Parsec still rocks hard though. I've rolled over the score on it: http://dos486.com/misc/parsec.jpg
I didn't really get into Parsec. Tombstone City was my jam. And then I bought the Editor / Assembler package and it came with the source for Tombstone City as an example. It turns out the algorithm for figuring out which tumbleweed was going to turn into a monster was very simple. Reading that one bit of the source, I was able to predict where the bad guys would spawn and be ready for them. After that I could flip the counter and pretty much play as long as I wanted on two or three lives.
But yes. Old games. They rock.
I figured that out just from playing Tombstone City. It's the first paired cactus by scanning the board in reading order (each row from the top, left-to-right.) (You mean a cactus that turns into a monster, not a tumbleweed.) And yes, once you know that, the game is pretty easy when you can anticipate every threat. I remember being able to go for at least a couple hours in one game; don't remember if I ever rolled it over or got bored before that.
> Parsec still rocks hard though.
Hell yes it does. Good shot commander!
I wanted the TI-99/4 that was marketed at the beginning of the 80s. As it turned out, I didn't own a computer until buying a Tandy PC-6 pocket computer in the mid-eighties.
Fast forward to buying the later TI-99/4A in the beige case in 2023. Booting it up into the Basic prompt gave me a nice flashback to learning Basic in High School on the Radio Shack TRS-80 Model I.
I've also bought its cousin the TI-74 BASICALC. Given hindsight, the TI-74 is my favorite TI-99 for retro computing, even though the similarity is limited to a subset of the TI Basic from the TI-99 family. The TI-74s are rugged and available. It's very useful as a desk calculator.
I still have both the 74ALC and a CC-40. I'm embarrassed to say I didn't pick up on how the 74 was essentially just a re-skinned CC-40 until about 10 years ago. You can apparently get a plug adapter for the 74 that lets you drive CC-40 peripherals (not that there are a lot of them around.)
This seems like an expensive hobby, but one that chases that feeling we first got off our first system! I often wish that I understood hardware a bit more when I learned Atari 8-bit BASIC, in the late 80's/early 90's, and would have known to keep everything wrapped up in an environment that wasn't humid. I feel the one I learned on, owned by my dad, was probably moved to the basement storage and is completely corroded at this point.
I have dim memories of going to a show in San Francisco’s Brooks Hall(?) called TI-Fest. It was a show all for TI’s home computers and they had the speech synthesizer and some kind of expansion chassis and lots of other stuff. My dad was looking for a home computer that me and my brother could use, so he brought us along. The show was exciting, at least that’s the way I remember it. There was this feeling that something big was happening.
Dad ended up buying an Atari 800 instead of a 99/4A. It was a good decision.
My uncle had one of these and it was the first machine I ever used. I can still remember the mechanic click of the keys and the feel of the joystick.
Loved this game https://en.wikipedia.org/wiki/TI_Invaders
They bought this machine because it was the best value for the hardware specs. I didn’t realize TI actually lost money on the hardware until reading this article
This was my very first computer, at age 13. I learned hexadecimal by drawing pictures of spaceships on graph paper, coloring in the squares that had lines through them, splitting the grid into 8x8 sections with a ruler, converting each row of 8 pixels into a hexadecimal number, and then typing them all into DATA statements, just to see the picture take shape on my screen when I ran the program. For some reason, I thought that was just the coolest. About a year later I upgraded to the Commodore 64, but I'll always have a spot in my heart for my TI.
This was my first computer as well! (age 8?) And I too spent time in class drawing spaceships on graph paper, rather than listening to the teacher. I was certainly obsessed with BASIC programming. I didn't start assembly language until the Apple IIe a few years later.
I'm surprised now to see it was a 16-bit CPU -- I had no idea. I assumed 8-bit as most home computers were (6502, Z80, etc).
Two things I remember:
Saving and loading programs on cassette tapes (where are they? I'm jealous of another poster who still has their TI99/4a).
It was insanely easy to reboot it accidentally -- I had to look it up again but apparently it was by pressing Shift-Q [1]. I lost some work several times, until I got the muscle anti-memory.
[1] https://www.99er.net/994.html
Yeah, the cassette tape was an awesome bit of technology. Once I got one, I didn't have to type in the USS Enterprise program every time I wanted to see it. It also made for nice lo-fi background music. :)
https://parkscomputing.com/page/compute-magazine-archives
I had one of these growing up, until it was replace with a Tandy 1000 from Radio Shack. Well, I kept it around until I moved into my second house.
I had TI Forth, the huge accessory box, a disk drive, the works. It was fun, I learned quite a bit and have forgotten most of the Forth that I learned.
I had a similar setup eventually with Wycove Forth -- can't remember even the existence of TI Forth. Anyway playing with that was my foot in the door to a summer job at FORTH, Inc. as a teen.
Lost all of that code because my 99 system got stolen a few years later.
Oh man!
I still booted my system up occasionally when I had it to remind myself that you didn't have to write HUGE programs to do stuff.
Now, I want to write a text adventure game again. Where are my Turbo Pascal disks?
Didn't TI-Forth have a mode where it would use a 3x7 font so you could get 64 characters per line? I still have nightmares. But... you have to appreciate the work that went into it.
Really if I ever knew it existed, I've forgotten. But https://oratronik.de/atariage/TI_FORTH_Manual-2ndEd(LES).pdf says yes on page 14. General discussion at https://99er.net/tifaq2.html#TIFAQ011
(I used Wycove Forth in 40-column mode, though I have a dim memory of trying something like your 3x7 font...)
I think the TI Forth was based on L&P-83 FORTH (L&P for Laxen and Perry, the two authors.) I was in a friend's house in silly valley and met a friend-of-that-friend and started talking about tech. At some point I mentioned TI forth and L&P83 on the PC and how it was a great, simple system. He said "thank you." Turns out I was talking with Mike Perry.
I had a TI-99/4A. I learned to program from the excellent Basic manual that came with it. I wrote my code on paper, then keyed it in to run.
I mainly wrote basic games for my friends. Most popular was a two player competetive snakes variant, a bit like Tron but with traces only growing as you gobbled up food. I also wrote a 'defender' like game that enjoyed some success amongst friends.
I had no periperals or cartridges as that was too expensive. The living room TV was my monitor. It was quite a while before I got a cassette tape player, so in the early days a computer session started by retyping all code from my notebook.
I later got a ZX Spectrum which was far more powerfull, but the TI (and a HP41cv) are what got me into programming.
I too learned a lot from that book.
It was not until years later I actually understood what I was doing. The little dancing guy was magic when I did it the first few times. Now I see it as a boring little program that loads up a bitmap into memory and then hangs out in a loop. I think the 'magic' may be gone :)
Oh yeah. I sort of forgot. The 99/4 came with some very decent manuals. I remember the Extended Basic manual being a bit "meh" compared to the regular 99/4 manuals, but I'm probably doing it a disservice. It was probably still a great manual.
Like a lot of people here, I learned to program on a 99/4A before moving to a PC. The 99/4A was actually great, but looking back very primitive. TI-Basic -> Extended Basic -> Assembly. When I got to the PC, I missed hardware sprites and a real sound chip (a sound card for a PC cost $300 at the time - about $100 more than my TI cost my Dad!).
It always amazed me that the 99/4A had such a vibrant community (that is still creating hardware and software around the machine) and so many outlandish ways to expand the machine.
This brings fun memories of being a kid in deciding which one I am going to pick - Apple II, TRS-80, Commodore 64, Sinclair ZX80, Commodore PET, Atari 800, etc.
What a diverse selection of personal computers!
One thing TI (Extended) Basic had for it that was almost unique among early home computers was its use of decimal floating point with 13 digits precision. It was so useful for maths. I used it a lot at that time in high school. When I switched to an Apple II with its 5 byte binary floats, man was it a disappointment. It was faster, yes, but, boy oh boy, what a catastrophic loss of precision.
Yup. RADIX-100. https://www.ninerpedia.org/wiki/Radix-100
I used a similar system in a 6-bit CPU I designed.
Top 5 faves as a kid
anything 6502 SBC -- hex code / assembly, later BASIC, etc. Timex Sinclair -- disabled screen for run so CPU could save screen code cycles TRS-80 CoCo -- poke 65535,65536, 65537 -- clock 1x, overclock 2x, 3x TI99/4a -- sprites + cartridges + accessible PC Jr + Turbo Pascal -- first compiler in
I had one when I was like 11 or so. Loved its fake Pacman game. I learned some Basic. Such a distinct memory of spending a whole day copying a program from Byte magazine (or something like it), getting the game to run well after my bedtime, playing it one or two times, then… just turning off the computer, losing all that work. I was never able to convince my mom to buy the fancy tape recorder that would have let me save programs. It was a while till I programmed again, but the seed was definitely planted.
Never knew the TI-99/4A was useful for anything but playing Parsec. That’s all I ever did on my BFF Mark’s TI-99/4A. Then I would go home, use my C64 and be grateful my parents didn’t get me a TI-99/4A.
Although I did love playing Parsec (and Fathom and TI Invaders and Munch Man and ...), I did a significant amount of programming on mine.
First I made a text-based "cave explorer" deal, with significant randomization, various choices that might lead to pits, monsters, rockfalls, and the like, with warnings and the ability to "back up." Also, some character creation business for Dungeons and Dragons (doing all of the attribute rolling, then selecting an optimal class, then doing the hitpoints, then some money, and on to one of twenty convenient "equipment packs" I designed), right on out to the printouts. Math drills.
I made a fairly dumb video game that drew in an uninspiring manner from Berzerk and Pac-Man and the like, which was quite slow due to the various walls and pits and such which had to be checked for in many lines of tedious IF THEN ELSE statements ... but then I hit on the idea of merely drawing all of these items and then checking the video register to see what was there, resulting in a massive speedup, or as much as one could manage using doubly-interpreted BASIC.
After I got the Speech Synthesis module, I revisited some of my dumb little games and added some voice bits, not much more than your Sinistar "I hunger!" bits.
My last was Black Cat, wherein your titular cat had to cross traffic (like Frogger) on one screen, navigate various screens of terrain, visit a child at school, and eventually find your way home, hopefully bringing with you a bird or mouse as a trophy for bonus points.
I only ever played Temple of Apshai on the Commodore.
I loved my little TI-99/4A...
I used to lay down in the living room and transcribe BASIC from COMPUTE! magazine into it, and customize them, and that's how I learned to program.
Same here. I specifically remember staying home "sick" from school just so I could transfer those COMPUTE! programs from paper to screen and eventually to cassette tape! Still have the entire setup except for the 13" Montgomery Ward TV it was connected to. I owe my entire tech career to my parents buying me that little TI from Shopko in 1983.
I didn't know the TI-99/4A was 16-bit until many years later when the Atari ST and Commodore Amiga were taking over from the Spectrum, C-64 and Amstrad (in the UK). Aside from the refueling tunnels getting a bit tricky later on in Parsec, I have fond memories of Alpiner and Pirate's Adventure. That latter one being the bundled game with the Adventure cartridge, requiring you to insert the cartridge (containing parser etc., I think) and then load the particular adventure story from tape.
I had one for a while in my early teens and it had the floppy disk drive option. I did some sprite and graphics programming. It's obviously been a long time and I was young so I could be mistaken, but one bad experience I had with it was that the filesystem considered a file either a program or data and there was no obvious way (to me) to switch between the two. Well one day the machine decided that my basic files were data and not programs and so I lost them.
After so long I have no idea, but... that floppy file system also had a notion of copy-protected files. It turned out to be straightforward to work around that copy protection, so maybe there was some similar way around the data/program thing.
(All I remember is reading the docs of the filesystem calls and thinking "hm, could you do thus-and-so" and being a bit surprised it just worked.)
Anybody with interest in the video chip, the TMS9918A, might like the Pico 9918 project, a drop-in replacement that uses a Raspberry Pi Pico.
It seems irresponsible to put "8-bit" in the title of the blogpost and never mention anywhere that the TI-99/4A was a 16-bit machine.
I was going to get upset about that, but they DID say "8-bit era." And it was the 8-bit era. So many 6502s and Z80s.
See, I saved you the trouble by getting upset enough for both of us!
There is a working one in the gaming area of the Computer History Museum in Roswell, GA. The instructions direct you to play the Wumpus game but you can go to ti-basic and other programs instead.
I only had a TI-85 to impress girls with polar equations.
I have one. It was the first computer that was completely mine.
I was disappointed in what the embedded basic could give me...it was slow, it had sprite-only graphics exposed (couldn't draw a vector from X,Y to X,Y) and my parents only bought touch typing tutor.
and in my boredom, I'd slot and pull the cartridge which made it do -interesting- things...dumping memory space to what would eventually be called a frame buffer...and when it did, it would show cycling bitmaps at a much higher speed than you'd ever be able to do with Basic.
So you could see the potential, but a 12 year old with nothing but a tape drive and one cartridge couldn't and didn't know how to touch it.
And 4 months after spending $350 for it, Sears was closing them out for $50. Which was why, a few years later, when I wanted an Amiga, Dad bought an XT clone. It's support and software cpabilities was much improved over the TI.
Basically, a whole lot like the ColecoVision, Sega SG-1000, or MSX, but without the Z80?
the 99/4A was my first real computer. I was 8 or 9 at the time. Programming ensued. Sprites were magic.
Wasn’t this originally designed for military use?
It failed the requirements and was then repurposed by TI?
The thing that became the 990 minicomputer was developed for a hotel chain. Perhaps you're thinking of another?
Source: David Pitts, who worked on the platform. https://www.cozx.com/dpitts/ti990.html
So... my grand-mother worked for DeGolyer as a computer (back when that was a person who manually computed figures with a slide rule or mechanical calculator.) And my grand-father was one of the original investors in GSI (which later became TI.) The 990 and 960 were a bit before my time, but I remember my uncle (who at the time of his retirement was supposedly the longest serving TI employee, having worked there from 1946 to 2007) talking about having 960 systems on-board boats in the Gulf of Mexico to calculate seismic reflection data. But I found this link:
https://forums.atariage.com/topic/373742-ti-960-texas-instru...
so maybe I'm mis-remembering it. But wasn't the 990 already planned as being a cost reduced version of the 960 and 980? Though in those days it seemed like a lot of computer systems were being built for specific customers. The story I heard about the 8008 and TMX1795 were they were built exclusively to win the DataPoint terminal contract.
More info on the TMX1795 from Ken Sherriff: https://www.righto.com/2015/05/the-texas-instruments-tmx-179...
Thx for the reference in your post, but it doesn't say anything about the 990 being developed for a Hotel Chain (though I have a distinct memory of it being used as a prop in the TV series "Hotel" -- https://starringthecomputer.com/computer.html?c=578 ) Maybe you saw the hotel reference on a different page?
Pretty sure I read something long ago (20 years back?) about the 9900 and some strange problems in a missile controller application.
Turns out there was a variant called SBP9900 which was hardened for military use.
I think that was the Recursiv, that was built by some TI escapees in Britain. But this is based on very old neurons, so I could DEFINITELY be wrong on this one. Just offering what I think I remember.
TI definitely had a defense oriented business up until the late 90s when they sold their Defense Semiconductor Engineering Group (DESG) to (I think) Raytheon.
The 99/4 & 4A have such a great place in my heart. One of my uncles worked for TI (he was the exec sponsor for the Speak & Spell.) My mom had a LINC for a while and my dad bought a TRS-80 when it came out. So when the 99/4 was about to be released, we got the full court press from my uncle: there's a new 16 bit computer with color and sound and all sorts of cool features.
So we bought a 99/4. Pretty sure we got the friends and family discount. Many don't remember the original 99/4 released in '79, but it was definitely a weird beast. In retrospect it was very clear TI couldn't decide whether it was a console gaming system to compete with the Atari VCS or a personal computer to compete with the Atari 800, Apple ][, TRS-80 or Commodore PET. Peripherals were originally (large) boxes that chained off the side of the main unit. We had a speech synthesizer, memory expansion, RS-232 interface and floppy controller, so we wound up buying a special cable to let us move the chain to a different part of the desk.
To a modern audience, the most interesting part of the confusion between being a personal computer or game console might have been TI's attitude towards 3rd party software developers. If you wanted to write software for the 99/4, the first thing they wanted you to do was to give them $10k. And this was back in the late 70s, when $10k was a chunk of change. Companies like Milton-Bradley ponied up the cash for a license and a dev system (which I think was a $25k 990 system.) I wrote a couple games for the Apple ][, put floppies in a zip-lock and sold them through the local ByteShop. I think I sold 10 copies. For a kid in Jr. High, the $50 in profit I made was real money. I could not even conceive of where I would get $10k for a license to make anything for the 99/4.
In '81, TI released an upgraded version called the 99/4A, which was mostly identical, but had the upgraded video chip (the 9918A vs the 9918) and lower case characters (actually small caps, but who cares.) Even though there was plenty of data to suggest this Nintendo-esque approach to 3rd party software was more of a games console thing than a personal computer thing, TI stuck with it. I think the beige models of the 99/4A that started coming out in '83 before they exited the market included scrambled entry-points to various OS calls to make it harder for people to make unlicensed software (didn't AtariSoft run afoul of this? or maybe it was ActiVision. I know one of the "big names" didn't want to pay for the license and thus didn't get the "secret" information about how to properly call I/O functions on the beige machines.)
My uncle participated in researching a book on TI's corporate history in the late 90s / early 2000s. I helped him out a bit and one day called the main corporate library asking for any public info they might have on the 99/4. They claimed TI never made a machine called the 99/4 or 99/4A and I must be thinking about the TI-84 calculator. Maybe they just wanted to forget the whole thing or maybe I had reached the calculator library. In any event, most of the people I talked with who were involved in the project thought it was a failure and don't seem to want to share their memories. This is kinda sad. I loved my little 99/4, quirks and all.
My first computer!
This is where my programming journey began! Somewhere, tucked away in a scrapbook, is a handwritten set of BASIC instructions I wrote around 1983 when I would have been about 6 (probably for an Apple IIe, not this computer).
My dad bought it with the stated intent of writing a program that would display ASCII art associated with a keypress, to help me learn the alphabet and reading (e.g., pressing "A" would have brought up an ascii art apple). He claimed that he was only able to make it halfway through the alphabet before running out of storage on the cassette tape.
He would later go on to be a sysadmin at Cleveland FreeNet (as a hobby), and in the early 1980s was the first principal to put a "computer lab" in our local high school.
I have many fond memories of playing Munch Man (and, I think, Parsec) on this home computer.
My first computer. Played Blast-O!, Hunt The Wumpus, Chisolm Trail, A-MAZE-ING, and a couple other games. Learned the crummy programming language of TI-BASIC, gave up on software and stuck with hardware ever since.
Funny enough, now as part of my job, I advise TI on various upcoming power ranges for various lighting types, and they do on occasion make an IC based on my specs for general production.
I'm embarrassed to say how often I visit js99er.net to play the old TI version of Hunt the Wumpus. I should have something better to do with my finite time on Earth.
Oh, alright...I'll be that guy. All respect to those infected with this particular strain of nostalgia, but I hated that piece of crap.
I was starting to program back in those halcyon days (BASIC and fortunately for my later life, Fortran), so my dad got me one. Probably because it was cheap. Cheap it was, and slow. Like, my friends VIC20 seemed faster (but then, he had a floppy, more on that later). And the games were mostly inferior to anything on something like the C64. And they were games none of my friends had, or more importantly, my friends had games I couldn't. And the business apps, according to my dad, were 'just shit'.
OK...I will give the thing one huge props: it had a relatively cheap voice synthesizer "sidecar" thing, that my dad actually sprung for. It. Was. AWESOME. Write a little BASIC program and a robot voice would call your friend a 'butthead' or something. For a couple of days I was the most popular kid in the neighborhood and everyone had to see (hear) this thing. And then...they all went "cool man, but we're gonna go and play Fargoal or Double Dragon or whatever that you don't have and don't know how to play". So back alone with my 99/4a calling my friends 'butthead', but now in a sad way.
But dad bought it for me to program on, so let's do that. The BASIC was...okay, I guess, but since it was some TI thing unrelated to MS BASIC used by pretty much everyone else at the time I couldn't compare notes with and get help from my friends with sane parents who had gotten their kids a C64, Atari 800 or TRS-80. The Logo cart was actually pretty fun, but it was also it's own thing and more of a toy to play with; moving the turtle around the screen got old quick. I probably should have gotten the assembler cart, but I didn't know that was probably the only way to really have fun programming the thing. Nut anyway...I'm a couple of BASIC programs in, and a floppy sure would be nice (read: required). Oh, you want floppy? You have to buy the giant expansion box, which is 5 times bigger than and costs more than the computer. And then buy the floppy. And probably a memory expansion.
At this point dad realized he'd been sold a bill of goods, did the math, knew what a sunk cost is, and went out and bought a TRS-80 4P for a lot more than the TI. Added CP/M, Turbo Pascal, 123 and Wordstar and a modem and I was off to the races. Got me all the way to my second year of college or so.
At some point in the '90s, a buddy showed me around his new job (manufacturing) and we spent some time on the TI-990 minicomputer he was in charge of. I remember thinking "if this is what is possible with a 9900, they had to have worked hard crippling it for the 99/4a".
No argument, it was terrible. :) But still I had good times and started learning to program.
The assembler cartridge was nearly as useless as the BASIC cartridge for the Atari VCS. (Not that I ever tried the latter, but similar problems of very limited memory holding text you'd typed in, the assembled program, and whatever data it's processing at runtime -- and needing to save to cassette tape before you can start on anything else.) However, the CPU architecture actually did give you a nice clean assembly language once you had enough of a system to really code in it.
Being away from the mainstream... isn't an advantage but I'd have to call it part of my development as a programmer. I had to get into Forth for a reasonably powerful system.
What do you expect for $50?
And at the end of it's life, the local Base Exchange was selling them for $50 along with a $99 rebate voucher. The offer didn't last for long, though my brother scrabbled enough cash to buy 5 of them, got the rebate checks and wound up making money on the deal. But then he had 5 99/4As that he couldn't even give away.
It was a bit of a crap-fest handicapped by bizarre corporate strategies from TI and a "baroque" internal architecture. But it was DURT CHEAP compared to "real" computers like PCs/clones, Apple ][s or CP/M devices.
(Not arguing with the fact that in 1983 when TI pulled out of the market, it was clear it was ready to move to a computer farm upstate. But none of us knew any better in '79 when the 99/4 was originally released. And besides, BILL COSBY was the spokes-person, so it COULDN'T be a bad machine!)
And besides, BILL COSBY was the spokes-person, so it COULDN'T be a bad machine!
TI-99/4a and Jello Pudding. Truly halcyon days!