©
unknownartist@newsgroup
This program shows another way to get the following information for all opened screens:
/* REXX - EXEC TO LIST ALL ACTIVE ISPF SCREENS
*/
ADDRESS ISPEXEC "VGET ZSCREEN"
TCBP=PTR(132+PTR(540)) /* CURRENT ISPTASK TCB */
TCBP=PTR(TCBP+132) /* ISPMAIN TCB VIA TCBOTC */
TCBP=PTR(TCBP+136) /* ISPTASK TCB VIA TCBLTC */
DO WHILE TCBP <> 0
X=TLDID(TCBP)
INFO = '> TCB='D2X(TCBP)'; SCREEN NUMBER='SCRNR'; SCRNAME='SCRNAME
IF SCRNR = ZSCREEN THEN INFO = INFO "*** ACTIVE SCREEN ***"
SAY INFO
TCBP=PTR(128+TCBP) /* FOLLOW NTC */
END
RETURN
PTR: RETURN C2D(STORAGE(D2X(ARG(1)),4))
STG: RETURN STORAGE(D2X(ARG(1)),ARG(2))
TLDID:
R9=PTR(112+ARG(1))
IF STG(R9+40,4)='ISPF' & STG(R9+24,1)='00'X THEN DO
R9= PTR(R9+24)
IF R9 <>0 & STG(R9+24,1)='00'X THEN DO
SCRNR =STG(PTR(R9)+003,1)
SCRNAME=STG(PTR(R9)+852,8)
RETURN 0
END
END
RETURN 'NONE'
back to The Power of REXX