In this post I will shortly describe the development environment I will use on the journey through the Amiga Machine Code course.
It’s been years since I last used my Amiga 500 and all the bits and pieces are now stored away in boxes. Without the hardware and disks, it seemed like a virtually impossible quest to learn Amiga machine code.
However, it turns out that there are many Amiga enthusiasts out there, who have digitized tools, games and even books. It’s all out there on the internet! I also discovered the marvalous Ultimate Amiga Emulator (UAE) that can emulate all kinds of Amiga hardware configurations.
It’s an enourmous gift that these people have given us all, and reading their personal blogs almost makes the Amiga come to life again. I feel like a digital archeologist rediscovering ancient treasures.
I got the Amiga Machine Code course as a gift back in 1990. The course was not paid upfront, but paid as you progressed. To complete the whole course, the following was required.
- An assembler. They recommend the K-SEKA. Price 760 DKK
- Letter I-XII: Price 148 DKK pr. letter
- Disk I: 97 DKK
- Disk II: 97 DKK
All prices are from 1990 and in 2019 moneys that amounts to 4.836 DKK, so it was not cheap! Today, it will easily buy you a Sony Playstation 4 with accessories.
Amazingly, someone has gone through the trouble of creating a digital archive for the letters and disks. The letters are even translated to english. The original copyright owner has agreed to make it all available for free 👍
Regardless of emulator, you will need a Kickstart 1.3 ROM. Amiga Forever has this ROM file for a reasonable price.
The recommended assembler is the K-Seka, but I don’t know which version. I discovered that demo groups had tweaked and extended the Seka assembler to fit their needs, and eventually they became established as versions in their own right.
Boushh of The Flame Arrows (TFA) has a writeup of the evolution from K-Seka to AsmOne. It’s an inspiring read, that leave the impression, that everything was possible. The tools could be tweaked and was tweaked by people who had achieved a kind of mastery of the Amiga platform.
From the many flavours I will continue with the Seka v2.1 by Megaforce.
The letters contains hints on how to use the Seka assembler, but I found myself writting a little cheat sheet, just to have it all in one place.
I also found some solid documention in chapter 3.3 of Amiga Machine Language by Stefan Dittrich (ISBN 1-55755-025-5). Just like a lot of Amiga books and magazines, it’s available at archive.org. It’s amazing that all this stuff is still preserved. Here’s an image of my danish version of the book.
Let’s take the setup for a test drive!
I want a setup that closely resembles what I had back then: An Amiga 500 with two floppy drives and a RAM extension. I also had an Action Replay card, but that’s not needed here.
I used the UAE default configuration for an Amiga 500 and added an extra floppy drive. They are named DF0: and DF1: which is standard Amiga lingo.
Many times I was left wondering if the system was alive, since it takes time to read from a floppy drive. Then I remembered that back in the day we could hear the floppy drive. The audio feedback played a subtle, but important, usability role.
WinUAE can emulate the sound of the floppy drive motor, and it’s volume can be set individually 👍.
In the WinUAE configuration, I have set the floppy drive DF0: to contain the Seka disk. When the system boots up, it will read from disk and start the Seka assembler.
The other floppy drive DF1: can be used for a save disk for the code.
In the next post we wil take a deep dive into the first letter of the machine code course.