*DECK LOVER 
          IDENT  LOVER
           TITLE LOVER - COBOL 5 OVERLAY LOADER 
  
          MACHINE  ANY,I
          SST 
          COMMENT  OVERLAY LOADER 
          LIST   G
          SPACE  4
**        LOVER - COBOL 5 OVERLAY LOADER
* 
*          J.P. WADDELL      03/20/74 
* 
*                LOVER CALLING SEQUENCE:  
* 
*         CALL LOVER (OVLY, EADDR)
*                                  FROM FTN OR SYMPL,F. 
* 
*                PARAMETERS:  
*                OVLY -      OVERLAY NAME TO BE LOADED, LEFT JUSTIFIED, 
*                            ZERO FILLED (I.E. 7LCOB5200) 
* 
*                EADDR -     OPTIONAL RETURN OF OVERLAY ENTRY POINT 
*                            ADDRESS.  IF NOT PRESENT, LOVER EXECUTES THE 
*                            OVERLAY AFTER LOADING.  IF PRESENT, LOVER
*                            LOADS OVERLAY AND RETURNS. 
* 
* 
*                ADDITIONAL PARAMETERS: 
*                FWA FOR EACH LOAD IS PASSED THROUGH COMMON FWALWA. 
*                            ON THE INITIAL CALL FWA SHOULD BE SET TO 
*                            THE VALUE IN BIT 0-17 OF RA+65.
* 
*         LOVER CALLS LDV/LDW 
*                (REFER TO LDV DOCUMENTATION FOR FURTHER DETAILS) 
* 
*         NO REGISTERS ARE SAVED OR RESTORED
* 
* 
* 
          ENTRY  LOVER
          ENTRY  OVERRTN     RETURN ADDR FROM OVERLAYS
* 
* 
          USE    /RALINEC/
 RALINEL  BSS    1
          USE    *
* 
* 
          EJECT 
* 
* 
* 
 LOVER    DATA   0
          SA5    OVCOUNT     COUNT OF CALLS TO LOVER
          SB1    1
          MX6    59 
          IX6    X5-X6       BUMP COUNT OF OVERLAYS 
          SA3    FLAG 
          SA6    A5 
          NZ     X3,LOV3     NOT FIRST TIME 
* 
*                INTIALIZATION
* 
          SA2    65B         GET L
          LX2    59-18
          NG     X2,LOV0A    JP IF NOT A FILE LOAD
          SA4    =0LCOB5LIB  FOR FILE LOAD USE COB5LIB
          BX6    X4 
          SA6    LIBNAME
          EQ     LOV1 
 LOV0A    BSS    0
          SA4    A2-B1       WORD 64B (LIBRARY NAME)
          MX0    42 
          SA3    NUCLEUS
          BX6    X4*X0
          IX3    X6-X3
          ZR     X3,LOV3     NOT USER LIB 
          SA6    LIBNAME     STORE NAME FOR LDSET USE 
 LOV1     BSS    0
 LOV3     SA2    X1          PICK UP OVLY NAME
          SX6    X1 
          SA6    SAVA1
          SA3    FLAG 
          MX7    1
          SA7    A3          CLEAR FIRST TIME FLAG
*      DO NOT CHANGE RA+20 FOR FIRST OVERLAY BECAUSE CONTROL CARDS THERE
          ZR     X3,LOVFT2   JP IF FIRST PASS 
          BX7    X2          PUT NAME IN RA+2 
          SA4    RALINEL     LOCN OF OVL NUMBER 
          MX6    0
          SA7    X4          PUT OVERLAY AWAY 
          SA6    A7+2        CLEAR RA$SUBPHASE
 LOVFT2   BSS    0
          SA2    A1+B1
          BX7    X2 
          SA7    RETURNF
          SA1    GROUP1F
          ZR     X1,NOGRP1   JUMP IF NO GROUP 1 BLOCKS IN THIS OVL
          SA1    FGRPL       GET PARAMETER LIST 
          RJ     =XCMM$FGR   FREE GROUP ID 1
          MX6    0
          SA6    GROUP1F     CLEAR FLAG 
 NOGRP1   BSS    0
          SA2    SAVA1       FETCH OVERLAY NAME 
          SA1    X2 
          RJ     =XCMM.LOV   GO LOAD OVERLAY
          NG     B7,LOVERR   FATAL ERROR
          SX6    B7 
          SA2    RETURNF
          NZ     X2,LOVRTN   RETURN W/ ADDR 
          JP     B7          EXECUTE OVERLAY
 LOVRTN   SA6    X2          SET RETURN ADDR
          EQ     LOVER       RETURN 
* 
* 
* 
 LOVERR   SA3    SAVA1
          SA4    X3          PICK UP OVERLAY NAME 
          BX6    X4 
          SA6    LOVERMS+3   STUFF IT IN MSG
          MESSAGE   LOVERMS,,RECALL 
          ABORT  ,NODUMP     DIE + SKIP TO EXIT(S)
* 
          EJECT 
* 
* 
*                LOVER WORKING STORAGE
* 
* 
 FLAG     DATA   0           FIRST TIME FLAG
 SAVA1    DATA   0
 RETURNF  BSS    1
* 
* 
* 
 NUCLEUS  VFD    60/0LNUCLEUS 
* 
 LOVERMS  DATA   30HABORTING - CANT LOAD OVERLAY
          DATA   0           OVLY NAME + END OF MSG 
* 
 FGRPL    VFD    60/GROUP1F 
* 
          ENTRY  GROUP1F
 GROUP1F  DATA   0           SET TO 1 IF GROUP 1 BLOCKS IN THIS OVL 
          ENTRY  SORTLIB
 SORTLIB  DATA   0L"SORTLIB"  DEFAULT SORT LIBRARY
          ENTRY  LIBNAME
 LIBNAME  CON    0L_"COB5LIB" 
          ENTRY  OVCOUNT
 OVCOUNT  DATA   0           COUNT OF OVERLAYS
          SPACE  3
* 
*         OVERRTN - RETURN FROM OVERLAYS (USED FROM SYMPL CODE) 
* 
 OVERRTN  DATA   0
          EQ     LOVER       GO HOME
* 
* 
          END 
