Source:SLASH'EM 0.0.7E7F2/def os2.h

Below is the full text to def_os2.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/def_os2.h#line123 ]], for example.

The latest source code for vanilla NetHack is at Source code.

1.   /*	SCCS Id: @(#)def_os2.h	3.4	1993/01/19	*/ 2.   /* Copyright (c) Timo Hakulinen, 1990, 1991, 1992, 1993. */ 3.    /* NetHack may be freely redistributed. See license for details. */ 4.     5.    /*  6.     *	Only a small portion of all OS/2 defines are needed, so the 7.    *	actual include files often need not be used. In fact, 8.    *	including the full headers may stall the compile in DOS. 9.    */  10.    11.   #ifdef OS2_USESYSHEADERS 12.   13.   # define INCL_NOPMAPI 14.  # define INCL_DOSFILEMGR 15.  # define INCL_DOS 16.  # define INCL_SUB 17.   18.   #include   19. 20.  #else 21.   22.   typedef char CHAR; 23.  typedef void VOID; 24.   25.   typedef unsigned char UCHAR; 26.  typedef unsigned short USHORT; 27.  typedef unsigned int UINT; 28.  typedef unsigned long ULONG; 29.  typedef unsigned char BYTE; 30.   31.   # ifdef OS2_32BITAPI 32.   33.   typedef unsigned long SHANDLE; 34.  typedef USHORT HKBD; 35.  typedef USHORT HVIO; 36.   37.   #  define CCHMAXPATHCOMP 256 38.   39.   #  ifdef OS2_CSET2 40.  #   define API16 _Far16 _Pascal 41.  #   define DAT16 42.  #   define API32 _System 43.  #   define KbdGetStatus KBD16GETSTATUS 44.  #   define KbdSetStatus KBD16SETSTATUS 45.  #   define KbdCharIn    KBD16CHARIN 46.  #   define KbdPeek      KBD16PEEK 47.  #   define VioGetMode   VIO16GETMODE 48.  #   define VioSetCurPos VIO16SETCURPOS 49.  #  else 50.  #   define API16 51.  #   define DAT16 52.  #   define API32 53.  #  endif 54.   55.   #  define DAT 56.   57.   # else /* OS2_32BITAPI */ 58.   59.   typedef unsigned short SHANDLE; 60.  typedef SHANDLE HKBD; 61.  typedef SHANDLE HVIO; 62.   63.   #  define CCHMAXPATHCOMP 13 64.   65.   #  ifdef OS2_MSC 66.  #   define API16 pascal far 67.  #   define DAT16 68.  #  endif 69.   70.   #  define DAT DAT16 71.   72.   # endif /* OS2_32BITAPI */ 73.   74.   typedef USHORT * DAT16 PUSHORT; 75.  typedef BYTE * DAT16 PBYTE; 76.  typedef ULONG * DAT PULONG; 77.  typedef VOID * DAT PVOID; 78.   79.   typedef SHANDLE HDIR; 80.  typedef HDIR * DAT PHDIR; 81.   82.   typedef char * DAT16 PCH; 83.  typedef char * DAT PSZ; 84.   85.   /* all supported compilers understand this */ 86.   87.   # pragma pack(2) 88.   89.   typedef struct { 90.  	UCHAR  chChar; 91.  	UCHAR  chScan; 92.  	UCHAR  fbStatus; 93.  	UCHAR  bNlsShift; 94.  	USHORT fsState; 95.  	ULONG  time; 96.  } KBDKEYINFO; 97.   98.   typedef KBDKEYINFO * DAT16 PKBDKEYINFO; 99.   100.  /* File time and date types */ 101.  102.  typedef struct { 103. 	UINT twosecs : 5; 104. 	UINT minutes : 6; 105. 	UINT hours   : 5; 106. } FTIME; 107.  108.  typedef struct { 109. 	UINT day     : 5; 110. 	UINT month   : 4; 111. 	UINT year    : 7; 112. } FDATE; 113.  114.  # ifdef OS2_32BITAPI 115.  116.  typedef struct { 117. 	ULONG oNextEntryOffset; 118. 	FDATE fdateCreation; 119. 	FTIME ftimeCreation; 120. 	FDATE fdateLastAccess; 121. 	FTIME ftimeLastAccess; 122. 	FDATE fdateLastWrite; 123. 	FTIME ftimeLastWrite; 124. 	ULONG cbFile; 125. 	ULONG cbFileAlloc; 126. 	ULONG attrFile; 127. 	UCHAR cchName; 128. 	CHAR  achName[CCHMAXPATHCOMP]; 129. } FILEFINDBUF3; 130.  131.  # else 132.  133.  typedef struct { 134. 	FDATE  fdateCreation; 135. 	FTIME  ftimeCreation; 136. 	FDATE  fdateLastAccess; 137. 	FTIME  ftimeLastAccess; 138. 	FDATE  fdateLastWrite; 139. 	FTIME  ftimeLastWrite; 140. 	ULONG  cbFile; 141. 	ULONG  cbFileAlloc; 142. 	USHORT attrFile; 143. 	UCHAR  cchName; 144. 	CHAR   achName[CCHMAXPATHCOMP]; 145. } FILEFINDBUF; 146.  147.  typedef FILEFINDBUF * DAT16 PFILEFINDBUF; 148.  149.  # endif /* OS2_32BITAPI */ 150.  151.  typedef struct { 152. 	ULONG  idFileSystem; 153. 	ULONG  cSectorUnit; 154. 	ULONG  cUnit; 155. 	ULONG  cUnitAvail; 156. 	USHORT cbSector; 157. } FSALLOCATE; 158.  159.  typedef struct { 160. 	USHORT cb; 161. 	USHORT fsMask; 162. 	USHORT chTurnAround; 163. 	USHORT fsInterim; 164. 	USHORT fsState; 165. } KBDINFO; 166.  167.  typedef KBDINFO * DAT16 PKBDINFO; 168.  169.  typedef struct { 170. 	USHORT cb; 171. 	UCHAR  fbType; 172. 	UCHAR  color; 173. 	USHORT col; 174. 	USHORT row; 175. 	USHORT hres; 176. 	USHORT vres; 177. 	UCHAR  fmt_ID; 178. 	UCHAR  attrib; 179. 	ULONG  buf_addr; 180. 	ULONG  buf_length; 181. 	ULONG  full_length; 182. 	ULONG  partial_length; 183. 	PCH    ext_data_addr; 184. } VIOMODEINFO; 185.  186.  typedef VIOMODEINFO * DAT16 PVIOMODEINFO; 187.  188.  # pragma pack 189.  190.  /* OS2 API functions */ 191.  192.  USHORT API16 KbdGetStatus(PKBDINFO, HKBD); 193. USHORT API16 KbdSetStatus(PKBDINFO, HKBD); 194. USHORT API16 KbdCharIn(PKBDKEYINFO, USHORT, HKBD); 195. USHORT API16 KbdPeek(PKBDKEYINFO, HKBD); 196.  197.  USHORT API16 VioGetMode(PVIOMODEINFO, HVIO); 198. USHORT API16 VioSetCurPos(USHORT, USHORT, HVIO); 199.  200.  # ifdef OS2_32BITAPI 201. ULONG API32 DosQueryFSInfo(ULONG, ULONG, PVOID, ULONG); 202. ULONG API32 DosFindFirst(PSZ, PHDIR, ULONG, PVOID, ULONG, PULONG, ULONG); 203. ULONG API32 DosFindNext(HDIR, PVOID, ULONG, PULONG); 204. ULONG API32 DosSetDefaultDisk(ULONG); 205. # else 206. USHORT API16 DosQFSInfo(USHORT, USHORT, PBYTE, USHORT); 207. USHORT API16 DosFindFirst(PSZ, PHDIR, USHORT, PFILEFINDBUF, USHORT, PUSHORT, ULONG); 208. USHORT API16 DosFindNext(HDIR, PFILEFINDBUF, USHORT, PUSHORT); 209. USHORT API16 DosSelectDisk(USHORT); 210. # endif /* OS2_32BITAPI */ 211.  212.  #endif /* OS2_USESYSHEADERS */