+C* SORTM MACRO KEY TAG 50 LE C******************************************************************** C* MACRO PARM 1 = ARRAY NAME TO BE SORTED . * C* MACRO PARM 2 = TAG-ALONG ARRAY NAME * C* MACRO PARM 3 = ARRAY DIMENSION - NBR OF ELEMENTS . * C* MACRO PARM 4 = SEQUENCE OPTION LE = ASCENDING, GE = DESCENDING * C******************************************************************** +C* Z-ADD &3 @M 4.0 +C* LOOP +C* @M DIV 2 = @M P-L9 +C* EXITIF L9-OFF +C* &3 SUB @M = @FACT 4.0 +C* DO @FACT TIMES USING @J 4.0 +C* Z-ADD @J TO @I 4.0 +C* LOOP +C* @I ADD @M = @L 4.0 +C* EXITIF &1,@I &4 &1,@L .KEY,I : KEY,L +C* MOVE &1,@I TO @&1 256 +C* MOVE &2,@I TO @&2 256 +C* MOVE &1,@L TO &1,@I +C* MOVE &2,@L TO &2,@I +C* MOVE @&1 TO &1,@L +C* MOVE @&2 TO &2,@L +C* SUB @M FROM @I P-L9 +C* EXITIF L9-OFF +C* ENDLOOP +C* ENDDO +C* ENDLOOP C* . C* . C* . +C* MEND .