home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2api.zip / OS2DEF.PAS < prev    next >
Pascal/Delphi Source File  |  1993-11-17  |  4KB  |  165 lines

  1.  
  2. (*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*)
  3. (*                                                                   *)
  4. (*     Borland Pascal OS/2 API                                       *)
  5. (*                                                                   *)
  6. (*     OS2DEF   - System types, constants and macros                 *)
  7. (*                                                                   *)
  8. (*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*)
  9.  
  10. unit OS2DEF;
  11. {$IFNDEF OS2}
  12.  
  13. 'Can only compile this unit with OS/2 target.'
  14.  
  15. {$ENDIF}
  16.  
  17. interface
  18.  
  19. (* ------------------------ CONSTANTS AND TYPES --------------------------- *)
  20.  
  21. const
  22.   NULLHANDLE                              = (0);
  23.   NULLSHANDLE                             = (0);
  24.  
  25.   NULL                                    = nil;
  26.  
  27. type
  28.  
  29. {  INT = Integer;
  30.   UINT = Word;
  31.   APIRET = Integer;}
  32.  
  33.   BOOL = WordBool;
  34.   PBOOL = ^BOOL;
  35.  
  36.   BOOL32 = LongBool;
  37.   PBOOL32 = ^BOOL32;
  38.  
  39.   PPCHAR = ^PChar;
  40.  
  41.   PUCHAR = ^Char;
  42.  
  43.   PBYTE = ^Byte;
  44.  
  45.   PInteger = ^Integer;
  46.  
  47.   PWord = ^Word;
  48.  
  49.   PLongint = ^Longint;
  50.  
  51.   PPVOID = ^Pointer;
  52.  
  53.   PCH = PChar;
  54.   PPSZ = ^PChar;
  55.   CONSTPCH = PChar;
  56.  
  57.   CONSTPVOID = Pointer;
  58.   CONSTPSZ = PChar;
  59.  
  60.   STR8 = array[0..8-1] of Char;
  61.   PSTR8 = ^STR8;
  62.  
  63.   STR16 = array[0..16-1] of Char;
  64.   PSTR16 = ^STR16;
  65.   STR32 = array[0..32-1] of Char;
  66.   PSTR32 = ^STR32;
  67.   STR64 = array[0..64-1] of Char;
  68.   PSTR64 = ^STR64;
  69.  
  70.   SHANDLE = Word;
  71.   LHANDLE = Pointer;
  72.  
  73.   HFILE = SHANDLE;
  74.   PHFILE = ^HFILE;
  75.  
  76.   HPIPE = SHANDLE;
  77.   PHPIPE = ^HPIPE;
  78.  
  79.   HQUEUE = SHANDLE;
  80.   PHQUEUE = ^HQUEUE;
  81.  
  82.   HMODULE = SHANDLE;
  83.   PHMODULE = ^HMODULE;
  84.  
  85.   PID = Longint;
  86.   PPID = ^PID;
  87.  
  88.   TID = Longint;
  89.   PTID = ^TID;
  90.  
  91.   TFN = function : Longint;
  92.   PFN = ^TFN;
  93.   PPFN = ^PFN;
  94.  
  95.   COLOR = Longint;
  96.   PCOLOR = ^COLOR;
  97.  
  98.   HPAL = LHANDLE;
  99.   PHPAL = ^HPAL;
  100.  
  101.   HBITMAP = LHANDLE;
  102.   PHBITMAP = ^HBITMAP;
  103.  
  104.   HMF = LHANDLE;
  105.   PHMF = ^HMF;
  106.  
  107.   ERRORID = Longint;
  108.   PERRORID = ^ERRORID;
  109.  
  110.   SEL = Word;
  111.   PSEL = ^SEL;
  112. {
  113. const
  114.   FIELDOFFSET                             = (t,f)  ((Integer) and (((t *)0)->field));
  115.  
  116.   MAKETYPE                                = (v,t)     (*((t *) and v));
  117.  
  118.   MAKEUSHORT                              = (l,h)   (((Word)(l))  or  ((Word)(h)) shl 8);
  119.   MAKESHORT                               = (l,h)    ((Integer)MAKEUSHORT(l, h));
  120.  
  121.   MAKEULONG                               = (l,h)    ((Longint)(((Word)(l))  or  ((Longint)((Word)(h))) shl 16));
  122.   MAKELONG                                = (l, h)    ((Longint)MAKEULONG(l, h));
  123.  
  124.   LOUCHAR                                 = (w)        ((Char)(w));
  125.   HIUCHAR                                 = (w)        ((Char)((Word)(w) shr 8));
  126.  
  127.   LOBYTE                                  = (x)         LOUCHAR(x);
  128.   HIBYTE                                  = (x)         HIUCHAR(x);
  129.  
  130.   LOUSHORT                                = (x)       ((Word)((Longint)(x)));
  131.   HIUSHORT                                = (x)       ((Word)((Longint)(x) shr 16));
  132. }
  133.  
  134. { Various inline and wrapper routines }
  135.  
  136. function MakeLong(A, B: Word): LongInt;
  137. inline(
  138.   $5A/    { POP DX }
  139.   $58);   { POP AX }
  140.  
  141. function LoWord(A: LongInt): Word;
  142. inline(
  143.   $58/    { POP AX }
  144.   $5A);   { POP DX }
  145.  
  146. function HiWord(A: LongInt): Word;
  147. inline(
  148.   $5A/    { POP DX }
  149.   $58);   { POP AX }
  150.  
  151. function LoByte(A: Word): Byte;
  152. inline(
  153.   $58/       { POP AX    }
  154.   $32/$E4);  { XOR AH,AH }
  155.  
  156. function HiByte(A: Word): Byte;
  157. inline(
  158.   $58/       { POP AX    }
  159.   $8A/$C4/   { MOV AL,AH }
  160.   $32/$E4);  { XOR AH,AH }
  161.  
  162. implementation
  163.  
  164. end.
  165.