Previous Topic: ExamplesNext Topic: Abend a Task Stopped at a Breakpoint


GO= Element Limitation

When changing the execution sequence of a high level program, especially COBOL or PL/I, you must take responsibility for securing proper addressability of the data that will be processed in the piece of logic specified by GO= element.

In COBOL, before you force a branch (GO TO) to the routine using GO= element, the BLLs and their corresponding registers must contain correct addresses. Accomplish this with CORE commands, especially the =SET element of the CORE command. Use symbolic names of BLL cells. The BLL cells are related to their data structures in the Data Division Map (DMAP) of the COBOL listing, while the related registers are found in the register assignment section of the memory map.

SERVICE RELOAD statements in the COBOL program are necessary to notify the COBOL compiler that, at a specific time, the registers must be reloaded when the address of the base of a certain data structure changes. If you force a branch (GO TO) to the intended routine using the GO= element and, in the process, you cross the boundaries of SERVICE RELOAD, then it is necessary to set the addresses.

In PL/I, you not only must secure the proper addressability of data, but also remain within the same logical level (such as the same DO block or called procedure). Going to another logical level requires going through all intermediate epilogues and prologues.