Learn to Program in 6502 Assembly Language (1-3 months)

Task: Learn to Program in 6502 Assembly Language

Needed: Web browser

Time: 1-3 months

Introduction

Many of us grew up programming in BASIC on our Atari 8-bit computers. Assembly language (sometimes called machine language) was a bit more of a mystery for kids and difficult to learn due to the limited resource and teaching materials available at the time. I picked up assembly in bits and pieces at different times in my life and finally decided to take the plunge a few years ago so I could make an Atari 2600 game and expand my Atari 8-bit computer programming skills. Unfortunately, I can’t teach assembly programming effectively through Atari Projects. However, I can give some tips on resources that were helpful to me. At the end of the day this skill requires a good amount of reading, trial and error, and hard work. It took me six months to make a 2600 game in assembly. The first two months of that effort was learning the assembly I didn’t already know and learning the intricacies of the 2600. This skill has paid off and I can now easily add assembly to my Atari 8-bit programs.

Instructions

First, I recommend reading the book “6502 Assembly-Language Programming” by Christopher Lampton. I did a post on this recently. This is a nice introduction targeted at the beginner.

Second, I recommend reading several other 6502 programming books. In particular, I recommend the books written by Rodney Zaks. There is “Programming the 6502” and “6502 Applications“. Other 6502 programming books can be found on this nice web page.

Third, you could explore a number of 6502 tutorials and references available at http://6502.org. The Easy6502 tutorial even has a JavaScript assembler to compile and run programs to get your feet wet.

Programming the 6502 book by Rodney Zaks
Programming the 6502 book by Rodney Zaks

Comments

Programming in 6502 assembly definitely takes some work and some patience if you have never done it before. What I like about it is that you have direct access to the hardware including the CPU registers and memory. I find that low-level control of the silicon to be very rewarding. I am by no means an expert. However, I find programming in assembly to be tons of fun and well worth the effort.