ASMB,R,L,C,Q
*     NAME:   AC..
*     SOURCE: 92067-18255 
*     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 AC..,8 92067-16185 REV.1903 790129
      ENT AC..
      EXT .ENTR,DCMC,SESSN
      SUP 
* 
* 
*  ALLOCATE CARTRIDGE ROUTINE FOR RTE 
*  FILE MANAGER   (FMGR)
* 
*  ENTERED ON COMMAND:
* 
*  AC,CRN[,P/G[,SIZE[,ID[,#DIR TRACKS]]]] 
* 
*    WHERE
* 
*  CRN   - CARTRIDGE REFERENCE NUMBER TO BE ASSIGNED TO DISC THAT 
*          IS ALLOCATED TO THE USER 
*  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
* 
* 
*  AC.. EXTRACTS PARAMETERS FROM PARSE LIST AND CALLS 
*  SUBROUTINE DCMC. TO PERFORM THE MOUNT. 
* 
* 
N     NOP 
LIS   NOP 
ER    NOP 
AC..  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 
      JSB SESSN     FIND OUT IF CALLER'S UNDER SESSION CONTROL
      DEF *+2 
      DEF XEQT
      SEZ           UNDER SESSION CONTROL?
      JMP EX45      NO - SHOULDN'T BE DOING AN AC COMMAND 
      LDA N,I       GET NUMBER OF PARAMETERS IN PARSE LIST
      SZA,RSS       IF THERE WEREN'T ANY
      JMP EX50       EXIT NOT ENOUGH PARAMETERS 
      CMA,INA       MAKE IT NEGATIVE
      STA N          TO USE AS A COUNTER
      LDB LIS 
      LDA B,I       GET CARTRIDGE FROM PARSE LIST   (FLAG WORD) 
      SZA,RSS       IF NONE SPECIFIED 
      JMP EX50       EXIT NOT ENOUGH PARAMETERS 
      INB 
      LDA B,I 
      SSA,RSS 
      SZA,RSS       OR IF A ZERO SPECIFIED
      JMP EX56       EXIT BAD PARAMETER 
      STA DISID 
      ISZ N 
      RSS 
      JMP CALL
* 
      ADB .3
      LDA B,I       GET PRIVATE/GROUP INDICATOR  (FLAG WORD)
      CPA .1        CAN'T BE NUMBERIC 
      JMP EX56      EXIT BAD PARAMETER
      INB 
      LDA B,I 
      SZA 
      CPA P         IF PRIVATE SET TO 0 
      JMP PG2 
      CPA G         IF GROUP SET TO 1 
      JMP PG1 
      JMP EX56      ELSE EXIT BAD PARAMETER 
PG1   ISZ P/G 
PG2   ISZ N 
      RSS 
      JMP CALL
* 
      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       SIZE IN TRACKS
      SSA           CAN'T BE NEGATIVE 
      JMP EX56       BAD PARAMETER
      STA SIZE
      ISZ N 
      RSS 
      JMP CALL
* 
      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 
      RSS 
      JMP CALL
* 
      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       BAD PARAMETER
      CMA,INA 
      STA DIRTK 
* 
* 
CALL  JSB DCMC      CALL DCMC. TO MOUNT THE DISC. 
      DEF RTN 
      DEF ER,I
      DEF CODE
      DEF DISID 
      DEF P/G 
      DEF SIZE
      DEF ID
      DEF DIRTK 
RTN   EQU * 
      JMP EXIT
* 
EX45  LDA .45 
      RSS 
EX50  LDA .50       NOT ENOUGH PARAMETERS 
      RSS 
EX53  LDA .53 
      RSS 
EX56  LDA .56       BAD PARAMETER 
      STA ER,I
EXIT  JMP AC..,I
* 
* 
XEQT  EQU 1717B 
B     EQU 1 
CODE  OCT 1 
.1    OCT 1 
.3    OCT 3 
.4    OCT 4 
.45   DEC 45
.50   DEC 50
.53   DEC 53
.56   DEC 56
G     OCT 43440 
P     OCT 50040 
DISID NOP 
P/G   NOP 
SIZE  NOP 
ID    BSS 3 
DIRTK NOP 
LABEL NOP 
* 
      END 
            