I have one question is there another way to create a structure besides using the BLSQ macros that’s the only thing I need to do in assembler the rest I’ll do Rexx
> On Oct 11, 2023, at 5:08 PM, Tony Harminc <t...@harminc.net> wrote: > > On Wed, 11 Oct 2023 at 03:59, Joseph Reichman <reichman...@gmail.com> wrote: > > That was very helpful back to my first beef >> >> The EVAL….. subcommands particular to Rexx clist are interspersed among >> those IPCS subcommands done by hand >> >> The reason I think I cannt get around verbx assembler exit is because I >> want to create a structure to be used in the run chain command and I think >> that necessitates the use of the BLSQS assembler macros >> > > A few observations. First, like Binyamin, I don't know why you don't just > use REXX to format your own (or anyone's) control blocks. I, and I'm sure > others, have written many thousands of lines of REXX to go through dumps. > It's not just formatting CBs, but having the REXX take different actions > based on what it finds in some of those blocks. So e.g. we have a product > that has a notion of transactions, and a transaction is represented by a > single CB that points to various other CBs, and that transaction CB is > always on one of many possible queues, or it's being processed by a > specific module. So the REXX can go through the queues and format the > status and history of all or a single transaction, chase down and report on > the linked CBs with their various pieces of information, and so on. Or it > can start with a transaction ID (perhapssupplied by the dump reader as an > argument), find where it's queued, and report on things unique to the queue > it's on. And it can prompt the dump reader based on things found during > processing, e.g. "Transaction x has 7 sub-transactions that have not > completed - report on them? Reply Yes, No, or Details". That kind of thing. > > RUNCHAIN is one of the easiest things to write in REXX. It doesn't have to > exactly mimic the IPCS command, but it probably needs notions like the > offset of the chain pointer, how end-of-chain is marked, how to format some > fields in each block encountered (the eyecatcher?), whether there are > errors that make a CB instance suspicious (maybe the "in use" and "has been > freed" flags are both on), and so on. Just make it a subroutine, and then > you can call it from anywhere in your larger REXX program. > > Write yourself a few generalized REXX subroutines - one to manage storage > fetching requests with perhaps different types of input (hex or decimal or > character string for the address, since you may conveniently have any of > those available), one to format output like one line of a dump (in my case > I can optionally format EBCDIC/ASCII or both) and ensure that you don't > pass things like a single quote to the IPCS NOTE command, perhaps one to > manipulate addresses (you pass it a hex string and a decimal offset, or > whatever), and of course routines that are more specific to your own code > and CBs. > > There's another aspect... You can indeed use the BLSQ... macros to define a > control block in a format that IPCS can format from. These macros are not > very easy to use, imho, but still can be useful. You can do two things with > them: use them to define your own control blocks to IPCS (since obviously > IPCS doesn't come with these mappings) so that you can use CBF and such on > them, but also you can interpret the macro output in your own REXX routines > if you like, without using the IBM IPCS commands. Fiddly, but potentially a > way to do more than the IBM formatters do. > > [BTW, if you want a lot of examples of use of the BLSQ... macros, look at > the JES2 source code that should be on your system. HASM.... modules are > all related to IPCS, and most are CB definitions. I imagine IBM has a tool > to take the assembler definitions (or maybe ADATA) and churn out the BLSQM > stuff. Or maybe they're all hand written.] > > Tony H. > > ---------------------------------------------------------------------- > 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