TI-99/4A: Leaning more on the firmware

Posted by ibobev 6 days ago

Counter77Comment48OpenOriginal

Comments

Comment by matthewsinclair 1 day ago

Ah, the TI-99/4A. My first computer. What a mercurial beast of thing that was. I desperately wanted a C64 for Xmas but my Dad was somehow convinced to buy one of these. It had about 4 games (including “Hunt the Wumpus”) and so instead of playing the myriad C64 games that all my mates were playing, I was forced to learn BASIC and try to write my own! 45 years later, I’m still programming.

Comment by PeterStuer 1 day ago

The TI-99/4A was the first computer around here that was affordable (wanted the Apple II but that was priced way out of my league). I never got any cartridges, used the family TV as a monitor (so no evening computing) and for the first month or so had no tape deck (so programming on paper and retying at every session).

The included manual for programming BASIC was extremely well written, and it's sprites made it very easy to write your own games. I remember starting with a multi-player 'snakes' variant, a 'defender' clone, an unfinished chess game (ran out of memory), and top down microcar racing game.

I also remember longing for the UCSD/Pascal cartridge as all (library) books I read used Pascal in their coding examples, but it was too expensive.

I later switched to the ZX Spectrum for which I had HiSoft Pascal, and a burnt in bare black&white monitor sold for scrap from an old arcade game.

Comment by Damogran6 1 day ago

Wow...I learned UCSD/Pascal on the Amiga in High School, that takes me back.

Edit: Hmmmm, might have been the Apple II. Not seeing the Amiga in the Wiki...We started on Apples, then migrated to Amigas Junior Year

Comment by eesmith 1 day ago

> used the family TV as a monitor (so no evening computing)

I was allowed to program during ad breaks, typing in code I wrote out while the family was watching a show. :)

I too remember the manual as being very well written. As I recall, it had tables on the back with frequencies for different notes, and foreground/background colors which went well (and not well) together.

Comment by butterisgood 1 day ago

I still see "INCORRECT STATEMENT" in my dreams.

Comment by incanus77 1 day ago

Same!

My earliest memory of anything computer programming is from the early 80s, when a snow day had the two neighbor kids, whose parents were teachers in another district, over to our house with their TI-99/4a. The oldest showed me the entry and running of the sample program Mr. Bojangles. I was enthralled.

A few years later I had one of my own, though at that point it was very long in the tooth. But I still learned its limits, playing (yes) Hunt the Wumpus, Tombstone City, and others, programming, and doing things like composing the Jeopardy! theme song in BASIC.

I have one of these again, with the stuff I had as a kid, and more (like the voice synth) and it's so limited even for the era, but still iconic.

Comment by mrandish 1 day ago

> I have one of these again, with the stuff I had as a kid, and more (like the voice synth) and it's so limited even for the era, but still iconic.

Growing up I had a retired uncle who'd collected and restored a few classic cars of the 1950s to cherry condition. He kept them in a separate four car garage out back where he'd work on them in his spare time and then take them out for a drive on Sundays. Being a nerd kid, I couldn't really relate. Those old cars couldn't go very fast, weren't very comfortable and didn't have important features like an 8-track tape player (oh, and seat belts). Even the radio was only AM! I was more interested in the latest Amiga computer, so my Uncle's deep affection for these old old cars was just a quirky eccentricity.

Starting in the late 90s I gradually began acquiring classic 8 and 16-bit home computers of the 1980s when I'd hear of someone throwing one away. To me, that now-useless trash was still a treasure! At first I just "saved" the ones I'd actually owned but once I had those, I expanding to the models my teenage self had lusted over in Byte Magazine but could never dream of affording. eBay and thrift stores circa 2000 were overflowing with them for $5 or $10.

Once I had all those, I just kept going and picked up every model I'd ever even heard of and then a bunch of foreign ones from Europe, Japan, South America, Eastern Europe and Russia I'd never heard of. And I never paid more than $25 for any of them. They were just so interesting, I couldn't resist. Each platform was a unique evolutionary branch with its own opinionated design choices, operating system and vision of what 'personal' computing might be.

So... now I can finally understand my Uncle's fascination with his weird, old, not-very-good cars. :-)

Comment by kwanbix 1 day ago

This was my first computer too! I loved it - that’s where I learned LOGO. In my home country, games (and basically everything) were incredibly expensive, but my father still bought it from a friend who was selling it to upgrade to a C64.

I remember playing Parsec, and Space Invaders. I am sure I had 2 or 4 more games. But don't remember which ones.

Comment by vikingerik 1 day ago

Parsec still rocks hard. I got good enough to roll over the score on it: http://dos486.com/misc/parsec.jpg

Comment by matthewsinclair 1 day ago

Parsec! And what about “Tunnels of Doom [0]” !? I spent so much time on that thing.

[0]: https://en.wikipedia.org/wiki/Tunnels_of_Doom

Comment by emadb 1 day ago

I had the same exact story. My dad chose the TI instead of the C64 and the lack of games forced me to learn programming.

Comment by holri 1 day ago

same story here :-)

Comment by pm215 1 day ago

I'm pretty sure my Dad got ours because they were being sold off very cheaply after TI pulled out of the home computer market. Like you I ended up learning BASIC on it because as an abandoned system all we had was a few cartridge games, some user-group programs, and typed in BASIC. It worked out pretty well really. (Later we got an Amstrad CPC 6128, which had a much bigger commercial games market.)

Comment by 1 day ago

Comment by onurcel 1 day ago

I had a C64 and learned programming on it. I guess it's a question of destiny at this point :)

Comment by butterisgood 1 day ago

Uh... brother?!

Just kidding... That sounds like my journey as well. I had friends in the neighborhood who also had the TI-99/4a. We all had Cub Scouts and Boy's Life magazine listings to key in.

Did you have the data cassette recorder? We used to try to "load programs" from Michael Jackson's Thriller album.

Comment by matthewsinclair 1 day ago

Yep. Totally. And there was this dreadful wait for a load that could (randomly) fail and you’d need to go thru the whole process again!

Comment by eesmith 1 day ago

My Dad was convinced by the marketing that its 16-bit CPU was the wave of the future, unlike those old-fashioned 8-bit CPUs.

It had a smidge more than 4 games. I broke several joysticks playing TI Invaders, and my favorite was Parsec, which was also one of the games which supported the optional speech synthesizer. I also had Tunnels of Doom, Car Wars, and Tombstone City, and remember playing Alpiner.

That's 6 games right there, ... or in other words, a drop in the bucket compared to my friend's Apple ][. Alas. And he could use a floppy disk, while I only had cassette tape or cartridges.

One of my game cartridges was Extended Basic. That probably got the most use.

Comment by roelschroeven 1 day ago

I distinctly remember my dad too choosing for the TI-99/4A over the competition because of the 16-bit CPU. Little did he, let alone the little boy that I was at the time, know of the limitations of its weird design.

Comment by NoMoreNicksLeft 1 day ago

>My Dad was convinced by the marketing that its 16-bit CPU was the wave of the future,

I think my mom was convinced because of bargain bin prices after it was more or less dead as a platform. But I'm not sure, she's not around to ask anymore... I've read though that after TI gave up on it, some department stores were dumping them for well under $100, and sometimes closer to $50.

I think I only once, ever, got it to load a saved program from cassette. I don't know if I was just a moron as a kid, or if they were actually that horrible for storage.

Comment by pm215 1 day ago

Tape save and load seemed pretty reasonable on our system. It does depend rather on the tape deck you're using and also on getting the volume and tone settings right, though. We had the official TI tape deck for it.

Comment by kijiki 22 hours ago

I arguably owe a successful career in tech to my dad seeing a $99 deal on a TI-99 after they were discontinued in the mid 80's and buying it just because he had had a shortwave receiver as a child and saw some weird similarity. Unbeknownst to him, it turned out my mother had been a FORTRAN programmer in the 70's (though she described it as working as a lab-tech in a bio lab), and taught me how to program it in its weird BASIC dialect.

Comment by qmr 1 day ago

I am so, so sorry.

Comment by userbinator 1 day ago

an ordinary part that mapped into 8KB at location >6000->7FFF (the ROM) and another part, that normally held Graphics Programming Language bytecode, mapped into a completely separate “Graphics ROM” address space from >6000->F7FF (the “GROM”).

This reminds me of the NES, which has separate PRG and CHR address spaces, the latter being exclusively for the PPU to display its graphics.

Comment by bregma 1 day ago

It's not quite the same.

The TI-99/4 has 4k of scratchpad RAM accessible to the CPU. The CPU architecture had no general-purpose registers and had basically only 3 onboad registsrs: the status register, the program counter, and the workspace pointer. The WP pointer to a 32-byte range of RAM that worked like a set of 16 16-bit registers and a subroutine call was a matter of storing the current PC and WP and loading a new pair (a whole new set of registers). The 4k RAM was the equivalent of "the stack" on a modern x86 or Arm CPU.

Programs were stored as bytecode in memory addressable only by the graphics processors (note: not a GPU). Executing a program meant the CPU would write the GROM address to a register on the graphics chips followed by a request to fetch and would then read the byte from another register. It then had to interpret that byte through the ROM.

There were true separate address spaces, not different ranges in the same flat address space like on the NES. The CPU could not address the GROM directly.

I had the Minimem cart that had a line-by-line assembler that let me dump the ROMS. Many hours were spent hand-disassembling the OS for my TI-99/4A.

Comment by 1 day ago

Comment by cbm-vic-20 1 day ago

If you're into this, you may be into a series on the Usagi Electric YouTube channel where he's building a homebrew computer based on the TMS9900 processor from the TI-99/4A.

https://www.youtube.com/watch?v=ADigs7hlLTM&list=PLnw98JPyOb...

Comment by msarrel 1 day ago

The strangest thing I remember about my ti-99 was that I used to run software off of cassette tape. It was a good way to get games.

Comment by incanus77 1 day ago

Yes, same here. I have this setup replicated and do demos for people whenever there is interest. It's the strongest connection I have to the arcane old ways of computing as I came after punch cards and paper tape.

Comment by shawn10067 1 day ago

I love reading about classic machines like the TI 99/4A. Leaning on firmware to squeeze out more capability is such a clever way to extend hardware from that era.

Comment by Dwedit 1 day ago

The MSX was basically the TI-99/4A done properly. Just use a Z80 instead of whatever mess they were using.

Comment by tliltocatl 22 hours ago

But 9900 wasn't a mess. It was a very nice minicomputer-grade CPU. 99/4A problem wasn't the CPU, it was that it was designed as a game console and tried to pass up as a computer.

Comment by muziq 1 day ago

Commodore fanboy at heart, but maximum love to the weird uncle of home computing.. I was so jealous of Parsec on that, speech and all, in 1982, when our local nerd group used to go and stare at computers after school..

Comment by zombot 1 day ago

I had to look up TI-99/4A. Are there still TV sets today you could connect this to?

Comment by fredoralive 1 day ago

New TVs often don’t have analogue inputs, so you’d need some sort of analogue to HDMI scaler, which range from aliexpress tat to expensive enthusiast stuff like Retrotinks, with various hobbyist stuff like OSSC in between as well. Some really old stuff is RF only, so you might need a tuner as well (or an old VCR) to go from RF to baseband composite.

Older LCDs will probably have RCA inputs though they might not work with all retro computing stuff as the signals are sometimes rather “non standard” (not sure about this particular case).

CRT TV should be fine, as they’re from the right era and a bit less fussy about signals.

Comment by myself248 1 day ago

The computer includes an RF modulator, so you need a TV that can tune NTSC channel 3 or 4.

Or, buy a DIN plug and make a cable that brings out the composite signal: https://99er.net/TIvideoadapter.htm

I haven't bought a new TV recently, but there seems to be no shortage of composite inputs on the sets I've been using.

Comment by badc0ffee 1 day ago

I recently had to help a friend (not in the same city) look for a way to use the composite video output from an Apple //c. New TVs and monitors don't support that input anymore, and the thrift stores were empty of old ones. What ended up working was a portable DVD player (!) as you can still buy these new, and they still have composite in for some reason.

Comment by diputsmonro 1 day ago

IIRC it just outputs video as a composite signal over RCA, so any TV with composite inputs (yellow/red/white) should be able to display it. Those are getting rarer I suppose but are generally still around, and most CRTs have them.

Comment by bregma 1 day ago

Use a balun and just hook it up to where you usually connect the rabbit ears.

Comment by timbit42 1 day ago

You could get a RetroTink to convert it to HDMI.

Comment by NoMoreNicksLeft 1 day ago

If you had the expansion bays, some guy released a limited run of vga (cga?) graphics boards for it a long time ago.

Comment by TacticalCoder 1 day ago

TFA lacks a picture of the TI-99/4a. I've got one and it's such a beautiful machine:

https://commons.wikimedia.org/wiki/Category:Texas_Instrument...

Comment by genewitch 1 day ago

I convinced my grandfather to give me $30 to buy one at a garage sale while i was house sitting with him (he had emphysema and was 82 at the time) back in the early 90s. he lived as an adult through the depression, so it was a point of contention between him, me, and my mom. It only came with 1 cartridge iirc, and a brochure showing all the accoutrements you could add to it, speech module, joystick, and i forget what else.

turning it on and getting a BASIC prompt was real cool. never could save anything, though. I traded it in 1999 or so for an Apple IIc with monitor, with which i could save data.

coincidentally, i just mentioned owning a ti-99/4a to a friend yesterday, we were comparing notes about the first computers we actually owned, and that was it, for me. We had an atari (the wood paneled console one, carts, with keyboard built in, BASIC interpreter on ROM) in '87ish i guess, but i only had it for a couple of weeks before i accidentally blew it up with a cable trying to save something to a tape recorder. the tape recorder had a cable in the back that had a 1/8" TS plug, which apparently was a radio shack "universal power supply" and i guess i put 9VDC into the speaker port.

Comment by eesmith 1 day ago

To save you either needed a cassette recorder, plugged into the machine with a special cable, then "SAVE CS1" and follow the instructions. (Start recording, the TI plays sound to the output port, which gets stored on tape. Use "LOAD CS1" to load from cassette, after rewinding to the start of the program.)

Or you needed an expansion box, with a floppy drive, in which case you could do "SAVE DSK1,PROGNAME" to save to "PROGNAME" on the first disk. I didn't have an expansion box.

Neither would have come with the base computer.

Comment by 83457 1 day ago

I believe it was also the Mini Memory cart where you could save programs, backed by a replaceable battery inside.

Comment by endgame 1 day ago

The command to load a program in TI BASIC was actually "OLD <DEVICE>". Probably because they already had "NEW".

https://www.ninerpedia.org/wiki/TI-99/4A_system_usage#Loadin...

Comment by timbit42 1 day ago

The reason it had the OLD command is because the original version of BASIC, Dartmouth BASIC, had the OLD command.

Microsoft BASICS didn't have it.

Comment by eesmith 1 day ago

My 40 year old memories are indeed faulty. Thanks for the correction!

FWIW, I probably confused it with Commodore Basic, since part of me wanted to put a ",1" at the end of the load command.

Comment by mrandish 1 day ago

There was also a beige version released later (http://www.mainbyte.com/ti99/computers/ti99beige.html). I have both variants in my collection and they're both attractive machines, especially by the standards of the early 80s. The best part of the design was that it had a decent keyboard (unlike its predecessor the TI-99/4, which is much more rare - and for good reason). It also was the first home computer to have hardware graphics support in the form of TI's home-grown TMS9918 VDP chip which outlived the computer it was made for by many years. It was used in dozens of different 8-bit computer models from manufacturers around the world and spawned several improved variants, including the graphics chip in the Sega Master System console!

Unfortunately, the 99/4a was brutally hobbled by some bizarre design choices that nerfed its performance including forcing the 16-bit CPU onto an 8-bit system bus which halted the CPU to spread each 16-bit read/write into two sequential operations. This was made worse by the fact the CPU used a memory-to-memory architecture (even for most of its own registers) and all the memory was behind that '8-bit wall' - except for 256 bytes of 'fast scratchpad' (aka just 'normal memory' on other 8-bits). Plus the GROM was on PROM chips that were even slower than RAM, introducing more latency.

The whole GROM thing could have been a nice idea if it weren't for the 8-bit bus and slow PROM chip speed. Unfortunately, TI execs were more interested in finding a home for excess PROM chip inventory than making their home computer the best it could be. So, it was hard to extract high-performance game graphics from the system, requiring significant ingenuity from developers.

Comment by genericacct 1 day ago

It was The original brushed metal computer.

Comment by hammad67 1 day ago

[dead]