|

Chicago-Soft
ATTN: TSO Times
One Maple Street
Hanover, NH 03755
(603) 643-4002
information
@tsotimes.com

|
|
A
Full Screen REXX Exec
by Bruce Hall
Peter Vanderhaden's
FS REXX Exec (Spring 1994) is just the ISPF utility I was looking for.
Of course I modified it to suit my needs. I changed the "SAY" messages
to display as ISPF messages. I gave the file created a variable FILENAME
so FS could be stacked. I also created a custom BROWSE Panel (FSCMDBRO)
so the command I entered is displayed in place of the data set name.
FS - LISTDS CNTL ST --------------- LINE 00000000 COL 001 080
COMMAND ===> SCROLL ===> CSR
************************* TOP OF DATA *************************
USE123.CNTL
--RECFM-LRECL-BLKSIZE-DSORG--DDNAME---DISP
FB 80 3120 PO SYS00127 KEEP
--LAST USE--TRKS ALLO--TRKS USED
1994.263 45 33.32
--VOLUMES--
VOL123
*********************** BOTTOM OF DATA ************************
Next, I created another
FS-like command called FSE. FSE has the additional feature of being able
to EDIT and SAVE (actually, REPLACE or CREATE) the command output using
my FSCMDEDT PANEL.
Lastly, I put FS
and FSE in the ISPF Command Table so I don't have to prefix FS/FSE with
TSO:
ISPF Command Table...
'''' TSO 0 SELECT SUSPEND CMD(&ZPARM)
INVOKE A TSO SERVICE
'''' FS 0 SELECT SUSPEND CMD(%FS &ZPARM)
INVOKE A TSO SERVICE AND BROWSE OUTPUT
'''' FSE 0 SELECT SUSPEND CMD(%FSE &ZPARM)
INVOKE A TSO SERVICE AND EDIT OUTPUT
Download this Exec in text format (FSBROWSE.TXT)
FS FULL SCREEN BROWSE REXX EXEC
/**************** REXX ******************************/
/* FS - FULL SCREEN BROWSE OF TSO COMMAND OUTPUT */
/* SYNTAX: FS */
/****************************************************/
IF SYSVAR(SYSISPF) \= 'ACTIVE' THEN
DO
SAY 'FS ONLY RUNS UNDER ISPF.'
EXIT
END
ARG ARG1
IF LENGTH(ARG1) = 0 THEN
DO
ZEDSMSG = 'INVALID SYNTAX:'
ZEDLMSG = 'SYNTAX IS FS '
ADDRESS ISPEXEC "SETMSG MSG(ISRZ0000)"
EXIT
END
ELSE NOP
X = MSG('ON')
X = PROMPT('OFF')
X = OUTTRAP("OUTLINE.")
FILENAM = "TS"TIME('S')
"ALLOC FI("FILENAM") TRACKS SPACE(1,1) UNIT(SYSDA) NEW DDSORG(PS)",
"LRECL(132) RECFM(F,B) BLKSIZE(23364)"
""ARG1""
RETC = RC
X = OUTTRAP(OFF)
IF RETC < 0 THEN
DO
ZEDSMSG = WORD(ARG1,1) 'NOT FOUND'
ZEDLMSG = WORD(ARG1,1) 'COMMAND WAS NOT FOUND. RC'RETC
SIGNAL ENDD
END
IF RETC = 20 THEN
DO
ZEDSMSG = WORD(ARG1,1) 'NOT FOUND'
ZEDSMSG = WORD(ARG1,1) 'COMMAND WAS NOT FOUND. RC'RETC
SIGNAL ENDD
END
IF OUTLINE.0 = 0 THEN
DO
ZEDSMSG = WORD(ARG1,1) 'HAS NO FS OUTPUT'
ZEDLMSG = 'COMMAND 'WORD(ARG1,1) 'HAS NO FS OUTPUT.RC 'RETC
SIGNAL ENDD
END
"EXECIO * DISKW "FILENAM" (FINIS STEM OUTLINE."
FSCMD = ARG1
ADDRESS ISPEXEC "VPUT (FSCMD)"
ADDRESS ISPEXEC "LMINIT DATAID(IDVAR) DDNAME("FILENAM")"
ADDRESS ISPEXEC "BROWSE DATAID("IDVAR") PANEL(FSCMDBRO)"
ADDRESS ISPEXEC "LMFREE DATAID("IDVAR")"
ZEDSMSG = WORD(ARG1,1) 'COMPLETE'
ZEDLMSG = 'COMMAND 'WORD(ARG1,1) 'COMPLETE. RC 'RETC
ENDD:
ADDRESS ISPEXEC "SETMSG MSG(ISRZ000)"
X = MSG('OFF')
"FREE FI("FILENAM") DELETE"
FSE Full Screen Edit REXX Exec
/**************** REXX ******************************/
/* FSE - FULL SCREEN EDIT OF TSO COMMAND OUTPUT */
/* SYNTAX: FSE */
/****************************************************/
IF SYSVAR(SYSISPF) \= 'ACTIVE' THEN
DO
SAY 'FSE ONLY RUNS UNDER ISPF.'
EXIT
END
ARG ARG1
IF LENGTH(ARG1) = 0 THEN
DO
ZEDSMSG = 'INVALID SYNTAX:'
ZEDSMSG = 'SYNTAX IS FSE '
ADDRESS ISPEXEC "SETMSG MSG(ISRZ000)"
EXIT
END
ELSE NOP
X = MSG('ON')
X = PROMPT('OFF')
X = OUTTRAP("OUTLINE.")
FILENAM = "TS"TIME('S')
"ALLOC FI("FILENAM"+) TRACKS SPACE(1,1) UNIT(SYSDA) NEWDSORG(PS)",
"LRECL(132) RECFM(F,B) BLKSIZE(23364)"
""ARG1""
RETC = RC
X = OUTTRAP(OFF)
IF RETC < 0 THEN
DO
ZEDSMSG = WORD(ARG1,1) 'NOT FOUND'
ZEDLMSG = WORD(ARG1,1) 'COMMAND WAS NOT FOUND. RC 'RETC
SIGNAL ENDD
END
IF RETC = 20 THEN
DO
ZEDSMSG = WORD(ARG,1,) 'NOT FOUND'
ZEDLMSG = WORD(ARG1,1) 'COMMAND WAS NOT FOUND. RC 'RETC
SIGNAL ENDD
END
IF OUTLINE.0 = 0 THEN
DO
ZEDSMSG = WORD(ARG1,1) 'HAS NO FSE OUTPUT'
ZEDSMSG = 'COMMAND 'WORD(ARG1,1) 'HAS NO FSE OUTPUT. RC 'RETC
SIGNAL ENDD
END
"EXECIO * DISKW "FILENAM" (FINIS STEM OUTLINE."
FSCMD = ARG1
ADDRESS ISPEXEC "VPUT (FSCMD)"
ADDRESS ISPEXEC "LMINIT DATAID(IDVAR) DDNAME("FILENAM")"
ADDRESS ISPEXEC "EDIT DATAID("IDVAR") PANEL(FSCMDEDT) PROFILE(DATA)"
ADDRESS ISPEXEC "LMFREE DATAID("IDVAR")"
ZEDSMSG = WORD(ARG1,1) 'COMPLETE'
ZEDLMSG = 'COMMAND 'WORD(ARG1,1) 'COMPLETE. RC 'RETC
ENDD:
ADDRESS ISPEXEC "SETMSG MSG(ISRZ000)"
X = MSG('OFF')
"FREE FI("FILENAM") DELETE"
FSCMDBRO ISPF Browse Panel
)ATTR
_ TYPE(INPUT) CAPS(OFF) INTENS(HIGH) FORMAT(&MIXED)
| AREA(DYNAMIC) EXTEND(ON) SCROLL(ON)
+ TYPE(TEXT) INTENS(LOW)
! TYPE(OUTPUT) INTENS(HIGH) PAD(-)
01 TYPE(DATAOUT) INTENS(LOW)
02 TYPE(DATAOUT) INTENS(HIGH)
0B TYPE(DATAOUT) INTENS(HIGH) FORMAT(DBCS)
0C TYPE(DATAOUT) INTENS(HIGH) FORMAT(EBCDIC)
0D TYPE(DATAOUT) INTENS(HIGH) FORMAT(&MIXED)
10 TYPE(DATAOUT) INTENS(LOW) FORMAT(DBCS)
11 TYPE(DATAOUT) INTENS(LOW) FORMAT(EBCDIC)
12 TYPE(DATAOUT) INTENS(LOW) FORMAT(&MIXED)
)BODY WIDTH(&ZWIDTH) EXPAND(//)
%FS - &ZTITLE -------------/-/-----%LINE!ZLINES %COL!ZCOLUMS+
%COMMAND ===>_ZCMD / / %SCROLL ===>_Z +
|ZDATA ----------------/ /------------------|
| / / |
| -------------------/-/ ----------------|
)INIT
.HELP = ISR10000 /* DEFAULT TUTORIAL NAME */
.ZVARS = 'ZSCBR' /* SCROLL AMT VARIABLE NAME */
&ZTITLE = '&FSCMD '
&MIXED = MIX
IF (&ZPDMIX = N) /* EBCDIC MODE REQUESTED */
&MIXED = EDCDIC)
)REINIT
REFRESH(ZCMD,ZSCBR,ZDATA,ZLINES,ZCOLUMS)
.ATTRCHAR(+) = 'INTENS(&ZINTEN)'
)PROC
&ZCURSOR = .CURSOR
&ZCSROFF = .CSRPOS
&ZLVLINE = LVLINE(ZDATA)
)END
FSCMDEDT ISPF Edit Panel
)ATTR
_ TYPE(INPUT) CAPS(OFF) INTENS(HIGH) FORMAT(&MIXED)
| AREA(DYNAMIC) EXTEND(ON) SCROLL(ON) USERMOD(20)
! TYPE(OUTPUT) INTENS(HIGH) PAD(-)
01 TYPE(DATAOUT) INTENS(LOW)
02 TYPE(DATAOUT) INTENS(HIGH)
03 TYPE(DATAOUT) SKIP(ON) /* FOR TEXT ENTER CMD. FIELD */
04 TYPE(DATAIN) INTENS(LOW) CAPS(OFF) FORMAT(&MIXED) /*@OY36835*/
05 TYPE(DATAIN) INTENS(HIGH) CAPS(OFF) FORMAT(&MIXED) /*@OY36835*/
06 TYPE(DATAIN) INTENS(LOW) CAPS(IN) FORMAT(&MIXED) /*@OY36835*/
07 TYPE(DATAIN) INTENS(HIGH) CAPS(IN) FORMAT(&MIXED) /*@OY36835*/
08 TYPE(DATAIN) INTENS(LOW) FORMAT(DBCS)
09 TYPE(DATAIN) INTENS(LOW) FORMAT(EBCDIC)
0A TYPE(DATAIN) INTENS(LOW) FORMAT(&MIXED)
20 TYPE(DATAIN) INTENS(LOW) CAPS(IN) FORMAT(&MIXED)
)BODY WIDTH(&ZWIDTH) EXPAND(//)
%FSE -!ZTITLE ------------/-/----------%COLUMNS!ZCL!ZCR%%
%COMMAND ===>_ZCMD / / %SCROLL ===>_Z %
|ZDATA ---------------/-/-------------------|
| / / |
| ------------------/-/-------------------|
)INIT
.HELP = ISR20000 /* DEFAULT TUTORIAL NAME */
.ZVARS = 'ZSCED' /* SCROLL AMT VARIABLE NAME */
&MIXED = MIX /* SET FORMAT MIX */
IF (&ZPDMIX = N) /* IF EBCDIC */
/****************************************************/
IF SYSVAR(SYSISPF) \= 'ACTIVE' THEN
DO
SAY 'FSE ONLY RUNS UNDER ISPF.'
EXIT
END
ARG ARG1
IF LENGTH(ARG1) = 0 THEN
DO
ZEDSMSG = 'INVALID SYNTAX:'
ZEDSMSG = 'SYNTAX IS FSE '
ADDRESS ISPEXEC "SETMSG MSG(ISRZ000)"
EXIT
END
ELSE NOP
X = MSG('ON')
X = PROMPT('OFF')
X = OUTTRAP("OUTLINE.")
FILENAM = "TS"TIME('S')
"ALLOC FI("FILENAM"+) TRACKS SPACE(1,1) UNIT(SYSDA) NEWDSORG(PS)",
"LRE, Inc.,
Vienna, Virginia.
|
 |

|