MAG Disk (Dec 1989) : DUTILS2.DOC


                           MANUAL FOR DUTILS2

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 ED. NOTE: Having used Mike's useful DUTILS, I'd suggest using it with
 an Interlace screen, or keep in mind that there are BACK-TO-FRONT gadgets.
 That is, things might be happening behind the main Dutils window (such as
 when you Edit files or whatever), and it may be worth even setting up a
 special disk for your Dutils use - set Preferences to Interlace, save,
 reboot, and spread out the windows. This is a very powerful program if
 you care to experiment with it. ( See Jonathan Potter's Basic_Tute for
 how to set up special disks.)

 DUTILS2 can be used to back up and restore the virus-vulnerable  boot
 blocks of your games disks - it's worth doing this as soon as you get a
 new game. (See "Utilities_Readme" for a further discussion of this.)

 Note that when you open Dutils2, you'll see a "rainbow" effect, which is
 simply the program being "unpacked", ie de-compressed, before being
 loaded. This is useful for reducing the size of a program - Dutils2 was
 about 63K before being packed to 37K or so.

 Mike tells me to inform people who have already sent in a SHAREWARE
 contribution for the original DUTILS ($10 suggested if you use the program
 regularly) that they will get the final manual for DUTILSII, along with
 any serious enhancements, as they occur. He's been flat out like a lizard
 drinking with the development of this version, and hopes that everyone
 understands that he's got a normal job, wife, kids and so forth. He also
 wants to make the point that SHAREWARE WORKS...sometimes, at least with
 Dutils, and wants to thank everyone who took the trouble to send in a
 contribution over the last couple of months. And there's no doubt that if
 the users of shareware products send in something (like dollars or disks),
 these talented programmers will keep putting out high-quality, low-cost
 software. Whip out the cheque-book, Beryl!


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

                               INTRODUCTION

        DutilsII is the second version of my Dutils program, now with an
 Intuition user interface. As you will see when run run DutilsII it looks
 somewhat like one of the Directory Utility type programs that have been
 evolving for some time on the Amiga. This should not be surprising as it
 has most of the functionality of these programs, with a lot more added.
   I have built in VIRUS DETECT and KILL functions for both the SCA and
 BYTE BANDIT viruses, a SECTOR EDITOR, a FILE EDITOR, DISKCOPY, FORMAT,
 DISK ERROR CHECK, MULTIPLE FILE SOUND PLAYER, MULTIPLE FILE SLIDE SHOW
 and other utilities.
   In this document I will not be describing how to drive a Directory
 Utility program, only where DUTILS differs. The final user manual, (yes, I
 am actually writing one), will provide more detail.

                              GENERAL LAYOUT

        The top left of the screen contains the usual file display. One
 difference here is that any selected file or directory will be highlighted
 in system colour 3. DUIII actually uses 2 different colours, I found this
 confusing. The top right of the screen is the track and sector selection
 area. There is a bunch of gadgets here to select which drive, cylinder and
 sector to use for the sector editor, or any other track/sector read
 operation, while below it is a similar cluster of gadgets for the
 destination drive. This drive is the TARGET drive of write operations,
 e.g. Format. There is one odd gadget in the source drive area, this is the
 'NUMBER OF SECTORS' gadget. The value entered here is used by the 'Backup
 Sectors' function. More on this later.
   The bottom of the window contains all of the FUNCTION SELECTION GADGETS
 as well as 3 STRING GADGETS. The 'S' (or SOURCE) string gadget is used
 to enter or display the drive volume and subdirectory selection. The 'D'
 (or destination) string gadget is used to specify a DESTINATION or
 second filename. This string gadget can be used to enter parameters for
 a number of other functions. These will be discussed in their relevant
 sections later. Between these 2 string gadgets is a gadget marked
 'S -> D'. As may be inferred, clicking this gadget will copy the source
 filename to the destination string gadget. This saves time and
 keystrokes. NB: Unlike some DirUtil type programs this is not a swap
 function, it copiess to D only.

                        The FUNCTION SELECTION GADGETS.

   As discussed above, the 4 rows of gadgets at the bottom of the window
 are used to select a function to be performed. These will be discussed
 seperately below.

         The top row of gadgets.

   These should be quite self-explanatory to those who have used a DirUtil
 type program before. They select which drive (or volume) should have its
 directory displayed. The Parent gadget takes the source filename back one
 level of subdirectory nesting while the Root gadget goes right back to
 the root directory.
   e.g.  source filename is df0:devs/printers. Clicking PARENT will  change
 the source filename to df0:devs and the displayed directory will be
 updated also. Clicking Root would have changed the filename to df0:.

         The second row of gadgets.

        The DISKCOPY function provided by Dutils uses the Drive selection
 gadgets at top right of the screen to determine the source and destination
 drives. They default to source = 0, and destination = 1. Any 2 different
 drives may be selected. NB: Dutils does NOT support a single drive diskcopy
 at this time. You will next be prompted via an Auto-Requester as to whether
 you wish to VERIFY the diskcopy. If you select YES, then after the read/write
 pass an additional read back of the written data will be done. As this takes
 longer and if you use good quality media, I generally do not recommend that
 you use Verify. If a read error should occur on the source disk then you will
 be prompted as to whether you wish to format the destination track. The
 positive response causes Dutils to format the corresponding track on the
 destination drive. If you select NO then the destination track will be
 left untouched. If the destination disk has not be used before this will
 leave a 'hole' in the structure of disk. ie A future diskcopy operation
 will again see an error as the destination track has absolutely no data
 at all. On the other hand if you format the track, a future diskcopy  will
 go through without error but the directory structure may well have a hole
 in it. Obviously, if part of a file was on the source track that could
 not be read then the destination file structure is mangled. I'd suggest
 that to recover as much data as possible format the destination track.
 NB: On subsequent errors Dutils will format or leave the destination
 track as you have previously selected, ie you will not be prompted
 further.  When the copy is complete, you will be prompted as to whether
 you would like to copy again. At this point you may change the destination
 or both source and destination diskettes and do another copy.
   As Dutils uses trackdisk.device exclusively to do the disk read/write
 operations it is generally quite reliable and does not introduce spurious
 errors on the copied disk as some well known commercial copiers seem to do.
   The diskcopy operation is not intended to backup protected software.


                          THE FORMAT FUNCTION.

        FORMAT provides an AmigaDOS compatible format function without icons
 for the disk or trashcan. The disk label may be entered into the D string
 gadget before Format is invoked. If no label is specified Empty is assumed.
 [ie, your formatted disk will be called EMPTY.]
        NB The destination drive (default is df1:) is used as the target
 for the format. You will be prompted as to whether you wish a VERIFY
 pass. Like the Diskcopy function, verify is not mandatory, but can be
 very useful for checking suspect diskettes. If errors show up in the
 verify pass, consider throwing that diskette out. It just isn't worth
 losing data to save a couple of bucks on a suspect disk! The FORMAT VERIFY
 works somewhat differently to the DISKCOPY VERIFY in that FORMAT will format
 the whole disk, then verify the whole disk from cylinder 0 to cylinder 79 in
 one pass. The verify pass may be interrupted by clicking on the Stop gadget
 at lower right.

                        THE ERROR CHECK FUNCTION.

        Error Check (ERRORCHK) performs a read pass over the selected
 source drive in a similar manner to the DiskCopy or Format functions.
 You will be prompted as to whether you wish the error report to be dumped
 to the printer as well as the screen. If you wish this you will be further
 prompted to enter a comment to be printed along with the error report, if
 any. If an error occurs a descriptive error message will be displayed on
 the screen. NB: This function is quite reliable. If it reports an error it
 really is there, conversely if no error is reported then none exists.
        This should be so for all programs but a certain program that is
 very widely used and quite well known not only erroneously reports errors
 on tracks that do not have errors but typically reports the error codes
  as 1 higher than they really are, eg error 21 is reported as error 22.


                       THE FILECOPY FUNCTION.

        FILECOPY copies the selected file (or files) to the
 nominated destination subdirectory. If the SOURCE is in fact a directory
 and there is a path to c:copy, then a directory copy (along with all
 subdirectories) will be performed. NB: Dutils is not yet capable of
 copying subdirectories by itself. It needs to use the AmigaDOS 'copy'
 command. If no path exists to 'copy'then a directory copy will not be
 performed.

                        THE RENAME FUNCTION.

        The first selected source file is renamed to the nominated
 destination filename. NB: Only the FIRST slected source file will be
 renamed. A planned update will allow multiple source files to be renamed.
 This will in fact implement the useful 'Move' option of DirUTil type
 programs.

                        THE DELETE FUNCTION.

        All selected source files are deleted. If a directory is selected
 as the source file and a path exists to the AmigaDOS delete command the
 directory (and all subdirectories below it) will be deleted. See FILECOPY.

                        THE MAKEDIR FUNCTION.

        A directory will be made in the current directory with the name
 specified in the D string gadget.

                         THE GETDIR FUNCTION.

        The selected subdirectory will be examined, sorted and displayed.
 This directory will become the current directory.

                        THE ALL/NONE FUNCTION.

        This gadget implements the functions of 2 gadgets normally found
 in DirUtil type programs, namely All and Clear. Clicking once will
 select and highlight all files (but not sub-directories) in the current
 directory. Clicking again will deselect all files but not effect any
 subdirectory selected.

                        THE INSTALL FUNCTION.

        DUTILS provides an AmigaDOS compatible INSTALL function. INSTALL
 is used to make a disk bootable or to overwrite virused boot sectors,
 i.e.,  cylinder 0, head 0, sectors 0 and 1. The DUTILS INSTALL has the
 added benefit of being able to install boot sectors that will NOT be
 infected by the SCA virus. I have left the option to install 'Normal',
 i.e., absolutely AmigaDOS compatible, boot sectors as well. This way if
 the Anti-SCA virus protection should prove to be a time-bomb.....
 well, I did give YOU the option. I will also be investigating a possible
 anti-BYTE BANDIT boot sector. It appears that if this is possible it
 won't be compatible with anti-SCA virus boot sectors. As the BYTE BANDIT
 virus is considerably more of a nuisance it should take precedence.

   N.B.: Do NOT install protected disks. This may destroy their ability to
 boot. See BACKUPS/RESTORES below for more detail.

        The full manual will have a detailed description of viruses, how
 to deal with them and avoid them. [ED: see also MegaBites this issue, and
 the Virus Eliminators/Checkers on MD6.]

                         THE BackupS FUNCTION.

        The Backup Sectors function along with its counterpart
 RestoreS(ectors) are more ANTI-VIRUS UTILITIES. The Backup Sectors
 function is designed to allow any sectors (on the source drive), but
 primarily the BOOT SECTORS (as discussed in Install above) to be saved in
 a file on another disk. The file used should be specified in the D string
 gadget. With a copy of the boot sectors of your favourite games stored
 safely away you need never fear losing another protected disk to a virus
 again. NB A lot of games (eg all Psygnosis games and many others) use the
 boot sectors to provide a loader to load their copy protected program code.
 The viruses also like to live in the boot sectors. As only 1 program can
 live there guess which loses out...that's right, NOT the virus!
        As a file holding the boot sectors of a disk is only 1024 bytes
 you can store a lot of them on 1 diskette. Cheap insurance I'd say! It's
 not always easy to pick the disks with custom boot sectors but as a rule
 of thumb backup any that change screen colour or display a picture
 on the screen very shortly after you insert the disk into df0:.
         I'd suggest you go through your collection of disks and backup
 the boot sectors 'Real Soon Now'. I wonder if software distributors would
 feel it a breach of copyright if these boot sector files appeared on
 electronic bulletin boards?

                         THE RestoreS FUNCTION.
        RestoreS (ie Restore Sectors) is the companion to Backup Sectors
 discussed above. Use this function if you have a disk that has had its
 special boot sectors infected by a virus. The selected source file will
 be written into the sectors specified in the destination drive selection
 area (mid right hand side of window).

                          THE COMPARE FUNCTION.

        The Compare function is actually two fuctions in one. If a source
 file and a destination file are both specified a FILE COMPARE will be
 invoked. If this is not the case a disk comparison will be done.

                             FILE COMPARE

        The File Compare is on a byte by byte basis, not line by line.
 As with many Dutils functions you will be asked to enter the starting
 address for the comparison, i.e. you do not need to start at the beginning
 of the source file. You will next be prompted as to whether you wish to
 print the results. At each 10 mis-comparisons you will be prompted as to
 whether you wish to continue with the COMPARE.

                             DISK COMPARE
         The Disk Compare requires 2 drives. At each 10 mis-comparisons you
 may skip to the continue, quit, skip to the next sector, or skip to the next
 track. As usual you have an option to print the results.

                          LIST FILE FUNCTION.

        The LIST FILE function is similar to the TYPE function except
 that the text is output using any imbedded carriage return codes to
 terminate the line. This gives a formatted appearance to ASCII (document)
 files. You may scroll through the file using the FORWARD gadget below
 the display window. The STOP gadget is also active at this point. It
 allows you to end the LIST function before the end of the file is reached.
 Binary (executable programs, etc) may display as garbage, in this case use
 the TYPE function instead.

         A future enhancement will provide a backward and print option
 for this function.

                        THE EXTRACT FILE FUNCTION.

        The ExtractF(ile) function is used to copy any part of any file
 to another file. This can be particuarly useful in extracting sound
 effects for example. Firstly, you will be prompted to enter the starting
 address within the source file, then the number of bytes you wish to
 extract. As the file is being extracted the number of bytes left to
 extract will be displayed at the bottom of the window. This is to let you
 see the progress of the function.

                           THE SEARCH FUNCTION.

        SEARCH allows you to find a string of up to 5 characters in a file.
 The search string must be specified in the D gadget before invoking SEARCH.
 Hex numbers may be imbedded within the search string by preceding them with
 a '\' character. eg TheC\12 -> would search for 4 ASCII characters, 'TheC',
 followed by 12 hex. You may embed hex characters anywhere within the string.
 N.B.: following a \you must give 2 valid hex characters otherwise Search
 will not parse the search string correctly.You may select multiple files to
 be searched. In this case you will be prompted at the completion of the
 search of each file. This is to leave the results on screen for your perusal.
 Acknowledging that the search has finished starts the search of the next
 file. If you select a single file to search, you will be see several more
 prompts. Firstly, you will need to specify the starting address. You will
 also be given the opportunity to copy the results to the printer. Near the
 top left of the window you will be able to observe the progress of the search,
 i.e., the address of current point in the file being compared against the
 search string is displayed. You may interrupt the search by clicking on
 the STOP gadget.

                            THE PLAY FUNCTION.

        The play function is one of the more unusual aspects of Dutils,
 it allows reproduction of sound effects. In a somewhat similar manner
 to SEARCH above it behaves differently depending on whether you select 1
 or multiple files. If you select multiple files, Play will load them and
 play them at the default playback rate of 10000 samples per second.
 That's 10000 bytes for each second of sound. That's why sound effect
 files can be so big. If the file is IFF the playback rate will be
 extracted and used. If the file is IFF and stereo it will be played back
 in stereo. If only a single file is selected you will next be asked if
 you would like the sound to repeat. If you select YES you will see
 another requester asking whether you would like a pause between repeats.
 If you choose to repeat the sound effect you may interrupt the repetitions
 by clicking on the STOP gadget. Next you will be asked whether you wish
 to vary the playback rate. A value of 20000 samples/sec obviously plays
 the sound at twice normal speed. A value of 5000 samples/sec allows half
 speed. It can be quite amusing to create quite different sounds from a
 sample just by altering the playback rate. The playback rate should
 be entered into the D gadget before selecting play. Simply enter the
 decimal value (eg 10000). You will finally be prompted as to whether you
 would like to PLAY the file again.

                             THE SHOW FUNCTION.

        The SHOW function displays IFF pictures. Selecting multiple
 files can give a SLIDE SHOW EFFECT. If a decimal number is entered into
 the D gadget before SHOW is clicked that value will be interpreted as
 being a number of seconds to keep the last picture on screen before the
 next is displayed. Otherwise click the left mouse button when ready to
 proceed.


        We are now down to the BOTTOM ROW OF GADGETS. These are mainly
 for EDITING FILES AND SECTORS with the exception of ABOUT and STOP.

                            THE ABOUT FUNCTION.

        Clicking on ABOUT simply displays some info about the program.
 There is a way to avoid seeing this screen each time you run DUTILS. All
 registered users will be informed how to do this. Until you register you
 will see it.

                    THE BACKWARD AND FORWARDS GADGETS.

        These are used simply to move backward and forward in a file or
 sector display, once that display is on screen.

                             THE RUN FUNCTION.

        This is one of the most useful functions of Dutils. It has 2 modes of
 operation also. If you select a (executable) file and then click RUN, Dutils
 will attempt to run the program. This generally works provided that the
 program being executed has a path to any other files it may need, and that
 enough memory is left. The other way to use this function is to enter any
 valid command line into the D gadget and then click RUN. e.g., Entering the
 following:  'copy fonts all df0:dummy' will (provided there is a path to
 'copy') copy the whole fonts directory including all sub-directories within
 the fonts directory. The results of running either way are put into the
 DUTILS-OUTPUT window which is actually behind the main window of Dutils. You
 may examine this window anytime by using the usual WINDOW FRONT/BACK GADGETS.

                      THE TYPE AND HEXTYPE FUNCTIONS.

        These are basically the same except that TYPE displays the
 file or sector selected in ASCII printable characters, with any
 unprintable characters displayed as periods. HexType displays in both
 Hex and ASCII, but can display only 1 quarter as much data on screen as
 TYPE. If a file is selected and TYPE or HEXTYPE is clicked then that
 file will be displayed on screen. You will get the opportunity to select
 the starting address. If a file is not selected when TYPE or HEXTYPE is
 selected then the selected sector will be displayed.

                            THE EDIT FUNCTION.

        To use EDIT you must have previously selected a file or sector
 and clicked TYPE or HEXTYPE. EDIT works on that data shown on screen
 only. Clicking EDIT now will cause a prompt to be displayed asking the
 starting address to edit. You may specify any address in the range
 displayed. You may now skip over bytes of data by pressing return, go back
 through the data by pressing BACKSPACE or stop the EDIT function by
 pressing the 'ESC' key. If data has been modified, i.e., you actually did
 edit something, you will asked to confirm the write back of the modified
 data. If you answer negatively the disk data will not be updated.

                            THE PRINT FUNCTION.

        PRINT will only print data displayed on screen by TYPE or
 HEXTYPE, or by LIST. If you choose to print the screen data, you will be
 asked to enter a comment as explained above.

                             THE STOP GADGET.

        STOP is used to interrupt functions like FORMAT, DISKCOPY, SEARCH,
 etc. A requester will be displayed asking you to confirm the ABORT of
 that function. If no operation is underway STOP has the same
 functionality as clicking the WINDOW CLOSE GADGET, that is, to terminate
 DUTILS. Termination of DUTILS must be confirmed by another requester.


^^^^^^^^^^^^^^^^^^^^^^^^ END OF DUTILS_MANUAL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^