THIS IS THE BEGINNING OF THE DOCUMENT ****** FREECOPY Users Guide ***** Page 1. --------------------------------------------------- F R E E C O P Y A Disk Utility for the IBM Personal Computer Users Guide by Donald L. Buresh, C.D.P. Version 1.10 (C)Copyright 1984, 85 Squire Buresh Associates, Inc. $25.00 Requested Contribution --------------------------------------------------- Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 2. TABLE OF CONTENTS Page I. To the Users of FREECOPY 3 II. Running FREECOPY 5 III. Notes on FREECOPY a. The Parameters 6 b. Fragmented Data 7 c. Disk Errors 8 IV. Messages from FREECOPY a. Informative Messages 10 b. Error Messages 13 V. Remarks on User Supported Software 17 VI. Acknowledgements 19 Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 3. I. To the Users Of FREECOPY This is a short summary describing what is on the FREECOPY diskette. FREECOPY is a disk utility that is functionally equivalent to DISKCOPY which is distributed with IBM PC DOS. I am releasing this software into the public domain because I believe that the time has come for users to see and criticize professional quality source code. I welcome all comments on FREECOPY, particularly about any bugs you discover in the code. In developing FREECOPY, I reversed engineered DISKCOPY and made sure that I did not violate the proprietary rights of either IBM or Microsoft. In fact, I took great pains to ensure that FREECOPY is better than DISKCOPY. The three (3) files that are on this diskette are: o FREECOPY.COM - The executable code o FREECOPY.ASM - The source code o FREECOPY.DOC - A users guide The executable code is a binary .COM file that comes in machine readable format. The source code is structured assembly language with lots of comments. This users guide is a short document describing how to run FREECOPY. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 4. FREECOPY is the first of a series of assembly language programs that I am distributing on a user supported basis. I will create significant programs for the PC community. These programs will appear in conjunction with the articles that I am writing for the disk-based magazine PC FIRING LINE edited by Bill Salkin. I am writing the PC DOS/ROM column. If you find FREECOPY helpful, please give the package to other users without alteration so that I can answer people's questions. I am requesting a $25.00 contribution. If you want a copy, send a self-addressed postage-paid mailer along with a formatted diskette to us. No exceptions, please. Regardless of the contribution, users are encouraged to copy and share the program with other users. - Donald L. Buresh, C.D.P. - Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 5. II. Running FREECOPY FREECOPY copies the source diskette on a track by track basis to the target diskette formatting and then writing to the target diskette. The utility does not check the drive letter to see if you specified a hard disk drive. Before invoking FREECOPY, examine the PC DOS prompt (e.g., A> for drive A:) that denotes the default drive. To execute FREECOPY, enter the command: FREECOPY X: Y:/1 where the first parameter X: specifies the source drive, the second parameter Y: indicates the target drive and the /1 parameter instructs the utility to copy only the top side of the source diskette. The disk drives X: and Y: may or may not be the same. If they are equal to each other or omitted altogether, FREECOPY copies the source diskette using a single drive. The program prompts you to insert the appropriate diskette at the correct time. When FREECOPY finishes copying a diskette, the program asks you if you want to continue. If you press Y(es), FREECOPY starts the process all over again with the same parameters that you specified when invoking the program. If you press N(o), FREECOPY returns to PC DOS. The program ignores all other answers except Control-C or Control-Break which also transfers control to PC DOS. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 6. III. Notes on FREECOPY These notes on FREECOPY demonstrate to the user the features and/or limitations of the program. a. The Parameters If you do not specify both disk drive parameters, FREECOPY copies the source diskette using only the PC DOS default drive. For exammple, if the PC default drive is B:, and you invoke FREECOPY with the command: B>FREECOPY the program copies the source diskette onto the target diskette using only drive B:. If you specify only one disk drive parameter, FREECOPY assumes that it is the source drive and that the target drive is the PC DOS default drive. For example, if A: is the PC DOS default drive and you enter the command: A>FREECOPY B: the program assumes that the source drive is B: and the target drive is A:. If the default drive is the same as the drive that you indicated when you entered the command, FREECOPY copies the source diskette using a single drive. This command might look like: B>FREECOPY B: Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 7. If you enter distinct source and target disk drivers, FREECOPY will follow your command exactly. For example, if A: is the PC DOS default drive and you enter: A>FREECOPY A: B: the program copies the the source diskette in drive A: to the target diskette in drive B:. However, if you have only one disk drive on your system, FREECOPY is smart enough to use one drive. If you employ the /1 parameter when invoking FREECOPY, the program copies the top side of the source diskette. If the source drive is single sided, FREECOPY recognizes that this parameter is not necessary. b. Fragmented Data While using a diskette, the sectors that contain your data may not be in sequential order. This situation occurs because PC DOS uses the first available sector when writing files regardless of its position on the diskette. A diskette with fragmented files degrades the performance of PC DOS causing excessive head movement when reading and/or writing a file. If so, you may want to use the COPY command to copy the files from the source diskette to the target diskette. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 8. c. Disk Errors There are many reasons for a diskette error. The two (2) most common reasons are: o The mylar for a given track wears out; or o The contents of the diskette are copy protected by the software manufacturer. All things have a finite lifespan, including diskettes. When the mylar of a track can no longer retain the data, FREECOPY can do very little to recover the information. We recommend that you always maintain a backup diskette of your important data. It is unfortunate that some software manufacturers make it difficult, if not impossible, to copy their programs. It is our opinion that copy protection assumes that everyone will attempt to violate the software manufacturer's rights. One of the fundamental principles of FREEWARE is that the user has the right to examine the quality of the source code before deciding whether or not they want to purchase it. FREECOPY is consistent with the FREEWARE concept and it does not currently break any copy protection schemes. FREECOPY always displays the head and track number that it is currently processing. If the program encounters a disk error, it displays the appropriate message on the screen. Section IV of this manual describes the messages in great detail. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 9. If FREECOPY encounters a disk error for either the source or target diskette, that diskette may or may not be usable, depending on whether the affected track contains valid data. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 10. IV. Messages from FREECOPY The messages that FREECOPY displays on the screen come in two varieties: informative messages and error messages. a. Informative Messages Copy another diskette (Y/N)? If you want to copy another diskette, enter Y(y) and FREECOPY prompts you to insert a diskette in the source drive. If you reply N(n), the program returns control to PC DOS. FREECOPY ignores any other answer except Control-C, Control-Break and Control-Alt-Del. Copy is complete. FREECOPY has successfully copied the contents of the source diskette onto the target diskette. Copying X sectors per track, Y side. This message tells you that a source diskette is a PC DOS 1.0, 1.1 or 2.0 diskette, single or double sided. Correct, and press any key to continue. This message appears when FREECOPY is unable to validate a source diskette for one or more of the following reasons: o The diskette is unformatted; o The first byte of the File Allocation Table (FAT) is invalid; o A double sided diskette is placed in a single sided source drive and the user did not ask FREECOPY to copy only the first side. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 11. A diskette is not in drive X:. FREECOPY displays this message on the screen when there is no diskette in either the source or target drive. Insert source diskette in drive X:. This message tells you when to insert the source diskette into the source drive. Insert target diskette in drive Y:. This message appears on the screen when FREECOPY is ready to copy the source diskette onto the target diskette. Insufficient memory. FREECOPY puts this message on the screen when there is not enough free memory on the machine to contain: o A complete copy of COMMAND.COM, including the resident portion in low memory and the transient portion in high memory (PC DOS 1.0 and 1.1 only); o A copy of the ES:BX table that holds the beginning addresses of each track stored in memory; o A copy of the CHRN table that is used when the target diskette is unformatted; o A copy of the File Allocation Table (FAT) of the source diskette; o At least one (1) track of the source diskette. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 12. Invalid parameter(s) specified. FREECOPY issues this message when a colon did follow a drive letter, a file name appears after a drive letter and a colon, or a /1 occurs in the wrong position. Invalid default floppy disk drive. The program issues this message when the PC DOS default drive is invalid. It can occur when a system has more than four (4) logical disk drives that reside on a hard disk. Note: Copying diskette on a single drive. FREECOPY displays this message and sounds the bell to inform you that it is using one (1) drive to copy the source diskette. Press any key when ready. This message is self-explanatory. Press any key except Control-C or Control-Break to continue the processing. Reading track (XX) head (Y). The program issues this message when it is reading the source diskette. Returning to PC DOS. FREECOPY puts this message on the screen whenever it transfers control back to PC DOS. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 13. Write source diskette again (Y/N)? This message asks a user if he/she wants another copy of the source diskette. It appears only when the computer can store the source diskette completely in memory. Writing track (XX) head (Y). This message tells you the track and head that FREECOPY is writing onto the target diskette. b. Error Messages Address mark was not found. When this message appears, INT 13H was not able to find the CHRN entry that is standard for PC DOS diskettes. The diskette is probably copy-protected by the manufacturer. Bad command passed to the disk interrupt 13H. This is a diagnostic message that was used in debugging FREECOPY. Cyclic redundancy check (CRC) error. FREECOPY displays this message on the screen when the 16 bit CRC character is invalid. This word immediately follows the CHRN entry on a diskette and is generated by the polynomial: 16 12 5 P(X) = X + X + X + 1 where X is any byte of a given sector except the CRC or ID byte. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 14. Disk controller has failed. The program issues this message when the disk controller chip is no longer working. This chip can be the Intel 8272 or the NEC 765. They are functionally equivalent. DMA overrun on an I/O operation. This is a diagnostic message used in debugging FREECOPY. It means that the disk controller chip (i8272 or NEC 765) tried to use more memory than what was allocated to it by FREECOPY. Double sided diskette in a single sided disk drive. This message appears when you place a double sided diskette in a single sided drive and you did not tell FREECOPY to copy only the top side of the diskette. First byte of the FAT does not match any known diskette type. FREECOPY checks the first byte of the File Allocation Table (FAT) for validity. If it is not equal to 0FCH, 0FDH, 0FEH or 0FFH, the program displays this message. Memory control block destroyed. This was used in implementing and testing the PC DOS memory allocation function calls. It should not appear when normally using FRECOPY. Requested sector not found. This message occurs when the sectors of a given track for the source diskette are not in sequential order, starting at one (1) and ending at eight (8) or nine (9). The source diskette is probably copy-protected by the manufacturer. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 15. Seek operation has failed. This message appears when FREECOPY attempts to read or write physical tracks greater than number forty-one (41) or seeks a valid physical track number with an invalid logical track number. If the first case is true, FREECOPY contains a bug. This should not be the case. Probably a valid physical track is holding an invalid logical track number in the CHRN table. If so, the source diskette is copy-protected by the manufacturer. Target diskette is write protected. If this message appears, remove the write protection tab on the target diskette. Tried DMA across a 64K boundary. Since the Intel 8088 processor chip breaks up memory into 64K segments, this message appears when FREECOPY tries to write a track of the source diskette into memory across a 64K boundary. This is a diagnostic message that was used to debug FREECOPY. Unrecoverable format error on target. FREECOPY puts this message on the screen when it is unable to format the target diskette. You should use another target diskette. Unrecoverable I/O error. This message appears when an error occurs and FREECOPY is unable to determine the nature of the error. Unrecoverable read error on source. The program displays this message when it cannot read the source diskette. FREECOPY tries four (4) times before this statement appears on the screen. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 16. Unrecoverable write error on target. This message indicates that FREECOPY could not write the data on the source diskette onto the target diskette. You should use another target diskette. Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 17. V. Remarks on User Supported Software According to Andrew Fluegelman, user supported software is based on the following three (3) principles: o The utility of software can only be ascertained by a user on their own system; o The development of personal computer software should be encouraged by the computing community; and o The duplication of software should be encouraged rather than restricted by copy-protection schemes. The basic assumption behind these principles is that software developers will rely on the individuals in the computing community to support them financially. However, most developers are committed to selling their wares through standard market channels. The market for personal computing software is growing without bound. Advertising and documentation costs are now a significant barrier to the would be entrepreneur. The shelf space of major distributors is commanding premium dollars. This means that within a short period of time, we may see very few new programs on the market. The small software developer will be driven from the marketplace. On the other hand, a computer program is a mechanism to process data and form information. Information is a commodity that is neither non-renewable nor recycleable. It is expandable. If I Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 18. have information and give or sell it to you, we both have it. The net effect of the transaction is positive. The net effect of all other transactions in human history has been zero. If you and I trade two goods, I lose what I have to gain what you have and vice versa. The FREEWARE concept admits that the exchange of software is an informational transaction where both parties gain and yet retain what they had before the transaction. Software developers who are selling through standard market channels are attempting to make an informational transaction into an exchange transaction with a zero net effect. This is impossible in the long run. I am writing user supported software because I believe that it is a viable alternative to selling my wares through the standard market channels. I believe that user supported software will supply the computing community with significant computer programs as soon as professional developers recognize that they can thrive by selling their programs in this fashion. Therefore, I am pleased to offer FREECOPY to the computing community and I welcome other authors to try their hand at creating professional quality software. - Donald L. Buresh, C.D.P. - Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 19. VI. Acknowledgements This is where I thank the people who made FREECOPY possible. My first round of thanks go out to Andrew Fluegelman for inventing the FREEWARE concept. I would like to thank Marshall Goldberg for convincing me that the computing community needs public domain software. I want to thank Patricia Smith and Jim Button for demonstrating to me that an individual can thrive on user supported software provided that they have the right product. My thanks go out to Bill Salkin for creating PC Firing Line and for the many hours of conversation about the magazine. From a technical perspective, I want to thank Brian Markey for indicating how to overcome DMA boundary errors and Harry Keller for demonstrating how to calculate the amount of available free memory. I also think that Keith Beal deserves credit for showing me a documentation system for assembly language programs. The trademarks that I have mentioned in this users guide are listed below. o IBM and PC DOS are registered trademarks of International Business Machines, Inc. o FREEWARE is a trademark of The Headlands Press, Inc. o PC Firing Line is a trademark of ABComputing - Donald L. Buresh, C.D.P. - Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 ****** FREECOPY Users Guide ***** Page 20. VII. List of Bugs Since the first release of FREECOPY, I have corrected a number of bugs. Some were small and some were not. o Ensured that FREECOPY runs on PC with lots of memory. o Flushed the standard keyboard buffer to prevent a user from unwantly typing ahead. o Modified the command line parser to process the TAB character. o Completely revampled the memory management scheme so that FREECOPY uses the PC DOS function calls when running versions of the operating system greater than 2.0 Squire Buresh Associates, Inc. P.O. Box 112 Millbury, MA 01527 THIS IS THE END OF THE DOCUMENT