I use a REXX script which we use to record cond codes from test jobs.
main: cvt = ptr(16) tcbp = ptr(cvt) tcb = ptr(tcbp + 4) jscb = ptr(tcb + 180) ssib = ptr(jscb + 316) tct = ptr(tcb + 164) lct = ptr(tct + 152) jct = ptr(lct + 16) jobid = stg(ssib + 12, 8) jobname = stg(jct + 8, 8) sct = c2d(stg(jct + 32, 3)) SCT_LEN = 36 if sct > 0 then do say 'Step ProcStep CondCode' say '-------- -------- --------' do while sct > 0 stepname = left(stg(sct + 68, 8), 8) procstep = left(stg(sct + 60, 8), 8) condcode = x2d(c2x(stg(sct + 24,2))) sctxbttp = c2d(stg(sct + 68, 3)) sctxbttp = swareq(stg( sct + 68, 3)) scabend = stg(sctxbttp + 112, 3) say stepname procstep condcode scabend sct = x2d(c2x(stg(sct + SCT_LEN, 3))) end end exit 0 ptr: arg addr, len if len = '' then len = 4 return x2d(c2x(bitand(storage(d2x(addr),len),x2c('7FFFFFF')))) stg: arg addr, len return storage(d2x(addr),len) swareq: procedure numeric digits 20 /* allow up to 2**64 */ sva=c2d(arg(1)) /* convert to decimal */ tcb = c2d(storage(21C,4)) /* tcb psatold */ jscb = c2d(storage(d2x(tcb+180),4)) /* jscb tcbjscb */ qmpl = c2d(storage(d2x(jscb+244),4)) /* qmpl jscbqmpi */ /* see if qmat can be above the bar */ qmsta= c2x(storage(d2x(qmpl+16),1)) /* job status byte */ if substr(x2b(qmsta),6,1) then /* is qmqmat64 bit on? */ do /* yes, qmat can be atb */ if right(x2b(c2x(arg(1))),1) \= '1' then/* swa=below ? */ return c2d(arg(1))+16 /* yes, return sva+16 */ qmat=c2d(storage(d2x(qmpl+10),2))*(2**48) +,/* qmat+0 qmadd01 */ c2d(storage(d2x(qmpl+18),2))*(2**32) +,/* qmat+2 qmadd23 */ c2d(storage(d2x(qmpl+24),4)) /* qmat+4 qmadd */ return c2d(storage(d2x(qmat+(sva*12)+64),4))+16 end else do /* no, qmat is btb */ if right(c2x(arg(1)),1) \= 'F' then /* swa=below ? */ return c2d(arg(1))+16 /* yes, return sva+16 */ qmat = c2d(storage(d2x(qmpl+24),4)) /* qmat qmadd */ do while sva>65536 qmat = c2d(storage(d2x(qmat+12),4)) /* next qmat qmat+12 */ sva=sva-65536 /* 010006f -> 000006f */ end return c2d(storage(d2x(qmat+sva+1),4))+16 end On 2019-11-05 2:26 PM, Brian Westerman wrote:
Of course there is a way, all you need to do is process the SCT from your program. You will get all steps up to the one you are currently in only because it has not ended yet. But if you are running as the last step it wouldn't matter. That's not how I do it in SyzMPF/z, but it "could" be done that way in another step of the job. In fact, I think there are programs on the CBT tape that do just that. Brian ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN