*DECK S$GNIM3 
          IDENT  S$GNIM3
          TITLE  S$GNIM3  - GENERATE INTERMEDIATE MERGE CODE PART 3 
          COMMENT  GENERATE INTERMEDIATE MERGE CODE PART 3. 
  
*CALL LBLPTR
  
          B1=1
  
  
**        S$GNIM3  - GENERATE INTERMEDIATE MERGE CODE PART 3
* 
*     CALLING SEQUENCE- 
*         S$GNIM3 ; 
* 
*     DOES- 
*         GENERATE INTERMEDIATE MERGE CODE PART 3 
* 
*     GENERATED CODE EXPECTS- 
  
*                            A4=ADDR OF LAST LOSER DESCRIPTOR 
*                            B1=1 
*                            B2=ADDRESS OF WSA/TRN
*                            X2= INDEX TO TRN 
*                            X4= DESCRIPTOR OF LAST LOSER (LL)
*                            X6= DESCRIPTOR OF CURRENT RECORD (CR)
*                            X7<0  IF CR>LL (I.E. (X6) > (X4) ) 
* 
*     GENERATED CODE DOES-
* 
*                IF LL<CR (X7<0), SWAP CR AND LL (I.E. (X6) AND (X4) )
*         "INTMRG5":  
*                IF TRN INDEX (X2) IS > 0,
*                        GO TO "INTMRG4" TO COMPETE AT NEXT LEVEL 
*                ELSE FALLS THRU TO PUT RECORD FROM BUFFER
*                         TO INTERNAL OUTPUT FILE. (S$GNPIB)
* 
*     GENERATED CODE LEAVES REGISTERS:  
*                            A0=ADDR OF FET OF INTERNAL OUPUT FILE
*                            B1=1 
*                            B2=ADDR OF WSA/TRN 
*                            X4=DESCRIPTOR OF LAST LOSER
*                            X6=DESCRIPTOR OF LAST WINNER 
* 
  
  
          ENTRY  S$GNIM3
 S$GNIM3  SUBR               ENTRY/EXIT WORD
          SB1    1           CONSTANT 1 
  
          GEN    (PL X7,"INTMRG5")     *IF LL<CR, I.E. (X4)<(X6)
          GEN    (SA6 A4)              *SWAP CR 
          GEN    (BX6 X4)              *  AND LL
  
          GENLBL INTMRG5
          GEN    (AX2 1)               *GOTO NEXT LEVEL 
          GEN    (NZ X2,"INTMRG4")     *IF NOT LEVEL 0
  
  
          EXIT
          END 
