Saturday, January 5, 2008

ISPF Panels Almost Finalized

I think I'm finished tinkering with the appearance of the ISPF member display panels. The 80-column panel was tough, because there just isn't enough room to show all the information at one time that I'd like. But I fooled with it enough to create something that I think will work.

Earlier versions of the utility only showed the statistics information for source datasets but not for load libraries. I found some documentation that may explain how to decode this information for load modules. If so, I hope to be able to display this information for load libraries.

One idea I'm thinking about is whether to allow users to change the statistics information for source-type pds members. There is an ISPF service that will do this. All I have to do is display the statistics data in input fields and allow the user to change it. But I'm not sure yet if I want to do that. One idea would be to provide a pull-down menu at the top of the panel for Options. One of the options could be to display the statistics data in input or display-only fields. I've also thought of a couple of other options that might be useful.

Thursday, January 3, 2008

LE Callable Services vs. Assembler

The main program has a need to acquire storage in memory to store the member lists of the two datasets that are being compared. I used the LE Callable Services CEECRHP, CEEGTST, and CEEDSHP to acquire and release storage. These services are fairly easy to use but it just seemed like a lot of code to write to accomplish such a trivial task.

So I took all of that code out and instead I wrote an Assembler language program to invoke the GETMAIN and FREEMAIN macros directly to manage the needed storage. The new program source code is less than 100 lines long and the load module is around 500 bytes in size. I just use a static call to compile and link it in with the main program. The main program calls the new Assembler module to to all GETMAINs and FREEMAINs.

The source code for the main program is about a hundred lines smaller than it was when coded to call the LE services.