Prev Next Home Home Table Of Contents Index


DEVICE.EXE reports on device drivers installed by the CONFIG.SYS file. It shows the memory used by DOS itself, any additional drivers installed in CONFIG.SYS, and the space used for DOS file handles and buffers. Here is a simple example of DEVICE output:

  Address     Bytes   Name           Hooked vectors
 ---------   ------   -------------- --------------
 0070:0BB3        -   CON
 0070:0C68        -   AUX
 0070:0C7A        -   COM1
 0070:0D17        -   PRN
 0070:0D29        -   LPT1
 0070:0E15        -   CLOCK$
 0070:0EE5        -   3 Block Units
 0070:2071        -   LPT2
 0070:2083        -   LPT3
 0070:2095        -   COM2
 0000:2C58    37712   NUL            08 0A 0C 0D 0E 13 25 26 29 31 70 72
                                     73 74 75 76 77
 09A5:0000     3488   0 Block Units
 0A7F:0000       18   EMMXXXX0
 0A7F:0012       46   386MAX$$       20
 0A83:0000      768   1 Block Unit   19
 0AB3:0000      768   1 Block Unit
 0AE3:0000    18256   DOS buffers

The devices up to and including NUL are all part of DOS. DEVICE lumps their memory usage into a single value next to the NUL device. The memory usage associated with NUL does not include the interrupt vector table, the BIOS data area, or the low-memory DOS data area. If you wish to add this memory to the total, just take the hexadecimal segment of the first driver you see (in this case CON) and multiply it by 16 (decimal). When the segment is 0070 as shown, that adds 1792 bytes to the total space for DOS.

DEVICE also lumps all of the drivers up to NUL into a single block when it comes to reporting hooked interrupt vectors. Because WATCH can't be installed prior to these device drivers, DEVICE must use an empirical technique to detect which vectors each driver controls. Therefore, some meaningless vectors may appear in the list. Any vectors that are grabbed by another program after the driver is loaded will not appear.

"Block units" typically refer to disk drives. Any drivers that appear after the NUL device are in the order that you've entered them in CONFIG.SYS. Drivers loaded for non-standard hard disks, like SpeedStor, sometimes make odd entries in the DEVICE report, as shown with "0 Block Units" above. RAM disks appear more logically: each of the "1 Block Unit" entries above is a VDISK with the data stored in extended memory.

Devices like 386MAX may also cause odd-looking entries: 386MAX puts most of its code in extended memory, and leaves just a bit behind in normal memory.

DEVICE offers the following command line options:

     /R     raw report.
     /?     write a help screen.

You can also put the string DEVICE=options in the DOS environment. For example, if you type


at the DOS command line, DEVICE will use the /R option as the default thereafter.

The raw report shows more information about the device drivers, but in a less convenient format. Here's an example, taken on the same system as the previous report.

  Starting      Next             Strategy   Interrupt   Device
  Address     Hdr Addr   Attr   Entry Pnt   Entry Pnt   Name
 ---------   ---------   ----   ---------   ---------   --------
 0000:2C58   0AB3:0000   8004   0000:14C6   0000:14CC   NUL
 0AB3:0000   0A83:0000   0800   0000:00A9   0000:00D4   1 Block Unit
 0A83:0000   0A7F:0012   0800   0000:00A9   0000:00D4   1 Block Unit
 0A7F:0012   0A7F:0000   C000   0000:0036   0000:003B   386MAX$$
 0A7F:0000   09A5:0000   8000   0000:0036   0000:003B   EMMXXXX0
 09A5:0000   0070:0BB3   2000   0000:0012   0000:001D   0 Block Units
 0070:0BB3   0070:0C68   8013   0000:00C6   0000:00D1   CON
 0070:0C68   0070:0D17   8000   0000:00C6   0000:00D7   AUX
 0070:0D17   0070:0E15   A040   0000:00C6   0000:00E6   PRN
 0070:0E15   0070:0EE5   8008   0000:00C6   0000:010C   CLOCK$
 0070:0EE5   0070:0C7A   0840   0000:00C6   0000:0112   3 Block Units
 0070:0C7A   0070:0D29   8000   0000:00C6   0000:00D7   COM1
 0070:0D29   0070:2071   A040   0000:00C6   0000:00EC   LPT1
 0070:2071   0070:2083   A040   0000:00C6   0000:00F4   LPT2
 0070:2083   0070:2095   A040   0000:00C6   0000:00FC   LPT3
 0070:2095   0070:FFFF   8000   0000:00C6   0000:00DD   COM2

In this report, the drivers are listed in DOS priority order rather than the order in which they are loaded in memory. Additional columns describe how DOS treats each driver. Ray Duncan's book "Advanced MS-DOS" is a good place to learn more about these details.

The DEVICE program assumes that all device drivers are loaded in the CONFIG.SYS file. That is not the case with the NetWare shell, which patches itself into the device driver chain. DEVICE will write a warning message and terminate before reporting the first patched-in driver. The raw device report will still show all of the devices even in this case.

Prev Next Home Home Table Of Contents Index