Comment by guptadeepak
20 hours ago
Interesting project. IIRC, one of the biggest challenges with the TI-99/4A was its TMS9900 processor. It was a 16-bit CPU, but had a really awkward memory architecture that made it difficult to write efficient code.
The lack of dedicated registers meant a lot of memory access, which slowed things down considerably. This is probably why it never gained the same traction as the 6502-based systems like the Apple II or Atari.
I'm curious to see how this UNIX-like OS addresses those limitations. It's a pretty neat accomplishment if it can provide a usable environment on that hardware.
The lack of dedicated registers meant a lot of memory access, which slowed things down considerably.
It gets worse because the TI99 only has 256 bytes of RAM directly addressable on its 16-bit bus. All the other memory in the system is video RAM and is accessed 8 bits at a time through the video display processor. Oh, and you can only do this when the VDP is not accessing the memory. This is incredibly slow and severely hobbles the potential performance of the CPU.
Was that part of some kind of cost optimization? Why would anyone design such an obscurity?
The whole thing seems like it was designed in a parallel universe, or at least it reeks of some kind of a sunk-cost-fallacy design-by-committee thing.
Supposedly what happened is that the system was originally designed to have either an 8-bit CPU, or a 16-bit CPU with an 8-bit bus (cf. 8086/8088) like TI's own TMS9985, but at some point it was decided that they should instead cram their full 16-bit TMS9900 minicomputer CPU (!) into the thing. This decision basically tanked the whole architecture.
It was too late/too expensive to redesign the 8-bit support chips to 16-bit counterparts so they had to make some really out there decisions like "talk to the graphics chip and give it an address to read/write every time you want to use memory" and "software is written not in machine code, but in GPL (Graphic Programming Language), which is then interpreted by the CPU and turned into actual TMS9900 machine code"
Software on ROM cartridge for the system is stored in GPL and is fetched from ROM by the CPU (but wait! The ROMs are not in memory space like they would be on a sane computer; they are SERIAL ROMs read 16 bits at a time with memory mapped I/O) and interpreted to machine code. This is slow. When you write your own software in BASIC, however, this gets worse: now you're writing BASIC, which is being interpreted and turned into GPL, stored in video RAM, and then fetched back from video RAM and turned into machine code by the CPU. THIS IS EVEN SLOWER.
Needless to say, the BASIC on the TI99 is dramatically slower than the already slow implementations on other contemporary micros.
It DOES have a full 16-bit CPU which is theoretically much more powerful than a 6502 or Z80 but this wild-ass implementation of... well, everything, makes the system probably the least capable machine of the era.
2 replies →