Ah, the good old TI-99 series. I had the TI-99/4A and compared to its rivals like the Commodore 64, it was junk. To do anything cool with it you had to buy the bulky, expensive Peripheral Expansion Box. The TI-99 did make history in two ways:
* giving us the term "sprite" in the computer graphics sense. Such things were called different things on different platforms: "player-missile graphics" on Atari, OBJs on Nintendo, MOBs on Commodore. The designers of the TMS9918/9918A chip which the TI-99s used, named movable graphics "sprites" after the way they floated above the textual-grid display; and TI Extended BASIC provided a CALL SPRITE command.
* providing the first ROM-cartridge lockout system in a dick move that would later be copied by Nintendo and every other console manufacturer. The 1983 "beige" rerelease of the 99/4A would not boot unlicensed cartridges (though cassette- or disk-based games would still run).
Oh yeah - I loved that crappy little computer with all my heart back in the day. I essentially memorized the "Beginner's BASIC" book that came with it which was an amazingly simple and effective book for learning TI's Basic as a kid. And writing games with Sprites was about the coolest thing ever. And I will never forget the sheer joy of saving and loading the programs I wrote onto/from a cassette tape. For 1982, it was truly an amazingly affordable computer that was an absolute blast. Best Christmas present ever - Thanks Dad!
One thing I really liked about TI BASIC as a kid was that it gave you direct access to a graphics API. You could even mess with the font bitmaps from BASIC. On almost every other home computer of that era (e.g. C64) you had to use arcane POKE commands to create graphics.
That was necessary. Unlike the C64 the graphics chip in the 99/4A had its own memory not mapped into main CPU RAM. You had to write a lpad or store command with an address to the memory bus register and then read or write data to access the video RAM. There was an autoincrement so you could read or write multiple bytes with one command, but it was still slow. Oh, and guess where BASIC programs were stored? Video RAM. Guess how the interpreter was written? In an interpreted bytecode that was stored in video-bus ROM (called GROM). An unextended 99/4A had something like 256 BYTES of CPU RAM (it was fast expensive SRAM).
So yes, you had to use POKE commands, but an unexpanded C64 still gave you access to ALL its capabilities from BASIC (even the ability to write and call machine language programs from within BASIC). An unexpanded TI-99 gave you only as much as the BASIC authors provided CALL statements for. We were even cut off from sprites without the purchase of Extended BASIC.
* giving us the term "sprite" in the computer graphics sense. Such things were called different things on different platforms: "player-missile graphics" on Atari, OBJs on Nintendo, MOBs on Commodore. The designers of the TMS9918/9918A chip which the TI-99s used, named movable graphics "sprites" after the way they floated above the textual-grid display; and TI Extended BASIC provided a CALL SPRITE command.
* providing the first ROM-cartridge lockout system in a dick move that would later be copied by Nintendo and every other console manufacturer. The 1983 "beige" rerelease of the 99/4A would not boot unlicensed cartridges (though cassette- or disk-based games would still run).