TI-99/4A Floppies

Jim Battle frustum at pacbell.net
Mon Oct 1 16:01:34 CDT 2007


Roger Merchberger wrote:
...
> Well, if you were a Basic programmer (like I was at the time) then you 
> *really* weren't missing much! IIRC, it's Basic is not run on the 
> primary CPU, but on the graphics chip! As such, it's a pretty limited 
> Basic, and dog slow... at least 10x slower (for a simple For/Next loop) 
> than a CoCo2, so for a home platform, you'd need to learn assembly or 
> purchase (read: more $$$) a dev package for C/Fortran/Forth/whatever 
> else might've been available for that box.

I never used a 99/4 of any flavor, but I recall hearing a very different 
explanation why the stock BASIC was so slow.  The graphics chip had 
nothing to do with it; as far as I know there is no way to run code on 
the graphics chip (it is a simple raster+sprite engine).

No, the real reason was that the BASIC was a two-level interpreter.  TI 
didn't have the time/resources to write a BASIC interpreter in native 
assembly, so they procured a BASIC interpreter written in an abstract 
machine code, kinda like p-code, such that TI would then just have to 
write an assembly level program to interpret the "p-code".  I'm sure 
they made other enhancements to this BASIC interpreter in order to 
support the unique features of the hardware, though.

This approach wasn't all that uncommon.  The IBM 5100 did something like 
that (although the "p-code" was the instruction set from a real IBM 
machine).  The early Dr. Dobbs were full of homebrew BASIC interpreters, 
and many took this two-level interpreter approach, motivated more to 
save space than anything else.

Finally, the "SWEET16" interpreter Woz wrote into the original Apple II 
ROMs was intended for this type of speed/space trade off.


More information about the cctalk mailing list