(Updated October 13, 2024) Table of Contents Programs The Assembler Breakdown Features Errors Programs Let’s take a 10,000-foot tour. Our IDE has a form of compiler called an assembler. That is because it assembles the mnemonics, addresses, names, and such for a given CPU and translates it to machine code. Whereas a compiler translates a … Read More “Chapter 3 – The Assembler” »
Author: William Jojo
(Updated July 16, 2024) Table of Contents Physical Details Registers Instructions Addressing Modes Physical Details The MOS 6502 was originally released as a 40-pin dual-inline package (DIP-40) in both plastic and ceramic. The pins connect to locations inside the packaging and onto the CPU die with tiny filaments. Each pin represents a signal in the … Read More “Chapter 2 – Basic CPU Architecture” »
(Updated August 3, 2024) Table of Contents What is and IDE? An Example What is an IDE? An Integrated Development Environment, or IDE, is typically a graphical user interface with an editor, compiler, debugger, and much more at your fingertips. During the 6502 era, the idea of having a full-featured development environment was unheard of. … Read More “Chapter 1 – The IDE” »
(Updated June 7, 2024) Table of Contents Starting Out With Old Tech The MOS 6502 References Starting Out With Old Tech The tech we’re talking about here is the MOS 6502. Why choose an old CPU such as this? Well, it’s a good place to begin since the CPU is so primitive that we can … Read More “Chapter 0 – Where to Begin?” »
(Updated November 20, 2024) Table of contents Overview BASIC History BASIC Statement Structure BASIC Language BASIC Constructs Afterward VICE Overview The BASIC (Beginner’s All-purpose Symbolic Instruction Code) language was created by John Kemeny and Thomas Kurtz at Dartmouth in 1964. It was a simple, unstructured language that was reasonably easy to learn. BASIC was prevalent … Read More “C64 BASIC (in about an hour)” »
(Updated July 26, 2024) Overview When building a simple text game, we want the process to be smooth and elegant. There should be few places to trip up the user or make the play awkward. In this write-up, we look at how we can craft the building blocks of a valuable and user-friendly game. User … Read More “Building a Guessing Game” »
(Updated November 19, 2024) Overview We often have data in a form that is not immediately useful. If we need to do mathematical calculations and all we have is a string, we must first take another step. Here, we explore some of the finer details of how this can be done by examining the algorithm … Read More “Converting Strings” »
Overview Sometimes, we have data in one form that needs to be put into another as code or storage in a database. Many editors, like Sublime Text, have Find/Replace tools for complex data transformations. IntelliJ has a similar facility within its editor (Edit/Find/Replace). This brief tutorial explains some regexes (regular expressions) used to achieve quick … Read More “Data Transformation with Regex” »
(Updated July 22, 2024) Overview The methods of programming CPUs/computers have had a vast history. This document is intended to provide a historical introduction to the complexity of how systems were programmed. The details contained here concern the 6502 and 6510 processors. The 6510 was used in the Commodore 64. This was chosen for its … Read More “Machine Code – Assembly Language” »
CISS-111 Group Project 2 Write a BASIC tokenizer for the Commodore 64 (C64). Read Crafting Interpreters, Chapter 4 sections 4.4 and later for a basic understanding of what you are building. Take as much code as you think you need from that model. You don’t need it all, nor do you need it necessarily as … Read More “Group Project 2 (of 2)” »