NEWS, EDITORIALS, REFERENCE

Subscribe to C64OS.com with your favorite RSS Reader
December 20, 2022#118 Software

C64 OS v1.0 release

Post Archive Icon

To all C64 fans and most especially to the people who had gotten used to reading my blog posts and getting news and updates on my progress, it is an exciting time.

C64 OS version 1.0 has been released and is available for order.

Although it seemed quiet, on the blog, here at C64os.com for 'lo these many months with only a brief update back in May on what's going on, I've had the petal to the metal. For those who follow me on Twitter I was still giving updates there about things that were brewing. And then in June, exactly one year after the June 2021 presentation that I gave for Commodore Users Europe, I had the privilege of giving another demo.

The 2021 demo video has, as of this writing, had 32,000 views and the more recent 2022 demo video has had 6,700 views. By some margin, the C64 OS demos have been the most popular videos on the Commodore User's Europe channel so far. Some of those views were helped by C64 OS getting featured on Hacker News and Hackaday. It is super exciting when this happens because I get to see neat little blips like this in my analytics.

A blip in the analytics.
A blip in the analytics when featured on Hacker News, or elsewhere.

The fun doesn't last forever and levels soon return to normal, usually the new normal becomes a bit higher, but it's neat to see. The only problem is that throughout this year, it was a shame whenever anyone or anything directed to my site, knowing that I was hard at work on a big update to the site that I hadn't yet revealed.

I was very pleased to be able to finally reveal the site updates I'd been working on offline. Many changes have been made to the site, most in preparation for the C64 OS release. And finally they both got unveiled together.

It's time to get back on the horse of regular blogging, and that starts now!

 

The year 2022 in summary

I spent a good chunk of the beginning of this year getting the last few major blocks of C64 functionality working. In the early part of the year it was a bunch of Utilities, such as:

  • Date
  • Mouse
  • Places

These started to flesh out functionality that is useful and nice to have, they make it possible to stay in the systsem, but there are other ways to do what they do. For example, Mouse is used to set all the Mouse settings, naturally. The Mouse settings, like everything else, are in a text-based settings file in //os/setttings/.

Previously I'd just modified that settings file using a text editor (like NovaText) run from the READY prompt. Or, alternatively you can use a few BASIC commands to produce a text file. Like this:

open2,8,2,"@//os/settings/:somefile.t,s,w"
print#2,"firstline"
print#2,"secondline"
print#2,"thirdline"
close2

That sort of thing does the trick to overwrite and create a new settings file. But obviously it's very nerdy! You have to know about the open, print# and close BASIC commands. You have to know about C64 file system conventions, like @-replace, CMD-style directory paths, and the SEQ and Write flags. Plus, you have to know C64 OS specific things, like which file it is, where, and in what format the data has to be. Having a Utility that does this for you with a nice UI is a huge win in user friendliness.

Mouse Utility.
Mouse Utility, used for configuring mouse settings.

Similarly with the Places utility, it lets you customize Go-menu places in File Manager. You can do that from BASIC by writing to various settings files, but it's just much nicer to have it built-in.

  • Time
  • Opener

I did these Utilities earlier in the year too. They're a bit more than adjusting settings. Time indeed lets you adjust settings related to the menu bar clock and time, but it also uses the current RTC driver to write the new date and time out to the hardware. You typically need a different program for setting each different kind of RTC. This pulls those different means of setting your RTC into a single consistent UI that writes to any RTC hardware via different drivers. This is a testament to the usefulness of drivers. One Utility with a single UI that is oblivious to the RTC hardware, can be used to set any supported RTC by using the RTC driver's standardized programmatic interface.

And the Opener Utility is the piece that enables File Manager to intelligently open data files and documents in appropriate Applications. When you select to open a file, File Manager opens the Opener Utility first. Then the Opener looks at the file, refers to assign files, and forwards the file to the assigned Application. It also lets you manage datatype-to-Application assignments.

Opener Utility.
Opener Utility, used for assigning a file type to an Application or Utility.

Beta 1.0b

The above stuff and all the supporting under-the-hood changes, like new libraries, new Toolkit classes and updated drivers, was released in March as beta 0.8. I wrote in the previous webblog post, Updates on C64 OS, Beta 0.8 and 0.9, that I would be adding a bunch of new things to a beta 0.9.

In the end, I never released a beta 0.9, instead I released it as beta 1.0. I put everything into beta 1.0 that was going to make it into the final 1.0.

That primarily consisted of the Open and Save Utilities. Open and Save are like miniature stripped-down versions of the C64 OS File Manager, crammed into Utilities that can be opened concurrently with any Application.

Open and Save Utilities

From the perspective of a modern operating system, these look fairly basic; They have mostly what you'd expect, but maybe they're missing a few things you'd expect too. From the perspective of the C64, though, these are totally unprecedented. Let me wade through some weeds for just a moment and give you a list of points to explain how these are really special on a C64. Then we'll come back to what else made it into beta 1.0.

Open Utility. Save Utility.

These have a dynamic Toolkit-based UI. What does dynamic mean? It means the UI elements are flexible. Just like in File Manager, the splitter that divides the left sidebar from the list of files on the right can be dragged to change how much space is devoted to each side. The list of devices can be folded up to give more vertical space for the list of recents or favorites. The list of recents and favorites has a proportional scroll bar. The file list is in a table view, its columns can be resized, you can sort by CBM file type, filename or file size, ascending or descending by clicking the column headers. The filename sorting uses natural sorting so names with numeric stretches sort according to the value of the whole number not by the more simplistic single-character at a time. And the table can scroll both vertically and horizontally with proproptional scroll bars.

The left sidebar is not just similar to the sidebar from File Manager, it is identical to the File Manager's sidebar. Both use the same TKPlaces Toolkit class, which only had to be implemented once. The upper list of devices is derived from C64 OS's global detected devices table which maps supported device types to the device address where they are found. The list below the devices has a clickable header to toggle between the list of Favorites and the list of Recents. Favorites are global to the OS. You can configure favorite places for this list from File Manager, and they are available in the sidebar of the Open and Save Utilities in every other Application. Recents are managed on an Application-by-Application basis. Different Apps maintain different recently opened files. All of this is handled automatically, not only by the Open/Save Utilities, but by the TKPlaces class that they embed. Opening or saving a file using one of these Utilities automatically updates the list of recents to put that file at the top of the list.

Partitions and directories can be navigated across all the modern devices supported by C64 OS. You can change directories by double clicking with the mouse, but the file list also has most of the same keyboard shortcuts available in File Manager. Cursor keys used in combination with Commodore Key can be used to move the selection and open directories. COMMODORE+P and COMMODORE+R can be used to navigate up the directory tree. And the path bar is available above the file list to help visualize where you are and help you quickly navigate up to any parent directory in a single step.

The Open Utility can be put in two modes by the Application: Open and Select. In Open mode the button at the bottom says "Open", and when you click it, or double click a file, the file reference is sent to the Application in a message, and the Open Utility closes automatically. However, opening and closing the Open Utility takes a bit of time, and sometimes an Application wants the user to be able to select multiple files one after the next. By putting the Open Utility in "Select" mode, the button changes to say "Select", and when you click it or double click a file, the File Reference is sent to the App in a message, but the Utility remains open so you can select another file, and another and another, until you're finished. This saves a lot of time not having to wait for the Utility to close and open between each file selection.

Each time the Open Utility selects a file it calls a validation callback that the Application can optionally provide. This allows the Application to analyze the file in any way it wants: check the CBM file type, check for an extension or other pattern in the name, check the file's size, check what device, partition or directory the file is found in, and use any of those criteria to accept or reject that file for open or select. This means that as you cursor through a list of files, the Open/Select button can become enabled or disabled on each file in response to whether the Application allows it to be opened.

In the Save Utility you get a TKInput field for inputing the filename. The Application can also provide a validation callback for this field. Thus, the Application can limit the number of characters this file may have, or require that you add an extension, or prevent you from using certain unacceptable characters in the name.

Clicking an existing file takes that file's name and pre-populates it in the input field, putting each character through the validation callback first. This allows you to easily select an existing file to overwrite. Speaking of overwrite, if you free-type in the filename, you certainly don't want to accidentally overwrite an existing file. The Save Utility includes an "Allow Overwrite" checkbox. The state of this checkbox is managed by the Application, allowing different Applications to adjust its default state. This checkbox maps directly to the CBM DOS @-replace command.



I don't know about you, but in my opinion, that is a hoard of functionality. And any C64 OS Application that wants to open or save a file can get all of this virtually for free. It just has to open the Utility, and provide it a relatively simple File Open or File Save job.



Installer Utility and C64 Archiver

For the 1.0 beta release, and eventually for the 1.0 final releaase, I put together one last major component. It is an Application and a Utility pair that work together to allow C64 OS updates to be created and installed, giving C64 OS v1.0 the ability to be updated to 1.01. And that in turn can include updates to the update system, allowing for an unlimited degree of boot strapping into newer and better functionality.

Promo graphic for C64 Archiver Application and Installer Utility.

Although these are part of C64 OS and they are included in version 1.0, I wanted to begin immediately to treat C64 OS as an Application platform. "C64 OS" is not some fixed bundle of functionality like a game or other C64 program, it is a platform upon which new Applications can be developed, distributed, installed and run.

To this end, the C64 OS User's Guide does not include explanations about how to use C64 Archiver or the Installer Utility. Instead, these are covered in a completely separate guide. This guide is found under the Software heading in the side bar of the C64 OS subsite.

Links to the software updates page can also be found in the side bar of the welcome page under "Find your way around" and also in the new footer of the site making common links available at the bottom of every page.

The C64 OS subsite highlighting the Software section in the sidebar.

The software section of the C64 OS subsite begins with a link to the guide that explains C64 Archiver and the Installer, and below that is a link to the software updates page where free updates to C64 OS (and also new software altogether) are available for download.

C64 Archiver and Installer (Separate user's guide.)

The C64 Archiver Application has been around since all the way back in beta 0.2, released in April of 2020! For a long time though it had almost no user interface: A single cycle button to choose the destination device and a start button. It was hardcoded to create a Restore-type CAR (C64 Archive) file. This allowed me to bundle up new beta restore.car files which I could release to my beta testers.

For beta 1.0, I completely rewrote C64 Archiver. I also updated the CAR file format from version 1 to version 2, which includes some new features in the file header such as a 30 character note.

The new C64 Archiver has an interface built on Toolkit, and even includes a custom view class for showing the file list as it's recursively adding files to the archive. The new Archiver has a bunch of neat features like the ability to choose which CBM file types to include and to customize the list of filename extensions to exclude. The ability to set the archive type: General, Install or Restore. You can customize the note for the archive, and—Hey, the Open and Save Utilities are available now!—you can use Open and Save to get full access to the file system for choosing what to archive and where to save the output archive file.

The Installer is a C64 OS Utility. Version 1.0 ships with an assign that connects files with the .car extension to open in the Installer.

Extracting a general archive with Installer.

The Installer is simple to use. You double click a .car file in File Manager and the Installer Utility opens. It displays the metadata of the CAR file in its UI. The filename, the archive type and version number, the date the archive was created and its note. Installer cannot be used to extract a restore type archive, these are a full C64 OS installation used with the c64restore and other installation tools explained in the C64 OS User's Guide and in the C64 OS Getting Started Guide.

Installer can handle extracting a general archive. The button says "Extract", and when you click it the archive is extracted to the same place as the CAR file. If there is more than one item in the archive they always get contained in a new subdirectory.

But the real power comes from the install archives. For these the button says "Install", and they have the ability to add items to various subdirectories of the system directory. An install archive can update a library, or add a new driver, or put a new Application bundle in the applications subdirectory, or any combination of these.



Several other things were updated, polish added here and there, an Image Viewer Application was added, new backdrops for the desktop were created, etc.

With all of this in place and beta tested to stomp the most glaring bugs and make sure it would work, C64 OS version 1.0 was finally ready to be released.


Founding a Corporation

Putting together this release required a lot of coordination. It took a lot of work too, but even if I only sold enough to make back my expenses, I would have been happy. I wanted to offer something to the C64 community and I wanted to contribute to what the C64 can do.

Interestingly enough, my wife was actually worried that I might make money from selling C64 OS. Taxation seems like a strange system that disincentivizes work and productivity, but the situation is that we both have full-time jobs, and we have a predictable family income which comes along with predictable expenses, predictable income tax rate, certain expected child benefits and after school care reimbursements, etc. The possibility of unanticipated and unpredictable income, leading to unpredictable tax implications, plus all the initial expenses and uncertainty, made my wife more stressed than it made me. Happy wife, happy life, as the saying goes.

The best solution to this problem was to found a corporation. So that's what I did. I founded OpCoders Inc.

OpCoders Logo - Horizontal.

[Disclaimer: I'm not giving advice here, this is just my personal experience with the matter.]

There are basically three kinds of businesses in Canada, which can operate on three levels. The kinds are, Sole Proprietorship, Partnership, or limited liability Corporation. The three levels are provincial, national and international. Canada has 10 geographically quite different provinces, though only 2 or 3 of them have large populations and economic bases. Any business may sell into any market, but the level is about where its offices are and where its emloyees conduct business operations. For me, this is easy; I'm the only person conducting operations and I live in just one province, Ontario.

A sole proprietorship is basically just registering yourself with the government that you're doing business. If you become an independent contractor and want to operate under a name and issue invoices and so on, sole proprietorship is where you're at. The income of the business operations are indistinguishable, legally, from the bank balance and income of the individual. This would not make my wife happy, unfortunately. Not to mention that some crazy person could always decide to sue me, personally, if my software accidentally deleted some of his important files, damaged his hardware, violated his privacy rights, or whatever.

Partnership is not much different than sole proprietorship, except that it formally joins two individuals together in joint ownership, operation and responsibility of the business. This is important when the business collapses, or accrues debts, or gets sold, etc.

Lastly, there are corporations. Corporations sound big and scary, but they are not. In Canada you can register a corporation for approximately $400 all included, and you can do everything on the government's website. The corporation must have a share structure, and at least two officer roles must be assigned. But, there is a basic template in which the share structure is very simple and one person, the founder, owns all the shares. Furthermore, the two officer roles, the executive and the treasurer, may also be assigned to the same person.

There is a fair bit of paperwork and a fair bit of waiting around for things to come through. It's more off-putting when you're not familiar with the process and don't know what to expect. But now that it's done, in hindsight, it was not at all a difficult process.

Choosing a name and creating a brand

One necessary step in founding a corporation is choosing a corporate name. Choosing a corporate name is like choosing a .com domain. The space is incredibly picked over. I lay around dreaming up names and had a list of probably 35 or 40 names, some that were far less desirable than others, just spitballing, and a few names that I really liked. You have to do your own market research to make sure that your name hasn't been taken by someone else, or, if the name is similar to that of another company that the two companies are not in the same market. Similar names in similar markets can lead to market and customer confusion, which can lead to one company suing the other. So that's a big no-go zone.

The problem is that virtually every name I could dream up was already taken. It totally blew my mind how many corporations, associations, and formal organizations exist out there in the world. Names I'd never heard of, that I thought were randomly dreamt up and that surely wouldn't be taken, were totally already taken. Some random online security company out of Idaho has this name, some network specialist company in Canberra, Australia has that name. It's crazy. I was starting to think I'd never stumble on a name that I both liked and that was available.

OpCoders was not my first pick, but when it was available and I started to roll it around in my head, it really grew on me. In my episode of the Hanselminutes podcast, Scott Hanselman thought it was a great name and was surprised it wasn't taken already. So I think I hit on a good one.

Once I had a name registered, I also needed a logo of some kind. My logo and brand design skills are quite mediocre, so I went to a friend who I worked with a three previous companies, Brad Marshall. He's a good graphic designer and web developer. He came up with a bunch of possible alternatives and we talked them over and I settled on the one shown above.

Things I like in a logo

There are a few things I like in a logo.

  • Simple recognizable shape
  • Roughly the same height and width
  • Ability to scale up or down in size
  • Recognizable in color or black and white
  • Ability to put horizontally or vertical adjacent to wordmark

I think this logo does the trick. Plus it looks a bit like an electrical circuit, with a minimum of detail.

OpCoders Logos in various forms.

The company's logo is different than the C64 OS logo. C64 OS is a product, produced by OpCoders Inc. The OpCoders logo appears in the footer of the site, on business cards, tastefully at the bottom of the back cover of the printed C64 OS User's Guide, etc. It's also the favicon of the site and the logo used for the YouTube channel. It adds a nice degree of professionalism, helping to turn a project into a product.


C64 OS released Summer 2022

In my June 2022 demo for Commodore User's Europe, on my Twitter account, and on the blog post before this one, I made official announcements that C64 OS was planned for release in "Summer 2022." I reiterated that plan in the aforementioned Hanselminutes podcast episode.

A few people asked for a more specific date, which I carefully (and wisely) declined to offer.

I know myself very well. I would be content to sit in my basement and keep on developing in perpetuity. There is always another Utility to write, another driver, the next feature, another bug to fix, a new Application, another round of infrastructure to design and build out, like networking, fast app switching, printing, and so on.

By announcing a date (even loosely like "Summer") that version 1.0 would ship by, I lit a fire under my ass. The pressure also brings a great deal of clarity. Do I want to add printing support? Of course! Do I want to add networking support? Well, yeah, that's half the point of the project in the first place! But do I realistically have time to delve into, implement, test, and make demo Applications for them? Hell no. That became super obvious once a hard stop could be seen on the calendar. It then became very easy to move ideas from the v1.0 list to the "Future Development" list.

Development of new features and functionality (temporarily) stopped around the end of June. After that I just worked on stability, internal bug testing and fixing, and polishing and tweaking things that already existed to make them be less bad. I also worked on improving the booter, the Setup Tool, and the Configure Tool, all of which are written in BASIC. And I added a PRG Alias Creator tool (which got a nice update in v1.01, by the way.) also written in BASIC.

I'd been working on the online User's Guide for a while already at that point. But I started to put a lot of serious time into writing that. The screenshots became easier to capture because the software had stablized. The list of Utilities that would be included and other things of that nature stabilized, which makes writing the User's Guide a lot easier.

I took hoards of screenshots. The Ultimate64 is such a blessing for this. I ran C64 OS on the Ultimate64 while VIC-streaming over ethernet to U64 View compiled for macOS. Then you just take screenshots on the Mac of the U64 View window and you get pixel-perfect digital screenshots. It's wonderful. This combination of an Ultimate64 and U64 View is also great giving online demos by video conference. For those Commodore User's Europe demos, I got to sit in front of my Ultimate64, using a real Commodore 64 keyboard and real 1351 mouse, but I'm watching the output in a window on the Mac that's being shared over Zoom. Really great.

1.0beta released in August

After doing my own internal testing and fixing, I also had to create a "gold master" layout of default settings, desktop arrangements, and so on. I spent a bit of time creating around 30 or so new desktop backdrops, inspired by 1-bit artwork floating around the web. Then I cleaned up all my test and demo crap that accumulates by actually using the system. I created some default desktops and laid out aliases on those desktops, with pleasant colors and stock arrangements. I cleared out all the custom settings, and removed favorites and recents from everything, created a bunch of standard assigns between file types and Applications or Utilties that should open them, and finally I packaged it all up as a 1.0 beta.

Originally I was thinking there would be one final beta, 0.9. But, that number didn't make sense. I was going to release the version called 1.0, therefore the final beta should be called 1.0 beta. Thus, there was no 0.9 beta. The final build ended up having an initial screen that looked like this:

First boot up, Welcome screen.
First boot up, Welcome screen.

Some bugs and issues were found and addressed.

Waiting for stock, Retro Recipe's review, and the Queeen of England.

After mostly finishing the online User's Guide, I composed and laid out the printed User's Guide primarily be deciding what had to be cut from the online User's Guide. The printed User's Guide is 5.5" by 8.5", saddle stiched, full color, with a stiffer glossy cover. It's 43 pages of content, if you include the printing on the inside covers.

The 43 pages is not a limitation of cost or weight but is a limit of saddle stitch. The papers are folded in half and stapled down the spine. There is also the issue of the middle pages jutting out further than the outer pages. These get trimmed off by the machine so all the pages are even when the book is closed. If you go beyond 44 pages (with the cover) that's 12 sheets of paper, 4 "pages" per sheet once folded, it starts to become impossible to fold them closed. If there is one problem with the C64 OS v1.0 User's Guide, it is that it has a tendency to want to pop open. I hope this will simply go away when the manual gets put on a shelf between other manuals. It is a North American standard size. It's the identical size as the manuals from CMD for the SuperCPU, JiffyDOS, 1750XL REU, and Turbo232, as well as the Novaterm manual, the SuperGraphix Jr., and various others.

Way back, like, way way back in 2017 or something, when this whole thing was just a fun fantasy, I envisioned distribution on SD Card, with the SD Card mounted to the inside cover of the User's Guide. I just always thought that was really cool.

Inside cover of the User's Guide, mounted C64 OS System Card.
Inside cover of the User's Guide, mounted C64 OS System Card.

When the User's Guide was ready, I sent it off the print. The SD Cards (the first stock run) had already arrived, as had the SD Card labels, the self-sealing bags, sticky dots, business cards and promo stickers. I was just waiting on the User's Guides to arrive. While waiting for those I put together some scripts to automate the goldmastering of the SD Cards. Then I started goldmastering them with final build, and labeling them. Two capacities, 64MB and 16MB, in a roughly 80%/20% ratio.

Christian Simpson aka Perifractic, the creator of Retro Recipes, wanted to be sent the real package for the review. This meant I had to wait for the User's Guides to arrive before I could ship the first one out to him. Then, I had to wait for the shipment to be received by him, which took just under 2 weeks. Then, he still needed time to actually work through the software and produce the video. We were finally almost ready to do the release. Peri was estimating that we should be able to get everything done and ready for release on the 12th of September.

But then, Queen Elizabeth II, the longest reigning British monarch (and the longest reigning female monarch in the history of the world) passed away on the 8th of September. To the great sadness of the not only the British nation, but the commonwealth nations (such as my native Canada) and to many others around the world who honored and respected her.

The Queen, greenscreened outfit meme.
The green-screened Queen meme.

I hope that she would see the humor and good natured fun of these memes. Legend has it she had a pretty great sense of humor.

Although Peri now resides in California, he is British, and I agreed with him that it was inappropriate to release a lighthearted and fun C64 OS review video with quirky jokes and good-times feelings, in the week of mourning leading up to the Queen's funeral. It was just not the right time. So I watched a pre-release of the video, gave some comments, and a few minor revisions were made. But I held the site updates release, and he held the video until after her funeral. The funeral was on Sunday morning, the 19th of September.

I quietly published the updates (the many many updates I'd been holding onto and working on offline) the night of 19th of September (or very early morning on the 20th in the UK.)

Peri released the review video the day of the 20th of September, and I made announcements on Twitter that C64 OS was available. I made a lot of sales on the initial release, and within a couple of weeks I'd sold out of my first stock run. This took me a bit by surprise so I ordered a 2nd stock run. I then proceeded to sell out of the second stock run, and so made a third stock run.

I brought stock with me for sale at World of Commodore 2022 the first weekend of December. I've since sold out of Starter Bundle stock for the 3rd stock run, but as of this writing am still in stock for the Standard Bundles.

Updates and future stock versions

As mentioned earlier, I intentially completed the C64 Archiver Application and the Installer Utility for the v1.0 release. Together, these allow me to package up installation archives in .CAR format and distribute them on c64os.com. C64 OS users can download the update files using a PC/Mac, put them on the System Card, and then from within C64 OS open the .CAR file. These are assigned to open in the Installer Utility by default. Then you just click the Install button and the archive is extracted and overlays the system directory adding new files and updating old ones.

Version 1.01 was released on November 20th, 2022. New stock that I put together following the release of v1.01 includes the "1.01.update.car" file on the System Card. It's not pre-installed but it's ready to be installed with a few clicks.

Version 1.02 is currently being worked on and should be released in the next month or so.

I also created an errata sheet for small typos and clarifications for confusing things found in the printed C64 OS v1.0 User's Guide. At a certain point, I started to include the errata sheet as a loose-leaf insert into the back cover of the User's Guide. The errata sheet can be found and downloaded as a PDF from the bottom of the first chapter, following the table of contents.

Future stock runs

I will continue to order more stock runs as the existing stock runs out. My plan is to have physical copies of C64 OS perpetually available.

However, at some point, I will likely stop selling C64 OS v1.0 and replace it with v1.X. This will include an updated version of the User's Guide (with errata issues corrected) and some minor changes to mention new features. There is a FAQ at the back of the User's Guide which will require some updates as time passes. And the System Card will eventually include all the updates that have been put out up to that point.

The version number is printed on the label sticker of the System Card and on the front cover of the User's Guide. These will of course be updated to bear the new version number.

Sales stats

I'm not releasing hard sales figures for C64 OS. But I will say that I am generally very pleased with the uptake. I genuinely had no idea how much interest there would be in a new OS for the C64. And I'm very excited by how many sales I've made so far, and I continue to take new orders every day.

I am also aware that the sales made so far have been to early adopters. I tried to make the included Applications and Utilities compelling enough that there was something for people to try out and sink their teeth into, and to get some useful functionality out of. But I am also aware that for some people, what is available so far isn't quite compelling enough yet to warrant a purchase. But I am just getting started with what C64 OS will enable a C64 to be able to do. I believe that as new Applications, new Utilities, a developer community, and new infrastructural technologies get added to C64 OS, that it will become an even more compelling product. So I have no concerns for the future of sales. And I can't wait to bring new features to C64 OS and new capabilities to our favorite 8-bit computer.

I wanted to share this breakdown of sales by country. This only includes the sales from the initial stock run. I haven't taken the time to integrate sales data from the second and third stock runs yet. However, this is kind of neat to see. The United States is an economic power house (it also has a larger population). Even though many people (Brits and Europeans) tend to think that the C64 is strongest on their side of the ocean, it does not surprise me a great deal to see this kind of breakdown.

Even Canada is punching above its weight on sales per capita. We have less than half the population of Germany and just over half the population of the UK, yet made nearly 90% of the sales to the UK or to Germany. The C64 is strong in Canada! 🇨🇦

C64 OS sales breakdown by country, initial stock run only.
C64 OS sales breakdown by country, initial stock run only.

Media References

Do you like what you see?

You've just read one of my high-quality, long-form, weblog posts, for free! First, thank you for your interest, it makes producing this content feel worthwhile. I love to hear your input and feedback in the forums below. And I do my best to answer every question.

I'm creating C64 OS and documenting my progress along the way, to give something to you and contribute to the Commodore community. Please consider purchasing one of the items I am currently offering or making a small donation, to help me continue to bring you updates, in-depth technical discussions and programming reference. Your generous support is greatly appreciated.

Greg Naçu — C64OS.com

Want to support my hard work? Here's how!