devs/ramdrive.device

--------------------------------------------------------------------------------

NEW FOR V1.3 : the ramdrive.device -- 

    The ramdrive.device is a recoverable, bootable "fixed size" ramdisk which
    emulates an amiga floppy drive in format and behaviour.  It is installed
    using the standard Amiga "mount" command, and both the ramdrive and the
    data contained on it survive warm reboot.  In a system with sufficient
    RAM memory, the ramdrive.device can take the place of the workbench disk.

FEATURES OF THE ramdrive.device --

    The ramdrive.device supports the autoboot protocol established for the V1.3
    Kickstart release.  If you have installed the V1.3 Kickstart in your system,    and you reboot the system via ctrl-amiga-amiga with no workbench disk in
    drive DF0:, and there is not a higher priority autoboot device installed,
    the system will attempt to boot from the ramdrive.device.

INSTALLATION OF THE ramdrive.device --

    The ramdrive.device may be installed as a fixed size "virtual" disk.
    To do this, first edit the workbench file DEVS/MountList to include an
    entry for the ramdisk:

------------------------ example MountList entry -------------------------------

RAD:    Device = ramdrive.device	/* which is in the DEVS: directory */
        Unit   = 0			/* not used */
        Flags  = 0			/* no options selected */
        Surfaces  = 2
        BlocksPerTrack = 11
        Reserved = 1			/* 2 if you're afraid of INSTALL */
        Interleave = 0			/* (who care's: it's RAM) */
        LowCyl = 0  ;  HighCyl = 21
        Buffers = 5
	BootPri = 1			/* (e.g. 5 is df0:) */
	Mount = 1
        BufMemType = 5			/* 1 if you have only chip memory */
#
/* ram disk bytes: (Surfaces*BlocksPerTrack*(HighCyl-LowCyl+1)-Reserved)*512 */
--------------------------------------------------------------------------------

    This MountList entry creates a ramdrive known to the system as RAD:
    whose size is approximately 240K (22 cylinders @11K bytes per cylinder)
    and whose flags specify read/write access.  After the MountList entry
    is added, the ramdrive may be created by running the Amiga command
    
                            "Mount RAD:".  

USING THE ramdrive.device --

    The ramdrive.device may be used just as you might any other "real" disk
    drive.  Files may be copied to, edited, executed, and deleted from the
    CLI or the WorkBench user interfaces, as well as accessed from programs.  
    There is one restriction to keep in mind, however.  Unless you have the
    extra RAM available to create an 880K ramdrive (ie: with exactly 80
    cylinders, 2 surfaces and 11 blocks per track) you will not be able to
    access the ramdrive with the command "DiskCopy" and you will not be able
    to "drag copy" disks from the WorkBench to the ramdisk.

RECOVERING THE ramdrive.device --

    When running V1.2 roms or less, or when the MountList entry Flags field
    has bit 1 set, or the Bootpri is < 128, the DOS device referenceing the
    ramdrive.device will not automatically be mounted after a reset.
    A request to "Mount RAD:" will recover the ramdisk without
    re-initializing it.  Under normal circumstances, this means that
    files and data stored on the ramdisk will still be available for use.  

    However, In the event that the reboot is due to system failure 
    (ie: some program may have trashed user memory) the data on the ramdisk 
    may be corrupt.  

BOOTING FROM THE ramdrive.device --

    If you are running on a V1.3 Kickstart system (autoboot) and there is 
    not a workbench disk in drive DF0: during a warm reboot process, the 
    system will attempt to boot off the ramdrive.device if it is installed.

    Anything or nothing can be on the ramdrive.device to boot from it.
    The boot process does not use any "boot blocks" from the ramdrive.device
    (which is why only one is really needed in the mountlist).  To make
    the boot from the ramdrive.device useful, copy the files
    DEVS/system-configuration and S/startup-sequence to the ramdisk, as well
    as any workbench files and commands that your boot sequence requires.

    If you have a LOT of memory available (say, a 2meg memory expansion board)
    the simplest way to accomplish the above is to create an 880K ramdisk
    (with 80 cylinders) and to copy the entire contents of a workbench disk
    over to it, then remove the workbench disk from the floppy drive.  When
    you perform a reboot from the keyboard, the Amiga should sucessfully boot
    from RAD:.

    The BootPri (boot priority) of the ramdrive.device should be set to -5
    if you do not wish the virtual RAM disk to override autoboot from a hard
    disk connected to your A2090A controller card.


ALTERNATE FILESYSTEMS AND THE ramdrive.device --

    The ramdrive device has been designed to work with the fast-filesytem, 
    if it is available.  However, because the fast-filesytem is NOT available
    at reset time, there is currently no way to autoboot from a ramdisk
    using the alternate filesystem.  Use with the fast-filesystem thus requires
    an explicit MOUNT command after a reset.

    You must tell the ramdrive.device not to try to autoboot when using it
    with the fast-filesystem.  The entry in DEVS/MountList would appear
    something like this:

---------------   example fast-filesystem MountList entry -------------------

RAD:    Device = ramdrive.device
        Unit   = 0
        Flags  = 2		/* do not autoboot */
        Surfaces  = 2
        BlocksPerTrack = 11
        Reserved = 2
        Interleave = 0
        LowCyl = 0  ;  HighCyl = 21
        Buffers = 5
        BufMemType = 5
        FileSystem = libs:ffs.resource
        GlobVec = -1
        DosType = 0x444F5301
        StackSize = 0x1000
        Priority = 0x10
        BootPri = -32768	/* redundant: Flags=2 does the same thing */
#

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

NEW FEATURES FOR 2.0 : the ramdrive.device -- 

    The ramdrive.device now supports multiple units [currently 0-99], specified
    by the Unit field in your mountlist entry.  The ramdrive.device currently
    resides in ROM, but may reside on disk in the future.


/* This is an example of a mount list entry for using the recoverable 
   ram disk.  Depending on the amount of memory you wish to devote to
   it, you may want to change the HighCyl value.

*/

RAD:       Device = ramdrive.device
           Unit   = 0
           Flags  = 0
           Surfaces  = 2
           BlocksPerTrack = 11
           Reserved = 2
           Interleave = 0
           LowCyl = 0  ;  HighCyl = 79
           Buffers = 5
           BufMemType = 1
#
RAD1:      Device = ramdrive.device
           Unit   = 1
           Flags  = 0
           Surfaces  = 2
           BlocksPerTrack = 11
           Reserved = 2
           Interleave = 0
           LowCyl = 0  ;  HighCyl = 22
           Buffers = 5
           BufMemType = 1
#
