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)?
