Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
TI BASIC (TI 99/4A)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Performance == The TI-99 was based on the [[TMS9900]] [[microprocessor]], a [[16-bit]] design that was originally built to provide a single-chip [[central processing unit]] (CPU) in low-end models of their [[TI-990]] [[minicomputer]] lineup. The TMS9900 was also suitable for use in a microcomputer, but at that time the rest of the support chips required to build a complete computer were invariably [[8-bit]], and this included TI's wide catalog of such chips. In a minicomputer, 16-bit support systems were built up of many individual chips, but this was not suitable for a low-cost product. TI thus adopted the solution of making the machine mostly 8-bit and connecting the various support chips to this 8-bit [[Bus (computing)|bus]], with the TMS9900 reading the bus twice to produce a 16-bit value.<ref name=arch>{{cite web |url=https://www.unige.ch/medecine/nouspikel/ti99/architec.htm |title= The TI-99/4A internal architecture |date=16 August 2000}}</ref> The TMS9900's [[instruction set architecture]] was based on 16-bit [[opcode]]s, meaning that programs would generally be twice as large as they would be on an 8-bit machine. In the era of expensive memory, this presented a significant cost. To address this, TI created an 8-bit [[virtual machine]] with its own language or [[intermediate representation]] known as the "Graphic Programming Language", or GPL, that allowed programs to be written in a more compact format. The downside to this approach is that every GPL instruction had to be converted on the fly into one or more underlying TMS9900 instructions.<ref>{{cite web|last1=Nouspikel|first1=Thierry|title=GPL: Graphic Programming Language|url=http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm|accessdate=2 August 2020}}</ref> The GPL code itself was stored on the 8-bit side of the machine, further slowing its performance.<ref>{{cite web|publisher=Hacker News|title=I grew up and learned basic on a TI-99/4a. It was a wonderful and simple time......|url=https://news.ycombinator.com/item?id=13521531|accessdate=2 August 2020}}</ref> For all of these reasons, the machine ran far slower than it was theoretically capable of. This was particularly noticeable in BASIC. Every instruction in the user's program had to be read from 8-bit memory, interpreted using code written in GPL, and then output back over the 8-bit bus again. As a result, TI BASIC had poor performance; on common benchmarks of the era, the TI-99 generally ran half as fast as 8-bit machines like the [[Commodore PET]] or [[Apple II]].<ref>{{cite web |title= How Fast Were Those Late 1970s Home Computers? |url=https://lowendmac.com/2016/how-fast-were-those-late-1970s-home-computers/ |first= Daniel |last=Knight |date=10 January 2016 |website=Low End Mac}}</ref> For instance, running the [[Byte Sieve]] in BASIC took 3960 seconds in TI BASIC, while the same test in [[Applesoft BASIC]] on the Apple II, ostensibly a much slower machine, took 2806 seconds, about 30% faster that the TI.<ref>{{cite magazine |title=Eratosthenes Revisited: Once More through the Sieve |first1=Jim |last1=Gilbreath |first2=Gary |last2=Gilbreath |magazine=Byte |date=January 1983 |pages=283β325 |url=https://archive.org/details/byte-magazine-1983-01/page/n291 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)