Table of Contents (exploded view)
Abstract for TSO/E REXX Reference
Summary of changes for z/OS Version 2 Release 2 (V2R2) as updated December, 2015
Summary of changes for z/OS Version 2 Release 2 (V2R2)
z/OS Version 2 Release 1 summary of changes
Introduction
What the SAA Solution Is
Supported environments
Common programming interface
Benefits of using a compiler
Improved performance
Reduced system load
Protection for source code and programs
Improved productivity and quality
Portability of compiled programs
SAA compliance checking
REXX general concepts
Structure and general syntax
Characters
Comments
Tokens
Implied semicolons
Continuations
Expressions and operators
Expressions
Operators
String concatenation
Arithmetic
Comparison
Logical (boolean)
Parentheses and operator precedence
Clauses and instructions
Null clauses
Labels
Instructions
Assignments
Keyword instructions
Commands
Assignments and symbols
Constant symbols
Simple symbols
Compound symbols
Stems
Commands to external environments
Environment
Commands
Host commands and host command environments
The TSO host command environment
The CONSOLE host command environment
The ISPEXEC and ISREDIT host command environments
The CPICOMM, LU62, and APPCMVS host command environments
Pseudonym files
Transaction program profiles
Sample Transaction programs
The MVS host command environment
Host command environments for linking to and attaching programs
The LINK and ATTACH host command environments
The LINKMVS and ATTCHMVS host command environments
An example using LINKMVS to specify user-defined Ddnames
Examples of using LINKMVS, ATTCHMVS, and CALL to invoke a program
The LINKPGM and ATTCHPGM host command environments
BCPii Host Command Environment
Keyword instructions
ADDRESS
ARG
CALL
DO
Simple DO group
Repetitive DO loops
Simple repetitive loops
Controlled repetitive loops
Conditional phrases (WHILE and UNTIL)
DROP
EXIT
IF
INTERPRET
ITERATE
LEAVE
NOP
NUMERIC
OPTIONS
PARSE
PROCEDURE
PULL
PUSH
QUEUE
RETURN
SAY
SELECT
SIGNAL
TRACE
Alphabetic character (word) options
Prefix options
Numeric options
Tracing tips
A typical example
Format of TRACE output
UPPER
Functions
Syntax
Functions and subroutines
Search order
Errors during execution
Built-in functions
ABBREV (Abbreviation)
ABS (Absolute Value)
ADDRESS
ARG (Argument)
BITAND (Bit by Bit AND)
BITOR (Bit by Bit OR)
BITXOR (Bit by Bit Exclusive OR)
B2X (Binary to Hexadecimal)
CENTER/CENTRE
COMPARE
CONDITION
COPIES
C2D (Character to Decimal)
C2X (Character to Hexadecimal)
DATATYPE
DATE
DBCS (double-byte character set functions)
DELSTR (Delete String)
DELWORD (Delete Word)
DIGITS
D2C (Decimal to Character)
D2X (Decimal to Hexadecimal)
ERRORTEXT
EXTERNALS
FIND
FORM
FORMAT
FUZZ
GETMSG
INDEX
INSERT
JUSTIFY
LASTPOS (Last Position)
LENGTH
LINESIZE
LISTDSI
MAX (Maximum)
MIN (Minimum)
MSG
MVSVAR
OUTTRAP
OVERLAY
POS (Position)
PROMPT
QUEUED
RANDOM
REVERSE
RIGHT
SETLANG
SIGN
SOURCELINE
SPACE
STORAGE
STRIP
SUBSTR (Substring)
SUBWORD
SYMBOL
SYSCPUS
SYSDSN
SYSVAR
TIME
TRACE
TRANSLATE
TRUNC (Truncate)
USERID
VALUE
VERIFY
WORD
WORDINDEX
WORDLENGTH
WORDPOS (Word Position)
WORDS
XRANGE (Hexadecimal Range)
X2B (Hexadecimal to Binary)
X2C (Hexadecimal to Character)
X2D (Hexadecimal to Decimal)
TSO/E external functions
GETMSG
Overview of using GETMSG during a console session
Using the command and response token (CART) and mask
LISTDSI
MSG
MVSVAR
OUTTRAP
PROMPT
SETLANG
STORAGE
SYSCPUS
SYSDSN
SYSVAR
Using the SYSPLANG and SYSSLANG arguments
TRAPMSG
Parsing
Simple templates for parsing into words
The period as a placeholder
Templates containing string patterns
Templates containing positional (numeric) patterns
Combining patterns and parsing into words
Parsing with variable patterns
Using UPPER
Parsing instructions summary
Parsing instructions examples
Advanced topics in parsing
Parsing multiple strings
Combining string and positional patterns: a special case
Parsing with DBCS characters
Details of steps in parsing
Numbers and arithmetic
Introduction
Definition
Numbers
Precision
Arithmetic operators
Arithmetic operation rules—basic operators
Addition and subtraction
Multiplication
Division
Basic operator examples
Arithmetic operation rules—additional operators
Power
Integer division
Remainder
Additional operator examples
Numeric comparisons
Exponential notation
Numeric information
Whole numbers
Numbers used directly by REXX
Errors
Conditions and condition traps
Action taken when a condition is not trapped
Action taken when a condition is trapped
Condition information
Descriptive strings
Special variables
The special variable RC
The special variable SIGL
Using REXX in different address spaces
Additional REXX support
TSO/E REXX programming services
TSO/E REXX customizing services
Writing execs that run in Non-TSO/E address spaces
Running an exec in a Non-TSO/E address space
Writing execs that run in the TSO/E address space
Running an exec in the TSO/E address space
Summary of writing execs for different address spaces
Reserved keywords, special variables, and command names
Reserved keywords
Special variables
Reserved command names
TSO/E REXX commands
DELSTACK
DROPBUF
EXECIO
EXECUTIL
HE
HI
HT
Immediate Commands
MAKEBUF
NEWSTACK
QBUF
QELEM
QSTACK
RT
SUBCOM
TE
TS
Debug aids
Interactive debugging of programs
Interrupting execution and controlling tracing
Interrupting exec processing
Considerations for interrupting exec processing
Using the HE immediate command to halt an exec
Starting and stopping tracing
TSO/E REXX programming services
General considerations for calling TSO/E REXX routines
Parameter lists for TSO/E REXX routines
Specifying the address of the environment block
Using the environment block address parameter
Using the environment block for reentrant environments
Return codes for TSO/E REXX routines
Exec processing routines - IRXJCL and IRXEXEC
The IRXJCL routine
Using IRXJCL to run a REXX exec in MVS batch
Invoking IRXJCL from a REXX exec or a program
Entry specifications
Parameters
Return specifications
Return codes
The IRXEXEC routine
Entry specifications
Parameters
The exec block (EXECBLK)
Format of argument list
The in-storage control block (INSTBLK)
The evaluation block (EVALBLOCK)
How IRXEXEC returns information about syntax errors
Return specifications
Return codes
External functions and subroutines, and function packages
Interface for writing external function and subroutine code
Entry specifications
Parameters
Argument list
Evaluation block
Return specifications
Return codes
Function packages
Directory for function packages
Specifying directory names in the function package table
Programming considerations
Variable access routine - IRXEXCOM
Entry specifications
Parameters
The shared variable (request) block - SHVBLOCK
Function codes (SHVCODE)
Return specifications
Return codes
Maintain entries in the host command environment table - IRXSUBCM
Entry specifications
Parameters
Functions
Format of a host command environment table entry
Return specifications
Return codes
Trace and execution control routine - IRXIC
Entry specifications
Parameters
Return specifications
Return codes
Get result routine - IRXRLT
Entry specifications
Parameters
Functions
Return specifications
Return codes
SAY instruction routine - IRXSAY
Entry specifications
Parameters
Functions
Return specifications
Return codes
Halt condition routine - IRXHLT
Entry specifications
Parameters
Functions
Return specifications
Return codes
Text retrieval routine - IRXTXT
Entry specifications
Parameters
Functions and text units
Return specifications
Return codes
LINESIZE function routine - IRXLIN
Entry specifications
Parameters
Return specifications
Return codes
TSO/E REXX customizing services
Flow of REXX exec processing
Initialization and termination of a Language Processor Environment
Types of Language Processor Environmentss
Loading and freeing a REXX exec
Processing of the REXX exec
Overview of replaceable routines
Exit routines
Language Processor Environments
Overview of Language Processor Environments
Using the environment block
When environments are automatically initialized in TSO/E
Initializing environments for user-written TMPs
When environments are automatically initialized in MVS
Types of environments - integrated and not integrated into TSO/E
Characteristics of a Language Processor Environment
Flags and corresponding masks
Module name table
Relationship of fields in module name table to types of environments
Host command environment table
Function package table
Values provided in the three default parameters modules
How IRXINIT determines what values to use for the environment
Values IRXINIT uses to initialize environments
Chains of environments and how environments are located
Locating a Language Processor Environment
Changing the default values for initializing an environment
Providing your own parameters modules
Changing values for ISPF
Changing values for TSO/E
Changing values for TSO/E and ISPF
Changing values for Non-TSO/E
Considerations for providing parameters modules
Specifying values for different environments
Parameters you cannot change
Parameters you can use in any Language Processor Environment
Parameters you can use for environments that are integrated into TSO/E
Parameters you can use for environments that are not integrated into TSO/E
Flag settings for environments initialized for TSO/E and ISPF
Using SYSPROC and SYSEXEC for REXX execs
Compressing REXX execs
Control blocks created for a Language Processor Environment
Format of the environment block (ENVBLOCK)
Format of the parameter block (PARMBLOCK)
Format of the work block extension
Format of the REXX vector of external entry points
Changing the maximum number of environments in an address space
Using the data stack in different environments
Initialization and termination routines
Initialization routine - IRXINIT
Entry specifications
Parameters
Specifying how REXX obtains storage in the environment
How IRXINIT determines what values to use for the environment
Parameters module and in-storage parameter list
Specifying values for the new environment
Return specifications
Output parameters
Return codes
Termination routine - IRXTERM
Entry specifications
Parameters
Return specifications
Return codes
Replaceable routines and exits
Replaceable routines
General considerations
Using the environment block address
Installing replaceable routines
Exec load routine
Entry specifications
Parameters
Functions you can specify for parameter 1
Format of the exec block
Loading execs using an extended exec name
Format of the in-storage control block
Return specifications
Return codes
Input/Output routine
Entry specifications
Parameters
Functions supported for the I/O routine
Buffer and buffer length parameters
Line number parameter
Data set information block
Return specifications
Return codes
Host command environment routine
Entry specifications
Parameters
Error recovery
Return specifications
Return codes
Data stack routine
Entry specifications
Parameters
Functions supported for the data stack routine
Return specifications
Return codes
Storage management routine
Entry specifications
Parameters
Return specifications
Return codes
User ID routine
Entry specifications
Parameters
Functions supported for the user ID routine
Return specifications
Return codes
Message identifier routine
Entry specifications
Parameters
Return specifications
Return Codes
REXX exit routines
Exits for Language Processor Environment initialization and termination
Exec initialization and termination exits
Exec processing (IRXEXEC) exit routine
Attention handling exit routine
Double-byte character set (DBCS) support
General description
Enabling DBCS data operations and symbol use
Symbols and strings
DBCS-Only Symbols and Mixed SBCS/DBCS Symbols
DBCS-Only Strings and Mixed SBCS/DBCS Strings
Validation
DBCS Symbol Validation
Mixed String Validation
Using DBCS symbols as variable names or labels
Instruction examples
PARSE
PUSH and QUEUE
SAY and TRACE
UPPER
DBCS function handling
Built-in Function Examples
ABBREV
COMPARE
COPIES
DATATYPE
FIND
INDEX, POS, and LASTPOS
INSERT and OVERLAY
JUSTIFY
LENGTH
SPACE
STRIP
SUBSTR and DELSTR
SUBWORD and DELWORD
TRANSLATE
VERIFY
WORD, WORDINDEX, and WORDLENGTH
WORDS
WORDPOS
DBCS processing functions
Counting Option
Function descriptions
DBADJUST
DBBRACKET
DBCENTER
DBCJUSTIFY
DBLEFT
DBRIGHT
DBRLEFT
DBRRIGHT
DBTODBCS
DBTOSBCS
DBUNBRACKET
DBVALIDATE
DBWIDTH
IRXTERMA routine
Entry specifications
Parameters
Return specifications
Return codes
Writing REXX Execs to perform MVS operator activities
Activating a console session and issuing MVS commands
Using the CONSOLE Host command environment
Processing messages during a console session
Using the CART to associate commands and their responses
Considerations for Multiple Applications
Example of Determining Results From Commands in One Exec
Additional variables that GETMSG sets
Variables GETMSG sets for the entire message
Variables GETMSG sets for each line of message text
REXX symbol and hexadecimal code cross-reference