/* REXX QTABLE Show open ISPF tables ; assumes exec run from ISPF. Written by Doug Nadel -- posted on ISPF-L */ arg argline /* pro-forma quick-start */ address TSO arg parms "((" opts opts = Strip(opts,"T",")") parse var opts "TRACE" tv . parse value tv "N" with tv . rc = Trace("O"); rc = Trace(tv) tcb = ptr(132+ptr(540)) /* parent of tcb of rexx exec */ tld = ptr(ptr(24+ptr(112+tcb))) /* screen tld */ tld = ptr(128+ptr(60+ptr(56+tld))) /* parent tld (TLD0) */ Say 'Global ' Call listtables tcb = ptr(136+ptr(132+tcb)) Do While tcb \= 0 tld = ptr(ptr(24+ptr(112+tcb))) If stg(tld,3) = 'TLD' Then Say 'Screen 'stg(tld+3,1) Call listtables tcb = ptr(128+tcb) End exit /*@ QTABLE */ /* . ----------------------------------------------------------------- */ listtables: Procedure Expose tld If stg(tld,3) = 'TLD' Then Do dtb = ptr(44+ptr(76+tld)) Do While dtb \= 0 Say ' 'stg(dtb+6,8) dtb = ptr(68+dtb) End End Return /* . ----------------------------------------------------------------- */ ptr: Return c2d(storage(d2x(Arg(1)),4)) /* return pointer at offset*/ /* . ----------------------------------------------------------------- */ stg: Return storage(d2x(Arg(1)),Arg(2)) /* Return storage */