Jump to content

DosDevConfig (OS/2 1.x)

From EDM2
Revision as of 00:36, 16 January 2017 by Martini (talk | contribs)

This is the legacy function, please visit DosDevConfig for the current version.

Description

This call gets information about attached devices.

Syntax

 DosDevConfig

    (DeviceInfo, Item, Parm)

Parameters

DeviceInfo (PVOID) - output
Address of the byte-wide field containing the requested information.
Item (USHORT) - input
Device information requested.
Value        Definition 
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

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.

Example Code

C Binding

#define INCL_DOSDEVICES

USHORT  rc = DosDevConfig(DeviceInfo, Item, Parm);

PVOID            DeviceInfo;    /* Returned information */
USHORT           Item;          /* Item number */
USHORT           Parm;          /* Reserved */

USHORT           rc;            /* return */

This example gets information about model type, monitor and coprocessor and display it.

#define INCL_DOSDEVICES

#define MACHINE_MODEL 5
#define DISPLAY_TYPE 6
#define FIND_COPROCESSOR 3
#define RESERVED 0L

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("Color display ");
      else
         printf("Mono display ");

   if(!DosDevConfig(&DeviceInfo,            /* Returned information */
                    FIND_COPROCESSOR,       /* Item number */
                    RESERVED))              /* Reserved */
      if (DeviceInfo)
         printf("Coprocessor");
      else
         printf("No Coprocessor");

MASM Binding

EXTRN  DosDevConfig:FAR
INCL_DOSDEVICES     EQU 1

PUSH@  OTHER   DeviceInfo    ;Requested information (returned)
PUSH   WORD    Item          ;Item number
PUSH   WORD    Parm          ;Reserved (must be zero)
CALL   DosDevConfig

Returns WORD

Related Functions