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!"