************************************************************************ FMT version 2.00 : Written by Clair Alan Hardesty : 07-FEB-1993 Fast floppy disk formatter for AT compatible computers Features: 1: Format verification is an option, allowing fast formatting on known good media by not specifying it. 2: Generates DOS version 4.0 style volume serial numbers. 3: The system files may be copied, producing a bootable floppy. 4: The "insert disk" prompt may be bypassed, easing use in batch files and speeding formatting of a single floppy already in the drive. NOTE: Use with caution, as formatting begins immediately! 5: Recursive formatting is optional. 6: All program output is to STDOUT, allowing redirection. 7: Extensively commented source code is included. 8: The boot sector data is coded entirely in assembly language, this is a feature that I have not seen in any other floppy format program. I hope this provides others with an increased understanding of DOS and of the possibilities of assembly language programming. 9: A plethora of error messages and exit codes provide detailed program fault information. 10: Program progress display is informative without being verbose. 11: Small code size: approximately 7 Kb. 12: The floppy boot sector contains the drive parameter table, this should help in making nonstandard formats bootable, (something I may attempt in the next major revision). ************************************************************************ The source code for FMT has been included for several major reasons: 1: To provide the user with peace of mind, (you are encouraged to examine the source and compile it yourself), as any program that does low level disk I/O is a potential nemesis. 2: To share what I have learned from writing it with others. 3: To encourage others to do likewise. 4: To show off (not too boisterously, but I am proud of my work). Users are permitted to use any portion of the source code in any program written for distribution, commercial or otherwise, including distribution of the source code, providing credit is given where credit is due. You are encouraged to distribute the original files, provided they are unaltered and distributed as a set. The files are: 1: FMT.ASM - the source code 2: FMT.COM - the compiled program 3: FMT.DOC - this file in Microsoft Word for Windows 2.0 format 4: FMT.TXT - this file in standard ASCII format I may be contacted at: (916) 478-8201 Voice (916) 478-8251 FAX On the Internet at: gclairh@gvpc37.ssi1.com or in writing: Clair Alan Hardesty Design Validation Engineer II Silicon Systems, Inc. 138 New Mohawk Road Nevada City, CA 95959-3262 ************************************************************************ Syntax: FMT d: size [V] [S] [D] [N|R] [U] where: d = drive (A or B), size = floppy size in Kb, the optional V enables format verification, the optional S copies the system files, the optional D enables the enhanced DOS compatibility mode, the optional N bypasses the prompt, the optional R enables recursive formatting with prompting, the optional C enables the 720K 1 sector per cluster option, and the optional U creates a UNIX disk (F6h fills entire disk) supported sizes are: 360 for a 360 Kb floppy in a 360 Kb or 1.2 Mb drive 720 for a 720 Kb floppy in a 720 Kb, 1.44 Mb, or 2.88 Mb drive 1200 for a 1.2 Mb floppy in a 1.2 Mb drive 1440 for a 1.44 Mb floppy in a 1.44 Mb or 2.88 Mb drive 2880 for a 2.88 Mb floppy in a 2.88 Mb drive notes: 1:When the N option (bypass prompt) is used, formatting begins immediately (be sure the proper floppy is in the drive). Only the break key will abort the format (escape is disabled), this allows the user to type ahead of the format command. ************************************************************************ Exit codes: 0 = successful format 1 = failure during format, verify, or write 2 = disk size / drive type combination is not supported 3 = requested drive does not exist 4 = invalid or null command line 5 = system files not found or error writing system files 6 = computer is not AT compatible 7 = insufficient memory for file copy buffer (system transfer) 8 = insufficient stack space for program 9 = program aborted by user (Control-C, Break, or Escape) 10 = unknown drive type (CMOS RAM says floppy type is greater than 5) 11 = memory allocation error (while attempting to reduce memory) 12 = both N and R options specified (only one allowed) 13 = 720K option secified, but not 720K format ************************************************************************ In order to use the system transfer option, the following files must be in the root directory of the default drive: 1: IBMBIO.COM or IO.SYS (normally a hidden file) 2: IBMDOS.COM or MSDOS.SYS (normally a hidden file) 3: COMMAND.COM ************************************************************************ To compile with Borland Turbo Assembler version 1.0 or greater: tasm /t fmt tlink /t /x fmt or tasm /t /zi fmt tlink /v /x fmt tdstrip -c -s fmt for use with Turbo Debugger ************************************************************************ To compile with Microsoft Macro Assembler version 5.0 or greater: masm /t fmt; link fmt; exe2bin fmt fmt.com del fmt.exe ************************************************************************ Microsoft(R) is a registered trademark of Microsoft Corporation IBM(R) and PS/2 are registered trademarks of International Business Machines Corporation Turbo Assembler(R) and Turbo Debugger(R) are registered trademarks of Borland International ************************************************************************ Revision history: Version 1.00 : 23-JAN-1990 Initial public release Version 1.10 : 03-FEB-1990 Fixed MASM bugs Added MASM version 5.0 compatibility Improved compatibility for drive type determination Added a break handler and "user abort" message Added some new exit codes Improved the boot record code Improved computer compatibility (some Wyse computers have problems) Version 1.20 : 10-JUL-1990 Fixed serial number generation to match IBM format exactly Fixed system file transfer to work with IBM or Microsoft DOS Modified the user abort code to accept the ESCAPE, CONTROL-C, or BREAK keys, and fixed some bugs in the user abort code Added recursive formatting capability Version 1.30 : 22-DEC-1990 Comment clarifications Minor code improvements Version 1.40 : 21-JUN-1991 Improved compatibility for some machines (mainly PS/2s) Version 1.50 : 28-FEB-1992 Upgraded to MS-DOS 5.0 with support for 2.88 Mb floppy drives Fixed a bug in the reset subroutine retry code Version 1.60 : 09-MAR-1992 Fixed a bug in the format subroutine that caused some machines (COMPAQs) to fail verification. Thanks to Ralph Riggs for pointing out this bug and assisting in it's eradication. Version 1.70 : 01-NOV-1992 Fixed a bug in the stack check code. Added the UNIX format option. Removed the copyright - released to the public domain Version 2.00 : 07-FEB-1993 added 720 Kb floppy 1 sector per cluster option ************************************************************************ The current version (2.00) was compiled with Borland Turbo Assembler version 3.1 and linked with Borland Turbo Linker version 5.22b ************************************************************************