code · retro
Biological Processing Units and a Commodore 64
The fruit fly has a brain structure that acts like a hash function. I built it in Python, matched the 2017 paper’s MNIST results against a …
code · How-To
Breaking Enigma with Index of Coincidence on a Commodore 64
The Bombe needs a crib. What if you don’t have one? Index of coincidence measures how much an output looks like real language vs random noise. …
code · How-To
The Wallis Product for Pi on the C64
John Wallis found an infinite product for pi in 1655. Multiply enough fractions together and pi falls out. We run it on the C64 in BASIC and assembly, …
code · How-To
Enigma Ring Settings on the Commodore 64
Ring settings multiply Enigma’s keyspace by 17,576. We add them to our C64 emulator, see why brute force alone can’t keep up, and set the …
code · How-To
Breaking Enigma on the Commodore 64
The Commodore 64 searches nearly six million Enigma M3 configurations to find the one that matches a known plaintext crib. First the concept, then …
code · How-To
Enigma Emulator on the Commodore 64
A working Enigma M3 emulator on the Commodore 64. First in BASIC for clarity, then in 6502 assembly for speed. Eight rotors with dual notches, …
code · Getting Started
10 PRINT on the Apple II
Bringing 10PRINT to the Apple II with Applesoft BASIC and Lo-Res graphics, exploring both text-mode and graphical approaches to this iconic one-liner.
code · Getting Started
Sorting Algorithms Visualized on the Commodore 64
Visualizing sorting algorithms in real-time on the Commodore 64 using PETSCII characters. Three classic algorithms rendered as animated bar charts in …
AI · programming
First Principles: Why You Must Learn Before You Prompt
Vibe coding with AI feels productive until it isn’t. Dorothy Vaughan’s team didn’t just operate the IBM—they understood the math …
history · programming
Dorothy Vaughan: Adapt or Become Obsolete
When IBM machines threatened to make her job obsolete, Dorothy Vaughan didn’t retreat—she learned FORTRAN and taught her entire team. Her story …
code · Getting Started
Three Maze Generators on the Commodore 64
Exploring three different maze generation algorithms on the Commodore 64: Depth-First Search, Randomized Prim’s, and the classic 1981 algorithm …
code · How-To
16-bit Unsigned AND on Commodore 64
Implementing 16-bit unsigned AND operations in Commodore BASIC using two’s complement to work around the signed integer limitation.
code · Getting Started
The Best Book Cover of All Time
Celebrating the gloriously absurd cover of ‘FORTH on the Atari’—possibly the greatest unintentionally funny book cover ever created.
code · Getting Started
10 PRINT for the KIM-1
Implementing 10PRINT on a KIM-1 clone (PAL-II) in both Microsoft BASIC and 6502 assembly, displaying the maze on the 7-segment LED display.
code · Getting Started
10PRINT and 100 Doors on the PicoCalc from Clockwork Pi
Running 10PRINT and 100 Doors on the Clockwork Pi PicoCalc, a retro-inspired Raspberry Pi Pico handheld running PicoMite BASIC.
code · Getting Started
PICO-8 100 Doors Problem
A visual exploration of the classic 100 Doors programming problem implemented in PICO-8, featuring animated circles that show the door-toggling …
code · Getting Started
10 Print on PICO-8
Continuing the exploration of 10PRINT, we look at how to implement the 10 Print algorithm on the Pico-8 platform.
code · Getting Started
Dragon Curves
We draw some dragon curves with Logo on the Commodore 64 inspired by Jurassic Park
code · Getting Started
10 PRINT in Rust vs C
A head-to-head performance comparison of the classic 10PRINT maze algorithm implemented in Rust and C, with benchmarks measuring millions of …
code · Getting Started
wAx the VIC-20
Exploring wAx, a native assembler for the VIC-20 that integrates with BASIC. Includes examples implementing 10PRINT and Fibonacci in assembly directly …
code · Getting Started
10 PRINT on the HP-42s
Implementing the classic 10PRINT maze algorithm on the HP-42s calculator using RPN programming. Works on SwissMicros DM42 and Free42 emulators too.
code · Commodore
The McNuggets Problem
Solving the classic McNuggets Problem in Commodore BASIC: what’s the largest number of nuggets you can’t buy with 6, 9, and 20 packs?
C64 · code
Back to the basics with BASIC (and Python): Binary Search
Why your algorithm choice matters: comparing linear search O(n) vs binary search O(log n) with implementations in Commodore BASIC and Python.
C64 · code
Machine Language: Count Faster on 6502
Optimizing a simple counting loop on the 6502, progressing from slow BASIC to increasingly faster assembly implementations. A practical guide to 6502 …