C64 · code
Blinkenlights
Driving LEDs from the VIC-20 and KIM-1 USR ports. Binary counting in the real world with vintage hardware.
C64 · code
40 years on, this is still the best maze algorithm
Exploring the elegant maze generator from Compute! magazine (December 1981). A line-by-line breakdown of how this classic BASIC algorithm works.
C64 · code
Validating Pilish
Writing code to validate Pilish text—prose where word lengths match the digits of Pi. Implementations in Julia and Commodore BASIC.
C64 · code
My mostly retro writing platform contenders in National Novel Writing Month for 2022 NaNoWriMo
Evaluating vintage computers for NaNoWriMo 2022: VIC-20, Plus/4, Commodore 64, and PET. Word processing on 8-bit machines with SpeedScript and other …
Commodore · code
Adding very large integers in 8 Bit BASIC
Adding integers with hundreds of digits using string manipulation in Commodore BASIC. When your numbers are too big for Wolfram Alpha.
code · Commodore
MOS paper tape format
Understanding the MOS paper tape format used by the KIM-1 and other 6502 systems. Breaking down the hex format line by line with checksum …
C64 · code
A little more speed from the 6502
Optimizing 6502 memory transfers beyond the general-purpose approach. Testing on a 1MHz KIM-1 clone with precise timing measurements.
C64 · code
How fast can a 6502 transfer memory
Testing real-world memory transfer speeds on 6502 machines. Inspired by Apple M2 marketing, let’s see what Commodore hardware can actually do.
code · Commodore
Almost primes with TinyBASIC on the KIM-1 clone: PAL-1
Finding k-almost-primes using TinyBASIC on a KIM-1 clone. A look at the copyleft origins of TinyBASIC and Bill Gates’ infamous open letter.
code · Commodore
VIC’s Revenge, the drop-in replacement for the VIC-20 VIC chip Part 1: Introduction, design goals, and FAQs
Starting a year-long project to reverse engineer and create a drop-in FPGA replacement for the VIC-20’s 6560/6561 video chip.
C64 · code
64 Bit Addition and Products on Commodore: The Wheat and Chessboard problem
Implementing 64-bit arithmetic in 6502 assembly to solve the wheat and chessboard problem. Handling numbers too large for standard calculators on …
Commodore · How-To
Vicky-20 S Video Mod Results
Before and after comparison of S-Video mod results on the Vicky-20 PAL replica board. Dramatic improvement over composite output.
C64 · code
Yet another version of the 100 door problem; this time, let's extend Commodore BASIC to add PRINT @, shall we?
Extending Commodore BASIC with a PRINT AT command using machine language, then using it to visualize the 100 door problem.
calculator · hardware
Simple exponents on an HP-16c
Writing a y^x exponent program for the HP-16C calculator, which curiously lacks scientific functions. Building a kit clone and programming in RPN.
code · Commodore
Fibonacci 1-10 on the KIM-1 (and clones)
Computing and displaying the first 10 Fibonacci numbers on a KIM-1’s hex display. Learning 6502 assembly the hard way with pencil and paper.
C64 · code
The terrible random number generation in the Commodore 64 (and 128)
Visualizing the poor randomness of RND() on the Commodore 64 and 128 compared to the PET and Plus/4. Clear patterns emerge when you plot the output.
Commodore · hardware
Getting green and amber screens from a MiniPET 40/80
Adding green and amber screen colors to the MiniPET 40/80 replica using a cheap monochrome VGA color adapter from Tindie.
C64 · code
Simple splitting the screen with two colors on the Commodore 64
A quick technique for splitting the Commodore 64 screen into two solid colors by manipulating VIC registers and screen memory.
code · How-To
A visual 100 Door Problem solution in Python
Recreating the visual 100 door problem from vintage 8-bit machines in Python using the Asciimatics library for ASCII screen positioning.
C64 · code
Permutations of 1 to 9 in Python, BASIC, and 6502 Assembly
Generating all 362,880 permutations of 1-9 the hard way: understanding algorithms instead of relying on library functions. Implementations in Python, …