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.
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, …
C64 · code
Can you do Advent of Code on 8-Bit Machines?
Attempting the annual Advent of Code challenge on vintage 8-bit computers. Completing about 60% of puzzles on Commodore hardware.
C64 · code
Quick Tower of Hanoi with Sound on the Commodore 64
Implementing Tower of Hanoi with SID sound on the Commodore 64, inspired by Numberphile’s Ayliean MacDonald video.
C64 · code
Dice frequency
Testing the Commodore 64’s random number generator by simulating dice rolls and comparing the frequency distribution to theoretical values.
Atari · code
A week of diving a little deeper into my Atari 800XL
A week exploring the Atari 800XL from a Commodore guy’s perspective. Comparing BASIC implementations and discovering the platform’s …
Coco · code
Two weeks with a Coco 2 in September
Two weeks with a Tandy Color Computer 2 for SepTandy. Exploring a machine I’ve owned for years but never really used.
Coco · code
Slot Game On Tandy TRS-80 Pocket Computer PC-4
A simple slot machine game written in BASIC for the Tandy TRS-80 PC-4 pocket computer during SepTandy.
C64 · code
Calculating Pi via the Gregory-Leibniz series in BASIC on the Tandy Color Computer 2
Calculating Pi on a Tandy Color Computer 2 with basic (non-Extended) BASIC. Working around the missing exponent function.
C64 · code
Just for fun, the 100 door problem on several different systems
Solving the classic 100 door problem with visual output on multiple vintage systems: VIC-20, C64, PET, Atari, and Color Maximite.
C64 · code
Running Commodore 64 BASIC Programs on a PET
How to load and run Commodore 64 BASIC programs on a PET. Working around the PET’s lack of program relocation.
code · hardware
The CERBERUS 2080
Building the CERBERUS 2080, an open-source computer with three processors: ATMega328p, W65C02, and Z80. A project to truly understand how computers …
C64 · code
Making and breaking Ciphers on the Commodore 64, er VIC-20 - Lagged Fibonacci Sequence and a little Monte Carlo while embracing contraints
Generating pseudo-random numbers with the Lagged Fibonacci Sequence on the VIC-20. Building reusable BASIC subroutines for the cipher toolbox.
C64 · Commodore
The retro pinout project
Documenting oscilloscope readings from working vintage computer chips to help diagnose faulty machines. A collaborative troubleshooting resource.
C64 · code
Quick Post: Modulus in BASIC 2 without a cartridge
How to perform modulo operations in Commodore BASIC 2 without a cartridge. A one-line solution for VIC-20 and C64.
C64 · code
Making and breaking Ciphers on the Commodore 64 Part 12 - Pontifex - Solitaire from Cryptonomicon
Implementing Pontifex/Solitaire—the playing card cipher from Cryptonomicon designed by Bruce Schneier—on the Commodore 64.
C64 · code
Making and breaking Ciphers on the Commodore 64 Part 11 - One time pads on a Commodore 64, probably a bad idea
Generating one-time pads on a Commodore 64. Probably a bad idea for real security, but it looks cool.
C64 · code
Making and breaking Ciphers on the Commodore 64 Part 10 - Finding hash collisions with a type in game from 1984
Understanding hash collisions by finding them in a simple checksum from a 1984 type-in game. Demonstrating why weak hashes fail.
C64 · code
Making and Breaking Ciphers with Commodore 64 Part 9 - Finding Smallish Primes
Finding prime numbers on the Commodore 64 for cryptographic purposes. A practical introduction to primes and primality testing.
C64 · code
Quick Post: Slow text on the Commodore
How to display text character by character with delays in 6502 assembly using Turbo Macro Pro. A quick tip for a 12-year-old learning assembly.
C64 · Commodore
The Commodore 64 N.O.O.C.U.L.A.R. futbal project
Building a portable Commodore 64 development rig using a Pelican case, external monitor, and either TheC64 or Ultimate 64 for on-the-go retro …
C64 · code
Making and breaking Ciphers on the Commodore 64 Part 8 - RC4
Implementing the RC4 stream cipher on the Commodore 64, exploring the algorithm that powered WEP, WPA, and many other encryption protocols.
retro
The Nostalgia Files: My all time favorite book
A nostalgic look at ‘How to Run a Railroad’ by Harvey Weiss, the childhood library book that sparked a lifelong passion for model trains …
C64 · Commodore
Repairing a Commodore 128 and DIY Chris's RAM tester review
Repairing a Commodore 128 with bad RAM using DIY Chris’s RAM tester to diagnose and replace faulty 4164 memory chips.
C64 · code
Making and breaking Ciphers on the Commodore 64 Part 7 - Pseudo Random with Linear Congruential Generators
Exploring pseudo-random number generation on the Commodore 64 using Linear Congruential Generators, a key building block for cryptographic …
C64 · code
Making and Breaking Ciphers with a Commodore 64 - Part 6: XOR is Magical - Data recovery
Understanding the XOR operation and its magical properties for data recovery in cryptography and disk storage on the Commodore 64.
C64 · code
Finding the Prodigal Easter Egg inside the Easter Egg on a Commodore 64
A deep dive video exploring hidden Easter eggs within an Easter egg on a 35-year-old album discovered using a Commodore 64.
C64 · code
Quick post: Determining length in Commodore Assembly
A quick tutorial on determining string length in 6510 assembly language, comparing the approach to Python’s simple len() function.
C64 · code
Benchmarking Retro Computers (mostly Commodore) with marginal methods
Benchmarking BASIC execution speed across various retro computers using jiffy timing, comparing Commodore machines and other vintage systems.
C64 · Commodore
Jiffies in Assembly
How to use the Commodore 64’s jiffy clock for benchmarking in both BASIC and assembly language, measuring time in 1/60th second increments.
C64 · Commodore
Making and Breaking Ciphers with a Commodore 64 - Part 5: Wargames
Recreating the WarGames movie launch code sequence on the Commodore 64, implementing brute-force hash table searching in assembly.
code · Commodore
Calculating Pi via the Gregory-Leibniz series in BASIC on the VIC-20
Calculating Pi using the Gregory-Leibniz series in BASIC on the VIC-20 for Pi Day, demonstrating the inefficient but educational iterative approach.
C64 · code
Quick Post: Commodore 64 Simple Addition Efficiency
Comparing two assembly language approaches to counting to 16 million on the Commodore 64, demonstrating significant performance differences.
C64 · Commodore
c0pperdragon verdict
Comparing various video output improvements for vintage Commodore computers including RF modulator replacement, chroma resistor mod, and the …
C64 · Commodore
Making and Breaking Ciphers with a Commodore 64 - Part 4: The PIN Program from Terminator 2
Recreating the Terminator 2 ATM PIN cracker scene on the Commodore 64, using SID chip random numbers and 6502 assembly.
C64 · Commodore
Making and Breaking Ciphers with a Commodore 64 - Part 3: The Caesar Cipher
Building a Caesar cipher encoder and brute-force decoder on the Commodore 64, demonstrating how to crack simple substitution ciphers programmatically.
C64 · code
Making and Breaking Ciphers with Python, er Commodore- Part 2: The Shift Cipher
Implementing the shift cipher on the Commodore 64, encoding messages by rotating alphabet positions similar to a physical code wheel.
C64 · Commodore
Replacing an RF Modulator on a Commodore 64C
Replacing the RF modulator on a PAL Commodore 64C with an S-Video bypass board to dramatically improve video output quality.
C64 · Commodore
Making and Breaking Ciphers with Python, er, a Commodore- Part 1: The Reverse Cipher
Starting a series on implementing ciphers in Commodore assembly language, beginning with a simple string reversal as the first building block.
C64 · Commodore
Simple, 'unbreakable' encryption with a pencil
Implementing a one-time pad cipher by hand using dice-generated random numbers, inspired by the encryption methods in Cryptonomicon.
C64 · Commodore
Getting started with Native Commodore 64 Assembly
A beginner’s guide to learning 6502 assembly programming on the Commodore 64, including recommended tools, resources, and development …
C64 · Commodore
Friday fun: Games I'm playing in Jan 2021
Reviewing Soul Force and Outrage, two modern Commodore 64 games from Protovision being played on a PAL 64C.
C64 · retro
Did you do that on real hardware?
A defense of using modern conveniences like LCD monitors, SD2IEC devices, and flash cartridges with vintage computers, explaining the practical …
C64 · Commodore
Why does there have to be a why?
Reflections on getting back into 8-bit computing after building Ben Eater’s breadboard 6502, and why learning vintage assembly language …