SPL,L,O,M,C 
!     NAME:   MC..
!     SOURCE: 92064-18167 
!     RELOC:  92064-16055 
!     PGMR:   G.A.A.
!     MOD:    G.L.M.
! 
!  ***************************************************************
!  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  ALL RIGHTS     *
!  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
!  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
!  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
!  ***************************************************************
! 
! 
      NAME MC..(7) " 92064-16055  REV.1650  761029" 
! 
!     MOUNT CARTRIDGE DIRECTIVE 
!     ROUTINE FOR RTE FILE
!     MANAGER (FMGR). 
! 
!     ENTERED ON COMMAND: 
! 
!     MC,LU,LTR 
! 
!     W H E R E:
! 
!     LU     IS THE LOGICAL UNIT OF THE DISC TO BE MOUNTED. 
! 
!     LTR    IS THE LAST TRACK ON THE UNIT TO BE
!            USED BY THE FILE MANAGER.
! 
MC..: SUBROUTINE(N,LIS,ER) GLOBAL  !ENTRY 
! 
!     DECLARE EXTERNALS 
! 
      LET DR.RD,D.RIO, EXEC      \
                       BE SUBROUTINE,EXTERNAL 
      LET CLD.R        BE SUBROUTINE,EXTERNAL,DIRECT
! 
      LET D.SDR,DS.F1,PK.DR,TBLEN,DS.DF,    \ 
       .P1,.P2,.P3,.P4,.P5    BE INTEGER,EXTERNAL 
! 
      LET       FID.  BE FUNCTION,EXTERNAL
! 
!     DECLARE CONSTANTS 
! 
      LET XEQT      BE CONSTANT(1717K)
      LET B         BE CONSTANT(    1)
      LET READI     BE CONSTANT(    1)
! 
      IFNOT [LU_$(@LIS+1)] THEN\ !BRING IN THE
             [ER_50;RETURN] 
      LTR_$(@LIS+5)      !PRAMS 
      DS.F1_0         !INSURE A CLEAN READ
      IF LU>0 THEN LU_-LU 
      NLU_-LU 
! 
!   ATTEMPT READ OF BLOCK ZERO
! 
      DR.RD(READI,LU,0)?[GO TO OK]
! 
MC00: ER_12         !SEND DUPLICATE LU
      GOTO CLEX 
! 
OK:   DSDR_@D.SDR 
! 
!   SEARCH FOR ROOM 
! 
      FOR DLU_DSDR TO DSDR+TBLEN-4 BY 4 DO[\
          IFNOT $DLU THEN GO TO MC01] 
      ER_25         !OUT OF MASTER DIRECTORY SPACE
      RETURN        !RETURN 
! 
MC01: MXTR_0
      EXEC(100015K,NLU,EQT5)
      GOTO BADLU
          IF(EQT5 AND 36000K)#14000K THEN[\ 
BADLU:        ER_56; RETURN] !NO DISC-ERR.
      IF (EQT5 AND 37400K)#\
           14000K THEN[EXEC(2,NLU,1,1,10000,0);\
                MXTR_$B-1],ELSE GOTO MC02  !IF NOT DVR30 FETCH MAX
                                           !TRACK 
      IFNOT LTR THEN LTR_MXTR         !IF LAST TRK NOT GIVEN USE MAX-1
      IF LTR>MXTR THEN[ER_56;RETURN]  !IF LAST TRACK>MAX TRACK-ERROR
! 
MC02: IFNOT LTR THEN[ER_55;RETURN]    !IF DVR30--LAST TRK MUST BE GIVEN 
! 
      .P3,$DLU_NLU                    !SET UP 
      DS.DF,.P4,$(DLU+1)_LTR                !   FOR FID. AND D.RFP CALLS
                                            !AND PREVENT NEW READ OF CDIR 
      IFNOT [NEW_FID.(LU)] THEN[\ 
         .P5_$(@PK.DR+3);   \ 
            .P6_0;      \ 
                 DR.RD(READI,.P5,0)?[GOTO MC04];\ 
                  GO TO MC00] 
! 
       DO [.P5_0;.P6_$XEQT;DS.F1_0]   !SET LOCK IF NEW
                                      !AND PREVENT BAD PARMS FROM 
                                      !BEING USED IN FM.UT
! 
! 
! 
MC04:  .P1_7
       .P2_ LU
       .P7_-2 
! 
      ASSEMBLE "  LDA .P6"
      ASSEMBLE "  LDB .P7"
      CALL CLD.R
      ER_$$B
CLEX: DS.DF,DS.F1_0            !FORCE CLEAN READ OF MASTER DIR. 
! 
      RETURN        !DONE 
      END 
      END 
      END$
                                                                                                                                  