TI-99/4A
en.wikipedia.org
en.wikipedia.org
My software development journey may have started when I got my hands on some memory address maps and graphics/sound details, eventually figuring out machine/assembly language to do things fast enough to make imagined ideas into games that played well. I mostly liked making tools and utilities like font, sprite, or level editors. Also practical things like a disk/file defragger or deleted file recovery (for 90KB/180KB diskettes). Modding retail games was also fun once you got past the mostly rudimentary copy-protection schemes.
I had a TRS-80 Color Computer in the 1980s and had a lot of friends with Apple ][, C64 and even one with an Osborne 1.
I was looking through old issues of Byte Magazine and was reminded that most of the computers of that age were pretty similar but that the TI-99/4A was rather different for a few reasons.
One was that the CPU had no registers but instead the TI-99/4A had a small amount of fast RAM that was coupled directly to the CPU over a 16-bit bus. It had an 8-bit bus that interfaced to video RAM but you'd have to use I/O ports to write to it. It makes me think of things that people do where they put an Arduino on an S-100 bus (using GPIO to communicate) or FPGA-based systems where you might make the memory hierarchy explicit. (e.g. instead of having an SRAM cache, have an SRAM scratchpad and explicitly control transfers to DRAM.)
Other home computers of that era had a simple frame buffer or something just a little more complex like what the Atari 400/800 had, if you were lucky you got a few sprites. The TI-99/4A had something more like the tile graphics on the Nintendo Entertainment System but people did some heroic things with it, for instance there was a Logo for the TI that could do turtle graphics by using tiles to emulate a frame buffer with an unusual order... with the detail that you could run out of tiles if you covered too much of the screen.