Beginning Assembly (Machine Language)
ASM has always been a weak-point of mine, and so I thought I would persue it more. Unfortunately, almost any tutorial was quite vague, and really wasn’t telling me much. They would tell me how syntax would work, and what you were doing on the machine level, but never what you were really doing, or trying to accomplish. Shortly after going through a bunch of these tutorials, I more or less gave up. After a few hours of working on a new project, ASM snuck it’s way in, and a lot of it started to make sense.
Just recently, I started to listen to old SID files from games I use to play on my Commodore as a kid. After listening to a few, I decided I wanted to learn how to code such music. Almost all of the composers for such music required a real Commodore (which I still need a new PSU for mine) and was out of stock. So I started from the bottom up, reading about Hubbard and Tel’s composing on C= platforms, and how they would use complete machine language to program their music. So after a few more hours of browsing, I had a good starting point, and instantly downloaded VICE, a C= emulator, and found an abandoned version of Turbo Assembler (TASM).
Some of you might be asking, “Why the hell would I want to learn this?”. Well, I guess you wouldn’t considering it doesn’t have any advantage in future ASM programming for a 32/64-bit architecture. The reason I’m pointing this out is because when working with an 8-bit processor, you have less to work with, and can get the feel of ASM without getting overwhelmed with info. First off, take a look at Issues 1-3 of C= Hacking to get a general how-to of 8052 ASM. This will give you the feel, and actually spawn ideas on future ASM programs. Once you have done that, and are comfortable, you’ll understand the Commodore inner workings, and shouldn’t have any problem moving to another architecture, with a different syntax, and different syscalls.