FLPYCOPY.EXE - Version 1.1 - (c)1992 A Floppy Disk Copy Utility by Barry Pearlman 1229 Traverton Drive Chesterfield, MO 63017 314-532-8022 CompuServe 70304,3450 DESCRIPTION: FLPYCOPY.EXE is a stand-alone utility written to duplicate floppy disks and eliminate the "DOS shuffle". The program creates a holding file in the root directory of C: drive, reads the floppy disk to be copied, and writes the contents of the source floppy disk to the holding file, creating a contiguous file containing the source disk's contents. This duplication is done on a track by track, head by head basis. FLPYCOPY.EXE will process 5 1/4" & 3 1/2" disks of 360K, 1.2M, 720K, & 1.4M capacity only. All other disks will yield an error message. After the target floppy disk (the disk to receive the copy) has been inserted, the program then transfers the contents of the holding file to the target disk, again on a track by track, head by head basis, producing an exact copy. As an option, the program will format disks as it writes to them, and can make multiple copies without having to re-insert the source disk between copies. Options also exist for verification after each read/write operation. Upon exit, the program will remove the holding file from the hard drive. FLPYCOPY.EXE runs in color on EGA/VGA monitors and initially checks for video display types. If it does not find the proper adapter, it will switch to monochrome display. Disk size determination is automatic. All of the hardware operations utilize DOS interrupts and consequently, the program is independent of DOS version and machine hardware variations. The program has been tested on a cross section, but by no means all hardware and operating system variations available. To date, no known hardware or software incompatibilities exist, however, the author of this program must in good conscience suggest that since this program works with hardware interrupts, that your system be fully backed up prior to using this program for the first time. Should a "bug" be discovered, please communicate as many details as possible to the author. The author will try to determine the problem and fix it. The author, however, will accept no liability for the use of this program, nor will he be responsible in the event of lost or corrupted data. DISTRIBUTION: FLPYCOPY.EXE is copyright protected software. This version of the executable program is being distributed as "FREEWARE" and may be freely copied by permission of the author providing that the following conditions are strictly adhered to: 1. The program and its supporting documentation (this document) may be distributed for a small fee, that fee being enough to cover the cost of duplication and distribution only! 2. This document must accompany the executable file. 3. FLPYCOPY.EXE may not be incorporated into any other program, executable or otherwise, that is being distributed under any other method other that as outlined in number 1 above. Page 1 4. Any violation of 1. 2, or 3 above shall automatically revoke the permission of the author to distribute this program, and shall place the offender in jeopardy of violation of the copyright laws. Registration is not required, however, it is encouraged. By communicating your name and address to the author, you will be advised of any future updates, improvements, or fixes. Your suggestions and comments will also be greatly appreciated, along with any and all ideas for additional features or additions. PROGRAM CODE: FLPYCOPY.EXE was written, compiled, and linked entirely in Microsoft C, Version 6.0., to produce a stand-alone executable file. A copy of the source code on disk may be purchased from the author for a fee of $25.00. Purchase of the source code shall allow the purchaser to incorporate all or part of the source code into other programs. ACKNOWLEDGEMENTS: The author would like to thank Stephen D. Cooper and Ken Hipple for their work on the programs 2FILE.EXE and 2FLOPPY.EXE. published by Ziff Communications Co., PC Magazine, which was the inspiration for writing this program. OPERATION: FLPYCOPY.EXE is a simple utility to operate. Upon execution, the main (and only) screen will appear and ask the user to "ENTER FLOPPY DISK COPY SPECIFICATIONS". Pressing CR will accept the displayed defaults; the Up and Down arrow keys move the selection pointer. F1 will display Help information about the specification adjacent to the selection pointer. The specification choices are as follows: Disk Drive Letter: This is the floppy drive in which the copy or verify is to take place. The SPACEBAR toggles between A: and B:. If a B: drive does not exist but is selected, an error message will be displayed. See the section on error messages. Verify After Read: Selecting [Y]es will cause the program to re-read the disk and compare it, on a track by track, head by head basis against the hold file created in the root directory of C:. Selecting [N]o will bypass this step. Verify After Copy: Selecting [Y]es will cause the program to re-read the hold file and compare it, on a track by track, head by head basis against the target disk copy. Selecting [N]o will bypass this step. Format Target Disk: The default [Auto] selection will check the target disk prior to writing. If the disk is formatted and is of the proper size, the program will write to the target disk without formatting it. If the program senses that the disk is not formatted, it will format a track, then write a track, then format a track, etc. [O]n causes the program to format the target disk all of the time. [O]ff turns off the format feature. Page 2 NOTE: Attempting to format a high density disk at low density will produce a low density disk. Attempting to format a low density disk at high density may produce an error, or at best, a diskette with reduced reliability. Should an attempt be made to format a low density disk at high density, it may fail and produce an error message. If this happens, the disk may be recovered with any of the commercial disk recovery utilities such as The Norton Utilities Disk Tools program. Toggle your selection with the SPACEBAR. Audible Alarm Signals: [Y]es turns on the alarm and prompt signals. [N]o turns them off. Verify Only - NO COPY: [Y]es does a track by track, head by head verify between a source and a target(s) disk. The program does not write to the disk during this operation. This will override the copy function. [N]o turns this feature off. Quantity (999 max.): Determines the number of disks to be copied or verified from a single source disk. Pressing the + key will cause the number to increment upwards. Holding the + key down for approximately two seconds will cause the numbers to then start incrementing by a factor of 10. The - key works the same way, only it decrements the quantity. OPERATION: Once the specifications have been selected, [CR] will accept the specifications and start the copy/verify process. [ESC] will clear the selected specifications and display the default settings. [Q] will exit the program. Once the program has been started, it makes several system and hardware checks and if no errors are found, will display the information on the right side of the screen. = Total Disk Tracks: Indicates the total number of disk tracks to be processed. = Total Disk Sectors: Indicates the total number of sectors per track to be processed. = Total Disk Capacity: Indicates the generic size of the disk being processed. To eliminate format errors, use this to determine the correct target disk size while reading the source disk. = Current Disk Track: Indicates the current track being processed. Please note that tracks are numbered starting from 0. = Current Disk Head: Indicates the current head being processed. Please note that like tracks, heads are numbered starting from 0. = Current Operation: Will indicate Wait, Read, Write, or Format, depending on the current operation in progress. Page 3 = Disk # In Process: Indicates "Source" if the program is processing the source disk, or the number of the target disk being processed if a target disk operation is being performed. Completed Display: The moving bar graphic and % completed indicate how much ofthe disk has been processed during the current operation. Note: If during the processing of either the source or target disks you elect to stop the process, the [ESC] key will abort the program and return you to a standby condition. Processing will abort ONLY between the processing of tracks, as opposed to in the middle of a track, allowing the program to complete its operation on that particular track. Since the program processes track X, head 0 then head 1, a momentary delay may be observed after pressing the [ESC] key. This is normal. When the program has read and stored the information on the source disk, it will prompt you to insert the target disk. At this point in time, you may continue, restart, or exit the program. FLPYCOPY.EXE creates a holding file, called FLPYCOPY.HLD in the root directory of C: drive for use as the temporary holding file. If sufficient room does not exist on the drive, an error message will be displayed. Since any file kept on any disk does have the remote chance of being corrupted, FLPYCOPY.EXE does not keep this file when it is finished and will automatically delete it. Rules for good system management dictate that duplicate copies of all important files should be kept off site in a safe place, and that practice is highly recommended. ERROR MESSAGES: SPECIFIED FLOPPY DRIVE IS NOT READY - The door to the drive is not closed properly, or some other hardware problem is preventing the program from reading the disk. ERROR READING SOURCE FLOPPY DISK - POSSIBLE UNFORMATTED DISK - The program cannot determine the size of the floppy disk. Either the disk is not of a standard size, or it is unformatted. FLOPPY DRIVE WRITE PROTECTED - An attempt was made to write to a disk that is write protected. Correct the situation and proceed. UNABLE TO READ SECTOR OR BAD SECTOR FLAG - The disk drive is having trouble finding the sector header information. This may be caused by a defective or corrupted floppy disk. Try formatting the disk with the Format [O]n, use a commercial program to revive the diskette, or discard it and try another. FLOPPY DISK ERROR - POSSIBLE BAD BLOCK - The floppy disk may have a sector or several sectors marked bad. This is unusual for normal disks, however, it is not uncommon as a copy protection scheme. This disk cannot be copied or verified by this version of the program. FLOPPY DISK ERROR - POSSIBLE ATTEMPT TO FORMAT WRONG SIZE DISK - An attempt was made to format a low density disk as high density. The diskette may be salvaged by the use of one of the commercial disk recovery programs. A MISCELLANEOUS FLOPPY DISK ERROR HAS OCCURRED - An error was detected by the program that does not fall into any of the categories listed above. Page 4 INSUFFICIENT AVAILABLE SPACE ON DRIVE C: TO CREATE TEMPORARY HOLDING FILE - The program has calculated the amount of space needed to create the temporary holding file and has checked the available free space on C: drive. There is not enough free space left. Exit the program, free up some space, and try again. CANNOT FIND B: DRIVE INSTALLED - The program has checked the ROM setup files and cannot find B: drive. UNABLE TO CREATE TEMPORARY BUFFER IN MEMORY! - The program must open a buffer (two if verification is enabled) in memory equal to the size of the number of sectors on a track X 512 for temporary storage and was unable to do so. UNABLE TO OPEN OR CLOSE TEMPORARY HOLD FILE ON DRIVE C: - The program was unable to open or create the temporary hold file in the root directory of C:. AN ERROR OCCURRED WHILE TRYING TO READ OR WRITE TO DRIVE C: - Self explanatory. TARGET DISK NOT EQUAL IN SIZE TO SOURCE DISK - The program has calculated the formatted size of the target disk and it is not the same as the source disk. Remove the target disk and insert one of the proper size. VERIFICATION ERROR ENCOUNTERED - The program attempted to verify data and failed. Either the disks are not the same or an error occurred during the copy process. DISK FORMAT ERROR ENCOUNTERED - The program was unable to format the target disk. The most common cause of this error is an attempt to format a low density disk as a high density disk. UNKNOWN DISK FORMAT ENCOUNTERED - The program will only copy 360K or 1.2M 5 1/4" diskettes and 720K or 1.4M 3 1/2" diskettes. Some other format has been encountered. ROM Bios May Not Support Formatting. See Instructions - The program has checked the ROM Bios and determined that it has a date prior to 10/1/86. Machines produced prior to this may or may not support formatting with machine interrupts such as this program uses. You may proceed and attempt to format the disk, however, it is strongly suggested that you check the disk after using the program. If the program cannot format and write, format the disks first using your normal method and then switch the formatting specification to [N]o.