glen herrmannsfeldt wrote:
Peter Watson wrote: (snip)The problem was that also by convention a program's return code should be loaded into register 15, but in IEFBR14 it still contained the value on entry, which just happens to be the program's entry point address! So the do-nothing program was always reported as ending with an non-zero error if anything checked the return code! (The fix doubled the size of the program to four bytes! Register 15 was cleared before returning.)There was a long discussion on this once. Only the low 12 bits are used for the return code. It has been suggested that on early OS/360 programs were loaded on a 4K byte boundary, so the return code was zero. With protection on 2K boundaries, it would make some sense, but it was never confirmed.
Sounds right. A page size less than 4KB doesn't make much sense, either. I'm guessing it was one of the myriad wierdnesses of JCL that created some "utility" for a program that did nothing. The sheer incompetence of the JCL team always amazed me--they must have been left-over Autocoder folks (not that there was any shortage of incompetence in a company as big as IBM). ;-) The System/360 was essentially ramrodded down the throats of all the IBM product divisions, each of which had their own architectures and cultures--for better or worse. It was a necessary consolidation, but it created huge dislocations inside the company for years to come. As one on the outside observing, I was just amazed to see 12-pass assemblers (!) and optimizing FORTRAN compilers written in FORTRAN coming out of the same company and running on the same machines! ;-) -michael NadaPong: Network game demo for Apple II computers! Home page: http://members.aol.com/MJMahon/ "The wastebasket is our most important design tool--and it's seriously underused."