*DECK S$GNIM4 
          IDENT  S$GNIM4
          TITLE  S$GNIM4  - GENERATE INTERMEDIATE MERGE CODE PART 4 
          COMMENT  GENERATE INTERMEDIATE MERGE CODE PART 4. 
  
*CALL LBLPTR
  
          B1=1
  
  
**        S$GNIM4  - GENERATE INTERMEDIATE MERGE CODE PART 4
* 
*     CALLING SEQUENCE- 
*         S$GNIM4 ; 
* 
*     DOES- 
*         GENERATE INTERMEDIATE MERGE CODE PART 4 
* 
*     GENERATED CODE IS-
* 
*                  X6 = DESCRIPTOR OF LAST WINNER (LW)
* 
*         IF X6"0 (CR"EOD), GOTO "INTMRG3" TO COMPUTE NEW INDEX 
*         ELSE DECREMENT NPASSES BY 1 
*              POINTS ADDRPASS TO NEXT PASS VIA "ADDRPASS" AND "NFILES" 
*              IF NPASSES"0, GO TO "INTMRG2" TO DO NEXT PASS
*              ELSE DECREMENT NSECTS BY 1 
*                   IF NSECTS"0, SET <LOCAL A0> TO FET OF ZZZZZ3W 
*                                SET FIRST, IN AND OUT POINTERS 
*                                  TO ADDRESS FOR NEW SECTION 
*                                  (VIA "IMTBL")
*                                READ NEW SECTION VIA <LOCAL A0>
*                                GOTO "INTMRG1" TO DO NEW SECTION 
*                   ELSE GOTO "INTMRG" (I.E. EXIT IM CODE)
* 
  
  
          ENTRY  S$GNIM4
 S$GNIM4  SUBR               ENTRY/EXIT WORD
          SB1    1           CONSTANT 1 
  
          GEN    (NZ X6,"INTMRG3")     *IF X6"EOD,COMPUTE NEW INDEX 
  
                                       *DECREMENT NPASSES BY 1
          GEN    (SA3 "NPASSES")
          GEN    (SX3 X3-1) 
          NEWLBL INT4 
          GEN    (ZR X3,"INT4")        *IF NO MORE PASSES 
  
          GEN    (BX7 X3) 
          GEN    (SA7 A3) 
                                       *ADDRPASS= ADDRPASS + NFILES + 1 
          GEN    (SA5 "ADDRPASS") 
          GEN    (SX7 X5+B1)           *X7 = ADDRPASS+1 
          GEN    (SA5 "NFILES") 
          GEN    (IX7 X7+X5)           * X7 = ADDRPASS + 1 + NFILES 
          GEN    (SA7 "ADDRPASS") 
  
          GEN    (EQ "INTMRG2")        *GO BACK TO DO NEXT PASS 
  
          GENLBL INT4 
                                       *DECREMENT NO OF SECTIONS BY 1 
          GEN    (SA3 "NSECTS") 
          GEN    (SX3 X3-1)            *NPASSES=NPASSES-1 
          GEN    (BX7 X3) 
          GEN    (SA7 A3) 
          GEN    (ZR X3,"INTMRG")      *EXIT IF NO MORE SECTIONS
  
                                       *READ NEW SECTION
          NEWLBL FET
          GEN    (SA0 "FET")           *FET FOR FILE ZZZZZ3W
          GEN    (SA3 "IMTBL")         *ADDR OF IMTBL$
          GEN    (SX7 X3+B1)           *ADDR FOR NEW SECTION
          GEN    (SA7 A0+B1)           *SET FIRST PTR 
          GEN    (SA7 A7+B1)           *SET IN PTR
          GEN    (SA7 A7+B1)           *SET OUT PTR 
          GEN    (SX7 X7+401B)         * 401B IS BIG ENOUGH FOR BUFFER
          GEN    (SA7 A7+B1)           *SET LIMIT PTR 
  
          GENMAC (READ A0,RECALL)      *READ NEW SECTION
  
          GEN    (EQ "INTMRG1")        *GOTO PROCESS NEW SECTION
  
  
                                       ** DATA AREA 
  
          GENLBL ADDRPASS              *ADDRESS OF THIS PASS
          GENMAC (DATA 0) 
          GENLBL FET                   *FET FOR ZZZZZ3W, FILE OF
          GENMAC (VFD 42/7LZZZZZ3W,18/1)       SECTIONS 
          GENLBL FETS                  *WHERE TO SAVE OUTPUT FET ADDR 
          GENMAC (DATA 0) 
          GENMAC (BSSZ 4)              *FIRST, IN, OUT AND LIMIT PTRS 
          GENLBL IMTBL                 *ADDRESS OF IMTBL$ 
          GENMAC (DATA 0) 
          GENLBL MAXNFILE              *MAX NO OF FILES IN A PASS 
          GENMAC (DATA 0) 
          GENLBL NFILES                *NUMBER OF FILES IN THIS PASS
          GENMAC (DATA 0) 
          GENLBL NPASSES               *NUMBER OF PASSES IN THIS SECTION
          GENMAC (DATA 0) 
          GENLBL NSECTS                *TOTAL NO OF SECTIONS
          GENMAC (DATA 0) 
          GENLBL RECDESC               *LOCAL WORD TO SAVE LW 
          GENMAC (DATA 0) 
          GENLBL SAVEX6                *LOCAL WORD TO SAVE X6 
          GENMAC (DATA 0) 
          GENLBL ZZZZZ1                *TEMPLATE FOR ZZZZZ1* LFN
          GENMAC (VFD 36/6LZZZZZ1,24/1) 
          GENLBL ZZZZZ2                *TEMPLATE FOR ZZZZZ2* LFN
          GENMAC (VFD 13/1,29/2,18/0)  *FET WORD 1 W/ RANDOM PROCESSING 
  
          EXIT
          END 
