This course includes

  • 11 hours on-demand video

  • Downloadable resources and exercises

  • Full lifetime access

  • Access on mobile and desktop

  • 14 day money back guarantee

  • Secure checkout through PayPal

Watch Intro Video

Motivations & Learning Outcomes

Is this course for you?

If you want to learn how to code using Assembly language and understand the fundamental building blocks that make computers tick, then this course is definitely for you. We use the simple Atari 2600 architecture to investigate how to build games by poking bits and turning simple electrical signals into moving objects in your screen.
Buy $11.99
Is this course for you?

What you'll learn

Course overview and structure

This course is a gentle introduction to computer architecture and 6502 assembly language. You'll learn how the 6502/6507 processor communicates with the RAM memory, how the TIA chip controls the display and the sound, and how everything comes together to create simple games for the Atari platform. We'll start with the fundamentals of assembly language, and evolve to create a fully working game. You'll learn how to poke and set game objects in the screen, move them around, manage input events, sound, and collisions. Learning a small architecture like the one inside the Atari 2600 has proven to help students understand more complex machines and become better programmers. Join us, and discover the beauty that resides inside computer systems.
Buy $11.99
What you'll learn
  • 1000+ students

    Join a community of 1000+ students that have taken this course and rated it 5 stars

  • Direct instructor contact

    Have direct contact with your instructor at any given time during and after you complete your course

  • Money back guarantee

    We offer a 14 day money back guarantee for all our courses. No questions asked.


by Nicole Durrant


by Nicole Durrant

I would recommend this course if you are simply interested in learning Assembly or learning about the fundamentals of computing. This is easily the most accessible and beginner-friendly way to go about it.
by Bård Baadstø Ildgruben


by Bård Baadstø Ildgruben

I actually wanted to learn assembly for the Commodore 64, but since both C64 and Atari2600 use the 6502 processor, I thought I would give this course a try. And I'm glad that I did. Immediately I felt that my fear of assembly disappeared, and I'm ready and motivated to learn more.
by Matt Gallagher


by Matt Gallagher

This course was great. All concepts presented were very well explained. I wanted to know for some time about programming games, I believe this was the correct place to start. I only hope you makes more courses in the future. You can count me in.
by Joseph Girgis


by Joseph Girgis

Everything is explained so well and you can tell the instructor is very knowledgeable in this subject matter.
by Gunnar Karlsson


by Gunnar Karlsson

One of the best courses I've bought. Very to-the-point and concise. All concepts are explained in great detail. A great way to start learning about 6502 Assembly for the Atari 2600.
by Henry Llerena


by Henry Llerena

This is amazing! I love the course! The explanations are super great! and it's very educational for me! keep up the good work.

Course Content

  • 1
    About the Course
  • 3
    Hardware and Architecture
  • 4
    6502 Assembly Programming
    • The Assembler Flow
    • Assembly Language(s)?
    • Popular 6502 Assembly Instructions
    • List of 6502 Opcodes
    • Installation and Tools
    • Picking a Code Editor
    • 6502 Assembly Syntax Highlight Resources
    • Our First Assembly Code
    • Clean Memory (Source Code)
    • The DASM Assembler
    • DASM Assembler Download Link
    • The Stella Emulator
    • Stella Emulator Links
    • The Javatari Emulator
    • Javatari Emulator Links
    • Installing DASM under Windows
    • Our First Assembly Bug
    • Clean Memory Fixed (Source Code)
  • 5
    VCS Memory Map and the TIA
    • VCS Memory Map
    • Memory Map and Page Zero
    • Painting the CRT
  • 6
    Screen Objects
    • TIA Screen Objects
    • Playfield Graphics
    • Playfield Registers Helper
    • Playfield (Exercise)
    • Player Bitmap and Scoreboard
  • 7
    Vertical and Horizontal Positioning
    • Vertical Positioning
    • Horizontal Positioning
  • 8
    Controller Input
    • Joystick Input
  • 9
    Subroutines, Stack, and Pointers
    • Subroutines and Hardware Stack
    • Pointers
  • 10
    Putting it All Together
    • The "Bomber" Game
    • Adding Player Sprites
    • Horizontal Position and Input
    • Generating Random Values
    • Random Numbers Activity
    • Collision Check
    • Adding Scoreboard and Timer Digits
    • Sound Registers
    • Bomber (final version)
  • 11
    Conclusion and Next Steps
    • Next Steps
    • Moving Forward


  • Gustavo Pezzi

    Senior Lecturer

    Gustavo Pezzi

    Gustavo teaches computer science and mathematics at BPP University, London. He researches how teaching game programming can help enhance awareness and understanding of mathematics and physics. He is also a professional software engineer with more than 10 years of experience, with an industry background in 3D systems, games, web systems, databases, and data science. His academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.