As an avid Amiga user since 1988 (and Amiga owner since 1992), sitting down in front of an Amiga still feels like coming home.
Although I own several Amigas, my "daily driver" machine is an Amiga 1200 with Kickstart/Workbench 3.1, 4 megs of fast memory and an FPU. It's also equipped with a 4 gig disk on module hard drive.
I mainly use Amigas for watching demos and creating pixel art in Deluxe Paint IV, but I also do a bit of recreational programming.
- See my pixel art for Amiga and C64.
The Amiga's OS is a fast, lightweight single user system with surprisingly snappy pre-emptive multitasking, a decent command line interpreter and a cleanly designed graphical user interface.
In its construction and behaviour, it's somewhat reminiscent of Unix, and the integration between the graphical and command line interfaces is reminiscent of MacOS X. The concepts introduced in versions 2.x and 3.x, both released in the early 1990s, were (and still are, in many ways) unmatched in elegance, simplicity and user empowerment compared to other contemporaneous home computer systems.
Workbench is the desktop environment of the Amiga operating system.
I have my Amiga hooked up to a PAL Commodore 1084S monitor, and run my Workbench in 640x256 (1:2 pixel ratio), 8 colours. The below screenshots are scaled up to suit a 1:1 pixel ratio display.
On the Amiga, I mainly use Amos Professional and ARexx for programming. The former is a BASIC dialect heavily geared towards providing simple control of the Amiga's excellent graphics and sound capabilities. The latter is an Amiga-ized and improved port of IBM's REXX, supplied along with the OS.
Advent of Code 2019
I solved the Advent of Code 2019, Day 1 challenge in ARexx. It really shows some of the language's peculiarities. For example, there are no lists or arrays as such, instead there are compound variables or "stems". A stem can have an arbitrary number of members but there's no way of counting them, so you have to provide a counter yourself. Also, the base language contains pretty much no mathematical functions (I.E. no round, ceil, floor etc.).
It takes about 11 seconds to run on my Amiga 1200 with a 14 MHz Motorola 68020 and 4 megabytes of 32-bit memory (ARexx doesn't utilize the FPU I have fitted on my RAM expansion card).
- The source code can be read here.
- Here's the input data.
- Here you can see a photo of it running. (JPG, ~170K)
- Here is the code ported to Regina REXX.
This will run on modern OS:es such as Linux, Windows and Mac, using the Regina REXX interpreter.
- Brute-forcing primes in ARexx (source code, 0.5k)