I want to understand the whole machine. THIS machine!

In the original thread I mentioned that

That description was a bit of an oversimplification; last week I went back home for a short pre-holiday visit, and did indeed find a TRS-80 CoCo2 right where I thought I remembered it. The machine’s origin is something of a mystery: my first vague memory of it is from a few years back, when I spotted it in a corner and was surprised that there was a second old computer (in addition to my A500) kicking around down there. My brother thinks that “someone I know” gave it to me. My Dad is the one who thought that I salvaged it from Grandma’s basement. The whole thing has a strange dreamlike quality, as though the universe has arranged to facilitate my retro-project. It’s kind of like being in an episode of Dr. Who. Things keep appearing, and those things are just what I need for the next step!

Anyway, this model seems to be a particularly good one for my project. It has an interesting processor (6809E), maxed RAM, a pretty simple video circuit, and good chances for outside communication, with a bit-banged serial port and a “program pak” cartridge slot that exposes pretty much the whole bus. It also seems to be brand new - “dead stock” as it were. The unit was still in its original styrofoam packing with the power cord all spooled up in a little plastic clip. All the documentation is present, and the unit itself has no yellowing. There’s even an included rom pak of “Chess.”

It also has a twelve foot long (!) RCA cable for attaching it to the included RF switch. I guess in 1983 they took Mom’s rule about not sitting too close to the TV Very Seriously. Sadly none of my TVs have crowsfeet UHF/VHF antenna inputs any more, so I had to do my initial testing by running it through the RF switch from my NES. This was not a happy pairing.

So I ordered this nice (and much shorter!) double-shielded RCA cable and a box of these coaxial adapters:

While I was waiting for them to be delivered, I did a disassemble and deep cleaning of the computer. There wasn’t too much to be done, since it appears to have never been used; however my parents had some water intrusion in their basement a few years ago, leaving everything with a mildewy smell. I wanted to make sure there wasn’t a mold colony growing inside the case. I’m sure you guys know what the inside of a CoCo2 looks like, so I’ll just post some of the highlights:

This one has the “Radio Shack” nameplate, as opposed to the “Tandy” found on later models.

This model has the MC6847P VDG chip, and not the more powerful MC6847T1 chip (which allows display of lowercase letters) found on later models. There’s an interesting big rectangular metal heat-sink around the D880 transistor at the bottom of the board; versions of this machine I’ve seen online have a different kind of heat sink that actually doesn’t fit in the case, so that it has factory-bent fins. The two ROM chips are soldered onto the board; however, in contrast to other versions I’ve seen online, the RAM chips are not! All 8 of them are installed in DIP sockets.

Another difference between this machine and one’s I’ve looked at online is that the power supply is shielded by this nifty metal cage:

Most of the musty smell seemed to be coming from in there, so I persisted with my voyage of disassembly and indeed found a small mildew colony, which I eradicated.

As I worked on this machine, I became increasingly appreciative of the simplicity and effectiveness of the design. Everything is sturdy and well-made. The whole package is held together with a few regular screws; no proprietary heads, no tricky plastic tabs, or glue joints. I could take the whole thing apart and put it back together again with one screwdriver.

I recently got (in another Dr. Who moment of synchronicity) an Emerson TV that seems to have a better RF tuner than the big Panasonic TV that we normally watch. Plugging the CoCo2 into the Emerson with the new cable / adapter gets a nice clean signal with a perfectly useable display:

The version of Extended Color Basic that comes with this machine has a bug, or at least a limitation, where it can’t see the upper 32k of RAM in 64k machines, even when it’s banked in. However, I found a testing program that enables the upper 32k and copies BASIC into it over from ROM. It seems that all 64k of RAM in my CoCo2 are good!

In conclusion, I feel like I’m in a pretty good position to move forward! I have a more-or-less brand new 27-year-old 8-bit computer plenty powerful to do real work, but simple enough that I can Understand the Whole Machine. My next step will be to just go through the included BASIC introductory manual. I’d also like to start building a library of related literature. I found a used copy of Leventhal’s legendary 6809 assembly language programming book, so that will be here soon. I also found the hardware maintenance manual for the CoCo2. Sadly, it only is available in PDF - I much prefer real printed material, but in this case I guess I’ll take what I can get. It’s something else… I think there’s enough detail that you could build the machine from scratch with just the manual. I would appreciate any further recommendations to expand my little CoCo2 library, especially for books that I could get physical copies of from Abe or similar used book marketplaces.

The other next step will be adding some kind of persistent storage to the machine. There seem to be quite a few options here, most of them using the ROM pak slot. They all seem to run about $50, which is not bad; but I’m not sure which one would be the best option. There seem to be a large number of strategies, from using Flash ROM to emulating a bunch of floppy drives on an SD card. If anyone has experience with these various methods I could use some advice.

5 Likes

Great post, and an excellent project to be starting. A high precision Basic, if I remember correctly. I’m not too surprised that the Basic didn’t anticipate a larger memory configuration, although of course it’s a mild disappointment.

I’m familiar with SD cards on Acorn’s machines - bit-banged interfaces, requiring a ROM to drive them. Very convenient and very cheap. Floppy disk emulators are fairly common too, but I don’t have one - more compatible, but you need a floppy interface, and they run at authentic floppy speeds. Perhaps a good way to choose is to look at the level of active support.

Nice to have a Chess cartridge - you could play against one of the Beeb offerings!

1 Like

Although this project is proceeding slowly, it is proceeding! Today I read the section of the CoCo SDC manual that explains how to use the on-board flash banks. It turns out to be pretty easy. There is a “kill mem” (scary!) command that initializes all the bytes to &hFF, followed by a “write mem” command that copies bytes from the CoCo’s memory by clearing the appropriate bits on the SDC’s flash bank. This is all done using the CoCo itself, from within SDC-DOS, which is a kind of custom DISK BASIC included with the SDC cartridge.

So, with the help of Lance Leventhal, I wrote (in a notebook, with a pen) a little program:

860FB70400860BB7040113

86 0F       LDA   &h0F      : This is the "lowercase" (inverted color) 'O' from the CoCo's video chip
B7 04 00    STA   &h0400    : Video RAM starts at &h0400
86 0B       LDA   &h0B      : Ditto for 'K'
87 04 01    STA   &h0401
13          SYNC            : Interrupts start out disabled, so this doubles as HALT

And then a little BASIC program to poke those bytes into memory and write them to the flash bank. CoCo SDC supports cold booting from the flash banks with a simple “run” command; the photo is what happened immediately after doing that. I went with an inverted color ‘OK’ so that it - if it worked - it would be immediately obvious that it was not the standard ‘OK’ prompt from BASIC.

It’s not much, but it felt like a big win. :smiley: Years of fussing with high-level languages and layers of libraries (and Windows) have conditioned me to expect (with a kind of inner cringe) things to not work first try. Nice when they do!

For my next project, I’d like the CoCo to figure out how much RAM it has without me telling it. I have a PDF of “Color Basic Unravelled,” which includes a disassembly listing; one of the first things it does on system initialization is a RAM check, but I don’t quite understand how it works. It looks like it involves one of the PIA chips. Time for more reading, I guess! :smiley:

3 Likes

First light - fantastic! Proceed step-by-step and you should be fine.

I do think a bit of hand-assembly with pen and paper an excellent idea.

1 Like

Resources…

Color Computer Archive has all books, magazines and software
The CoCo Crew podcast talks about the machine

You can find print copy of hardware reference manual pop up on eBay every now and then.

If you have extended BASIC 1.1, then you have the lastest. Regular color basic version last release was 1.3.

You are right about sturdiness… In general, these machines always work when found on eBay.

Look for cocovga product… Highly recommended!

1 Like