This routine can be used to change the order of binary control
fields passed to it (that is, those for which 'E' is specified) from
ascending order to descending order.
Figure 1. E61 User Exit Example* E61 PARAMETER LIST DSECT
PARML DSECT
DS 3C
PARMNUM DS C CONTROL FIELD NUMBER
PARMPTR DS A ADDRESS OF CONTROL FIELD
DS 2C
PARMLEN DS H CONTROL FIELD LENGTH
*
E61REV CSECT
* CHANGE THE ORDER OF EACH CONTROL FIELD PASSED TO THIS ROUTINE
* FROM ASCENDING TO DESCENDING BY REVERSING ALL OF THE BITS.
* ASSUMES THAT ONLY BI CONTROL FIELDS ARE PASSED.
USING E61REV,12 SHOW BASE REG
STM 14,12,12(13) SAVE ALL REGS EXCEPT R13
LA 12,0(0,15) SET BASE REG
ST 13,SAVE61+4 SAVE BACKWARD POINTER
LA 14,SAVE61 SET FORWARD POINTER
ST 14,8(13) IN SAVE AREA
LR 13,14 SET OUR SAVE AREA
LR 3,1 SET PARM LIST POINTER
USING PARML,3
L 4,PARMPTR GET POINTER TO CONTROL FIELD IMAGE
LH 5,PARMLEN GET LENGTH OF CONTROL FIELD
BCTR 5,0 SUBTRACT 1 FOR EXECUTE
EX 5,REVCF CHANGE FROM ASCENDING TO DESCENDING
GOBACK L 13,4(,13)
LM 14,12,12(13) RESTORE REGS
BR 14 RETURN
REVCF XC 0(*-*,4),REVFF REVERSE CONTROL FIELD BITS
SAVE61 DS 18F
REVFF DC 256X'FF'
LTORG
END