I remember START and it definitely worked once upon a time. Here's what it was 
good for:

In DOS/360 there was only a single address space containing the supervisor 
(nucleus) and three partitions (regions). Only the first or lowest partition, 
called BG, was "full function" and that is where most programs were run. It 
began at a fixed address following the supervisor, something in the 6K to 12K 
or so range. So most or all batch programs always loaded at the same fixed 
address. (Fixed for the duration of a given configuration in a given shop.)

Let's say at your shop that address was x'2800'. If you were writing a main 
program and began it with START X'2800' then your assembly listing exactly 
corresponded with the addresses in a dump. If your program blew up at address 
x'3210' then that was offset x'3210' in your assembly listing.

Charles


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]] On 
Behalf Of Dan Greiner
Sent: Tuesday, June 2, 2020 10:57 PM
To: [email protected]
Subject: z/390 Assembler and START statement.

According to the HLASM Language Reference manual (SC26-4940), the START 
statement may be used to create the first control section in an assembly and 
define an expression that is used to set the initial location counter. For 
example:

         START X'1000'
         BR    14
         END

should generate an assembly where the BR instruction appears at location 1000 
hex.

However, the z/390 assembler does not appear to recognize the expression on the 
START statement, and flags no error for this. In the listing, the address of 
the BR14 is zero, and in object file, the relative address in the .TXT record 
is also zero ... regardless of what expression I use.

This is certainly not a major issue, and I can easily circumvent it. But, I was 
curious if I'm incorrectly using START (or is this behavior an undocumented 
feature)?

Reply via email to