[comp.sys.amiga] Dynamic Diskcopy

raw@mcnc.org (Russell Williams) (05/31/89)

	It has been ascertained that diskcopy will only copy to a similar unit,
i.e. .88meg as opposed to 1.7meg.  My question now is whether or not anyone
has heard of a copier that can be executed and closed from the cli that copies
a disk in tracks to a dynamic ram space.  In other words, it would copy 79
tracks from my disk and simply use whatever ram required, leaving the rest
free.  What would really be wonderful is if this same diskcopy could copy a     disk to a ram space already partially filled, filling up the ram space.
	What a wonderful thing that would be.

	What a wonderful thing for:

				1.4!!!!!!!!!!

	That's right!  I suckered you into another 1.4 wish list message!!

Brouhahahahahahahahahahahah!!!!!!!!!

russell
Russell

jms@doctor.Tymnet.COM (Joe Smith) (06/03/89)

In article <4598@alvin.mcnc.org> raw@mcnc.org (Russell Williams) writes:
>	It has been ascertained that diskcopy will only copy to a similar unit,
>i.e. .88meg as opposed to 1.7meg.  My question now is whether or not anyone
>has heard of a copier that can be executed and closed from the cli that copies
>a disk in tracks to a dynamic ram space.  In other words, it would copy 79
>tracks from my disk and simply use whatever ram required, leaving the rest
>free.  What would really be wonderful is if this same diskcopy could copy a
>disk to a ram space already partially filled, filling up the ram space.
        [silly comment about the 1.4 wishlist deleted]

If you copy a disk on a track by track basis, like diskcopy does, you have to
copy the entire disk.  That is because file names and directories do not exist
at the track level.  If you copy only 79 of the 80 tracks, there is a very
good possibility that file you need is unuseable because some of its blocks
were stored on the 80th track.  Copying track by track means copying all
directory pointers verbatim, and the bitmaps too.  Since the source bitmap is
for an 880K floppy, the destination MUST be exactly the same size, as long as
you are making a track for track copy.  Furthermore, the destination must the
same size because the root directory is located on the middle cylinder.
Copying the directory blocks without translating them won't work if the
destination has a different number of cylinders.

On the otherhand, something like this can be done if you have a program that
knows all the details of the AmigaDOS volume/directory structure.

Objective:  Copy two 880K floppies into a single 1760K recoverable RAM disk.

Step 1:  Do a diskcopy of the first floppy into RAM disk tracks 0-79.
         This will not produce a valid AmigaDOS volume because the copy of the
         directory stayed on track 40 instead of migrating to track 80.

Step 2:  Do a diskcopy of the second floppy into RAM disk tracks 80-159.
         (The RAM disk is still marked as "busy" so DOS won't read it yet.)

Step 3:  Starting with the second floppy's root directory (on track 120),
         locate all directories and file info blocks.  Update all the block
         pointers so they correctly refer to blocks on tracks 80-159.

Step 4:  Read the first floppy's root directory from track 40 and the second
         floppy's directory from track 120.  Merge them together and write
         the result on track 80 (overwriting the second floppy's reserved
         tracks which won't be used anyway).  Duplicate directories can be
         concatenated, but watch out for duplicate non-directory files.

Step 5:  Do whatever checksumming is needed to make the RAM disk recoverable.

Step 6:  Tell AmigaDOS that the volume needs validating.  AmigaDOS will
         invoke the disk validator to build a new bitmap for the 1760K disk.

All this should be possible with the current 1.3 release.
-- 
Joe Smith (408)922-6220 | SMTP: JMS@F74.TYMNET.COM or jms@tymix.tymnet.com
McDonnell Douglas FSCO  | UUCP: ...!{ames,pyramid}!oliveb!tymix!tardis!jms
PO Box 49019, MS-D21    | PDP-10 support: My car's license plate is "POPJ P,"
San Jose, CA 95161-9019 | narrator.device: "I didn't say that, my Amiga did!"