Belgian Amiga Club

Today I compiled my first program written in Assembler.
Even though it was only a few lines, it felt like a major victory :-)

It started with a desire to understand exactly how a CPU works, with registers and addresses and bytecode instructions etc.
(Maybe I'm still dreaming of writing my own emulator one day, haha )

There are lots of tutorials. The Photon one is famous.
I also found this one very nice, especially for total beginners like me.

I tried several different Assemblers.

  • Seka
    Found it on Pouet
    Not everybody likes it though ... 
    It's a bit cryptic, but it works.
    The "editor" reminds me of VIM ... but I guess that was just the state of editors back in that day.
    Oh how spoiled we are in this time.

  • Devpac 3
    Found it on the Turran FTP
    Nice integrated package

  • ASM-One
    another popular assembler on the Amiga. It's on Aminet.
    Seems very similar to Seka, with the same (cryptic) CLI commands and rudimentary editor.

  • Crosscompilation
    There's a very nice Amiga Assembly extention for Visual Studio Code, made by Paul Raingeard.
    Really well made, with run and debugging support directly in WinUAE or FSUAE.
    The code gets compiled with VASM and linked with VLINK and indeed: it produces a nice Amiga 68k binary. 

Ok, so it's clear that I don't have the patience anymore to use the native "IDE editors" dcirectly on the Amiga. I'm not that masochistic.
writing code, I'll do on a modern machine, but maybe the compilation and linking step will remain on the amiga.
(Maybe ... VASM and VLINK seems like a really nice tool that produces tiny binaries, so ...)
Ah ... and there are also Amiga ports of Vasm and Vlink (they are included in the VBCC package)

Lots of the Amiga Assembly examples are not system friendly though...
I mean: they are super interesting to see how exactly the Amiga works (like "write to that memory addres to change color 1" , "read that memory address to check the joystick button" ...)
But I don't know if I want to go there.
Doing system-friendly stuff certainly is possible, but why do that in assembler?
In the end- it's of course perfectly viable to mix assembler and C, creating linkable objects in one or the other, and combine them in 1 executable.

Check out ASM-Two - seems like a nice package for basic amigas( it doesn't support 020 oir higher CPUs, but still)
And this is a nice thread with valuable info. (Look who started it :-) Hi Guy! )

Written on 04/05/2023 by Steffest

This article is part of the Wanderings in Amiga dev-land blog