|
| |
MEDIA CHECK
command code = 1
ES:BX pointer to request header. Format of header:
length field
byte media descriptor from DOS
byte return
dword returns a pointer to the previous volume
ID (if bit 11=1 and disk change is
returned) (DOS 3.x)
When the command code field is 1, DOS calls MEDIA CHECK for a
drive unit and passes its current media descriptor byte. See
"Media Descriptor Byte" later in this chapter for more
information about the byte. MEDIA CHECK returns one of the
following:
A) media not changed
B) media changed
C) not sure
D) error code
The driver must perform the following:
A) set the status word in the request header
B) set the return byte
-1 media has been changed
0 don't know if media has been changed
1 media has not been changed
DOS 3.x: If the driver has set the removable media bit 11 of the
device header attribute word to 1 and the driver returns -1
(media changed), the driver must set the DWORD pointer to the
previous volume identification field. If DOS determines that the
media changed is an error, DOS generates an error 0Fh (invalid
disk change) on behalf of the device. If the driver does not
implement volume identification support, but has bit 11 set to 1,
the driver should set a pointer to the string "NO NAME",0.
MEDIA DESCRIPTOR
Currently the media descriptor byte has been defined for a few
media types. This byte should be idetnical to the media byte if
the device has the non-IBM format bit off. These predetermined
values are:
media descriptor byte => 1 1 1 1 1 0 0 0
(numerical order) 7 6 5 4 3 2 1 0
BIT MEANING
0 1=2 sided 0=not 2 sided
1 1=8 sector 0=not 8 sector
2 1=removeable 0=nonremoveable
3-7 must be set to 1
Examples of current DOS media descriptor bytes:
media sides sectors ID byte
hard disk * * 0F8h
5-1/4 floppy 2 15 0F9h
5-1/4 floppy 1 9 0FCh
5-1/4 floppy 2 9 0FDh
5-1/4 floppy 2 8 0FFh
5-1/4 floppy 1 8 0FEh
8" floppy 1 26 0FEh *
8" floppy 2 26 0FDh
8" floppy 2 8 0FEh *
NOTE: The two Media Descriptor Bytes that are the same for 8"
diskettes (0FEh) are not a misprint. To determine
whether you are using a single sided or double sided
diskette, attempt to read the second side, and if an
error occurs you can assume the diskette is single
sided. |