On 18 November 2013 14:36, [email protected] <[email protected]> wrote: > Tom Marchant and others pointed out > I don't have an answer to your questions, but I think you mean > LA 15,16 > > > And I agree, However From > z/OS UNIX System Services Programming: Assembler Callable Services Reference > SA23-2281-00 > > > The following is an example of code that specifies the offset. The example > assumes that register 1 is set up with the address of the parameter list. > Replace offset with the appropriate value from the following offset table. > L 15,16 CVT - common vector table > L 15,544(15) CSRTABLE > L 15,24(15) CSR slot > L 15,offset(15) Address of the service > BALR 14,15 Branch and link > > > I suspect the documentation is wrong
It's not wrong, and changing L to LA would break what you have. You could indeed use the IHAPSA and CVT macros and avoid use of hard-coded constants, but the problem with this is that the CSRTABLE and what it points to are OCO, so there are no IBM-supplied mappings or names. I wrote a little macro that contains roughly what you show above. It takes the service name as an argument and generates the call with the offset and arguments. There are other services reached through the CSRTABLE with offsets other than 24; some of them are documented to various extents, and others not at all. Tony H. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
