https://bitsavers.org/pdf/ibm/share/Ehrman_-_Assembler_Language_as_a_Higher_Level_Language_SHARE_Summer_2002.pdf
This is the presentation that Abe is referring to.
Kind regards
John
"IBM Mainframe Assembler List" wrote on
08/16/2023 11:23:52 AM:
> I don't object to using the length attribute this way, but with another
> macro, you can avoid that. We have a set of macros that define, test,
set,
> or clear flags very easily, but use a definition macro works like so:
>
I don't object to using the length attribute this way, but with another
macro, you can avoid that. We have a set of macros that define, test, set,
or clear flags very easily, but use a definition macro works like so:
@FLAG
_A EQU *-1
_V EQU
The other macros look like (e.g.):
@SETFLAG FLAGX
"IBM Mainframe Assembler List" wrote on
08/16/2023 10:05:25 AM:
> I can see that point.
So, now my three macros follow this pattern -- pending further
recommendations. Thanks.
MACRO
TF, TEST FLAG BIT(S)
AIF (T' EQ 'O').GOOD
MNOTE
With regard to someone calling the macros with a symbol that was not defined
with them in mind, an additional hack is possible; use the type operand of the
EQU to designate 8-bit, 16-bit HH, 16-bit HL, 16-bit LH or 16-bit LL, and test
it in the macros.
I'd think that many would find it strange to have the equates precede the field
definition.
If you must use "*" for the equate, that is appropriate.
Or, you might choose an approach such as one of the following:
F1 DSB
F1B0 EQU F1,X'80'
F1B1 EQU *-1,X'40'
F1B2 EQU