On 2020-06-09, at 13:44:57, Bob Raicer wrote: > > I am certainly not a fan of using the Condition Code as a return > value from a called function. It is rather limited (only a two bit > integer) and does not work for functions invoked by other > programming languages (for example, "C"). > I once had a colleague focused on MVS/XA who insisted on using Condition Code. That way he could do a BC after a call, sparing a LTR instruction to set the CC. Then I was assigned to backport the code to VM/370, lacking IPM ...
> The SPM (Set Program Mask) instruction has been around since the > introduction of the S/360 (announced in 1964, 56 years ago). The > S/370 was announced in 1970 (50 years ago). MVS/XA was announced > in 1983 (37 years ago) and that's when the IPM (Insert Program Mask) > instruction appeared. > > Unfortunately, IBM Rexx for z/OS is way behind the times. ooRexx has > supported the "Label" keyword on the "Do" instruction (and several > other instructions, for example, "Select") for quite some time (the > support was present in Version 4.0 in August 2009). > Standard Rexx and the IBM flavors support ITERATE control-variable and LEAVE control-variable for all DOs having a control-variable. I have sometimes resorted to introducing an otherwise otiose control-variable in order to identify the DO. I cite the control-variable on the END. This has the collateral benefit of facilitating checking of DO nesting for both the human reviewer and the interpreter. Likewise, I will code a DO solely for the purpose of using LEAVE as a notional GOTO. Clumsy, but I consider it worthwhile. -- gil
