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$