[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

	 IFND	  REXX_RXSLIB_I
REXX_RXSLIB_I  SET   1
**
**	$Filename: rexx/rxslib.i $
**	$Release: 2.04 Includes, V37.4 $
**	$Revision: 1.15 $
**	$Date: 91/11/08 $
**
**	Include file for the REXX Systems Library
**
**	(C) Copyright 1986,1987,1988,1989,1990 William S. Hawes.
**	(C) Copyright 1990-1999 Amiga, Inc.
**		All Rights Reserved
**

	 IFND	  REXX_STORAGE_I
	 INCLUDE  "rexx/storage.i"
	 ENDC

	 ; Macro definitions

RXSLIBNAME MACRO
	 dc.b	  'rexxsyslib.library',0
	 ENDM

RXSDIR	 MACRO			       ; public port name
	 dc.b	  'REXX',0
	 ENDM

RXSTNAME MACRO			       ; name for tasks
	 dc.b	  'ARexx',0
	 ENDM

	 ; Structure definition for the REXX systems library

	 STRUCTURE RxsLib,LIB_SIZE     ; EXEC library node
	 UBYTE	  rl_Flags	       ; global flags
	 UBYTE	  rl_Shadow	       ; shadow flags
	 APTR	  rl_SysBase	       ; EXEC library base
	 APTR	  rl_DOSBase	       ; DOS library base
	 APTR	  rl_IeeeDPBase        ; IEEE DP math library base
	 LONG	  rl_SegList	       ; library seglist
	 LONG	  rl_NIL	       ; NIL: stream
	 LONG	  rl_Chunk	       ; allocation quantum
	 LONG	  rl_MaxNest	       ; maximum expression nesting

	 APTR	  rl_NULL	       ; static string: NULL
	 APTR	  rl_FALSE	       ; static string: FALSE
	 APTR	  rl_TRUE	       ; static string: TRUE
	 APTR	  rl_REXX	       ; static string: REXX
	 APTR	  rl_COMMAND	       ; static string: COMMAND
	 APTR	  rl_STDIN	       ; static string: STDIN
	 APTR	  rl_STDOUT	       ; static string: STDOUT
	 APTR	  rl_STDERR	       ; static string: STDERR
	 APTR	  rl_Version	       ; version string

	 APTR	  rl_TaskName	       ; name string for tasks
	 LONG	  rl_TaskPri	       ; starting priority
	 LONG	  rl_TaskSeg	       ; startup seglist
	 LONG	  rl_StackSize	       ; stack size
	 APTR	  rl_RexxDir	       ; REXX directory
	 APTR	  rl_CTABLE	       ; character attribute table
	 APTR	  rl_Notice	       ; copyright notice

	 STRUCT   rl_RexxPort,MP_SIZE  ; public port
	 UWORD	  rl_ReadLock	       ; lock count
	 APTR	  rl_TraceFH	       ; global trace console

	 STRUCT   rl_TaskList,LH_SIZE  ; REXX task list
	 WORD	  rl_NumTask
	 STRUCT   rl_LibList,LH_SIZE   ; Library List header
	 WORD	  rl_NumLib
	 STRUCT   rl_ClipList,LH_SIZE  ; ClipList header
	 WORD	  rl_NumClip
	 STRUCT   rl_MsgList,LH_SIZE   ; pending messages
	 WORD	  rl_NumMsg
	 STRUCT   rl_PgmList,LH_SIZE   ; cached programs
	 WORD	  rl_NumPgm	       ; cache count

	 UWORD	  rl_TraceCnt	       ; trace console usage count
	 WORD	  rl_avail
	 LABEL	  rl_SIZEOF

* Global flag bit definitions for RexxMaster
RLFB_TRACE EQU	  RTFB_TRACE	       ; interactive tracing?
RLFB_HALT  EQU	  RTFB_HALT	       ; halt execution?
RLFB_SUSP  EQU	  RTFB_SUSP	       ; suspend execution?
RLFB_STOP  EQU	  6		       ; deny further invocations
RLFB_CLOSE EQU	  7		       ; close the master

* Mask for control flags
RLFMASK  EQU	  1<<RLFB_TRACE!1<<RLFB_HALT!1<<RLFB_SUSP

	 ; Initialization constants

RXSCHUNK EQU	  1024		       ; allocation quantum
RXSNEST  EQU	  32		       ; expression nesting limit
RXSTPRI  EQU	  0		       ; task priority
RXSSTACK EQU	  4096		       ; stack size

	 ; The library entry point offsets

	 LIBINIT
	 LIBDEF   _LVORexx	       ; Main entry point
	 LIBDEF   _LVOrxParse	       ; (private)
	 LIBDEF   _LVOrxInstruct       ; (private)
	 LIBDEF   _LVOrxSuspend        ; (private)
	 LIBDEF   _LVOEvalOp	       ; (private)

	 LIBDEF   _LVOAssignValue      ; (private)
	 LIBDEF   _LVOEnterSymbol      ; (private)
	 LIBDEF   _LVOFetchValue       ; (private)
	 LIBDEF   _LVOLookUpValue      ; (private)
	 LIBDEF   _LVOSetValue	       ; (private)
	 LIBDEF   _LVOSymExpand        ; (private)

	 LIBDEF   _LVOErrorMsg
	 LIBDEF   _LVOIsSymbol
	 LIBDEF   _LVOCurrentEnv
	 LIBDEF   _LVOGetSpace
	 LIBDEF   _LVOFreeSpace

	 LIBDEF   _LVOCreateArgstring
	 LIBDEF   _LVODeleteArgstring
	 LIBDEF   _LVOLengthArgstring
	 LIBDEF   _LVOCreateRexxMsg
	 LIBDEF   _LVODeleteRexxMsg
	 LIBDEF   _LVOClearRexxMsg
	 LIBDEF   _LVOFillRexxMsg
	 LIBDEF   _LVOIsRexxMsg

	 LIBDEF   _LVOAddRsrcNode
	 LIBDEF   _LVOFindRsrcNode
	 LIBDEF   _LVORemRsrcList
	 LIBDEF   _LVORemRsrcNode
	 LIBDEF   _LVOOpenPublicPort
	 LIBDEF   _LVOClosePublicPort
	 LIBDEF   _LVOListNames

	 LIBDEF   _LVOClearMem
	 LIBDEF   _LVOInitList
	 LIBDEF   _LVOInitPort
	 LIBDEF   _LVOFreePort

	 LIBDEF   _LVOCmpString
	 LIBDEF   _LVOStcToken
	 LIBDEF   _LVOStrcmpN
	 LIBDEF   _LVOStrcmpU
	 LIBDEF   _LVOStrcpyA	       ; obsolete
	 LIBDEF   _LVOStrcpyN
	 LIBDEF   _LVOStrcpyU
	 LIBDEF   _LVOStrflipN
	 LIBDEF   _LVOStrlen
	 LIBDEF   _LVOToUpper

	 LIBDEF   _LVOCVa2i
	 LIBDEF   _LVOCVi2a
	 LIBDEF   _LVOCVi2arg
	 LIBDEF   _LVOCVi2az
	 LIBDEF   _LVOCVc2x
	 LIBDEF   _LVOCVx2c

	 LIBDEF   _LVOOpenF
	 LIBDEF   _LVOCloseF
	 LIBDEF   _LVOReadStr
	 LIBDEF   _LVOReadF
	 LIBDEF   _LVOWriteF
	 LIBDEF   _LVOSeekF
	 LIBDEF   _LVOQueueF
	 LIBDEF   _LVOStackF
	 LIBDEF   _LVOExistF

	 LIBDEF   _LVODOSCommand
	 LIBDEF   _LVODOSRead
	 LIBDEF   _LVODOSWrite
	 LIBDEF   _LVOCreateDOSPkt     ; obsolete
	 LIBDEF   _LVODeleteDOSPkt     ; obsolete
	 LIBDEF   _LVOSendDOSPkt       ; (private)
	 LIBDEF   _LVOWaitDOSPkt       ; (private)
	 LIBDEF   _LVOFindDevice       ; (private)

	 LIBDEF   _LVOAddClipNode
	 LIBDEF   _LVORemClipNode
	 LIBDEF   _LVOLockRexxBase
	 LIBDEF   _LVOUnlockRexxBase
	 LIBDEF   _LVOCreateCLI        ; (private)
	 LIBDEF   _LVODeleteCLI        ; (private)
	 LIBDEF   _LVOCVs2i

* Character attribute flag bits used in REXX.
CTB_SPACE   EQU   0		       ; white space characters
CTB_DIGIT   EQU   1		       ; decimal digits 0-9
CTB_ALPHA   EQU   2		       ; alphabetic characters
CTB_REXXSYM EQU   3		       ; REXX symbol characters
CTB_REXXOPR EQU   4		       ; REXX operator characters
CTB_REXXSPC EQU   5		       ; REXX special symbols
CTB_UPPER   EQU   6		       ; UPPERCASE alphabetic
CTB_LOWER   EQU   7		       ; lowercase alphabetic

* The flag form of the character attributes
CTF_SPACE   EQU   1<<CTB_SPACE
CTF_DIGIT   EQU   1<<CTB_DIGIT
CTF_ALPHA   EQU   1<<CTB_ALPHA
CTF_REXXSYM EQU   1<<CTB_REXXSYM
CTF_REXXOPR EQU   1<<CTB_REXXOPR
CTF_REXXSPC EQU   1<<CTB_REXXSPC
CTF_UPPER   EQU   1<<CTB_UPPER
CTF_LOWER   EQU   1<<CTB_LOWER

	 ENDC