Getting a C64 online in 2020.

May 22 2020

As you might have seen in previous posts, my stuck-in-quarantine project has been restoring my C64 so I can play around with it.  Part of that involves figuring out what you can reasonably use such a venerable computer for in 2020.ev, besides playing old games.  Word processing and suchlike are a given, though I strongly doubt that I could get my Commodore playing nicely (or even poorly) with the laser printer in the other room.  Also, the relative scarcity of 5.25" floppy disks these days makes saving data somewhat problematic (though I've got a solution for that, which I'll touch on later).  Ultimately, the utility of a computer of any kind increases exponentially when it has a network connection of some kind due to how much data isn't kept on one's workstation these days but on remote servers, be they one room over or across the planet.  Plus, running applications on more powerful systems is thankfully still a thing, marketing making people forget all about that to the contrary.

Along with the other Commodore equipment I've been hauling around with me over the years is a Commodore 1670 modem that used to scream along at a spritely 1200 baud and a copy of Bob's Term Pro v1.9, gifted to me by a work associate of my mother's many years previously.  I also still have an acoustic coupler attachment that plugs into a modem's phone line jack which, at one time anyway, worked decently well for mobile communications in the days before wifi.  I don't have a landline anymore, just DSL and a mobile phone, so I decided to try an experiment.  A grand experiment, if you will, an attempt to get my C64 online and calling BBSes once more.

BBSes - bulletin board systems - are not as common as they once were.  Throughout the 80's and well into the 90's some computer systems were set up specifically for people to dial into and post messages, upload and download files, play door games, and chat with each other.  Jason Scott made a documentary about BBS culture some years back which I highly recommend.  I made most of my friends on BBSes, and we're still in touch with each other to this day.  A sizable number of them were at my wedding in point of fact.  But I digress.

There are still a few BBSes floating around out there, collected in carefully curated directories with better than one might expect search features, but as an exercise in re-familiarizing myself with technology that I haven't messed with in about 20 years I decided to retrace old steps.  I connected the modem to my C64, plugged a modern-day telephone handset into my mobile, and booted up Bob's Term Pro to take a walk through any stored phone numbers I might still have in my directory.  It took me a good 20 minutes of messing around to remember the hotkeys for Bob's Term Pro (note to self: RUN/STOP bounces you up a menu level), but eventually I pulled up the phone directory.  I figured that I may as well give Cyberspace BBS (206-248-7647) a dial from the handset (note: It's probably not the same as this Cyberspace BBS) to see what would happen.  Miracle scenario, it would still be online and accepting new users.  Worst case scenario, the line would be picked up by somebody who has no idea what's going on, and I'd get into an interesting but awkward conversation.  As it turned out that particular number has been disconnected and I wouldn't be surprised if it's been that way for a good many years.

I then did a little looking around for up-to-date BBS lists and picked a likely looking BBS that was still on dialup at random - Kludge (312-654-0090) based out of Chicago, IL.  Once again I set myself up to dial from my cellphone, and much to my surprise I heard the dulcet sounds of a modem answering.  Partway there, I then set myself up to try to connect old-school style: Dial the phone manually, listen for the carrier, put the phone into the coupler's rubber cups, and get the 1670 to hear and respond.

I'm sorry to say that I wasn't able to get it to work.  I spent a good six hours (hey, it's been 20-some years) messing around with Hayes AT commands and poring over a printout of the 1670 modem's documentation (I went dead tree because I figured that marginalia would be required) trying to get it to work.  I then decided to run the dumbass test: Tell the modem to dial something (ATDT 1-800-555-1212) and listen to the acoustic coupler for the touchtones.  Without the coupler plugged into my modem I was able to hear my computer dial through the built-in speaker.  With it plugged in, sadly, I heard nothing, which means that some part of my acoustic coupler is broken.  I'm not yet sure if it's the modular plug, some wires in the cable, or what but I have plans to take it apart and troubleshoot it.  And if it doesn't work anymore, it's had a good run.  25 years is nothing to sneeze at.

So I decided to see if I could recondition my modem, the same way I had my C64 and 1541 drive.  The plastic is on the yellowed side and I figured that I could take my multitester to the circuit board and see if I needed to recap it.  The casing isn't screwed together, it just has four posts on one half that press fit into four other posts on the other half.  The posts slide through matching holes in the PC board to hold it in place.  Separating the two halves required a guitar pick and about five minutes of sliding, twisting, and levering.

It was at this point that I discovered that Commodore had somehow managed to use one inch lengths of very thin wire (21 or 22 AWG if I had to guess) to connect the speaker to the circuit board, and in separating the two halves I ripped the wires clean off.  To add insult to injury, the speaker appears to be epoxied to the inside of the case, which complicates any restoration efforts.  I'll probably have to use my Dremel to grind it loose before I can even give the case a good wash.  That seems like more trouble than I feel like going to right now, so it can wait.  I did, however, splice some wires onto the speaker's connections, add some heat shrink tubing to insulate the splices, and solder the extensions onto the circuit board.  After careful examination I determined that one of the speaker's connections was to the ground plane, which I figured would make it easy to get the speaker working again.

I was wrong.  The speaker's nonfunctional, probably because the wires are backwards.  Not a big deal but somewhat irritating.

It was at this point that I decided that if I was going to make any headway I'd have to go wireless.  To that end I ordered a pre-assembled C64net Wifi Modem from Amiga On the Lake.  The C64net plugs into the Commodore's user port just like the 1670 modem does, and as far as the computer is concerned it's just another smart modem.  The other end is a wifi card based around an ESP8266, which is basically a universal "give this thing wireless" chip that has enough smarts on board that you don't have to do anything special to get it onto a network.  It even, surprise surprise, uses Hayes-style AT commands to control it (which leads me to wonder if most of the circuit board of the C64net is there just to make it easy to handle, connector aside (probably not)).  Also, the firmware is open source and available on Github so it's tinker-able.  While waiting for the C64net to arrive I printed out and read through over the docs a couple of times to familiarize myself with it.

So, the wireless modem arrived, I plugged it into my Commodore and fired up Bob's Term Pro again.  It didn't take much work to configure the C64net to interface with my wireless network (and the settings are persistent on the modem so I don't have to do it every time) and quickly hacked together a telnet server for Leandra to test with.

ATDT "leandra:31337"

Annnnnnd... shell!  And a metric shit-tonne of ANSI escape codes from my usual shell prompt so I couldn't see a bloody thing.  I can't say this is unexpected, because the first couple of years of my BBSing career were mostly raw ANSI codes and fumbling to turn off as much of the color as possible.  Annoying, occasionally frustrating, but pretty standard for retrocomputer networking.  But I had a solution lined up.

The solution in question involved unplugging my 1541 disk drive and replacing it with a device called an SD2IEC, an open source (you knew that was coming) device that accepts a plain old SD card formatted as FAT32 with a couple of Commodore-specific program files in its root directory and a (hopefully) organized collection of Commodore disk images.  As far as the computer is concerned it's a 1541 disk drive with a floppy mounted.  There are a couple of buttons on top of the unit for "reset the device," "previous disk image," and "next disk image" to take into account situations where you need to swap disks (like most large games of the time).  This also, incidentally, means that more recent Commodore software (released in the last 20 years or therabouts) which is only distributed as .d64 files will be trivial to use: Just copy the .d64 file onto the SD card.  I did some research and found a company that had them in stock that had good reviews and a reliable track record (unlike, say, most of the ones for sale on Etsy).  The Future Was 8-bit had them in stock and, due to the vagaries of international shipping it arrived courtesy of DHL within three days.  A pleasant surprise, indeed.

After my SD2IEC arrived I wasted no time copying the disk image for the latest stable version of Novaterm (v9.6c) onto an SD card along with the file browser tools recommended by TFW8b.  Out went the 1541, in went the serial plug for the SD2IEC and the power connector in the cassette port.  My C64 booted up without trouble and I loaded up the file browser.  It wasn't terribly difficult to cursor around and select the Novaterm disk image (though, I must admit, I'm less than pleased with some of the design choices made for the file browser menu), quit back to BASIC, and boot the Novaterm loader.  All things being equal, the one thing that really sold Novaterm for me was that it's capable of displaying ANSI graphics correctly, which makes accessing... well, just about anything these days significantly easier.  And more pleasant.  Mentally filtering out graphics control codes can give you a headache after a while.  It took about an hour of tinkering with Novaterm to figure out an optimal configuration.  Note to self: While it's possible to kick a commodore into 80 column text mode it doesn't really play nicely with a widescreen flat panel display.  I couldn't make out a bloody thing.  So, I had to settle for regular old 40 columns of text with ANSI support turned on.  Not really what I'd prefer, but if it comes down to "I can read this" and "I can't read this," I know what I'll pick every time.

My proof of concept this time, and somewhat predictably was a bulletin board system from my adolescence that's still online to this day, The Diamond Mine (lately run out of Virginia).  Back in the day I used to dial it up once in a while, but it was long distance from where I lived due to the vagaries of Bell Atlantic's metro area calling plan (a now-obsolete version of regular landline calling that, for a few extra dollars a month added a whole bunch of dialing exchanges to the "not long distance" column) so it wasn't one of my go-tos.  Still, setting up an account was pretty straightforward and, after account validation via e-mail with Diamond DAve I was back in the BBS game.

I discovered the hard way that much of the old reflexes and muscle memory have been gone for years.  I didn't even remember how to exit the Synchronet BBS' text editor so I'm more or less back to square one in that regard.  Still, some of the ingrained habits are still there: Lurk before you post on a new board, don't act like a dick, introduce yourself in the proper message sub, stay on topic.  It still takes patience to read messages but I think kicking the baud rate up a couple of notches will help (the C64net can theoretically run at 9600 baud with a little tweaking) in the long run.  I'm still not sure what to do about the 80 columns of text problem.  I think I might have to deal with that.

Maybe I'll see you around.