/**************************** REXX ************************************/ /* (c) Copyright Roger Lacroix 1995 */ /* */ /* Designed, developed and programmed by Roger Lacroix */ /*--------------------------------------------------------------------*/ /* FS - FULL SCREEN BROWSE OF TSO COMMAND RESULTS */ /* SYNTAX: FS */ /* */ /* */ /* Perfect when you need to read the TSO HELP for info. */ /* i.e. TSO FS HELP ALLOCATE */ /* */ /* */ /* This program can be used when you are debugging another */ /* rexx program. Lets say the other rexx is called ABCD. */ /* Place the 'TRACE R' (no quotes) in your ABCD rexx program. */ /* Then to run your ABCD program do the following: */ /* i.e. TSO FS ABCD */ /* */ /* All tracing output will be present to you in full screen. */ /* */ /*--------------------------------------------------------------------*/ trace o PARSE ARG CMD OPER ADDRESS TSO if SYSVAR(SYSISPF) <> 'ACTIVE' then do SAY 'FS ONLY RUNS UNDER ISPF.' exit end else nop if LENGTH(CMD) = 0 then do SAY 'INVALID SYNTAX:' SAY 'SYNTAX IS FS ' exit end else nop Call GET_UNIQUE_DD /* X=MSG('OFF') */ X=OUTTRAP("OUTLINE.") ""CMD OPER"" X=OUTTRAP(OFF) dsn = "BROWSE."CMD".R"rn "ALLOC F("dd") DSN("dsn") TRACKS SPACE(100 100) UNIT(SYSDA) ", "NEW DELETE DSORG(PS) LRECL(133) RECFM(V B) BLKSIZE(13300)" if RC = 0 then do IF outline.0 <> 0 THEN do "EXECIO * DISKW "dd" (FINIS STEM OUTLINE." ADDRESS ISPEXEC "CONTROL ERRORS RETURN" "LMINIT DATAID(IDVAR) DDNAME("dd")" "LMOPEN DATAID("IDVAR")" "BROWSE DATAID("IDVAR")" "LMCLOSE DATAID("IDVAR")" "LMFREE DATAID("IDVAR")" end else do SAY 'Nothing returned from TSO!!' end end else do SAY '*** FS ERROR: Dataset allocation failed.' end ADDRESS TSO "FREE F("dd")" exit /* */ GET_UNIQUE_DD: unique = 'N' do while unique = 'N' rn = RIGHT(RANDOM(0,99999),6,'0') dd = 'FS'rn fs_stat = Listdsi(dd 'FILE') /* get 'FS###### DD' info */ if fs_stat = 0 then unique = 'N' /* dd has been found */ else unique = 'Y' end return