This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS

Note: This is legacy API call. It is recommended to use 32-bit equivalent

2021/09/17 06:47 · prokushev
2021/08/20 05:18 · prokushev


This call requests or releases access to ports for I/O privilege.


DosPortAccess (Reserved, TypeOfAccess, FirstPort, LastPort)


  • Reserved (USHORT) - input : Must be set to zero.
  • TypeOfAccess (USHORT) - input : A request for or release of access to a port.
    • 0 - Request access
    • 1 - Release access.
  • FirstPort (USHORT) - input : Starting (low) number in a contiguous range or a single port.
  • LastPort (USHORT) - input : Ending (high) number in a contiguous range or a single port. If only one port is being used, FirstPort and LastPort should both be set to this port.

Return Code

rc (USHORT) - return:Return code descriptions are:

  • 0 NO_ERROR


Note that CLI/STI privilege is also granted automatically. There is no need to make an additional call to DosCLIAccess.

Applications that perform I/O to port(s) in IOPL segments must request port access from the operating system.

An application with no IOPL segments that accesses a device through a device driver or by an interface package such as VIO, does not need to issue this call. The device driver or interface package is responsible for obtaining the necessary I/O access.



USHORT  rc = DosPortAccess(Reserved, TypeOfAccess, FirstPort, LastPort);
USHORT  0;             /* 0 */
USHORT  TypeOfAccess;  /* Request or release */
USHORT  FirstPort;     /* First port number */
USHORT  LastPort;      /* Last port number */
USHORT  rc;            /* return code */


EXTRN  DosPortAccess:FAR
PUSH   WORD    0             ;Reserved (must be zero)
PUSH   WORD    TypeOfAccess  ;Request or release
PUSH   WORD    FirstPort     ;First port number
PUSH   WORD    LastPort      ;Last port number
CALL   DosPortAccess
Returns WORD

en/docs/fapi/dosportaccess.txt · Last modified: 2021/09/17 06:50 by prokushev