8032AV
In 2019, I had the privilege of working with Robert Henke on his 8032av project. 8032 is an audiovisual performance using 5 Commodore 8032's, which predate the famous Commodore 64 by 2 hardware generations. One computer acts as a sequencer, and controls the other 4. 3 of those play audio and 1 displays video. Robert sequences both sound and visuals live, and processes the audio using a rack of effects processors from the same time period as the 8032s. My role was to develop almost all of the sound routines (think synthesizer voices) with Robert, and to implement them in 6502 assembly for the original version. In addition, I moved us off of using a web based 6502 assembler and into using a command line based assembler that I modified to give us more flexibility in how we wrote our assembly code. If you're interested in reading more, Robert maintains an article about the current state of the performance.
A Different Paradigm
Since working on 8032av, I've come to realize that the 8032 and in general the home computing trend of the 1980's represented a much different computing paradigm than the one we have in today. The knowledge required to modify the machine or build homebrew peripherals, whilst not necessarily as easily available in the 80's as today, was much smaller that what is required to modify a modern computer. For example, sending data over the serial port simply requires sending bytes through a parallel cable with enough time between bytes for the 8032's interrupt routine to read the data. The entire protocol would be transparent to the person building the system. The computer didn't have a lot of processing power, and so implementing a lot of features that we take for granted today was unfeasible. There were no user accounts- the system simply starts up with no data in memory, and any programs you want to use have to be loaded from a disk (and any data you wanted to keep had to be saved to a disk). Many of the things that keep our operating systems running when our programs crash, hiding the physical system from the programmer as a result, could not be implemented on a home computer of the time.And yet, despite the limited system resources, the 8032 has the lowest latency between keypress to monitor update I've ever experienced- it responds faster than any computer I've ever had. While it would be unfair to say that older computers had more consideration put into their design than contemporary ones, the system architectures were simpler. This is a result of having fewer pieces of hardware in a given computer, and those pieces of hardware having simpler data communication schemes. There was also more intention put into how each piece of hardware operated within the context of the whole system.
Working with the 8032 was the first step that led me to focus on writing software where I focus on simplicity in design and low latency handling of user input.