Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!xanth!mcnc!ncsuvx!shumv1!unkydave From: unkydave@shumv1.uucp (David Bank) Newsgroups: comp.sys.ibm.pc Subject: Re: 16-bit FAT Message-ID: <4370@ncsuvx.ncsu.edu> Date: 31 Oct 89 15:13:00 GMT References: <611@crash.cts.com> Sender: news@ncsuvx.ncsu.edu Reply-To: unkydave@shumv1.ncsu.edu (David Bank) Organization: NCSU Computing Center Lines: 59 In article <611@crash.cts.com> jca@pnet01.cts.com (John C. Archambeau) writes: >Could somedy please inform me of the necessary changes I have to make to the >BIOS parameter block in the boot sector of a DOS paition to transform it into >a 16-bit FAT? I did this several times with an ST225, but apparently (not too >surprising actually) changing the FAT from 12 to 16 bits is totally dependant >upon the drive parameters. The drive I want to do this with is a Seagate >ST151. I know it can be done since I have done it with an ST225, but I don't >have access to the MS-DOS 3.x technical reference manual. I just made a note >of the changes to do this on 4 headed 10 Mb or 20 Mb drives. Anyway, the >parameters of an ST151 are as follows; 5 heads, 977 cylinders. I only want to >give 10 Mb to MS-DOS and leave the rest for Minix and/or SCO Xenix when I get >around to buying the 286 version Hmmm...this certainly is an interesting question. Grabbing my IBM PC-DOS TEch Reference, I think I'll look in Chapter 5 and try to answer it. Paraphrasing, the Tech Ref has several things to say: 1) The FAT consists of a 12-bit entry (1.5 bytes) for each cluster ... or a 16-bit entry (2 bytes) when a fixed disk is larger than 10 MB (# sectors > approx. 20K) 2) The FAT can be 12-bit or 16-bit format. DOS determines which one a given disk is by looking at the total # of allocation units on the disk. For all diskettes and fixed disk partitions of < 20740 sectors, the FAT uses 12-bit entries; 16-bit entries are used in all other cases. I am not able to find a "descriptor byte" or similar construct that tells DOS in one fell swoop what size FAT it is dealing with. Perhaps I am overlooking something, but I don't think so. It does not seem to me to be immediately feasible to "convert" a FAT from 12-bit to 16-bit. I would seem to me that such an operation would destroy the FAT's information unless one took measures to copy the information and then re-enter it in a converted form (I shudder to think of the mapping algorithm). Also, remember that DOS maintains TWO copies of the FAT. Both would have to be converted. Anyway, to me it seems that the only way to do what you want is to record the present FAT and then re-write it byte-by-byte, remapping as you go. At least, that's what I get from the Tech Ref. Howintheheck you did it previously I really can't imagine. DISCLAIMER: The information and opinions presented above constitute an honest effort to impart information the author knows or reasonably knows to be true. All other interpretations of this text are erroneous. Unky Dave unkydave@shumv1.ncsu.edu P.S. You could, of course, just backup the drive, reformat it and using FDISK only give 10 MB of it to DOS.