[comp.sys.ibm.pc.programmer] Creating non-IBM format device driver

goran@infovax.UUCP (G|ran Bostr|m) (03/17/90)

I'm intended to create a device driver for a non-IBM format device.
It's to be a block device. A look in DOS Technical Reference (3.30)
shows a bit in the attribute field (bit 13) to be set if not IBM-format.
Can somewone tell the mainline of this feature?

G|ran Bostr|m.

================================================================

dixon@sagittarius.crd.ge.com (walt dixon) (03/17/90)

In a previous request G|ran Bostr|m writes:

>I'm intended to create a device driver for a non-IBM format device.
>It's to be a block device. A look in DOS Technical Reference (3.30)
>shows a bit in the attribute field (bit 13) to be set if not IBM-format.
>Can somewone tell the mainline of this feature?

The basic difference between IBM compatible and non IBM compatible is
the way in which BPB requests are handled.  For IBM compatible media,
DOS passes the driver a pointer to the first FAT sector,  and for non
IBM compatible this pointer contains the address of a scratch buffer.
For IBM compatible disks an implication of this behavior is that the
first sector of the FAT is located at the same sector address for all
possible media.  (The previous information is in the technical reference
manual).  The Tech Ref manual also states that IBM compatible drives
must use media byte = media descriptor byte.

DOS maintains a cache for directory, fat blocks,  etc.  By the time DOS
gets around to loading drivers referenced in config.sys,  the size of
these cache blocks has been set.  DOS uses the largest sector size of
all the built in block drvers to set the cache size.  Since DOS makes
frequent use of these buffers in dealing with drivers,  they must really
be large enough to accommodate the device sector size.  If you're working
on a device with larger than normal sectors,  you will probably have to
patch IBMBIO.COM.

Walt Dixon		{arpa:		dixon@crd.ge.com	}
			{us mail:	ge crd			}
			{		po box 8		}
			{		schenectady, ny 12301	}
			{phone:		518-387-5798		}

Walt Dixon dixon@crd.ge.com