home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2i.zip / DOSCALLS.PAS < prev    next >
Pascal/Delphi Source File  |  1994-05-31  |  133KB  |  3,740 lines

  1. (* ====================================================== *)
  2. (*                       DOSCALLS.PAS                     *)
  3. (*     Implementation of the functions of DOSCALLS.DLL    *)
  4. (*        Translation to Pascal by wr+jb/toolbox mag      *)
  5. (* ====================================================== *)
  6. {$IFNDEF OS2}
  7.   Error: Wrong target/Compiler not patched
  8. {$ENDIF}
  9.  
  10. UNIT DosCalls;
  11.  
  12. INTERFACE
  13.  
  14. USES
  15.   Os2Def;
  16.  
  17. TYPE
  18.   hModule = WORD;
  19.  
  20. (* Strings are passed to the dos functions by address, and are assiiz, *)
  21. (* that is termianted by a 0C.  You can pass a Modula-2 string by      *)
  22. (* using the ADR function from SYSTEM.  When constructing strings to   *)
  23. (* pass to OS2 procedures, be sure to leave enough space in the string *)
  24. (* for the 0C terminator.  Normally, the terminator will be put in by  *)
  25. (* by the assignment of any string shorter than the variable being     *)
  26. (* assigned to.                                                        *)
  27.  
  28.  
  29.  
  30. (* The record used to get and set the date and time *)
  31.  
  32.   DateTime = RECORD
  33.     hours               : CHAR;
  34.     Minutes             : CHAR;
  35.     Seconds             : CHAR;
  36.     hundreths           : CHAR;
  37.     day                 : CHAR;
  38.     Month               : BYTE;
  39.     year                : WORD;
  40.     timezone            : INTEGER;
  41.     Weekday             : BYTE;
  42.     END;
  43.  
  44. (* The record returned by DosQFSInfo *)
  45.  
  46.   FsData = RECORD
  47.     id                  : LongInt;
  48.     SectorsPerUnit      : LongInt;
  49.     Units               : LongInt;
  50.     UnitsAvailable      : LongInt;
  51.     BytesPerSector      : WORD;
  52.   END;
  53.  
  54. (* The exection flags for DosExecPgm.  These determine    *)
  55. (* how the program is executed                            *)
  56.  
  57. CONST
  58.   EXEC_SYNC          = 0; (* execute synchonously, result code returned *)
  59.   EXEC_ASYNC         = 1; (* execute asynchronously and discard result code *)
  60.   EXEC_ASYNCRESULT   = 2; (* execute asynchronously and save result code *)
  61.   EXEC_TRACE         = 3; (* execute under trace control - for debuggers *)
  62.   EXEC_BACKGROUND    = 4; (* execute as a background process *)
  63.   EXEC_LOAD          = 5; (* not documented but in the C headers *)
  64.                      (* not in C headers any more *)
  65.  
  66. (* The result code of a child process returned by  *)
  67. (* DosExecPgm and DosCWait                         *)
  68. TYPE
  69.   ResultCodes = RECORD
  70.     CASE WORD OF
  71.       EXEC_SYNC       : (codeTerminate    : WORD ;
  72.                          codeResult       : WORD);
  73. {ELSE}EXEC_ASYNC,
  74.       EXEC_ASYNCRESULT,
  75.       EXEC_TRACE      ,
  76.       EXEC_BACKGROUND ,
  77.       EXEC_LOAD       : (ProcessID : WORD); (* see above *)
  78.   END;
  79.  
  80. (* The termination type codes for DosExecPgm *)
  81.  
  82. CONST
  83.   TC_EXIT             = 0;
  84.   TC_HARDERROR        = 1;
  85.   TC_TRAP             = 2;
  86.   TC_KILLPROCESS      = 3;
  87.  
  88.  
  89. (* Global info seg.   Use DosGetInfoSet to get it's selector *)
  90.  
  91. TYPE
  92.   GInfoSeg = RECORD
  93.     time                : LongInt;
  94.     mSecs               : LongInt;
  95.     hour                : CHAR;
  96.     Minutes             : CHAR;
  97.     Seconds             : CHAR;
  98.     hundreths           : CHAR;
  99.     timezone            : WORD;
  100.     cusecTimeInterval   : WORD;
  101.     day                 : CHAR;
  102.     Month               : CHAR;
  103.     year                : WORD;
  104.     Weekday             : CHAR;
  105.     uchMajorVersion     : CHAR;
  106.     uchMinorVersion     : CHAR;
  107.     chRevisionLetter    : CHAR;
  108.     sgCurrent           : CHAR;
  109.     sgMax               : CHAR;
  110.     cHugeShift          : CHAR;
  111.     fProtectModeOnly    : BOOLEAN;
  112.     pidForeground       : WORD;
  113.     fDynamicSched       : BOOLEAN;
  114.     csecMaxWait         : CHAR;
  115.     cmsecMinSlice       : WORD;
  116.     cmsecMaxSlice       : WORD;
  117.     bootdrive           : WORD;
  118.     amedRAS             : ARRAY [0..31] OF CHAR;
  119.     csgWindowableVioMax : CHAR;
  120.     csgPMMax            : CHAR;
  121.   END;
  122.  
  123. (* Local info segment.  Use DosGetInfoSeg to get it's selector *)
  124.  
  125.  LInfoSeg = RECORD
  126.   pidCurrent          : WORD;
  127.   pidParent           : WORD;
  128.   ptryCurrent         : WORD;
  129.   tidCurrent          : WORD;
  130.   sgCurrent           : WORD;
  131.   rfProcStatus        : CHAR;
  132.   dummy1              : CHAR;
  133.   fForeground         : WORD;
  134.   typeProcess         : CHAR;
  135.   dummy2              : CHAR;
  136.   selEnvironment      : WORD;
  137.   offCmdLine          : WORD;
  138.   cbDataSegment       : WORD;
  139.   cbStack             : WORD;
  140.   cbHeap              : WORD;
  141.   hMod                : hModule;
  142.   selDS               : WORD;
  143. END;
  144.  
  145. CONST
  146.   PT_FULLSCREEN       = #0;
  147.   PT_REALMODE         = #1;
  148.   PT_WINDOWABLEVIO    = #2;
  149.   PT_PM               = #3;
  150.   PT_DETACHED         = #4;
  151.  
  152.   PS_EXITLIST         = #1;
  153.  
  154.  
  155. (* The sharable flag for memory allocation, the constants below *)
  156. (* correspond to the values in the Microsoft documentation *)
  157.  
  158. (* Allocate a huge ( > 64K ) block of memory *)
  159.  
  160. FUNCTION DosAllocHuge(
  161.     NumSeg              : WORD;     (* Number of segments to alloc  *)
  162.     PartialSeg          : WORD;     (* Size of last segment, 0 => 64K *)
  163.     VAR Sel             : WORD;     (* Returned selector *)
  164.     MaxNumSeg           : WORD;     (* Max size it can be realloced to *)
  165.     flags               : WORD      (* Sharing and discardable flags *)
  166.     ) : WORD;
  167. FUNCTION Dos16AllocHuge(
  168.     NumSeg              : WORD;     (* Number of segments to alloc  *)
  169.     PartialSeg          : WORD;     (* Size of last segment, 0 => 64K *)
  170.     VAR Sel             : WORD;     (* Returned selector *)
  171.     MaxNumSeg           : WORD;     (* Max size it can be realloced to *)
  172.     flags               : WORD      (* Sharing and discardable flags *)
  173.     ) : WORD;
  174.  
  175. (* Allocate a segment of 1 to 65536 bytes *)
  176.  
  177. FUNCTION DosAllocSeg(
  178.     Size                : WORD;     (* Size in bytes, 0 => 64K *)
  179.     VAR Sel             : WORD;     (* Returned selector *)
  180.     flags               : WORD      (* See above *)
  181.     ) : WORD;
  182. FUNCTION Dos16AllocSeg(
  183.     Size                : WORD;     (* Size in bytes, 0 => 64K *)
  184.     VAR Sel             : WORD;     (* Returned selector *)
  185.     flags               : WORD      (* See above *)
  186.     ) : WORD;
  187.  
  188. (* Allocate a shared segment *)
  189.  
  190. FUNCTION DosAllocShrSeg(
  191.     Size        : WORD;    (* Size in bytes 0 => 65536 *)
  192.     SegName     : pChar;   (* name of the form: \SHAREMEM\name *)
  193.     VAR Sel     : WORD     (* returned selector *)
  194.     ) : WORD;
  195. FUNCTION Dos16AllocShrSeg(
  196.     Size        : WORD;    (* Size in bytes 0 => 65536 *)
  197.     SegName     : pChar;   (* name of the form: \SHAREMEM\name *)
  198.     VAR Sel     : WORD     (* returned selector *)
  199.     ) : WORD;
  200.  
  201. (* flush buffers for a file or for all files *)
  202.  
  203. FUNCTION DosBufReset(
  204.     Handle      : WORD   (* file handle or 0FFFFH to flush all *)
  205.     ) : WORD;
  206. FUNCTION Dos16BufReset(
  207.     Handle      : WORD   (* file handle or 0FFFFH to flush all *)
  208.     ) : WORD;
  209.  
  210. (* change current directory *)
  211.  
  212. FUNCTION DosChDir(DirPath   : pChar;   (* new directory path *)
  213.                   Reserved  : LongInt   (* must be zero *)
  214.                           ) : WORD;
  215. FUNCTION Dos16ChDir(DirPath : pChar;   (* new directory path *)
  216.                     Reserved: LongInt   (* must be zero *)
  217.                           ) : WORD;
  218.  
  219. (* change file pointer *)
  220.  
  221. (* use this call also to get current position by using:  *)
  222. (*                                                       *)
  223. (*     DosChgFilePtr(handle, 0, FromCurrent, newpos)     *)
  224. (*                                                       *)
  225. (* and to get the length of the file by:                 *)
  226. (*                                                       *)
  227. (*     DosChgFilePtr(handle, 0, FromEnd, newpos)         *)
  228.  
  229. FUNCTION DosChgFilePtr(Handle      : WORD;  (* file handle to position *)
  230.                        Distance    : LongInt;   (* number of bytes to move *)
  231.                        Method      : WORD;  (* starting position, see above *)
  232.                        VAR NewPtr  : LongInt    (* returned position *)
  233.                                  ) : WORD;
  234. FUNCTION Dos16ChgFilePtr(Handle      : WORD;  (* file handle to position *)
  235.                          Distance    : LongInt;   (* number of bytes to move *)
  236.                          Method      : WORD;  (* starting position, see above *)
  237.                          VAR NewPtr  : LongInt    (* returned position *)
  238.                                    ) : WORD;
  239.  
  240. (* request CLI / STI privilege *)
  241.  
  242. FUNCTION DosCLIAccess  : WORD;
  243. FUNCTION Dos16CLIAccess: WORD;
  244.  
  245. (* close a file handle *)
  246.  
  247. FUNCTION DosClose(HFile: WORD   (* handle returned by create or open file *)
  248.                      ) : WORD;
  249. FUNCTION Dos16Close(HFile : WORD   (* handle returned by create or open file *)
  250.                         ) : WORD;
  251.  
  252. CONST
  253.   SEG_NON_SHARABLE    = 0;
  254.   SEG_GIVEABLE        = 1;
  255.   SEG_GETTABLE        = 2;
  256.   SEG_DISCARDABLE     = 4;
  257.  
  258.  
  259. (* The following structures are used in the            *)
  260. (* DosMuxSemWait call to wait for one of several       *)
  261. (* semaphores.  The sem list is actually contains      *)
  262. (* only as many semaphores as needed.  You should      *)
  263. (* allocate it to the needed length                    *)
  264.  
  265. TYPE
  266.   MUXSEM = RECORD
  267.     zero    : WORD;         (* must be zero *)
  268.     hSEM    : SemaPhore;    (* the semaphore *)
  269.   END;
  270.     
  271.   MUXSemList = RECORD
  272.     cmxs  : WORD;                (* number of semaphores *)
  273.     amxs  : ARRAY [0..15] OF MUXSEM; (* the list of them *)
  274.   END;
  275.  
  276.  
  277. (* close a semaphore *)
  278.  
  279. FUNCTION DosCloseSem(  hSEM : SemaPhore    (* handle of the semaphore *)
  280.                            ) : WORD;
  281. FUNCTION Dos16CloseSem(hSEM : SemaPhore    (* handle of the semaphore *)
  282.                            ) : WORD;
  283.  
  284. (* create a code selector for a data segment *)
  285.  
  286. FUNCTION DosCreateCSAlias(
  287.                           DataSegment     : WORD;  (* selector of the data segment *)
  288.                           VAR CodeSegment : WORD   (* returned code segment alias selector *)
  289.                           ) : WORD;
  290.  
  291. FUNCTION Dos16CreateCSAlias(
  292.                                 DataSegment   : WORD;  (* selector of the data segment *)
  293.                             VAR CodeSegment   : WORD   (* returned code segment alias selector *)
  294.                                              ) : WORD;
  295.  
  296. FUNCTION DosCreateSem(
  297.                        NoExclusive   : WORD;(* do not want exclusive access *)
  298.                        VAR SemHandle : SemaPhore;   (* handle for the semaphore *)
  299.                        SemName       : pChar       (* name of the semaphore *)
  300.                        ) : WORD;
  301. FUNCTION Dos16CreateSem(
  302.                          NoExclusive   : WORD;(* do not want exclusive access *)
  303.                          VAR SemHandle : SemaPhore;   (* handle for the semaphore *)
  304.                          SemName       : pChar       (* name of the semaphore *)
  305.                          ) : WORD;
  306.  
  307. (* create a new thread of execution *)
  308.  
  309. (* wait for completion of child process *)
  310.  
  311. CONST
  312.   DCWA_PROCESS        = 0;
  313.   DCWA_PROCESSTREE    = 1;
  314.  
  315.   DCWW_WAIT           = 0;
  316.   DCWW_NOWAIT         = 1;
  317.  
  318. FUNCTION DosCWait(    Scope       : WORD;     (* single process or entire tree *)
  319.                        NoWait      : WORD;    (* wait for completion or not *)
  320.                    VAR Results     : ResultCodes;  (* Return code of the completed process *)
  321.                    VAR ProcessID   : WORD;     (* Process ID of completed process *)
  322.                        WaitProcess : WORD      (* Process ID, 0 => any child process *)
  323.                                  ) : WORD;
  324. FUNCTION Dos16CWait(    Scope         : WORD;     (* single process or entire tree *)
  325.                          NoWait        : WORD;    (* wait for completion or not *)
  326.                      VAR Results       : ResultCodes;  (* Return code of the completed process *)
  327.                      VAR ProcessID     : WORD;     (* Process ID of completed process *)
  328.                          WaitProcess   : WORD      (* Process ID, 0 => any child process *)
  329.                                      ) : WORD;
  330.  
  331. (* delete a file *)
  332.  
  333. FUNCTION DosDelete(Name    : pChar;       (* name of file to delete *)
  334.                     Reserved: LongInt       (* must be zero *)
  335.                           ) : WORD;
  336. FUNCTION Dos16Delete(Name    : pChar;       (* name of file to delete *)
  337.                       Reserved: LongInt       (* must be zero *)
  338.                             ) : WORD;
  339.  
  340. (* get information about hardware configuration *)
  341.  
  342. CONST
  343.   NumPrinters      = 0;
  344.   NumRS232         = 1;
  345.   NumFloppy        = 2;
  346.   Coprocessor      = 3;
  347.   PCSubmodel       = 4;
  348.   PCModel          = 5;
  349.   PrimaryDisplay   = 6;
  350.  
  351. FUNCTION DosDevConfig(VAR DeviceInfo  : BYTE;         (* returned info *)
  352.                            Item        : WORD;     (* item requested, see above *)
  353.                            Parameter   : WORD      (* reserved, must be zero *)
  354.                                       ): WORD;
  355. FUNCTION Dos16DevConfig(VAR DeviceInfo  : BYTE;         (* returned info *)
  356.                              Item        : WORD;     (* item requested, see above *)
  357.                              Parameter   : WORD      (* reserved, must be zero *)
  358.                                         ): WORD;
  359.  
  360. (* perform I/O control functions on devices.  This function sends *)
  361. (* or requests information from a device driver.  The format of the *)
  362. (* information request and data are device dependent *)
  363.  
  364. FUNCTION DosDevIOCtl(
  365.     Data                : Pointer;      (* address of data buffer *)
  366.     ParamList           : Pointer;      (* command specific arguments *)
  367.     aFunction           : WORD;     (* device specific function code *)
  368.     Category            : WORD;     (* device category *)
  369.     Handle              : WORD      (* handle for the device *)
  370.     ) : WORD;
  371. FUNCTION Dos16DevIOCtl(
  372.     Data                : Pointer;      (* address of data buffer *)
  373.     ParamList           : Pointer;      (* command specific arguments *)
  374.     aFunction           : WORD;     (* device specific function code *)
  375.     Category            : WORD;     (* device category *)
  376.     Handle              : WORD      (* handle for the device *)
  377.     ) : WORD;
  378.  
  379. (* Duplicate a file handle *)
  380.  
  381. FUNCTION DosDupHandle(
  382.     oldHandle           : WORD;     (* old file handle *)
  383.     VAR newHandle       : WORD      (* new handle or 0FFFF for next *)
  384.     ) : WORD;
  385. FUNCTION Dos16DupHandle(
  386.     oldHandle           : WORD;     (* old file handle *)
  387.     VAR newHandle       : WORD      (* new handle or 0FFFF for next *)
  388.     ) : WORD;
  389.  
  390. (* Temporarily suspend activity of all other threads.  This call must *)
  391. (* be used when manipulating data global to multiple threads.  You must *)
  392. (* call DosExitCritSec when you are finished *)
  393.  
  394. PROCEDURE DosEnterCritSec;
  395. PROCEDURE Dos16EnterCritSec;
  396.  
  397. (* Classify an error.  The values returned are defined in Os2Error.DEF *)
  398.  
  399. FUNCTION DosErrClass {139} (
  400.     Code                : WORD;     (* the error code to classify *)
  401.     VAR Class           : WORD;     (* the returned error class *)
  402.     VAR Action          : WORD;     (* the recommended action *)
  403.     VAR Locus           : WORD      (* the error locus *)
  404.     ) : WORD;
  405. FUNCTION Dos16ErrClass {139} (
  406.     Code                : WORD;     (* the error code to classify *)
  407.     VAR Class           : WORD;     (* the returned error class *)
  408.     VAR Action          : WORD;     (* the recommended action *)
  409.     VAR Locus           : WORD      (* the error locus *)
  410.     ) : WORD;
  411.  
  412. (* Control hard error processing.  If suspended, all hard errors are *)
  413. (* returned to the process, dos does not intervene *)
  414.  
  415. CONST
  416.     DisableHard         = 0;
  417.     EnableHard          = 1;
  418.     DisableException    = 2;
  419.  
  420. FUNCTION DosError {120} (
  421.     Flag                : WORD      (* see above values *)
  422.     ) : WORD;
  423. FUNCTION Dos16Error {120} (
  424.     Flag                : WORD      (* see above values *)
  425.     ) : WORD;
  426.  
  427. (* execute a program *)
  428.  
  429. FUNCTION DosExecPgm {'DOSCALLS@144'} (
  430.     FailName            : Pointer;      (* address of buffer to receive name *)
  431.     FailNameLength      : WORD;     (* length of above buffer *)
  432.     ExecFlags           : WORD;    (* see above *)
  433.     Args                : pChar;       (* command arguments *)
  434.     Environment         : Pointer;      (* Environent address or 0 to inherit *)
  435.     VAR Results         : ResultCodes;  (* Return codes from program *)
  436.     PgmName             : pChar        (* name of the program to execute *)
  437.     ) : WORD;
  438. FUNCTION Dos16ExecPgm {'DOSCALLS@144'} (
  439.     FailName            : Pointer;      (* address of buffer to receive name *)
  440.     FailNameLength      : WORD;     (* length of above buffer *)
  441.     ExecFlags           : WORD;    (* see above *)
  442.     Args                : pChar;       (* command arguments *)
  443.     Environment         : Pointer;      (* Environent address or 0 to inherit *)
  444.     VAR Results         : ResultCodes;  (* Return codes from program *)
  445.     PgmName             : pChar        (* name of the program to execute *)
  446.     ) : WORD;
  447.  
  448. (* Terminate a thread *)
  449.  
  450. CONST
  451.   EXIT_THREAD         = 0;
  452.   EXIT_PROCESS        = 1;
  453.  
  454. (* resume execution of other threads *)
  455. PROCEDURE DosExitCritSec {6};
  456. PROCEDURE Dos16ExitCritSec {'DOSCALLS@6};
  457. (* Maintain a list of procedures to be called when terminating *)
  458. CONST
  459.     EXLST_ADD           = 1;            (* add an exit procedure *)
  460.     EXLST_REMOVE        = 2;            (* remove an exit procedure *)
  461.     EXLST_EXIT          = 3;            (* exit from an exit procedure *)
  462.  
  463. (* Define a type for the termination procedure.  The parameter is *)
  464. (* the termination reason *)
  465.  
  466. TYPE
  467.   TermProc = FUNCTION: WORD{ [LONG, LOADDS]};
  468.  
  469. FUNCTION DosExitList {7} (
  470.     FnCode              : WORD;     (* function, see above type *)
  471.     RtnAddress          : TermProc      (* the procedure *)
  472.     ) : WORD;
  473. FUNCTION Dos16ExitList {7} (
  474.     FnCode              : WORD;     (* function, see above type *)
  475.     RtnAddress          : TermProc      (* the procedure *)
  476.     ) : WORD;
  477.  
  478. (* Manage file locks *)
  479.  
  480. TYPE
  481.   LockRange = RECORD
  482.     FileOffset          : LongInt;      (* offset of start of range *)
  483.     RangeLength         : LongInt;      (* length of range in bytes *)
  484.   END;
  485.  
  486. FUNCTION DosFileLocks {62} (
  487.     FileHandle          : WORD;     (* handle for the file *)
  488.     UnlockRange         : LockRange;    (* range to unlock *)
  489.     LockRange           : LockRange     (* range to lock *)
  490.     ) : WORD;
  491. FUNCTION Dos16FileLocks {62} (
  492.     FileHandle          : WORD;     (* handle for the file *)
  493.     UnlockRange         : LockRange;    (* range to unlock *)
  494.     LockRange           : LockRange     (* range to lock *)
  495.     ) : WORD;
  496.  
  497. (* closes the handle used for DosFindFirst and DosFindNext *)
  498.  
  499. FUNCTION DosFindClose {63} (
  500.     DirHandle           : WORD      (* DosFind handle *)
  501.     ) : WORD;
  502. FUNCTION Dos16FindClose {63} (
  503.     DirHandle           : WORD      (* DosFind handle *)
  504.     ) : WORD;
  505.  
  506.  
  507. TYPE
  508.   FileAttribute =
  509.     (faReadOnly, faHidden, faSystem, faVolumeLabel, faDirectory, faArchive,
  510.      Att40, Att80, Att100, Att200, Att400, Att800, Att1000,
  511.      Att2000, Att4000, Att8000);
  512.  
  513.   AttributeSet = SET OF FileAttribute;
  514.  
  515. (* This is the record type returned by DosFindFirst and DosFindNext *)
  516. (* Actually, they can return multiple files at once, with the name portion *)
  517. (* being variable in length.  This record will work fine, if you request *)
  518. (* one file at a time *)
  519.  
  520. CONST
  521.   FIO_LOCK            = 0;
  522.   FIO_UNLOCK          = 1;
  523.   FIO_SEEK            = 2;
  524.   FIO_READ            = 3;
  525.   FIO_WRITE           = 4;
  526.  
  527.   FIO_NOSHARE         = 0;
  528.   FIO_SHAREREAD       = 1;
  529.  
  530. TYPE
  531.   FioLockCmd = RECORD
  532.     usCmd           : WORD;
  533.     cLockCnt        : WORD;
  534.     cTimeOut        : LongInt{LONGCARD};
  535.   END;
  536.  
  537.   FioLockRec = RECORD
  538.     fShare          : WORD;
  539.     cbStart         : LongInt{LONGCARD};
  540.     cbLength        : LongInt{LONGCARD};
  541.   END;
  542.         
  543.   FioUnlockCmd = RECORD
  544.     usCmd           : WORD;
  545.     cUnlockCnt      : WORD;
  546.   END;
  547.  
  548.   FioUnlockRec = RECORD
  549.     cbStart         : LongInt{LONGCARD};
  550.     cbLength        : LongInt{LONGCARD};
  551.   END;
  552.  
  553.   FioSeekCmd = RECORD
  554.     usCmd           : WORD;
  555.     fsMethod        : WORD;
  556.     cbDistance      : LongInt{LONGCARD};
  557.     cbNewPosition   : LongInt{LONGCARD};
  558.   END;
  559.  
  560.   FioReadWrite = RECORD
  561.     usCmd           : WORD;
  562.     pbBuffer        : Pointer;
  563.     cbBufferLen     : WORD;
  564.     cbActualLen     : WORD;
  565.   END;
  566.  
  567. CONST
  568.   FIL_STANDARD        = 1;
  569.   FIL_QUERYEASIZE     = 2;
  570.   FIL_QUERYEAFROMLIST = 3;
  571.  
  572.   FIL_QUERYFULLNAME   = 5;
  573.   FIL_NAMEISVALID     = 6;
  574.  
  575.   FNOTIL_STANDARD     = 1;
  576.  
  577.   FSATTACH            = 0;
  578.   FSDETACH            = 1;
  579.  
  580.   FSCTL_HANDLE        = 1;
  581.   FSCTL_PATHNAME      = 2;
  582.   FSCTL_FSDNAME       = 3;
  583.  
  584.   FSAIL_QUERYNAME     = 1;
  585.   FSAIL_DEVNUMBER     = 2;
  586.   FSAIL_DRVNUMBER     = 3;
  587.  
  588.   FSAT_CHARDEV        = 1;
  589.   FSAT_PSEUDODEV      = 2;
  590.   FSAT_LOCALDRV       = 3;
  591.   FSAT_REMOTEDRV      = 4;
  592.  
  593. TYPE
  594.   FQSBuffer = RECORD
  595.     iType           : WORD;
  596.     cbName          : WORD;
  597.     szName          : ARRAY [0..0] OF CHAR;
  598.     cbFSDName       : WORD;
  599.     szFSDName       : ARRAY [0..0] OF CHAR;
  600.     cbFSAData       : WORD;
  601.     rgFSAData       : ARRAY [0..0] OF CHAR;
  602.   END;
  603.  
  604. CONST
  605.   FSIL_ALLOC          = 1;
  606.   FSIL_VOLSER         = 2;
  607.  
  608.   HANDTYPE_FILE       = 0;
  609.   HANDTYPE_DEVICE     = 1;
  610.   HANDTYPE_PIPE       = 2;
  611.   HANDTYPE_NETWORK    = $8000;
  612.  
  613.   FHT_DISKFILE        = 0;
  614.   FHT_CHRDEV          = 1;
  615.   FHT_PIPE            = 2;
  616.  
  617.   FHB_DSKREMOTE       = $8000;
  618.   FHB_CHRDEVREMOTE    = $8001;
  619.   FHB_PIPEREMOTE      = $8002;
  620.  
  621.   CCHMAXPATH          = 260;
  622.   CCHMAXPATHCOMP      = 256;
  623.  
  624. TYPE
  625.   fTime       = WORD;
  626.   fDate       = WORD;
  627.  
  628.   FileFindBuf = RECORD
  629.     fDateCreation           : fDate;
  630.     fTimeCreation           : fTime;
  631.     fDateLastAccess         : fDate;
  632.     fTimeLastAccess         : fTime;
  633.     fDateLastWrite          : fDate;
  634.     fTimeLastWrite          : fTime;
  635.     cbFile                  : LongInt{LONGCARD};
  636.     cbFileAlloc             : LongInt{LONGCARD};
  637.     attrFile                : WORD;
  638.     cchName                 : CHAR;
  639.     achName                 : ARRAY [0..12] OF CHAR;
  640.   END;
  641.  
  642.   FileFindBuf2 = RECORD
  643.     fDateCreation           : fDate;
  644.     fTimeCreation           : fTime;
  645.     fDateLastAccess         : fDate;
  646.     fTimeLastAccess         : fTime;
  647.     fDateLastWrite          : fDate;
  648.     fTimeLastWrite          : fTime;
  649.     cbFile                  : LongInt{LONGCARD};
  650.     cbFileAlloc             : LongInt{LONGCARD};
  651.     attrFile                : WORD;
  652.     cbList                  : LongInt{LONGCARD};
  653.     cchName                 : CHAR;
  654.     achName                 : ARRAY [0..CCHMAXPATHCOMP-1] OF CHAR;
  655.   END;
  656.  
  657.   Gea = RECORD
  658.     cbName  : CHAR;
  659.     szName  : ARRAY [0..0] OF CHAR;
  660.   END;
  661.  
  662.   GeaList = RECORD
  663.     cbList  : LongInt{LONGCARD};
  664.     list    : ARRAY [0..0] OF Gea;
  665.   END;
  666.  
  667.   Fea = RECORD
  668.     Fea     : CHAR;
  669.     cbName  : CHAR;
  670.     cbValue : WORD;
  671.   END;
  672.  
  673. CONST
  674.   FEA_NEEDEA  = $80;
  675.  
  676. TYPE
  677.   FEALIST = RECORD
  678.     cbList  : LongInt{LONGCARD};
  679.     list    : ARRAY [0..0] OF Fea;
  680.   END;
  681.  
  682.   EaOp = RECORD
  683.     fpGeaList       : ^GeaList;
  684.     fpFeaList       : ^FEALIST;
  685.     oError          : LongInt{LONGCARD};
  686.   END;
  687.  
  688. CONST
  689.   EAT_BINARY          = $0FFFE;
  690.   EAT_ASCII           = $0FFFD;
  691.   EAT_BITMAP          = $0FFFB;
  692.   EAT_METAFILE        = $0FFFA;
  693.   EAT_ICON            = $0FFF9;
  694.   EAT_EA              = $0FFEE;
  695.   EAT_MVMT            = $0FFDF;
  696.   EAT_MVST            = $0FFDE;
  697.   EAT_ANS1            = $0FFDD;
  698.  
  699.  
  700. (* find first file matching a wildcard file spec *)
  701.  
  702. FUNCTION DosFindFirst {64} (
  703.     Name                : pChar;       (* the file name, * and ? allowed *)
  704.     VAR Handle          : WORD;     (* handle, 0FFFF means allocate one *)
  705.     attribute           : AttributeSet; (* attributes to match *)
  706.     VAR ResultBuf       : FileFindBuf;  (* returned file information *)
  707.     ResultBufLen        : WORD;     (* length of result area *)
  708.     VAR count           : WORD;     (* # of files to return / returned *)
  709.     Reserved            : LongInt       (* must be zero *)
  710.     ) : WORD;
  711. FUNCTION Dos16FindFirst {64} (
  712.     Name                : pChar;       (* the file name, * and ? allowed *)
  713.     VAR Handle          : WORD;     (* handle, 0FFFF means allocate one *)
  714.     attribute           : AttributeSet; (* attributes to match *)
  715.     VAR ResultBuf       : FileFindBuf;  (* returned file information *)
  716.     ResultBufLen        : WORD;     (* length of result area *)
  717.     VAR count           : WORD;     (* # of files to return / returned *)
  718.     Reserved            : LongInt       (* must be zero *)
  719.     ) : WORD;
  720.  
  721. (* find next file matching a wildcard spec *)
  722.  
  723. FUNCTION DosFindNext {65} (
  724.     Handle              : WORD;     (* the handle returned by DosFindFist *)
  725.     VAR ResultBuf       : FileFindBuf;  (* returned file information *)
  726.     ResultBufLen        : WORD;     (* length of result area *)
  727.     VAR count           : WORD      (* # of files to return / returned *)
  728.     ) : WORD;
  729. FUNCTION Dos16FindNext {65} (
  730.     Handle              : WORD;     (* the handle returned by DosFindFist *)
  731.     VAR ResultBuf       : FileFindBuf;  (* returned file information *)
  732.     ResultBufLen        : WORD;     (* length of result area *)
  733.     VAR count           : WORD      (* # of files to return / returned *)
  734.     ) : WORD;
  735.  
  736. (* Signal an external event to a process *)
  737.  
  738. CONST
  739.   PFLG_A       = 0;
  740.   PFLG_B       = 1;
  741.   PFLG_C       = 2;
  742.  
  743.   FLGP_SUBTREE = 0;
  744.   FLGP_PID     = 1;
  745.  
  746. FUNCTION DosFlagProcess {15} (
  747.     ProcessID           : WORD;     (* ID of process to flag *)
  748.     Action              : WORD;     (* flag progency or just the process *)
  749.     FlagNum             : WORD;     (* flag A, B, or C *)
  750.     FlagArg             : WORD      (* argument to send to handler *)
  751.     ) : WORD;
  752. FUNCTION Dos16FlagProcess {15} (
  753.     ProcessID           : WORD;     (* ID of process to flag *)
  754.     Action              : WORD;     (* flag progency or just the process *)
  755.     FlagNum             : WORD;     (* flag A, B, or C *)
  756.     FlagArg             : WORD      (* argument to send to handler *)
  757.     ) : WORD;
  758.  
  759. (* Free a dynamic link module *)
  760.  
  761. FUNCTION DosFreeModule {46} (
  762.     ModuleHandle        : WORD      (* handle of module to free *)
  763.     ) : WORD;
  764. FUNCTION Dos16FreeModule {46} (
  765.     ModuleHandle        : WORD      (* handle of module to free *)
  766.     ) : WORD;
  767.  
  768. (* Free a segment of memory *)
  769.  
  770. FUNCTION DosFreeSeg {39} (
  771.     Selector            : WORD      (* selector for segment to free *)
  772.     ) : WORD;
  773. FUNCTION Dos16FreeSeg {39} (
  774.     Selector            : WORD      (* selector for segment to free *)
  775.     ) : WORD;
  776.  
  777.  
  778. FUNCTION DosGetCP {130} (
  779.     Length              : WORD;     (* length of the list buffer *)
  780.     CodePageList        : Pointer;      (* buffer with a word for each CP *)
  781.                                         (* first word returned is current *)
  782.     VAR DataLength      : WORD      (* size of returned list *)
  783.     ) : WORD;
  784. FUNCTION Dos16GetCP(
  785.     Length              : WORD;     (* length of the list buffer *)
  786.     CodePageList        : Pointer;      (* buffer with a word for each CP *)
  787.                                         (* first word returned is current *)
  788.     VAR DataLength      : WORD      (* size of returned list *)
  789.     ) : WORD;
  790.  
  791. (* Get the current date and time *)
  792.  
  793. FUNCTION DosGetDateTime {33} (
  794.     VAR dt              : DateTime      (* returned date and time *)
  795.     ) : WORD;
  796. FUNCTION Dos16GetDateTime {33} (
  797.     VAR dt              : DateTime      (* returned date and time *)
  798.     ) : WORD;
  799.  
  800. (* Get the address of the environment strings *)
  801.  
  802. FUNCTION DosGetEnv {91} (
  803.     VAR Segment         : WORD;     (* segment containing environment *)
  804.     VAR Offset          : WORD      (* offset to commmand parameters *)
  805.     ) : WORD;
  806. FUNCTION Dos16GetEnv {91} (
  807.     VAR Segment         : WORD;     (* segment containing environment *)
  808.     VAR Offset          : WORD      (* offset to commmand parameters *)
  809.     ) : WORD;
  810.  
  811. (* Get the number you must shift 1 by to increment between segments in *)
  812. (* a huge block of memory *)
  813.  
  814. FUNCTION DosGetHugeShift {41} (
  815.     VAR ShiftCount      : WORD      (* Returned shift count *)
  816.     ) : WORD;
  817. FUNCTION Dos16GetHugeShift {41} (
  818.     VAR ShiftCount      : WORD      (* Returned shift count *)
  819.     ) : WORD;
  820.  
  821. (* Get segment selectors for the local and global info segments *)
  822.  
  823. PROCEDURE DosGetInfoSeg {8} (
  824.     VAR GlobalSeg       : WORD;     (* Returned global info seg *)
  825.     VAR LocalSeg        : WORD);    (* Returned local info seg *)
  826. PROCEDURE Dos16GetInfoSeg {8} (
  827.     VAR GlobalSeg       : WORD;     (* Returned global info seg *)
  828.     VAR LocalSeg        : WORD);    (* Returned local info seg *)
  829.  
  830. (* Get the mode in which the machine is executing. *)
  831.  
  832. PROCEDURE DosGetMachineMode {49} (
  833.     VAR MachineMode     : WORD);    (* 0 => real mode, 1 => protected *)
  834. PROCEDURE Dos16GetMachineMode {49} (
  835.     VAR MachineMode     : WORD);    (* 0 => real mode, 1 => protected *)
  836.  
  837. (* Get the handle of an already loaded dynamic link module *)
  838.  
  839. FUNCTION DosGetModHandle {47} (
  840.     ModName             : pChar;       (* the module name *)
  841.     VAR Handle          : WORD      (* the returned handle *)
  842.     ) : WORD;
  843. FUNCTION Dos16GetModHandle {47} (
  844.     ModName             : pChar;       (* the module name *)
  845.     VAR Handle          : WORD      (* the returned handle *)
  846.     ) : WORD;
  847.  
  848. (* Get the name of a dynamic link module *)
  849.  
  850. FUNCTION DosGetModName {48} (
  851.     ModuleHandle        : WORD;     (* the module handle to get name for *)
  852.     BufferLength        : WORD;     (* the length of the output buffer *)
  853.     Buffer              : pChar        (* the address of output buffer *)
  854.     ) : WORD;
  855. FUNCTION Dos16GetModName {48} (
  856.     ModuleHandle        : WORD;     (* the module handle to get name for *)
  857.     BufferLength        : WORD;     (* the length of the output buffer *)
  858.     Buffer              : pChar        (* the address of output buffer *)
  859.     ) : WORD;
  860.  
  861.     
  862. (* Get the current process id *)
  863. TYPE
  864.   PidInfo = RECORD
  865.     pID         : WORD;     (* current process id *)
  866.     tId         : WORD;     (* current thread id *)
  867.     pidParent   : WORD;     (* process id of our parent *)
  868.   END;
  869.  
  870. FUNCTION DosGetPID {94} (
  871.     VAR pID     : PidInfo       (* record to return *)
  872.     ) : WORD;
  873. FUNCTION Dos16GetPID {94} (
  874.     VAR pID     : PidInfo       (* record to return *)
  875.     ) : WORD;
  876.  
  877. (* Get the address of a procedure in a dynamic link module *)
  878. FUNCTION DosGetProcAddr {45} (
  879.     ModuleHandle        : WORD;     (* the module handle containing it *)
  880.     ProcName            : pChar;       (* address of name of the proc *)
  881.     VAR ProcAddress     : Pointer       (* the returned address *)
  882.     ) : WORD;
  883. FUNCTION Dos16GetProcAddr {45} (
  884.     ModuleHandle        : WORD;     (* the module handle containing it *)
  885.     ProcName            : pChar;       (* address of name of the proc *)
  886.     VAR ProcAddress     : Pointer       (* the returned address *)
  887.     ) : WORD;
  888.  
  889. (* Get the priority of a process *)
  890.  
  891. CONST
  892.   PRTYS_PROCESS       = 0;
  893.   PRTYS_PROCESSTREE   = 1;
  894.   PRTYS_THREAD        = 2;
  895.  
  896. FUNCTION DosGetPrty {9} (
  897.     Scope               : WORD;(* see above values *)
  898.     VAR Priority        : WORD;     (* returned priority *)
  899.     id                  : WORD      (* process or thread id *)
  900.     ) : WORD;
  901. FUNCTION Dos16GetPrty {9} (
  902.     Scope               : WORD;(* see above values *)
  903.     VAR Priority        : WORD;     (* returned priority *)
  904.     id                  : WORD      (* process or thread id *)
  905.     ) : WORD;
  906.  
  907. (* Get access to a segment allocated by DosGetSeg with flags bit 1 on *)
  908. FUNCTION DosGetSeg {121} (
  909.     Selector            : WORD      (* selector for the seg to access *)
  910.     ) : WORD;
  911. FUNCTION Dos16GetSeg {121} (
  912.     Selector            : WORD      (* selector for the seg to access *)
  913.     ) : WORD;
  914.  
  915. (* Get access to a shared segment created by another process *)
  916.  
  917. FUNCTION DosGetShrSeg {36} (
  918.     Name                : pChar;       (* address of shared seg name *)
  919.     VAR Selector        : WORD      (* the returned selector *)
  920.     ) : WORD;
  921. FUNCTION Dos16GetShrSeg {36} (
  922.     Name                : pChar;       (* address of shared seg name *)
  923.     VAR Selector        : WORD      (* the returned selector *)
  924.     ) : WORD;
  925.  
  926.  
  927. (* Get the version of DOS that is running *)
  928.  
  929. PROCEDURE DosGetVersion  {92} (
  930.     VAR Version         : WORD);    (* returned version number *)
  931.                                         (* high byte is major vers *)
  932.                                         (* low byte is minor vers *)
  933. PROCEDURE Dos16GetVersion  {92} (
  934.     VAR Version         : WORD);    (* returned version number *)
  935.                                         (* high byte is major vers *)
  936.                                         (* low byte is minor vers *)
  937.  
  938.  
  939. (* Give another process access to a segment *)
  940.  
  941. FUNCTION DosGiveSeg {37} (
  942.     CallerSegHandle     : WORD;     (* segment selector of giver *)
  943.     ProcessID           : WORD;     (* id of process to give to *)
  944.     VAR RecipientSegHandle      : WORD      (* segment selector in other process *)
  945.     ) : WORD;
  946. FUNCTION Dos16GiveSeg {37} (
  947.     CallerSegHandle     : WORD;     (* segment selector of giver *)
  948.     ProcessID           : WORD;     (* id of process to give to *)
  949.     VAR RecipientSegHandle      : WORD      (* segment selector in other process *)
  950.     ) : WORD;
  951.  
  952. (* Disable or enable signals from being sent to the current process *)
  953.  
  954. FUNCTION DosHoldSignal {13} (
  955.     ActionCode          : WORD      (* 0 => enable, 1 => disable  *)
  956.     ) : WORD;
  957. FUNCTION Dos16HoldSignal {13} (
  958.     ActionCode          : WORD      (* 0 => enable, 1 => disable  *)
  959.     ) : WORD;
  960.  
  961. (* Terminate a process *)
  962. CONST
  963.     DKP_PROCESSTREE     = 0;
  964.     DKP_PROCESS         = 1;
  965.  
  966. FUNCTION DosKillProcess {10} (
  967.     Scope               : WORD;(* 0 => kill all children, 1 not *)
  968.     ProcessID           : WORD      (* ID of process to kill *)
  969.     ) : WORD;
  970. FUNCTION Dos16KillProcess {10} (
  971.     Scope               : WORD;(* 0 => kill all children, 1 not *)
  972.     ProcessID           : WORD      (* ID of process to kill *)
  973.     ) : WORD;
  974.  
  975. (* Load a dynamic link module *)
  976.  
  977. FUNCTION DosLoadModule {44} (
  978.     ObjNameBufAdr       : pChar;       (* buf to return name of failure obj *)
  979.     ObjNameBufL         : WORD;     (* length of above *)
  980.     ModuleName          : pChar;       (* module name *)
  981.     VAR ModuleHandle    : WORD      (* returned module handle *)
  982.     ) : WORD;
  983. FUNCTION Dos16LoadModule {44} (
  984.     ObjNameBufAdr       : pChar;       (* buf to return name of failure obj *)
  985.     ObjNameBufL         : WORD;     (* length of above *)
  986.     ModuleName          : pChar;       (* module name *)
  987.     VAR ModuleHandle    : WORD      (* returned module handle *)
  988.     ) : WORD;
  989.  
  990. (* Lock a discardable segment in memory *)
  991.  
  992. FUNCTION DosLockSeg {122} (
  993.     Selector            : WORD      (* selector of segment to lock *)
  994.     ) : WORD;
  995. FUNCTION Dos16LockSeg {122} (
  996.     Selector            : WORD      (* selector of segment to lock *)
  997.     ) : WORD;
  998.  
  999. (* Create a pipe *)
  1000.  
  1001. FUNCTION DosMakePipe {16} (
  1002.     VAR ReadHandle      : WORD;     (* Returned handle for reading *)
  1003.     VAR WriteHandle     : WORD;     (* Returned handle for writing *)
  1004.     PipeSize            : WORD      (* Buffer size for the pipe *)
  1005.     ) : WORD;
  1006. FUNCTION Dos16MakePipe {16} (
  1007.     VAR ReadHandle      : WORD;     (* Returned handle for reading *)
  1008.     VAR WriteHandle     : WORD;     (* Returned handle for writing *)
  1009.     PipeSize            : WORD      (* Buffer size for the pipe *)
  1010.     ) : WORD;
  1011.  
  1012. (* Get the size of the largest free memory block *)
  1013.  
  1014. FUNCTION DosMemAvail {127} (
  1015.     VAR MemAvailSize    : LongInt{LONGCARD}      (* returned size *)
  1016.     ) : WORD;
  1017. FUNCTION Dos16MemAvail {127} (
  1018.     VAR MemAvailSize    : LongInt{LONGCARD}      (* returned size *)
  1019.     ) : WORD;
  1020.  
  1021. (* Create a subdirectory *)
  1022.  
  1023. FUNCTION DosMkDir {66} (
  1024.     Path                : Pointer;      (* path name of directory to create *)
  1025.     Reserved            : LongInt       (* must be zero *)
  1026.     ) : WORD;
  1027. FUNCTION Dos16MkDir {66} (
  1028.     Path                : Pointer;      (* path name of directory to create *)
  1029.     Reserved            : LongInt       (* must be zero *)
  1030.     ) : WORD;
  1031.  
  1032. (* Move (rename) a file *)
  1033.  
  1034. FUNCTION DosMove {67} (
  1035.     Old                 : pChar;       (* old file specification *)
  1036.     New                 : pChar;       (* new file specification *)
  1037.     Reserved            : LongInt       (* must be zero *)
  1038.     ) : WORD;
  1039. FUNCTION Dos16Move {67} (
  1040.     Old                 : pChar;       (* old file specification *)
  1041.     New                 : pChar;       (* new file specification *)
  1042.     Reserved            : LongInt       (* must be zero *)
  1043.     ) : WORD;
  1044.  
  1045. (* Wait for one of several semaphores *)
  1046.  
  1047. FUNCTION DosMuxSemWait {22} (
  1048.     VAR IndexNum        : WORD;     (* returned index of sem that cleared *)
  1049.     ListAddr            : MUXSemList;   (* list of semaphores to wait for *)
  1050.     TimeOut             : LongInt       (* timeout, -1 for none, 0 for nowait *)
  1051.     ) : WORD;
  1052. FUNCTION Dos16MuxSemWait {22} (
  1053.     VAR IndexNum        : WORD;     (* returned index of sem that cleared *)
  1054.     ListAddr            : MUXSemList;   (* list of semaphores to wait for *)
  1055.     TimeOut             : LongInt       (* timeout, -1 for none, 0 for nowait *)
  1056.     ) : WORD;
  1057.  
  1058. (* Change the size of a file *)
  1059.  
  1060. FUNCTION DosNewSize {68} (
  1061.     FileHandle          : WORD;     (* handle of the file to change *)
  1062.     Size                : LongInt       (* the new size *)
  1063.     ) : WORD;
  1064. FUNCTION Dos16NewSize {68} (
  1065.     FileHandle          : WORD;     (* handle of the file to change *)
  1066.     Size                : LongInt       (* the new size *)
  1067.     ) : WORD;
  1068.  
  1069. (* Open or create a file. *)
  1070.  
  1071. (* action returns one of the following values *)
  1072.  
  1073. CONST
  1074.   FILE_EXISTED                = 1;    (* existing file was opened *)
  1075.   FILE_CREATED                = 2;    (* new file was created *)
  1076.   FILE_TRUNCATED              = 3;    (* existing file was truncated *)
  1077.  
  1078. (* flag determines the action to be taken if the file if found or       *)
  1079. (* not found as follows.  You can use any combinataion of the following *)
  1080. (* values: *)
  1081.  
  1082. CONST
  1083.   FILE_OPEN           = 1;    (* open a file if it exists *)
  1084.   FILE_TRUNCATE       = 2;    (* truncate a file if it exists *)
  1085.   FILE_CREATE         = $10;  (* create a file if it does not exist *)
  1086.  
  1087. (* Open mode is defined as follows:                                     *)
  1088. (* bits 0..2 are access mode, 0 -> read, 1-> write, 2-> readwrite       *)
  1089. (* bits 4..6 are Sharing mode, 1 -> deny both, 2 -> deny write,         *)
  1090. (*                             3 -> deny read, 4 -> allow either        *)
  1091. (* bit 7 is inheritance flag, 0-> inherited by children, 1 -> not       *)
  1092. (* bit 13 is fail errors, 0 -> normal hadling, 1 -> return all erros    *)
  1093. (* bit 14 is write through, 0 -> normal caching, 1 -> write is done     *)
  1094. (* bit 15 is DASD open, 0 -> normal, 1 -> open devive for direct access *)
  1095. (*                                                                      *)
  1096. (* Use the following constants to specify open modes:                   *)
  1097.  
  1098. CONST
  1099.   OM_READ_ONLY        = $0000;        (* read only access to the file *)
  1100.   OM_WRITE_ONLY       = $0001;
  1101.  
  1102.   FILE_NORMAL         = 0;
  1103.   FILE_READONLY       = 1;
  1104.   FILE_HIDDEN         = 2;
  1105.   FILE_SYSTEM         = 4;
  1106.   FILE_DIRECTORY      = $10;
  1107.   FILE_ARCHIVED       = $20;
  1108.  
  1109.   DCPY_EXISTING       = 1;
  1110.   DCPY_APPEND         = 2;
  1111.  
  1112.   HDIR_SYSTEM         = 1;
  1113.   HDIR_CREATE         = $FFFF;
  1114.  
  1115.   FILE_BEGIN          = 0;
  1116.   FILE_CURRENT        = 1;
  1117.   FILE_END            = 2;
  1118.  
  1119.   OPEN_ACTION_FAIL_IF_EXISTS          = 0;
  1120.   OPEN_ACTION_OPEN_IF_EXISTS          = 1;
  1121.   OPEN_ACTION_REPLACE_IF_EXISTS       = 2;
  1122.  
  1123.   OPEN_ACTION_FAIL_IF_NEW             = 0;
  1124.   OPEN_ACTION_CREATE_IF_NEW           = $10;
  1125.  
  1126.   OPEN_ACCESS_READONLY                = 0;
  1127.   OPEN_ACCESS_WRITEONLY               = 1;
  1128.   OPEN_ACCESS_READWRITE               = 2;
  1129.   OPEN_SHARE_DENYREADWRITE            = $10;
  1130.   OPEN_SHARE_DENYWRITE                = $20;
  1131.   OPEN_SHARE_DENYREAD                 = $30;
  1132.   OPEN_SHARE_DENYNONE                 = $40;
  1133.   OPEN_FLAGS_NOINHERIT                = $80;
  1134.   OPEN_FLAGS_NO_LOCALITY              = 0;
  1135.   OPEN_FLAGS_SEQUENTIAL               = $100;
  1136.   OPEN_FLAGS_RANDOM                   = $200;
  1137.   OPEN_FLAGS_RANDOMSEQUENTIAL         = $300;
  1138.   OPEN_FLAGS_NO_CACHE                 = $1000;
  1139.   OPEN_FLAGS_FAIL_ON_ERROR            = $2000;
  1140.   OPEN_FLAGS_WRITE_THROUGH            = $4000;
  1141.   OPEN_FLAGS_DASD                     = $8000;
  1142.  
  1143. FUNCTION DosOpen {70} (
  1144.     Name                : pChar;       (* path name of file *)
  1145.     VAR Handle          : WORD;     (* returned handle *)
  1146.     VAR Action          : WORD;     (* see above *)
  1147.     Size                : LongInt;      (* initial allocation if created *)
  1148.     Attr                : AttributeSet; (* file attributes if created *)
  1149.     Flag                : WORD;     (* see above *)
  1150.     Mode                : WORD;     (* see above *)
  1151.     Reserved            : LongInt       (* must be zero *)
  1152.     ) : WORD;
  1153. FUNCTION Dos16Open {70} (
  1154.     Name                : pChar;       (* path name of file *)
  1155.     VAR Handle          : WORD;     (* returned handle *)
  1156.     VAR Action          : WORD;     (* see above *)
  1157.     Size                : LongInt;      (* initial allocation if created *)
  1158.     Attr                : AttributeSet; (* file attributes if created *)
  1159.     Flag                : WORD;     (* see above *)
  1160.     Mode                : WORD;     (* see above *)
  1161.     Reserved            : LongInt       (* must be zero *)
  1162.     ) : WORD;
  1163.  
  1164. (* Open a queue.  Queue was created by another process via DosCreateQueue *)
  1165.  
  1166. CONST
  1167.   CSEM_PRIVATE        = 0;
  1168.   CSEM_PUBLIC         = 1;
  1169. (* Open a system semaphore.  System semaphores are created by DosCreateSem *)
  1170. (* and are shared by all processes. *)
  1171.  
  1172. FUNCTION DosOpenSem {25} (
  1173.     VAR SemHandle       : Pointer;      (* returned semaphore handle *)
  1174.     SemName             : pChar        (* prefixed with \SEM\ *)
  1175.     ) : WORD;
  1176. FUNCTION Dos16OpenSem {25} (
  1177.     VAR SemHandle       : Pointer;      (* returned semaphore handle *)
  1178.     SemName             : pChar        (* prefixed with \SEM\ *)
  1179.     ) : WORD;
  1180.  
  1181. (* Get info about partioned disk *)
  1182.  
  1183. FUNCTION DosPhysicalDisk {129} (
  1184.     aFunction           : WORD;     (* type of info to get *)
  1185.     DataPtr             : Pointer;      (* address of buffer *)
  1186.     DataLength          : WORD;     (* length of buffer *)
  1187.     ParmPtr             : Pointer;      (* pointer to parameters *)
  1188.     ParmLength          : WORD      (* length of parameters *)
  1189.     ) : WORD;
  1190. FUNCTION Dos16PhysicalDisk {129} (
  1191.     aFunction           : WORD;     (* type of info to get *)
  1192.     DataPtr             : Pointer;      (* address of buffer *)
  1193.     DataLength          : WORD;     (* length of buffer *)
  1194.     ParmPtr             : Pointer;      (* pointer to parameters *)
  1195.     ParmLength          : WORD      (* length of parameters *)
  1196.     ) : WORD;
  1197.  
  1198. (* Request access to I/O ports *)
  1199.  
  1200. FUNCTION DosPortAccess {69} (
  1201.     Rervered            : WORD;     (* must be zero *)
  1202.     TypeOfAccess        : WORD;     (* 0 -> request, 1 -> release *)
  1203.     FirstPort           : WORD;     (* number of first port requested *)
  1204.     LastPort            : WORD      (* number of last port requested *)
  1205.     ) : WORD;
  1206. FUNCTION Dos16PortAccess {69} (
  1207.     Rervered            : WORD;     (* must be zero *)
  1208.     TypeOfAccess        : WORD;     (* 0 -> request, 1 -> release *)
  1209.     FirstPort           : WORD;     (* number of first port requested *)
  1210.     LastPort            : WORD      (* number of last port requested *)
  1211.     ) : WORD;
  1212.  
  1213. (* Debugger interface *)
  1214.  
  1215. FUNCTION DosPTrace {12} (
  1216.     Ptrace_B            : Pointer       (* address of buffer *)
  1217.     ) : WORD;
  1218.  
  1219. (* Get the name of the current directory *)
  1220.  
  1221. FUNCTION DosQCurDir {71} (
  1222.     Drive               : WORD;     (* drive number, 0 = default, 1=A... *)
  1223.     Path                : Pointer;      (* returned path name of directory *)
  1224.     VAR PathLen         : WORD      (* length of returned path name *)
  1225.     ) : WORD;
  1226. FUNCTION Dos16QCurDir {71} (
  1227.     Drive               : WORD;     (* drive number, 0 = default, 1=A... *)
  1228.     Path                : Pointer;      (* returned path name of directory *)
  1229.     VAR PathLen         : WORD      (* length of returned path name *)
  1230.     ) : WORD;
  1231.  
  1232. (* Get the number of the current disk *)
  1233.  
  1234. FUNCTION DosQCurDisk {72} (
  1235.     VAR Drive           : WORD;     (* returned drive, 1=A, 2=B... *)
  1236.     VAR DMap            : LongInt       (* bits on for each existing drive *)
  1237.     ) : WORD;
  1238. FUNCTION Dos16QCurDisk {72} (
  1239.     VAR Drive           : WORD;     (* returned drive, 1=A, 2=B... *)
  1240.     VAR DMap            : LongInt       (* bits on for each existing drive *)
  1241.     ) : WORD;
  1242.  
  1243. (* Get the state of a file handle *)
  1244.  
  1245. FUNCTION DosQFHandState {73} (
  1246.     FileHandle          : WORD;     (* file system handle *)
  1247.     VAR State           : WORD      (* same def as mode param to open *)
  1248.     ) : WORD;
  1249. FUNCTION Dos16QFHandState {73} (
  1250.     FileHandle          : WORD;     (* file system handle *)
  1251.     VAR State           : WORD      (* same def as mode param to open *)
  1252.     ) : WORD;
  1253.  
  1254. (* Get directory information about an open file *)
  1255.  
  1256. FUNCTION DosQFileInfo {74} (
  1257.     Handle      : WORD;             (* the file handle *)
  1258.     Level       : WORD;             (* must be 1 *)
  1259.     VAR Buffer  : FileFindBuf;          (* returned info *)
  1260.     Size        : WORD              (* size of buffer *)
  1261.     ) : WORD;
  1262. FUNCTION Dos16QFileInfo {74} (
  1263.     Handle      : WORD;             (* the file handle *)
  1264.     Level       : WORD;             (* must be 1 *)
  1265.     VAR Buffer  : FileFindBuf;          (* returned info *)
  1266.     Size        : WORD              (* size of buffer *)
  1267.     ) : WORD;
  1268.  
  1269. (* Get the attribute of a named file *)
  1270.  
  1271. FUNCTION DosQFileMode {75} (
  1272.     FileName            : pChar;       (* the path name for the file *)
  1273.     VAR attribute       : BYTE{BITSET}; (* returned attribute bits *)
  1274.     Reserved            : LongInt       (* must be zero *)
  1275.     ) : WORD;
  1276. FUNCTION Dos16QFileMode {75} (
  1277.     FileName            : pChar;       (* the path name for the file *)
  1278.     VAR attribute       : BYTE{BITSET}; (* returned attribute bits *)
  1279.     Reserved            : LongInt       (* must be zero *)
  1280.     ) : WORD;
  1281.  
  1282. (* Get file system information about a drive *)
  1283.  
  1284. FUNCTION DosQFSInfo {76} (
  1285.     Drive               : WORD;     (* drive number, 1=A, 2=B... *)
  1286.     Level               : WORD;     (* must be 1 *)
  1287.     VAR fsInfoBuf       : FsData;       (* retured info *)
  1288.     BufSize             : WORD      (* size of returned info buffer *)
  1289.     ) : WORD;
  1290. FUNCTION Dos16QFSInfo {76} (
  1291.     Drive               : WORD;     (* drive number, 1=A, 2=B... *)
  1292.     Level               : WORD;     (* must be 1 *)
  1293.     VAR fsInfoBuf       : FsData;       (* retured info *)
  1294.     BufSize             : WORD      (* size of returned info buffer *)
  1295.     ) : WORD;
  1296.  
  1297. (* Determine if a handle is a device or a file *)
  1298.  
  1299. FUNCTION DosQHandType {77} (
  1300.     FileHandle          : WORD;     (* the file handle *)
  1301.     VAR HandType        : WORD;     (* Returned type, 0 is file 1 device *)
  1302.     VAR FlagWord        : WORD      (* Returns device drivers flag word *)
  1303.     ) : WORD;
  1304. FUNCTION Dos16QHandType {77} (
  1305.     FileHandle          : WORD;     (* the file handle *)
  1306.     VAR HandType        : WORD;     (* Returned type, 0 is file 1 device *)
  1307.     VAR FlagWord        : WORD      (* Returns device drivers flag word *)
  1308.     ) : WORD;
  1309.  
  1310. (* Get the setting of the verify flag *)
  1311.  
  1312. FUNCTION DosQVerify {78} (
  1313.     VAR VerifyFlag      : WORD      (* returned verify flag *)
  1314.     ) : WORD;
  1315. FUNCTION Dos16QVerify {78} (
  1316.     VAR VerifyFlag      : WORD      (* returned verify flag *)
  1317.     ) : WORD;
  1318.  
  1319. (* Read from an open file or device *)
  1320.  
  1321. FUNCTION DosRead {137} (
  1322.     Handle              : WORD;     (* the handle of the file or device *)
  1323.     Buffer              : Pointer;      (* address of the data buffer *)
  1324.     Length              : WORD;     (* length of the data buffer *)
  1325.     VAR Read            : WORD      (* returned number of bytes read *)
  1326.     ) : WORD;
  1327. FUNCTION Dos16Read {137} (
  1328.     Handle              : WORD;     (* the handle of the file or device *)
  1329.     Buffer              : Pointer;      (* address of the data buffer *)
  1330.     Length              : WORD;     (* length of the data buffer *)
  1331.     VAR Read            : WORD      (* returned number of bytes read *)
  1332.     ) : WORD;
  1333.  
  1334. (* Read from an open file or device asynchornously *)
  1335.  
  1336. FUNCTION DosReadAsync {149} (
  1337.     Handle              : WORD;     (* the handle of the file or device *)
  1338.     SemHandle           : SemaPhore;    (* address of a Ram semaphore to *)
  1339.                                         (* clear when the read completes *)
  1340.     VAR ReturnCode      : WORD;     (* address of word to recive status *)
  1341.     Buffer              : Pointer;      (* address of the data buffer *)
  1342.     Length              : WORD;     (* length of the data buffer *)
  1343.     VAR Read            : WORD      (* returned number of bytes read *)
  1344.     ) : WORD;
  1345. FUNCTION Dos16ReadAsync {149} (
  1346.     Handle              : WORD;     (* the handle of the file or device *)
  1347.     SemHandle           : SemaPhore;    (* address of a Ram semaphore to *)
  1348.                                         (* clear when the read completes *)
  1349.     VAR ReturnCode      : WORD;     (* address of word to recive status *)
  1350.     Buffer              : Pointer;      (* address of the data buffer *)
  1351.     Length              : WORD;     (* length of the data buffer *)
  1352.     VAR Read            : WORD      (* returned number of bytes read *)
  1353.     ) : WORD;
  1354.  
  1355. (* Change size of a memory allocated by DosAllocHuge *)
  1356.  
  1357. FUNCTION DosReAllocHuge {42} (
  1358.     NumSeg              : WORD;     (* new number of segments *)
  1359.     Size                : WORD;     (* new size of last seg, 0 -> 64K *)
  1360.     Selector            : WORD      (* selector for the memory *)
  1361.     ) : WORD;
  1362. FUNCTION Dos16ReAllocHuge {42} (
  1363.     NumSeg              : WORD;     (* new number of segments *)
  1364.     Size                : WORD;     (* new size of last seg, 0 -> 64K *)
  1365.     Selector            : WORD      (* selector for the memory *)
  1366.     ) : WORD;
  1367.  
  1368. (* Change size of a memory segment *)
  1369.  
  1370. FUNCTION DosReAllocSeg {38} (
  1371.     Size                : WORD;     (* new size of last seg, 0 -> 64K *)
  1372.     Selector            : WORD      (* selector for the memory *)
  1373.     ) : WORD;
  1374. FUNCTION Dos16ReAllocSeg {38} (
  1375.     Size                : WORD;     (* new size of last seg, 0 -> 64K *)
  1376.     Selector            : WORD      (* selector for the memory *)
  1377.     ) : WORD;
  1378.  
  1379. (* Resume a suspended thread *)
  1380.  
  1381. FUNCTION DosResumeThread {26} (
  1382.     ThreadID            : WORD      (* ID of thread to resume *)
  1383.     ) : WORD;
  1384. FUNCTION Dos16ResumeThread {26} (
  1385.     ThreadID            : WORD      (* ID of thread to resume *)
  1386.     ) : WORD;
  1387.  
  1388. (* Remove (delete) a directory *)
  1389.  
  1390. FUNCTION DosRmDir {80} (
  1391.     Path                : pChar;       (* path name of the directory *)
  1392.     Reserved            : LongInt       (* must be zero *)
  1393.     ) : WORD;
  1394. FUNCTION Dos16RmDir {80} (
  1395.     Path                : pChar;       (* path name of the directory *)
  1396.     Reserved            : LongInt       (* must be zero *)
  1397.     ) : WORD;
  1398.  
  1399. (* Scan the environrment symbols for a name and return its value *)
  1400.  
  1401. FUNCTION DosScanEnv {152} (
  1402.     Name                : pChar;       (* name of symbol to look for *)
  1403.     VAR Def             : Pointer       (* returned address of result *)
  1404.     ) : WORD;
  1405. FUNCTION Dos16ScanEnv {152} (
  1406.     Name                : pChar;       (* name of symbol to look for *)
  1407.     VAR Def             : Pointer       (* returned address of result *)
  1408.     ) : WORD;
  1409.  
  1410.  
  1411. (* Search for a file in a path list *)
  1412.  
  1413. (* bits defined for the control paramter *)
  1414.  
  1415. CONST
  1416.     IMPLIEDCURRENT      = 0;    (* if on, current path is searched first *)
  1417.     PATHSYMBOL          = 1;    (* if on, path is the name of an env symbol *)
  1418.  
  1419.    SEARCH_PATH          = 0;
  1420.    SEARCH_CUR_DIRECTORY = 1;
  1421.    SEARCH_ENVIRONMENT   = 2;
  1422.    SEARCH_IGNORENETERRS = 4;
  1423.  
  1424.    DSP_PATH             = 0;
  1425.    DSP_CUR_DIRECTORY    = 1;
  1426.    DSP_ENVIRONMENT      = 2;
  1427.    DSP_IGNORENETERR     = 4;
  1428.     
  1429. FUNCTION DosSearchPath {151} (
  1430.     Control             : BYTE{BITSET};       (* Control bits, see above *)
  1431.     PathRef             : pChar;       (* path string or name dep on above *)
  1432.     FileName            : pChar;       (* name of file to search for *)
  1433.     ResultBuffer        : pChar;       (* returned path name *)
  1434.     ResultBufferLen     : WORD      (* length of above *)
  1435.     ) : WORD;
  1436. FUNCTION Dos16SearchPath {151} (
  1437.     Control             : BYTE{BITSET};       (* Control bits, see above *)
  1438.     PathRef             : pChar;       (* path string or name dep on above *)
  1439.     FileName            : pChar;       (* name of file to search for *)
  1440.     ResultBuffer        : pChar;       (* returned path name *)
  1441.     ResultBufferLen     : WORD      (* length of above *)
  1442.     ) : WORD;
  1443.  
  1444. (* Select a new current drive *)
  1445.  
  1446. FUNCTION DosSelectDisk {81} (
  1447.     Drive               : WORD      (* drive number, 1=A, 2=B... *)
  1448.     ) : WORD;
  1449. FUNCTION Dos16SelectDisk {81} (
  1450.     Drive               : WORD      (* drive number, 1=A, 2=B... *)
  1451.     ) : WORD;
  1452.  
  1453. CONST
  1454.     SEM_INDEFINITE_WAIT         = -1 { MAX(LONGCARD) (* = -1 *)};
  1455.     SEM_IMMDEIATE_RETURN        = 0;
  1456. (* Free up a semaphore *)
  1457.  
  1458. FUNCTION DosSemClear {141} (
  1459.     SemHandle           : SemaPhore     (* the semaphore handle *)
  1460.     ) : WORD;
  1461. FUNCTION Dos16SemClear {141} (
  1462.     SemHandle           : SemaPhore     (* the semaphore handle *)
  1463.     ) : WORD;
  1464.  
  1465. (* Request ownership of a semphore *)
  1466.  
  1467. FUNCTION DosSemRequest {140} (
  1468.     SemHandle           : SemaPhore;    (* the semaphore handle *)
  1469.     TimeOut             : LongInt       (* timeout interval in msec *)
  1470.                                         (* -1 implies wait forever *)
  1471.                                         (* 0 implies return immediately *)
  1472.     ) : WORD;
  1473. FUNCTION Dos16SemRequest {140} (
  1474.     SemHandle           : SemaPhore;    (* the semaphore handle *)
  1475.     TimeOut             : LongInt       (* timeout interval in msec *)
  1476.                                         (* -1 implies wait forever *)
  1477.                                         (* 0 implies return immediately *)
  1478.     ) : WORD;
  1479.  
  1480. (* Set a semaphore as owned *)
  1481.  
  1482. FUNCTION DosSemSet {143} (
  1483.     SemHandle           : SemaPhore     (* the semaphore handle *)
  1484.     ) : WORD;
  1485. FUNCTION Dos16SemSet {143} (
  1486.     SemHandle           : SemaPhore     (* the semaphore handle *)
  1487.     ) : WORD;
  1488.  
  1489.  
  1490. (* Set and wait for clear of a semaphore *)
  1491.  
  1492. FUNCTION DosSemSetWait {20} (
  1493.     SemHandle           : SemaPhore;    (* the semaphore handle *)
  1494.     TimeOut             : LongInt       (* timeout interval in msec *)
  1495.                                         (* -1 implies wait forever *)
  1496.                                         (* 0 implies return immediately *)
  1497.     ) : WORD;
  1498. FUNCTION Dos16SemSetWait {20} (
  1499.     SemHandle           : SemaPhore;    (* the semaphore handle *)
  1500.     TimeOut             : LongInt       (* timeout interval in msec *)
  1501.                                         (* -1 implies wait forever *)
  1502.                                         (* 0 implies return immediately *)
  1503.     ) : WORD;
  1504.  
  1505. (* wait for clear of a semaphore *)
  1506.  
  1507. FUNCTION DosSemWait {142} (
  1508.     SemHandle           : SemaPhore;    (* the semaphore handle *)
  1509.     TimeOut             : LongInt       (* timeout interval in msec *)
  1510.                                         (* -1 implies wait forever *)
  1511.                                         (* 0 implies return immediately *)
  1512.     ) : WORD;
  1513. FUNCTION Dos16SemWait {142} (
  1514.     SemHandle           : SemaPhore;    (* the semaphore handle *)
  1515.     TimeOut             : LongInt       (* timeout interval in msec *)
  1516.                                         (* -1 implies wait forever *)
  1517.                                         (* 0 implies return immediately *)
  1518.     ) : WORD;
  1519.  
  1520. (* Set the Code Page *)
  1521.  
  1522. FUNCTION DosSetCP {153} (
  1523.     codepage            : WORD;     (* new code page for the process *)
  1524.     Reserved            : WORD      (* must be zero *)
  1525.     ) : WORD;
  1526. FUNCTION Dos16SetCP {153} (
  1527.     codepage            : WORD;     (* new code page for the process *)
  1528.     Reserved            : WORD      (* must be zero *)
  1529.     ) : WORD;
  1530.  
  1531. (* Set the system date and time *)
  1532.  
  1533. FUNCTION DosSetDateTime {28} (
  1534.     NewDateTime         : DateTime      (* the new date and time *)
  1535.     ) : WORD;
  1536. FUNCTION Dos16SetDateTime {28} (
  1537.     NewDateTime         : DateTime      (* the new date and time *)
  1538.     ) : WORD;
  1539.  
  1540. (* Set the state of a file handle *)
  1541.  
  1542. FUNCTION DosSetFHandState {82} (
  1543.     FileHandle          : WORD;     (* the file handle *)
  1544.     FileHandleState     : WORD      (* same as flags in DosOpen, but *)
  1545.                                         (* accmode and shrmore must be zero *)
  1546.     ) : WORD;
  1547. FUNCTION Dos16SetFHandState {82} (
  1548.     FileHandle          : WORD;     (* the file handle *)
  1549.     FileHandleState     : WORD      (* same as flags in DosOpen, but *)
  1550.                                         (* accmode and shrmore must be zero *)
  1551.     ) : WORD;
  1552.  
  1553. (* Sets the date and time info for a file *)
  1554.  
  1555. FUNCTION DosSetFileInfo {83} (
  1556.     FileHandle          : WORD;     (* the file handle *)
  1557.     FileInfoLevel       : WORD;     (* must be 1 *)
  1558.     FileInfoBuf         : Pointer;      (* Same as first 6 words of *)
  1559.                                         (* DirectoryInfo type *)
  1560.     FileInfoBufSize     : WORD      (* size of above *)
  1561.     ) : WORD;
  1562. FUNCTION Dos16SetFileInfo {83} (
  1563.     FileHandle          : WORD;     (* the file handle *)
  1564.     FileInfoLevel       : WORD;     (* must be 1 *)
  1565.     FileInfoBuf         : Pointer;      (* Same as first 6 words of *)
  1566.                                         (* DirectoryInfo type *)
  1567.     FileInfoBufSize     : WORD      (* size of above *)
  1568.     ) : WORD;
  1569.  
  1570. (* Sets the attributes of a file *)
  1571.  
  1572. FUNCTION DosSetFileMode {84} (
  1573.     FileName            : pChar;       (* path name of the file *)
  1574.     attribute           : BYTE{BITSET};       (* attribute bits *)
  1575.     Reserved            : LongInt       (* must be zero *)
  1576.     ) : WORD;
  1577. FUNCTION Dos16SetFileMode {84} (
  1578.     FileName            : pChar;       (* path name of the file *)
  1579.     attribute           : BYTE{BITSET};       (* attribute bits *)
  1580.     Reserved            : LongInt       (* must be zero *)
  1581.     ) : WORD;
  1582.  
  1583. (* Sets the volume label for a drive *)
  1584.  
  1585. FUNCTION DosSetFSInfo {97} (
  1586.     DriveNumber         : WORD;     (* drive number, 1=A, 2=B... *)
  1587.     fsInfoLevel         : WORD;     (* must be 2 *)
  1588.     Buffer              : Pointer       (* byte connted volumn label string *)
  1589.     ) : WORD;
  1590. FUNCTION Dos16SetFSInfo {97} (
  1591.     DriveNumber         : WORD;     (* drive number, 1=A, 2=B... *)
  1592.     fsInfoLevel         : WORD;     (* must be 2 *)
  1593.     Buffer              : Pointer       (* byte connted volumn label string *)
  1594.     ) : WORD;
  1595.  
  1596. (* Set the maximum number of file handles *)
  1597.  
  1598. FUNCTION DosSetMaxFH {85} (
  1599.     NumberHandles       : WORD      (* max number of handles *)
  1600.     ) : WORD;
  1601. FUNCTION Dos16SetMaxFH {85} (
  1602.     NumberHandles       : WORD      (* max number of handles *)
  1603.     ) : WORD;
  1604.  
  1605. (* Set priority of a child process or a thread *)
  1606. CONST
  1607.     PRTYC_NOCHANGE              = 0;
  1608.     PRTYC_IDLETIME              = 1;
  1609.     PRTYC_REGULAR               = 2;
  1610.     PRTYC_TIMECRITICAL          = 3;
  1611.     PRTYC_FOREGROUNDSERVER      = 4;
  1612.  
  1613.     PRTYD_MINIMUM               = -31;
  1614.     PRTYD_MAXIMUM               = 31;
  1615.     
  1616. FUNCTION DosSetPrty {11} (
  1617.     Scope               : WORD;(* see DosGetPtry for values *)
  1618.     PriorityClass       : INTEGER;(* see above for values *)
  1619.     PriorityDelta       : INTEGER;      (* amount by which to change priority *)
  1620.                                         (* -31 .. 31 *)
  1621.     id                  : WORD      (* process or thread id, 0 -> current *)
  1622.     ) : WORD;
  1623. FUNCTION Dos16SetPrty {11} (
  1624.     Scope               : WORD;(* see DosGetPtry for values *)
  1625.     PriorityClass       : INTEGER;(* see above for values *)
  1626.     PriorityDelta       : INTEGER;      (* amount by which to change priority *)
  1627.                                         (* -31 .. 31 *)
  1628.     id                  : WORD      (* process or thread id, 0 -> current *)
  1629.     ) : WORD;
  1630.  
  1631. (* Control the action taken when a signal occurs *)
  1632.  
  1633. CONST
  1634.     SIGA_KILL           = 0; (* use system default action for the signal *)
  1635.     SIGA_DEFAULT        = 0; (* I think the above should really be this *)
  1636.     SIGA_IGNORE         = 1; (* signal is to be ignored *)
  1637.     SIGA_HANDLER        = 2; (* the specified procedure is the handler *)
  1638.     SIGA_ERROR          = 3; (* an error occurs if another process signals *)
  1639.     SIGA_ACKNOWLEDGE    = 4; (* the current signal is reset *)
  1640.  
  1641.     HLDSIG_ENABLE       = 0;
  1642.     HLDSIG_DISABLE      = 1;
  1643.  
  1644. CONST
  1645.     SIG_CTRLC           = 1;    (* control/c signal *)
  1646. {   SIG_BROKENPIPE      =       (* broken pipe *)}
  1647.     SIG_KILLPROCESS     = 3;    (* program terminated signal *)
  1648.     SIG_CTRLBREAK       = 4;    (* control/break signal *)
  1649.     SIG_PFLG_A          = 5;    (* process flag A *)
  1650.     SIG_PFLG_B          = 6;    (* process flag B *)
  1651.     SIG_PFLG_C          = 7;    (* process flag C *)
  1652.     SIG_CSIGNALS        = 8;
  1653.  
  1654. TYPE
  1655.   SignalProc = PROCEDURE (a, b: WORD) {[LOADDS]};
  1656.  
  1657. FUNCTION DosSetSigHandler {14} (
  1658.     RoutineAddress      : SignalProc;   (* handler procedure *)
  1659.     VAR PrevAddress     : SignalProc;   (* returned previous handler *)
  1660.     VAR PrevAction      : WORD;     (* returned previous action *)
  1661.     Action              : WORD;     (* action to take, see above *)
  1662.     SigNumber           : WORD      (* signal number, see above *)
  1663.     ) : WORD;
  1664. FUNCTION Dos16SetSigHandler {14} (
  1665.     RoutineAddress      : SignalProc;   (* handler procedure *)
  1666.     VAR PrevAddress     : SignalProc;   (* returned previous handler *)
  1667.     VAR PrevAction      : WORD;     (* returned previous action *)
  1668.     Action              : WORD;     (* action to take, see above *)
  1669.     SigNumber           : WORD      (* signal number, see above *)
  1670.     ) : WORD;
  1671.  
  1672. (* Set and exeception vector.  Use the following codes for the vectors *)
  1673.  
  1674. CONST
  1675.     DSV_ZERO_DIVIDE             = 0;
  1676.     DSV_OVERFLOW                = 4;
  1677.     DSV_BOUND                   = 5;
  1678.     DSV_INVALID_OPCODE          = 6;
  1679.     DSV_NO_PROCESSOR_EXT        = 7;
  1680.     DSV_PROCESSOR_EXT_ERROR     = 16;
  1681.  
  1682. TYPE
  1683.   IntHandler = PROCEDURE{()[LONG, INTERRUPT]};
  1684.  
  1685. (* Set the verify flag.  When on, disk data is verified after writing *)
  1686.  
  1687. FUNCTION DosSetVerify {86} (
  1688.     VerifySetting       : WORD      (* 0 -> verify off, 1 -> verify on *)
  1689.     ) : WORD;
  1690. FUNCTION Dos16SetVerify {86} (
  1691.     VerifySetting       : WORD      (* 0 -> verify off, 1 -> verify on *)
  1692.     ) : WORD;
  1693.  
  1694. (* Put a process to sleep for a while *)
  1695.  
  1696. FUNCTION DosSleep {32} (
  1697.     TimeInterval        : LongInt       (* the time in milliseconds *)
  1698.     ) : WORD;
  1699. FUNCTION Dos16Sleep {32} (
  1700.     TimeInterval        : LongInt       (* the time in milliseconds *)
  1701.     ) : WORD;
  1702.  
  1703. (* Suballocate memory within a segment.  The segment must first be *)
  1704. (* initialized by DosSubSet. *)
  1705.  
  1706. FUNCTION DosSubAlloc {147} (
  1707.     Selector            : WORD;     (* selector of segment to alloc from *)
  1708.     VAR BlockOffset     : WORD;     (* returned offset of block *)
  1709.     Size                : WORD      (* size of block to allocate *)
  1710.     ) : WORD;
  1711. FUNCTION Dos16SubAlloc {147} (
  1712.     Selector            : WORD;     (* selector of segment to alloc from *)
  1713.     VAR BlockOffset     : WORD;     (* returned offset of block *)
  1714.     Size                : WORD      (* size of block to allocate *)
  1715.     ) : WORD;
  1716.  
  1717. (* Free memory allocated by DosSubAlloc *)
  1718.  
  1719. FUNCTION DosSubFree {148} (
  1720.     Selector            : WORD;     (* selector for segment *)
  1721.     BlockOffset         : WORD;     (* offset of block to free *)
  1722.     Size                : WORD      (* size of block to free *)
  1723.     ) : WORD;
  1724. FUNCTION Dos16SubFree {148} (
  1725.     Selector            : WORD;     (* selector for segment *)
  1726.     BlockOffset         : WORD;     (* offset of block to free *)
  1727.     Size                : WORD      (* size of block to free *)
  1728.     ) : WORD;
  1729.  
  1730. (* Initialize or change size of a segment for sub-allocation *)
  1731.  
  1732. FUNCTION DosSubSet {146} (
  1733.     Selector            : WORD;     (* selector for the segment *)
  1734.     flags               : WORD;     (* 0 -> re-size, 1 -> initialize *)
  1735.     Size                : WORD      (* new size of segment *)
  1736.     ) : WORD;
  1737. FUNCTION Dos16SubSet {146} (
  1738.     Selector            : WORD;     (* selector for the segment *)
  1739.     flags               : WORD;     (* 0 -> re-size, 1 -> initialize *)
  1740.     Size                : WORD      (* new size of segment *)
  1741.     ) : WORD;
  1742.  
  1743. (* Suspend a thread until further notice *)
  1744.  
  1745. FUNCTION DosSuspendThread {27} (
  1746.     ThreadID            : WORD      (* ID of thread to suspend *)
  1747.     ) : WORD;
  1748. FUNCTION Dos16SuspendThread {27} (
  1749.     ThreadID            : WORD      (* ID of thread to suspend *)
  1750.     ) : WORD;
  1751.  
  1752. (* Services for session controllers *)
  1753.  
  1754. FUNCTION DosSystemService {88} (
  1755.     ServiceCategory     : WORD;     (* 0 -> session manager services *)
  1756.                                         (* 1 -> Hard error services *)
  1757.                                         (* 2 -> Print screen services *)
  1758.     RequestPacket       : Pointer;      (* function dependent info *)
  1759.     ResponsePacket      : Pointer       (* function dependent output info *)
  1760.     ) : WORD;
  1761. FUNCTION Dos16SystemService {88} (
  1762.     ServiceCategory     : WORD;     (* 0 -> session manager services *)
  1763.                                         (* 1 -> Hard error services *)
  1764.                                         (* 2 -> Print screen services *)
  1765.     RequestPacket       : Pointer;      (* function dependent info *)
  1766.     ResponsePacket      : Pointer       (* function dependent output info *)
  1767.     ) : WORD;
  1768.  
  1769. (* Start a timer that clears a semaphore when done *)
  1770.  
  1771. FUNCTION DosTimerAsync {29} (
  1772.     TimeInterval        : LongInt;      (* interval in milliseconds *)
  1773.     SemHandle           : SemaPhore;    (* system semaphore to clear when done *)
  1774.     VAR Handle          : WORD      (* returned timer handle *)
  1775.     ) : WORD;
  1776. FUNCTION Dos16TimerAsync {29} (
  1777.     TimeInterval        : LongInt;      (* interval in milliseconds *)
  1778.     SemHandle           : SemaPhore;    (* system semaphore to clear when done *)
  1779.     VAR Handle          : WORD      (* returned timer handle *)
  1780.     ) : WORD;
  1781.  
  1782. (* Start a periodic timer *)
  1783.  
  1784. FUNCTION DosTimerStart {30} (
  1785.     TimeInterval        : LongInt;      (* interval in milliseconds *)
  1786.     SemHandle           : SemaPhore;    (* system semaphore to clear when done *)
  1787.     VAR Handle          : WORD      (* returned timer handle *)
  1788.     ) : WORD;
  1789. FUNCTION Dos16TimerStart {30} (
  1790.     TimeInterval        : LongInt;      (* interval in milliseconds *)
  1791.     SemHandle           : SemaPhore;    (* system semaphore to clear when done *)
  1792.     VAR Handle          : WORD      (* returned timer handle *)
  1793.     ) : WORD;
  1794.  
  1795. (* Stop a timer *)
  1796.  
  1797. FUNCTION DosTimerStop {31} (
  1798.     Handle              : WORD      (* timer handle to stop *)
  1799.     ) : WORD;
  1800. FUNCTION Dos16TimerStop {31} (
  1801.     Handle              : WORD      (* timer handle to stop *)
  1802.     ) : WORD;
  1803.  
  1804. (* Unlock a discardable segment from memory *)
  1805.  
  1806. FUNCTION DosUnlockSeg {123} (
  1807.     Selector            : WORD      (* segment selector to unlock *)
  1808.     ) : WORD;
  1809. FUNCTION Dos16UnlockSeg {123} (
  1810.     Selector            : WORD      (* segment selector to unlock *)
  1811.     ) : WORD;
  1812.  
  1813. (* Write to a device or file asynchronously *)
  1814.  
  1815. FUNCTION DosWriteAsync {150} (
  1816.     Handle              : WORD;     (* the handle to write to *)
  1817.     RamSemaphore        : SemaPhore;    (* semaphore to clear when done *)
  1818.     VAR ReturnCode      : WORD;     (* address of word to return status *)
  1819.     Buffer              : Pointer;      (* data buffer address *)
  1820.     Length              : WORD;     (* length of data to write *)
  1821.     VAR Written         : WORD      (* returned length actually written *)
  1822.     ) : WORD;
  1823. FUNCTION Dos16WriteAsync {150} (
  1824.     Handle              : WORD;     (* the handle to write to *)
  1825.     RamSemaphore        : SemaPhore;    (* semaphore to clear when done *)
  1826.     VAR ReturnCode      : WORD;     (* address of word to return status *)
  1827.     Buffer              : Pointer;      (* data buffer address *)
  1828.     Length              : WORD;     (* length of data to write *)
  1829.     VAR Written         : WORD      (* returned length actually written *)
  1830.     ) : WORD;
  1831.  
  1832. (* new OS/2 1.2 (!) procedures *)
  1833.  
  1834. TYPE
  1835.     FileStatus =
  1836.         RECORD
  1837.         fDateCreation           : fDate;
  1838.         fTimeCreation           : fTime;
  1839.         fDateLastAccess         : fDate;
  1840.         fTimeLastAccess         : fTime;
  1841.         fDateLastWrite          : fDate;
  1842.         fTimeLastWrite          : fTime;
  1843.         cbFile                  :LongInt {LONGCARD};
  1844.         cbFileAlloc             :LongInt {LONGCARD};
  1845.         attrFile                : WORD;
  1846.         END;
  1847.  
  1848.     FileStatus2 =
  1849.         RECORD
  1850.         fDateCreation           : fDate;
  1851.         fTimeCreation           : fTime;
  1852.         fDateLastAccess         : fDate;
  1853.         fTimeLastAccess         : fTime;
  1854.         fDateLastWrite          : fDate;
  1855.         fTimeLastWrite          : fTime;
  1856.         cbFile                  :LongInt {LONGCARD};
  1857.         cbFileAlloc             :LongInt {LONGCARD};
  1858.         attrFile                : WORD;
  1859.         cbList                  :LongInt {LONGCARD};
  1860.         END;
  1861.  
  1862.     FSAllocate =
  1863.         RECORD
  1864.         ulReserved      :LongInt {LONGCARD};
  1865.         cSectorUnit     :LongInt {LONGCARD};
  1866.         cUnit           :LongInt {LONGCARD};
  1867.         cUnitAvail      :LongInt {LONGCARD};
  1868.         cbSector        : WORD;
  1869.         END;
  1870.  
  1871.     VolumeLabel =
  1872.         RECORD
  1873.         cch             : CHAR;
  1874.         szVolLabel      : ARRAY [0..11] OF CHAR;
  1875.         END;
  1876.         
  1877.     fsInfo =
  1878.         RECORD
  1879.         ulVSN   :LongInt {LONGCARD};
  1880.         Vol     : VolumeLabel;
  1881.         END;
  1882.  
  1883.     FileLock =
  1884.         RECORD
  1885.         lOffset : LongInt;
  1886.         lRange  : LongInt;
  1887.         END;
  1888.  
  1889.  
  1890. FUNCTION DosGetPPID {156} (a : WORD; VAR b : WORD) : WORD;
  1891. FUNCTION Dos16GetPPID{156}(a : WORD; VAR b : WORD) : WORD;
  1892.  
  1893. FUNCTION DosOplockRelease {198} (a : LongInt {LONGCARD};
  1894.                                  b : WORD) : WORD;
  1895. FUNCTION Dos16OplockRelease{198}(a : LongInt {LONGCARD};
  1896.                                  b : WORD) : WORD;
  1897.  
  1898. FUNCTION DosOplockWait {198} (VAR a : LongInt {LONGCARD};
  1899.                               VAR b : LongInt {LONGCARD}
  1900.                                   ) : WORD;
  1901. FUNCTION Dos16OplockWait{198}(VAR a : LongInt {LONGCARD};
  1902.                               VAR b : LongInt {LONGCARD}
  1903.                                   ) : WORD;
  1904.  
  1905. FUNCTION DosOpen2 {95} (   a : pChar;
  1906.                        VAR b : WORD;
  1907.                        VAR c : WORD;
  1908.                            d : LongInt;
  1909.                            e : AttributeSet;
  1910.                            f : WORD;
  1911.                            g : WORD;
  1912.                            h : LongInt {LONGCARD};
  1913.                        VAR i : EaOp;
  1914.                            j : LongInt {LONGCARD}
  1915.                            ) : WORD;
  1916. FUNCTION Dos16Open2{95}(   a : pChar;
  1917.                        VAR b : WORD;
  1918.                        VAR c : WORD;
  1919.                            d : LongInt;
  1920.                            e : AttributeSet;
  1921.                            f : WORD;
  1922.                            g : WORD;
  1923.                            h : LongInt {LONGCARD};
  1924.                        VAR i : EaOp;
  1925.                            j : LongInt {LONGCARD}
  1926.                            ) : WORD;
  1927.  
  1928. FUNCTION DosShutdown {206} (a : LongInt {LONGCARD}
  1929.                             ) : WORD;
  1930. FUNCTION Dos16Shutdown{206}(a : LongInt {LONGCARD}
  1931.                             ) : WORD;
  1932.  
  1933. FUNCTION DosFindFirst2 {184} (    Name         : pChar;       (* the file name, * and ? allowed *)
  1934.                               VAR Handle       : WORD;     (* handle, 0FFFF means allocate one *)
  1935.                                   attribute    : AttributeSet; (* attributes to match *)
  1936.                               VAR ResultBuf    : FileFindBuf;  (* returned file information *)
  1937.                                   ResultBufLen : WORD;     (* length of result area *)
  1938.                               VAR count        : WORD;     (* # of files to return / returned *)
  1939.                                   a            : WORD;
  1940.                                   Reserved     : LongInt       (* must be zero *)
  1941.                                              ) : WORD;
  1942.  
  1943. FUNCTION Dos16FindFirst2{184}(    Name         : pChar;       (* the file name, * and ? allowed *)
  1944.                               VAR Handle       : WORD;     (* handle, 0FFFF means allocate one *)
  1945.                                   attribute    : AttributeSet; (* attributes to match *)
  1946.                               VAR ResultBuf    : FileFindBuf;  (* returned file information *)
  1947.                                   ResultBufLen : WORD;     (* length of result area *)
  1948.                               VAR count        : WORD;     (* # of files to return / returned *)
  1949.                                   a            : WORD;
  1950.                                   Reserved     : LongInt       (* must be zero *)
  1951.                                              ) : WORD;
  1952.  
  1953. FUNCTION DosFSAttach {181} (    a : pChar;
  1954.                                 b : pChar;
  1955.                             VAR c : CHAR;
  1956.                                 d : WORD;
  1957.                                 e : WORD;
  1958.                                 f : LongInt {LONGCARD}
  1959.                                 ) : WORD;
  1960. FUNCTION Dos16FSAttach{181}(    a : pChar;
  1961.                                 b : pChar;
  1962.                             VAR c : CHAR;
  1963.                                 d : WORD;
  1964.                                 e : WORD;
  1965.                                 f :LongInt {LONGCARD}
  1966.                                 ) : WORD;
  1967.  
  1968. FUNCTION DosQFSAttach {182} (    a : pChar;
  1969.                                  b : WORD;
  1970.                                  c : WORD;
  1971.                              VAR d : CHAR;
  1972.                              VAR e : WORD;
  1973.                                  f : LongInt {LONGCARD}
  1974.                                  ) : WORD;
  1975. FUNCTION Dos16QFSAttach{182}(    a : pChar;
  1976.                                  b : WORD;
  1977.                                  c : WORD;
  1978.                              VAR d : CHAR;
  1979.                              VAR e : WORD;
  1980.                                  f : LongInt {LONGCARD}
  1981.                                  ) : WORD;
  1982.  
  1983. FUNCTION DosFSCtl {183} (VAR a : CHAR;
  1984.                              b : WORD;
  1985.                          VAR c : WORD;
  1986.                          VAR d : CHAR;
  1987.                              e : WORD;
  1988.                          VAR f : WORD;
  1989.                              g : WORD;
  1990.                              h : pChar;
  1991.                              i : WORD;
  1992.                              j : WORD;
  1993.                              k : LongInt {LONGCARD}
  1994.                              ) : WORD;
  1995. FUNCTION Dos16FSCtl{183}(VAR a : CHAR;
  1996.                              b : WORD;
  1997.                          VAR c : WORD;
  1998.                          VAR d : CHAR;
  1999.                              e : WORD;
  2000.                          VAR f : WORD;
  2001.                              g : WORD;
  2002.                              h : pChar;
  2003.                              i : WORD;
  2004.                              j : WORD;
  2005.                              k : LongInt {LONGCARD}
  2006.                              ) : WORD;
  2007.  
  2008. FUNCTION DosCopy {201} (a : pChar;
  2009.                         b : pChar;
  2010.                         c : WORD;
  2011.                         d : LongInt {LONGCARD}
  2012.                         ) : WORD;
  2013. FUNCTION Dos16Copy{201}(a : pChar;
  2014.                         b : pChar;
  2015.                         c : WORD;
  2016.                         d : LongInt {LONGCARD}
  2017.                         ) : WORD;
  2018.  
  2019. FUNCTION DosEditName {191} (    a : WORD;
  2020.                                 b : pChar;
  2021.                                 c : pChar;
  2022.                             VAR d : CHAR;
  2023.                                 e : WORD
  2024.                                 ) : WORD;
  2025. FUNCTION Dos16EditName{191}(    a : WORD;
  2026.                                 b : pChar;
  2027.                                 c : pChar;
  2028.                             VAR d : CHAR;
  2029.                                 e : WORD
  2030.                                 ) : WORD;
  2031.  
  2032. FUNCTION DosFileIO {186} (    a : WORD;
  2033.                           VAR b : CHAR;
  2034.                               c : WORD;
  2035.                           VAR d : WORD
  2036.                               ) : WORD;
  2037. FUNCTION Dos16FileIO{186}(    a : WORD;
  2038.                           VAR b : CHAR;
  2039.                               c : WORD;
  2040.                           VAR d : WORD
  2041.                               ) : WORD;
  2042.  
  2043. FUNCTION DosMkDir2 {185} (    a : pChar;
  2044.                           VAR b : EaOp;
  2045.                               c : LongInt {LONGCARD}
  2046.                               ) : WORD;
  2047. FUNCTION Dos16MkDir2{185}(    a : pChar;
  2048.                           VAR b : EaOp;
  2049.                               c : LongInt {LONGCARD}
  2050.                               ) : WORD;
  2051.  
  2052. FUNCTION DosQPathInfo {98} (    a : pChar;
  2053.                                 b : WORD;
  2054.                             VAR c : CHAR;
  2055.                                 d : WORD;
  2056.                                 e : LongInt {LONGCARD}
  2057.                                 ) : WORD;
  2058. FUNCTION Dos16QPathInfo{98}(    a : pChar;
  2059.                                 b : WORD;
  2060.                             VAR c : CHAR;
  2061.                                 d : WORD;
  2062.                                 e : LongInt {LONGCARD}
  2063.                                 ) : WORD;
  2064.  
  2065. FUNCTION DosSetPathInfo {104} (    a : pChar;
  2066.                                    b : WORD;
  2067.                                VAR c : CHAR;
  2068.                                    d : WORD;
  2069.                                    e : WORD;
  2070.                                    f : LongInt {LONGCARD}
  2071.                                    ) : WORD;
  2072. FUNCTION Dos16SetPathInfo{104}(    a : pChar;
  2073.                                    b : WORD;
  2074.                                VAR c : CHAR;
  2075.                                    d : WORD;
  2076.                                    e : WORD;
  2077.                                    f : LongInt {LONGCARD}
  2078.                                    ) : WORD;
  2079.  
  2080. CONST
  2081.     DSPI_WRTTHRU                = $10;
  2082.  
  2083.     ENUMEA_REFTYPE_FHANDLE      = 0;
  2084.     ENUMEA_REFTYPE_PATH         = 1;
  2085.     ENUMEA_LEVEL_NO_VALUE       = 1;
  2086.  
  2087. FUNCTION DosEnumAttribute {204} (    a : WORD;
  2088.                                      b : Pointer;
  2089.                                      c : LongInt {LONGCARD};
  2090.                                      d : Pointer;
  2091.                                      e : LongInt {LONGCARD};
  2092.                                  VAR f : LongInt {LONGCARD};
  2093.                                      g : LongInt {LONGCARD};
  2094.                                      h : LongInt {LONGCARD}
  2095.                                      ) : WORD;
  2096. FUNCTION Dos16EnumAttribute{204}(    a : WORD;
  2097.                                      b : Pointer;
  2098.                                      c : LongInt {LONGCARD};
  2099.                                      d : Pointer;
  2100.                                      e : LongInt {LONGCARD};
  2101.                                  VAR f : LongInt {LONGCARD};
  2102.                                      g : LongInt {LONGCARD};
  2103.                                      h : LongInt {LONGCARD}
  2104.                                      ) : WORD;
  2105.  
  2106. TYPE
  2107.   Dena1 = RECORD
  2108.     Reserved : CHAR;
  2109.     cbName   : CHAR;
  2110.     cbValue  : WORD;
  2111.     szName   : ARRAY [0..0] OF CHAR;
  2112.   END;
  2113.  
  2114.  
  2115. FUNCTION DosSizeSeg {126} (    a : WORD;
  2116.                            VAR b : LongInt {LONGCARD}
  2117.                                ) : WORD;
  2118. FUNCTION Dos16SizeSeg{126}(    a : WORD;
  2119.                            VAR b : LongInt {LONGCARD}
  2120.                                ) : WORD;
  2121.  
  2122. TYPE
  2123.   DosFsRSem = RECORD
  2124.     cb      : WORD;
  2125.     pID     : WORD;
  2126.     tId     : WORD;
  2127.     cUsage  : WORD;
  2128.     client  : WORD;
  2129.     Sem     :LongInt {LONGCARD};
  2130.   END;
  2131.  
  2132. FUNCTION DosFSRamSemRequest {161} (VAR a : DosFsRSem;
  2133.                                        b : LongInt {LONGCARD}
  2134.                                        ) : WORD;
  2135. FUNCTION Dos16FSRamSemRequest{161}(VAR a : DosFsRSem;
  2136.                                        b : LongInt {LONGCARD}
  2137.                                        ) : WORD;
  2138.  
  2139. FUNCTION DosFSRamSemClear {162} (VAR a : DosFsRSem) : WORD;
  2140. FUNCTION Dos16FSRamSemClear{162}(VAR a : DosFsRSem) : WORD;
  2141.  
  2142. CONST
  2143.     RT_POINTER          = 1;
  2144.     RT_BITMAP           = 2;
  2145.     RT_MENU             = 3;
  2146.     RT_DIALOG           = 4;
  2147.     RT_STRING           = 5;
  2148.     RT_FONTDIR          = 6;
  2149.     RT_FONT             = 7;
  2150.     RT_ACCELTABLE       = 8;
  2151.     RT_RCDATA           = 9;
  2152.     RT_MESSAGE          = 10;
  2153.     RT_DLGINCLUDE       = 11;
  2154.     RT_VKEYTBL          = 12;
  2155.     RT_KEYTBL           = 13;
  2156.     RT_CHARTBL          = 14;
  2157.     RT_DISPLAYINFO      = 15;
  2158.  
  2159.     RT_FKASHORT         = 16;
  2160.     RT_FKALONG          = 17;
  2161.  
  2162.     RT_HELPTABLE        = 18;
  2163.     RT_HELPSUBTABLE     = 19;
  2164.  
  2165.     RT_FDDIR            = 20;
  2166.     RT_FD               = 21;
  2167.  
  2168.     RT_MAX              = 22;
  2169.  
  2170. FUNCTION DosGetResource {155} (    a : hModule;
  2171.                                    b : WORD;
  2172.                                    c : WORD;
  2173.                                VAR d : WORD) : WORD;
  2174. FUNCTION Dos16GetResource{155}(    a : hModule;
  2175.                                    b : WORD;
  2176.                                    c : WORD;
  2177.                                VAR d : WORD) : WORD;
  2178.  
  2179. FUNCTION DosGetResource2 {207} (a : hModule;
  2180.                                 b : WORD;
  2181.                                 c : WORD;
  2182.                                 d : Pointer) : WORD;
  2183. FUNCTION Dos16GetResource2{207}(a : hModule;
  2184.                                 b : WORD;
  2185.                                 c : WORD;
  2186.                                 d : Pointer) : WORD;
  2187.  
  2188. FUNCTION DosFreeResource {208} (a : Pointer) : WORD;
  2189. FUNCTION Dos16FreeResource{208}(a : Pointer) : WORD;
  2190.  
  2191. CONST
  2192.   DATEFMT_MM_DD_YY    = 0;
  2193.   DATEFMT_DD_MM_YY    = 1;
  2194.   DATEFMT_YY_MM_DD    = 2;
  2195.  
  2196.   CURRENCY_FOLLOW     = 1;
  2197.   CURRENTY_SPACE      = 2;
  2198.   CURRENCY_DECIMAL    = 4;
  2199.  
  2200. FUNCTION DosSetProcCP {164} (a, b : WORD) : WORD;
  2201. FUNCTION Dos16SetProcCP{164}(a, b : WORD) : WORD;
  2202.  
  2203. FUNCTION DosSendSignal {134} (a, b: WORD): WORD;
  2204. FUNCTION Dos16SendSignal{134}(a, b: WORD): WORD;
  2205.  
  2206. CONST
  2207.   MONITOR_DEFAULT     = 0;
  2208.   MONITOR_BEGIN       = 1;
  2209.   MONITOR_END         = 2;
  2210.  
  2211. TYPE
  2212.   MonIn = RECORD
  2213.     cb      : WORD;
  2214.     res1    : ARRAY [0..17] OF CHAR;
  2215.     res2    : ARRAY [0..107] OF CHAR;
  2216.   END;
  2217.  
  2218.   MonOut = RECORD
  2219.     cb      : WORD;
  2220.     Buffer  : ARRAY [0..17] OF CHAR;
  2221.     abBuf   : ARRAY [0..107] OF CHAR;
  2222.   END;
  2223.  
  2224.   QueueResult = RECORD
  2225.     pidProcess      : WORD;
  2226.     usEventCode     : WORD;
  2227.   END;
  2228.  
  2229. CONST
  2230.   Q_MAX_PATH_LENGTH   = 0;
  2231.  
  2232.   HARDERROR_ENABLE    = 1;
  2233.   HARDERROR_DISABLE   = 0;
  2234.   EXCEPTION_ENABLE    = 0;
  2235.   EXCEPTION_DISABLE   = 2;
  2236.  
  2237.   VECTOR_DIVIDE_BY_ZERO       = 0;
  2238.   VECTOR_OVERFLOW             = 4;
  2239.   VECTOR_OUTOFBOUNDS          = 5;
  2240.   VECTOR_INVALIDOPCODE        = 6;
  2241.   VECTOR_NO_EXTENSION         = 7;
  2242.   VECTOR_EXTENSION_ERROR      = $10;
  2243.  
  2244.   MODE_REAL           = 0;
  2245.   MODE_PROTECTED      = 1;
  2246.  
  2247. FUNCTION DosQSysInfo {166} (a : WORD;
  2248.                             b : Pointer;
  2249.                             c : WORD
  2250.                             ) : WORD;
  2251. FUNCTION Dos16QSysInfo{166}(a : WORD;
  2252.                             b : Pointer;
  2253.                             c : WORD
  2254.                             ) : WORD;
  2255.  
  2256. CONST
  2257.   NOTSPECIFIED        = 0;
  2258.   NOTWINDOWCOMPAT     = 1;
  2259.   WINDOWCOMPAT        = 2;
  2260.   WINDOWAPI           = 3;
  2261.   BOUND               = 4;
  2262.   DynamicLink         = 8;
  2263.   DOSFORMAT           = $10;
  2264.  
  2265.   TARGET_UNCHANGED    = 0;
  2266.   TARGET_CHILD        = 1;
  2267.   TARGET_NOT_SELECTABLE = 2;
  2268.  
  2269.   BOND_UNCHANGED      = 0;
  2270.   BOND_CHILD          = 1;
  2271.   BOND_NONE           = 2;
  2272.  
  2273. FUNCTION DosQAppType {163} (    a : pChar;
  2274.                             VAR b : WORD) : WORD;
  2275. FUNCTION Dos16QAppType{163}(   a : pChar;
  2276.                            VAR b : WORD) : WORD;
  2277.  
  2278. CONST
  2279.   INFO_COUNT_PARTITIONABLE_DISKS      = 1;
  2280.   INFO_GETIOCTLHANDLE                 = 2;
  2281.   INFO_FREEIOCTLHANDLE                = 3;
  2282.  
  2283.   DEVINFO_PRINTER             = 0;
  2284.   DEVINFO_RS232               = 1;
  2285.   DEVINFO_FLOPPY              = 2;
  2286.   DEVINFO_COPROCESSOR         = 3;
  2287.   DEVINFO_SUBMODEL            = 4;
  2288.   DEVINFO_MODEL               = 5;
  2289.   DEVINFO_ADAPTOR             = 6;
  2290.  
  2291. FUNCTION DosDevIOCtl2 {99} (
  2292.     Data                : Pointer;      (* address of data buffer *)
  2293.     a : WORD;
  2294.     ParamList           : Pointer;      (* command specific arguments *)
  2295.     aFunction           : WORD;     (* device specific function code *)
  2296.     Category            : WORD;     (* device category *)
  2297.     Handle              : WORD;     (* handle for the device *)
  2298.     b : WORD
  2299.     ) : WORD;
  2300. FUNCTION Dos16DevIOCtl2 {99} (
  2301.     Data                : Pointer;      (* address of data buffer *)
  2302.     a : WORD;
  2303.     ParamList           : Pointer;      (* command specific arguments *)
  2304.     aFunction           : WORD;     (* device specific function code *)
  2305.     Category            : WORD;     (* device category *)
  2306.     Handle              : WORD;     (* handle for the device *)
  2307.     b : WORD
  2308.     ) : WORD;
  2309.  
  2310. FUNCTION DosR2StackRealloc {160}(a : WORD) : WORD;
  2311. FUNCTION Dos16R2StackRealloc{160}(a : WORD) : WORD;
  2312.  
  2313. FUNCTION DosCallback {157} (a : Pointer(*!!!PFN*)) : WORD;
  2314. FUNCTION Dos16Callback{157}(a : Pointer(*!!!PFN*)) : WORD;
  2315.  
  2316. FUNCTION DosSetVec  (    VecNum  : WORD;
  2317.                          Handler : Pointer;
  2318.                      VAR PrevHandler : Pointer): WORD;
  2319. FUNCTION Dos16SetVec(    VecNum  : WORD;
  2320.                          Handler : Pointer;
  2321.                      VAR PrevHandler : Pointer) : WORD;
  2322.  
  2323. PROCEDURE DosWrite  (    Handle : WORD;
  2324.                          Buf    : pChar;
  2325.                          count  : WORD;
  2326.                      VAR WCount : WORD);
  2327. PROCEDURE Dos16Write(    Handle : WORD;
  2328.                      VAR Buf;
  2329.                          count : WORD;
  2330.                      VAR WCount : WORD);
  2331.  
  2332. FUNCTION  DosBeep  (Freq, Duration : WORD) : WORD;
  2333. FUNCTION  Dos16Beep(Freq, Duration : WORD) : WORD;
  2334.  
  2335. PROCEDURE DosExit  (x : WORD; ExitCode : WORD);
  2336. PROCEDURE Dos16Exit(x : WORD; ExitCode : WORD);
  2337.  
  2338. FUNCTION  DosCreateThread(      Proc  : Pointer;
  2339.                             VAR tId   : WORD;
  2340.                                 Stack : Pointer) : WORD;
  2341. FUNCTION  Dos16CreateThread(    Proc  : Pointer;
  2342.                             VAR tId   : WORD;
  2343.                                 Stack : Pointer) : WORD;
  2344.  
  2345. IMPLEMENTATION
  2346.  
  2347.   FUNCTION DosCWait(* ------------- *);
  2348.     EXTERNAL 'DosCalls' INDEX   2;
  2349.   FUNCTION Dos16CWait(* ------------- *);
  2350.     EXTERNAL 'DosCalls' INDEX   2;
  2351.  
  2352.   PROCEDURE DosEnterCritSec(* ------------- *);
  2353.     EXTERNAL 'DosCalls' INDEX   3;
  2354.   PROCEDURE Dos16EnterCritSec(* ------------- *);
  2355.     EXTERNAL 'DosCalls' INDEX   3;
  2356.  
  2357. (* ====================================================== *)
  2358.  
  2359.  
  2360.   PROCEDURE DosExit;   EXTERNAL 'DosCalls' INDEX  5;
  2361.   PROCEDURE Dos16Exit; EXTERNAL 'DosCalls' INDEX  5;
  2362.  
  2363.  
  2364.   PROCEDURE DosExitCritSec(* ------------- *);
  2365.     EXTERNAL 'DosCalls' INDEX   6;
  2366.   PROCEDURE Dos16ExitCritSec(* ------------- *);
  2367.     EXTERNAL 'DosCalls' INDEX   6;
  2368.  
  2369.   FUNCTION DosExitList(* ------------- *);
  2370.     EXTERNAL 'DosCalls' INDEX   7;
  2371.   FUNCTION Dos16ExitList(* ------------- *);
  2372.     EXTERNAL 'DosCalls' INDEX   7;
  2373.  
  2374.   PROCEDURE  DosGetInfoSeg(* ------------- *);
  2375.     EXTERNAL 'DosCalls' INDEX   8;
  2376.   PROCEDURE  Dos16GetInfoSeg(* ------------- *);
  2377.     EXTERNAL 'DosCalls' INDEX   8;
  2378.  
  2379.   FUNCTION DosGetPrty(* ------------- *);
  2380.     EXTERNAL 'DosCalls' INDEX   9;
  2381.   FUNCTION Dos16GetPrty(* ------------- *);
  2382.     EXTERNAL 'DosCalls' INDEX   9;
  2383.  
  2384.   FUNCTION DosKillProcess(* ------------- *);
  2385.     EXTERNAL 'DosCalls' INDEX  10;
  2386.   FUNCTION Dos16KillProcess(* ------------- *);
  2387.     EXTERNAL 'DosCalls' INDEX  10;
  2388.  
  2389.   FUNCTION DosSetPrty(* ------------- *);
  2390.     EXTERNAL 'DosCalls' INDEX  11;
  2391.   FUNCTION Dos16SetPrty(* ------------- *);
  2392.     EXTERNAL 'DosCalls' INDEX  11;
  2393.  
  2394.   FUNCTION DosPTrace(* ------------- *);
  2395.     EXTERNAL 'DosCalls' INDEX  12;
  2396.  
  2397.   FUNCTION DosHoldSignal(* ------------- *);
  2398.     EXTERNAL 'DosCalls' INDEX  13;
  2399.   FUNCTION Dos16HoldSignal(* ------------- *);
  2400.     EXTERNAL 'DosCalls' INDEX  13;
  2401.  
  2402.   FUNCTION DosSetSigHandler(* ------------- *);
  2403.     EXTERNAL 'DosCalls' INDEX  14;
  2404.   FUNCTION Dos16SetSigHandler(* ------------- *);
  2405.     EXTERNAL 'DosCalls' INDEX  14;
  2406.  
  2407.   FUNCTION DosFlagProcess(* ------------- *);
  2408.     EXTERNAL 'DosCalls' INDEX  15;
  2409.   FUNCTION Dos16FlagProcess(* ------------- *);
  2410.     EXTERNAL 'DosCalls' INDEX  15;
  2411.  
  2412.   FUNCTION DosMakePipe(* ------------- *);
  2413.     EXTERNAL 'DosCalls' INDEX  16;
  2414.   FUNCTION Dos16MakePipe(* ------------- *);
  2415.     EXTERNAL 'DosCalls' INDEX  16;
  2416.  
  2417.   FUNCTION DosSemSetWait(* ------------- *);
  2418.     EXTERNAL 'DosCalls' INDEX  20;
  2419.   FUNCTION Dos16SemSetWait(* ------------- *);
  2420.     EXTERNAL 'DosCalls' INDEX  20;
  2421.  
  2422. (* ====================================================== *)
  2423.  
  2424.   FUNCTION DosMuxSemWait(* ------------- *);
  2425.     EXTERNAL 'DosCalls' INDEX  22;
  2426.   FUNCTION Dos16MuxSemWait(* ------------- *);
  2427.     EXTERNAL 'DosCalls' INDEX  22;
  2428.  
  2429.   FUNCTION DosCloseSem(* ------------- *);
  2430.     EXTERNAL 'DosCalls' INDEX  23;
  2431.   FUNCTION Dos16CloseSem(* ------------- *);
  2432.     EXTERNAL 'DosCalls' INDEX  23;
  2433.  
  2434.   FUNCTION DosCreateSem(* ------------- *);
  2435.     EXTERNAL 'DosCalls' INDEX  24;
  2436.   FUNCTION Dos16CreateSem(* ------------- *);
  2437.     EXTERNAL 'DosCalls' INDEX  24;
  2438.  
  2439.   FUNCTION DosOpenSem(* ------------- *);
  2440.     EXTERNAL 'DosCalls' INDEX  25;
  2441.   FUNCTION Dos16OpenSem(* ------------- *);
  2442.     EXTERNAL 'DosCalls' INDEX  25;
  2443.  
  2444.   FUNCTION DosResumeThread(* ------------- *);
  2445.     EXTERNAL 'DosCalls' INDEX  26;
  2446.   FUNCTION Dos16ResumeThread(* ------------- *);
  2447.     EXTERNAL 'DosCalls' INDEX  26;
  2448.  
  2449.   FUNCTION DosSuspendThread(* ------------- *);
  2450.     EXTERNAL 'DosCalls' INDEX  27;
  2451.   FUNCTION Dos16SuspendThread(* ------------- *);
  2452.     EXTERNAL 'DosCalls' INDEX  27;
  2453.  
  2454.   FUNCTION DosSetDateTime(* ------------- *);
  2455.     EXTERNAL 'DosCalls' INDEX  28;
  2456.   FUNCTION Dos16SetDateTime(* ------------- *);
  2457.     EXTERNAL 'DosCalls' INDEX  28;
  2458.  
  2459.   FUNCTION DosTimerAsync(* ------------- *);
  2460.     EXTERNAL 'DosCalls' INDEX  29;
  2461.   FUNCTION Dos16TimerAsync(* ------------- *);
  2462.     EXTERNAL 'DosCalls' INDEX  29;
  2463.  
  2464.   FUNCTION DosTimerStart(* ------------- *);
  2465.     EXTERNAL 'DosCalls' INDEX  30;
  2466.   FUNCTION Dos16TimerStart(* ------------- *);
  2467.     EXTERNAL 'DosCalls' INDEX  30;
  2468.  
  2469.   FUNCTION DosTimerStop(* ------------- *);
  2470.     EXTERNAL 'DosCalls' INDEX  31;
  2471.   FUNCTION Dos16TimerStop(* ------------- *);
  2472.     EXTERNAL 'DosCalls' INDEX  31;
  2473.  
  2474.   FUNCTION DosSleep(* ------------- *);
  2475.     EXTERNAL 'DosCalls' INDEX  32;
  2476.   FUNCTION Dos16Sleep(* ------------- *);
  2477.     EXTERNAL 'DosCalls' INDEX  32;
  2478.  
  2479.   FUNCTION DosGetDateTime(* ------------- *);
  2480.     EXTERNAL 'DosCalls' INDEX  33;
  2481.   FUNCTION Dos16GetDateTime(* ------------- *);
  2482.     EXTERNAL 'DosCalls' INDEX  33;
  2483.  
  2484.   FUNCTION DosAllocSeg(* ------------- *);
  2485.     EXTERNAL 'DosCalls' INDEX  34;
  2486.   FUNCTION Dos16AllocSeg(* ------------- *);
  2487.     EXTERNAL 'DosCalls' INDEX  34;
  2488.  
  2489.   FUNCTION DosAllocShrSeg(* ------------- *);
  2490.     EXTERNAL 'DosCalls' INDEX  35;
  2491.   FUNCTION Dos16AllocShrSeg(* ------------- *);
  2492.     EXTERNAL 'DosCalls' INDEX  35;
  2493.  
  2494.   FUNCTION DosGetShrSeg(* ------------- *);
  2495.     EXTERNAL 'DosCalls' INDEX  36;
  2496.   FUNCTION Dos16GetShrSeg(* ------------- *);
  2497.     EXTERNAL 'DosCalls' INDEX  36;
  2498.  
  2499.   FUNCTION DosGiveSeg(* ------------- *);
  2500.     EXTERNAL 'DosCalls' INDEX  37;
  2501.   FUNCTION Dos16GiveSeg(* ------------- *);
  2502.     EXTERNAL 'DosCalls' INDEX  37;
  2503.  
  2504.   FUNCTION DosReAllocSeg(* ------------- *);
  2505.     EXTERNAL 'DosCalls' INDEX  38;
  2506.   FUNCTION Dos16ReAllocSeg(* ------------- *);
  2507.     EXTERNAL 'DosCalls' INDEX  38;
  2508.  
  2509.   FUNCTION DosFreeSeg(* ------------- *);
  2510.     EXTERNAL 'DosCalls' INDEX  39;
  2511.   FUNCTION Dos16FreeSeg(* ------------- *);
  2512.     EXTERNAL 'DosCalls' INDEX  39;
  2513.  
  2514.   FUNCTION DosAllocHuge(* ------------- *);
  2515.     EXTERNAL 'DosCalls' INDEX  40;
  2516.   FUNCTION Dos16AllocHuge(* ------------- *);
  2517.     EXTERNAL 'DosCalls' INDEX  40;
  2518.  
  2519.   FUNCTION DosGetHugeShift(* ------------- *);
  2520.     EXTERNAL 'DosCalls' INDEX  41;
  2521.   FUNCTION Dos16GetHugeShift(* ------------- *);
  2522.     EXTERNAL 'DosCalls' INDEX  41;
  2523.  
  2524.   FUNCTION DosReAllocHuge(* ------------- *);
  2525.     EXTERNAL 'DosCalls' INDEX  42;
  2526.   FUNCTION Dos16ReAllocHuge(* ------------- *);
  2527.     EXTERNAL 'DosCalls' INDEX  42;
  2528.  
  2529.   FUNCTION DosCreateCSAlias(* ------------- *);
  2530.     EXTERNAL 'DosCalls' INDEX  43;
  2531.   FUNCTION Dos16CreateCSAlias(* ------------- *);
  2532.     EXTERNAL 'DosCalls' INDEX  43;
  2533.  
  2534.   FUNCTION DosLoadModule(* ------------- *);
  2535.     EXTERNAL 'DosCalls' INDEX  44;
  2536.   FUNCTION Dos16LoadModule(* ------------- *);
  2537.     EXTERNAL 'DosCalls' INDEX  44;
  2538.  
  2539.   FUNCTION DosGetProcAddr(* ------------- *);
  2540.     EXTERNAL 'DosCalls' INDEX  45;
  2541.   FUNCTION Dos16GetProcAddr(* ------------- *);
  2542.     EXTERNAL 'DosCalls' INDEX  45;
  2543.  
  2544.   FUNCTION DosFreeModule(* ------------- *);
  2545.     EXTERNAL 'DosCalls' INDEX  46;
  2546.   FUNCTION Dos16FreeModule(* ------------- *);
  2547.     EXTERNAL 'DosCalls' INDEX  46;
  2548.  
  2549.   FUNCTION DosGetModHandle(* ------------- *);
  2550.     EXTERNAL 'DosCalls' INDEX  47;
  2551.   FUNCTION Dos16GetModHandle(* ------------- *);
  2552.     EXTERNAL 'DosCalls' INDEX  47;
  2553.  
  2554.   FUNCTION DosGetModName(* ------------- *);
  2555.     EXTERNAL 'DosCalls' INDEX  48;
  2556.   FUNCTION Dos16GetModName(* ------------- *);
  2557.     EXTERNAL 'DosCalls' INDEX  48;
  2558.  
  2559.   PROCEDURE DosGetMachineMode(* ------------- *);
  2560.     EXTERNAL 'DosCalls' INDEX  49;
  2561.   PROCEDURE Dos16GetMachineMode(* ------------- *);
  2562.     EXTERNAL 'DosCalls' INDEX  49;
  2563.  
  2564.  
  2565.   FUNCTION DosBeep;     EXTERNAL 'DosCalls' INDEX  50;
  2566.   FUNCTION Dos16Beep;   EXTERNAL 'DosCalls' INDEX  50;
  2567.  
  2568.  
  2569.   FUNCTION DosCLIAccess(* ------------- *);
  2570.     EXTERNAL 'DosCalls' INDEX  51;
  2571.   FUNCTION Dos16CLIAccess(* ------------- *);
  2572.     EXTERNAL 'DosCalls' INDEX  51;
  2573.  
  2574.   FUNCTION DosDevConfig(* ------------- *);
  2575.     EXTERNAL 'DosCalls' INDEX  52;
  2576.   FUNCTION Dos16DevConfig(* ------------- *);
  2577.     EXTERNAL 'DosCalls' INDEX  52;
  2578.  
  2579.   FUNCTION DosDevIOCtl(* ------------- *);
  2580.     EXTERNAL 'DosCalls' INDEX  53;
  2581.   FUNCTION Dos16DevIOCtl(* ------------- *);
  2582.     EXTERNAL 'DosCalls' INDEX  53;
  2583.  
  2584. (* ====================================================== *)
  2585.  
  2586.   FUNCTION DosBufReset(* ------------- *);
  2587.     EXTERNAL 'DosCalls' INDEX  56;
  2588.   FUNCTION Dos16BufReset(* ------------- *);
  2589.     EXTERNAL 'DosCalls' INDEX  56;
  2590.  
  2591.   FUNCTION DosChDir(* ------------- *);
  2592.     EXTERNAL 'DosCalls' INDEX  57;
  2593.   FUNCTION Dos16ChDir(* ------------- *);
  2594.     EXTERNAL 'DosCalls' INDEX  57;
  2595.  
  2596.   FUNCTION DosChgFilePtr(* ------------- *);
  2597.     EXTERNAL 'DosCalls' INDEX  58;
  2598.   FUNCTION Dos16ChgFilePtr(* ------------- *);
  2599.     EXTERNAL 'DosCalls' INDEX  58;
  2600.  
  2601.   FUNCTION DosClose(* ------------- *);
  2602.     EXTERNAL 'DosCalls' INDEX  59;
  2603.   FUNCTION Dos16Close(* ------------- *);
  2604.     EXTERNAL 'DosCalls' INDEX  59;
  2605.  
  2606.   FUNCTION DosDelete(* ------------- *);
  2607.     EXTERNAL 'DosCalls' INDEX  60;
  2608.   FUNCTION Dos16Delete(* ------------- *);
  2609.     EXTERNAL 'DosCalls' INDEX  60;
  2610.  
  2611.   FUNCTION DosDupHandle(* ------------- *);
  2612.     EXTERNAL 'DosCalls' INDEX  61;
  2613.   FUNCTION Dos16DupHandle(* ------------- *);
  2614.     EXTERNAL 'DosCalls' INDEX  61;
  2615.  
  2616.   FUNCTION DosFileLocks(* ------------- *);
  2617.     EXTERNAL 'DosCalls' INDEX  62;
  2618.   FUNCTION Dos16FileLocks(* ------------- *);
  2619.     EXTERNAL 'DosCalls' INDEX  62;
  2620.  
  2621.   FUNCTION DosFindClose(* ------------- *);
  2622.     EXTERNAL 'DosCalls' INDEX  63;
  2623.   FUNCTION Dos16FindClose(* ------------- *);
  2624.     EXTERNAL 'DosCalls' INDEX  63;
  2625.  
  2626.   FUNCTION DosFindFirst(* ------------- *);
  2627.     EXTERNAL 'DosCalls' INDEX  64;
  2628.   FUNCTION Dos16FindFirst(* ------------- *);
  2629.     EXTERNAL 'DosCalls' INDEX  64;
  2630.  
  2631.   FUNCTION DosFindNext(* ------------- *);
  2632.     EXTERNAL 'DosCalls' INDEX  65;
  2633.   FUNCTION Dos16FindNext(* ------------- *);
  2634.     EXTERNAL 'DosCalls' INDEX  65;
  2635.  
  2636.   FUNCTION DosMkDir(* ------------- *);
  2637.     EXTERNAL 'DosCalls' INDEX  66;
  2638.   FUNCTION Dos16MkDir(* ------------- *);
  2639.     EXTERNAL 'DosCalls' INDEX  66;
  2640.  
  2641.   FUNCTION DosMove(* ------------- *);
  2642.     EXTERNAL 'DosCalls' INDEX  67;
  2643.   FUNCTION Dos16Move(* ------------- *);
  2644.     EXTERNAL 'DosCalls' INDEX  67;
  2645.  
  2646.   FUNCTION DosNewSize(* ------------- *);
  2647.     EXTERNAL 'DosCalls' INDEX  68;
  2648.   FUNCTION Dos16NewSize(* ------------- *);
  2649.     EXTERNAL 'DosCalls' INDEX  68;
  2650.  
  2651.   FUNCTION DosPortAccess(* ------------- *);
  2652.     EXTERNAL 'DosCalls' INDEX  69;
  2653.   FUNCTION Dos16PortAccess(* ------------- *);
  2654.     EXTERNAL 'DosCalls' INDEX  69;
  2655.  
  2656.   FUNCTION DosOpen(* ------------- *);
  2657.     EXTERNAL 'DosCalls' INDEX  70;
  2658.   FUNCTION Dos16Open(* ------------- *);
  2659.     EXTERNAL 'DosCalls' INDEX  70;
  2660.  
  2661.   FUNCTION DosQCurDir(* ------------- *);
  2662.     EXTERNAL 'DosCalls' INDEX  71;
  2663.   FUNCTION Dos16QCurDir(* ------------- *);
  2664.     EXTERNAL 'DosCalls' INDEX  71;
  2665.  
  2666.   FUNCTION DosQCurDisk(* ------------- *);
  2667.     EXTERNAL 'DosCalls' INDEX  72;
  2668.   FUNCTION Dos16QCurDisk(* ------------- *);
  2669.     EXTERNAL 'DosCalls' INDEX  72;
  2670.  
  2671.   FUNCTION DosQFHandState(* ------------- *);
  2672.     EXTERNAL 'DosCalls' INDEX  73;
  2673.   FUNCTION Dos16QFHandState(* ------------- *);
  2674.     EXTERNAL 'DosCalls' INDEX  73;
  2675.  
  2676.   FUNCTION DosQFileInfo(* ------------- *);
  2677.     EXTERNAL 'DosCalls' INDEX  74;
  2678.   FUNCTION Dos16QFileInfo(* ------------- *);
  2679.     EXTERNAL 'DosCalls' INDEX  74;
  2680.  
  2681.   FUNCTION DosQFileMode(* ------------- *);
  2682.     EXTERNAL 'DosCalls' INDEX  75;
  2683.   FUNCTION Dos16QFileMode(* ------------- *);
  2684.     EXTERNAL 'DosCalls' INDEX  75;
  2685.  
  2686.   FUNCTION DosQFSInfo(* ------------- *);
  2687.     EXTERNAL 'DosCalls' INDEX  76;
  2688.   FUNCTION Dos16QFSInfo(* ------------- *);
  2689.     EXTERNAL 'DosCalls' INDEX  76;
  2690.  
  2691.   FUNCTION DosQHandType(* ------------- *);
  2692.     EXTERNAL 'DosCalls' INDEX  77;
  2693.   FUNCTION Dos16QHandType(* ------------- *);
  2694.     EXTERNAL 'DosCalls' INDEX  77;
  2695.  
  2696.   FUNCTION DosQVerify(* ------------- *);
  2697.     EXTERNAL 'DosCalls' INDEX  78;
  2698.   FUNCTION Dos16QVerify(* ------------- *);
  2699.     EXTERNAL 'DosCalls' INDEX  78;
  2700.  
  2701.   FUNCTION DosRmDir(* ------------- *);
  2702.     EXTERNAL 'DosCalls' INDEX  80;
  2703.   FUNCTION Dos16RmDir(* ------------- *);
  2704.     EXTERNAL 'DosCalls' INDEX  80;
  2705.  
  2706.   FUNCTION DosSelectDisk(* ------------- *);
  2707.     EXTERNAL 'DosCalls' INDEX  81;
  2708.   FUNCTION Dos16SelectDisk(* ------------- *);
  2709.     EXTERNAL 'DosCalls' INDEX  81;
  2710.  
  2711.   FUNCTION DosSetFHandState(* ------------- *);
  2712.     EXTERNAL 'DosCalls' INDEX  82;
  2713.   FUNCTION Dos16SetFHandState(* ------------- *);
  2714.     EXTERNAL 'DosCalls' INDEX  82;
  2715.  
  2716.   FUNCTION DosSetFileInfo(* ------------- *);
  2717.     EXTERNAL 'DosCalls' INDEX  83;
  2718.   FUNCTION Dos16SetFileInfo(* ------------- *);
  2719.     EXTERNAL 'DosCalls' INDEX  83;
  2720.  
  2721.   FUNCTION DosSetFileMode(* ------------- *);
  2722.     EXTERNAL 'DosCalls' INDEX  84;
  2723.   FUNCTION Dos16SetFileMode(* ------------- *);
  2724.     EXTERNAL 'DosCalls' INDEX  84;
  2725.  
  2726.   FUNCTION DosSetMaxFH(* ------------- *);
  2727.     EXTERNAL 'DosCalls' INDEX  85;
  2728.   FUNCTION Dos16SetMaxFH(* ------------- *);
  2729.     EXTERNAL 'DosCalls' INDEX  85;
  2730.  
  2731.   FUNCTION DosSetVerify(* ------------- *);
  2732.     EXTERNAL 'DosCalls' INDEX  86;
  2733.   FUNCTION Dos16SetVerify(* ------------- *);
  2734.     EXTERNAL 'DosCalls' INDEX  86;
  2735.  
  2736.   FUNCTION DosSystemService(* ------------- *);
  2737.     EXTERNAL 'DosCalls' INDEX  88;
  2738.   FUNCTION Dos16SystemService(* ------------- *);
  2739.     EXTERNAL 'DosCalls' INDEX  88;
  2740.  
  2741.   FUNCTION DosSetVec(* ------------- *);
  2742.     EXTERNAL 'DosCalls' INDEX  89;
  2743.   FUNCTION Dos16SetVec(* ------------- *);
  2744.     EXTERNAL 'DosCalls' INDEX  89;
  2745. {
  2746.   FUNCTION DosSysTrace(* ------------- *);
  2747.     External 'DosCalls' INDEX  90;
  2748.   FUNCTION Dos16SysTrace(* ------------- *);
  2749.     External 'DosCalls' INDEX  90;
  2750. }
  2751.   FUNCTION DosGetEnv(* ------------- *);
  2752.     EXTERNAL 'DosCalls' INDEX  91;
  2753.   FUNCTION Dos16GetEnv(* ------------- *);
  2754.     EXTERNAL 'DosCalls' INDEX  91;
  2755.  
  2756.   PROCEDURE DosGetVersion;
  2757.     EXTERNAL 'DosCalls' INDEX  92;
  2758.   PROCEDURE Dos16GetVersion;
  2759.     EXTERNAL 'DosCalls' INDEX  92;
  2760.  
  2761. (* ====================================================== *)
  2762.  
  2763.   FUNCTION DosGetPID(* ------------- *);
  2764.     EXTERNAL 'DosCalls' INDEX  94;
  2765.   FUNCTION Dos16GetPID(* ------------- *);
  2766.     EXTERNAL 'DosCalls' INDEX  94;
  2767.  
  2768.   FUNCTION DosOpen2(* ------------- *);
  2769.     EXTERNAL 'DosCalls' INDEX  95;
  2770.   FUNCTION Dos16Open2(* ------------- *);
  2771.     EXTERNAL 'DosCalls' INDEX  95;
  2772. {
  2773.   FUNCTION DosLibInit(* ------------- *);
  2774.     External 'DosCalls' INDEX  96;
  2775.   FUNCTION Dos16LibInit(* ------------- *);
  2776.     External 'DosCalls' INDEX  96;
  2777. }
  2778.   FUNCTION DosSetFSInfo(* ------------- *);
  2779.     EXTERNAL 'DosCalls' INDEX  97;
  2780.   FUNCTION Dos16SetFSInfo(* ------------- *);
  2781.     EXTERNAL 'DosCalls' INDEX  97;
  2782.  
  2783.   FUNCTION DosQPathInfo(* ------------- *);
  2784.     EXTERNAL 'DosCalls' INDEX  98;
  2785.   FUNCTION Dos16QPathInfo(* ------------- *);
  2786.     EXTERNAL 'DosCalls' INDEX  98;
  2787.  
  2788.   FUNCTION DosDevIOCtl2(* ------------- *);
  2789.     EXTERNAL 'DosCalls' INDEX  99;
  2790.   FUNCTION Dos16DevIOCtl2(* ------------- *);
  2791.     EXTERNAL 'DosCalls' INDEX  99;
  2792.  
  2793. (* ====================================================== *)
  2794.  
  2795.   FUNCTION DosSetPathInfo(* ------------- *);
  2796.     EXTERNAL 'DosCalls' INDEX 104;
  2797.   FUNCTION Dos16SetPathInfo(* ------------- *);
  2798.     EXTERNAL 'DosCalls' INDEX 104;
  2799. {
  2800.   FUNCTION DosISetRelMaxFh(* ------------- *);
  2801.     External 'DosCalls' INDEX 108;
  2802.  
  2803.   FUNCTION DosIDevIOCtl(* ------------- *);
  2804.     External 'DosCalls' INDEX 109;
  2805.  
  2806.   FUNCTION Dos32ForceDelete(* ------------- *);
  2807.     External 'DosCalls' INDEX 110;
  2808.  
  2809.   FUNCTION Dos32KillThread(* ------------- *);
  2810.     External 'DosCalls' INDEX 111;
  2811.  
  2812.   FUNCTION Dos32QueryRASInfo(* ------------- *);
  2813.     External 'DosCalls' INDEX 112;
  2814. }
  2815. (* ====================================================== *)
  2816.  
  2817.   FUNCTION DosError(* ------------- *);
  2818.     EXTERNAL 'DosCalls' INDEX 120;
  2819.   FUNCTION Dos16Error(* ------------- *);
  2820.     EXTERNAL 'DosCalls' INDEX 120;
  2821.  
  2822.   FUNCTION DosGetSeg(* ------------- *);
  2823.     EXTERNAL 'DosCalls' INDEX 121;
  2824.   FUNCTION Dos16GetSeg(* ------------- *);
  2825.     EXTERNAL 'DosCalls' INDEX 121;
  2826.  
  2827.   FUNCTION DosLockSeg(* ------------- *);
  2828.     EXTERNAL 'DosCalls' INDEX 122;
  2829.   FUNCTION Dos16LockSeg(* ------------- *);
  2830.     EXTERNAL 'DosCalls' INDEX 122;
  2831.  
  2832.   FUNCTION DosUnlockSeg(* ------------- *);
  2833.     EXTERNAL 'DosCalls' INDEX 123;
  2834.   FUNCTION Dos16UnlockSeg(* ------------- *);
  2835.     EXTERNAL 'DosCalls' INDEX 123;
  2836.  
  2837.   FUNCTION DosSizeSeg(* ------------- *);
  2838.     EXTERNAL 'DosCalls' INDEX 126;
  2839.   FUNCTION Dos16SizeSeg(* ------------- *);
  2840.     EXTERNAL 'DosCalls' INDEX 126;
  2841.  
  2842.   FUNCTION DosMemAvail(* ------------- *);
  2843.     EXTERNAL 'DosCalls' INDEX 127;
  2844.   FUNCTION Dos16MemAvail(* ------------- *);
  2845.     EXTERNAL 'DosCalls' INDEX 127;
  2846.  
  2847.   FUNCTION DosPhysicalDisk(* ------------- *);
  2848.     EXTERNAL 'DosCalls' INDEX 129;
  2849.   FUNCTION Dos16PhysicalDisk(* ------------- *);
  2850.     EXTERNAL 'DosCalls' INDEX 129;
  2851.  
  2852.   FUNCTION DosGetCP(* ------------- *);
  2853.     EXTERNAL 'DosCalls' INDEX 130;
  2854.   FUNCTION Dos16GetCP(* ------------- *);
  2855.     EXTERNAL 'DosCalls' INDEX 130;
  2856.  
  2857. (* ====================================================== *)
  2858.  
  2859.   FUNCTION DosSendSignal(* ------------- *);
  2860.     EXTERNAL 'DosCalls' INDEX 134;
  2861.   FUNCTION Dos16SendSignal(* ------------- *);
  2862.     EXTERNAL 'DosCalls' INDEX 134;
  2863. {
  2864.   FUNCTION DosHugeShift(* ------------- *);
  2865.     External 'DosCalls' INDEX 135;
  2866.   FUNCTION Dos16HugeShift(* ------------- *);
  2867.     External 'DosCalls' INDEX 135;
  2868.  
  2869.   FUNCTION DosHugeIncr(* ------------- *);
  2870.     External 'DosCalls' INDEX 136;
  2871.   FUNCTION Dos16HugeIncr(* ------------- *);
  2872.     External 'DosCalls' INDEX 136;
  2873. }
  2874.   FUNCTION DosRead(* ------------- *);
  2875.     EXTERNAL 'DosCalls' INDEX 137;
  2876.   FUNCTION Dos16Read(* ------------- *);
  2877.     EXTERNAL 'DosCalls' INDEX 137;
  2878.  
  2879.   PROCEDURE DosWrite;   EXTERNAL 'DosCalls' INDEX 138;
  2880.   PROCEDURE Dos16Write; EXTERNAL 'DosCalls' INDEX 138;
  2881.  
  2882.  
  2883.   FUNCTION DosErrClass(* ------------- *);
  2884.     EXTERNAL 'DosCalls' INDEX 139;
  2885.   FUNCTION Dos16ErrClass(* ------------- *);
  2886.     EXTERNAL 'DosCalls' INDEX 139;
  2887.  
  2888.   FUNCTION DosSemRequest(* ------------- *);
  2889.     EXTERNAL 'DosCalls' INDEX 140;
  2890.   FUNCTION Dos16SemRequest(* ------------- *);
  2891.     EXTERNAL 'DosCalls' INDEX 140;
  2892.  
  2893.   FUNCTION DosSemClear(* ------------- *);
  2894.     EXTERNAL 'DosCalls' INDEX 141;
  2895.   FUNCTION Dos16SemClear(* ------------- *);
  2896.     EXTERNAL 'DosCalls' INDEX 141;
  2897.  
  2898.   FUNCTION DosSemWait(* ------------- *);
  2899.     EXTERNAL 'DosCalls' INDEX 142;
  2900.   FUNCTION Dos16SemWait(* ------------- *);
  2901.     EXTERNAL 'DosCalls' INDEX 142;
  2902.  
  2903.   FUNCTION DosSemSet(* ------------- *);
  2904.     EXTERNAL 'DosCalls' INDEX 143;
  2905.   FUNCTION Dos16SemSet(* ------------- *);
  2906.     EXTERNAL 'DosCalls' INDEX 143;
  2907.  
  2908.   FUNCTION DosExecPgm(* ------------- *);
  2909.     EXTERNAL 'DosCalls' INDEX 144;
  2910.   FUNCTION Dos16ExecPgm(* ------------- *);
  2911.     EXTERNAL 'DosCalls' INDEX 144;
  2912.  
  2913.   FUNCTION DosCreateThread;   EXTERNAL 'DosCalls' INDEX 145;
  2914.   FUNCTION Dos16CreateThread; EXTERNAL 'DosCalls' INDEX 145;
  2915.  
  2916.   FUNCTION DosSubSet(* ------------- *);
  2917.     EXTERNAL 'DosCalls' INDEX 146;
  2918.   FUNCTION Dos16SubSet(* ------------- *);
  2919.     EXTERNAL 'DosCalls' INDEX 146;
  2920.  
  2921.   FUNCTION DosSubAlloc(* ------------- *);
  2922.     EXTERNAL 'DosCalls' INDEX 147;
  2923.   FUNCTION Dos16SubAlloc(* ------------- *);
  2924.     EXTERNAL 'DosCalls' INDEX 147;
  2925.  
  2926.   FUNCTION DosSubFree(* ------------- *);
  2927.     EXTERNAL 'DosCalls' INDEX 148;
  2928.   FUNCTION Dos16SubFree(* ------------- *);
  2929.     EXTERNAL 'DosCalls' INDEX 148;
  2930.  
  2931.   FUNCTION DosReadAsync(* ------------- *);
  2932.     EXTERNAL 'DosCalls' INDEX 149;
  2933.   FUNCTION Dos16ReadAsync(* ------------- *);
  2934.     EXTERNAL 'DosCalls' INDEX 149;
  2935.  
  2936.   FUNCTION DosWriteAsync(* ------------- *);
  2937.     EXTERNAL 'DosCalls' INDEX 150;
  2938.   FUNCTION Dos16WriteAsync(* ------------- *);
  2939.     EXTERNAL 'DosCalls' INDEX 150;
  2940.  
  2941.   FUNCTION DosSearchPath(* ------------- *);
  2942.     EXTERNAL 'DosCalls' INDEX 151;
  2943.   FUNCTION Dos16SearchPath(* ------------- *);
  2944.     EXTERNAL 'DosCalls' INDEX 151;
  2945.  
  2946.   FUNCTION DosScanEnv(* ------------- *);
  2947.     EXTERNAL 'DosCalls' INDEX 152;
  2948.   FUNCTION Dos16ScanEnv(* ------------- *);
  2949.     EXTERNAL 'DosCalls' INDEX 152;
  2950.  
  2951.   FUNCTION DosSetCP(* ------------- *);
  2952.     EXTERNAL 'DosCalls' INDEX 153;
  2953.   FUNCTION Dos16SetCP(* ------------- *);
  2954.     EXTERNAL 'DosCalls' INDEX 153;
  2955.  
  2956.   FUNCTION DosGetResource(* ------------- *);
  2957.     EXTERNAL 'DosCalls' INDEX 155;
  2958.   FUNCTION Dos16GetResource(* ------------- *);
  2959.     EXTERNAL 'DosCalls' INDEX 155;
  2960.  
  2961.   FUNCTION DosGetPPID(* ------------- *);
  2962.     EXTERNAL 'DosCalls' INDEX 156;
  2963.   FUNCTION Dos16GetPPID(* ------------- *);
  2964.     EXTERNAL 'DosCalls' INDEX 156;
  2965.  
  2966.   FUNCTION DosCallback(* ------------- *);
  2967.     EXTERNAL 'DosCalls' INDEX 157;
  2968.   FUNCTION Dos16Callback(* ------------- *);
  2969.     EXTERNAL 'DosCalls' INDEX 157;
  2970.  
  2971.   FUNCTION DosR2StackRealloc(* ------------- *);
  2972.     EXTERNAL 'DosCalls' INDEX 160;
  2973.   FUNCTION Dos16R2StackRealloc(* ------------- *);
  2974.     EXTERNAL 'DosCalls' INDEX 160;
  2975.  
  2976.   FUNCTION DosFSRamSemRequest(* ------------- *);
  2977.     EXTERNAL 'DosCalls' INDEX 161;
  2978.   FUNCTION Dos16FSRamSemRequest(* ------------- *);
  2979.     EXTERNAL 'DosCalls' INDEX 161;
  2980.  
  2981.   FUNCTION DosFSRamSemClear(* ------------- *);
  2982.     EXTERNAL 'DosCalls' INDEX 162;
  2983.   FUNCTION Dos16FSRamSemClear(* ------------- *);
  2984.     EXTERNAL 'DosCalls' INDEX 162;
  2985.  
  2986.   FUNCTION DosQAppType(* ------------- *);
  2987.     EXTERNAL 'DosCalls' INDEX 163;
  2988.   FUNCTION Dos16QAppType(* ------------- *);
  2989.     EXTERNAL 'DosCalls' INDEX 163;
  2990.  
  2991.   FUNCTION DosSetProcCP(* ------------- *);
  2992.     EXTERNAL 'DosCalls' INDEX 164;
  2993.   FUNCTION Dos16SetProcCP(* ------------- *);
  2994.     EXTERNAL 'DosCalls' INDEX 164;
  2995. {
  2996.   FUNCTION DosDynamicTrace(* ------------- *);
  2997.     External 'DosCalls' INDEX 165;
  2998.   FUNCTION Dos16DynamicTrace(* ------------- *);
  2999.     External 'DosCalls' INDEX 165;
  3000. }
  3001.   FUNCTION DosQSysInfo(* ------------- *);
  3002.     EXTERNAL 'DosCalls' INDEX 166;
  3003.   FUNCTION Dos16QSysInfo(* ------------- *);
  3004.     EXTERNAL 'DosCalls' INDEX 166;
  3005.  
  3006. (* ====================================================== *)
  3007.  
  3008.   FUNCTION DosFSAttach(* ------------- *);
  3009.     EXTERNAL 'DosCalls' INDEX 181;
  3010.   FUNCTION Dos16FSAttach(* ------------- *);
  3011.     EXTERNAL 'DosCalls' INDEX 181;
  3012.  
  3013.   FUNCTION DosQFSAttach(* ------------- *);
  3014.     EXTERNAL 'DosCalls' INDEX 182;
  3015.   FUNCTION Dos16QFSAttach(* ------------- *);
  3016.     EXTERNAL 'DosCalls' INDEX 182;
  3017.  
  3018.   FUNCTION DosFSCtl(* ------------- *);
  3019.     EXTERNAL 'DosCalls' INDEX 183;
  3020.   FUNCTION Dos16FSCtl(* ------------- *);
  3021.     EXTERNAL 'DosCalls' INDEX 183;
  3022.  
  3023.   FUNCTION DosFindFirst2(* ------------- *);
  3024.     EXTERNAL 'DosCalls' INDEX 184;
  3025.   FUNCTION Dos16FindFirst2(* ------------- *);
  3026.     EXTERNAL 'DosCalls' INDEX 184;
  3027.   FUNCTION DosMkDir2(* ------------- *);
  3028.  
  3029.     EXTERNAL 'DosCalls' INDEX 185;
  3030.   FUNCTION Dos16MkDir2(* ------------- *);
  3031.     EXTERNAL 'DosCalls' INDEX 185;
  3032.  
  3033.   FUNCTION DosFileIO(* ------------- *);
  3034.     EXTERNAL 'DosCalls' INDEX 186;
  3035.   FUNCTION Dos16FileIO(* ------------- *);
  3036.     EXTERNAL 'DosCalls' INDEX 186;
  3037. {
  3038.   FUNCTION DosFindNotifyClose(* ------------- *);
  3039.     External 'DosCalls' INDEX 187;
  3040.   FUNCTION Dos16FindNotifyClose(* ------------- *);
  3041.     External 'DosCalls' INDEX 187;
  3042.  
  3043.   FUNCTION DosFindNotifyFirst(* ------------- *);
  3044.     External 'DosCalls' INDEX 188;
  3045.   FUNCTION Dos16FindNotifyFirst(* ------------- *);
  3046.     External 'DosCalls' INDEX 188;
  3047.  
  3048.   FUNCTION DosFindNotifyNext(* ------------- *);
  3049.     External 'DosCalls' INDEX 189;
  3050.   FUNCTION Dos16FindNotifyNext(* ------------- *);
  3051.     External 'DosCalls' INDEX 189;
  3052. }
  3053.   FUNCTION DosEditName(* ------------- *);
  3054.     EXTERNAL 'DosCalls' INDEX 191;
  3055.   FUNCTION Dos16EditName(* ------------- *);
  3056.     EXTERNAL 'DosCalls' INDEX 191;
  3057.  
  3058.   FUNCTION DosOplockRelease;   EXTERNAL 'DosCalls' INDEX 198;
  3059.   FUNCTION Dos16OplockRelease; EXTERNAL 'DosCalls' INDEX 198;
  3060.  
  3061.   FUNCTION DosOplockWait;   EXTERNAL 'DosCalls' INDEX 198;
  3062.   FUNCTION Dos16OplockWait; EXTERNAL 'DosCalls' INDEX 198;
  3063.  
  3064.   FUNCTION DosCopy(* ------------- *);
  3065.     EXTERNAL 'DosCalls' INDEX 201;
  3066.   FUNCTION Dos16Copy(* ------------- *);
  3067.     EXTERNAL 'DosCalls' INDEX 201;
  3068. {
  3069.   FUNCTION DosForceDelete(* ------------- *);
  3070.     External 'DosCalls' INDEX 203;
  3071.   FUNCTION Dos16ForceDelete(* ------------- *);
  3072.     External 'DosCalls' INDEX 203;
  3073. }
  3074.   FUNCTION DosEnumAttribute(* ------------- *);
  3075.     EXTERNAL 'DosCalls' INDEX 204;
  3076.   FUNCTION Dos16EnumAttribute(* ------------- *);
  3077.     EXTERNAL 'DosCalls' INDEX 204;
  3078.  
  3079.   FUNCTION DosShutdown(* ------------- *);
  3080.     EXTERNAL 'DosCalls' INDEX 206;
  3081.   FUNCTION Dos16Shutdown(* ------------- *);
  3082.     EXTERNAL 'DosCalls' INDEX 206;
  3083.  
  3084.   FUNCTION DosGetResource2(* ------------- *);
  3085.     EXTERNAL 'DosCalls' INDEX 207;
  3086.   FUNCTION Dos16GetResource2(* ------------- *);
  3087.     EXTERNAL 'DosCalls' INDEX 207;
  3088.   FUNCTION DosFreeResource(* ------------- *);
  3089.     EXTERNAL 'DosCalls' INDEX 208;
  3090.   FUNCTION Dos16FreeResource(* ------------- *);
  3091.     EXTERNAL 'DosCalls' INDEX 208;
  3092.  
  3093.  
  3094. (* ====================================================== *)
  3095. (*                         32 Bit                         *)
  3096. {                     nicht implementiert
  3097.   FUNCTION Dos32SetMaxFH(* ------------- *);
  3098.     External 'DosCalls' INDEX 209;
  3099.  
  3100.   FUNCTION Dos32SetVerify(* ------------- *);
  3101.     External 'DosCalls' INDEX 210;
  3102.  
  3103.   FUNCTION Dos32ErrClass(* ------------- *);
  3104.     External 'DosCalls' INDEX 211;
  3105.  
  3106.   FUNCTION Dos32Error(* ------------- *);
  3107.     External 'DosCalls' INDEX 212;
  3108. }
  3109.  
  3110. (* ====================================================== *)
  3111. (*                         16 Bit                         *)
  3112. {
  3113.   FUNCTION DosMaxPathLen(* ------------- *);
  3114.     External 'DosCalls' INDEX 214;
  3115.   FUNCTION Dos16MaxPathLen(* ------------- *);
  3116.     External 'DosCalls' INDEX 214;
  3117.  
  3118.   FUNCTION DosPageSize(* ------------- *);
  3119.     External 'DosCalls' INDEX 215;
  3120.   FUNCTION Dos16PageSize(* ------------- *);
  3121.     External 'DosCalls' INDEX 215;
  3122.  
  3123.   FUNCTION DosLocalInfo(* ------------- *);
  3124.     External 'DosCalls' INDEX 216;
  3125.   FUNCTION Dos16LocalInfo(* ------------- *);
  3126.     External 'DosCalls' INDEX 216;
  3127.  
  3128.   FUNCTION DosGlobalInfo(* ------------- *);
  3129.     External 'DosCalls' INDEX 217;
  3130.   FUNCTION Dos16GlobalInfo(* ------------- *);
  3131.     External 'DosCalls' INDEX 217;
  3132. }
  3133. (* ====================================================== *)
  3134. (*                         32 Bit                         *)
  3135. {                   nicht implementiert
  3136.   FUNCTION Dos32SetFileInfo(* ------------- *);
  3137.     External 'DosCalls' INDEX 218;
  3138.  
  3139.   FUNCTION Dos32SetPathInfo(* ------------- *);
  3140.     External 'DosCalls' INDEX 219;
  3141.  
  3142.   FUNCTION Dos32SetDefaultDisk(* ------------- *);
  3143.     External 'DosCalls' INDEX 220;
  3144.  
  3145.   FUNCTION Dos32SetFHState(* ------------- *);
  3146.     External 'DosCalls' INDEX 221;
  3147.  
  3148.   FUNCTION Dos32SetFSInfo(* ------------- *);
  3149.     External 'DosCalls' INDEX 222;
  3150.  
  3151.   FUNCTION Dos32QueryPathInfo(* ------------- *);
  3152.     External 'DosCalls' INDEX 223;
  3153.  
  3154.   FUNCTION Dos32QueryHType(* ------------- *);
  3155.     External 'DosCalls' INDEX 224;
  3156.  
  3157.   FUNCTION Dos32QueryVerify(* ------------- *);
  3158.     External 'DosCalls' INDEX 225;
  3159.  
  3160.   FUNCTION Dos32DeleteDir(* ------------- *);
  3161.     External 'DosCalls' INDEX 226;
  3162.  
  3163.   FUNCTION Dos32ScanEnv(* ------------- *);
  3164.     External 'DosCalls' INDEX 227;
  3165.  
  3166.   FUNCTION Dos32SearchPath(* ------------- *);
  3167.     External 'DosCalls' INDEX 228;
  3168.  
  3169.   FUNCTION Dos32Sleep(* ------------- *);
  3170.     External 'DosCalls' INDEX 229;
  3171.  
  3172.   FUNCTION Dos32GetDateTime(* ------------- *);
  3173.     External 'DosCalls' INDEX 230;
  3174.  
  3175.   FUNCTION Dos32DevConfig(* ------------- *);
  3176.     External 'DosCalls' INDEX 231;
  3177.  
  3178.   FUNCTION Dos32EnterCritSec(* ------------- *);
  3179.     External 'DosCalls' INDEX 232;
  3180.  
  3181.   FUNCTION Dos32ExitCritSec(* ------------- *);
  3182.     External 'DosCalls' INDEX 233;
  3183.  
  3184.   FUNCTION Dos32Exit(* ------------- *);
  3185.     External 'DosCalls' INDEX 234;
  3186.  
  3187.   FUNCTION Dos32KillProcess(* ------------- *);
  3188.     External 'DosCalls' INDEX 235;
  3189.  
  3190.   FUNCTION Dos32SetPriority(* ------------- *);
  3191.     External 'DosCalls' INDEX 236;
  3192.  
  3193.   FUNCTION Dos32ResumeThread(* ------------- *);
  3194.     External 'DosCalls' INDEX 237;
  3195.  
  3196.   FUNCTION Dos32SuspendThread(* ------------- *);
  3197.     External 'DosCalls' INDEX 238;
  3198.  
  3199.   FUNCTION Dos32CreatePipe(* ------------- *);
  3200.     External 'DosCalls' INDEX 239;
  3201.  
  3202.   FUNCTION Dos32CallNPipe(* ------------- *);
  3203.     External 'DosCalls' INDEX 240;
  3204.  
  3205.   FUNCTION Dos32ConnectNPipe(* ------------- *);
  3206.     External 'DosCalls' INDEX 241;
  3207.  
  3208.   FUNCTION Dos32DisConnectNPipe(* ------------- *);
  3209.     External 'DosCalls' INDEX 242;
  3210.  
  3211.   FUNCTION Dos32CreateNPipe(* ------------- *);
  3212.     External 'DosCalls' INDEX 243;
  3213.  
  3214.   FUNCTION Dos32PeekNPipe(* ------------- *);
  3215.     External 'DosCalls' INDEX 244;
  3216.  
  3217.   FUNCTION Dos32QueryNPHState(* ------------- *);
  3218.     External 'DosCalls' INDEX 245;
  3219.  
  3220.   FUNCTION Dos32RawReadNPipe(* ------------- *);
  3221.     External 'DosCalls' INDEX 246;
  3222.  
  3223.   FUNCTION Dos32RawWriteNPipe(* ------------- *);
  3224.     External 'DosCalls' INDEX 247;
  3225.  
  3226.   FUNCTION Dos32QueryNPipeInfo(* ------------- *);
  3227.     External 'DosCalls' INDEX 248;
  3228.  
  3229.   FUNCTION Dos32QueryNPipesemState(* ------------- *);
  3230.     External 'DosCalls' INDEX 249;
  3231.  
  3232.   FUNCTION Dos32SetNPHState(* ------------- *);
  3233.     External 'DosCalls' INDEX 250;
  3234.  
  3235.   FUNCTION Dos32SetNPipesem(* ------------- *);
  3236.     External 'DosCalls' INDEX 251;
  3237.  
  3238.   FUNCTION Dos32TransactNPipe(* ------------- *);
  3239.     External 'DosCalls' INDEX 252;
  3240.  
  3241.   FUNCTION Dos32WaitNPipe(* ------------- *);
  3242.     External 'DosCalls' INDEX 253;
  3243.  
  3244.   FUNCTION Dos32ReSetBuffer(* ------------- *);
  3245.     External 'DosCalls' INDEX 254;
  3246.  
  3247.   FUNCTION Dos32SetCurrentDir(* ------------- *);
  3248.     External 'DosCalls' INDEX 255;
  3249.  
  3250.   FUNCTION Dos32SetFilePtr(* ------------- *);
  3251.     External 'DosCalls' INDEX 256;
  3252.  
  3253.   FUNCTION Dos32Close(* ------------- *);
  3254.     External 'DosCalls' INDEX 257;
  3255.  
  3256.   FUNCTION Dos32Copy(* ------------- *);
  3257.     External 'DosCalls' INDEX 258;
  3258.  
  3259.   FUNCTION Dos32Delete(* ------------- *);
  3260.     External 'DosCalls' INDEX 259;
  3261.  
  3262.   FUNCTION Dos32DupHandle(* ------------- *);
  3263.     External 'DosCalls' INDEX 260;
  3264.  
  3265.   FUNCTION Dos32EditName(* ------------- *);
  3266.     External 'DosCalls' INDEX 261;
  3267.  
  3268.   FUNCTION Dos32FindClose(* ------------- *);
  3269.     External 'DosCalls' INDEX 263;
  3270.  
  3271.   FUNCTION Dos32FindFirst(* ------------- *);
  3272.     External 'DosCalls' INDEX 264;
  3273.  
  3274.   FUNCTION Dos32FindNext(* ------------- *);
  3275.     External 'DosCalls' INDEX 265;
  3276. }
  3277.  
  3278. (* ====================================================== *)
  3279. (*                         16 Bit                         *)
  3280. {
  3281.   FUNCTION DosOpenVDD(* ------------- *);
  3282.     External 'DosCalls' INDEX 266;
  3283.   FUNCTION Dos16OpenVDD(* ------------- *);
  3284.     External 'DosCalls' INDEX 266;
  3285.  
  3286.   FUNCTION DosRequestVDD(* ------------- *);
  3287.     External 'DosCalls' INDEX 267;
  3288.   FUNCTION Dos16RequestVDD(* ------------- *);
  3289.     External 'DosCalls' INDEX 267;
  3290.  
  3291.   FUNCTION DosCloseVDD(* ------------- *);
  3292.     External 'DosCalls' INDEX 268;
  3293.   FUNCTION Dos16CloseVDD(* ------------- *);
  3294.     External 'DosCalls' INDEX 268;
  3295. }
  3296. (* ====================================================== *)
  3297. (*                         32 Bit                         *)
  3298. {                    nicht implementiert
  3299.  
  3300.   FUNCTION Dos32FSAttach(* ------------- *);
  3301.     External 'DosCalls' INDEX 269;
  3302.  
  3303.   FUNCTION Dos32CreateDir(* ------------- *);
  3304.     External 'DosCalls' INDEX 270;
  3305.  
  3306.   FUNCTION Dos32Move(* ------------- *);
  3307.     External 'DosCalls' INDEX 271;
  3308.  
  3309.   FUNCTION Dos32SetFileSize(* ------------- *);
  3310.     External 'DosCalls' INDEX 272;
  3311.  
  3312.   FUNCTION Dos32Open(* ------------- *);
  3313.     External 'DosCalls' INDEX 273;
  3314.  
  3315.   FUNCTION Dos32QueryCurrentDir(* ------------- *);
  3316.     External 'DosCalls' INDEX 274;
  3317.  
  3318.   FUNCTION Dos32QueryCurrentDisk(* ------------- *);
  3319.     External 'DosCalls' INDEX 275;
  3320.  
  3321.   FUNCTION Dos32QueryFHState(* ------------- *);
  3322.     External 'DosCalls' INDEX 276;
  3323.  
  3324.   FUNCTION Dos32QueryFSAttach(* ------------- *);
  3325.     External 'DosCalls' INDEX 277;
  3326.  
  3327.   FUNCTION Dos32QueryFSInfo(* ------------- *);
  3328.     External 'DosCalls' INDEX 278;
  3329.  
  3330.   FUNCTION Dos32QueryFileInfo(* ------------- *);
  3331.     External 'DosCalls' INDEX 279;
  3332.  
  3333.   FUNCTION Dos32WaitChild(* ------------- *);
  3334.     External 'DosCalls' INDEX 280;
  3335.  
  3336.   FUNCTION Dos32Read(* ------------- *);
  3337.     External 'DosCalls' INDEX 281;
  3338.  
  3339.   FUNCTION Dos32Write(* ------------- *);
  3340.     External 'DosCalls' INDEX 282;
  3341.  
  3342.   FUNCTION Dos32ExecPgm(* ------------- *);
  3343.     External 'DosCalls' INDEX 283;
  3344.  
  3345.   FUNCTION Dos32DevIOCtl(* ------------- *);
  3346.     External 'DosCalls' INDEX 284;
  3347.  
  3348.   FUNCTION Dos32FSCtl(* ------------- *);
  3349.     External 'DosCalls' INDEX 285;
  3350.  
  3351.   FUNCTION Dos32Beep(* ------------- *);
  3352.     External 'DosCalls' INDEX 286;
  3353.  
  3354.   FUNCTION Dos32PhysicalDisk(* ------------- *);
  3355.     External 'DosCalls' INDEX 287;
  3356.  
  3357.   FUNCTION Dos32SetCp(* ------------- *);
  3358.     External 'DosCalls' INDEX 288;
  3359.  
  3360.   FUNCTION Dos32SetProcessCp(* ------------- *);
  3361.     External 'DosCalls' INDEX 289;
  3362.  
  3363.   FUNCTION Dos32StopTimer(* ------------- *);
  3364.     External 'DosCalls' INDEX 290;
  3365.  
  3366.   FUNCTION Dos32QueryCp(* ------------- *);
  3367.     External 'DosCalls' INDEX 291;
  3368.  
  3369.   FUNCTION Dos32SetDateTime(* ------------- *);
  3370.     External 'DosCalls' INDEX 292;
  3371.  
  3372. (* ====================================================== *)
  3373.  
  3374.   FUNCTION Dos32ExitList(* ------------- *);
  3375.     External 'DosCalls' INDEX 296;
  3376.  
  3377. (* ====================================================== *)
  3378.  
  3379.   FUNCTION Dos32AllocMem(* ------------- *);
  3380.     External 'DosCalls' INDEX 299;
  3381.  
  3382.   FUNCTION Dos32AllocSharedMem(* ------------- *);
  3383.     External 'DosCalls' INDEX 300;
  3384.  
  3385.   FUNCTION Dos32GetNamedSharedMem(* ------------- *);
  3386.     External 'DosCalls' INDEX 301;
  3387.  
  3388.   FUNCTION Dos32GetSharedMem(* ------------- *);
  3389.     External 'DosCalls' INDEX 302;
  3390.  
  3391.   FUNCTION Dos32GiveSharedMem(* ------------- *);
  3392.     External 'DosCalls' INDEX 303;
  3393.  
  3394.   FUNCTION Dos32FreeMem(* ------------- *);
  3395.     External 'DosCalls' INDEX 304;
  3396.  
  3397.   FUNCTION Dos32SetMem(* ------------- *);
  3398.     External 'DosCalls' INDEX 305;
  3399.  
  3400.   FUNCTION Dos32QueryMem(* ------------- *);
  3401.     External 'DosCalls' INDEX 306;
  3402.  
  3403.   FUNCTION Dos32OpenVDD(* ------------- *);
  3404.     External 'DosCalls' INDEX 308;
  3405.  
  3406.   FUNCTION Dos32RequestVDD(* ------------- *);
  3407.     External 'DosCalls' INDEX 309;
  3408.  
  3409.   FUNCTION Dos32CloseVDD(* ------------- *);
  3410.     External 'DosCalls' INDEX 310;
  3411.  
  3412.   FUNCTION Dos32CreateThread(* ------------- *);
  3413.     External 'DosCalls' INDEX 311;
  3414.  
  3415.   FUNCTION Dos32GetInfoBlocks(* ------------- *);
  3416.     External 'DosCalls' INDEX 312;
  3417.  
  3418.   FUNCTION Dos32DynamicTrace(* ------------- *);
  3419.     External 'DosCalls' INDEX 316;
  3420.  
  3421.   FUNCTION Dos32Debug(* ------------- *);
  3422.     External 'DosCalls' INDEX 317;
  3423.  
  3424.   FUNCTION Dos32LoadModule(* ------------- *);
  3425.     External 'DosCalls' INDEX 318;
  3426.  
  3427.   FUNCTION Dos32QueryModuleHandle(* ------------- *);
  3428.     External 'DosCalls' INDEX 319;
  3429.  
  3430.   FUNCTION Dos32QueryModuleName(* ------------- *);
  3431.     External 'DosCalls' INDEX 320;
  3432.  
  3433.   FUNCTION Dos32QueryProcAddr(* ------------- *);
  3434.     External 'DosCalls' INDEX 321;
  3435.  
  3436.   FUNCTION Dos32FreeModule(* ------------- *);
  3437.     External 'DosCalls' INDEX 322;
  3438.  
  3439.   FUNCTION Dos32QueryAppType(* ------------- *);
  3440.     External 'DosCalls' INDEX 323;
  3441.  
  3442.   FUNCTION Dos32CreateEventSem(* ------------- *);
  3443.     External 'DosCalls' INDEX 324;
  3444.  
  3445.   FUNCTION Dos32OpenEventSem(* ------------- *);
  3446.     External 'DosCalls' INDEX 325;
  3447.  
  3448.   FUNCTION Dos32CloseEventSem(* ------------- *);
  3449.     External 'DosCalls' INDEX 326;
  3450.  
  3451.   FUNCTION Dos32ReSetEventSem(* ------------- *);
  3452.     External 'DosCalls' INDEX 327;
  3453.  
  3454.   FUNCTION Dos32PostEventSem(* ------------- *);
  3455.     External 'DosCalls' INDEX 328;
  3456.  
  3457.   FUNCTION Dos32WaitEventSem(* ------------- *);
  3458.     External 'DosCalls' INDEX 329;
  3459.  
  3460.   FUNCTION Dos32QueryEventSem(* ------------- *);
  3461.     External 'DosCalls' INDEX 330;
  3462.  
  3463.   FUNCTION Dos32CreateMutexSem(* ------------- *);
  3464.     External 'DosCalls' INDEX 331;
  3465.  
  3466.   FUNCTION Dos32OpenMutexSem(* ------------- *);
  3467.     External 'DosCalls' INDEX 332;
  3468.  
  3469.   FUNCTION Dos32CloseMutexSem(* ------------- *);
  3470.     External 'DosCalls' INDEX 333;
  3471.  
  3472.   FUNCTION Dos32RequestMutexSem(* ------------- *);
  3473.     External 'DosCalls' INDEX 334;
  3474.  
  3475.   FUNCTION Dos32ReleaseMutexSem(* ------------- *);
  3476.     External 'DosCalls' INDEX 335;
  3477.  
  3478.   FUNCTION Dos32QueryMutexSem(* ------------- *);
  3479.     External 'DosCalls' INDEX 336;
  3480.  
  3481.   FUNCTION Dos32CreateMuxWaitSem(* ------------- *);
  3482.     External 'DosCalls' INDEX 337;
  3483.  
  3484.   FUNCTION Dos32OpenMuxWaitSem(* ------------- *);
  3485.     External 'DosCalls' INDEX 338;
  3486.  
  3487.   FUNCTION Dos32CloseMuxWaitSem(* ------------- *);
  3488.     External 'DosCalls' INDEX 339;
  3489.  
  3490.   FUNCTION Dos32WaitMuxWaitSem(* ------------- *);
  3491.     External 'DosCalls' INDEX 340;
  3492.  
  3493.   FUNCTION Dos32AddMuxWaitSem(* ------------- *);
  3494.     External 'DosCalls' INDEX 341;
  3495.  
  3496.   FUNCTION Dos32DeleteMuxWaitSem(* ------------- *);
  3497.     External 'DosCalls' INDEX 342;
  3498.  
  3499.   FUNCTION Dos32QueryMuxWaitSem(* ------------- *);
  3500.     External 'DosCalls' INDEX 343;
  3501.  
  3502.   FUNCTION Dos32SubSetMem(* ------------- *);
  3503.     External 'DosCalls' INDEX 344;
  3504.  
  3505.   FUNCTION Dos32SubAllocMem(* ------------- *);
  3506.     External 'DosCalls' INDEX 345;
  3507.  
  3508.   FUNCTION Dos32SubFreeMem(* ------------- *);
  3509.     External 'DosCalls' INDEX 346;
  3510.  
  3511.   FUNCTION Dos32SubUnSetMem(* ------------- *);
  3512.     External 'DosCalls' INDEX 347;
  3513.  
  3514.   FUNCTION Dos32QuerySysInfo(* ------------- *);
  3515.     External 'DosCalls' INDEX 348;
  3516.  
  3517.   FUNCTION Dos32WaitThread(* ------------- *);
  3518.     External 'DosCalls' INDEX 349;
  3519.  
  3520.   FUNCTION Dos32AsyncTimer(* ------------- *);
  3521.     External 'DosCalls' INDEX 350;
  3522.  
  3523.   FUNCTION Dos32StartTimer(* ------------- *);
  3524.     External 'DosCalls' INDEX 351;
  3525.  
  3526.   FUNCTION Dos32GetResource(* ------------- *);
  3527.     External 'DosCalls' INDEX 352;
  3528.  
  3529.   FUNCTION Dos32FreeResource(* ------------- *);
  3530.     External 'DosCalls' INDEX 353;
  3531.  
  3532.   FUNCTION Dos32SetExceptionHandler(* ------------- *);
  3533.     External 'DosCalls' INDEX 354;
  3534.  
  3535.   FUNCTION Dos32UnSetExceptionHandler(* ------------- *);
  3536.     External 'DosCalls' INDEX 355;
  3537.  
  3538.   FUNCTION Dos32RaiseException(* ------------- *);
  3539.     External 'DosCalls' INDEX 356;
  3540.  
  3541.   FUNCTION Dos32UnwindException(* ------------- *);
  3542.     External 'DosCalls' INDEX 357;
  3543.  
  3544. (* ====================================================== *)
  3545.  
  3546.   FUNCTION Dos32TmrQueryFreq(* ------------- *);
  3547.     External 'DosCalls' INDEX 362;
  3548.  
  3549.   FUNCTION Dos32TmrQueryTime(* ------------- *);
  3550.     External 'DosCalls' INDEX 363;
  3551.  
  3552.   FUNCTION Dos32RegisterPerfCtrs(* ------------- *);
  3553.     External 'DosCalls' INDEX 367;
  3554.  
  3555. (* ====================================================== *)
  3556.  
  3557.   FUNCTION Dos32EnumAttribute(* ------------- *);
  3558.     External 'DosCalls' INDEX 372;
  3559.  
  3560.   FUNCTION Dos32QueryDosProperty(* ------------- *);
  3561.     External 'DosCalls' INDEX 373;
  3562.  
  3563.   FUNCTION Dos32SetDosProperty(* ------------- *);
  3564.     External 'DosCalls' INDEX 374;
  3565.  
  3566.   FUNCTION DosQueryDosProperty(* ------------- *);
  3567.     External 'DosCalls' INDEX 375;
  3568.   FUNCTION Dos16QueryDosProperty(* ------------- *);
  3569.     External 'DosCalls' INDEX 375;
  3570.  
  3571.   FUNCTION DosSetDosProperty(* ------------- *);
  3572.     External 'DosCalls' INDEX 376;
  3573.   FUNCTION Dos16SetDosProperty(* ------------- *);
  3574.     External 'DosCalls' INDEX 376;
  3575.  
  3576.   FUNCTION Dos32Profile(* ------------- *);
  3577.     External 'DosCalls' INDEX 377;
  3578.  
  3579.   FUNCTION Dos32SetSignalExceptionFocus(* ------------- *);
  3580.     External 'DosCalls' INDEX 378;
  3581.  
  3582.   FUNCTION Dos32SendSignalException(* ------------- *);
  3583.     External 'DosCalls' INDEX 379;
  3584.  
  3585.   FUNCTION Dos32EnterMustComplete(* ------------- *);
  3586.     External 'DosCalls' INDEX 380;
  3587.  
  3588.   FUNCTION Dos32ExitMustComplete(* ------------- *);
  3589.     External 'DosCalls' INDEX 381;
  3590.  
  3591.   FUNCTION Dos32SetRelMaxFH(* ------------- *);
  3592.     External 'DosCalls' INDEX 382;
  3593.  
  3594. (* ====================================================== *)
  3595.  
  3596.   FUNCTION Dos32Shutdown(* ------------- *);
  3597.     External 'DosCalls' INDEX 415;
  3598.  
  3599.   FUNCTION Dos32ReplaceModule(* ------------- *);
  3600.     External 'DosCalls' INDEX 417;
  3601.  
  3602.   FUNCTION Dos32AcknowledgeSignalExc(* ------------- *);
  3603.     External 'DosCalls' INDEX 418;
  3604.  
  3605.   FUNCTION Dos32TIB(* ------------- *);
  3606.     External 'DosCalls' INDEX 419;
  3607. }
  3608.  
  3609. (* ====================================================== *)
  3610. (*                         16 Bit                         *)
  3611. {
  3612.   FUNCTION DosTMRQueryFreq(* ------------- *);
  3613.     External 'DosCalls' INDEX 420;
  3614.   FUNCTION Dos16TMRQueryFreq(* ------------- *);
  3615.     External 'DosCalls' INDEX 420;
  3616.  
  3617.   FUNCTION DosTMRQueryTime(* ------------- *);
  3618.     External 'DosCalls' INDEX 421;
  3619.   FUNCTION Dos16TMRQueryTime(* ------------- *);
  3620.     External 'DosCalls' INDEX 421;
  3621.  
  3622.   FUNCTION DosRegisterPerfctRS(* ------------- *);
  3623.     External 'DosCalls' INDEX 422;
  3624.   FUNCTION Dos16RegisterPerfctRS(* ------------- *);
  3625.     External 'DosCalls' INDEX 422;
  3626.  
  3627.   FUNCTION DosFlatToSel(* ------------- *);
  3628.     External 'DosCalls' INDEX 423;
  3629.   FUNCTION Dos16FlatToSel(* ------------- *);
  3630.     External 'DosCalls' INDEX 423;
  3631.  
  3632.   FUNCTION DosSelToFlat(* ------------- *);
  3633.     External 'DosCalls' INDEX 424;
  3634.   FUNCTION Dos16SelToFlat(* ------------- *);
  3635.     External 'DosCalls' INDEX 424;
  3636. }
  3637. (* ====================================================== *)
  3638. (*                         32 Bit                         *)
  3639. {
  3640.   FUNCTION Dos32FlatToSel(* ------------- *);
  3641.     External 'DosCalls' INDEX 425;
  3642.  
  3643.   FUNCTION Dos32SelToFlat(* ------------- *);
  3644.     External 'DosCalls' INDEX 426;
  3645.  
  3646.   FUNCTION Dos32SetFileLocks(* ------------- *);
  3647.     External 'DosCalls' INDEX 428;
  3648.  
  3649.   FUNCTION Dos32CancelLockRequest(* ------------- *);
  3650.     External 'DosCalls' INDEX 429;
  3651. }
  3652. (* ====================================================== *)
  3653. (*                         16 Bit                         *)
  3654. {
  3655.   FUNCTION DosOpenChangeNotify(* ------------- *);
  3656.     External 'DosCalls' INDEX 437;
  3657.   FUNCTION Dos16OpenChangeNotify(* ------------- *);
  3658.     External 'DosCalls' INDEX 437;
  3659.  
  3660.   FUNCTION DosResetChangeNotify(* ------------- *);
  3661.     External 'DosCalls' INDEX 438;
  3662.   FUNCTION Dos16ResetChangeNotify(* ------------- *);
  3663.     External 'DosCalls' INDEX 438;
  3664.  
  3665.   FUNCTION DosCloseChangeNotify(* ------------- *);
  3666.     External 'DosCalls' INDEX 439;
  3667.   FUNCTION Dos16CloseChangeNotify(* ------------- *);
  3668.     External 'DosCalls' INDEX 439;
  3669. }
  3670. (* ====================================================== *)
  3671. (*                         32 Bit                         *)
  3672. {
  3673.   FUNCTION Dos32OpenChangeNotify(* ------------- *);
  3674.     External 'DosCalls' INDEX 440;
  3675.  
  3676.   FUNCTION Dos32ResetChangeNotify(* ------------- *);
  3677.     External 'DosCalls' INDEX 441;
  3678.  
  3679.   FUNCTION Dos32CloseChangeNotify(* ------------- *);
  3680.     External 'DosCalls' INDEX 442;
  3681.  
  3682. (* ====================================================== *)
  3683.  
  3684.   FUNCTION Dos32QueryResourceSize(* ------------- *);
  3685.    External 'DosCalls' INDEX 572;
  3686. }
  3687. (* ====================================================== *)
  3688. (*                         16 Bit                         *)
  3689.  
  3690. {
  3691.   FUNCTION DosQueryResourceSize(* ------------- *);
  3692.     External 'DosCalls' INDEX 573;
  3693.   FUNCTION Dos16QueryResourceSize(* ------------- *);
  3694.     External 'DosCalls' INDEX 573;
  3695. }
  3696.  
  3697. (* ====================================================== *)
  3698. (*                         32 Bit                         *)
  3699. {                    nicht implementiert
  3700.   FUNCTION Dos32InitializePorthole(* ------------- *);
  3701.     External 'DosCalls' INDEX 580;
  3702.  
  3703.   FUNCTION Dos32QueryHeaderInfo(* ------------- *);
  3704.     External 'DosCalls' INDEX 582;
  3705. }
  3706.  
  3707. (* ====================================================== *)
  3708. (*                         16 Bit                         *)
  3709. {
  3710.   FUNCTION DosInitializePortHole(* ------------- *);
  3711.     External 'DosCalls' INDEX 583;
  3712.   FUNCTION Dos16InitializePortHole(* ------------- *);
  3713.     External 'DosCalls' INDEX 583;
  3714.  
  3715.   FUNCTION DosQueryHeaderInfo(* ------------- *);
  3716.     External 'DosCalls' INDEX 584;
  3717.   FUNCTION Dos16QueryHeaderInfo(* ------------- *);
  3718.     External 'DosCalls' INDEX 584;
  3719. }
  3720. (* ====================================================== *)
  3721. (*                         32 Bit                         *)
  3722. {                 nicht implementiert
  3723.  
  3724.   FUNCTION Dos32QueryProcType(* ------------- *);
  3725.     External 'DosCalls' INDEX 586;
  3726. }
  3727. (* ====================================================== *)
  3728. (*                         16 Bit                         *)
  3729. {
  3730.   FUNCTION DosQueryProcType(* ------------- *);
  3731.     External 'DosCalls' INDEX 587;
  3732.   FUNCTION Dos16QueryProcType(* ------------- *);
  3733.     External 'DosCalls' INDEX 587;
  3734. }
  3735.  
  3736. END.
  3737.  
  3738. (* ====================================================== *)
  3739. (*                 Ende von DOSCALLS.PAS                  *)
  3740.