Getting Color Output out of a TI-99/4A
netzhansa.com
netzhansa.com
I know Edsger Dijkstra considered the BASIC language to cause brain damage [1], but still at times I feel like it would be nice to program in a language like TI-BASIC again, just modernised a bit.
---
[0]: http://www.ti-99.nl
[1]: https://programmingisterrible.com/post/40132515169/dijkstra-...
Reason I'm asking is I'm working actively on a TBA project around retro-ish BASIC hardware/software as a learning / confidence-building tool. I'm genuinely curious.
Related: have you seen the PICO-8 system? It's Lua, but it's specifically designed for games, has some nice constraints that encourage a certain retro look & feel, and is pretty approachable.
Recently I was discussing with my brother that I got kinda annoyed that software got so complex these days. The simplicity of the TI-99/4A stuff was kinda nice. It was pretty easy to get some nice results quickly. The language was quite limited which made it easy to learn. For games I guess it's kinda nicer to work with PNGs these days then to figure out what HEX codes to use to draw a sprite, but with tooling that could be eased a bit. The resolution of the TI-99/4A made this stuff more manageable as well I guess.
Yes, I find the PICO-8 charming, perhaps that's kinda what I'm looking for. But PICO-8 might maybe be too limited. If I'm not mistaken the screen resolution seems lower than what the TI had, causing the graphics to become quite ugly (imo).
Actually I've been contemplating on creating my own TI-BASIC interpreter as well. And after finishing the interpreter, my goal would be to modernise the language for my purposes. But I haven't really started on that yet (and not yet sure I will, since there's other stuff I work on as well). Another area that I would improve upon would be sound generation, since the sounds of these machines aren't too easy on the ears.
For example: https://retrocomputing.stackexchange.com/questions/15915/wha...
It was years into my computing journey before I saw such a crisp display. It always throws me for a little bit of dissonance whenever I see a TI-99/4A on an emulator or here with a VGA output going to a LCD display.
I think my brother ended up with ours and I kinda want to see if I could find one again...
I remember the first game I programmed on it, sort of a cross between Pac-Man and Berzerk, so walls and pits and various things chasing you. Due to the doubly-interpreted BASIC, it was quite slow and I was vexed; checking motion into walls and pits got more and more slow with each obstacle. Eventually I hit on, rather than a series of IF statements defining a wall that one might not move onto, I could simply draw my walls and pits, then check the video array directly! Suddenly, my game was so much faster.
It was the first time I had an optimization that relied on knowing something about the hardware.
Fun fact about the TI-99/4A: It was actually fast, sporting a 16-bit CPU in an 8-bit era. The BASIC interpreter was slow because it, like many TI-99/4A programs, was written in a sort of interpreted bytecode that could live in video RAM/ROM. The CPU itself had access to only 256 bytes of system RAM; all other RAM in the system was video RAM that had to be accessed through the video chip. The slowness of the video RAM access, coupled with the fact that the interpreter for your BASIC ran on interpreted bytecode instead of native CPU instructions, meant that your BASIC programs would crawl, but give that 16-bit chip a chance to open up and it can do some amazing things. The game Parsec has a smooth scrolling playfield, which the TMS9918A wasn't able to achieve on its own. The CPU is shifting the scenery graphics "by hand" as part of the main game loop.
He was a strange guy. Long since departed.
* https://retrocomputing.stackexchange.com/questions/tagged/ti...
https://www.theregister.com/2007/07/30/msdos_paternity_suit_...
https://www.embedded-computing.com/embedded-computing-design...
https://spectrum.ieee.org/computing/software/did-bill-gates-...
..after the lesson, I went up to him (Graeme) and asked if he would tutor me after school.
I then spent the rest of the year - (two afternoons a week) learning programming - and have been doing it ever since.
Graeme wasn't what I would call a great teacher - but he gave me the opportunity.
I remember my first program was a copy of a game called something like 'Wild Gunmen' where one or two players tried to get into a situation to shoot each other.
I eventually got a TI99/4a a few years later (as it was selling for $99(AUD). Wrote a flight simulator (dials only) and something that I really loved - an almost perfect copy of Frogger including music! The most annoying problem with the TI99/4a (apart from loading from tape) was that it hated running out of memory - and when it did would just crash. That always meant a reload from tape, optimize something, save to tape, and try again. Lots of fun.
All the TIs, Amiga, Amstrad, etc... Work ootb. You can find those converters for a few bucks on ebay. If you want to get fancy buy yourself an OSSC to get a really good image quality.
Also, the video output of some computers barely get in the standard. Yes, an analog TV can handle it fine, but try again on digital. I have a composite/SCART to VGA and can't sync correctly the composite output of my Spectrum +2. However, the same output it's handled correctly on my Commodore monitor
The first computer I ever used back in 1982 was Texas Instruments 990/10 minicomputer (384K) running an operating system called DX10, based on the same instruction set as the 99/4A.
That system was originally built for a US Motel operator reservation system. Back in the days when you would quote for developing not only the software but the hardware too!
Today if you are interested you can download a 990 emulator and experiment with DX10/DNOS for yourself