ASMB,R,L,C,Q * NAME: MC.. * SOURCE: 92067-18218 * RELOC: 92067-16185 * PGMR: N.J.S. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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. * * *************************************************************** * * NAM MC..,8 92067-16185 REV.1903 790402 ENT MC.. EXT .ENTR,DCMC,LUTRU,SESSN SUP * * * MOUNT CARTRIDGE ACTION ROUTINE FOR * RTE FILE MANAGER (FMGR) * * ENTERED ON COMMAND: * * MC,LU[,P/G[,SIZE[,ID[,#DIR TRACKS[,LABEL]]]]] * * WHERE * * LU - + OR - LOGICAL UNIT NUMBER OF DISC TO BE MOUNTED * P/G - P INDICATES DISC IS TO BE MOUNTED AS PRIVATE, G AS GROUP * SIZE - # TRACKS NEEDED ON THE ALLOCATED DISC. DEFAULT WILL BE TO * FIRST AVAILABLE DISC IN DISC POOL * ID - 6-CHAR ASCII IDENTIFIER * # DIR TRACKS - # DIRECTORY TRACKS MADE NEGATIVE WHEN SENT TO DCMC * LABEL - CRN TO BE ASSIGNED TO THE DISC IN THE CASE WHERE THERE * IS NO VALID DIRECTORY ENTRY ON THE LAST TRACK * * * MC.. EXTRACTS PARAMETERS FROM PARSE LIST AND CALLS * SUBROUTINE DCMC. TO PERFORM THE MOUNT. * * N NOP LIS NOP ER NOP MC.. NOP JSB .ENTR DEF N CLA CLEAR STA P/G PARAMETERS STA SIZE TO BE STA ID PASSED TO STA ID+1 DCMC. STA ID+2 STA DIRTK STA LABEL * * + OR - LU * LDA N,I GET # OF PARAMETERS IN PARSE LIST SZA,RSS IF THERE WEREN'T ANY JMP EX50 EXIT NOT ENOUGH PARAMETERS CMA,INA MAKE NEGATIVE STA N TO USE AS A COUNTER LDB LIS LDA B,I GET LU FROM PARSE LIST (FLAG WORD) SZA,RSS IF NOT SPECIFIED JMP EX50 EXIT NOT ENOUGH PARAMETERS CPA .3 CAN'T BE ASCII JMP EX56 IT IS, SO BAD PARAMETER EXIT INB LDA B,I GET LU SZA,RSS IF A ZERO JMP EX56 EXIT BAD PARAMETER SSA IF ALREADY POSITIVE, SKIP CMA,INA OTHERWISE MAKE LU POSITIVE STA LU AND SAVE FOR LUTRU CALL CMA,INA MAKE NEGATIVE FOR STA DISID DCMC CALL ADA .63 DISC LU PASSED IN CAN'T SSA BE 64 OR LARGER JMP EX56 IT IS, SO BAD PARAMETER EXIT STB TMP REMEMBER B = POINTER IN LIS * JSB SESSN SEE IF CALLER IS DEF *+2 UNDER SESSION CONTROL DEF XEQT SEZ IN SESSION? JMP MT.1 NO - SKIP 'IN SST' TEST * JSB LUTRU MAKE SURE THAT FOR SESSION USERS DEF *+2 THIS LU IS IN THE SST DEF LU SSA IN SESSION BUT NOT IN SST? JMP EX43 YEP - NOT IN SST ERROR MT.1 ISZ N MORE PARAMETERS RSS PASSED JMP CALL NO - GO CALL DCMC * * PRIVATE/GROUP INDICATOR * LDB TMP GET B BACK AGAIN ADB .3 LDA B,I GET PRIV/GROUP INDICATOR (FLAG WORD) CPA .1 CAN'T BE NUMBERIC JMP EX56 IT IS, SO EXIT BAD PARAMETER INB LDA B,I GET VALUE PASSED IN SZA IF DEFAULT, USE P CPA P IF PRIVATE SET TO 0 JMP PG2 CPA G IF GROUP SET TO 1 JMP PG1 JMP EX56 ELSE ERROR BAD PARAMETER PG1 ISZ P/G SET P G TO 1 PG2 ISZ N MORE PARAMETERS RSS PASSED? JMP CALL NO - GO CALL DCMC * * SIZE * ADB .3 LDA B,I GET SIZE IN TRACKS (FLAG WORD) CPA .3 CAN'T BE ASCII JMP EX56 EXIT BAD PARAMETER INB LDA B,I GET VALUE FOR SIZE IN TRACKS SSA CAN'T BE NEGATIVE JMP EX56 BAD PARAMETER EXIT STA SIZE ISZ N MORE PARAMETERS RSS PASSED? JMP CALL NO - GO CALL DCMC * * 6-CHAR ASCII LABEL * ADB .3 LDA B,I GET LABEL (FLAG WORD) CPA .1 CAN'T BE NUMBERIC JMP EX53 EXIT BAD PARAMETER INB LDA B,I FIRST TWO CHARACTERS OF ASCII IDENTIFIER STA ID INB LDA B,I 3RD AND 4TH CHARACTERS OF ASCII IDENTIFIER STA ID+1 INB LDA B,I 5TH AND 6TH CHARACTERS OF ASCII IDENTIFIER STA ID+2 ISZ N MORE PARAMETERS RSS PASSED? JMP CALL NO - GO CALL DCMC * * # DIRECTORY TRACKS * INB LDA B,I GET NUMBER OF DIR TRACKS (FLAG WORD CPA .3 CAN'T BE ASCII JMP EX56 EXIT BAD PARAMETER INB LDA B,I NUMBER OF DIRECTORY TRACKS SSA CAN'T BE NEGATIVE JMP EX56 EXIT BAD PARAMETER CMA,INA MAKE NEGATIVE STA DIRTK TO SEND TO DCMC ISZ N MORE PARAMETERS RSS PASSED? JMP CALL NO - GO CALL DCMC * * CRN * ADB .4 LDA B,I GET LABEL - CRN (FLAG WORD) SSA MAKE SURE A NEGATIVE VALUE ISN'T SUPPLIED JMP EX56 NEGATIVE - BAD PARAMETER ERROR STA LABEL * * CALL JSB DCMC CALL DCMC. TO MOUNT THE DISC. DEF RTN DEF ER,I DEF CODE MOUNT = 1 DEF DISID -LU DEF P/G P = 0 OR G = 1 DEF SIZE DISC SIZE IN TRACKS DEF ID 6-CHAR ASCII LABEL DEF DIRTK # DIRECTORY TRACKS DEF LABEL CRN RTN EQU * JMP EXIT * EX43 LDA .43 LU NOT IN SST RSS EX50 LDA .50 NOT ENOUGH PARAMETERS RSS EX53 LDA .53 ILLEGAL LABEL RSS EX56 LDA .56 BAD PARAMETER STA ER,I EXIT JMP MC..,I * * B EQU 1 XEQT EQU 1717B CODE OCT 1 MOUNT CODE FOR DCMC .1 OCT 1 .3 OCT 3 .4 OCT 4 .43 DEC 43 .50 DEC 50 .53 DEC 53 .56 DEC 56 .63 DEC 63 G OCT 43440 P OCT 50040 DISID NOP P/G NOP SIZE NOP ID BSS 3 DIRTK NOP LABEL NOP LU NOP TMP NOP * END