In a message dated 7/14/2005 11:33:29 P.M. Central Daylight Time, [EMAIL PROTECTED] writes:
In <[EMAIL PROTECTED]>, on 07/13/2005 at 06:52 PM, "Arthur T." <[EMAIL PROTECTED]> said: > Most macros start with an optional label. Rather than tying >the label to the first generated machine >instruction, it's convenient to tie it to a DS 0H. Yes, but that doesn't explain an unlabelled DS 0H. I suspect the explanation for an unlabelled DS 0H at the beginning of a macro expansion is a statement like this: &LABEL DS 0H If the macro's invoker puts a symbolic label on the line of code invoking the macro, then that symbolic label is generated on the DS 0H statement. If the invoker leaves the symbolic label field blank, the macro definition probably does not test for the absence of the &LABEL parameter and bypass generating an unlabelled DS 0H. We might say this is lazy programming, or a case of "who cares?" But what bothers me much more is when someone writes a macro definition and does not allow for a symbolic label to be propagated onto the first generated line of macro expansion. E.g., if I code LABELXYZ GETMAIN parm1,parm2,blahblah then I don't expect to see this: LABELXYZ not found But I see such things from non-IBM macro developers. This forces me to add one more instruction such as: LABELXYZ DS 0H BOZOMACRO parm1,parm2,blahblah Or else I have been known to invade the macro definition and put &LABEL on the first generated statement myself. Bill Fairchild ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html