ChibiAkumas’ Many Assembly Tutorials

You wanna know something? I think everyone should learn to program. I don’t mean using some, the word I usually use is cockamamie, “AI,” that will produce brittle, inefficient, unmaintainable code if it doesn’t mess it up, but actually code. I think most of the difficulty with coding is actually in the languages. Woe betide the person trying to learn to program in C++ from scratch these days. C is much better, but still obtuse. Python is better, but also not great for systems or performance work.

The solution? Why, learn to code in assembly of course!

Aaaaand 90% of readers just clicked away. Hah.

Image

But the funny thing is, for many languages, assembly is actually a little easier than them I’d say. When you’re working directly with the hardware, all the weird abstractions you have to learn fall away. It does mean you have to do everything, and I mean everything, yourself. But on the other hand, programming is largely the process of connecting building blocks together, tiny routines comprising larger ones. It takes longer to do it in assembly, and working with a lot of current-day hardware is trickier because you have to jump through more hoops to use it. But its difficulty, I think anyway, is a little overblown.

Have my farcical words somehow swayed you? Does it sound like something you might like to try? Would you at least like to see what you’d be in for? Then I have a website for you: ChibiAkuma’s Assembly Tutorials. They also have Youtube channel.

There’s a wealth of material to peruse, including videos walking you through coding a bunch of different architectures, including 6502, 8086, Z80, 6809, 68000, and even ARM, among others. Even if you have no interest in actually coding for these multifarious* chips, just knowing out they work may be very interesting to you, if not be actually useful someday.

Here, to get some idea of how understandable this will be to you, take a look at his series on assembly coding for the C64 (Youtube playlist, 13 videos, about 170 minutes in all), beginning here:

* That’s 17 points with no bonuses, but 67 if a bingo

ChibiAkuma’s Assembly Tutorials (chibiakumas.com)

The KIM-1 Programmer’s Guide to the MOS 6502

The KIM-1, 50 years old as of 2026, was the first 6502-based home computer, designed by the legendary Chuck Peddle and sold by MOS Technologies themselves. (Well, we’re not sure if the Apple I or the KIM-1 was first. Or maybe it was the JOLT? As I’ve said before, there’s always something you’ve never heard of before out there, waiting to make you look like a fool.)

Someone on Mastodon (I can’t find the post now) mentioned that the KIM-1 had excellent programming guides, as it rightfully must have had, considering a freshly-assembled KIM had to have been programmed in raw machine code, and coming from an era before the World Wide Web. I had a look and, lo, it did!

Have a look for yourself, from a copy hosted by Rich’s Classic Computer Pages (PDF). Explained in an early chapter is how to properly add together numbers of arbitrary sizes, something that I had to find out from random sources. I wish I had this book when I was programming on the Commodore 64; I did have the famous Programmer’s Reference Guide, but that’s just it. It’s a reference work, and very difficult to learn the principles of assembly coding through it directly. (That said, there are pages in the C64 PRG that will look very familiar to someone flipping through the KIM-1 Programmer’s Guide.)

Image
The cover of the Book itself

If you sat down and read this all the way through, and it’s quite readable for a programming manual, you’d be well placed to write code for, not just the KIM-1, but any 6502 computer. While for other machines you would need more information, like memory maps and hardware documentation, and you might like to have an assembler too, you’d still have a great foundation for whatever crazy programming adventure you were about to embark upon. I love it.