SMS trace is the only non pay for product I know Otherwise I only know about SMSDEBUG, which is not really a decompiler - but rather an enhanced trace for SMS code.
Lizette > -----Original Message----- > From: IBM Mainframe Discussion List <[email protected]> On Behalf Of > Mark Zelden > Sent: Thursday, May 02, 2019 1:18 PM > To: [email protected] > Subject: SMS ACS Routine Decompiler > > Has anyone on this list ever heard of or seen a decompiler for ACS object > code? If so I'm hoping there is a newer / better version of it than what > someone used in 2016. > > Background: I needed to make a STORCLAS SMS change on a very small seldom > touched LPAR > for my client. When I changed the code I found there were a ton of errors > trying to compile the code. The ISPF stats said 2016 but the last object > change was in 2014. > When I looked at the code closer, I could tell it was created by some > decompiler. All the filter lists were named FLT1, FLT2, FLT3, etc. and each > filter INCLUDE list item was on a separate > line. All the logic code was nested IF/THEN/ELSE when I know the original > was better > structured with "SELECT WHEN". I assume the ACS source PDS must have been > migrated > and expired because it hadn't been touched in so long and someone got a hold > of this decompiler to try and recreate the ACS routines. I was never > informed and whomever did this is long gone and swept it under the rug and > didn't tell anyone. > > I've spent the entire week fixing the routines based on what I know of the > system, looking at existing data set allocations, JES2 allocation logs etc. > and now have a good working set of DATACLAS, STORCLAS, MGMTCLAS and STORGRP > routines, but as I wrote above, I'm curious if there is a better / newer > version of whatever was used and I'm just curious in general because I have > checked the CBT, done some asking around and even was put in contact with > someone from a well known software company (not IBM) that has many SMS tools > and they never heard of an ACS decompiler. > > Just as an example, the DATACLAS routine looks like it was an original SMS > sample and I even recognized part of it in a manual and in > SYS1.SAMPLIB(DFPSSDCR). All the SELECT WHEN code to assign the DATACLAS > based on LLQ was just a mess of nested IF/THEN/ELSE statements: > > ============================== > IF (&LLQ = &FLT5) THEN DO > SET &DATACLAS = 'LOADLIB' > EXIT > END > ELSE IF (&LLQ = &FLT6) THEN DO > SET &DATACLAS = 'SRCFLIBP' > EXIT > END > ELSE IF (&LLQ = COB*) THEN DO > SET &DATACLAS = 'SRCFLIBS' > EXIT > END > ELSE IF (&LLQ = CLIST*) THEN DO > SET &DATACLAS = 'SRCVLIB' > EXIT > END > ELSE IF (&LLQ = &FLT7) THEN DO > SET &DATACLAS = 'LISTING' > EXIT > END > ELSE IF (&LLQ = &FLT8) THEN DO > SET &DATACLAS = 'DATAF' > EXIT > END > ELSE IF (&LLQ = 'VDATA') THEN DO > SET &DATACLAS = 'DATAV' > EXIT > END > ELSE DO > SET &DATACLAS = '' > EXIT > END > ============================== > > > FYI, here is a summary of the problems I found I put in a $$README member in > the ACS library: > > There were many problems with the decompiled code. Literals > weren't quoted, all the FILTLISTs were numbered FLT1, FLT2, FLT3,.. > but the logic code had them as FLT11, FLT22, FLT33 and then some > were out of order and called FLT45, FLT56 etc. Some FILTLISTs that > were INCLUDE were set to EXCLUDE instead. FILTLISTs with a single > value were removed and had the value used directly in the logic > code (but not quoted of course). Comparison checks for null values > were wrong. All the original "SELECT WHEN" code was changed to > nested IF/THEN/ELSE statements and sometimes it wasn't done > correctly. Not to mention how much more confusing all the > IF/THEN/ELSE logic is, however, I didn't attempt to change any of > it back to "SELECT WHEN". > > > Regards, > > Mark > -- > Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS ITIL v3 > Foundation Certified mailto:[email protected] Mark's MVS Utilities: > http://www.mzelden.com/mvsutil.html > Systems Programming expert at http://search390.techtarget.com/ateExperts/ > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send email to > [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
