MHELP operand mapping

The MHELP operand field is mapped into a fullword. The predefined MHELP codes correspond to the fourth byte of this fullword, while the &SYSNDX limit is controlled by setting any bit in the third byte to 1. If all bits in the third byte are 0, then the &SYSNDX limit is not set.

The bit settings for bytes 3 and 4 are shown in Table 1.

Table 1. &SYSNDX Control Bits
Byte Description  
Byte 3 - &SYSNDX control

1... ....

.1.. ....

..1. ....

...1 ....

.... 1...

.... .1..

.... ..1.

.... ...1

Bit 0 = 1. Value=32768. Limit &SYSNDX to 32768.

Bit 1 = 1. Value=16384. Limit &SYSNDX to 16384.

Bit 2 = 1. Value=8192. Limit &SYSNDX to 8192.

Bit 3 = 1. Value=4096. Limit &SYSNDX to 4096.

Bit 4 = 1. Value=2048. Limit &SYSNDX to 2048.

Bit 5 = 1. Value=1024. Limit &SYSNDX to 1024.

Bit 6 = 1. Value=512. Limit &SYSNDX to 512.

Bit 7 = 1. Value=256. Limit &SYSNDX to 256.

Byte 4

1... ....

.1.. ....

..1. ....

...1 ....

.... 1...

.... .1..

.... ..1.

.... ...1

Bit 0 = 1. Value=128. MHELP Suppression.

Bit 1 = 1. Value=64. Macro Hex Dump.

Bit 2 = 1. Value=32. Global Suppression.

Bit 3 = 1. Value=16. Macro Entry Dump.

Bit 4 = 1. Value=8. Macro Exit Dump.

Bit 5 = 1. Value=4. Macro AIF Dump.

Bit 6 = 1. Value=2. Macro Branch Trace.

Bit 7 = 1. Value=1. Macro Call Trace.

Note: You can use any combination of bit settings in any byte of the MHELP fullword to set the limit, provided at least one bit in byte 3 is set. This explains why not all values 65792 - 9999999 can be used to set the limit. For example, the number 131123 does not set the &SYSNDX limit because none of the bits in byte 3 are set to 1.
Examples:
MHELP 256      Limit &SYSNDX to 256
MHELP 1        Trace macro calls
MHELP 65536    No effect. No bits in bytes 3,4
MHELP 65792    Limit &SYSNDX to 65792

See Figure 1 for more examples.