en:docs:fapi:dosdevconfig

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:docs:fapi:dosdevconfig [2018/08/31 08:17] – created prokusheven:docs:fapi:dosdevconfig [2021/09/17 04:58] (current) prokushev
Line 1: Line 1:
 +{{page>en:templates:fapiint}}
 +
 +====== DosDevConfig ======
  
 This call gets information about attached devices. This call gets information about attached devices.
  
-==Syntax== +===== Syntax =====
- DosDevConfig (DeviceInfo, Item, Parm)+
  
-==Parameters== +<code c> 
-;DeviceInfo (PVOID) - output: Address of the byte-wide field containing the requested information. +DosDevConfig (DeviceInfoItem, Parm
-;Item (USHORT) - input: Device information requested. +</code>
-:0 - Number of printers attached +
-:1 - Number of RS232 ports +
-:2 - Number of diskette drives +
-:3 - Presence of math coprocessor (where 0 = not present1 = present+
-:4 - PC Submodel Type (where the return is the system submodel byte) +
-:5 - PC Model Type (where the return is the system model byte) +
-:6 - Display adapter type (where 0 = monochrome mode compatible, 1 = other). +
-;Parm (USHORT) - input: Reserved for future use and should be set to zero.+
  
-==Return Code== +===== Parameters ===== 
-;rc (USHORT) - return:Return code descriptions are: + 
-* 0 NO_ERROR +  * DeviceInfo ([[PVOID]]) - output: Address of the byte-wide field containing the requested information. 
-*87 ERROR_INVALID_PARAMETER+  * Item ([[USHORT]]) - input: Device information requested. 
 +    * 0 - Number of printers attached 
 +    * 1 - Number of RS232 ports 
 +    * 2 - Number of diskette drives 
 +    * 3 - Presence of math coprocessor (where 0 = not present, 1 = present) 
 +    * 4 - PC Submodel Type (where the return is the system submodel byte) 
 +    * 5 - PC Model Type (where the return is the system model byte) 
 +    * 6 - Display adapter type (where 0 = monochrome mode compatible, 1 = other). 
 +  * Parm ([[USHORT]]) - input: Reserved for future use and should be set to zero. 
 + 
 +===== Return Code ===== 
 + 
 +rc ([[USHORT]]) - return:Return code descriptions are: 
 + 
 +  * 0 NO_ERROR 
 +  *87 ERROR_INVALID_PARAMETER 
 + 
 +===== Remarks =====
  
-==Remarks== 
 The system model (function 5) and submodel (function 4) information is obtained from BIOS. The system model (function 5) and submodel (function 4) information is obtained from BIOS.
  
 In addition, the number of devices attached in a PS/2 environment reflect only devices that are "awake". Devices that are "asleep" are not counted. In addition, the number of devices attached in a PS/2 environment reflect only devices that are "awake". Devices that are "asleep" are not counted.
  
-==Bindings== +===== Bindings =====
-===C=== +
-<PRE> +
-#define INCL_DOSDEVICES+
  
-USHORT  rc DosDevConfig(DeviceInfo, Item, Parm);+==== C ====
  
-PVOID   DeviceInfo;    /* Returned information */ +<code c> 
-USHORT  Item;          /* Item number */ +  #define INCL_DOSDEVICES 
-USHORT  Parm;          /* Reserved */+   
 +  USHORT  rc = DosDevConfig(DeviceInfo, Item, Parm); 
 +   
 +  PVOID   DeviceInfo;    /* Returned information */ 
 +  USHORT  Item;          /* Item number */ 
 +  USHORT  Parm;          /* Reserved */ 
 +   
 +  USHORT  rc;            /* return */ 
 +</code>
  
-USHORT  rc;            /* return */ +==== MASM ====
-</PRE>+
  
-===MASM=== +<code asm
-<PRE+  EXTRN  DosDevConfig:FAR 
-EXTRN  DosDevConfig:FAR +  INCL_DOSDEVICES     EQU 1 
-INCL_DOSDEVICES     EQU 1 +   
- +  PUSH@  OTHER   DeviceInfo  ;Requested information (returned) 
-PUSH@  OTHER   DeviceInfo  ;Requested information (returned) +  PUSH   WORD    Item        ;Item number 
-PUSH   WORD    Item        ;Item number +  PUSH   WORD    Parm        ;Reserved (must be zero) 
-PUSH   WORD    Parm        ;Reserved (must be zero) +  CALL   DosDevConfig 
-CALL   DosDevConfig+</code>
  
 Returns WORD Returns WORD
-</PRE> 
  
-==Example Code== +==== Example Code ====
-This example gets information about model type, monitor and coprocessor and display it.  +
-<PRE> +
-#define INCL_DOSDEVICES+
  
-#define MACHINE_MODEL 5 +This example gets information about model type, monitor and coprocessor and display it. 
-#define DISPLAY_TYPE 6 +
-#define FIND_COPROCESSOR 3 +
-#define RESERVED 0L +
- +
-BYTE   DeviceInfo; +
-USHORT rc;+
  
-   if(!DosDevConfig(&DeviceInfo,          /* Returned information */ +<code c>
-                    MACHINE_MODEL,        /* Item number */ +
-                    RESERVED))            /* Reserved */ +
-      printf("Model Type %d ",DeviceInfo);+
  
-   if(!DosDevConfig(&DeviceInfo,          /* Returned information */ +  #define INCL_DOSDEVICES 
-                    DISPLAY_TYPE,         /* Item number */ +   
-                    RESERVED))            /* Reserved */ +  #define MACHINE_MODEL 5 
-      if (DeviceInfo) +  #define DISPLAY_TYPE 6 
-         printf("Colour display "); +  #define FIND_COPROCESSOR 3 
-      else +  #define RESERVED 0L 
-         printf("Mono display ");+   
 +  BYTE   DeviceInfo; 
 +  USHORT rc; 
 +   
 +     if(!DosDevConfig(&DeviceInfo,          /* Returned information */ 
 +                      MACHINE_MODEL,        /* Item number */ 
 +                      RESERVED))            /* Reserved */ 
 +        printf("Model Type %d ",DeviceInfo); 
 +   
 +     if(!DosDevConfig(&DeviceInfo,          /* Returned information */ 
 +                      DISPLAY_TYPE,         /* Item number */ 
 +                      RESERVED))            /* Reserved */ 
 +        if (DeviceInfo) 
 +           printf("Colour display "); 
 +        else 
 +           printf("Mono display "); 
 +   
 +     if(!DosDevConfig(&DeviceInfo,          /* Returned information */ 
 +                      FIND_COPROCESSOR,     /* Item number */ 
 +                      RESERVED))            /* Reserved */ 
 +        if (DeviceInfo) 
 +           printf("Coprocessor"); 
 +        else 
 +           printf("No Coprocessor");
  
-   if(!DosDevConfig(&DeviceInfo,          /* Returned information */ 
-                    FIND_COPROCESSOR,     /* Item number */ 
-                    RESERVED))            /* Reserved */ 
-      if (DeviceInfo) 
-         printf("Coprocessor"); 
-      else 
-         printf("No Coprocessor"); 
-</PRE> 
  
 +</code>
  
 +===== Note =====
  
-====== Note ====== 
  
 Text based on [[http://www.edm2.com/index.php/DosDevConfig_(Legacy)]] Text based on [[http://www.edm2.com/index.php/DosDevConfig_(Legacy)]]