I picked up assembly programming in 2015 after my son was born while on paternity leave. I needed something to keep my mind busy between changing diapers and feedings, or I was going to go insane.

I started off with the 6502 through reading old magazines from the 70s and 80s on archive.org (Compute! Magazine was rich with examples and how-to articles. RIP Jim Butterfield). I bought two functioning C64s from a local Ham Fest with the hope of diving into the real-deal head first, but with kids that’s much harder than it sounds. I had to shelve the machines and settle for VICE.

After about a year of mucking around trying different things I decided to start reading through old Intel and AMD architecture documents (8088/6). Around that time I discovered the “emu8086” emulator and purchased a license so I could watch my code execute and effect the system in real time. I knew about “insight” for DOS, and tried it too, but for the time being the emulator was a much better visual learning tool.

Shortly thereafter I became interested in operating systems and how they worked under the hood (i.e. DOS). So my next goal was to write a bootloader based on the Intel spec documents, and a tiny real-mode OS capable of reacting to user input. Nothing fancy, however this track turned out to be very beneficial.

I started programming in basic when I was little, copying DATA lines out of books so I could play games, and eventually graduated to C when I was 12-ish. Despite being able to program (fairly well) for years, I lacked the formal education of my peers at work. Assembly really jumpstarted potential in me that I didn’t even know existed, and actually pushed me to become a more thoughtful developer. I used to be afraid of gdb but now it’s my bread and butter.

If you want to take a look at the “OS” you can find it here:

https://git.einval.net/user/jhunk/minos.git/

I also wrote a program for my son at one point, though it’s incomplete:

https://git.einval.net/user/jhunk/learncolors.git/

einval.net itself was supposed to be a programming blog. Again though, with kids I just don’t have the time or energy anymore. Oh well. Perhaps I’ll get back into doing that in 10 years or so 😉