          CTEXT  DSI$PP SSR INTERFACE
          SPACE  4,10
 QUAL$    IF     -DEF,QUAL$
          QUAL   DSIPSI
 QUAL$    ENDIF
          BASE   M
*         COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992
 DSIPSI   SPACE  4,10
***       DSI$PP_SSR_INTERFACE.
*         B. R. HANSON       85/05/14.
 DSIPSI   SPACE  4,10
***       DSI$PP SSR INTERFACE CONTAINS THE ROUTINES
*         NECESSARY TO ACCESS IN THE SSR.
*
*         THIS DECK REQUIRES THAT THE USER HAVE THE FOLLOWING
*         ADDRESSES DEFINED IN THE MAIN PROGRAM.
*
*         T2      : ANY DIRECT CELL.
*         W0 - W5 : DIRECT CELLS IN CONTIGUOUS ORDER.
*         SA, SA+1: TWO CONTIGUOUS DIRECT CELLS TO CONTAIN THE R-REGISTER
*                   FOR THE SSR ADDRESS.
*         SAAO    : A MEMORY LOCATION TO CONTAIN THE OFFSET FROM THE
*                   R-REGISTER.
*
*         THE *IIB* ROUTINE IN THE COMMON DECK DSI$PP UTILITY SUBROUTINES
*         IS ALSO REQUIRED.
 FSE      SPACE  4,10
**        FSE - FIND SSR ENTRY.
*
*         ENTRY  (A) = ADDRESS OF SSR NAME IN ASCII.
*
*         EXIT   (A) = ADDRESS OF SSR ENTRY BLOCK.
*                (W1) = WORD OFFSET OF ENTRY IN SSR.
*                (W2 - W5) = SSR ENTRY.
*
*         USES   T2, W1 - W5.
*
*         CALLS  INS.


 FSE1     LDDL   W5          FETCH BLOCK OFFSET
          RJM    INS         PREPARE FOR CM READ/WRITE

 FSE      SUBR               ENTRY/EXIT
          STDL   T2
          LDN    0
          STD    W1
 FSE2     RJM    INS         FETCH SSR ENTRY
          CRDL   W2
          LDDL   W2
          SBIL   T2
          ADDL   W3
          SBML   1,T2
          ZJN    FSE1        IF MATCH
          AOD    W1
          UJN    FSE2        CHECK NEXT ENTRY
 INS      SPACE  4,10
**        INS - INCREMENT SSR ADDRESS.
*
*         ENTRY  (A) = 16-BIT INCREMENT.
*                (SA - SA) = SSR DIRECTORY ADDRESS (BASE).
*                (SAAO) = OFFSET FROM R-REGISTER.
*
*         EXIT   (A) = PARTIAL ADDRESS (RAR OVERFLOW).
*                (RAR) = RELOCATION VALUE.
*
*         USES   NONE.


 INS      SUBR               ENTRY/EXIT
          LRD    SA
          ADM    SAAO
          ADC    400000B
          UJN    INSX        EXIT
 SSR      SPACE  4,10
**        SSR - SET UP SSR RMA POINTER.
*
*         EXIT   (A) = 0, IF SSR NOT READY.
*                (A) = 1, IF SSR READY.
*                (SAAO) = OFFSET TO SSR FROM R-REGISTER.
*                (SA - SA+1) = SSR R-REGISTER VALUE.
*
*         USES   W0 - W3.
*
*         CALLS  IIB.


 SSR      SUBR               ENTRY/EXIT
          LDN    D8SSR
          RJM    IIB         INDEX FROM INTERFACE BLOCK
          CRDL   W0
          LDD    W0          FETCH OFFSET FROM R
          STM    SAAO
          LRD    W1          FETCH R-REGISTER
          SRD    SA
          UJN    SSRX        RETURN
          SPACE  4,10
          BASE   *
 QUAL$    IF     -DEF,QUAL$
          QUAL   *
 FSE      EQU    /DSIPSI/FSE
 INS      EQU    /DSIPSI/INS
 SSR      EQU    /DSIPSI/SSR
 QUAL$    ENDIF
          ENDX
