Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!gatech!udel!rochester!pt!b.gp.cs.cmu.edu!ralf From: ralf@b.gp.cs.cmu.edu.UUCP Newsgroups: comp.sys.ibm.pc Subject: Re: Format problems on AT clone... Message-ID: <38@b.gp.cs.cmu.edu> Date: Sat, 13-Jun-87 14:24:39 EDT Article-I.D.: b.38 Posted: Sat Jun 13 14:24:39 1987 Date-Received: Sun, 14-Jun-87 01:44:12 EDT References: <717@cod.UUCP> <691@percival.UUCP> Organization: Carnegie-Mellon University, CS/RI Lines: 39 In article <691@percival.UUCP> leonard@percival.UUCP (Leonard Erickson) writes: >I've encountered problems formatting floppies (esp 1.2 meg) on a couple >of AT clones at work. Problems occur with both MSDOS 3.1 & PC-DOS 3.1. > >I can now format 360k floppies after reducing the number of buffers in >CONFIG.SYS from 40 to 36. (it works, but _why_?!) > >I still couldn't format 1.2 meg disks until I happened to try the >"format a disk" option from our user menu program. After much investigation >I found a "solution". Go into BASIC and type SHELL "FORMAT A:" ... >Another AT (clone) will format ok, but after _completing_ the format >gives a "Track 0 bad, disk unusable" error. The disks *are* usable, >they pass CHKDSK, Norton''s DT, and Mace Utilities Diagnose. >-- >Leonard Erickson ...!tektronix!reed!percival!leonard >CIS: [70465,203] ...!tektronix!reed!percival!!bucket!leonard Your problems are due to a major omission in *all* versions of FORMAT. FORMAT, of necessity, uses several buffers for writing to the disk (FAT's, empty directory sectors, etc). Unfortunately, *FORMAT does not check to see whether its buffers cross a 64K boundary*!!! Since the DMA chip handles only 16-bit addresses on its own, an auxiliary register is used to hold the high bits of the address. Thus, an entire read or write operation must take place within an address block which has the same high bits. If the buffer you tell the ROM BIOS to use crosses a 64K boundary, the ROM will return an error. It is this error return that prompts FORMAT to give its own error message. There is only one solution--change the amount of memory used by DOS and any TSR's until the buffers move off of the 64K boundary. Changing the number of buffers will work, as will removing (or *adding*) a resident program. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ARPA: RALF@B.GP.CS.CMU.EDU USnail: Ralf Brown AT&T: (412) 268-3053 (school) Computer Science Department Carnegie-Mellon University DISCLAIMER? Who ever said I claimed anything? Pittsburgh, PA 15213 "I do not fear computers. I fear the lack of them..." -- Isaac Asimov