REVIEW Release Notes for Release 47.7
REVIEW is a 3270 fullscreen TSO command processor for MVS.
REVIEW also functions correctly under TSS on MSP systems.
The source for REVIEW is available on the CBT MVS tape, and is in the public domain, as is the
data contained herein.
The REVIEW home page and FAQ can be accessed from http://www.prycroft6.com.au
You can see web release dates here.
Bug reports welcome.
Select from this list to see notes
from the following releases:
This release has built-in support for the FSHELP and FSH aliases of HEL, and includes the new
'FORMAT"/'FMT' and 'FMTVAR'/'FV' subcommands.
Note also that '=X' and '=CAN' are now valid member list subcommands.
This release allows PDS searching with '=SEARCH' from the directory list.
Use '=HELP' to see what is available from the directory list.
REMEMBER - if any members are tagged then only these members will be searched (or offloaded).
Use '=RESET' to untag all members.
This release introduces the "point-and-shoot" capability which is triggered by invoking REVIEW
with no operands.
REVIEW does a read buffer to get the DSNAME under the cursor. This works from the TSO
READY prompt (except for Session Manager which updates the screen before REVIEW gets control)
and in fullscreen mode.
For best results under ISPF, set up a PF key with
exactly as shown above.
You also may wish to set up a REVIEW PF key with
to allow point-and-shoot recursive REVIEWs.
Note that a recursive REVIEW with no operands is terminated unless a point-and-shoot DSNAME is
found. This is to avoid TSO prompting with no ability to interrupt out of it.
Also note that for point-and-shoot purposes, a member name is NOT considered to be part of a
R28.1 allows the S member selection code even for same-named members in a concatenation.
R28.2 restores the terminal to line mode when "point 'n' shoot" can't process a data set.
Also, PF5/17 can now find the first member in a member list if it is tagged.
R29.0 makes the FIND, F and FINDNOT subcommands case insensitive.
FINDCHR, FC and FCN remain case sensitive.
FINDPIC, FP and FPN have been added. eg. FP ### looks
for 3 digits.
These commands can all be selected from the member list to search the whole file (one or more
A RACROUTE is now issued for non-pre-allocated non-VSAM data sets on ACF2 systems to avoid
leaving a data set allocated after a S913 abend.
(OPEN ABEND EXIT processing handles this for RACF systems since R26.0.)
The screen buffer has been enlarged so that REVIEW may now actually work on a 62 by 160 screen (logic added 4 and a half years ago).
R29.1 no longer displays ?? under AC for unauthorized program objects.
R29.2 fixes case insensitive searches with ASCII ON. Picture searches are not allowed with
ASCII ON. Case insensitivity is ignored if there are no alphabetics in the search
argument, thus speeding up searches.
=SEARCH status indicators are improved.
R29.3 fixes ZAP IDR formatting when ESDID values are invalid.
R29.4 fixes recursion detection, fixes searching for data specified with no trailing quote, and
allows the use of double-quotes for quoting strings. Eg. FIND "=C'FRED',"
R29.5 enhances DEBUG output for diagnosis purposes.
R29.6 fixes 2 possible S0C4 problems with unexpectedly long input, and allows finding a quote
character. Eg. FIND ' and FIND "
Note that REVSMF has minor updates for formatting CICS and STOTEK silo (SLSS) SMF records.
R29.7 fixes SUB. (SUBMIT still worked.)
R29.8 fixes RDW handling for non-VSAM DSECT formatting.
Note that REVSMF can extract some WLM service class statistics from type 72 subtype 3 RMF SMF
R29.9 fixes an error handling QUERY TGET data lengths longer than 256 bytes. The extra
data length overlaid the display translate table which caused corrupted data display and
sometimes caused terminal errors requiring TSO session cancellation. (The reported
observation was with CM/2 terminal emulation under OS/2.) And now a word about IDRs in
Data from IDRs is formatted when REVIEWing associated CESD blocks (when scrolled right past
the block itself) and when REVIEWING the IDRs themselves. Translation and User IDRs
are each a single logical record which can be spanned over many physical records. For
these 2 types only the last entry is formatted so that for simple load modules with few
CSECTS you do not have to scroll right much, if at all. For load modules with many
CSECTs it is best to view the CESDs to get translation and IDENTIFY details pertaining to
each ESD. This data comes from the IDRs located after the CESDs. Therefore the
data can only be displayed if scrolling down to these IDRs has occurred. For simple
load modules the first screenful is usually sufficient, while for the nucleus, for example,
one has to scroll down hundreds of lines before scrolling up again to get the formatted
data. (Caching of records does not occur in pre-XA systems so only data from blocks on
the screen can be formatted.) Only one ESD per CESD record is formatted per page, so
left/right scrolling across a 15-page area is required to see all formatted ESDs in a
many-CSECTed program (because a CESD can have data about up to 15 ESDs). (Individual
ZAP IDR entries are formatted 2 to a page, and also use left/right scrolling to access
different entries.) R29.9 fixes a logic error formatting IDR data for ESD entries. After the screen records were processed the last screen record was processed again
from cache, upsetting the assembly of the logical record.
A design capacity limitation is still evident when looking at a couple of programs from
SYS1.LINKLIB (such as ARCCTL) causing display errors when many (hundreds) CSECTs were
compiled in the same compilation run. This is not a problem for the nucleus. The link
edit IDR is a fixed-length fixed-format record formatted by REVIEW. OW29593 adds 4
bytes (the time in packed decimal) to it. R29.9 should now format this IDR layout
also. Since the binder "name" is in plain text, the name will be replaced by the
HH:MM:SS of the bind when the data of this extended IDR is broken out.
R29.9 should also fix a couple of bugs in formatting IMS details.
Personally, I blame bitrot to code not tested in 10 years.
R30.0 adds "jump from leader dots" where a member can be selected by placing the cursor on a
member list dot without actually typing the S member selection code. A VTOC can now be
REVIEWed by specifying the quoted data set name 'FORMAT4.DSCB' and supplying a volume serial
number with the VOLUME operand. While REVIEWing a VTOC the format-1 DSCBs can be formatted
with the FORMAT ON subcommand. Support for the logical PARMLIB service of OS/390 1.2 (and
later) is accessed by a request to REVIEW the PARMLIB file when no PARMLIB file is allocated.
(ie. REV PARMLIB F)
R30.1 fixes a bug where issuing a command RECALL on a wide screen caused all data except the
recalled command to be cleared from the screen. This was caused by calculating the buffer
start address for the wide screen, but leaving the end address for an 80-column screen.
This made the end address less than the start address, so an attempt to clear the primary
input area cleared to the end of the screen and wrapped around to clear the top of the screen.
R30.2 fixes a S0C4 abend caused by an incorrect attempt to restore the primary command in the
TSO ECT after a HELP session had ended. This was most obvious on recursive HELPs with missing
R30.3 fixes recursive REVIEW prompting problems by turning off fullscreen mode, thus allowing
line mode replies to prompts. The STTMPMD macros were commented out to allow the receiving of
messages while in REVIEW under OS/390 2.4. These can now be reactivated for later
releases, but probably only have an effect if TSO/E Session Manager is used. One user
complained that the directory area wasn't big enough for a specific PDS so it has been increased
from 512K to 768K. The "cocktail-shaker" improvement to bubble sort was added for some
fixed-offset sorts for PDS directory sorting to provide some modest but perceptible sort time
R31.0 provides PDS facilities accessible from the directory display screen.
=SETFILE allows the setting of the output DDname, so it can be changed from SYSUT2. (This
has no effect on the CUT and ADD subcommands of "REVIEW-proper".)
=DELINK can now be used to invoke DELINKI to delink load modules.
=OFFLOAD can now offload load modules to fixed-length 80-byte records.
=PDSLOAD can invoke REVLMOD or PDSLOAD (depending on PDS RECFM) to reload offloaded members.
=HELP screen split into 2 screens.
REVSMF no longer link-edited into REVIEW. REVSMF made RMODE=ANY.
R32.0 adds ZIP and PCX file handling. ZIP directories can be formatted if the ZIP file is
a DASD sequential file. ASEXZIPD from ASE can be invoked to unzip data.
Unzipped data can be REVIEWed and CUT to an output
file. 1-bit, 4-bit and 8-bit single-plane Paintbrush (ZSoft's PCX file format) can be
rendered on a 3270 graphics TSO terminal. Character (raster) graphics done by REVIEW.
GDDM called for vector graphics terminals. (GDDM base now part of OS/390. Put
the SADMMOD data set in the linklist.) PICDATA allows the porting of a picture into other
Assembler 3270 applications. DIV improved a bit for ZIP file data handling - previously
overhead increased exponentially with record number. (DIV here is REVIEW's internal record
R32.1 fixes IMS ACBLIB offset bugs and adds Y2K windowing for IMS ACBLIBs which only use 3 bytes
(YYDDDF) for the date.
R32.2 fixes 'PDSE' literal overlaying RMODE=24 program size total, and using the wrong register
to branch after a zip file error. Recognition of low-level qualifiers now handles mixed
R32.3 handles 8K and 16K DB2 pages sizes.
R33.0 adds the 'H' member selection code to show program history. For PDS load modules this is
the same as 'S' and scrolling right. For PDSE program objects IEWBFDAT is invoked and the
results (as opposed to the actual member contents) are REVIEWed.
R34.0 replicates nearly all of the PDS facilities for HFS files including REVIEW/EDIT/BROWSE,
global SEARCH, program history, directory SORT, and entry tagging. ZIP files are
recognised if they are HFS files. HFS PCX files are recognised.
(NULL) is now not
shown for zero-length records unless HEX or FMT is on. LRECL=X is now supported up to
65535 bytes long. DB2 rows are now only extracted when the first page is recognised as a
header page, and then any page size should now be handled correctly (assuming it is a multiple
of 4K). The slash ('/') selection code was added (for HFS and PDS/PDSE) to allow the
"specification" of the DATA operand at the member or HFS file level. '/' can be used to
inhibit the default processing of ZIP and PCX files. HFS explorer like navigation is done
by selecting a subdirectory to make the current directory, or PF3 up to parent directory.
PF3 from Root ends REVIEW. Example:
REVIEW /etc/dce QUICK
BUT no operands are allowed so REVIEW attempts to show directory '/etc/dce QUICK/' which
gets a RC=00000081 RSN=055E0072 because it doesn't exist. So, PF3 which REVIEWs directory
'/etc/' with the display positioned to 'dce'. <NEWLINE> and <ENTER> selects
the 'dce' subdirectory so REVIEW now shows '/etc/dce/'.
R34.1 fixes the S0C9 abend when the 'SMF' command is issued.
REVIEW has several built-in formats which are pre-coded examples of the general DSECT formatting
**VTOC** - formats DSCB-1 records. (DS1SMSFG improved with R34.0).
Activate with FMT (or FMT ON)
when REVIEWing a VTOC.
*DB2TBL* - shows full Row-ID (RID) of extracted DB2 rows.
*ZIPFILE - formats ZIP central directory records.
*OBJHIST - formats data extracted by REVIEW from Binder API calls.
"Normal" REVIEWing of data is performed by the REVIEW2 CSECT. This operates in 24-bit addressing
mode, unless an HFS file is being REVIEWed, whereupon REVIEW2 receives control from REVHFS in
31-bit addressing mode. All USS calls are done with AMODE=31. REVHFS provides
routines for READ, CHECK, NOTE and POINT which are pointed to by a fake DCB which is used by the
standard BSAM macros in REVIEW2. All Binder dialogs (Fast Data Access for PDSEs; full API for
HFS) take place with AMODE=31. ISPLINK is invoked with AMODE=31 for HFS files, and
AMODE=24 for PDS/PDSE members. GDDM is called with AMODE=31.
R35.0 provides another replication of directory processing, this time for unconcatenated PDSE
program object data sets. The REVIEW CSECT passes control to REVPDSE instead of REVPODIR
when a single PDSE with RECFM=U is being REVIEWed. REVPDSE checks that it is a program
object library - if not control is transferred to REVPODIR. If it is REVPDSE performs all
directory, formatting and command handling. Why this duplication? Because REVPDSE
(actually cloned from REVHFDIR) can display long alias names, as well as program object-only
attributes which can be accessed by DESERV like date/time/job, Program Management version, DLL
enablement, etc. Because REVPDSE only processes program object libraries a few "normal"
facilities are not available, such as delinking, offloading and edit. And because there
are no output facilities there is no =SETFILE command. Each of the three directory
processors (REVPODIR, REVHFDIR and REVPDSE) has its own set of help panels accessed with '=?' or
'=HELP'. REVPODIR was designed to fit details from as many members as possible into its
internal storage, and would require a rewrite to handle long member names. REVPODIR has
several entry formats for use with different member types. REVHFDIR and REVPDSE have
fixed-format internal entries with a variable-length name at the end. REVHFDIR acquires
128K (with LOC=ANY) which is retained until the end of the REVIEW session. REVPODIR and
REVPDSE acquire from 8K to 768K (variable GETMAIN) below the line.
After the directory has been read unused space is freed. As a result, for REVPODIR and
REVPDSE an =REFRESH causes the whole area to be freed, reacquired, and excess freed (so there is
room for any new members).
When a long member name (which must therefore be an alias) is selected for REVIEW or BROWSE, the
real member name (maximum 8 bytes long) is passed to REVIEW2 or ISPF, as appropriate.
DESERV code is executed with AMODE=31 for access to GET_ALL buffers returned above the line.
The RMODE=24 program size total on the END line of the member list only includes RMODE=24
segments of program objects with more than one segment. (I believe "more than one" means
"two". That is, I don't think a program can have more than two segments (currently).)
On a OS/390 2.7 system with DFSMS 1.5, pointing SYSLMOD to a PDSE yields a PM3 object.
Copying a load module to a PDSE yields a PM1 object. When copying to a PDS with ISPF
option 3.3 copy the real member first, then its aliases (without leaving the member list) to
avoid orphan aliases. When copying to a PDSE, select the real member AND all its aliases
BEFORE pressing ENTER.
REVSRCH was given a parameter list so it does not have to be aware of the working storage
structure of REVPODIR and REVPDSE. REVHFDIR does not use the parameter list because it
drives the searching of HFS files. When called from REVPDSE, REVSRCH always uses the real member
name, but for PDSEs the results are the same (because PDSEs cannot have orphan aliases).
REVIEW is 20 years old this month (19 Jan 2001). Happy Birthday!
And thank you, Bill, for writing it.
R36.0 (2002-January) adds things in these areas:
TSO command management;
UNIX file symbolic links.
(1) TSO command feedback is improved by reporting any non-zero return code or abend code in the
top line message after the command has ended. Also, for systems without TSO/E, the TSO
command is invoked by ATTACH with SZERO=NO to insulate REVIEW from abends by the TSO command,
and to avoid abends when the TSO command does not restore registers properly.
This is mainly aimed at MVS 3.8 systems because TSOEXEC (supplied by TSO/E) already provides
(2) SZERO=NO has been added to all ATTACH calls by REVIEW subroutines to maximise memory
clean-up by the system after a utility has been called.
FREEPOOL macros have been added after all QSAM CLOSE macros. This has been done to
conserve region storage which can be exhausted by several recursive REVIEW sessions, mainly
observed on 3.8.
(3) The SWAP command has been added. This transforms nested REVIEW sessions started by TSO
REV or FSH commands inside REVIEW/FSHELP into parallel sessions. This makes the sessions
accessible without the need to terminate more recent sessions. SWAP LIST can be used to
list the accessible sessions. This SWAP processing has nothing to do with the SWAP of
(4) In some cases, REVIEW can be run as an ISPF application. The significant work of
adding dialog support to the directory displays has not been done, so only files without
directories can be REVIEWed in an ISPF display. So, PDSs, PDSEs, HFS files and partitioned
subsystem data sets are excluded. DSORG=PS,IS,DA,VS data sets can have their data shown by
REVIEW in an ISPF display. ISPF split screen processing is then available, and ISPF
handles the TSO subcommand.
Install REVPANEL to ISPPLIB
Install REVPROF to ISPPROF.
Run on MVS/ESA or later.
Separate from the REVIEW ISPF dialog aspect, other changes are:
(a) When the OS is OS/390 2.10 or later REVIEW will use the new ISPF variables to access the
data set name under the cursor for "point and shoot" invocations rather than relying on ISPF's
internal structure to find the screen image and cursor location. This has the added
benefit of not requiring the MODE(FSCR specification.
(b) Also under OS/390 2.10 or later in an ISPF environment REVIEW will access ISPF variables to
determine extended colour, highlighting and graphic escape support instead of issuing a Read
Partition (Query) to the terminal. This means (i) that REVIEW will initialize faster, and
(ii) REVIEW will not render Paintbrush pictures.
REVIEW now has an XISPMODE (or X for short) operand which causes REVIEW to revert to
pre-R36.0 behaviour in terms of data display (ISPF will not be used) and determining screen
attributes (a Query will be performed if appropriate, thus making available any graphics
capabilities which would allow the rendering of picture images).
(5) When looking at UNIX directories, if the directory entry is a symbolic link then the link
value is shown in green. This should assist UNIX file administration because it can now be
seen which files are "real" and which are accessed via symbolic substitution.
R36.1, R36.2, R36.3 and R36.4 were small bug fixes in the main.
R36.5 changes ZIP directory formatting to handle 10 decimal digits for the compressed and
uncompressed file sizes, which is the required number of digits to report any value of an
R36.5 also adds the A selection code for UNIX files, which instructs REVIEW to treat the
selected file as an ASCII text file. Not only is ASCII-to-EBCDIC translation activated,
but the end of line trigger is changed from the EBCDIC New Line (NL=x'15') to the ASCII Line
Feed (LF=x'0A'). If the LF is immediately preceded by a carriage return (CR=x'0D') then it
is also not shown in the display.
R36.6 fixes subsystem allocation which was probably broken years ago when support was added to
REVIEW VTOCs when the data set name of 'FORMAT4.DSCB' was specified. Bug reported by David
R36.7 fixes IKT00405I SCREEN ERASURE CAUSED BY ERROR RECOVERY PROCEDURE after an ISPF Edit or
Browse changes the screen to a smaller size and then REVIEW tries to write data to the larger
size. Bug reported by Mark Zelden who also reported a bug in REVSMF when formatting SMF
type 250 (TSOMON) records: an S0C4 in REVSMF would occur because the target of an MVC
instruction loading a literal used R7 as the base instead of R6.
R37.0 (2003-October) implements a major internal reoganisation.
Much of the triplicated code from the directory
handlers has been unified into commonly callable routines. Several
facilities only available while in "REVIEW data mode"
are now available from directory displays as well. Examples
of such facilities include the TSO and SWAP commands, the ability
to set PFK values, and the ability to run as an ISPF dialog.
The list of CSECTs making up the REVIEW command processor are:
REVIEW - entry point to perform parsing and initialisation.
- main "browse file data" processor.
REVPCL - REVIEW
TSO parsing parameters.
HELPCL - FSHELP TSO parsing parameters.
- formerly REVPODIR - format, display and navigate PDS directories.
REVSORTE - PDS directory sort enhancer.
REVALCO - allocate and
serialize sequential output file.
REVDALO - free and deq sequential
REVOFFLD - sequentialize PDS members.
- search PDS members for data.
REVISPF - invoke ISPF Edit, Browse
or View functions.
REVLOAD - invoke PDSLOAD or REVLMOD to load
new PDS members.
REVDLNK - invoke DELINKI to delink load modules.
REVDIV - cache reviewed data in virtual storage.
REVPNS - determine
point-and-shoot data set name.
REVHIST - invoke Binder to show
REVIMAGE - show picture using raster graphics.
REVGDDM - show picture using vector graphics.
REVUNIX - formerly
REVHFDIR - format, display and navigate UNIX directories, manage
UNIX file search, and set up for UNIX data REVIEW.
format, display and navigate PDSE program library directory.
- clear screen buffer and initialize common first 2 lines.
- perform all TSO terminal communication using ISPF or TPUT/TGET.
- house and retrieve common fullscreen messages.
FINDHEX, FINDCHR and FINDPIC (and their respective FINDNOT commands)
have been dispensed with in favour of specifying the search argument
in an ISPF-like manner.
FIND and FINDNOT can now have a search column range specified,
as well as one of the PREFIX, SUFFIX and WORD keywords specified.
PDS(E) and UNIX files-in-a-directory SEARCH can exploit the new
VIEW has been added to the EDIT and BROWSE repetoire for invoking
REVLMOD has been enhanced to use linkage editor serialisation
(QNAME=SYSIEWLP) when updating load libraries to improve data integrity.
REVIEW has been enhanced to use ISPF serialisation (QNAME=SPFEDIT)
when updating sequential or partitioned data sets.
Directory display subcommands no longer have the '=' prefix,
and primary input text is no longer interpreted as a LOCATE request
Directory displays no longer have a separate set of PFK values
A SORT command is available to request the sorting
of directory entries.
Some commands such as TSO, =X, KEYS and HELP will behave
differently when REVIEW is running as an ISPF dialog because these
commands will be processed by ISPF.
R37.1 improved interfacing with ISPF when invoked under PDS running
as an ISPF dialog.
R37.2 added CLIST support to the TSO subcommand.
R37.3 corrected the display of ZIP file sizes in the 2GB to 4GB range.
R37.4 fixed the SUBMIT subcommand.
R37.5 supplied changes and fixes to
- replace calling a custom-made module from ASE
with calling the free MINIUNZ
to perform data unzipping.
- allow the processing of a ZIP archive on pre-XA systems.
- allow the LOCATE command to locate a member with an exact
name match when the member list has been sorted out of
- stop an S0C4 abend when performing a FIND on formatted data.
- fix rendering of pictures with programmed symbols broken
by the R37.0 internal program restructure.
- change PICDATA to have no operands by replacing the DDname
operand with a prompt for a data set name.
- use TPUT NOEDIT instead of TPUT FULLSCR when the screen
buffer size is larger than 4096 locations to ensure that all
MVS levels have no problem with 14-bit 3270 buffer addressing.
R38.0 (2004-May) implements REVEDIT - the REVIEW Editor.
The REVEDIT CSECT has been added to supply an editor for PDS
membersand sequential data sets. The U member selection
code and the UPDATE primary command will invoke REVEDIT, as will
the E member selection code and the EDIT primary command when
REVIEW is not running in an ISPF environment. Various other
bug fixes are also included.
The TSO HELP now has several members. REVEDIT has its own
HELP member as does each of the three directory displays. John
Kalinich has kindly coded up numerous ISPF tutorial panels which
can be displayed when a HELP command is processed by ISPF.
This release also sees the introduction of the REVGEN source
member which sets the values of switches used during conditional
With the appropriate settings in REVGEN, REVIEW can be assembled
on MVS 3.8 using the Tachyon Legacy Assembler and the SYS1.MACLIB
and SYS1.AMODGEN macro libraries from that MVS.
for the Tachyon Assembler.
Macros for BASSM and BSM are required
under MVS 3.8 to assemble REVIEW.
REVEDIT can use a data space to hold data while it is being edited.
data space can grow to 2GB subject to customisation by IEFUSI.
REVGEN can be set so that REVEDIT will use the user region to
hold the data - obviously a necessity for MVS 3.8 and other pre-ESA
R38.1 fixes a few bugs such as REVIEW accessing new extents after UPDATE
increased the size of the data set, REVEDIT SAVE handling erased
sequence numbers, and ERR being a valid abbreviation for ERROR on
a REVEDIT LOCATE command. Other changes include the removal
of the DDname operand of CUT and APPEND in favour of presenting
a panel to specify a data set name, and the addition of the COPY
command in REVEDIT. A "point-and-shoot" REVIEW also
now works when triggered from a REVEDIT session.
R38.2 fixes a few bugs such as an S0C4 when initializing as an
ISPF application under SDSF, and fixing the home location of the
cursor on screens with more than 80 columns. A member list sort
can now be triggered by placing the cursor on a column heading (as
suggested by John K.) - eligible headings have underscores. The
effective uid will be set to 0 (superuser), RACF permitting, to
improve access by REVIEW to directories and files (as suggested
by Mark Zelden). The original effective uid is restored by the time
any ISPF services are invoked. REVPANEL now has extra attribute
codes to allow the display of data with GE(ON) explicitly requested.
R38.3 fixes the problem where a cursor-triggered member sort
did not occur when the end of the member list was on the screen. Also,
the Binder API processing was cosmetically changed during diagnosis
for problems reported in IBM APARs OA08880 (ABEND0C4) and OA09299
(RC8 REASON CODE 1080003A) which are relevant for z/OS 1.5 and 1.6.
Thanks to Mark Zelden for detecting and reporting the bugs to IBM.
R38.4 fixes an S0C4 abend after VSAM OPEN failure - now the return
and reason codes are displayed properly as before - must have been
bitrot in a recent release.
R38.5 fixes two problems with REVEDIT:
- an intermittent S0C4 processing line commands.
- unreliable matching by FIND when PREFIX, SUFFIX or WORD
is specified, especially when ALL is also specified.
R38.6 fixes an S0C4 when the editor initialises after data was
found in the browser.
R39.0 (2004-December) implements syntax colouring for Assembler
The HILITE (or HI) REVEDIT subcommand has been added to control
whether syntax highlighting is to be activated or not. The
HILITE setting is saved in the profile if one exists.
The UPDATE (or UPD) operand of LOCATE has been added so
that lines updated in the current edit session can be located. This
operand (unlike the other non-numeric operands of LOCATE) is not
compatible with ISPF's Edit.
R39.1 fixes an S0C4 when HEX ON is used with records which do
not reach the end of the screen line - the terminating attribute
byte code was being moved into the edited data array corrupting
a pointer instead of to the screen buffer. Bug reported by
John H. Keith.
R39.2 makes improvements to PDS-member/UNIX-file searches performed
from directory entry list displays.
Firstly, the standard PDS directory display now can perform searches
for lowercase strings - this was just a plain bug.
Secondly, another bug where the picture attribute of the search
was not reset for a non-picture search after a picture search is
And thirdly, non-picture case-insensitive searches have been
sped up to (practically) match the performance of non-picture case-sensitive
searches. This is achieved by the simple expedient of translating
the whole record to uppercase once after it is read instead of for
each compare, thus making simple compares adequate to find the data.
Note that this does not speed up normal FIND command processing
as the data must be kept untranslated for display and other processing.
R39.3 changes behaviour/output as follows:
- EREP formatting will display the STCK value in hex if the
system does not have the STCKCONV facility (ie. is pre-SP4),
and system abend code digits have been reduced from 4 to 3.
Also, garbage will no longer be left in column 81.
- Fix intermittent incorrect numeric data such as VV.MM when
showing member details - this occurred for some members and
not others when shown on some screen lines but not others.
- A new M selection code is implemented to display
a module map for program objects (both PDSE and UNIX, but not
PDS). (The *OBJMAP* and *OBJESD*
internal formats are used to display the results.)
- REVEDIT will no longer loop (or perhaps abend) when an insert
line command is on the screen while a move/copy is pending,
and autoinsert will no longer occur if the cursor is in the
line number field of the line.
Since the [temporary] demise of JCC the MINIZIP and MINIUNZ load modules
are now included in the executable program library.
R39.4 adds support for VSAM Extended Addressable access,
although REVIEW only supports up to 1TB with this change. Also,
RLS=NRI is now specified internally to maximize access to data controlled
R40.0 (2006-April) implements REVED and REVOUT.
REVED is simply an alias of REVIEW to initiate the
edit of a sequential data set (instead of having to browse it
with REVIEW and issue the EDIT or UPDATE primary command). The
other main difference of REVED is that the meaning of the
S selection code for PDS members is to request the member
be edited with REVEDIT instead of being browsed with REVIEW.
REVOUT provides a fullscreen interface to TSO FIB commands
so that they can be used to give QUEUE-like or SDSF-like access
to job output that is independent of the level of MVS and Job
Entry Subsystem in use. Function depends on the SYSOUTTRAP facility
and uses the CLIST called REVOUTJB which should be installed
MVS 3.8 users who wish to use REVOUT may be interested in usermods
which add CLIST function including SYSOUTTRAP (ZP60014), and which
alter JES2 (ZP60015) and TSO STATUS (ZP60016) so that the TSO STATUS
command without any operand returns the status of all jobs with
names of the TSO user's id plus zero, one, two and three extra characters
(up to a maximum length of eight). A JES3 version of the ZP60015
usermod would be needed to provide similar function in a JES3 environment.
This release also rolls up bug fixes originally intended for
R39.5, most notably those debugged by Steven Becquer of Miami-Dade
County Public Schools I.T.S.
CSECTs for PDSEs and UNIX have been moved from the REVSUBS source
member to a new REVSUBS2 source member.
REVALCO (which is called for SEQLOAD and OFFLOAD from the member
list, and CUT and APPEND from data REVIEW) has been changed such
that if the specified output data set name cannot be found it will
be created. It will be a sequential data set if no member name was
supplied, or a PDS with 20 directory blocks if a member name was
supplied. In most cases the new data set's DCB will match
that of the data set being REVIEWed.
- correct DMB size count for IMS V6 and V7.
- ignore DATA operand for REVED command (do
not edit PDS directory).
- prevent S0C4 abend of REVOUT if REVOUTJB CLIST
is not installed.
- display found data hidden by ISPF split screen.
- general fixes to scrolling.
R41.0 (2007-November) rolls up changes from 40.3 onwards.
Apart from bug fixes, the main changes include:
- show step name and CPU time of active jobs in REVOUT.
- extract pictures from most types of uncompressed Windows/OS2
- use native 3270 vector graphics when available to show pictures.
- session id numbers are now fixed and not relative to current
- current session id shown as blue superscript if session
- cursor position saved and restored across SWAP commands.
- make Edit the default selection action for the REVED command.
- generate cursor autoselect S only if no primary command.
- improve TSO logic to not finish calling CLIST after subcommand
- suppress screen size switch if screen size already has 80
- use PDS member DIV caching now only if RECFM=U - the main
purpose is to allow CESD formatting show IDR details -
now also for pre-XA.
R41.0 enhancements to REVEDIT include:
- add TF and TS line commands.
- add SORT primary command.
- add CREATE and REPLACE primary commands.
- colon command prefix applies command to current line. eg.
- support ASM highlighting of source code in a jobstream.
R41.0 enhancements for MVS 3.8 also include:
REVSMF can now format data from MF/1 records (types 70 to 74).
Of the SMF records produced by MVS 3.8, only types 73 and 74 from
MF/1 seem to be sensitive to left/right scrolling.
As of R41.0 REVIEW will override the LRECL of SYS1.MANX and SYS1.MANY
of one thousand with ten thousand because MF/1 can write records
longer than one thousand bytes. REVIEW will continue to override
the blocksize of SYS1.LOGREC of 40 with 1944.
R41.1 changes REVEDIT to avoid S0C4 abend after a TF line
command in ESA (data space) mode, and also adds minor improvements
to JCL syntax highlighting.
R41.2 fixes some things serious (like S0C4 moving lines
to before the current top of screen) and not so serious (like the
new members added by a PDSLOAD into an empty PDS can be seen without
having to scroll up), and also adds some features.
REVEDIT can now be invoked in VIEW mode (where data set
serialization is not performed and SAVE is disabled) and
REVEDIT also now supports UNDO and REDO by employing
a recovery data set called prefix.REVEDIT#.BACKUP where #
is the screen number.
Note that recovery is manual, but can be performed by REVIEWing
the recovery data set, using NEWTOP to access deleted members
if the existing member is corrupt - not that it should be, using
CUT to copy the records to a new data set, and editing the
new data set and shifting all data to the left to restore proper
The recovery data set should be deleted to re-enable UNDO/REDO
(and recovery) for that screen session number.
UNDO OFF is available to stop undo/recovery processing
if you find it is adding too much to response time. And then
there is UNDO ON for when you find that the overhead isn't
so bad after all.
R41.3 fixes an error where the editor tries to move 8
bytes into 4 bytes when only 4 were needed. Because it was
at the end of a page (most of the time) the result could be harmless,
a mysterious storage overlay, or an S0C4 abend.
R41.4 fixes an S0C4 abend encountered after an UNDO was
requested and the post-UNDO display position was not Top-of-Data
(as in UP MAX). (If the post-UNDO display position was line zero
then was no problem.)
A check of the ISPF panel dynamic area size during initialization
(testing that it matched expected results based on the screen size)
has been removed in the hope that this allows more ISPF application
REVIEW sessions on wide screens.
R41.5 fixes several basic bugs. When a block was
excluded which incorporated the current top display line REVEDIT
lost track of, well, reality, so things like line numbers became
corrupt. LOCATE by line number was fixed as it was just plain
wrong with excluded lines because it invoked UP or DOWN scrolling
which count display lines, not data records.
As well as OFF, JCL, ASM and AUTO,
now PLI, CLIST and DATA are valid operands
of the HILITE or HI subcommand.
/* ... */ comments are now highlighted as such, PL/I column
1 and pre-processor statements are shown in blue, and Assembler
labels can now have non-trailing ampersands in other than the first
position not flagged as an error.
A leading *PROCESS statement with a semicolon is taken
to indicate PL/I source, while one without a semicolon is taken
to indicate Assembler source. MAR or MARGINS is not
JCL validation has been extended in some areas. The REGION
parameter on EXEC and JOB statements is validated mainly to detect
post-XA values on pre-XA systems.
For JCL DD statements, plain data set names are validated
and underscored if cataloged and shown in blue if not cataloged. If
a single volume is specified without parentheses it
is length-checked, and for MVS/370 systems an attempt is
made to see if it is an online DASD volume. If it is online
it is underscored, and its generic device type designation is shown
in that line's command area at the left of the screen.
There is no cross-checking with the catalog entry vs VOL=SER
in the JCL, nor with the volume device type vs the UNIT value in
R41.6 changes include:
- REVEDIT backup file now uses the userid as the high-level
qualifier when PROFILE NOPREFIX is in effect. (Reported/suggested
by Sam K.)
- Screen size now set from ISPF panel size. (Reported by John
- REVOUT will now display some rudimentry Assembler syntax
highlighting when showing Assembler listings. (Requested
by Tom A.)
- Program object PDSE directory display now
- has more SORT types (idea by C. Mac).
- shows PM sublevel in superscript (or lower case if ever
- Done some work on implementing an INFO subcommand
- not complete so not documented.
R41.7 fixes operation as an ISPF application broken when
trying to handle the case when the line mode screen size (as returned
by STSIZE) is different from the fullscreen screen size (as reflected
in the dimensions of the ISPF panel). The undocumented global
subcommand of CDE or JPA has been added.
- REVOUT Assembler listing syntax highlighting for wide screen.
- REVEDIT CREATE and REPLACE creating corrupt SPF statistics.
- REVEDIT CREATE and REPLACE RECFM=V not copying first selected
- screen size not switching for pre-coded 80-column displays.
- UNZIP temp unit of 3380 - now 3390 followed by SYSALLDA
(It was VIO originally, but large zips could cause
auxiliary storage shortages on under-configured pre-SMS systems.)
- CHANGE ALL missed occurrences of the FIND string
after syntax highlighting housekeeping used the dynamic translate
table work area thus overlaying the TRT table used by CHANGE.
- REVHIST setup for PDSEs just checked that DIV was initialized
(as it used to be not so long ago) and if it wasn't issued the
"REVIEW" internal storage exhausted
message. Now REVHIST will issue the DIV GETMAIN call for
PDSEs as it does for UNIX.
R42.0 (2008-September) adds support for DSNTYPE=LARGE
sequential data sets.
- Fix locating a ZIP archive's central directory for
- Add the RTF subcommand to output coloured print files
in RTF format.
- Enhance Assembler listing syntax highlighting to show literals
in white as REVEDIT syntax highlighting does.
- Add the D PDS member selection code so that members can
be deleted from the PDS member selection display such that
they can be restored with an R selection. This is only supported
for unconcatenated PDSs and not PDSEs (because the restore does
not work for PDSEs).
- Enhance the R PDS member selection code to restore members
deleted with a D.
- Fix various cosmetic glitches.
- Fix PDSE H errors caused by erroneous DIV processing.
- Various internal reorganizational changes such as moving
the RECALL stack from the @DATA area and placing it into an
area which is shared by all parallel sessions, and removing
the code to transfer the RECALL stack ownership during logical
screen SWAP processing. Another example is suppressing DIV processing
during searches of program libraries - no point caching data
for a single scan - which was sometimes a source of abends during
- Add the undocumented TCB (alias RB) command.
- Highlight PL/I source code in editor according to character
code points, and report unbalanced parentheses as syntax errors.
- Allow REVOUT to run as an ISPF application.
- Add the SCRNAME command to assign a new name to the
logical screen session.
- The optional operand of the SWAP subcommand can now
be NEXT, PREV or a session name, in addition to
LIST or a session id (decimal number) that were previously
- The default value of PF9 is changed from SWAP to
- An attempt is made to name logical screen sessions automatically.
Names used are OUT (for REVOUT), HELP (for FSHELP) and the last
data set name qualifier (if fewer than three qualifiers exist)
or the second-last data set name qualifier (if more than two
qualifiers exist). Names shorter than eight characters
will have a digit (2 - 9) appended to prevent duplicate session
names. A name will be left blank rather than creating
a duplicate non-blank name.
- The concurrent or parallel session count limit is increased
from 8 to 16.
- Add the N PDS member selection code which allows
a new name to be assigned to an unconcatenated PDS or data PDSE
member. The user is prompted to supply the new name when the
selection code is processed. Member names containing commas,
imbedded blanks, or code points less than a blank are rejected
(message will just say REQUEST CANCELLED).
The 26 English letters will be folded to upper case. Apart
from these restrictions any other code point you can type in
will be used as supplied in the new member name. Null
or blank input, or input entered with a key other than the <enter>
key will also cause the request to be cancelled.
- Fix to serialization bug (not supplying the data set name
to ENQ correctly) which allowed a member to be deleted,
restored or renamed while it was being edited.
- REVEDIT (Edit and View) is changed to show the search match
that the cursor has been positioned to in reverse video, as
is done by REVIEW (Browse).
- The PL/I source margins columns are extracted from the
SORMGIN, MAR or MARGINS settings from leading
*PROCESS and %PROCESS statements for syntax highlighting
R43.0 (2010-March) introduces RFE - the "REVIEW
RFE is a menu framework to allow navigation to the various
components of the package. The initial menu options are:
D - "REVLEV" - the data set list utility which is a
O - "REVOUT" - to access spooled
output which is a bit "QUEUE meets 3.8-ish".
T - "REVTSO"
- which is a bit "6-ish".
This may change to a numerical scheme later if enough other options
To assist RFE operations, the default for PFK2 is now SPLIT
which is a new global subcommand equivalent to TSO RFE. Note
that an initial RFE option can be specified as an operand of SPLIT.
Architecturally, this release sees all BSM and BASSM instructions
removed from the package. All code is now intended to run in the
31-bit addressing mode under z/OS, although the code has yet to
be compiled and tested under z/OS at the time of writing.
RFE is mainly to aid use under MVS/370, and so the 370 version
is being released first.
The source for the main load module has increased from 49.3 KLOC
to 57.8 KLOC. As well as new CSECTs delivering new function, a few
fixes were also implemented, including:
- Add EADSCB=OK settings.
- Reactivate DIV PDS member data caching under FSHELP
to stabilize scrolling when )I member inclusion is used.
- Add extended ISPF stats recognition (but not necessarily
- Preserve seconds in timestamp when processing ISPF stats.
- Recognize and handle ZIP archives in PDS members.
- When exiting from a REVIEW of a zipped file, scroll to place
that file at the top of the zip directory display, instead of
always reshowing the zip directory from the top, which was very
annoying when a ZIP archive contains many screensful of file
- Fix "fastpath" which was broken and always reported
It might have been broken by the DSNTYPE=LARGE
- Detect screen size change dynamically. This is intended
to support loss of a terminal and a LOGON RECONNECT using a
terminal with different screen dimensions.
- Assume square brackets can be rendered natively with x'AD'/x'BD'.
- Improve STAX processing for MVS/370.
- Fix an intermittent S0C4 with REVEDIT line command blocks.
- Fix an S0C4 in REVEDIT with C * * and new string
- Use userid as 2nd dsname qualifier for UNDO/REDO data set
when the prefix is not equal to the userid. This will stop other
users with your prefix hogging your UNDO/REDO and CONDENSE
data sets. (CONDENSE is used by the Z action in REVLEV.)
And you can now tell which users are making such data sets under
your high-level qualifier.
- Use Merge Sort instead of Bubble Sort for member name and
TTR sorts, reducing an initial display of REV ISPPLIB F
from minutes in some cases to sub-second. (Sorts of other member
attributes still use Bubble Sort because the field to be sorted
is not fixed. REVLEV uses Merge Sort when sorting the data set
- Add repeated-symbol optimization for triple-plane symbol
- Upgrade the N (member rename or new name)
action code dialog screen I/O.
- Prevent QSAM I/O error during REVEDIT COPY from crashing
off the whole REVIEW/RFE environment by adding EROPT=ACC to
the DCB so that the abend is considered recoverable by the SYNAD
- Add a member selection list for REVEDIT COPY from a PDS
and no member name specified. (This was the chief source
of the QSAM I/O errors mentioned above.)
- Report MEMBER NOT FOUND instead
of S013-18 for REVEDIT COPY from a PDS when the specified member
is not present.
- Verify that the UNDO/REDO data set does not exist at the
start of a REVEDIT session before allocating it. If it does
exist then report REVEDIT#.BACKUP NOT
REUSED (where # is the screen number) instead of DYNALLOC
feedback codes. It is up to the user to decide if the data
in the pre-existing data set should be used for recovery. Any
such recovery may well involve manually editing a copy of the
recovery file's member and shifting all of the data 12 columns
to the left.
- Do similar for the CONDENSE data set, except that the message
is ABORTED - CONDENSE FILE EXISTS.
It is up to the user to decide if the data in the pre-existing
data set should be used for recovery. Any such recovery would
probably involve using the REVLPDS program.
- Handle full DIV storage when loading data from REVCATCH
- was getting S0C4. ("REVCATCH" refers to the way
line mode TSO data is taken from SYSOUTTRAP and loaded into
DIV for fullscreen scrollable browsing. Look at the REVLISTC
CLIST to see an example.)
R43.2 fixes the UCB address acquisition from the TIOT
which became a bug with the 31-bit addressing conversion and which
can cause an S0C4 abend.
R43.3 fixes the display of prompting panels when running
as an ISPF application.
R43.4 completes the support necessary to process VTOCs
on EAV and data sets residing in EAS which have format-8 and format-9
DSCBs replacing the format-1 DSCB.
R43.5 fixes more AMODE-31 glitches and adds the data set
name to open file details in the display produced by the TCB
/ RB command. REVHIST has been rewritten to use the full
Binder dialog API in all cases, and is now called under z/OS for
PDS load modules as well as PDSE and HFS program objects. **-RED
ALERT-** Also fixed is the REVEDIT
data corruption of edited data by a CHANGE ALL
command which caused some data bytes to be overlaid with x'FF' when
using a data space to back the data. Sessions
on pre-ESA levels of MVS were not affected.
R43.6 fixes a S0C4 abend when the OPERANDS or MSGID
operand of FSHELP was used. This was exposed when running
R44.B (2012-October) rolls up changes from 43.6 onwards.
is an MVS/370-only OCO beta or early release prior to GA.
Apart from bug fixes, the main changes include:
- A new SETUNZ command to specify the file attributes, thereby
overriding the information in the ZIP file directory entry.
- Changes to the way member lists scroll after member selection.
- Using PDS subcommands to produce displays for the 'H' and
'M' selection code processing of load modules (via the REVUSPDS
- Adding the BOUNDS primary command in REVEDIT.
- Show data in out-of-bounds columns in blue in REVEDIT.
- Adding the TE line command for text entry in REVEDIT.
- Adding the CUT and PASTE primary commands to REVEDIT.
- Recovering from PDS directory I/O errors during INFO processing, which
includes the data set Delete function in REVLEV (data set list).
- Adding the M action code to REVLEV (data set list).
- Adding LEFT/RIGHT scrolling in REVLEV (data set list) so
that all information columns can be viewed on insufficiently
The BRVS (or B for short) undocumented operand has been added
to the REVIEW command. Its use is intended to allow the browsing
of virtual storage. When specified, the required first positional
(data set name) operand is ignored. The data is displayed under
the heading of ACTIVE, as per IPCS. About all it is currently good
for is browsing the in-core MVS/370 nucleus.
The following z/OS-only fixes were introduced into the code base:
- For program PDSE directory displays, the member name operand
of primary commands is now folded to upper case if there are
no lower case characters in any of the member names.
- For UNIX directory displays, the entries read from a directory
are now always sorted before display. Previously, if the SORT
order was "sort by name" no sorting was performed,
which could lead to an out-of-order display depending on subdirectory
MOUNT points, leading in turn to unexpected behaviour for LOCATE
Actually, the term "z/OS-only" really means "MVS/ESA
Subsequent betas ran until R44.H.
R44.0 (2014-January) is the first R44 GA release - with
REVIEW now incorporates a GIF decoder which adds GIF files
to the PCX and BMP file formats that can be decoded and displayed
on 3270 graphics terminals. Interlaced and animated GIFs are supported.
Only one cycle of the animation is currently shown. NEWTOP can be
used to manually trigger another cycle.
When programmed symbols are used for graphics, REVIEW prefers
to load the code points into the internal screen buffer from which
the 3270 data stream is built. This allows 3270 compression logic
to also be applied to graphics data, and reduces the number of TPUTs
issued. This scheme does not work well when the pictures are large
enough to require more code points than all read/write storages
can provide. The logic to build the 3270 data stream for these large
pictures has probably been broken in this release, but hopefully
it will be fixed in due course.
will now cause
the current contents of virtual storage in your TSO session address
space to be browsed. EQUATE and DROP commands have
been added. LEFT and RIGHT are repurposed in
this mode to control jumping through the storage address trace table.
LPA and JPA loaded modules, as well as (under z/OS) nucleus control
sections are automatically defined as usable symbols. LIST
(or LOCATE if you prefer) now understands storage addresses
specified much like as is done in TSO TEST. The symbol name X
can be used for the current location, as per IPCS. % and ? can
be used in the field preceding each storage word. No support for
"above the bar" storage currently exists.
The BRVS operand mentioned above has been scrapped.
Browsing z/OS UNIX zip files is now supported.
Not mentioned under R43 above is the vertical scroll bar. When
not running as an ISPF application, and when the PDS member list
is more than a screenful, column 80 contains an indicator of the
vertical scroll location of the member list.
In response to a request, member scrolling is now a bit different.
Firstly, the member list scrolls less. The cursor is placed beside
the member just processed, but that member's jump dot is blanked,
so <enter> will just restore the cursor to home. This should
mean that all members will always be visible when they can all fit
in a single screenful.
R44.1 provides a few small adjustments:
- Avoid S013-34 abend during unzip when LRECL set by SETUNZ
- Accept lower case member selection codes when running as
an ISPF application.
- Address space virtual storage browse now uses the same translate
table as file browse.
- Add extra function to the DISPLAY subcommand:
- Single character operand (which may be unquoted or a
quoted string) specifies the code point to use to represent
non-display characters. The initial setting is to use periods.
- A multiple character operand beginning with A
specifies the 3278A display interpretation previously requested
using the DISPLAY A subcommand. The new nominal operand
- A multiple character operand beginning with T
specifies the 3278T display interpretation previously requested
using the DISPLAY T subcommand. The new nominal operand
The plan for the future is to save your preferred non-display
representative character in the profile data set.
R44.2 fixes an infinite loop when scrolling up from low
private storage towards fixed low core under z/OS. Logic did not
cater for partial page fetch protection. Also implemented is the
ability for attention/PA1 to halt an in-progress SORT subcommand in REVEDIT.
Several MVS/370 ESP releases were issued in August and September
2014 with ESP6 being the last.
R45.0 (September 2014) rolls up the defects reported from
Early Support Program up to the GA date.
- Reorganization of profile member contents, so previous PFK
defaults will be lost.
- Support for picture search when ASCII ON is set.
- Explicitly check for and disallow a request to APPEND
request to a PDS member.
- Issue RACROUTE for many non-VSAM data set accesses whenever
MVS security is active.
- Assume access is denied when the RACROUTE return code is
greater than 4.
- Add a new SB subcommand which is the same as SUBMIT
but invokes the new REVSB CLIST to prevent line-mode terminal
- Support access to large PDSE members.
- Add START alias of SPLIT.
- Change PF2 default to START since SPLIT behaves like ISPF's
- Reorganize RFE menu option numbering. Options 1, 2, 3.1
and 3.2 now exist in addition to options 3.4, 3.8 and 6.
- Support leading ampersand in command to retain command string
in input area.
- Reorganize REVPDS CSECT's internal handling of directory
- Display position number on the top line of the REVPDS member
- Various program restructuring to reduce duplicate code.
- Remember more RFE stuff in profile members, such as most
recent "other data set" history.
- Add automated EDIT recovery in option 2.
R45.1 includes the following changes:
- Fix display of ISPF statistics when 32-bit record counters
- Fix S0C4 abend which preceded freeing the VTOC of a volume
- Expand the "other data set" history list from
10 to 16, and reduce the displayed list size to the number of
entries that will fit on the screen. This fixes screen corruptions
seen on 24-line screens.
- Include new data set attributes panel before CUT
creates a new data set. The data set name is pre-primed with
the previous output data set name, if any.
- New logical/parallel sessions (from SPLIT or START)
will inherit the same screen size as existing logical sessions
instead of using the size set by STSIZE which may have changed
since RFE started.
- Output from REVIEW's CUT command is now written using
BSAM instead of QSAM to improve I/O error recovery - mainly
by eliminating unrecoverable abends that can occur when CLOSE
flushes QSAM buffers.
- Enhance REVIEW's CUT processing to support F/V/U
- Add RFE option 3.3 which exploits REVIEW's CUT logic.
Most things that REVIEW can browse can be copied, including
VSAM and BDAM files. Record truncation is reported. Truncating
blanks from fixed-length records is not considered record truncation
by RFE. As a safety feature, copying members between undefined
and defined record formats is not allowed, though it is for
sequential data sets. Alias members are copied as real members,
except if the alias is an OS/VS program and its real name member
already exists in the target library, in which case its contents
are not copied but the alias is assigned (with the userdata
copied from the source PDS) to the existing member - even if
the existing member is not the same version as exists in the
source PDS. The pre-2010 ISPF option 3.3 copying convention
should be observed: select the real members for copying, then
select the aliases. Sorting the member list into TTR order
before selecting the programs to copy may make the copying task
simpler. Note that using an asterisk to select all members
is not currently supported.
- The size of available but unused MVS/370 region virtual
storage pages is displayed in the lower right corner of the
screen - the last 12 bytes - if the last 13 bytes of the screen
are all the same character and are not in an input field. It
is shown in blue
unless less than 64KB in which case it is shown in yellow
unless it is less than 32KB in which case it is shown in red
- Fix S0C4 abend in REVEDIT when new insert line has text
added and is immediately used as the first line of a block line
- Allow REVIEW 'ACTIVE' TOP(hexvalue) to specify the
initial virtual storage display address.
R45.2 includes the following changes:
- Option 3.5 is added, providing some ability to set the version,
level and user ID for members, as well as deleting and creating
statistics for selected members.
- Option 3.3 now supports the specification of a "from"
member name of an asterisk and takes it to request the copying
of all "from" members.
- Option 3.3 alias member copy support has now been regularized
to the pre-z/OS ISPF option 3.3 standard. That is, if the alias's
real member has not already been copied in this copy session
then the alias is copied as a real member, but if the real member
has already been copied then the alias is added without re-copying
the member contents. The real name stored in the userdata of
alias programs is now no longer used by option 3.3 - but still
be on the lookout for programs with ?? in the AC column because
it probably means that an alias program was copied as a real
- Under R45.1, when copying selected members using option
3.3, the output DCB would be closed after each member was copied.
This meant that multiple type 15 SMF records were written, but
since the same files (DD allocations) were used, the EXCP counts
were cumulative. So, SMF post-processors adding up the EXCP
counts would arrive at an inflated EXCP count. Now for a PDS-to-PDS
copy (whether selected members or all members) the input and
output files go through a single OPEN/CLOSE cycle which results
in unambiguous EXCP counts and fewer SMF records.
- The SAF Router logic of the RAKF ESM was found to not look
at the offsets used by RACROUTE when constructing a SAF Router
parameter list, so RACHECK is used under MVS/370 to perform
data set access checks. (The original pointers have flags in
their high bytes while the newer pointers allow 31-bit addresses
to be specified.)
R45.3 fixes MEMBER NOT FOUND conditions reported when
browsing members after a REVEDIT OPEN (either View or Edit) does
not succeed, such as when access is denied by the system's security
R45.4 includes the following changes:
- PFK settings saved in the $$REVIEW profile member will now
be applied when REVIEW/RFE first starts up. This has been broken
- Changes to $$REVIEW settings made in option 3.4 will no
longer be discarded.
- Under MVS 3.8J with JES2, the JES2 checkpoint and SPOOL
data sets will be accessed to give improved access to jobs in
the various queues, and access to SYSOUT of jobs without held
output. Any job name filter beginning with an asterisk will
cause all jobs to be listed.
- Option 3.3 now has additional settings to control whether
existing members in the target PDS can be replaced or not, and
whether the target sequential data set is to be extended or
- Option 1 Browse will now show the status of the DATA setting
even if it is OFF. The purpose of this setting is to allow
access to the DATA operand of REVIEW when browsing non-partitioned
files. For PDS members (and for UNIX files and for jobs in REVOUT
aka option 3.8) use the S selection code for default
operation (no DATA operand) and use the / selection code
to request the display of the raw data without any interpretation
R45.5 fixes MVS/370 REVOUT function for MVS systems with
a JES which does not have x'02' in the SSCTSSID field. This includes
MVS systems not running JES2, and those running JES2 without the
TJES801 usermod applied. See http://www.j76.org/vs2/tjes801.txt
R45.6 fixes corruption to the recursion vector when cleaning
up after an option 3.3 copy "from" data set has been specified.
This corruption could lead to infinite looping when swapping screens,
and S0C1 abends when terminating a logical session.
R45.7 fixes "fastpath" I/O reduction (and the
total file byte count display), and fixes copying out fixed-length
and variable-length records for PDS member offload (instead of writing
out data from fixed low core). Menu data set name recall has also
had cursor positioning slighlty improved, and option 3.3 has had
the C and M primary action codes added, as well as
a check to prevent copying a data set to itself. Options 1 and 3.3
have had option Y/N fields added or moved.
Changes made for the unreleased R45.8 are included in this release.
R46.0 (July 2015) delivers the ability to display member
generations when looking at the member list for a Version 2 data
PDSE which is allowed to have member generations. Displaying member
generations of program library PDSEs is not currently supported.
The display of member generations is requested via the new GEN
operand of the REVIEW command. ( GEN is not a valid operand
when REVIEW is compiled for MVS/370.) GEN can be abbreviated
Further, the REFRESH or REF command of the member
list display (which causes the directory data to be refreshed from
DASD) has two new operands: G and N. The G
operand specifies that member generations are shown in the member
list, and the N operand specifies that the normal display
without member generations should be shown. Note that the G
operand will be treated as invalid unless member generations are
supported by the current library.
Member generations can be browsed by REVIEW, and data from such
members can be saved to another data set using the COPYOUT (or CUT)
Thanks to Ed Webb and John Kalinich for input regarding exploiting
the FLAG(PAGE0) option of HLASM.
R46.1 removes the old trick of searching for the TLD by
following the FSA from TCBs up the parent TCB chain to silently
discover if an ISPF environment is active or not. For an ISPF
environment to be recognized by REVIEW, a call to program ISPQRY
must issue a return code of zero. This also removes the pre-OS/390
2.10 method of obtaining the screen buffer location and cursor screen
R46.2 makes several minor changes:
- The FMTPRT command is added to REVIEW to provide
manual control over whether SYSOUT colour highlighting is active
- Note that FMTPRT also controls the truncation of
trailing blanks when a COPYOUT (CUT) is performed
with a target data set having variable-length records. This
can save a lot of space, so FMTPRT ON may be useful even
if the data is not a print file. If you want a COPYOUT to
keep trailing blanks, ensure that FMTPRT is OFF.
- The requirement that member REVPROF is in the REVPROF PDS
under MVS/370 for ISPF to perform the screen I/O is removed.
(It is still a requirement that REVPROF is in the ISPPROF PDS
under z/OS for REVIEW to operate as an ISPF application.)
- A glitch in the interaction between REVSRCH (FIND from the
member list display) and RFIND in REVEDIT such that REVEDIT's
RFIND would not subsequently find all occurrences of the current
string has been fixed.
- REVOUT now allows an operand which begins with an asterisk
to represent a request to show all jobs under MVS3.8J with JES2.
- RFE can now be invoked as an ISPF application.
- RFE primary menu options can be stacked by specifying them
on the TSO command operand separated by semicolons.
- When running as an ISPF application, a check is made for
the presence of the scroll field arrow. If it is present panel
REVPANEL is used. If it is not present then the new panel
REVPANL2 is used.
R46.3 makes several minor changes:
- The scroll field detection for selecting panel REVPANEL
or REVPANL2 is fixed for wide screens.
- A check is made that panel REVPANL2 is present before it
is used instead of REVPANEL.
- A REVEDIT open failure no longer prevents subsequent member
R46.4 was about impoving operability in the non-IBM freeware
ISPF environment. For example, recursion detection had to be switched
from looking at the caller's RB to looking at the caller's PSW address
because REVIEW was branched to and not linked to by the ISPF invocation.
R46.5 was also mainly about the new ISPF which does not
include a PDF component, so REVIEW and REVEDIT form this non-IBM
ISPF's browser and editor. The REVISPF CSECT was moved from REVSUBS
to REVSUBS2 and so is now only included in the 390 compile of REVIEW.
Other changes include:
- Preserve the change-to string across edit sessions in the
same logical screen, so it is the same as the search string
in this regard.
- Issue a message when variable-length records with trailing
blanks are detected by REVEDIT when reading the data to be edited.
- In several components, when a command with an invalid operand
is entered, the command is no longer cleared, but is instead
left on display with the cursor positioned to the invalid operand.
- The ASCII command was added to REVEDIT.
- RFIND and RCHANGE commands can now be queued
by use of a PF key assigned those commands. For example,
when entered with PF5 (when RFIND is assigned
to PF5) will function as
but the TWO
string will be remembered as the replacement string so that
PF6 (when RCHANGE is assigned to PF6) can be pressed
to effect the change.
- The KEYS command (except when intercepted by IBM's
ISPF) will now allow PF key assigned values be updated by overtyping.
- REVEDIT now implements software tabs using the new TABS
- REVEDIT now has an AUTOSAVE setting.
R46.6 delivers the following changes:
- The ability to have line labels has been added to
REVIEW and REVEDIT.
- More options have been added to the LOCATE command
in REVIEW and REVEDIT, and to the RESET command in REVEDIT.
- REVEDIT View mode now no longer automatically initializes
the UNDO (and recovery) facility.
- REVOUT (RFE option 3.8) in a MVS 3.8 JES2 environment now
by default uses direct SPOOL I/O to access held SYSOUT. The
FIB setting can be used to force the use of TSO's
OUTPUT command. The INPUT setting can be used to display
non-SYSOUT SPOOL data sets.
- REVLEV (RFE option 3.4) is now able to process unqualified
data sets which are data sets with names not entirely comprised
of valid qualifiers not exceeding 8 characters in length separated
by periods. (In the TSO and z/OS catalog context, these data
set have invalid names.)
- Removal of the internal GETSTOR macro introduced with Release
43 to tolerate the differences between the GETMAIN macros
of z/OS and MVS 3.8. (Before Release 43, the MVS 3.8 version
of REVIEW was compiled on OS/390 or z/OS. Since Release
43 the MVS 3.8 version has been compiled on MVS 3.8.) An
enhanced version of the GETMAIN macro is now used when compiling
the MVS 3.8 version of REVIEW. This version of GETMAIN is shipped
in usermod ZP60033.
- Other housekeeping and logic bugs have also been fixed.
R46.7 delivers the following improvements:
- The DESERV area size has been increased from 32KB to 512KB
so that a much larger number of member generations can
- Member generations can now be selected for ISPF Browse and
R46.8 delivers the following improvements:
- When the R member selection code is used to restore
a deleted PDS member, the STOW data is now moved to below the
line as required by STOW. This change allows the member
restore facility to now work on system levels newer
- When RACROUTE is used to check RACF access to a non-VSAM
data set before attempting an OPEN, a RACF violation will no
longer be recorded by the system if access is denied. RACHECK
processing under MVS/370 is not changed.
- The HEXX and HEXR display formats to show
character data and its hexadecimal bit patterns simultaneously
have been introduced. The original HEX command is
still available, and may optionally be modified by the
new HEXC setting.
- The size of the storage size acquired to build the 3270
data stream has been increased by 2KB to allow for the
- The non-ISPF default value of PF24 has been changed
from RECALL to HEXC.
- ZIP directory caching for z/OS UNIX now caters for directories as
large as 512KB. This allows most JAR files to be handled.
- The editor's RESET command was corrected to now also
reset the last line occupied on the screen.
- RFE option 3.5 now supports 8-character userid overtyping.
R47.0 (February 2017) makes the following changes:
- The NAMESCRN routine was moved to its own CSECT called REVNAME.
REVNAME is now called at strategic times to try to keep the
screen name more relevant for its current option, instead of
just once when the logical session is created.
- The characters shown in the HEXX display are now
correct and are no longer repetitions of the first visible
character of the record.
- REVEDIT now fully supports the &SYSUID
symbol in the DSNAME value of a JCL DD statement for catalog
- In a MVS 3.8 JES2 environment, REVOUT (RFE option 3.8) will
show the SYSOUT record count for jobs on the OUTPUT or
PRTPUN queues. The total record count for all selected jobs
is shown on the top line. Note that the counts do not include
records in non-SYSOUT spooled data sets.
- RFE option 3.3 will now retain the primary input across
a cursor selection of a data set name from the historical
data set list.
- The inline GETSTOR macro has made a comeback to allow some
storage requests to request storage above the line under
z/OS, while requesting storage below the line on some system
levels such as MVS/XA even when the system provides storage
above the line. Note that the type of storage requested
is decided at compile time and not at execution time.
- The MVS/370 load module is marked as AMODE31 to allow it
to run on z/OS where it would otherwise abend with an S0C4. It
will place various areas above the line, including data
being held for edit. Note that not all functions of the
compiled-for-MVS/370 REVIEW/RFE package function currectly
under z/OS. Commands which look at system control
blocks are liable to abend, but at least the basic data
set processing and 3270 functionality works as expected
R47.1 fixes a few bugs and adds a couple of features:
- A REVIEW of a tape data set abended with S0C4 but RFE option
1 of the same data set worked. This was caused by a failure
to perform screen handling initialization logic in the
case of the REVIEW command.
- An attempt has been made to support the Large Block Interface
for tapes containing blocks longer than 32760 bytes, but this
indication has been replaced by
to flag alias members so that the TTR of each alias can still
- Ampersands in instruction mnemonics are no longer flagged
as assembler syntax errors.
- The editor's EXCLUDE command has new UPDATED
and NOUPDATE operands to control exclusion based on whether
records have been updated in the current edit session or not.
- Parsing of command keyword operands now correctly enforces
minimum keyword abbreviations.
- Minor formatting properties of HELP members' Function sections
have been standardized.
- PDS searching in RFE (but not REVIEW) could skip some members
improperly PDS searching in RFE option 3.5 (member statistics)
- The infinite loop in the editor's RESET command when the
command did not cause the reset of either commands or labels
has been corrected.
- Segment overlay programs are now fully supported
in terms of program library management. This means that
they can now be offloaded and reloaded, and their program library
can now be compressed when the R47.1 version of the
REVLMOD and REVLPDS programs are also installed.
- $SEGTAB and $ENTAB are now also shown when scrolled right
passed the end of CESD blocks in REVIEW.
- Some improvements in the handling of insert lines when tabs
are active have been implemented.
R47.2 fixes a few bugs:
- A Sense ID CCW is no longer issued by a REVLEV (RFE
option 3.4) for a System/360 DASD (23nn) device type. This avoids
the IEA000I command reject message. It is still issued for System/370
DASD (33nn) devices to report the device and control unit models.
Thanks to Dave Kreiss.
- The variable-length GETMAIN performed after opening the
data set to be browsed by REVIEW will now request storage above
the line under z/OS when processing non-VSAM files including
UNIX files. This area includes the READ buffer and the record
address checkpoint area. This change improves the likelihood
that a REVIEW of a tape data set using the large block interface
(LBI) will succeed, especially when using a large screen size.
The buffers for terminal I/O must, of course, remain below the
- If REVIEW/RFE detects that it is running under a CLIST,
a new TSO I/O stack will be created for the session,
and the original stack will be restored when the session terminates.
This change will prevent TSO commands invoked from within REVIEW
accessing and removing input on the stack which was current
when REVIEW/RFE was invoked.
- Earlier claims that complete support for segment overlay
programs had been added were premature. The support now
becomes complete with the change to allow RFE option 3.3 to
correctly copy segment overlay programs. Here are the software
levels necessary to correctly process segment overlay programs:
- To compress the program library: REVIEW R47.1 and REVLPDS
- To offload overlay programs: REVIEW R47.1.
- To reload overlay programs: REVLMOD R47.1.
- To copy overlay programs: REVIEW R47.2.
- REVIEW has a data-in-virtual (DIV) capability to
cache data in virtual storage to reduce I/O after the data has
been read once. This is exploited for a number of facilities
- accessing related IDR data when formatting CESD data
when scrolled RIGHT past the end of CESD blocks.
- holding formatted ZIP archive directory entries.
- browsing subsystem data sets (because REVIEW assumes
that NOTE/POINT is not supported by subsystems).
- holding edited TSO HELP data when REVIEW is operating
as a fullscreen TSO HELP processor. The editing consists
of removing HELP source comment records and )I (INCLUDE)
control statement records.
In regard to this last point, the editing means that the
cached data does not exactly match what is read from disk, and
so inconsistencies can become apparent when the cached data
does not fully mesh with the uncached data. To improve this,
the default cache limit has been increased from 192KB to 320KB,
REVIEW will treat the data as fully cached when the end-of-file
is first reached to avoid further I/O for that HELP display,
and "early" trimming under z/OS is dispensed with.
"Early" trimming is when some of DIV storage is freed
based on an upper limit calculation which in turn is based on
the input data set track count. This track-based calculation
has been improved for MVS/370 by acquiring the extent count
from the DEB instead of the DSCB, thereby improvong concatenated
data set support. "Late" trimming which occurs when
end-of-file is reached for subsystem data sets (for which there
is no external size indication) is retained even under z/OS.
- Assembler listing source code syntax-based colouring now
supports listings where the source statement number exceeds
99,999. The need for this was discovered when looking at the
listing for REVIEW when assembled on z/OS.
- Coloring the JES2 job log blue in REVOUT (RFE option 3.8)
has been extended to z/OS. The overly conceited scheme of comparing
the job identifier to the temporary data set name low-level
qualifier did not account for the extra qualifier of H01 being
appended under z/OS.
- REVEDIT JCL syntax highlighting for cataloged and uncataloged
data sets named with DSN= and
DSNAME= now process &SYSUID
correctly under z/OS. Previously, this worked under MVS/370
but used an incorrect ALET with the z/OS addressing.
- Internal messages related to member errors will now report
the correct member name more reliably.
- In scenarios where a sequential source of input is required
and a PDS data set name is supplied, a member selection list
can be presented from which the user can select a member. Cases
where the member has a name considered invalid by DAIR caused
screen display errors and earlier versions of REVIEW often abended.
To fix this, the name of the selected member in parentheses
is appended to the data set name, and the input is then processed
as if the user had typed in the complete PDS name and member
name specification. Note that in these scenarios it will not
be possible to process a member with a name which is considered
invalid by DAIR, even though other REVIEW and REVEDIT functions
may be able to process such members without raising an exception.
R47.3 corrects assembler listing statement number validation
so that assembler listing syntax highlighting works for statements
numbered less than 10,000. DSNC ON in REVEDIT has also been
fixed to set the correct internal flag.
R47.4 fixes a couple of possible S0C4 abends:
- When searching for lower case charaters during input, REVEDIT
was not correctly handling the case when the data length
was a multiple of 256.
- For large screens, the aquired TPUT buffer was not large
enough to cater for the HEXX display, while HEX
and HEXR were not affected.
R47.5 has a couple of small changes:
- Option 3.4 (REVLEV) now shows the correct space allocation
for multi-volume data sets. (Thanks, Shelby!)
- Option 1 can now browse virtual storage when the data set
name of 'ACTIVE' is specified.
R47.6 has a couple of small fixes:
- A command with an invalid operand in FSHELP will no longer
obliterate the primary command input area. (Thanks to John K.)
- REVEDIT JCL syntax highlighting will now correctly highlight
an invalid character in a data set name, thereby sometimes avoiding
an S0C4 abend. (Thanks to Peter G.)
R47.7 delivers several bug fixes and a couple of new features.
Some of the less obscure defect-fixing improvements include:
- Improved I/O stack handling for parallel sessions, both
when swapping sessions and terminating sessions, reducing the
problems encountered when running RFE under a shell-type CLIST.
- Fixing the S30A abend encountered when browsing zip archives
under z/OS. This abend was first discovered by browsing z/OS
UNIX jar files. It was caused by moving unzip working storage
above the line, without also changing the FREEMAIN R to FREEMAIN
- The creation of parallel sessions by a TSO RFE command,
which includes SPLIT and START command processing,
and the termination of parallel sessions no longer have any
time windows where fullscreen mode is turned off, thereby reducing
the chances that line mode messages such as job end notifications
are lost from user view without the traditional three asterisks
requiring an addtional <enter>.
- The point and shoot facility (where the cursor is
placed on a data set name on the screen at the time a TSO
REV command is issued) will now also work for a format-8
DSCB (as it does for a format-1 DSCB) when a VTOC is being browsed.
Note that in the case where a VTOC is being browsed, the cursor
does not have to be placed over the data set name, but merely
on the line showing the record having the relevant data set
name as its key.
- REVEDIT assembler source code syntax highlighting will now
correctly handle the case where two consecutive quotes are used
in a string to represent a single quote, and when the first
such quote is in column 71 and the second such quote is in column
16 of the continuation line.
Two new features suggested by Peter Glanzmann are now implemented:
- Assembler B data type items are now presented as
binary digits when DSECT formatting is activated. An underscore
is used to separate the binary octets of each byte in the data
- The new RDW command will cause the display of record
descriptor words when set to ON. The INVALID COMMAND
message will be shown when RDW is issued and RDWs are
not present. RDWs are only deemed to exist when records
are read using a DCB which specifies a variable-length record
format. Also note that for multi-segment spanned records,
the value shown as the RDW will have been constructed and will
represent byte contents which may not actually exist in the
data set being browsed.
© 2003-2017 Prycroft Six Pty Ltd - ABN 17 006 544
636- All rights reserved.