home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / MAXONPASCAL2.DMS / in.adf / INCLUDE / rexx / storage.h < prev   
Encoding:
Text File  |  1994-07-25  |  3.7 KB  |  193 lines

  1. {$if not def REXX_STORAGE_H} CONST REXX_STORAGE_H=0;
  2.  
  3. { ****************************************************************
  4.   ** KickPascal-Include-Datei "rexx/storage.h" zu Kickstart 3.0 **
  5.   **************************************************************** }
  6.  
  7. TYPE p_SrcNode = ^SrcNode;
  8. TYPE p_RexxTask = ^RexxTask;
  9. TYPE p_RexxRsrc = ^RexxRsrc;
  10. TYPE p_RexxArg = ^RexxArg;
  11. TYPE p_RexxMsg = ^RexxMsg;
  12.  
  13.  
  14. {$if not def EXEC_NODES_H;incl "exec/nodes.h";endif}
  15. {$if not def EXEC_LISTS_H;incl "exec/lists.h";endif}
  16. {$if not def EXEC_PORTS_H;incl "exec/ports.h";endif}
  17. {$if not def EXEC_LIBRARIES_H;incl "exec/libraries.h";endif}
  18.  
  19.  
  20. TYPE p_NexxStr = ^NexxStr;
  21. TYPE NexxStr = RECORD
  22.  ns_Ivalue : LongInt;
  23.  ns_Length : Word;
  24.  ns_Flags  : Byte;
  25.  ns_Hash   : Byte;
  26.  ns_Buff   : ARRAY[0..7] OF Short;
  27. END;
  28.  
  29. CONST NXADDLEN = 9;
  30.  
  31. FUNCTION IVALUE(nsPtr : p_NexxStr) : LongInt;
  32.   BEGIN
  33.        IVALUE:=nsPtr^.ns_Ivalue;
  34.   END;
  35.  
  36. CONST
  37.  NSB_KEEP   = 0;
  38.  NSB_STRING = 1;
  39.  NSB_NOTNUM = 2;
  40.  NSB_NUMBER = 3;
  41.  NSB_BINARY = 4;
  42.  NSB_FLOAT  = 5;
  43.  NSB_EXT    = 6;
  44.  NSB_SOURCE = 7;
  45.  
  46.  NSF_KEEP   = $1;
  47.  NSF_STRING = $2;
  48.  NSF_NOTNUM = $4;
  49.  NSF_NUMBER = $8;
  50.  NSF_BINARY = $10;
  51.  NSF_FLOAT  = $20;
  52.  NSF_EXT    = $40;
  53.  NSF_SOURCE = $80;
  54.  
  55.  NSF_INTNUM = (NSF_NUMBER or NSF_BINARY or NSF_STRING);
  56.  NSF_DPNUM  = (NSF_NUMBER or NSF_FLOAT);
  57.  NSF_ALPHA  = (NSF_NOTNUM or NSF_STRING);
  58.  NSF_OWNED  = (NSF_SOURCE or NSF_EXT or NSF_KEEP);
  59.  KEEPSTR    = (NSF_STRING or NSF_SOURCE or NSF_NOTNUM);
  60.  KEEPNUM    = (NSF_STRING or NSF_SOURCE or NSF_NUMBER or NSF_BINARY);
  61.  
  62. TYPE RexxArg = RECORD
  63.  ra_Size   : LongInt;
  64.  ra_Length : Word;
  65.  ra_Flags  : Byte;
  66.  ra_Hash   : Byte;
  67.  ra_Buff   : ARRAY[0..7] OF Short;
  68. END;
  69.  
  70. TYPE RexxMsg = RECORD
  71.  rm_Node      : Message;
  72.  rm_TaskBlock : Ptr;
  73.  rm_LibBase   : Ptr;
  74.  rm_Action    : LongInt;
  75.  rm_Result1   : LongInt;
  76.  rm_Result2   : LongInt;
  77.  rm_Args      : ARRAY[0..15] OF Str;
  78.  rm_PassPort  : p_MsgPort;
  79.  rm_CommAddr  : Str;
  80.  rm_FileExt   : Str;
  81.  rm_Stdin     : LongInt;
  82.  rm_Stdout    : LongInt;
  83.  rm_avail     : LongInt;
  84. END;
  85.  
  86. FUNCTION ARG0(rmp :p_RexxMsg): STR;
  87.   BEGIN
  88.        ARG0:=rmp^.rm_Args[0];
  89.   END;
  90.  
  91. FUNCTION ARG1(rmp :p_RexxMsg): STR;
  92.   BEGIN
  93.        ARG1:=rmp^.rm_Args[1];
  94.   END;
  95.  
  96. FUNCTION ARG2(rmp :p_RexxMsg): STR;
  97.   BEGIN
  98.        ARG2:=rmp^.rm_Args[2];
  99.   END;
  100.  
  101. CONST MAXRMARG = 15;
  102.  
  103. CONST
  104.  RXCOMM    = $01000000;
  105.  RXFUNC    = $02000000;
  106.  RXCLOSE   = $03000000;
  107.  RXQUERY   = $04000000;
  108.  RXADDFH   = $07000000;
  109.  RXADDLIB  = $08000000;
  110.  RXREMLIB  = $09000000;
  111.  RXADDCON  = $0A000000;
  112.  RXREMCON  = $0B000000;
  113.  RXTCOPN   = $0C000000;
  114.  RXTCCLS   = $0D000000;
  115.  
  116. CONST
  117.  RXFB_NOIO   = 16;
  118.  RXFB_RESULT = 17;
  119.  RXFB_STRING = 18;
  120.  RXFB_TOKEN  = 19;
  121.  RXFB_NONRET = 20;
  122.  
  123.  RXFF_NOIO   = $10000;
  124.  RXFF_RESULT = $20000;
  125.  RXFF_STRING = $40000;
  126.  RXFF_TOKEN  = $80000;
  127.  RXFF_NONRET = $100000;
  128.  
  129. CONST
  130.  RXCODEMASK   = $FF000000;
  131.  RXARGMASK    = $0000000F;
  132.  
  133. TYPE RexxRsrc = RECORD
  134.  rr_Node : Node;
  135.  rr_Func : Integer;
  136.  rr_Base : Ptr;
  137.  rr_Size : LongInt;
  138.  rr_Arg1 : LongInt;
  139.  rr_Arg2 : LongInt;
  140. END;
  141.  
  142. CONST
  143.  RRT_ANY  = 0;
  144.  RRT_LIB  = 1;
  145.  RRT_PORT = 2;
  146.  RRT_FILE = 3;
  147.  RRT_HOST = 4;
  148.  RRT_CLIP = 5;
  149.  
  150. CONST GLOBALSZ = 200;
  151.  
  152. TYPE RexxTask = RECORD
  153.  rt_Global   : ARRAY[0..GLOBALSZ-1] OF Short;
  154.  rt_MsgPort  : MsgPort;
  155.  rt_Flags    : Byte;
  156.  rt_SigBit   : Byte;
  157.  rt_ClientID : Ptr;
  158.  rt_MsgPkt   : Ptr;
  159.  rt_TaskID   : Ptr;
  160.  rt_RexxPort : Ptr;
  161.  rt_ErrTrap  : Ptr;
  162.  rt_StackPtr : Ptr;
  163.  rt_Header1  : List;
  164.  rt_Header2  : List;
  165.  rt_Header3  : List;
  166.  rt_Header4  : List;
  167.  rt_Header5  : List;
  168. END;
  169.  
  170. CONST
  171.  RTFB_TRACE = 0;
  172.  RTFB_HALT  = 1;
  173.  RTFB_SUSP  = 2;
  174.  RTFB_TCUSE = 3;
  175.  RTFB_WAIT  = 6;
  176.  RTFB_CLOSE = 7;
  177.  
  178.  MEMQUANT  = 16;
  179.  MEMMASK   = $FFFFFFF0;
  180.  
  181. CONST
  182.  MEMQUICK = $1;
  183.  MEMCLEAR = $10000;
  184.  
  185. TYPE SrcNode = RECORD
  186.  sn_Succ : p_SrcNode;
  187.  sn_Pred : p_SrcNode;
  188.  sn_Ptr  : Ptr;
  189.  sn_Size : LongInt;
  190. END;
  191.  
  192. {$endif}
  193.