home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
new
/
disk
/
misc
/
dcmp
/
dcmp.doc
< prev
next >
Wrap
Text File
|
1993-09-30
|
8KB
|
219 lines
NAME
DCMP -- Disk CoMPare utility
DISTRIBUTION
This version of DCMP is NOT in the PUBLIC DOMAIN. You can however freely
distribute it as long as the following is observed:
- The program and documentation must be distributed together and may not
be modified in any way. The only exception is that the program and
documentation may be compressed into an archive for uploading to Bulletin
Boards or for other electronic transmission.
- The program is not to be used commercially or included in a commercial
package for profit unless written authorisation from me is obtained first.
This version of DCMP may be freely included on public domain library
disks or compilation disks provided only a small fee is charged for the
service.
DESCRIPTION
DCMP compares two disks block by block. This is of great use if you want
to verify a copy of a disk that was copied in the same way (block by block)
It was mainly written to test the reliability of a Video-Backup-System.
When started from Shell with option `?' or `.' DCMP will come up as
follows:
1> dcmp ...
$Id: dcmp.c,v 1.52 93/09/30 23:15:15 tf Exp $
-- compare two disks block by block
USAGE: dcmp [-<options>] <DF0..3> [DF0..3]
Legal options are:
-t write transcript to `dcmp.log'
-l <LogFile> write extended transcript to `LogFile'
-i create project icon with logfile
-v verify tracks after read (detect weak data)
-w display information in a window
-a (-r) set #of attempts to read (retries)
-b break on (read) errors.
-sc <cylinder> start with cylinder #<cylinder> sector #0
-st <track> start with track #<track> sector #0
-ss <sector> start with sector #<sector>
-sb <block> start with block #<block>
-ec <cylinder> end with last cylinder #<cylinder> sector #0
-et <track> end with last track #<track> sector #0
-es <sector> end with last sector #<sector>
-eb <block> end with last block #<block>
Where:
<cylinder> should be in [0..79]
<track> should be in [0..159]
<block> should be in [0..1759]
<sector> should be in [0..10]
All these values are converted immediately into the corresponding
block numbers. The command line is parsed from left to right so that
options may override previous ones.
Examples:
Verify the disk in DF0: starting with the first cylinder (#0) and
ending with track #10 sector #4 may look like this:
1> dcmp DF0: -sc0 -et 10 -es4
Be careful: The sector number must come *AFTER* the track number,
1> dcmp DF0: -es4 -et10 -sc 0
would terminate on track #10 sector #0 !
1> dcmp -st3 -ss5 -ec17 -es1 -es7 DF0: DF1:
Will compare the disks in DF0: and DF1: starting on track #3 sector #5
and ending with cylinder #17 sector #7.
The `-w' option makes DCMP behave as if started from the Workbench via
the icon. In this case, DCMP will look for req(tools).library. If none
of them is available, DCMP will not be able to display a file requester
but its main functionality will *NOT* be affected.
The following ToolTypes configure DCMP when started from Workbench:
FIRST CYL=<cylinder> start with cylinder #<cylinder> first sector
LAST CYL=<cylinder> end with last cylinder #<cylinder> last sector
ATTEMPTS=<attempts> set #of attempts to read (retries)
IGNORE ERRORS=ON don't break on (read) errors
DEEP READ=ON verify tracks after read
LOGFILE=<name> write extended transcript to <name>
LOGICON=ON create a project icon with the logfile
DEFAULT TOOL=<name> set default tool for the logfile icon
LANGUAGE=<language> set dcmp <language> to one of these:
ENGLISH
GERMAN
FRENCH (incomplete!)
ITALIEN
Note:
Setting first and last cylinder in the ToolTypes works exactly the same
way it does when changing them interactively. DCMP will always start
with the first sector of a cylinder and end up with the last. So if you
set first and last cylinder to the same value DCMP will compare it
entirely.
All functions in the window are available via gadgets and/or keyboard
shortcuts. I.e. you can for example select a logfile either via the
`Logfile' gadget or by pressing the underlined letter (in this case: `f')
on your keyboard. Alternatively you may activate the string gadget to edit
the logfile name by pressing the `l' key or simply with a mouse click
into it. (If the string gadget is not activated DCMP cuts off the path.)
DCMP has also got a menu strip now. If you like moving your mouse this
is the best way for you to make your selections.
The `Verify tracks' option forces dcmp to read each track twice and compare
the results. This makes it possible to detect weak data.
Depending on the number of drives you specified (1 or 2) DCMP will either
verify this disk or compare them. During the operation the menu strip will
be removed. If a logfile was selected its contents may look somewhat like
this:
This is $Id: dcmp.c,v 1.43 92/09/13 20:15:21 tf Exp $
Compare drive DF0: with DF1: w/ deep read
> Start: Track #0, Sector #0, Block #0
> End: Track #159, Sector #10, Block #1759
3.5" Kickstart disk in DF0:
3.5" Normal DOS disk in DF1:
** Bad sector preamble on DF0: track 137, 2 attempts failed.
** Too few sectors on DF0: track 139, 2 attempts failed.
total: 76 tracks differ on 740 blocks, 2 errors, no weak tracks.
Here is the complete list of differing blocks:
0..0512: Track #000, Sector #00 -- Track #046, Sector #06
671..0673: Track #061, Sector #00 -- Track #061, Sector #02
679..0680: Track #061, Sector #08 -- Track #061, Sector #09
682..0889: Track #062, Sector #00 -- Track #080, Sector #09
1555..1556: Track #141, Sector #04 -- Track #141, Sector #05
1580: Track #143, Sector #07
1582..1583: Track #143, Sector #09 -- Track #143, Sector #10
1604: Track #145, Sector #09
1618: Track #147, Sector #01
1734: Track #157, Sector #07
1753: Track #159, Sector #04
....
....
This list can be of great use, if you want to edit the differing blocks
with a disk-monitor (e.g. DisKey by Angela Schmidt).
The output of the next operation with the same logfile will not overwrite
the last. It will be appended, after a seperation line with date and time.
If you like DCMP (or even if you do not) then write to me. (I would be
happy to receive a postcard of your hometown ;)
-Tobi
IDEAS FOR FUTURE REVISIONS
- DCMP check-disk-until-defect-option to have absolutely trusty
results for the read/write reliability of a disk ;)
- Differing blocks will be documented (BOOT, ROOT, ...) with the offset
of the difference in the block.
- Disk units will be allocated (BUSY) as soon as dcmp comes up. (howdo?)
- The number of cylinders DCMP can access will no longer be fixed to 80
but will depend on the #of tracks the disk offers. (A4000 with HD drive!)
- Reading sector labels will become an additive DCMP option.
DCMP is already able to read them, but I'm not so pleased with
my attempts to implement this option...
AUTHOR
Tobias Ferber, Goethestraße 32, 76135 Karlsruhe, Germany
Earn: ukjg@dkauni2.bitnet
InterNet: ukjg@ibm3090.rz.uni-karlsruhe.de
THANKS
Req.library is copyright 1989 Colin Fox (Pyramyd Designs) and Bruce
Dawson (of CygnusSoft Software).
ReqTools.library is Copyright (c) Nico François.
Corbielaan 13
B-3060 Bertem
BELGIUM
DICE is copyright (c)1990 by Matthew Dillon
891 Regal Rd.
Berkeley, Ca. 94708