Mimsy Were the Borogoves

Mimsy Were the Technocrats: As long as we keep talking about it, it’s technology.

42 Astoundingly Useful Scripts and Automations for the Macintosh

Work faster and more reliably. Add actions to the services menu and the menu bar, create drag-and-drop apps to make your Macintosh play music, roll dice, and talk. Create ASCII art from photos. There’s a script for that in 42 Astounding Scripts for the Macintosh.

The TRS-80 Color Computer 2

Jerry Stratton, March 24, 2021

My second computer, sometime around 1987, was Radio Shack’s Color Computer 3. It was an amazing computer, and, combined with Microware’s OS-91 operating system, well ahead of its time. A very inexpensive computer with a Unix-like operating system and true multitasking, shared graphics libraries, protected memory, and modern programming tools. I continued using that computer into the nineties. When I gave it up, I didn’t replace it. There was nothing to replace it with. It was a phenomenal computer/software combination that soured me on either Windows or Macintosh for at least a year, and which I continued to miss until Mac OS X.

So when I started researching the history of the personal computer for a novel I’m writing, the predecessors to the CoCo 3 were especially interesting to me.

I acquired an “untested” Tandy Color Computer 2 at the end of July 2019 and happily it works great. This is a late version of the model, which I was interested in mainly because it includes the ability to use lowercase as an accidental upgrade. It still fascinates me how lowercase was such a rare feature on early computers. No lowercase made word processing difficult at best. Lowercase mods were probably the most common aftermarket mod for any home computer that didn’t already have it.

Extended Color BASIC does not support the lowercase built in to the late model video display generator, but it is there if you know where to look for it. This was the last version of the Color Computer 1 and 22 before the Color Computer 3 came out.

One thing using this old computer does is reinforce the prejudice I held against computers that used unmodified television sets for video displays. I used the TRS-80 Model 1—a 1978 computer that I purchased used in 1980—until a house fire in 1987 melted it. I used it for nearly ten years because it came with a monitor that provided crisp (for the time, at least) text at 64 characters per line.

Even at only 32 characters per line, the Color Computer 2’s RF output to a modern television is far from crisp. I would never want to use this computer for word processing, or even for programming anything longer than a few lines of BASIC. That’s part of why I wrote superBASIC and the various tools I use for verifying old Rainbow magazine code on the Macintosh.

It wasn’t until the Color Computer 3 and the Commodore 128 that I started taking these kinds of computers seriously. The CoCo 3 and the 128 had RGB output. The improvement was enough to make (at least on the CoCo 3) 80 characters per line usable. That made it an improvement on the even then ancient Model 1 for word processing and programming.

While I was interested in reviewing the historical aspects of these old computers, I really had no desire to get back into dealing with floppy disks or cassettes. Fortunately, there’s a thriving retro community for the CoCo, so I picked up a memory card cartridge that lets me transfer files using an SDHC card instead of a floppy.3

It is fascinating to see what passed for games at the time; some of them are still fun, such as Galactic Attack (Galaxian) and Space Assault (Space Invaders). Others, it’s hard to believe anyone paid money for them.

Many of the cheaper home computers of the time doubled as game consoles by including the option to buy cartridges. The Color Computer did the same; some of the cartridges were far from games, however, including an audio spectrum analyzer.

Some things that were so common as to be unremarked at the time freak me out now. It is very strange to write pauses using empty loops, literally tying up the computer for the duration of the routine. Even more unsettling is polling the keyboard with INKEY$ loops. On a modern computer these loops would use up too much CPU time. But of course, on modern computers there would be other processes running to care.

The complete lack of memory protection is also so common as to go unremarked. In the June 1986 issue of The Rainbow, there’s a short program to display dancing telephones. In the accompanying text, the authors say to use PCLEAR 8 to clear space for the graphics. They do not say what happens if you don’t.

  • 10 FOR P=1 TO 4
  • 20 PCOPY P TO P+4
  • 30 NEXT P

Leave out PCLEAR 8 and this program erases itself; in longer programs, such as the one in that issue of The Rainbow, PCOPYing beyond available graphics memory will turn the BASIC program’s lines to garbage. The consequences of not using PCLEAR 8 went unmentioned in the article; also unmentioned, and I still don’t know the reason for it, is why they didn’t just put PCLEAR 8 into the code. I added it and it doesn’t seem to hurt anything.4

As far as I can tell, the instruction manual for Extended Color BASIC also doesn’t mention what happens if you use PCOPY without PCLEARing enough pages.

Memory management was so primitive that this sort of thing was just assumed. PCOPY without PCLEAR, of course you’re going to overwrite your data, and your data includes your program.5

One thing I noticed when looking into old Rainbow magazines or CoCo-oriented books is that many CoCo programs have even line numbering! That’s because Extended Color BASIC comes with a RENUM command to renumber lines. Once you’re done programming, you can type RENUM and all lines will be renumbered from 10 in increments of 10. Or, to conserve memory, RENUM 1,X,1 to renumber from 1 in increments of 1.

This regularity helps reduce mistakes when typing in code from magazines and books.

Also fascinating, like the computer’s vestigial lower case, is its lack of color in normal use. This is a Color Computer. But the computer has two modes, a text mode and a graphics mode. In text mode, you can set three colors: foreground, background, and border6. There is no multi-colored text on the Color Computer 2. Whatever the foreground color is, all text is that color. Color can be displayed using the block graphics available on the text screen—such as the SPARKLE.BAS video shows—but the block graphics are block characters, not the point-by-point lines, circles, and boxes you would expect on a computer sold for its graphics. If you want to show one word in red, you can’t. Graphics and text are east and west on the Color Computer 2.

The graphics themselves are fascinatingly modern. Not in resolution—the Color Computer screen would fit in a tiny corner of the screen on my phone—but in how they handled multiple resolutions. The Color Computer has three graphics resolutions, 256x192, 128x192, and 128x96. But when drawing lines or circles on the screen, or setting pixels, you always specify them in the highest resolution, from 0 to 255 horizontally and 0 to 191 vertically. This means your code is portable across graphics modes. If you decide you’re willing to trade off graphics quality for more memory, you need change only the PMODE line. The graphics will handle themselves.

But that’s not all. Besides drawing point-by-point or line-by-line, there’s a DRAW command that acts pretty much like a pencil on the screen.

  • DRAW "BM128,96;U25;R25;D25;L25"

B means blank; M means move to location 128,96; U means draw a line up 25 points, R means draw right 25 points, D means down 25 points, and L left 25 points, thus drawing a box. It can change direction by 45-degree angles and even change the scale of the drawing, making it a snap to draw smaller or larger versions of the same figure.

There’s also a wonderful command for sound. While the Color Computer has the standard SOUND frequency, duration command for creating sound that many computers had in the era, it also has a beautiful PLAY command.

  • PLAY "T5;C;E;F;L1;G;P4;L4;C;E;F;L1;G"

That’s the first line from “When the saints go marching in”—if you’re familiar with the song you’ll recognize it from the notes, C, E, F, G, repeated. T changes the tempo, P is a rest7, and L sets subsequent note lengths. The default is L4 (quarter notes). L1 would be a whole note, L8 an eighth note, and so on, and if you wanted to get real jazzy any number from 1 to 255 is possible, so seventh notes are perfectly reasonable.

I literally just wrote a similar script for the Macintosh in 42 Astoundingly Useful Scripts and Automations for the Macintosh. Except for tempo and the use of semicolons for separators, I was able to verify this melody using the notes and durations as given.

  • $ piano -c e f 1 g 4 r -c e f 1 g

What this meant was that music could be played by building up human-readable strings taken straight from sheet music. There were a lot of musical apps written in BASIC for the Color Computer in The Rainbow.

This is a fun computer for reliving the dawn of the home computer era. There is a real enthusiasm for programming visible in old Rainbow magazines, in Tim Hartnell’s books, in Al Baker’s TRS-80 Programs and Applications for the Color Computer, and even in the manuals that came with the computer.8 I enjoy playing old 8-bit games, enough that I’ve written a BASIC preprocessor to make it easier to write BASIC code using loops and readable variable names.

If you’re interested in the old BASIC books, I’ve collected my reviews on Goodreads. And if you’d like something similar for the modern Macintosh, check out my own 42 Astoundingly Useful Scripts and Automations for the Macintosh.

  1. OS-9 Level Two, at least. I never used the original, retronamed Level One.

  2. These first two models were basically the same computer. From the user’s standpoint, the main difference was the better keyboard on the Color Computer 2, and a few bugs fixed.

  3. If you get a Color Computer, whether 1, 2, or 3, I highly recommend Ed Snider’s CoCoSDC. It’s like having an infinite number of disk drives.

  4. Although, thinking about it now, I don’t understand why that doesn’t erase some of the BASIC program it’s in. If PCOPYing to those pages munges some of the code, why doesn’t PCLEARing erase some of it?

  5. As I recall, one of the innovations of the CoCo 3 with OS-9 was that it did separate code from data and protected the former from accidental overwrite.

  6. The border is that area outside the normal television screen. Because televisions varied a lot, the Color Computer outputted to a square guaranteed to display in full on all televisions. Everything around that square got a border.

  7. P stands for pause. I don’t know why they didn’t use R.

  8. For all their faults, Tandy/Radio Shack was known for the amazing BASIC tutorials that came with their home computers. Their Model 1 book, written by David Lien, was a phenomenal resource for a teenager who had never programmed before.

  1. <- Drop-ins