Bill,

Amen, I first wrong BAL on a 360/20, didn't have the 1401 exposure ..man half 
words were real important

Scott ford
www.identityforge.com

On Jun 4, 2012, at 11:15 AM, Bill Fairchild <[email protected]> 
wrote:

> I have seen many old IBM modules (in dumps, microfiche, etc.) in which the 
> first few instructions are something like this:
> MODULE   USING *,R15
>        LR    R12,R15
>        LA   R11,4095(,R12)
>        DROP  R15
>        USING MODULE,R12
>        USING MODULE+4095,R11
> This allows 8,191 bytes of local addressability to be established with only 
> two instructions for a total length of 6 bytes of executable code.  This kind 
> of code was "state of the art" long ago when each additional byte of storage 
> was vastly more expensive than that same additional byte is today.   Back in 
> those days there was no real storage or virtual storage, just "storage", and 
> modules had to be as small as possible.  And many modules written way back 
> then are still alive and well inside z/whatever-its-latest-name-is.
> Yes, the odd offsets look weird, but the weird look does not prevent the 
> DAT's ability to add the base register's contents to the displacement and 
> generate the correct address.
> When one is writing new code, one is free to be elitist and exploit the 
> latest and greatest instructions that are available on the processors on 
> which the code is expected to run.
> When one is working with old code, or even new code written by Luddites, 
> denigrating the technology used does not really help in understanding what 
> the module is doing.
>
> Bill Fairchild
> Programmer
> Rocket Software
> 408 Chamberlain Park Lane * Franklin, TN 37069-2526 * USA
> t: +1.617.614.4503 *  e: [email protected] * w: 
> www.rocketsoftware.com
>
> -----Original Message-----
> From: IBM Mainframe Assembler List [mailto:[email protected]] 
> On Behalf Of robin
> Sent: Sunday, June 03, 2012 7:45 PM
> To: [email protected]
> Subject: Re: Base registers
>
> From: Chuck Arney
> Sent: Sunday, 3 June 2012 6:53 AM
>
>> I don't think you really want your base register pointing to an odd address.
>> You need to add 1 more to make it right and that requires another
>> instruction.
>
> There's no need to be scared of an odd value.
> It is, after all, the assembler that calculates displacements.

Reply via email to