The Lost Ways of Programming: Commodore 64 BASIC

by Tomas Petricek, 5 November 2020
@tomaspetricek | tomas@tomasp.net

In this interactive article, we will build a breakout game using Commodore 64 BASIC in the browser. This is a fun programming hack, but it has quite profound theoretical background. Let me explain.

  1. I believe that how we interact with a programming environment when programming is more important than the specific programming language that we are using.
  2. This has never been widely studied and we have interesting things to learn from past systems, including Commodore 64 BASIC.
  3. We should look at the history and recreate past programming experiences in order to learn from them, following a method that a historian of science, Hasok Chang, calls complementary science.
  4. Reading about interactions is not enough. To get a sense of how the interaction worked, you need to experience it yourself, at least in a limited form. This is best done with an interactive article.

This is an interactive article that documents some of the interesting aspects of programming Commodore 64 BASIC. I'm not trying to create an accurate Commodore 64 simulator though. The point is to show a few things that we can learn from for future programming systems.

We will start with a Hello World example to see how things work and then we'll build a small Breakout game. This illustrates how easy it is to get started, how the environment supports learning and how the Commmodore 64 BASIC mode of interaction lets us gradually build a program in a way that is quite different from modern programming environments.

Reading this on a phone?   Keyboard and a large screen is better for reading this essay, but it works on phone too. The simulator opens whenever you click a button. Commodore 64 screen width is fixed, so it may read better in a landscape mode.