True in a Nutshell Appendix: IEFBR14: Further Clarification

5th December 2006

Date: Fri, 17 Nov 2006 12:47:19 +0900 (JST)
From: Norman Diamond <email address withheld>
To: mike@miketaylor.org.uk, dbagwell@chartertn.net, yath@yath.eu.org
Subject: Re: IEFBR14

David Bagwell wrote:

There were three possible instructions that could be used to zero R15: ``Clear Register R15'', ``Subtract Register R15,R15'', and ``Exclusive Or Register R15,R15''.

Sorry, I don't believe that. CR was Compare Register not Clear Register. CLR was Compare Logical Register not Clear Register. I don't believe there existed a Clear Register instruction.

Everyone wrote SR 15,15. No one wrote XOR 15,15 because, even though it would be geeky enough to do so, the IOACC (Assembler equivalent of IOCCC) hadn't been invented yet. No one wrote SLR 15,15 either because, even though it was logical enough, punishment would surely ensue from readers who had to shift back and forth between code and green cards in order to mind their SLRs and SRLs.

Actually, the return code problem was detected on the first compile and fixed on the second, long before release.

Hmm. That one is half-believable but still suspicious. If the return code problem survived long enough to get into an assembly then it surely survived long enough to get executed at least once. It wouldn't produce an assembly time diagnostic so I think odds are that the program was actually executed before its return code was noticed. Fixed on the second assembly, sure.

By the way I never heard anyone refer to assembling as a compilation. Sure there were cataloged procedures like ASMFCLG but the C stood for assemble not compile.

Yours sincerely,
Norman Diamond

Feedback to <mike@miketaylor.org.uk> is welcome!