At 07:57 -0400 on 06/05/2012, Tom Marchant wrote about Re: Base registers:
Yuck. By adding a few LOCTR instructions, all of the data can be grouped at the beginning of the program. If relative branches are used in the code, the base register is needed only for data and literals. MYCSECT CSECT USING *,R15 J BYID DATA LOCTR ID DC C'module-name' BASES DC A(MYCSECT) DC A(MYCSECT+4096) DC A(MYCSECT+2*4096) DC A(MYCSECT+3*4096) BYID DS 0H CODE LOCTR LM R9,R12,BASES DROP R15 USING MYCSECT,R9,R10,R11,R12 ... DATA LOCTR * additional DC statements are coded here LTORG You can probably do with only one base register for the data.
That BYID needs to be placed after the CODE LOCTR or you will be jumping into your DATA area and a DC or the LTORG.