Commodore logo

Cenbe's Commodore 64 Pages

(last updated 2023-10-29)
Commodore logo

I enjoy using and programming the Commodore 64 (one of the early home computers, for those of you who weren't there), and have a good collection of hardware and software. I'm mainly interested in programming languages and operating systems (especially GEOS and GeckOS). (Scroll this page down for more content links; there's also a picture and description of my setup.) If you want, you can email me (cenbe at protonmail dot com). I also maintain the #c64friends IRC channel on Libera.

GitLab logo

I showed a 2.0 version of geoGopher at VCFMW 2021; this version uses a GEOS network driver I wrote for the 1541 Ultimate II+ and Ultimate 64 based on Scott Hutter (xlar54)'s code. Version 2.1 was released on 2021-09-27; follow the link for lots more info.


NEW 2023/10: For some time, I worked on a disk image library written in Java, but there has been a major change in my life: I am now a Python programmer! The main impetus behind this was my inability to keep my GEOS "font browser" web app running. Upgrading to the latest enterprise features in Java was so unpleasant that I started looking at other frameworks in other programming languages. The long-range plan is to rewrite that web app for Django, but the underlying library (d64py) had to be ported first. Since this is the same library used by a desktop GUI program I'd written, I ported that as well, and it's my first Python release. It's now known as the Disk Wrangler (video), and you can find it on PyPI. You can use the library separately if you want, e.g. to write utility programs like a specific type of search within your libary of disk images. Here's a link to the library's API documentation. You can find the source code in my repo on GitLab, where there's also a README showing how to get started, with code examples. The library is very much at home with GEOS disks, including reading header blocks and VLIR files. There's also support for exploring GEOS fonts (although the font preview routines are in the d64gfx library), and you can view geoWrite files as text for quickly evaluating the contents of a disk. There's a disk analyzer too, that will report crosslinks and other anomalies. More features are planned, starting with a few not yet ported from Java.


A big topic of interest these days is network cards for the Commodore 64. In the beginning, there were Ethernet cards that used the CS8900A chip ("RR-Net compatible"). The big problem with these cards is that they're just dumb hardware, and require a TCP/IP stack running on the Commodore 64, which is quite a stretch. Apart from the speed and memory issues, this is not the Commodore way of doing things! That sort of processing should be offloaded, as it is with the disk drives. But people still did amazing things with those cards, like Jonno Downes' BASIC extenders Kipper BASIC and BASIC on Bails, which let you write networked programs using BASIC commands. Follow the link to see disk images, API docs, and a copy of the presentation I gave at ECCC 2010.

Later, there were cards that used the WIZnet W5100 chip, which has an on-board network stack. There was also the Flyer, which implements networking as I/O commands sent to device #7 on the serial bus, but it never really caught on and is no longer made. A shame, because the design made it possible to write networked programs even in BASIC, just by using standard serial bus commands. I gave a presentation about this card at ECCC 2012, and discussed a reusable PROMAL module I wrote for the Flyer in my talk on that language at ECCC 2014. On the right (click to embiggen) are pictures of my machines with some of these older cards.

There are now wifi adapters available as well, based on the ESP8266 chip, although they generally seem to be nothing more than RS232-to-TCP/IP adapters rather than true network devices (there also seems to be little standardization of AT command extensions and even RS-232 implementations). Among them are Schema's Commodore Wi-Fi Modem, CBMSTUFF's WiModem, and Alwyz' Strikelink. You can also build your own Strikelink, or use Bo Zimmerman's design. A card using Bo's firmware is available here, along with some very complete documentation. More information on WiFi cards for the Commodore 64 can be found here.

But the best networking available for the Commodore 64 is in the Ultimate devices from Gideon Zweijtzer (1541 Ultimate II+, Ultimate 64). The networking in these devices is so easy to use and so reliable that "Ultimate" networking should be just as much a standard for Commodore users as JiffyDOS is. This is the standard, folks. Although the networking APIs are not well documented, like everything else Commodore, it's been reverse-engineered: Scott Hutter ("xlar54") made a library that you could use as is or adapt, depending on your language preferences (it's written in C). The docs/ section of that page includes instructions on how to do things at the register level. I wrote an Ultimate GEOS driver in 6502 assembler based on Scott's work for geoGopher; that page includes the driver's source code as a PDF.


back to home page


Here's what you can find here:

A picture and description of my Commodore 64 setup.

A page of downloads. You'll find software, manuals, and articles there, including a lot of information about copy protection. There is also lots of good information on the programming languages and operating systems page, including
  • A page about the GeckOS operating system with information on how to build and run it and an analysis of the source code.

  • A page about the GEOS operating system with downloads, documentation, programming tools, and some programming tips 'n' tricks.

  • A page about the Power C compiler, where you can find the compiler itself (with docs) along with some utilities for it.

  • A page about the PROMAL programming language, with complete disk images of the shell, compiler, libraries, and documentation.

A page about stereo SIDs, with history, hardware photos, and downloads.

A hardware page with photos and documentation for some of the more exotic items I own.

A CMD DOS primer with examples of the more detailed command-line usages, especially for the CMD HD. You can also find the CMD utility disks there.

  Pictures from Commodore shows I've been to:
(Note: I've pretty much stopped going to shows,
  because these days they're mostly x86ers and YouTubers.)

VCFMW/ECCC 2021 (Chicago, September 11-12, 2021)
World of Commodore 2019 (Toronto, December 7, 2019)
VCFMW/ECCC 2019 (Chicago, September 14-15, 2019)
VCFMW/ECCC 2018 (Chicago, September 15-16, 2018)
VCFMW/ECCC 2017 (Chicago, September 9-10, 2017)
VCFMW/ECCC 2016 (Chicago, September 10-11, 2016)
VCFMW/ECCC 2015 (Chicago, August 29-30, 2015)
World of Commodore 2014 (Toronto, December 6, 2014)
VCFMW/ECCC 2014 (Chicago, September 13-14, 2014)
VCFMW/ECCC 2013 (Chicago, September 28-29, 2013)
VCFMW/ECCC 2012 (Chicago, September 22-23, 2012)
VCFMW/ECCC 2011 (Chicago, September 24-25, 2011)
VCFMW/ECCC 2010 (Chicago, September 18, 2010)
C=4 Expo 2010 (Cincinnati, May 29-30, 2010)
Chicago Classic Computing (Chicago, April 24, 2010)
World of Commodore 2009 (Toronto, December 5, 2009)
ECCC 2009 (Chicago, September 26, 2009)
C=4 Expo 2009 (Cincinnati, May 23-24, 2009)
World of Commodore 2008 (Toronto, December 6, 2008)
ECCC 2008 (Chicago, September 27, 2008)
C=4 Expo 2008 (Cincinnati, June 28-29, 2008)
World of Commodore 2007 (Toronto, December 1, 2007)
ECCC 2007 (Chicago, September 29, 2007)
C=4 Expo 2007 (Cincinnati, May 5-6, 2007)
ECCC 2006 (Chicago, September 30, 2006)
CommVEx 2006 (Las Vegas, July 29-30, 2006)
C=4 Expo 2006 (Cincinnati, June 3-4, 2006)
World of Commodore 2005 (Toronto, December 3, 2005)
SWRAP Expo 2005 (Chicago, September 17, 2005)
SWRAP Expo 2004 (Chicago, September 4, 2004)