3 ms·
I grew up and learned basic on a TI-99/4a. It was a wonderful and simple time... but TI Basic was so incredibly slow. At least Extended Basic allowed you to us
by joakleaf 10y ago
I grew up and learned basic on a TI-99/4a. It was a wonderful and simple time... but TI Basic was so incredibly slow.
At least Extended Basic allowed you to use sprites and overall felt a bit faster.
In TI Basic, you accessed the more interesting parts of the machine "Call" functions (e.g. "Call Color", "Call Char", "Call hchar", etc.), and I always found Commodores peek/poke mess very primitive and a bit more inaccessible in comparison. On the other hand the TIs basic and extended basic didn't allow you to access the full capabilities of the machine. Possibly because they wanted you to buy their expansion cards, which I always thought was a dumb mistake from TIs side. That, and that super slow Basic. Especially, considering that the TI has decent capabilities on paper.
I was only about 7 years when I started programming on the TI, and I always wanted to try to write assembler on it, but (happily) moved on to more powerful computers before I got around to it a few years later. I believe it required an extra expansion card to unlock assembler -- but I really wanted to see what the machine was capable of unconstrained by the Basic Interpreter.
Thanks to the guys who made this demo. It is fun to finally get to see what could have been, and super impressive for someone who grew up programming the machine.
This demo is definitely not representative of the applications and games available on the machine at the time.
Well done!
- pm215 10y agoThe slow BASIC was due to the completely insane doubly-interpreted implementation. The BASIC interpreter was written in GPL (Graphics Programming Language; https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#VDP_RAM_and_GPL https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#VDP...), which was itself interpreted at runtime.
- boomlinde 10y agoIf I understand that correctly, the BASIC programs were stored in VDP RAM. If that's anything like the MSX (most of which also used this video chip), that means that BASIC tokens are read from a slow 8-bit bus by writing addresses byte by byte to a port and reading the content from another. There's functionality to automatically increment the VDP address, but any non-contiguous read will have to write the VDP address to the port. I really like this layered design despite its performance impact. It meant that they could fully utilize the VDP RAM where the CPU local RAM was lacking.
- pm215 10y agoNot only the BASIC programs you wrote (which do indeed live in VDP RAM). The BASIC interpreter itself was stored in GROM, which was read-only but had a similar slow 8-bit interface with an address port and a data port on it, and written in GPL bytecode which was then interpreted by a GPL interpreter which lived in real ROM. If they'd written the BASIC interpreter in actual machine code and put it in ROM then your BASIC programs (and the interpreter's own volatile data) could still have lived in VDP RAM, but everything would have been rather faster... http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm is a detailed description of what GPL looks like.
- svachalek 10y agoYeah this brought back fun memories. I learned to program on the TI-99/4a and I can still visualize hex numbers as bitmaps because that's how you had to program graphics on the thing. I actually got a TI program published by Enter magazine but Enter went defunct before it got to print, and later appeared in 3-2-1 Contact magazine instead. "Rainbow Rectangles", can't remember the publication date. Not quite (cough) as cool as this demo.