Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!smosjc!brett From: brett@smosjc.UUCP (Brett Coon) Newsgroups: comp.arch Subject: Re: TI 99/4 speed (was Re: Register Allocation and Aliasing) Summary: TI99/4 BASIC was written in GPL Message-ID: <299@smosjc.UUCP> Date: 31 Jul 90 21:09:05 GMT References: <1990Jul24.234511.10564@esegue.segue.boston.ma.us> <2929@awdprime.UUCP> Distribution: usa Organization: S-MOS Systems, San Jose, Ca., USA Lines: 30 In article <2929@awdprime.UUCP>, tif@doorstop.austin.ibm.com (Paul Chamberlain) writes: > In article jac@paul.rutgers.edu (Jonathan A. Chandross) writes: > >All of Microsoft's Basics are written (or at least used to > >be) in a virtual machine language. > > Can anyone confirm this? TRS-80 Model I (I think the first major MS BASIC) TI99/4 BASIC was written in a language called GPL, which I believe stood for Graphics Programming Language. GPL could only run from special ROMs called GROMS, which contained their own auto-incrementing address counters. To access a given GROM location, you had to write the two byte address to a special memory location (two writes and two NOPs for delay) and then read the data from another memory location. Subsequent sequential GROM accesses didn't require you to write a new address, due to the counters. TI used this convoluted scheme to allow large amounts of software to be mapped into a small section of the TI's 64K address space - the stock TI only had 256 BYTES of directly accessible RAM. I'm not sure what originally started this discussion, but I think it's worth noting that the TMS9090 CPU (used in the TI99/4), with its memory-to-memory architecture, had the easiest to program assembly language I've ever used, even more straight-forward than the 680x0 series. 16 general purpose registers and almost instant context switches. -brett -- |Brett Coon | uunet!smosjc!brett | |S-MOS Systems, Inc. | "You like 'em, anchovies?" | |San Jose, CA | -Runaway Train |