home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 200-299 / ff284.lzh / Dme / src / rexx / rxslib.h < prev    next >
C/C++ Source or Header  |  1989-11-27  |  6KB  |  113 lines

  1. /* === rexx/rxslib.h ===================================================
  2.  *
  3.  * Copyright (c) 1986, 1987 by William S. Hawes (All Rights Reserved)
  4.  *
  5.  * =====================================================================
  6.  * The header file for the REXX Systems Library
  7.  */
  8.  
  9. #ifndef REXX_RXSLIB_H
  10. #define REXX_RXSLIB_H
  11.  
  12. #ifndef REXX_STORAGE_H
  13. #include "rexx/storage.h"
  14. #endif
  15.  
  16. /* Some macro definitions                                               */
  17.  
  18. #define RXSNAME  "rexxsyslib.library"
  19. #define RXSID    "rexxsyslib 1.0 (23 AUG 87)\n"
  20. #define RXSDIR   "REXX"
  21. #define RXSTNAME "ARexx"
  22.  
  23. /* The REXX systems library structure.  This should be considered as    */
  24. /* semi-private and read-only, except for documented exceptions.        */
  25.  
  26. struct RxsLib {
  27.    struct Library rl_Node;             /* EXEC library node             */
  28.    UBYTE    rl_Flags;                  /* global flags                  */
  29.    UBYTE    rl_pad;
  30.    APTR     rl_SysBase;                /* EXEC library base             */
  31.    APTR     rl_DOSBase;                /* DOS library base              */
  32.    APTR     rl_IeeeDPBase;             /* IEEE DP math library base     */
  33.    LONG     rl_SegList;                /* library seglist               */
  34.    LONG     rl_MaxAlloc;               /* maximum memory allocation     */
  35.    LONG     rl_Chunk;                  /* allocation quantum            */
  36.    LONG     rl_MaxNest;                /* maximum expression nesting    */
  37.    struct NexxStr *rl_NULL;            /* static string: NULL           */
  38.    struct NexxStr *rl_FALSE;           /* static string: FALSE          */
  39.    struct NexxStr *rl_TRUE;            /* static string: TRUE           */
  40.    struct NexxStr *rl_REXX;            /* static string: REXX           */
  41.    struct NexxStr *rl_COMMAND;         /* static string: COMMAND        */
  42.    struct NexxStr *rl_STDIN;           /* static string: STDIN          */
  43.    struct NexxStr *rl_STDOUT;          /* static string: STDOUT         */
  44.    struct NexxStr *rl_STDERR;          /* static string: STDERR         */
  45.    STRPTR    rl_Version;               /* version/configuration string  */
  46.  
  47.    STRPTR    rl_TaskName;              /* name string for tasks         */
  48.    LONG      rl_TaskPri;               /* starting priority             */
  49.    LONG      rl_TaskSeg;               /* startup seglist               */
  50.    LONG      rl_StackSize;             /* stack size                    */
  51.    STRPTR    rl_RexxDir;               /* REXX directory                */
  52.    STRPTR    rl_CTABLE;                /* character attribute table     */
  53.    struct NexxStr *rl_Notice;          /* copyright notice              */
  54.  
  55.    struct MsgPort rl_RexxPort;         /* REXX public port              */
  56.    UWORD     rl_ReadLock;              /* lock count                    */
  57.    LONG      rl_TraceFH;               /* global trace console          */
  58.    struct List rl_TaskList;            /* REXX task list                */
  59.    WORD      rl_NumTask;               /* task count                    */
  60.    struct List rl_LibList;             /* Library List header           */
  61.    WORD      rl_NumLib;                /* library count                 */
  62.    struct List rl_ClipList;            /* ClipList header               */
  63.    WORD      rl_NumClip;               /* clip node count               */
  64.    struct List rl_MsgList;             /* pending messages              */
  65.    WORD      rl_NumMsg;                /* pending count                 */
  66.    };
  67.  
  68. /* Global flag bit definitions for RexxMaster                           */
  69. #define RLFB_TRACE RTFB_TRACE          /* interactive tracing?          */
  70. #define RLFB_HALT  RTFB_HALT           /* halt execution?               */
  71. #define RLFB_SUSP  RTFB_SUSP           /* suspend execution?            */
  72. #define RLFB_TCUSE RTFB_TCUSE          /* trace console in use?         */
  73. #define RLFB_TCOPN 4                   /* trace console open?           */
  74. #define RLFB_STOP  6                   /* deny further invocations      */
  75. #define RLFB_CLOSE 7                   /* close the master              */
  76.  
  77. #define RLFMASK    0x07                /* passed flags                  */
  78.  
  79. /* Initialization constants                                             */
  80.  
  81. #define RXSVERS    2                   /* main version                  */
  82. #define RXSREV     1                   /* revision                      */
  83. #define RXSALLOC   0x800000            /* maximum allocation            */
  84. #define RXSCHUNK   1024                /* allocation quantum            */
  85. #define RXSNEST    32                  /* expression nesting limit      */
  86. #define RXSTPRI    0                   /* task priority                 */
  87. #define RXSSTACK   4096                /* stack size                    */
  88. #define RXSLISTH   4                   /* number of list headers        */
  89.  
  90. /* Character attribute flag bits used in REXX.  Defined only for        */
  91. /* ASCII characters (range 0-127).                                      */
  92.  
  93. #define CTB_SPACE   0                  /* white space characters        */
  94. #define CTB_DIGIT   1                  /* decimal digits 0-9            */
  95. #define CTB_ALPHA   2                  /* alphabetic characters         */
  96. #define CTB_REXXSYM 3                  /* REXX symbol characters        */
  97. #define CTB_REXXOPR 4                  /* REXX operator characters      */
  98. #define CTB_REXXSPC 5                  /* REXX special symbols          */
  99. #define CTB_UPPER   6                  /* UPPERCASE alphabetic          */
  100. #define CTB_LOWER   7                  /* lowercase alphabetic          */
  101.                                                                       
  102. /* Attribute flags                                                      */
  103. #define CTF_SPACE   (1 << CTB_SPACE)
  104. #define CTF_DIGIT   (1 << CTB_DIGIT)
  105. #define CTF_ALPHA   (1 << CTB_ALPHA)
  106. #define CTF_REXXSYM (1 << CTB_REXXSYM)
  107. #define CTF_REXXOPR (1 << CTB_REXXOPR)
  108. #define CTF_REXXSPC (1 << CTB_REXXSPC)
  109. #define CTF_UPPER   (1 << CTB_UPPER)
  110. #define CTF_LOWER   (1 << CTB_LOWER)
  111.  
  112. #endif
  113.