On Tue, 25 Jun 2013 08:15:46 -0500, John McKown <[email protected]> wrote:
>1) Can I use a BAKR instruction in CICS successfully. You will still need to provide a save area, which would be marked with "F1SA" in offset 4, or set register 13 to zero. This is necessary for debugging purposes, even if you never call any other program that will require a save area. See Chapter 2 of the Assembler Services Guide for release 12 or above of z/OS. >4) What about not using a save area at all? Please don't do that. >It might be poor design, but >what about using the high full word of each register as a save area for the >lower full word? That would be a violation of the linkage conventions. If you alter the high halves of the registers, you must save them. >I _assume_ >that bits 0-31 at entry are not important and need not be saved/restored. Linkage conventions say otherwise. If any program that might ever call your program uses the high halves, you will break that program when you return to it. >5) What about using the access registers as a save area? The same as the high halves. If you use it, you are responsible for saving it and restoring it when you are finished. Both this and the idea of using the high halves confuses the use of the save area that you use to save your caller's registers with the save area that you provide for any program that you call. Upon entry, register 13 contains the address of a save area that you use to save your caller's registers. You then load register 13 with the address of a save area that you provide for your callers. If you are absolutely certain that you will never call any other program, you could save your caller's registers in the save area that was provided by your caller and set register 13 to zero. I don't recommend it. If you can't use GETMAIN or STORAGE OBTAIN in a CICS environment, you could require that your caller pass you an area that includes space for your save area. This could be a requirement that the area in register 13 be 144 bytes (assuming that you will provide only a 72-byte save area), or it could be an area passed via register 1. Is there a way for the code to determine whether it is running under CICS without having to make a call that requires a save area? >I don't think that the Access Registers are used >in CICS application code and I doubt their values are assumed to be >anything specific in CICS management routines. I.e. they should be >available without saving. No, they are not available for use without saving. -- Tom Marchant ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
