All operating systems have the ability to create a disk or drive in RAM such that the resulting disk can be accessed either as a hard-drive or a floppy and be manipulated by the operating system just like a physical drive. All Amiga versions create a RAM drive on the Workbench that is precisely that: a drive that can be read and written to just like any other volume. A RAM drive is inherently volatile such that after a reboot, the RAM drive is cleaned and all contents deleted - except when creating a drive out of non-volatile RAM such as the one backed by a battery.
The habit of creating RAM drives has disappeared from operating systems and modern operating systems do not include drives in RAM into their workflow probably due to planned obsolescence given the relative low costs of disk drives. However, a RAM drive is still mightily beneficial because all read and write operations take place in RAM such that hardware disk drives are spared all the usage cycles.
Imagine working on your computer and having to download files off the Internet - files that will be used once (for instance, ZIP files) but can be tossed away on the next reboot. In fact, Safari on OSX, and, more generally, OSX tends to pollute the ~/Downloads
folder with a bunch of files downloaded off the Internet that, unless explicitly deleted, will end up taking up loads of disk space even though they have no more use.
Although OSX does not implement a RAM drive for folders such as ~/Downloads
for temporary storage, the Amiga includes working with a volatile RAM drive in the daily workflow. On the Amiga, it is taken for granted: all the work takes place in RAM (if there is enough space) and then moved to a hardware disk drive for long term storage.
The Amiga supports the creation of a (semi-)non-volatile RAM drive called RAD that, compared to the Amiga RAM drive, will not flush its contents on a system reboot. Furthermore, the very cool feature of a RAD drive is that the Amiga can be made to boot from a RAD drive - effectively booting a hard-drive or a floppy directly from RAM.
Behind the scenes, the Amiga kickstart (the equivalent of a BIOS) includes a driver called ramdrive
that makes a persistent RAM drive (RAD) possible. When the Amiga boots, the kickstart is loaded such that the Amiga can be made to boot directly from the RAD drive.
Unfortunately the persistence is "semi-" because if the Amiga is turned off, then the RAD drive contents do disappear (this is due to the RAD drive using either chip or fast RAM - neither of which are memory-backed).
The RAD drive is included in the kickstart as a module called ramdrive
- there are no updates to ramdrive
since Amiga OS3.1. The problem with ramdrive
is that the created RAD drive uses chip memory by default and chip memory on the Amiga has a fixed quantity that cannot be upgraded. Fortunately, an old patch called FastRAD created by Torbjörn Andersson that works on kickstart 3.0 and over will patch ramdrive
in the kickstart to make ramdrive
use fast RAM instead of chip RAM.
To use the patch, download:
and copy the FastRAD
executable to C:
. Then, edit S:startup-sequence
and append the line C:FastRAD RAD:
immediately after C:SetPatch
such that the top of the startup-sequence will look like:
C:SetPatch QUIET C:FastRAD RAD:
The FastRAD
tool intercepts any device mounted with the device name RAD:
and will force the RAD:
device to use fast RAM instead of chip RAM.
As the RAD device is built into the kickstart, there is no need to install additional software. However, a file should be created at SYS:Devs/DOSDrivers/RAD
with the following contents:
/* $VER: RAD 40.1 (31.8.93) * * Recoverable RAM disk mount entry * * You can create different simultaneous recoverable RAM disks by creating * versions of this file with different Unit values. * * The size of a recoverable RAM disk is controlled by the value of the * HighCyl line. Increasing this value by 1 consumes an additional 11K of * RAM. So the default value of 79 consumes around 880K of memory. */ Device = ramdrive.device Unit = 0 Flags = 0 Surfaces = 2 SectorsPerTrack = 11 SectorSize = 512 Reserved = 2 Interleave = 0 Buffers = 5 BufMemType = 5 Priority = 5 BootPri = -127 /* For booting from RAD, use BootPri = 5 */ Mount = 1 /* The LowCyl and HighCyl fields are controlled by tooltypes in the RAD icon. * * LowCyl = 0 * HighCyl = 79 */
The main highlights of this file is the setting:
BootPri = -127
that will prevent the Amiga from booting from the RAD drive - otherwise, the RAD drive will be empty upon the next reboot and Workbench will not load (later on, booting from RAD devices will be explained but BootPri
should be set to -127
).
After that, an icon should be created RAD.info
to go along with the file created at SYS:Devs/DOSDrivers/RAD
such that SYS:Devs/DOSDrivers/
contains the files:
RAD
RAD.info
The icon RAD.info
should be inspected by selecting it in Workbench, right-clicking and selecting the menu Icons→Information…
and then setting the tooltypes.
where:
ACTIVATE=1
means to mount the drive on boot (equivalent to Mount = 1
in the SYS:Devs/DOSDrivers/RAD
file).
When setting LowCyl
and HighCyl
be aware that tools may refuse to treat the device as a floppy if LowCyl
is not set to 0
and HighCyl
is not set to 79
(standard Amiga 880KiB floppy). This is particularly important if you wish to write a floppy image to the RAD device and then boot. Some tools such as diskcopy
will refuse to work claiming that the source and the destination RAD do not have the same geometry.
The settings from the screenshot:
LowCyl=0
HighCyl=5957
will create a 64MiB RAD drive - and will thus not be compatible with diskcopy
and similar tools. These parameters should be set to:
LowCyl=0
HighCyl=79
for compatibility.
With all settings in-place, the Amiga can be rebooted and a new drive should be created on the Workbench (commonly with the label RAM_0
, or RAD
, etc…) and will be accessible from the CLI by issuing:
cd RAD:
in case the file you created in the previous section was placed at SYS:Devs/DOSDrivers/RAD
.
To check for persistence, copy any file into the new RAD volume and reboot the Amiga. After the Amiga reboots into Workbench, the RAD volume should still contain the file that was copied.
Now that the test succeeded, it may be interesting to set up several (or, say, at least two) RAD volumes for different purposes. For instance, consider the following configuration with two RAD volumes:
diskcopy
in order to boot into programs that cannot be run (or misbehave) on Workbench (this includes some utilities such as Advanced Amiga Analyzer, and some games).
In order to achieve this configuration, two RAD devices shall be created under SYS:Devs/DOSDrivers/
with their corresponding .info
files - the name of the files will become the device name so you can choose whatever name sounds more suitable. The SYS:Devs/DOSDrivers/
directory will thus contain, say:
RAD
RAD.info
ROT
ROT.info
Both RAD
and ROT
files should have the same contents from the previous section with just one difference: the RAD
file will have the Unit
line reading:
Unit = 0
and the ROT
file will have the Unit
line reading:
Unit = 1
this is to allow AmigaOS to differentiate between the two devices.
Finally, inspect both .info
files using the Workbench menu Icons→Information…
and for RAD.info
set the tooltypes to:
ACTIVATE=1 LOWCYL=0 HIGHCYL=5957
respectively:
ACTIVATE=1 LOWCYL=0 HIGHCYL=79
for ROT.info
.
All changes must be saved and then the Amiga must be turned off and restarted. Upon reboot, Workbench should now display two RAD devices (commonly named, perhaps, RAM_0
and RAM_1
). Additionally, the 64MiB RAD will be accessible from CLI via:
cd RAD:
respectively:
cd ROT:
for the 880KiB floppy-like RAD drive.
Finally, edit S:startup-sequence
and modify the line:
C:FastRAD RAD:
to read:
C:FastRAD RAD: ROT:
in order to switch both RAD
and ROT
volumes to use fast RAM.
DiskMasher (abbreviated DMS) is an utility that can create images from floppies; images that can then be stored and restored to other floppies. For restoring a .dms
file to a RAD device, a command must be issued along the lines of:
dms WRITE Work:archive.dms TO ROT:
which will write the contents of archive.dms
to the 880KiB floppy RAD created in the previous section. After writing, the ROT
volume icon should change to the floppy icon from the archive.dms
file. The results will be similar when using DiskCopy to copy a floppy to the 880KiB ROT
RAD drive.
Note that if DMS ignores the ROT:
parameter and asks for a floppy to be inserted into DF0:
then most likely the ROT:
device created in the previous section does not have the required geometry. Make sure that the icon at SYS:Devs/DOSDrivers/ROT.info
has the tooltypes set to:
ACTIVATE=1 LOWCYL=0 HIGHCYL=79
in order to emulate a standard Amiga floppy.
Both the 64MiB RAD
and 880KiB ROT
devices created in the previous sections contain:
BootPri=-127
In the Amiga boot order, the lowest the value, the least likely for the device to be booted and the largest the value, the most likely it is for the Amiga to boot off the device.
Since both files contain BootPri
set to -127
, the RAD
and ROT
volumes will be never booted from. Nevertheless, booting off RAD volumes is undesirable because when the Amiga is powered on, the volumes will be empty and since other drives are ignored, the Amiga will just display an Amiga Shell.
To the rescue, comes the good old Amiga bootmenu! After rebooting the Amiga via the Vulcan nerve pinch key-combo Ctrl+Amiga+Amiga, and holding down both left and right mouse button, the Amiga will display a the boot menu.
From there, the Boot
menu option will lead to a drive selection. Amongst the drives should be RAD
and ROT
. Simply click on ROT
, press OK
and then click the Boot
button on the main boot screen.
Congratulations! The Amiga now boots from the 880KiB RAD device!
TLSFMem can be used in conjunction with RAD drives and the latest TLSFMem at version 1.9 by Cosmo will work nicely alongside RAD. To make RAD drives and TLSFMem work together, edit S:startup-sequence
and make sure that the lines around SetPatch
look similar to:
C:SetPatch QUIET C:TLSFMemPool C:FastRAD RAD: ROT:
with the mention that the FastRAD
utility should be called after TLSFMemPool
.
The ramdrive
device found in the Amiga kickstart has a very important drawback when creating RAD drives: the entire size of the RAD device created will be fully allocated. That means that by creating a RAD volume will eat up RAM even if the RAD volume is empty! There is no way around this issue and alternatives are suggested in the following section however, given the ability to create a RAD drive in fast RAM and that fast RAM can reach up to 256MiB on Amigas, a sufficiently large RAD will not be too wasteful - additionally, Amiga programs use very little RAM; you can never expect to even fill up 128MiB and if you do, then most likely some program is leaking rather than legitimately using up that much RAM.
There are about three or so patches on Aminet that achieve almost the same effect as described in this guide but will not work entirely so they are worth mentioning:
BufMemType = 5
in the mount file, however, even with the FastRAD
patch, all the memory contents will be lost upon reboot.FastRAD
patch, AmberRAM will refuse to maintain the contents of the RAD device after reboot.
There are (marginally related) write-to-disk alternatives such as fmsdisk that are great for unpacking DMS files to. However, fmsdisk writes to the hard-drive and in case fmsdisk is set to write to RAM:
, the files are lost upon reboot.
On OS3.{5,9} using PeterK's icon library, icons can be added for RAD
and ROT
(assuming that is what they were named as) to SYS:Prefs/Env-Archive/Sys
named def_RAD.info
, respectively def_ROT.info
and then the NoGhost tooltype can be added such that the drives will not appear ghosted.