********************************************************************* * NFORMAT - THE SUPERIOR DISK FORMATTER * ********************************************************************* NFORMAT is a disk formatter designed to dynamically format floppy disks for MS/PC-DOS. The internal parameter editor or command line options let you specify parameters that allow you to get up to 23% more data space from your floppy disks. NFORMAT offers: * A self-contained, user-friendly menu * Mouse support! * Automatic setup for standard and maximum formats * An editor for the disk parameters * Superior media defect detection * Multiple verification techniques * Easy to use command line parameters * Support for older versions of DOS Recommended for the simplest operation: + A standard 360k, 720k, 1.20m, or 1.44m drive + An AT class machine or better + MS/PC-DOS version 3.2 or higher + A mouse! How to use NFORMAT: Simply run the program NFORMAT. If you are using an AT class machine with DOS 3.2 or higher, NFORMAT will automatically retrieve the parameters for your drives. The parameters are then saved to disk in the file NFORMAT.CFG. The menu will list the drive letters followed by the data size of the disk format. To select the format you desire, highlight the format using the arrow keys and press ENTER. If you are using a mouse, you can select by using the mouse cursor. Move the cursor to the menu item and press the first mouse button. NOTE: Throughout NFORMAT, the first mouse button has the same function as the ENTER key. Also, the second mouse button has the same function as the ESCAPE key. The formatting screen will display all available information about the format you requested. NFORMAT will prompt you to insert the disk you wish to format. At this point, you may press ESCAPE to exit back to the menu, or press any other key to begin formatting. WARNING!: Formatting the disk permanently erases any data on that disk! While formatting, any bad sector information will appear in the BAD SECTORS window in the upper right of the screen. The current process will appear in the box in the center of the screen. Any system errors will appear in the upper left of the screen, and prompt for user action. When NFORMAT finishes formatting the disk, NFORMAT will prompt you to enter a volume label. Since the label is written directly to the disk you may enter both upper and lower case characters. If you should need to exit NFORMAT before formatting is complete, you may press escape. The error box will prompt you to confirm that you wish to exit. Once formatting is complete, NFORMAT will return you to the main menu. From the main menu you may, if you wish, format another disk. WARNING: Exiting the formatter before formatting is complete will cause the disk to be unusable to DOS. To make the disk useable it will need to be reformatted. ********************************************************************* About the Menu: When you are in the SELECT FORMAT menu, the entry that you wish to use is highlighted. The highlight bar moves by using the up arrow key and the down arrow key. Selecting a format may also be done using the mouse. Once you have highlighted the entry, you may press: ESCAPE- Immediately leaves NFORMAT. ENTER - This accepts the format and enters the formatter. L - Reloads the disk parameter configuration file (NFORMAT.CFG) from disk. V - Turns disk verification on or off. Verification should always be ON. E - Allows you to edit the parameters for your drive. I - Inserts a new record for the parameter table. This record is temporarily filled by a copy of the format above or below it. D - Deletes an unwanted entry in the menu. M - Allows you to move an entry around in the menu. S - Saves the menu database with any changes to NFORMAT.CFG. NFORMAT.CFG will be in the same path/directory as the copy of NFORMAT.EXE. R - Reconfigures the menu so it will display the current standard drive parameters. This is easier than manually erasing the NFORMAT.CFG file and then running NFORMAT again. When you first run NFORMAT (with no parameters), the menu program will automatically configure for your disk system. The configuration routine scans for information about drives 0-3. It will place the normal format for the drive followed by the maximum format for that disk type. If the drive is high density, NFORMAT will add the low density format and the maximum low density format for that drive. ******************************************************************* The parameter editor: The parameter editor box appears to the right of the menu when you select the edit function. You may highlight the parameter you wish to edit and then press return, or select with the mouse. Some of the values are in hexidecimal, and others in normal decimal. You may enter values in normal decimal as well as hexidecimal. All hexidecimal numbers must be preceded by a "$". Once you finish entering the new value, NFORMAT will re-calculate the other parameters. You may notice some of the other numbers changing. The editor places a "*" by your new value to show that it is protected. Being protected means that NFORMAT can not recalculate or change your new parameter. If you need to remove this protection, select the item you wish to unprotect. Type a single space followed by ENTER, and the protection for that item will disappear. The parameters are as follows: TRACKS ON DISK: This number represents the number of positions that the drive head may take. This number is normally 40 or 80 SECTORS ON TRACK: This defines the number of separate data areas that pass under the head each disk rotation. NUMBER OF HEADS: There are always at least 2 heads on a disk drive. There is no need to change this value unless the disk bios returns an incorrect value. PHYSICAL DRIVE #: Normally, the physical drive values for A: is zero and for B: is one. Some machines may have drives as physical 2 and 3 (usually D: or E: ). NFORMAT will always report physical $02 and $03 as X: and Y: and never in any way refer to normal hard disks. ROOT DIR ENTRIES: Allows you to select the maximum number of files that may be in the root directory. This can free space, and is useful if you have a few large files that you want to put on a disk. (The maximum value is 244 files) SECTORS PER CLUSTER:This lets you select 1 or 2 sectors per DOS cluster. Normally 360k and 720k use 2 sectors per cluster, and 1.20m and 1.44m use 1 sector per cluster. A FAT using 2 sectors per cluster is half the size of a FAT using 1 sector per cluster. DISK FORMAT ID: This byte, placed on the boot sector of the disk, allows programs to quickly identify the disk type. Some versions of DOS use this as an absolute ID. Normally, 1.44m is $F0, 1.20m and 720k are $F9 and 360k are $FD. FORMAT FILL BYTE: This value affects the error detection ability. The standard value is $F6. This is a trivial item, and there is usually no need change it. GAP LENGTH: This defines the space between sectors. The less space between sectors, the more sectors per track. There always needs to be SOME gap. INTERLEAVE: This option allows you change the order of the sectors on the disk. Normally the value is 1, which means that the sectors are in the order of 1, 2, 3, 4, 5.... with one right after another. A value of 2 will skip a sector: 1, 10, 2, 11, 3, 12 etc. The maximum value is one less than the number of sectors per track. MEDIA DISCRIPTOR: This is the most important of the parameters. Usually, XT machines do not use this, but ATs almost always do. This byte, sent to the BIOS defines the density and some other items. NFORMAT automatically calculates this byte to work with the other parameters, so there is no need to change this byte. Should there be a need though, the byte is calculated as follows: REFERENCE HEX|BINARY FOR **************************************************** DISK TYPE:$00|00000000| 360k disk in 360k drive $01|00000001| 360k disk in 1.20m drive $02|00000010| 1.20m disk in 1.20m drive $03|00000011| 360k disk in 360k drive CHK $04|00000100| 360k disk in 1.20m drive CHK $05|00000101| 1.20m in 1.20m drive CHK $06|00000110| reserved $07|00000111| not 360k, 1.20m drive **************************************************** MEDIA: $00|00000000| Media type is not known $10|00010000| Media type is known **************************************************** STEPPING: $00|00000000| Single stepping (normal) $20|00100000| Double stepping (WHY?!) **************************************************** BAUD RATE:$00|00000000| 500k (high density) $40|01000000| 300k (for 1.20m drives only) $80|10000000| 250k ("double"/low density) $C0|11000000| ???k (reserved) **************************************************** take one value from each section and add them all together to get the media byte you desire. X SHIFT: Normally, fast machines have a high step rate and long gap length. After the last sector on a track is read, the drive can switch or move the heads and immediately find the first sector of the next track. This means that the X value usually should be 0. If your system is slower, the head may miss the first sector. Shifting lets slower systems immediately find the first sector. A shift value of 1 through 3 may speed up your disk access. Y SHIFT: Similar to the X shift. If you are formatting a disk using 20 sectors per track, set the X and Y shift to 1. The result will be a very fast disk. 21 sectors uses an interleave of 2, so the interleaved sector acts as extra gap and no extra shifting us usually needed. IMMEDIATE VERIFY: If set to yes, NFORMAT will format a track, and then verify it. If set to no, NFORMAT will format the entire disk, and then verify the entire disk. Setting this option to "NO" is useful in determining the maximum number of tracks on your drive. LABEL DISK: When set to yes, NFORMAT will prompt for a volume label after formatting the disk. When set to no, NFORMAT will not ask for a volume label. ******************************************************************** Command line parameters: Most of the parameters correspond with the definitions above. To get a list of all command line parameters use the parameter /? The normal syntax for NFORMAT command line parameters is: NFORMAT The first parameter is always the drive letter. P: Specifies the physical drive unit (0 - 3) T: Tracks on disk H: Number of heads S: Sectors per track C: Sectors per DOS cluster (1 or 2) R: Root directory entries I: Interleave F: Format ID for disk G: Gap of bytes between sectors B: Media discriptor X: X sector shift Y: Y sector shift Q: Quick format, no verify (NOT RECOMMENDED!) M: Use standard maximal density for disk L: Format a low density disk in a high density drive N: Do not ask for a volume label K: Batch mode, skip "insert disk" V: Non immediate verify hexidecimal numbers must start with a "$" Using command line parameters bypasses the menu. ********************************************************************** The enhanced BOOT SECTOR: You will no longer have to put up with the old DOS "Non DOS disk or disk error" message if you have a hard disk drive. You will no longer have to remove the disk from your drive and press a key. The NFORMAT boot sector checks for the presence of a hard disk drive. If one is present, it will boot the hard disk. It will seem as if no disk was in the drive. If you do not have a hard drive you will get an "insert system disk" message. ********************************************************************** Placing PC/MS-DOS system files: NFORMAT does not put system files on a floppy disk. This is because different versions of DOS have their own way of placing system files. Your DOS should have a program called SYS.EXE or SYS.COM. This program puts a DOS boot sector on the disk, transfers the system file(s), and some versions transfer the COMMAND.COM program. A few computers may, because of BIOS or DOS, be capable of booting from a dynamically formatted system disk. These computers usually will not require the BIOSPTCH program. If you can boot dynamic system disks then that is fine, but ALWAYS keep a standard (360k, 720k, 1.20m, 1.44m) system disk. If you change machines, you probably will not be able to boot you dynamic system disks on the new machine. ********************************************************************** Do you need the BIOSPTCH program? If you want to use dynamic disks (1,74m, 830k, 430k) then probably yes. SOME machines do not (usually XT high density cards with their own BIOS ROM). If you do not know and want to find out, then try formatting a dynamic disk. Then, before installing BIOSPTCH, try copying a large file (at least 32k) on to the disk and back. If no errors occur, you are OK. Do not use a disk tester, because they may bypass the DOS read/write. Other disk testers may go crazy because they believe that all disks must be standard 360k, 720k, 1.20m, or 1.44m. To install BIOSPTCH, copy it into your root directory and then add the following line to your CONFIG.SYS file: DEVICE=BIOSPTCH.SYS or for DOS 5 use: DEVICEHIGH=BIOSPTCH.SYS If you wish to only use the standard disk formats (360k, 720k, 1.20m and 1.44m), you will not need BIOSPTCH. ********************************************************************** What does NFORMAT do? NFORMAT removes the frustration caused by trying to get old DOS formatters to format a simple floppy disk which is slightly different. Most disk formatters only allow formatting of several different standard formats. Some dynamic disk formatters create slow disks using poor error detection. The MS-DOS 5 formatter program is so paranoid that the /U, unconditional format, switch must be added for the program to actually low-level format a formatted disk. WHY USE DYNAMIC CONFIGURATION? Dynamic configuration allows you to determine the format placed on the disk, so you may get the most usable space from your disk as possible. This is rather technical, so feel free to skip to the next section. So, the label on your disk says that it has a capacity of 2 megabytes. When you format your disk you only get 1.44 megabytes. Where do they get this 2.00 megs? The result comes from: SIZE:=((BAUD/8)/(RPM/60))*TRACKS*HEADS BAUD: is the number of bits per second that the drive controller reads/writes to the disk. This value is either 500k, 300k, or 250k, with k meaning one thousand. Dividing by eight gets the number of bytes. RPM: The number of times per minute which your disk spins. The normal value is 300 RPMs, but 1.20m drives and 8 inch drives use 360 RPMs. A standard "1.44 megabyte" drive would be baud=500k, rpm=300, with 80 tracks and two heads. ((500000/8)/(300/60))*80*2 (62500/5)*80*2 {62500 BytesPS,5 RPS} (12500)*80*2 {12500 bytes per track} 2,000,000 bytes. {total} THE CATCH IS that floppy disks must store MORE than just your data. Each track contains information about the track, and sectors in the track. The track ends with a variable gap to compensate for random speed fluctuations in the drive motor. Each sector contained within the track has identification bytes, and includes a checksum. The checksum ensures that the data in the sector is correct. Also, between sectors there is a gap. This gap helps the hardware locate the sector, and allows time to pass for the processing of the sector. There are two gaps, one is constant, while the other is variable. All of the standard PC formats spend 26% of the two megabytes on non-user data. This is an unacceptably large amount of wasted space. The low-density disks have small variable gaps, but high density disks have extremely large variable gaps. In fact, the default variable gap for a 1.44m disk is 108 bytes for each sector! Because of this, only 18 sectors will fit on the track. By reducing the gap from 108 to 12 bytes, 21 sectors will fit on the track. This reduces the non-user space to 14%, a much better figure. ********************************************************************* Determining the maximal format for your disk system: Some disk drives are capable of accessing more disk space than others. For example, most Toshiba 3.5" drives can access 84 tracks, one more than the average. Most Teac drives only work with the normal 83 tracks. Here is a list of maximum tracks for a few drives: TYPE TRACKS ---------------------------- IBM half height 360k 40 Tandon full height 360k 42 Copal half height 360k 42 Teac 1.20m 85 Kaypro 2000 3.5" 720k 80 Teac 1.44m 83 Toshiba 720k 84 Toshiba 1.44m 84 NOTE: Individual results may vary, despite the listed drive brands. If you have an unusual drive system, you may wish to experiment with different configurations. NFORMAT should be able to handle up to 31 sectors per track, although most floppies do not have that many. WARNING: Damage may occur to some old floppy drives if the disk head attempts to go beyond the last track. NFORMAT can not be held responsible for any damage caused to your drive. The easiest way to determine the maximum number of tracks requires an error free disk and setting the VERIFY IMMEDIATE option to NO. Try formatting the disk with the NFORMAT default maximum disk parameters. NFORMAT will format the disk and then verify it. If the number of tracks specified was too many, the drive head will remain over the last track while attempting to format another track. The track information that was already under the head is written over. This will show up during verification as a completely unreadable track. When lost tracks occur, you must decrease the number of tracks. Immediate verification can not be used for this process. The immediate verify will format a track and verify it before moving the head to the next track. When formatting too many tracks, immediate verification can not detect if the track will be overwritten. When trying a new maximum format, you should always make sure that the new format is completely readable by your disk drive and disk operating system. Finally, keep in mind that your maximum formats may not be readable by other machines. You should assume that your machine is the only machine that can read your maximized disks. The main reason for this is that maximized disks usually require a computer to have BIOSPTCH.SYS. Also, many disk drives may not be able to access as many extra tracks as your drive. If you want to use your maximized disks on other computers, make sure the format is compatible with the other disk drive(s). You must also have a normal disk with BIOSPTCH.SYS on it to install. ********************************************************************** Disks-In-Drives: Both the 1.20m and 1.44m high density drives offer support for low density disks, but there are some compatibility problems. 360k disks in 1.20m drives: Despite anything you may of heard, it is simply NOT possible to format 360k disks in 1.20m drives. This is why NFORMAT does not include the 360k format in its menu for the 1.20m drive. Any 360k disk formatted in or written to a 1.20m drive can not reliably be read by 360k drives. The reason for this is that 1.20m drives read and write thinner tracks than 360k drives. If there is any data between the tracks, a 360k drive will read and mix both the thin track, and the edge of the data. The result will be an unreadable track. Also, if a thick 360k track is written to by a 1.20m drive, the thin track will be surrounded by the edges of the thick track. Again, the 360k drive would read both signals resulting in an unreadable track. Since the low density disks can not be formatted high density, the low density disks can take advantage of the thin tracks by single stepping and doubling the number of tracks on the disk. A 360k disk can be formatted reliably to 720k by doubling the tracks. NFORMAT can take this a step further. By using 10 sectors per track, and getting a few more tracks NFORMAT can format the disk to 850k. NOTE: BIOSPTCH.SYS usually will need to be installed to read 720k and 850k disks in a 1.20m drive. 1.20m disks in 360k drives: High density disks can not be formatted low density. The magnetic material is usually designed to only store high frequency data. 3.5" disks: The high density 3.5 inch disks have a density notch in them to automatically let the drive know what type of disk it is. This means that it is impossible to format a 1.44m disk to 720k, and it is impossible to format a 720k disk to 1.44m. (unless YOU put a notch in the 720k disk, but that trick does not always work.) NOTE: Some cheap 1.44m drives were, for some reason, not built with density detection. Hopefully NFORMATs use of the media discriptor byte will avoid any problems. ********************************************************************** Unusual Environments: If you are running NFORMAT on an old PC or XT class machine, NFORMAT may receive incorrect information about your disk system. For example, if NFORMAT is incorrectly told that all drives A: through D: are 1.20m drives, you will have to manually edit the configuration. If you are formatting using command line parameters, you will have to specify the appropriate information for your drive. If you have a high density disk system in an XT, the controller card should have a BIOS ROM which may report the drive parameters to NFORMAT like an AT would. NFORMAT reports physical floppy drives 0 through 3 as A:,B:,X:, and Y:, although DOS may assign drive letters anyway it feels like. So, if you try to format drive C: or X:, NFORMAT will attempt to format physical drive number 2. Your hard disk is physical drive number 128, therefore NFORMAT can not even get close to your hard disk. Physical drives 2 and 3 are listed by NFORMAT as X and Y to prevent any confusion. The DOS drive letters may vary on different machine, so NFORMAT refers to the drives by generic names X and Y. Under versions of DOS previous to 3.2, the drive type reported by DOS usually just returns a random number. If the machine you are running is an AT, NFORMAT ignores whatever DOS says anyway, and gets the info from the BIOS. HOWEVER, On a PC/XT machine, BIOS may not report correct information. If NFORMAT detects the bad parameters, it will assume you have two 360k floppy drives, A: and B:. If they are not 360k (perhaps 720k), you may edit the parameters. Unusual disk device driver programs may interfere with the operation of the BIOSPTCH.SYS program. These drivers will not allow DOS to read more than the usual number of sectors per track from a disk. This will result in errors such as "SECTOR NOT FOUND" while attempting access to a maximized disks. If you get such errors and your BIOSPTCH.SYS program is installed correctly, then you may need to check for unusual disk device drivers. You may find such drivers with exotic XT class floppy controllers. Sometimes this may be caused by a DRIVPARM= statement in your CONFIG.SYS under some versions of DOS. If you find such a driver, try removing it (but ALWAYS keep an operational backup). Removing the driver may cause other formatters and disk diagnostics programs to think your drive is a 360k drive. If you are completely unable to access the drive after removing the driver, then you will have to put the driver back. If you get a NON-DOS DISK ERROR message while attempting to access a maximized disk, chances are your DOS does not support dynamic disk media. This error almost always occurs on versions of DOS previous to 3.2 . If you are using an old version of DOS, then the best solution is to upgrade. Some old versions of DOS have an alterable disk-type look up table in the IO.SYS file. If you have a monochrome system and the text is hard to read or you get a blank screen, make sure that your have your video mode set to mode number 2 (BW80). NFORMAT will detect the video mode and display color only when color is set. NFORMAT alters some of the drive parameters during operation. If you exit normally, using the escape key, the parameters are reset to what they were before program execution. If you use any other method of exit, the drive may behave erratically and require that your system be rebooted. ********************************************************************** NFORMAT has been tested on a standard AT and XT system under the following versions of DOS: PC-DOS 2.10 MS-DOS 2.11 PC-DOS 3.10 PC-DOS 3.30 MS-DOS 3.30 MS-DOS 4.00 PC-DOS 5.00 MS-DOS 5.00 NFORMAT has also been tested under MS-WINDOWS 3.1 in 386 enhanced mode. NOTE: Dynamic disks and Mouse support only works with DOS version 3.2 and later. ********************************************************************** DISCLAIMER: because of the nature of this program, this program WILL write over any data on disks that it formats. Therefore, you are to use this program at you OWN risk. This program can not be held responsible for data loss or any problems caused by the loss. ********************************************************************** LICENSE: This program is free for you to use and distribute. The only condition is that no modifications are made to the NFORMAT.EXE or the NFORMAT.DOC files. This program is not to be sold. You may only charge the price of the floppy disk you put the program on. Although you are under no obligation to send money for the use of this program, I would appriciate any contribution you may wish to make. If you have any comments, questions, or suggestions about this program, feel free to write me at: Nathan Lineback lineback@toastytech.com