Other Interesting Stuff

Most of it original, but some borrowed, hijacked, or stolen.

The 'good stuff' from my inventory has always been over at the REXX Language Association's free code repository.  That's not to say there isn't plenty more where that came from.  There is, and here it is!  Some of it is very old yet still works acceptably.  Some of it is specific to this employer or that one and is only useful as an example of how you might go about doing some particular task.  In any case, if you should find any of it useful, you're welcome to it.  At the ripe old age of 80, I'm unlikely to actually need any of it myself anymore.

Some of it is pretty damn good if I do say so myself.  In particular, I recommend $$JFORM , @DEIMBED , FCSUPBR , FCSUPED , FETCH , KEDBASE , SCRAMX .  Some of these are pretty complex and consequently hard to understand, but I guarantee they're worth the effort.  Send me a note at "rexxhead@yahoo.com".

Beware!  There is no FTP available for these, so 'downloading' means 'cut-and-paste'.  That often (maybe always) leaves a blank line at the end of your copy.  Much of this software will quietly malfunction if you do not excise that blank line.  Also, you will find the U.S. dollar sign present in lots of this code and that, I hear, causes non-U.S. users fits.  Sorry about that...

Code Name Type Description
$$JFORM emac Reshape JCL to a configurable standard
$$JPREP emac Clean up JCL.  Not as elaborate as $$JFORM and quicker.
$$PPREP emac Clean up PLI code
$LISTC xmp LISTC into a trap
@BRNCHID xmp BRANCHID in a message
@CKSTYLE xmp Cylindrical array processing
@CMDUPD xmp Build new entry for command table
@DEIMBED xmp Extract ISPF elements
@DISPLAY xmp Selection panel processing
@LBLCHG emac Change a paragraph label
@LBLID emac prefix a label (and all of its referents) with an identifier
@LOGMSG xmp Add a message to the message log file
@NEWPREF emac change a label prefix
@POPUP xmp Pop-up message panel
@REFIND xmp Find next occurrence
@RESTART xmp Restart an EXEC in ISPF
@TAGRET emac Tag a return-line with its entry name
@TBCLOSE xmp Close an ISPF table
@TBDISPL xmp Multiple selection panel
@TBOPEN xmp Open an ISPF table
@TBSORT xmp Complex table sort (needs TBLGEN)
@TBSPIN xmp Rip through a table
@TRACE xmp Local trace
@ZTDSELS xmp Panel handling (complex)
ABRTST xmp How to match words in a list
ACQ exec Working section for ACQUIRE;  very old code;  pre-REXXSKEL;  probably obsoleted by SEIZE
ADDMON xmp Monitor tool usage
ADDRTST xmp Exhibit how address() works
ADDSW exec Working code for ADDSKIP, ADDHELP, ADDELSE, ADDLV, ADDSW
ADDXREF exec Driver for COMPSTAT — add ISPF statistics to compiler listing
ALIASES exec Determine member aliases
ALIASGEN exec DEL/DEF ALIAS
ALLOC xmp Sure-fire allocate a dataset
ALLPLIB emac Locate all INCLUDEs in a PLI compiler listing;  used by CM
AMORTIZE exec Amortise a mortgage
APF exec Show APF libraries
ASMMAP exec Unsure — related to ASM/CICS processing
BADCOMM emac Find unclosed comments
BLKCOMM emac Change each-line comments to block comments
BODYBAR xmp BODY specification (panel)
BREAKS exec Mark breaks in a number sequence
BXTST exec Plays Marienbad
CALLEDBY emac Builds PLI CALL<->target report
CATCTS exec Develop counts-by-level for a specified catalog
CKAL demo demonstrates 'finding which word contains a string'
CKSEQ emac find breaks in a sequence #
CL emac insert change log to panel
CLIPTST demo Snip a string iteratively
CLISTLBL emac Find all CLIST labels and referents.
CMDUPD exec Update user's CMD table via 3.9
CMFLTTBL exec ISPF table -> flat file
CMMEMIDX exec create PO index member
CMRSTTBL exec Flat file -> ISPF table
COMPARM exec compiler parms for each program
COMPDT exec get compile date for load module
COMPILE exec compile/link JCL generator
COMPSTAT emac add ISPF stats to a compiler listing
CONFIG exec Display and operate on the (NMR) PROL configuration table
CR emac seed REXXSKEL to new module
CVTINFO exec CVT information display
CVTSECS exec Convert seconds to hh:mm:ss
DB2SPACE exec calc space needed
DCBTREE exec By Gilbert Saint-Flour
DECLOCN emac for ASM listing
DESCRIBE exec Display the PGMASTR (PM) table
DFLTS emac shows all the ISPSLIB default characters in a text
DFLTTLIB exec Set default table library
DIRREAD demo Display a PDS directory; not my code
DIRSHOW exec Display a PDS directory with U/L hex
DIRSTATS demo Display a PDS directory;  probably by Alastair Gray
DISP exec Display (almost) any panel
DriverExample exec Stub routine for executing a remote module
DROPDUP emac Drop duplicate lines in a dataset
DSPROF exec LISTDSI driver/display
DUMPTBL exec Print contents of an ISPF table 132-wide
EASTER exec Compute Easter for any year
EDBR exec Invoke EDIT from Browse/View
ELEMENTS emac Display element names from a PLI Attribute List
EN emac insert exec name to header
EX01 exec A beast of a test for desk-checking!
EX02 exec A beast of a test for desk-checking!
EXAMPLE data Pro-forma new paragraph used by MAKEPARA.  See documentation for REXXSKEL.
EXTTST exec RXVSAM demonstration
FCCMDUPD exec Update user command table
FCSUPBR exec Browse favorites
FCSUPED exec Edit favorites
FETCH exec Edit, Browse, or View a dataset by its nickname
FINDORIG exec By Doug Nadel;  find where THIS code is running from
FIXDCB exec Alter the DSCB of an existing dataset
FIXTBL exec Direct access to ISPF 3.9
FIXTOOL exec Report a tool-error/fix.  This never got much exercise and may be 'unfinished'.
FLIP emac Show all hidden lines;  hide all shown lines.
FTEDIT xmp Edit file-tailored text
FXCNOTE2 exec Orig by IBM;  fixes some errors in orig SMTPNOTE
GENSAR exec Generate control statements for SARBCH; very old code
GETNAME exec find username in storage
GMTOFSET exec Extract GMT offset from CVT and apply it
HURL exec Use NDM to ship specified datasets.
ICEUSER subr Table of 'special' userids
IOSTMT emac Shows all I/O statements in PL/I source.
IPLINFO exec Display IPL status information; by Mark Zelden
ISOLATE emac Show only the selected word
ISRTHDR exec Insert header lines to a dataset
ISRUDLP panel Alternate for ISPF 3.4
JCLXREF exec Analyze JCL to find TASKS, PROGRAMS, and DDNAMES
JOBID exec get JN/J# from storage
KEDBASE exec Edit/Browse/View by DDName
LA exec LISTA to the queue
LISTDSI xmp LISTDSI
MACSKEL xmp Skeleton of a macro
MAKEPARA emac Add a new blank paragraph
MARK emac Mark 'CALL' line
MASKTST demo Matching using BITAND and BITOR
MATCHMBR exec Compare 2 PDS to find missing members
MBRSTATS exec Show member-stats;  requires PIPES
MBTI exec Myers-Briggs Type Indicator
MSGLOG exec Show me my LOG.MISC
NMAR exec NMR-specific but a great example of RXVSAM use
NONOTS emac Chg all logical-NOTs to something more understandable
NORXSKEL emac Exclude all REXXSKEL lines for easier reading
ONLY emac Exclude all lines except those with the target string
OUTDENTS emac exclude all lines except those with start or end tokens
PACKLOGS exec Combine saved ISPF logs into a monthly summary
PARSEDCL emac Annotates a PL/1 DCL with information about column-locations for each field.
PDS2SEQ exec Convert a PDS to a sequential dataset
PGFS emac show all PL/I paragraph names
PLIFLOW emac Show the operational structure of a PL/I
PLISKIP emac Replaces carriage control characters in PLI source with preprocessor commands
POPINDX exec Populate the #INDEX (see CMMEMIDX) member from another dataset
POSIT emac Required by EDBR
PRDSTATS exec Update the ISPF statistics for a member
PROFILES exec manipulate one's Edit profiles
PROFVARX exec Display all the Profile Variables for a given application pool
PULLSAR exec Get SAR reports into a TSO dataset
QTABLE exec Show open ISPF tables;  by Doug Nadel
REBLOCK emac Change all BLKSIZE=xxxxx to BLKSIZE=0
RECALL exec HRECALL specified datasets
SAMPLE exec SAMPLE a PDS by looking at the first-n lines
SAVELOGS exec Call this each morning before entering ISPF to print and delete yesterday's SPFLOGx.
SCAN exec SCAN a DDName for DCB's
SCHED exec produce calendar page
SCHINIT exec init for SCHED
SCRAMX exec FTP PDS to PC
SCRMODEL exec Determine the screen model type.
SDSFXIT exec Hilite SDSF output; must have SDSFXIT0 operable.
SEARCHME exec Search the current PDS for text
SECURE exec Example of a stub to a remote routine
SETEPROF emac Build a standard ZDEFAULT edit profile
SHIP exec SHIP a dataset to another user
SHORTRX xmp REXX without REXXSKEL
SKEL xmp Ordinary panel
SKELH xmp tutorial panel
SKELT xmp TBDISPL panel
SKINNY emac Exclude all but REXXSKEL
SLICKIO emac Make PL/I FILE declarations line up neatly
SNIP emac Find long lines
SORTCMDS exec Sort a command table
SORTSTEM xmp Sort a stem array
SORTXMP xmp Using SORT utility
SPLITDO emac Split DO from IF in PLI
STAKEDIT exec alias as STAKBROW, STAKVIEW
STEPS emac exposes all EXEC statements in JCL.
STRLEN emac Insert yardstick over quoted string
STRUCT emac show the innate structure of a COBOL program
SYMDEFS exec Display all the system-level symbolics;  by Bill LaLonde
SYSAMON exec Maintain the SYSUMON VSAM file of usage stats by user and toolname.
SYSUMON exec Count tool-usage by user and month.  See SYSAMON.
SYSVARS exec show system variables
TBLGEN exec Generate ISPF table from specs
TBLMSTR exec Master table (AAMSTR) maintenance
TBSORT exec Sort an ISPF table
TRAPOUT exec SYSOUT trap
TRIMLOG exec examines LOG.MISC and discards any entries older than 60 days
TRIMPLI emac skinnies PLI listing
TSURXS exec Display all TSO userids in sorted order; by John Kalinich
UPOE@#ST subr update ISPF stats
VML xmp Chris Lewis' proof-of-concept for horizontal scolling
VSAMINIT exec writes a dummy record to a newly-created VSAM dataset, then deletes that record.
VSPACE exec computes %-used from LISTCSUM output and recommends primary space allocation if different.
VSPROC exec Demos use of RXVSAM for dealing with VSAM files
VWBR exec Invoke View from Browse.
WB emac fill in 'Written By'
WBNAME subr init for WBNAME
WHATINC emac returns a string containing all the INCLUDEs found in the source;  used by NMLIBIA
WHEREAMI exec identifies your current SMFID and NODE
WHOAMI exec identifies the caller and several other datapoints; not my code