MS DOS Device Drivers Sources of Information Device
- Slides: 8
MS DOS Device Drivers • Sources of Information • Device driver basics • Structure and internal routines
Sources of information John Angermeyer and Kevin Jaeger, MS-DOS Developer’s Guide, Howard W. Sams, Indianapolis, 1986 Ray Duncan, Advanced MS-DOS, Microsoft Press, Redmond, Washington, 1986 Robert Lai, Writing MS-DOS Device Drivers, Addison. Wesley, Reading, Massachusetts, 1992
Device driver basics • • Operating System modules that control hw Isolate higher levels from hw specifics Standard interface with OS Installable at boot time as a “chain” (CONFIG. SYS) • Not necessary to modify the OS • Similar to Unix/Xenix/Linux device drivers • Two types: Block and Character
General Structure Device Header Driver Data Storage Strategy Routine Interrupt Entry Command Handlers Interrupt Service Routine Initialization Code and Driver Data Buffers
Device Header • 18 -byte block at beginning of every device driver 00 H Link to next driver, offset 02 H Link to next driver, segment 04 H Device attribute word 06 H Strategy entry point, offset 08 H Interrupt entry point, offset 0 AH Logical name (8 bytes) if character device. Number of units (1 byte) if block device (other 7 bytes reserved)
Strategy Routine • Called by MS-DOS when driver is first loaded • Called by MS-DOS whenever I/O request is issued to device • Request call includes a pointer to a request header; driver saves pointer and returns to MS-DOS • Request header includes command code and other information
Interrupt Routine • • Called after the strategy routine Implements the device driver proper Performs the actual I/O operations Collection of subroutines to implement various functions (read, write, …) • Centralized entry routine saves registers and sets up driver ops • Centralized exit routine restores registers and sets status and error codes
Sample Command Codes • • • 00 H: 01 H: 04 H: 08 H: 0 DH: 0 EH: Driver Initialization Media Check Read Write Open Close