Tandy/Radio Shack TRS-80 Model 16 Graphics

TRS-80 Model 16 Nostalgia

I grew up with a TRS-80 Model I with Level 2 Basic and a TRS-80 Model 16 with 128K of RAM that were our first computers in the house prior to me getting my first computer, a Commodore 128. There was a book about Level 2 Basic that came with the TRS-80 Model I that was (as far as I know) a giveaway, but I never saw the TRS-80 Model I running except when it was in my grandmother’s house in Old Louisville on the 3rd floor when my dad’s younger brothers were playing around with a simple number guessing game program.

One thing that intrigued me about the TRS-80 Model I was its very simple graphics commands, SET and RESET which operated on a 48×128 (row x column) graphics grid as well as PEEK and POKE commands which could address a 2×3 grid of those same graphics grid points, but on the 16×64 character grid.

BASICG? What is this

I played around with the Model 16 and its 8″ disks and BASIC in there, but it wasn’t until I stumbled on PDF documentation for the Tandy TRS-80 model II that I discovered that the business computers (Model-II / Model-12 / Model-16) actually supported graphics at all. Looking at the Model_2_Computer_Graphics_26-4104.pdf scanned reference, it turns out BASICG (must be all uppercase in TRS-DOS) is the way to load the BASIC graphics interpreter.

I’m not sure if the TRS-DOS disks that came with the Model 16 my dad had had this interpreter, but the trs80gp emulator includes BASICG on the default boot disk for Model 16 mode:

What’s this BASICG on the TRSDOS disk?

(It wasn’t until after the TRS-80 Model 16 was gone that I learned about the DIR command via using MS-DOS, but that would have been helpful for digging in more… Ironically, my Commodore 128 supported a DIRECTORY command, so … SO CLOSE BUT SO FAR)

The TRS-80 Model 16 screen is 640×240 (x,y) addressable monochrome pixels. Unlike the Model I with Level 2 BASIC, BASICG has some more advanced commands… LINE, CIRCLE, PAINT… also GET to read the contents of the screen and that can later be PUT.

Interestingly enough, although the CIRCLE documentation say that the third argument is “r”/radius

CIRCLE command documentation

actual usage in the emulator appears to behave like the argument is a diameter instead:

Circles drawn on text

I’m definitely looking for more resources on the Model 16, so if you have background, manuals, etc., email me at thomas at thisdomain.