Re: Re: Cobol compiler date

Rick Fochtman <[email protected]>
Newsgroups gmane.comp.emulators.turnkey-mvs
Message-ID <[email protected]>
----------------------------------------------<snip>------------------------------------
Unfortunately I didn't collect test cases; I was focused on getting 
something that worked out the door. So I've been poking around in my MVT 
source, seeing what would fail. One thing I found fairly quickly that 
would fail is a TSO command to display user information. It assembles 
correctly with the VM assembler code. With the MVS 3.8J level, the CSECT 
length is reported as zero, with lots of errors like:

> 164 IFO209 ADDRESSABILITY ERROR- BASE AND DISPLACEMENT CANNOT BE 
> RESOLVED AND ARE SET TO 0
> 165 IFO209 ADDRESSABILITY ERROR- BASE AND DISPLACEMENT CANNOT BE 
> RESOLVED AND ARE SET TO 0
> ...
> 910 IFO209 ADDRESSABILITY ERROR- BASE AND DISPLACEMENT CANNOT BE 
> RESOLVED AND ARE SET TO 0
> 1033 IFO172 VALUE OF ORG OPERAND IS LESS THAN THE CONTROL SECTION 
> STARTING ADDRESS
>
> Another program that fails with the MVS 3.8J assembler under MVT
> is the TAPEMAP program. Pages and pages of:
>
> 64 IFO209 ADDRESSABILITY ERROR- BASE AND DISPLACEMENT CANNOT BE 
> RESOLVED AND ARE SET TO 0
> 71 IFO209 ADDRESSABILITY ERROR- BASE AND DISPLACEMENT CANNOT BE 
> RESOLVED AND ARE SET TO 0
> 76 IFO209 ADDRESSABILITY ERROR- BASE AND DISPLACEMENT CANNOT BE 
> RESOLVED AND ARE SET TO 0
>
> I looked at the instructions that were failing. In the WHO command:
>
> 000058 0000 0000 00000 164 AH R0,=H'19' ADJUST 0C
> *** ERROR ***
> 00005C 0000 0000 00000 165 MH R0,=H'100' FOR 20TH CENTURY BASE
> *** ERROR ***
>
> A whole bunch of failures on lines that referred to literals. As an
> experiment, I changed all the literals to constants. The result:
>
> 000058 4A00 A5FC 005FC 164 AH R0,H19 ADJUST 0C
> 00005C 4C00 A5FE 005FE 165 MH R0,H100 FOR 20TH CENTURY BASE
>
> assembled without error.
>
-------------------------------------<unsnip>-----------------------------------
Sounds to me like you could resolve these by placing a "LTORG" statement 
before the first DSECT statement in the soutce code. Common problem for 
first-time or seldom users of DSECT code. Also consider that a few MVS 
CSECTS used R15, the entry point, as a base register as well.

IFOX00, IIRC, had code to do this automatically, "under the covers".

Rick
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.