I am old enough to have had the Atari 2600 be my first video game console. I'm
crazy friggin' old. The Atari specifically and video games in general are why I
originally got into programming- as a kid, I wanted to write video games.
Now, as an adult, I haven't written that many games (I did contribute to libSDL
back in the 90s, I wrote educational games while leading Tux4Kids, and I briefly
ran an unsuccessful video game company from 2008-2010). But when I was a kid,
it's the main type of software I wrote.
I learned programming on my various 8-bit Atari computers as a kid. I taught
myself various forms of Basic (Turbo-BASIC XL was my jam), C, Pascal, Pilot, etc.
But the one language I never learned as a kid, because I was so intimidated by
it, was assembly. Specifically 6502 assembly, which is what was used in the
8-bit Atari computers, the Atari 2600, C64, and many other computers at the
time.
In the decades since my youth I've come to work in a ton of languages. I
recently (at the time of this writing) turned 50 and realized I've done stuff
way more complicated than 6502 assembly in my career. Surely, I can pick that
shit up now that I'm a friggin' experienced software engineer!
So this repo is basically a collection of the garbage 6502 assembly code I've
written (or will write) in my exploration of assembly language for the 6502.
Most of it (probably all of it) will be specifically for the Atari 2600. That's
really what I wanted to write software for as a kid, and it's what I'm most
interested in now.
In addition to recently starting to pick up 6502 assembly, I've also recently
started messing with PyInvoke. So I figured I'd kill
two birds with one stone in this repo by also handling automation with PyInvoke
instead of GNU make (even though that does seem a bit silly with an assembly
project).
Use inv --list for invoke targets.