On May 27, 2012, at 11:13, Jon Perryman wrote: > There is hidden functionality in this macro. > > 1. I believe that john said that LA will resolve a label reference in the > assembler. I'm not sure of the situations it fixes. > John E. acknowledged in a followup to Ray Mansell's revision that changing the:
&Lab CLC 0(0,0),&Source to: &Lab MVC &Target,&Source meets that need. > 2. Coding the (0) on the LA causes an error message when the destination is a > literal or has a length specified. This eliminates code to check for these > situations. > But it does not cause an error message when &Target is a literal: 000014 4100 C028 00028 28+ LA 0,=C'WOMBAT'(0) ... assembles fine. Apparently specifying length of a literal is fine. But, again, the Mansell simplification detects it.: 000018 0000 0000 0000 00000 00000 29+LITCMVC MVC =C'WOMBAT',=C'FOO' ** ASMA030E Invalid literal usage - =C'WOMBAT' And the LA &Target.(0) causes an unwanted error message when the target has the D1(,B1) form: 000000 0000 0000 00000 14+ LA 0,99(,11)(0) ** ASMA173S Delimiter error, expected blank - (0) > Checking the length will only work if the label is defined before the check. > Checking the length is undesirable when Target has the D1(,B1) form. -- gil
