home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
411b.lha
/
dme_1.42
/
src.LZH
/
src
/
rexx
/
rxslib.i
< prev
next >
Wrap
Text File
|
1988-07-31
|
8KB
|
214 lines
* === rexx/rxslib.i ====================================================
*
* Copyright (c) 1986, 1987 by William S. Hawes (All Rights Reserved)
*
* ======================================================================
* Include file for the REXX Systems Library
IFND REXX_RXSLIB_I
REXX_RXSLIB_I SET 1
IFND REXX_STORAGE_I
INCLUDE "rexx/storage.i"
ENDC
; Macro definitions
RXSNAME MACRO
dc.b 'rexxsyslib.library',0
ENDM
RXSID MACRO
dc.b 'rexxsyslib 1.02 (01 NOV 87)',10,0
ENDM
RXSDIR MACRO ; directory (device) for programs
dc.b 'REXX',0
ENDM
RXSTNAME MACRO ; name for tasks
dc.b 'ARexx',0
ENDM
* Macro to call a library function (assumes library pointer is in A6)
CALLSYS MACRO * FunctionName
CALLLIB _LVO\1
ENDM
* Macro to define an external library entry point (offset)
XLIB MACRO * FunctionName
XREF _LVO\1
ENDM
* Structure definition for the REXX systems library
STRUCTURE RxsLib,LIB_SIZE ; EXEC library node
UBYTE rl_Flags ; global flags
UBYTE rl_pad
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_MaxAlloc ; maximum memory allocation
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
LONG 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
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_TCUSE EQU RTFB_TCUSE ; trace console in use?
RLFB_TCOPN EQU 4 ; trace console open?
RLFB_STOP EQU 6 ; deny further invocations
RLFB_CLOSE EQU 7 ; close the master
RLFMASK EQU $07 ; passed flags
; Initialization constants
RXSVERS EQU 2 ; main version
RXSREV EQU 1 ; revision
RXSALLOC EQU $800000 ; maximum allocation
RXSCHUNK EQU 1024 ; allocation quantum
RXSNEST EQU 32 ; expression nesting limit
RXSTPRI EQU 0 ; task priority
RXSSTACK EQU 4096 ; stack size
RXSLISTH EQU 4 ; number of list headers
* 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
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
LIBDEF _LVODeleteDOSPkt
LIBDEF _LVOSendDOSPkt
LIBDEF _LVOWaitDOSPkt
LIBDEF _LVOFindDevice
LIBDEF _LVOAddClipNode
LIBDEF _LVORemClipNode
LIBDEF _LVOLockRexxBase
LIBDEF _LVOUnlockRexxBase
* Character attribute flag bits used in REXX. Attributes are defined only
* for ASCII characters (range 0-127).
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
* Attribute flags
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