Device Status Word
A driver must fill the rStatus field of the DevRequestHdrRec (offset 3)
before returning control to DOS. This is a 16-bit field, containing an
8-bit error code in the low byte and other information in the high byte.
It has the following layout:
1 1 1 1 1 1
║e│0 0 0 0 0│b│d║ error_code ║
╙╥┴─┴─┴─┴─┴─┴╥┴╥╨─┴─┴─┴─┴─┴─┴─┴─╜ bit mask
║ ║ ║ ╚═════════════╩═► 0-7: 00ffH Device Driver Error code
║ ║ ╚═════════════════► 8: 0100H Done (always set on exit)
║ ╚═══════════════════► 9: 0200H Busy (on 06H,0AH,0fH only)
║ 10-14: reserved (must be 0)
╚═══════════════════════════════► 15: 8000H error occurred
bit 1-7 specify an 8-bit Device Driver Error code, but only if bit 15 is
set. If bit 15 is 0, then these bits are ignored.
bit 8 should always be set to 1 upon exit from the driver.
bit 9 The "busy" bit is set by device a request handler when it
determines that it can't satisfy a request because the physical
device is in use by a previous request.
It is also used to return miscellaneous information, such as
"keyboard queue in not empty" (DvRq 06H) or "no writes pending"
(DvRq 0aH) or "media is removable" (DvRq 0fH).
bit 15 indicates an error occurred processing the request. When set,
the bits 1-7 must contain an 8-bit Device Driver Error code.
Upon normal, successful completion of a request, the driver must set the
"done" bit (bit 8), clear the busy bit (bit 9) and exit via a FAR RETurn.
See Also: Device Driver Errors