What you’ll learn
This course is a gentle introduction to the fundamentals of computer architecture and 6502 assembly language. We’ll learn how to program games for the Atari 2600 console and understand what makes digital machines tick. The minimal hardware of the Atari 2600 is a perfect sandbox for us to learn more about low-level programming.
At the end of the course, you’ll have a working knowledge of 6502 assembly language, a comprehensive understanding of the Atari 2600 hardware, and a complete homebrew game for the VCS that we’ll code together from scratch.
The tools you’ll need
We’ll use a simple code editor, an assembler called DASM, and a VCS emulator called Stella. All these tools are multi-platform, so you’ll be able to use either Windows, macOS, or Linux!
Is this course for you?
This is a self-contained course with no formal prerequisites. However, you will probably get the most out of it if you already know the basics of coding (if-else, loops, functions).
If you like retro game development and want to learn more about computer architecture and low-level programming, then this course is definitely for you!
About the instructor
Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of pikuma.com.
Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.
Course content
18 hours total length • 19 Chapters • Last updated January 2022
- Motivations & Learning Outcomes
- How to Take This Course
- Atari 2600 Hardware & Specs
- Game Cartridges
- Base 2 and Base 2
- Binary Representation
- Hexadecimal Representation
- Quiz: Binary and Hexadecimal
- The 6502 Processor
- Processor Status Flags
- Quiz: The 6502 Processor
- The Assembler
- Popular 6502 CPU Instructions
- List of 6502 OpCodes
- Installing the DASM Assembler
- Installing the Stella Emulator
- Picking a Code Editor
- Our First 6502 Assembly Code
- Our First 6502 Assembly Bug
- Addressing Modes
- Instruction Set
- Exercises: 6502 Programming
- Is the Atari 2600 a Computer?
- The VCS Memory Map
- Memory Map & Page Zero
- Changing the Background Color
- NTSC Frame Synchronization
- Painting the CRT in a Controlled Way
- Quiz: Painting the CRT
- Screen Objects