Using arithmetic

The following steps should be performed using integer arithmetic:

  1. Select one of the following values, according to the type of report to be checked: Call the value A.
  2. Divide the MDREP field by A; call the result B.
  3. Divide B by 8; call the result C.
  4. Multiply C by 8 and subtract from B; call the result D.
  5. Multiply D by A; call the result E.
  6. Test E for equality with each of the values that is possible for that type of report.

    For example, if A is ROEXC, test E for equality with each of the following to determine what was specified by the sender of the message:

    The tests can be performed in whatever order is most convenient for the application logic.

The following pseudocode illustrates this technique for exception report messages:

A = MQRO_EXCEPTION
B = Report/A
C = B/8
D = B - C*8
E = D*A

A similar method can be used to test for the ROPMI or ROPCI options; select as the value A whichever of these two constants is appropriate, and then proceed as described above, but replacing the value 8 in the steps above by the value 2.