*DECK LOD=
          IDENT  LOD= 
  
          TITLE  LOD= - LOAD OVERLAY DATA 
          IPARAMS 
 OPSYS    MICRO  1,7,*"OS.NAME"_"OS.VER"* 
          COMMENT  LOAD OVERLAY DATA. 
          B1=1
 LOD=     SPACE  4
**        LOD= - LOAD OVERLAY DATA. 
* 
* 
*              THIS ROUTINE IS THE INTERFACE TO THE SYSTEM OVERLAY
*         LOADER FOR THE CASE WHERE THE *DATA* OPTION IS USED IN THE
*         3RD PARAMETER OF THE *LOADREQ* MACRO.  IT DOES THE FOLLOWING: 
* 
*         1) SETS OR CLEARS THE D-BIT (BIT 43) IN THE PARAMETER AREA, 
*            ACCORDING TO WHETHER OR NOT CMM IS ACTIVE. 
*         2) ISSUES THE REQUEST.
*         3) IF THE CONTENTS OF RA+65B, BITS 0-17, WERE PREVIOUSLY
*            NEGATIVE, RESTORES THESE PREVIOUS CONTENTS.
* 
*         ENTRY  (X1) = PARAMETER AREA FWA. 
*                THE PARAMETER AREA IS SET UP AS SPECIFIED. 
* 
*         EXIT   THE PARAMETER AREA IS SET UP WITH THE SPECIFIED
*                RETURNS. 
* 
*         SAVES  X - 0, 2, 3, 4, 5, 7.
*                B - ALL. 
*                A - 0. 
  
  
          ENTRY  LOD= 
 LOD=     EQ     *+400000B   ENTRY / EXIT 
          SA7    SAVEX7      SAVE X7
          BX7    X2          SAVE X2
          SA7    SAVEX2 
          SX7    X1          (X7) = PARAMETER ADDRESS 
          IFC    EQ,*"OPSYS"*SCOPE 2*,3 
          SA2    X1          STORE WORD 0 OF REQUEST IN HOLD AREA 
          BX6    X2 
          SA6    PARAM
          SA1    65B         SAVE RA+65B CONTENTS 
          SX6    X1 
          SA6    SAVE65 
          SA1    X7+1        WORD 1 OF PARAMETER
          IFC    EQ,*"OPSYS"*SCOPE 2*,1 
          SA7    PARAMSV     SAVE PARAMETER ADDRESS 
          SX2    X1          FWA
          LX1    -18
          SX7    X1          LWA
          LX1    18 
          ZR     X2,LODERR   ERROR IF EITHER FWA OR LWA = 0 
          ZR     X7,LODERR
          PL     X6,LOD1     IF CMM NOT ACTIVE, BYPASS DABA TEST
          BX2    -X6         DABA 
          IX2    X2-X7       DABA-LWA 
          PL     X2,LOD1     LEGAL REQUEST IF LWA @ DABA
          SX7    X1          FWA
          BX2    -X6         DABA 
          IX2    X7-X2       FWA-DABA 
          MI     X2,LODERR   IF NEITHER LWA @ DABA NOT FWA \ DABA 
 LOD1     MX7    1           SET D-BIT IF CMM ACTIVE, CLEAR IF NOT
          BX7    X7*X6
          MX6    -1 
          LX6    43-0 
          LX7    1+43-0 
          BX6    X6*X1
          BX6    X6+X7
 OS       IFC    NE,*"OPSYS"*SCOPE 2* 
          SA6    A1 
          SX1    A1-1 
          LOADREQ  X1,RCL    ISSUE LOADER REQUEST 
 OS       ELSE
          SA6    PARAM+1     STORE WORDS 1, 2, 3 IN HOLD AREA 
          SA1    A1+1 
          SA2    A1+1 
          BX6    X1 
          LX7    X2 
          SA6    A6+1 
          SA7    A6+1 
          LOADREQ  PARAM,RCL  ISSUE LOADER REQUEST
          SA2    PARAMSV     RESTORE UPDATED LOADER REQUEST IN THE
          SA1    PARAM        CALLER AREA 
          BX6    X1 
          SA6    X2 
          SA2    A1+1 
          BX7    X2 
          SA7    A6+1 
          SA1    A2+1 
          SA2    A1+1 
          BX6    X1 
          LX7    X2 
          SA6    A7+1 
          SA7    A6+1 
 OS       ENDIF 
          SA1    SAVE65      PREVIOUS LOWER 18 BITS OF RA+65
          MX7    42          RESTORE PREVIOUS RA+65 
          BX6    -X7*X1 
          SA1    65B
          BX7    X7*X1
          BX7    X6+X7
          SA7    A1 
          SA1    SAVEX7      RESTORE X7 
          SA2    SAVEX2      RESTORE X2 
          BX7    X1 
          EQ     LOD=        RETURN 
 LODERR   MESSAGE  (=C/ ILLEGAL DATA OVERLAY LOAD REQUEST/),,R
          ABORT 
  
          IFC    EQ,*"OPSYS"*SCOPE 2*,2 
 PARAMSV  CON    0
 PARAM    BSSZ   4
 SAVEX2   CON    0
 SAVEX7   CON    0
 SAVE65   CON    0
  
          END 
