Going one step further, define TWO data location counters, one for stuff that is required to be within 4K of the static base register i.e. are referenced by SS instructions, and another for stuff that can be referenced by instructions with displacements larger than 4K (i.e. via LY, STY, LLC, LARL etc).
Robert Ngan CSC Financial Services Group From: Tom Marchant <[email protected]> To: [email protected] Date: 2013/04/08 09:46 Subject: Re: Relative Branches / IBM macros Sent by: IBM Mainframe Assembler List <[email protected]> On Fri, 5 Apr 2013 22:29:03 +0200, Bernd Oppolzer wrote: >There is also a LOOP macro in the SP macro set, which generates in some >cases >(in the NORENT case) a decimal loop counter, which is in defined inline, >near the >loop instructions. You might want to look at using LOCTR instructions to group data areas together. My entry macro includes code similar to this: J BEGIN DATA LOCTR DC C'Program identifiers, etc' CODE LOCTR BEGIN DS 0H Later in the code, if I want to define a data area, I can include: (instructions) DATA LOCTR DC (whatever) CODE LOCTR (More instructions) Then at the end of the program, I code DATA LOCTR LTORG All of the data areas are then grouped by the assembler at the beginning of the program, covered by a base register that points to the beginning. -- Tom Marchant
