Using a Commodore 64 on the modern internet

Show video

Greetings, and welcome to another exciting episode of Veronica Explains! I'm Veronica, and today I'm going to do a brief demonstration of two ways to get a Commodore 64 online! Now, this is a different sort of video than the Linux content I've been putting out, but my retro collection is also really important to me, and I hope it's enjoyable for you too. One thing I love about retro computing is that it helps explain some of the design concepts that we still live with today. Knowing how a classic network terminal and modem worked in the 70s and 80s can help make sense of the sometimes convaluted things we do in our terminal emulators here in the roaring 2k20s. Plus, it's just fun sometimes to revisit this old stuff.

I grew up in the 90s, and while BASIC and cassette drives weren't required to handle everyday geek life, I was always fascinated by it as I took my first timid steps into designing computer software. So, a quick intro for folks who might not know what a Commodore 64 even is. The Commodore 64 is an early home computer, first released in 1982. It is, according to many estimates, the best-selling desktop computer of all time.

The entire computer looks to us in the modern era just like a thick keyboard, but this form factor was reasonably common back in the 1980s. On the side you've got two joystick ports, which also work with many other peripherals such as mice. You also have the power switch and power input. By the way- don't plug the original power supply into this computer anymore! Not unless you know what you're doing, that is.

The original supplies are often terrible for the machine, with voltage issues as they wear over time. Do yourself a favor and just buy a modern replacement. Your C64 will thank you.

On the back of the machine, you'll see a cartridge port, common for peripherals and some games. There's also an RF output to allow you to plug it into the antenna of a period-appropriate TV, but the quality there isn't great. Anyway, next to that RF output is the video and audio output. Later revision C64s use this special 8 pin DIN connector, which essentially is compatible with S-Video plus audio out. The earliest C64s, like my other model, the early run "silver badge" C64, use a different 5 pin DIN, which sends out composite video only.

Next to that is a six-pin DIN connector used for external devices such as floppy drives, printers, that sort of thing. Those are daisy-chainable, so only one output is provided on the computer itself. And next to that is a tape drive connector.

Yup, tapes. That's a thing- let me know if you want a video on it. And lastly, at the end is the user port adapter.

We use that to connect modems and lots of other peripherals, so we'll be talking about that in a minute as we get online. Anyway, the Commodore 64 was named for it's then-significant amount of RAM, 64 kilobytes. That's right: kilobytes. Yup, using this computer really gives you an appreciation not only for our powerful modern machines, but also the extremely compact design considerations that went into making this machine a fully capable computer for its day. And it *was* a fully capable computer in its day.

The Commodore 64 was a powerhouse for gaming, as well as getting online. And it's *that* experience we're going to try to replicate today. When this machine was first shipped, the "web" as we know it didn't exist.

"Online" experiences were all based around dial-up modems, calling into other machines which could serve you content. Perhaps the most iconic option for networking in the 8-bit era is the mighty BBS. BBSes, or Bulletin Board Systems, are basically servers running a terminal-friendly software package that allows remote computers to "dial in" to share files and messages, and even play games. At the height of their popularity, millions of computer users were dialing into BBSes throughout the world. Of course, it wasn't perfect. BBSes were generally limited to text-based applications with very low capabilities for graphics.

Not to mention that most BBSes couldn't handle multiple simultaneous connections very well. See, the sysop (or system operator) needed to figure out how to handle multiple incoming calls at the same time. On a modern website, the web server has to be capable of handling multiple simultaneous connections, and all popular web servers do this. But back then, it was just your computer or server, and your phone line. So, you either had to figure out how to handle multiple incoming calls all at once, via an expensive multi-line phone setup, or you had to restrict access to one user at a time.

We take for granted that all of our modern machines are all connected with each other all the time, but back then, the pace of online life was a little slower. And while I certainly appreciate the fact that modern websites don't suffer this limitation, I do find myself occasionally pining for the intentionality that comes from these limitations. Of course, the BBS never totally went away, and is experiencing a bit of a rennaisance at present.

And the Commodore 64 is an excellent way to experience this wonderful world, the way it was meant to be experienced- slowly. Anyway, geeks-of-a-certain-age certainly remember begging their siblings or parents to get off the phone so they could get online. If you weren't there, it was really something. Basically, our computers used audio tones over the phone line to exchange information with other computers.

That's what that classic "dial-up" sound is- using the available audio infrastructure to join your fellow nerds throughout the world. There were no shortage of modem options back then, but getting them working is challenging nowadays. Luckily, modern developers with a retro flair have stepped in to help us out. It seems like no matter what retro hardware you're into, lately someone has been working on getting it online again using modern technology.

And that's awesome! As far as the Commodore 64 is concerned, I have two options for connecting it to the modern internet. Later on, I'll walk you through the basic setup of the 64nic+ from RETRO Innovations. This fun device lets you connect your Commodore 64 or 128 to the modern web over Ethernet, and is compatible with Contiki, a suite of programs designed for embedded applications that works surprisingly well on the Commodore 64.

But first, let's try the C64 Wi-Fi Modem from Retro Rewind. This device emulates the classic AT Hayes modem, but instead of dialing numbers over a phone line, you can call up connections over the modern internet! This Zimodem-based modem plugs into the user port of the Commodore 64, and is managable from many terminal programs on the C64. The program I'm planning on using today is the legendary CCGMS terminal.

The most recent release was in 2021, and the source code is available online if anyone wants to add new features. Now, there are more ways to load programs onto your C64 than I have time to go into right now, but I will be using my trusty Pi1541, a Raspberry-Pi based floppy disk drive emulator that's significantly smaller than the classic 1541 floppy. If you want me to cover all of the different ways I can load software on this thing, let me know in the comments. One thing I will mention is that the popular command to load from floppy is `LOAD quote asterisk quote comma 8`. The "LOAD" command loads a program, and the asterisk says load the first thing found on the disk.

We'll cover more about that later on. The "8" is simply the default drive number for a Commodore floppy drive. Anyway, I just downloaded the image from the web, and I'll put a link in the description. Of course, if you still have the big 1541 floppy around, Retro Rewind does sell a copy of it on a floppy disk for your convenience.

So, with the power off on the C64, lets connect the modem to the user port, plug in my virtual floppy drive, and power on the computer. Then, let's fire up the software with that LOAD command. After a while, it loads the program, and we can use the RUN command to get started with it.

Now, this can take a while- Commodore disk drives are notoriously slow. In fact, there's an argument to be made that the slow disk drive is the reason the Commodore computers were less successful in education and business then IBM and Apple during the 80s. Maybe if the 1541 disk drive was faster, we'd see Commodore phones all over the place, instead of Apple. Hmmmm...

In any case, once CCGMS loads up, you'll have to make sure CCGMS knows how to connect to the modem. It defaults to 1200 baud to get started, so we need to make sure we set that. From CCGMS, we can press F7 to open the dialer parameters. Then, we press B to set the baud rate, pressing repeatedly until we get to 1200. It tells us to try the Afterlife BBS, but apparently it's no longer active as of the making of this video. That's OK, we'll try another BBS shortly.

Now we need to connect to our home Wi-Fi. "ATW", followed by the return key, will show the networks nearby. To connect to one, we'll want `ATW"SSID,PASSWORD"` To see if it worked, type "ATI", followed by the return key. That should show you your current network connection, including your IP address. So, now that we're connected to the Wi-Fi, let's head to that BBS! ATDT is the common command we'll use for BBSes, that starts a streaming connection over telnet, an ancient predecessor of the mighty SSH. The command we'll want is `ATDT, then quote, then the hostname, then colon, then the port, then an end quote`.

I'll try one of my favorites- Particles! You can learn more about this classic BBS on their website, particles.org. I type in the command, and... oops. They're busy. That's a thing with BBSes- sometimes they'll be busy.

It was a simpler time, some might say a more civilized age. Particles in particular I believe is running on an actual Commodore computer- the classic Commodore 128 according to their website. Anyway, most BBSes in the current era are here for nostalgia's sake, run by enthusiasts out of their homes. Don't expect six nines of uptime, and be patient. When we finally get connected, we can walk through the prompts. This BBS in particular asks about Commodore color, which I can do, and 40/80 column mode.

The C64 is mostly going to be a 40 column machine- that's 40 columns of text per row. Other machines, like the Commodore 128 and some versions of the PET supported 80 columns. Now, you can register a new connection right here by following the prompts, but I've already got a connection, so I'll just get signed in! Once you're signed in, you can have all sorts of retro fun. Checking out the wall of visitors, even adding your own message! Many BBSes allow you to message individual users, or even download files for your retro machine. But the most fun I have is the BBS games. There are all sorts of silly and fun games to play in these old BBSes, and it definitely feels great to be playing them over a network connection on the classic computer the games were designed for.

One of my favorites is Hurkle, a sort of battleship-esque game where you have to find the Hurkle in a specific row and column within a specific and shrinking number of guesses. The BBS scene is fun, and is probably the best experience for getting a Commodore 64 online. I mean, it makes sense- this was what networking was like back in the good old 20th century, and the C64 is well suited to the task.

Sure, back then, we were using a telephone modem instead of a Wi-Fi modem, but still- this is a fantastic approximation of the experience I remember from my earliest days online. But what about taking it further? Enter Contiki. Contiki is an open source operating system for networking various embedded and IoT devices together.

Because it works on extremely small systems, it only makes sense that someone ported it to the Commodore 64. And an outfit called RETRO Innovations provides a neat cartridge that's compatible with this software, the 64nic+. I purchased one of these a few months ago, and have been having fun playing with it ever since. In fact, one of my first attempts at 3d printing was this spring, printing the case for this device, which was certainly a learning experience, and an exersize in humility and persistence.

Anyway, let's get started. We can load a list of files on the disk with `LOAD"$", 8`. Once it loads the list, we can list it out with the LIST command. Wow.

There was a lot there on this disk. Let's list it again, and hit "RUN STOP" early on so that we can see what's near the top of the list. Now, we can see CONTIKI listed- that's the one we'll want in a minute.

But first, we have some cleanup work to do. As of the making of this video, there's a few bugs with this setup out of the box. One of these bugs is that the netconf program is misnamed- it has 5 spaces at the front of the file name which renders it useless within Contiki. Luckily, we can change it with this specific esoteric command, which I'll link in the video description.

...And you thought Linux terminal commands were overly complex. We run our mystery command, and the name of the file changes. Now, we can list it out again, and all looks well. The next thing we'll need to do is to run SETMAC. Apparently the 64nic+ starts with no MAC address, which makes it challenging to connect to a modern network.

SETMAC allows you to set a MAC for the device. This one is pretty straight forward, just `LOAD"SETMAC",8` and then RUN. With SETMAC having set a MAC address for the 64nic+, it's time to finally load Contiki! We can do that with `LOAD"CONTIKI",8`. After a while, it loads the program, and we can use the RUN command to get started with it. Once it loads, we're greeted with a pretty looking desktop interface.

Of course, you'd need a mouse and the appropriate driver setup to get mouse movements working, so I'm going to skip that for now. F1 loads the menu, and from here we can enter the configuration. If you've ever set up a static IP address on a computer before, this should look pretty familiar. Let me know if you want me to do a video on it! F5 and F7 navigate up and down. When you get to the field you want to change, press Return. Set up your network in the way that works for your individual network, and press "Return" on "Save and Close".

Now, let's fire up a browser! Pressing F5 and F7 will let you go up and down the various items you see on the screen. In my case, I'm going to press F7 to highlight the directory, and then press Return. Once you're in the directory, we can press F7 to review all of the fun stuff we can do here. There are a ton of options, more than I can tackle in one video. The one I care about is "Web Browser".

Once the browser opens up, we can try navigating to a website! Now, any site beginning with "https" is just not going to load- the encryption involved is far too complex for the puny Commodore 64 to handle on its own. For that, you'd need to offload rendering to something more modern, like an old PC or a Raspberry Pi. But websites designed for retro computers should work OK, and my favorite one of those is "Frogfind", from the fantabulous YouTuber, Action Retro.

Go check out his stuff! Frogfind works pretty well! Of course, it auto-scrolls through the content, and on 40 columns, it's going to load possibly too fast to be readible. But it sure is fun! We can also check out his other project, 68k news, which shows news articles in a similar, low tech way. From what I can tell, this uses Mozilla's reader mode to render the contents of a modern website in an extremely simple HTML, perfect for legacy browsers. Anyway, Sean from Action Retro really deserves a ton of credit for gifting these awesome websites to the retro community. Credit should also be given to the Contiki project, and the developers of the CCGMS terminal program over the years. These are a ton of fun, and I'll put links in the video description of where you can find out more about these awesome projects.

Have you gotten an old 8-bit machine online recently? Had fun wandering the BBSes? Let me know what you're using- I'd love to hear more. Aside from the nostalgia factor, working with old machines like the Commodore 64 can really give you an appreciation for where we come from in our modern technology stack. After all, many of the folks who build our modern tech got started on classic machines just like this one. If you want to get a feel for the classic Commodore 64 experience, one project I can't recommend enough is VICE.

It's a great Commodore 64 emulator and lets you play games and test a lot of software. And if you'd like to see more videos about Commodore's legacy in the computer world, make sure to let me know. And now, for a new segment I'd like to call "Ask Veronica", where I answer questions from my supporters over on Patreon. Today's question is: What's your favorite 1980s retro system and why? I think my favorite 1980s retro system, if we're talking game systems that were just "game systems" is probably the NES or the Nintendo Entertainment System.

I spent a ton of time on that as a kid. But, if we're talking about computer systems, I think it's hard to beat the Amiga 500. It just blows away the competition of it's time and it's just so fun. It also gave birth to tracker music, which as far as I'm concerned, as a musician, is one of the most significant developments in music history.

If you've got a question you'd like me to answer on the air, go join the Patreon! There's a link in the video description- and tiers start at just a buck a month. And thank you so much for supporting my content- it means a lot to me.

2022-09-03

Show video