*DECK S$GNFM4 
          IDENT  S$GNFM4
          TITLE  S$GNFM4  - GENERATE FINAL MERGE CODE PART 4
          COMMENT  GENERATE FINAL MERGE CODE PART 4.
  
*CALL LBLPTR
  
          B1=1
  
  
**        S$GNFM4  - GENERATE FINAL MERGE CODE PART 4 
* 
*     CALLING SEQUENCE- 
*         S$GNFM4 ; 
* 
*     DOES- 
*         GENERATE FINAL MERGE CODE PART 4
* 
*         GENERATED CODE EXPECTS- 
*         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 X7<0, SWAP CR AND LL 
*         GOTO COMPETE AT NEXT TRN LEVEL
*             UNLESS LEVEL 0 THEN GOTO WRITE OUT WINNER 
* 
  
  
          ENTRY  S$GNFM4
 S$GNFM4  SUBR               ENTRY/EXIT WORD
          SB1    1           CONSTANT 1 
  
          GEN    (PL X7,"FNLMRG4")     *IF LL<CR, I.E. (X4)<(X6)
          GEN    (SA6 A4)              *SWAP CR 
          GEN    (BX6 X4)              *  AND LL
  
          GENLBL FNLMRG4
          GEN    (AX2 1)               *GOTO NEXT LEVEL 
          GEN    (NZ X2,"FNLMRG3")     *IF NOT LEVEL 0
          GEN    (EQ "FNLMRG1")        * ELSE GOTO WRITE OUT WINNNER
  
          GENLBL ENDSORT             FROM S$GNPR1 
          GEN    (EQ "FNLMRG")       EXIT 
  
                                       ** DATA AREA 
          GENLBL SAVEAD                *PTR TO 1ST WD IN RSA OF LW
          GENMAC (DATA 0) 
          GENLBL SAVEX6 
          GENMAC (DATA 0) 
          GENLBL WSA                   *ADDR OF TRN/WSA 
          GENMAC (DATA 0) 
          GENLBL FETS                  *ADDT OF TABLE OF FETS FOR FNLMRG
  
          EXIT
          END 
