Learning Assembler on Amiga #1

During the time that Amiga was popular both in EU and US, you had one of those gorgeous devices. You had a passion for building your own game, utilities or what else. You went as far as understanding the surroundings of developing for the platform, maybe you even did something cool with AMOS, but you never made it write something of meaningful in assembler. It was mystical, appealing but there was no Internet and information were hard to come by.
Nowadays, you know a lot more than back to those times. You have the Internet, you can even emulate all the Commodore platforms but you don’t know where to start. There’s too much to parse and put together, and back then you didn’t have a mortgage, kids, and plenty of distractions beyond yourself.
The vibrant desire of getting your “revenge” over your lame inner self still there and that desire of winning over the machine is flaming in you.
You are in luck, my man or woman. I am one of those too, and I recently made the Amiga world my hobby. I am going to embark on the journey of learning everything that back then I couldn’t understand because it was not available in any of the languages I was capable of speaking or simply because I was the only one a very large radius of miles having one of this beautiful Amiga.
If you have never programmed, then let me be frank:
you can make it but your road is gonna be so full of shit and apparently non-sense that you will win only if you are absolutely stubborn and persistent. These series of articles might not for you but let me know if you are edge-to-edge to grasp and I might happen to be of some assistance, if I can.
If you understand the basic of programming, then you are in luck because I intend to start from scratch hoping the obvious of UNIX and programming constructs.
All the lessons will have roughly the following structure:
  1. Theory
  2. Walk-thru
  3. Code
  4. Multimedia support as it applies
In all cases, remember that IDKWID philosophy applies.

Emulator and Platform

I use macOS and FS-UAE as my configuration for retro experiences. If you happen to use a different platform, as long as you stick to use the same emulator you should go to any particular trouble. Win-UAE has a zillion of tutorials, I am sure that if you happen to use that emulator on Windows, you will find the equivalent settings.

What’s out there?

There’s a ton of content out there, and that’s a bit of an issue because some assume you are on their same knowledge level or at least experience and that makes your ramp up harder. In all cases, there are a few very popular resources that no matter what you want to visit and process a bit. Here are the tops ones:
  1. Copper Shade, Henrik has a well-known video channel that you want definitely explore to the least.
  2. Classic WorkBench (WB) is a great guide that can configure your system in a way that you would have never been able to do with a real Amiga back then.
  3. AmigaDOS commands sites.
  4. Great blogs where to learn how to run programs and games from hard drives instead of disks.
  5. Access to all sorts of manuals from hardware to games.
  6. The huge Aminet. A repository of software that will come really useful during these lessons.
  7. Great companies like Cloanto that continue to feed the ecosystem that doesn’t want to die.
  8. And finally plenty of history about the rise and commercial end of the Amiga

Setup

If you mimic what I have the chances are that you are not going to run into troubles of not working scenarios. If you do, drop me a comment, and we might figure it out together.
Create a new configuration and call it Development. The following is a screen by screen my configuration for development.
image
You can’t configure this screen any wrong. The most important part is the Accuracy level (top right) as it represents the highest fidelity possible the CPU cycles/ticks that affect your code behaviors.
The screen below tells the emulator where to find your emulated hard drive and a folder (amigaHD) that the system sees as a real Amiga hard drive. If you need to transfer files to/from the host system (macOS) or the emulated system you can use that folder.
image
You can create your own hard drive file, using HDF Creator.
image
The procedure is rather simple but extremely fuzzily documented on the net. Here is what I did and worked like a charm after hitting every possible wall along the way. If there wasn’t a wall, I build one, ran into it and then kept going.
  1. Create an HD file big enough to hold all your future, don’t be stingy, resize it isn’t as simple as with a Linux partition.
  2. On the floppy tab of FS-UAE add to the Media Swap List all the 6 installations disk for Workbench 3.1. If you don’t have them, I trust that you know how to use Google and ADFs (floppy disk images). AmigaForever doesn’t have a version for macOS, I bought it there and figure out manually how to extract the files for macOS. There are other questionable ways of doing it, but I have no desire of breaking the laws of any country. So figure it out.
  3. Boot and when you see the Kickstarter screen swap in the first disk and proceed to install as necessary.
You will end up with a full installation and with everything that you need to boot without floppies
image
The emulator mimics greatly even the sound used to make to detect the floppy disk in the floppy drive. It is neat, however, pretty much everyone agrees that after awhile drives you insane. So I dropped the volume and just for this configuration, to zero.
Lastly, I beefed up memory and cards just to have speedy emulation, not really necessary for what we’re going to do but it does make your retro life fancier.
image
Leave every other screen as is and save the configuration you just created.
If you have done everything as I described it, you should be able to boot the WB.

Closing

The most important step that you can do now is to shut down the emulator and make a backup of your configuration file and created a hard drive. There is no time machine in the retro world and you will, guaranteed, screw up somewhere at some point. A nice restore using a previous backup will save you time without redoing those steps described above.

Disclaimer

I am not an expert on this matter. I will learn as I go and share my experience, hoping of helping someone in the same boat and with the same desire of old fart like me. If it all fails, at least I will have some notes for myself in a distant future. If you see or know a better way of doing what I share, don’t be afraid and comment away. I learn really fast, and I welcome feedback even faster than that. I hope to serve all of you well enough.
Amiga Forever, for every missed developer out there. 
My nickname on Amiga was A99 because when I was signing my record in some stupid ass games that only accepted 3 letters, that was the quickest way I had muscle memorized the sequence. 
A99, see you at the next chapter of this interesting retro quest.

Comments

Popular posts from this blog

Zen-inification - The art of decluttering

Postgres on Synology

Bring Boxee Box back to life