Notionally better because shorter examples of this sort could be proliferated ad infinitum et nauseam; but that was not John Ehrman's point, which I will let him explain.
On 5/16/12, retired mainframer <[email protected]> wrote: > :>: -----Original Message----- > :>: From: IBM Mainframe Assembler List [mailto:ASSEMBLER- > :>: [email protected]] On Behalf Of John Ehrman > :>: Sent: Wednesday, May 16, 2012 9:48 AM > :>: To: [email protected] > :>: Subject: MVC with 2nd operand length > :>: > :>: This macro uses the length attribute of the second operand as the > length > :>: value in the MVC: > :>: Macro > :>: &Lab MVC2 &Target,&Source > :>: &Lab CLC 0(0,0),&Source X'D500 0000',S(&Source) > :>: Org *-6 Back up to first byte of instruction > :>: LA 0,&Target.(0) X'4100',S(&Target),S(&Source) > :>: Org *-4 Back up to first byte of instruction > :>: DC AL1(X'D2',L'&Source-1) First 2 bytes of instruction > :>: Org *+4 Step to next instruction > :>: MEnd > :>: > :>: Just write > :>: MVC2 Target,=C'Whatever you like' > > I must be missing something obvious. Why not simply > > MACRO > &Lab MVC2 &Target,&Source > &Lab MVC &Target(L'&Source-1),&Source > MEND > > or avoid the macro completely with > > &Lab MVC Label1(L'Label2-1),Label2 > John Gilmore, Ashland, MA 01721 - USA
