Does that support the new token algorithm?

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


________________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
David Crayford <dcrayf...@gmail.com>
Sent: Tuesday, November 5, 2019 2:20 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: WTO message at the end of JCL

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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to