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:

    • ROCOA for COA report

    • ROCOD for COD report

    • ROEXC for exception report

    • ROEXP for expiration report

    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:

    • RONONE

    • ROEXC

    • ROEXCD

    • ROEXCF

    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.