*COMDECK COMFDST - SORT DOUBLE ENTRY TABLE. 
 COMFDST  CTEXT 
          SPACE  4,7
**        DSRT-  SORT DOUBLE ENTRY TABLE. 
*         USES *SHELL* ALGORITHM (ACM JOURNAL 1960) 
*         ENTRY- A1 POINTS TO TABLE TO BE SORTED. 
*         EXIT-  TABLE IS SORTED
*         USES   A0,A1,A2,A3,A4,A7  X0  B2,B3,B4,B5,B6,B7 
  
  
 DSRT     SUBR   0           ENTRY/EXIT...
          SA2    A1+=XN.TABLE 
          SX3    X2-2 
          MI     X3,EXIT.    IF LESS THAN 2 ENTRIES - EXIT... 
          SB7    X2          LENGTH OF TABLE TO  (I)
          SA0    X1-2        STARTING ADDRESS TO (Z)
          SB6    B7          LENGTH OF TABLE TO  (N)
 DSRT10   SX0    B6 
          AX0    2           /4 
          =B3    2
          LX0    1           /2 
          SB6    X0          N= N/2 
          ZR     B6,EXIT.    IF N=0 EXIT... 
          SB4    B7-B6       L=I-N
          SB2    B3          J=K
 DSRT20   SB5    B2+B6       M=J+N
          SA1    A0+B2       A(J)  (SYMBOL ENTRIES) 
          SA2    A0+B5       A(L) 
          IX6    X2-X1       A(L)-A(J)
          PL     X6,DSRT30   IF A(L) .GE. A(J)
          SA3    A1+B1       (TAG ENTRIES)
          SA4    A2+B1
          BX6    X1 
          LX7    X3 
          SA6    A2          (SYMBOL) 
          SA7    A4          (TAG   ) 
          LX6    X2 
          BX7    X4 
          SA6    A1          (SYMBOL) 
          SB2    B2-B6       J=J-N
          SA7    A3          (TAG   ) 
          GT     B2,DSRT20   IF J .GT. 0
 DSRT30   SB3    B3+2        K=K+2
          NO
          SB2    B3          J=K
          LE     B3,B4,DSRT20      IF K .LE. L
          EQ     DSRT10      LOOP THRU TABLE
 COMFDST  ENDX
