IEFBR14 was not coded with these characteristics in mind, as IEFBR14 was initially used as a dummy control section, one which simply returned to the caller, not as an executable module. The original version of the program did not alter register 15 at all as its original application was as a placeholder in certain load modules which were generated during Sysgen (system generation), not as an executable program, per se. Since IEFBR14 was always invoked by the functional equivalent of the canonical BALR 14,15 instruction, the return code in register 15 was always non-zero. Later, a second instruction was to be added to clear the return code so that it would exit with a determinate status, namely zero. Initially, programmers were not using all properties of the Job Control Language, anyway, so an indeterminate return code was not a problem. However, subsequently programmers were indeed using these properties, so a determinate status became mandatory. This modification to IEFBR14 did not in any way impact its original use as a placeholder. The machine code for the modified program is: SR R15,R15 put zero completion code into register 15 BR R14 branch to the address in register 14 (which is actually an SVC 3 instruction in the Communications Vector Table) The equivalent machine code, eliminating the BR for clarity, is: SR R15,R15 put zero completion code into register 15 SVC 3 issue EXIT SVC to terminate the jobstep This makes perfect sense as the OS/360 Initiator initially "attaches" the job-step task using the ATTACH macro-instruction (SVC 42), and "unwinding" the effect of this ATTACH macro (it being a Type 2 SVC instruction) must be a complementary instruction, namely an EXIT macro (necessarily a Type 1 SVC instruction, SVC 3). See also /bin/true - the UNIX-equivalent "do nothing" program References Trombetta, Michael & Finkelstein Sue Carolyn (1985). "OS JCL and utilities". Addison Wesley. page 152. IBM mainframe operating systems