[comp.sys.atari.st] AUTODISK: copies floppy to RAMdisk, fast

braner@batcomputer.tn.cornell.edu (braner) (12/24/86)

[]
   AUTODISK - program to copy floppy disk to RAM disk upon system
                 boot, and also set the system clock.

FUNCTION

   This program is to be placed in the \AUTO folder on the boot disk,
   AFTER the RAMdisk program.  (It assumes the reset-immune RAM disk is
   already installed.)  After asking the user for the current time and
   date, and setting the ST's two clocks accordingly, this program copies
   the whole floppy disk data, FATs, directory and all, onto the RAMdisk.
   (It first finds out which sector is the last one actually holding data,
   and copies all sectors up to that one.)

HINTS

   For best results:  Freshly format a disk, make an AUTO directory,
   put in it first RAMDISK.PRG and then AUTODISK.PRG, then put on the
   disk all other files you want to load to the RAMdisk at boot time.
   You may save the desktop (with the RAMdisk icon installed, and perhaps
   the RAMdisk's window open) on the disk, too.  Make sure the RAMdisk
   is more than big enough to hold all those files.

ACKNOWLEDGEMENTS

   This program made possible in part by Eric Terrell, who posted
   "eternal.s".  The method of setting the ST's clocks is borrowed
   from "settime", posted by Allan Pratt of Atari.

WARNINGS

   This is the first release of AUTODISK, use at your own risk!
   Please report any bugs.

   This program is for booting off a floppy disk.  For hard disks (or
   future, very large, floppies) the program (and/or the RAMdisk program)
   will need some work.

   This program will not work with "copy protected" disk formats,
   including the "FAST" format with its "dead" sectors.

FUTURE ENHANCEMENTS

   Currently AUTODISK uses the BIOS call Rwabs() to read the data off
   the floppy disk.  The speed achieved is about 10Kbytes/sec, not bad
   but less than one half of the theoretical limit.  (The disk has to
   make a full turn in order to read a whole track, that's 0.2 seconds.)
   (I've tried the XBIOS call Floprd(), and it gave the same speed.)
   But STCOPY gets very close to the theoretical limit - I still don't
   know how!  Any hints would be appreciated.

   - Moshe Braner


SOURCE AND BINARY: UUENCODED ARC FILE

----------- cut here ------------
begin 644 AUTODISK.ARC
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
7<00`\8@%?REP5/"7PP@)!2``!@``&@".
`
end