Working with the Amiga's RAM and Rad Disks

1 month ago 6

Autumn 2025

RAM it home

A RAM disk exactly what it sounds like: using a portion of a computer's RAM as a disk. The benefit is, above all else, speed. The drawback is, naturally, less RAM available for running software.

The Amiga has a RAM disk. So what? RAM disks are commonplace: in most Unix-like systems they're just a mount command away, and on other systems there's probably at least one third party tool available for creating one, if the OS isn't capable out of the box. Besides, the average user doesn't have much immediate use for a RAM disk today, considering the prevalence of cheap and fast SSD disks.

However, I dare say the Amiga's RAM disk was and is unique in several ways:

  • It's available out of the box, always mounted and ready. It requires zero user effort, and it's been that way since the middle of the 1980s.
  • It's dynamic, meaning it'll only ever use as much memory as the actual files stored on it require. It automatically grows and shrinks to accommodate for file creation and deletion.

On a 1980s home computer, this was a decidedly unique feature, one of many that made working with the Amiga just that little bit smoother than other, competing systems.


An Amiga 500 motherboard fitted with an A580 memory expansion by 3State (in the lower right of the image), bringing the total system RAM to 2.3 megabytes. Image stolen from BBOAH.

Floppies and RAM

Being a 1980:s home computer, the Amiga 500 was intended to run from floppy. The machine itself was both cheap and cheerful, but hard drives were prohibitively expensive. In 1990, for example, they cost at least as much as the computer itself - even in a modest 20 or 30 megabyte configuration. Most people settled for a memory expansion, usually bringing the total RAM to one megabyte, and an external floppy drive, adding to the internal one fitted by default. You could also buy for example a one meg RAM expansion - bringing the total system RAM to 1.5 megs - for less than half the price of a hard drive. Later Amigas, such as the A500 Plus, were even cheaper and easier to expand to two megs, and the A1200 came with 2 megs of RAM as standard.

The more RAM you have, the more leverage you can get out of a RAM disk - but thanks to the Amiga's dynamic allocation, even a modest one meg system can reduce the pain of working from floppy disks significantly. When programming, for example, compiling executables to RAM is a given - file size permitting.

On a two meg system with two floppy drives, it could even be an option to set up a RAD disk - a fixed-size RAM disk that essentially emulates a floppy drive. Such a RAD disk will survive any number of warm boots (unless some unruly program crashes and trashes the memory) and can, in fact, be booted from. Compared to just shuffling floppies, a RAD setup would be tremendously more enjoyable to work with, effectively leaving both floppy drives free for loading programs and data.

Even on Amigas with a hard drive, the RAM and RAD disks were and remain useful. My "daily driver" Amiga 1200, for example, has a whopping six megs of RAM - and while it also boasts a four gig hard drive, nothing beats the RAM disk for speed.


Examining the RAM disk

Let's take a look at some of the ways both the Amiga's OS and an end user might typically utilize the RAM disk.

Immediately after booting into the Workbench desktop, the RAM disk icon is accessible. As can be seen, the opened Ram Disk window looks empty. There are files here, they just don't have any associated icons.


Here we've selected "Show All Files" in the Workbench pull-down menu, and the contents of the RAM disk are now revealed. It contains three drawers (directories): Clipboards, ENV and T. These drawers have all been created by the operating system's startup script. From the Ram Disk window titlebar, we can also see that these drawers take up 44 kilobytes in total. The RAM disk is always shown as being 100% full, with zero kilobytes of free storage - but that's because it's dynamic and only ever as big as its contents. We can copy more files to it at our leisure, until we actually run out of memory.


The Clipboards drawer is, perhaps unsurprisingly, used by the system-wide clipboard. It's not that the Amiga lives by the UNIX "everything is a file" credo, but at least the current contents of the clipboard do. Here we can see an AmigaGuide document with some of the text formatted in bold. The contents of this document has been copied, which means a corresponding file - named "0" - has been created in Clipboards.

The contents of this file isn't strictly plain text, as can be seen in the hex dump in the shell window, but rather IFF FTXT - a file format which was presumably chosen for this purpose because of its abilities to retain at least some basic text formatting. It does, however, use standard ANSI escape codes for the most part, which is why the clipping appears formatted even when printed in the shell window using the type command.

Copying a correctly formatted FTXT document to "RAM:Clipboards/0" will, indeed, put its contents in the system paste buffer.


Here we see the "ENV" drawer opened, along with a sub-drawer called "Sys". ENV is, predictably, short for "Environment", and is used to store shell environment variables and currently used program and system settings. The "Sys" drawer contains settings from the Preferences programs - essentially the Amiga's control panel - and affects things like the current Workbench palette, font choices, localization and mouse and keyboard properties.


These two shell windows may look unexciting, but they're showcasing how AmigaOS handles environment variables. In the top window, we can see the setenv and getenv commands used to store and access the environment variable "foo". The bottom window clearly tells us that a corresponding file called "foo" is created in the ENV: volume, an assign pointing to the ENV drawer. We can also see that echoing a new value to that file will replace the old value and make the new one retrievable using the getenv command.


A common use case for the RAM disk on any Amiga - hard drive equipped or not - is for unpacking archives. Here's a typical shell session, unpacking an LhA archive to "RAM:" - the default device name for the RAM disk. The files are of course also accessible from Workbench, as can be seen in the window in the back.


Examining the RAD disk

The RAD disk, as mentioned before, is fixed-size and survives reboots. Hence, it can be used as a small but extremely fast hard drive - of sorts - on systems with a decent amount of memory. This of course requires some setup on each cold boot, as in copying a working system onto it from floppy. For someone without a hard drive, this might be worth the wait - but hard drive users typically don't bother. That doesn't mean it's not useful on hard drive systems as well.

Here's a shell session that, in turn, mounts the RAD: disk, verifies its existence using the info command - it's listed with the volume name "RAM_0" - and then proceeds to write an ADF disk image to it. Lastly, the newly written contents are listed. ADF stands for Amiga Disk File and is just that - a cylinder-for-cylinder (or track-for-track, if you will) image of an Amiga formatted floppy disk. The RAD disk is a faithful enough emulation of a floppy that it can be used with tools intended for dealing with actual floppy disks, in this case transadf.

The one caveat with RAD is that it's only usable with OS-friendly file systems (FFS and OFS). This means that most games and demos won't be accessible from it, since they usually employ their own, proprietary disk formats.


After unpacking a disk image, the RAD disk, previously listed by info as "RAM_0", is now labelled "istari". It's got a disk icon on the desktop and in the corresponding window, we can see that it, unlike the dynamic RAM disk, shows up as being 2% full and having 818 kilobytes of free space - just like any normal floppy would.


A screenshot of Workbench's standard disk formatting dialog, with options for selecting file system type, volume label, and more.

The RAD disk can - unlike the RAM disk - be formatted. If we want to remove it completely and reclaim the allocated memory, we'll have to use the remrad shell command, or switch the computer off for twenty seconds or so. Yes, the RAD drive can often survive even a short power-off - although I wouldn't bet my life on it.


RAD - A clever real world example

The Amiga is blessed with several great pinball simulation games. The most famous ones are probably Pinball Dreams and Pinball Fantasies by Swedish developers Digital Illusions (now better known as DICE). However, I'd argue that the best one is Slam Tilt - made by another bunch of Swedes called Liquid Dezign, and released exclusively for the A1200 and A4000 in 1996. Fully utilizing the capabilities of the AGA chipset, it features absolutely delicious 256-colour graphics, great music and plenty of sampled sounds. It's also hard drive installable.

Alas, such glorious graphics and sound requires a fair bit of resources, and a normal hard drive boot will claim too much of the A1200's standard two megs of RAM for the game to start. The game will run in two megs - just not after Workbench is loaded, settings files have been copied to RAM and a bunch of assigns, search paths and vendor patches have been installed. What to do?

As we can see here, the Slam Tilt drawer contains two icons - one for the game executable proper, and one called "Rebootstart". What, pray tell, might Rebootstart be?


When examining the file in a shell window, we can see that Rebootstart is nothing more than an Amiga shell script. It mounts the unit "STB0:" using parameters from a file called Slamtilt-Mountlist, copies some files to said "STB0:", and then reboots the machine.


Looking at Slamtilt-Mountlist, we discover that it's nothing more than a mountlist for ramdrive.device - the very same device used by the standard RAD disk. We can, however, see that the HighCyl parameter is set to 2, for a total of three cylinders.


Here's the mountlist for the standard RAD drive. We can see that it, too, uses ramdrive.device but that HighCyl is intended to be 79, just like on an actual floppy. Reading the comment text, we can see that each cylinder takes around 11 kilobytes of RAM.


Indeed, after issuing the command for mounting STB0:, we clearly end up with a custom RAD-type disk taking up roughly 32 kilobytes of memory. This is just enough to contain a few basic system files and some custom utilities for locating the Slam Tilt files on the hard drive and starting the game. Even though this custom RAD disk eats a bit of memory, it typically leaves more free RAM than a full system boot, and allows the game to run without the user having to resort to shuffling floppy disks, despite owning a hard drive.

A clever and elegant solution to a rather mundane problem, and a testament to both the Amiga's flexibility and the creativity and ingenuity of home computer programmers working with tight resources.


Who put the RAM in the rama lama ding dong?

The Amiga's excellent RAM and RAD disks remain useful tools even on the most souped-up Amigas of today. I can't honestly say that I miss them on modern systems, but they're still an essential part of my everyday Amiga usage. (Although, I confess I mostly wrote this paragraph to be able to use the silly song lyric in the header above.)

If you've got an old computer that isn't an Amiga, I highly recommend investigating the possibility of incorporating a RAM disk into your workflow. And if you do own an Amiga and don't use the RAM disk - what are you waiting for? In any case: Take care, and happy hacking!

Read Entire Article