bdfs1m1k | Structured Programming Macros |
Use this macro to turn on 1 or more bits in a byte or to replace the value of an entire byte. A single macro parameter determines both the type of assignment and the assignment operands.
Format
|
Entry Requirements
None.
Return Conditions
Programming Considerations
The third EQU operand must be explicitly coded as C'X' to OR on selected bits of a byte because the default type for equates is U.
****************************** * TYPE = 'X' VS. TYPE ^= 'X' * * BITWISE-OR VS. ASSIGNMENT * ****************************** * * A_BIT_FLAG = X'08' (Bit 4 is on) * A_BYTE_FLAG = X'BC' SET A_BIT_FLAG,A_BYTE_FLAG + OI A_BIT_FLAG,L'A_BIT_FLAG + MVI A_BYTE_FLAG,L'A_BYTE_FLAG : : CONTROL_BYTE DS XL1 STORAGE FOR BIT FLAGS FLAG_BYTE DS XL1 STORAGE FOR BYTE FLAG A_BIT_FLAG EQU CONTROL_BYTE,X'08',C'X' TYPE IS 'X' A_BYTE_FLAG EQU FLAG_BYTE,X'BC' TYPE IS 'U'
******************************** * DEFINING SETSYMBOLS USING DS * ******************************** SET TAG_ASGN2 TAG_BYTE = X'02' + MVI TAG_ASGN2,L'TAG_ASGN2 : : TAG_BYTE DS X STORAGE FOR TAGS ORG TAG_BYTE RESET LOCATION COUNTER TAG_ASGN1 DS 0CL1 DEFINE 3 ASSIGNMENTS TAG_ASGN2 DS 0CL2 TAG_ASGN3 DS 0CL3 ORG
********************************* * DEFINING SETSYMBOLS USING EQU * ********************************* SET SWITCH1 BIT 7 OF CNTRL_BYTE = B'1' + OI SWITCH1,L'SWITCH1 : : CNTRL_BYTE DS X STORAGE FOR SWITCHES SWITCH1 EQU CNTRL_BYTE,B'00000001',C'X' SWITCH2 EQU CNTRL_BYTE,B'00000010',C'X' SWITCH3 EQU CNTRL_BYTE,B'00000100',C'X'
Related Macros