/* REXX */ MSGSTAT = MSG('OFF') /* TURN TSO/E MESSGES OFF */ /* ************************************************************** DATE CREATED: 3-MAR-00 DATE LAST MODIFIED: ORIGINAL AUTHOR: ProTech Professional Technical Servceis REXX EXEC: DDSTATUS PURPOSE: LIST CURRENT ALLOCATIONS TO SESSION DDNAMES. ***************************************************************** */ CALL LISTSTAT /* LIST STATUS */ CALL BUILDARRAY /* BUID MATRIX INFO*/ CALL SHOWSTAT /* DISPLAY INFO */ CALL EXITCOM 0 /* EXIT REXX EXEC */ LISTSTAT: X = OUTTRAP("LREC.") "LISTALC STATUS" X = OUTTRAP("OFF") IF RC ^= 0 THEN CALL EXITCOM 2 /* EXIT RC=2 */ ELSE RETURN /* RC = 0 */ BUILDARRAY: DDLIST = "" STOP = LREC.0 Y = 1 DO X = 2 TO STOP IF INDEX(LREC.X,'TERMFILE') ^= 0 THEN DO DSN.Y = WORD(LREC.X,1) DSNDD.Y = WORD(LREC.X,2) DSNDISP.Y = ' ' Y = Y+1 END ELSE IF INDEX(LREC.X,'.') ^= 0 THEN DO DSN.Y = WORD(LREC.X,1) X = X + 1 /* NEXT REC WILL HAVE DDNAME */ IF WORDS(LREC.X) >= 2 THEN DO XXXDD = WORD(LREC.X,1) XXXDISP = WORD(LREC.X,2) END DSNDD.Y = XXXDD DSNDISP.Y = XXXDISP IF FIND(DDLIST,DSNDD.Y) = 0. THEN DDLIST = DDLIST STRIP(DSNDD.Y) Y = Y+1 END /* BUILD LIST OF DDNAMES */ END RETURN SHOWSTAT: SCREENSIZE = SYSVAR(SYSLTERM) /* SHOW LIST OF DDNAMES */ "CLEAR" SAY 'DDNAMES ALLOCATED TO THIS SESSION' SAY '---------------------------------' LINE = 2 STOP = WORDS(DDLIST) DO I = 1 TO STOP LINE = LINE + 1 IF I = STOP THEN DO SAY ' ' WORD(DDLIST,I) LINE = LINE + 1 IF LINE < SCREENSIZE THEN DO X = 1 TO SCREENSIZE - LINE SAY ' ' END END ELSE IF LINE < SCREENSIZE THEN SAY ' ' WORD(DDLIST,I) ELSE IF LINE = SCREENSIZE THEN DO SAY 'DDNAMES ALLOCATED TO THIS SESSION' SAY '---------------------------------' SAY ' ' WORD(DDLIST,I) LINE = 3 END END "CLEAR" STOP = Y - 1 SAY 'DDNAME DISP DSN ' SAY '=====================================================' LINE = 2 DO Y = 1 TO STOP LINE = LINE + 1 IF LINE < SCREENSIZE THEN DO SAY LEFT(DSNDD.Y,10)' 'LEFT(DSNDISP.Y,10)' ' DSN.Y END ELSE IF LINE = SCREENSIZE THEN DO SAY 'DDNAME DISP DSN ' SAY '=====================================================' SAY LEFT(DSNDD.Y,10)' 'LEFT(DSNDISP.Y,10)' ' DSN.Y LINE = 3 END END RETURN EXITCOM: PARSE ARG EXITRC . IF EXITRC = 2 THEN DO SAY "NON 0 REASON CODE ON LISTALC COMMAND, TRY-AGAIN" END EXIT EXITRC _