[comp.sys.ibm.pc] Disk Driver Formatting in DOS 4.01

bmarsh@cod.NOSC.MIL (William C. Marsh) (08/21/89)

Hello, fellow netters!

I am having problems with a disk device driver under DOS 4.01.  This is a
driver I wrote to support a different format on 3.5" disks.  (It's not a
really different format, just a different cluster size...).  This driver
works perfectly well for reading and writing for all DOS versions tried,
and that includes 2.x, 3.x and 4.0x.  The formatting routines were added
for DOS 3.2, and work perfectly well for 3.2 and 3.3, but they do not
work for 4.0X.

What happens is DOS formats the disk fine, writes the boot sector, and 
then complains that it couldn't write 'BOOT', track 0 bad, etc.  However,
the sector is written properly, according to both Norton and a INT-13
sniffer I wrote.  The driver only uses the BIOS routines for interfacing
to the disk.

Since formatting isn't really covered in any book I have found in detail,
I need to turn to the Net!  If anyone can point out a reference (DOS 
technical reference 3.2, and the new Advanced Dos book have equal coverage)
or advice I would appreciate it very much!

Thanks in advance!

Bill Marsh, Naval Ocean Systems Center, San Diego, CA
{arpa,mil}net: bmarsh@cod.nosc.mil
uucp: {ihnp4,akgua,decvax,dcdwest,ucbvax}!sdcsvax!nosc!bmarsh

"If everything seems to be coming your way, you're probably in the wrong lane."

kenneth@cogsci.berkeley.edu (Kenneth Kindsfater) (08/28/89)

According to my release of MSDOS 4.01 from Unisys. Format has a bug that gives
the error message you describe; however, I thought it was only for formatting
hard disks > 32 meg.  Anyways my 4.01 came with a patch disk that came with
a new version of format and a patch to the secondary cache (comes up if you
use expaneded memory and have > 32 meg disk partitions and some more conditions
).

kenneth kindsfater

bmarsh@cod.NOSC.MIL (William C. Marsh) (08/30/89)

>What happens is DOS formats the disk fine, writes the boot sector, and 
>then complains that it couldn't write 'BOOT', track 0 bad, etc.  However,
>the sector is written properly, according to both Norton and a INT-13
>sniffer I wrote.  The driver only uses the BIOS routines for interfacing
>to the disk.


Here is some more data about the formatting process.  After FORMAT is
finished formatting the drive, it does an INT 26 to write the BOOT
sector onto the disk.  This returns OK.  Then, it does a Generic
IOCTL call, with CX = 0846h.  08 means disk access, but 46 is un-
documented as far as I can tell.  I have looked into many DOS books
(including Advanced Dos (including 4.0)), and this sub-function is
not documented.  I have a DOS 4.0 Tech Reference on order...

I have a feeling this call concerns the serial numbers added in
version 4.X, but I can't support what I don't know!

I also changed the Generic IOCTL handler in the driver to always
return OK if it doesn't understand the sub-function, and the drive
formatted OK with no errors...

Help!

Thanks in advance!

Bill Marsh, Naval Ocean Systems Center, San Diego, CA
{arpa,mil}net: bmarsh@cod.nosc.mil
uucp: {ihnp4,akgua,decvax,dcdwest,ucbvax}!sdcsvax!nosc!bmarsh

"If everything seems to be coming your way, you're probably in the wrong lane."