         TITLE    '***** ASSIGN CAL PROCESSOR *****'                            
         SPACE    5                                                             
         SYSTEM   SIG7FDP                                                       
         SYSTEM   OPTIONS                                                       
*                                                                               
         DEF      ASSIGN                                                        
         DEF      ASSIGNX                                                       
*                                                                               
OLAYFLAG EQU      'ASSI'                                                        
*                                                                               
         SYSTEM   CPRMON                                                        
         TITLE    '***** ASSIGN CAL OVERVIEW *****'                             
         SPACE 5                                                                
*                                                                               
*        ASSIGN A DCB TO AN I/O MEDIUM                                          
*                                                                               
*        AT ENTRY, R3 = FPT ADDRESS                                             
*                                                                               
*        DURING EXECUTION,                                                      
*                 (R1) = NAME BLOCK ADDRESS, WHEN FOUND                         
*                 (R2) = DCB ADDRESS                                            
*                 (R3) = FPT ADDRESS                                            
*                 (R4) = DCB LENGTH IN WORDS                                    
*                 (R5) = ACCOUNT NAME BLOCK ADDRESS, WHEN FOUND                 
*                                                                               
*        IF THE SIZE OF THE DCB PERMITS, ASSIGNMENT WILL BE MADE                
*        BY NAME.  OTHERWISE, IN THE CASES OF DEVICES, OPLABELS,                
*        OR DISK AREAS, A SYSTEM TABLE INDEX WILL BE DETERMINED                 
*        AND ASSIGNMENT WILL BE MADE TO THAT TABLE ENTRY.                       
*                                                                               
*        ASSIGN CAL PROCESSING FLOW BEGINS AT LABEL                             
*        'ASSIGN'. CODE FOLLOWING THAT LABEL DETERMINES                         
*        WHICH RULE PERTAINS, AND THEN CALLS A SUB-                             
*        ROUTINE FOR EACH ACTION REQUIRED.                                      
*        FOR RULE AND ACTION DEFINITIONS, SEE THE                               
*        DECISION TABLE WHICH FOLLOWS.                                          
         TITLE    '***** ASSIGN CAL DECISION TABLE *****'                       
         SPACE    5                                                             
************************************************************                    
*             DECISION TABLE FOR ASSIGN CAL                *                    
************************************************************                    
*                                                                               
*        THE FOLLOWING TABLE IS A FORMAL DESCRIPTION                            
*        OF THE BEHAVIOR OF THE ASSIGN CAL PROCESSOR.                           
*                                                                               
*        'CONDITIONS' ARE A SET OF STATEMENTS ABOUT                             
*        THE SITUATION PRESENTED TO THE PROCESSOR.                              
*                                                                               
*        'ACTIONS' ARE A SET OF PRIMITIVE OPERATIONS WHICH                      
*        CAN BE EXECUTED BY THE PROCESSOR.                                      
*                                                                               
*        'RULES' DEFINE FOR EACH POSSIBLE SET OF TRUTH-VALUES                   
*        FOR THE CONDITIONS THE SET OF ACTIONS TO BE EXECUTED.                  
*                                                                               
*        IN THE TABLE, EACH RULE IS IDENTIFIED BY A RULE                        
*        NUMBER. FOR EACH RULE NUMBER, THE FIRST PART OF THE                    
*        TABLE DEFINES THE TRUTH-VALUE FOR THE CONDITIONS                       
*        (Y=YES, N=NO, .=EITHER), AND THE SECOND PART                           
*        OF THE TABLE DEFINES THE ACTIONS TO BE EXECUTED                        
*        (DIGIT=EXECUTE IN ORDER OF DIGIT, .=DONT EXECUTE).                     
         PAGE                                                                   
         SPACE    5                                                             
************************************************************                    
* CONDITIONS                 * RULES                       *                    
************************************************************                    
*                            *                   1 1 1 1 1 *                    
*                            * 1 2 3 4 5 6 7 8 9 0 1 2 3 4 *                    
************************************************************                    
*  1 NULL ASSIGNMENT         * . Y N N N N N N N N N N N N *                    
*  2 OPLABEL ASSIGNMENT      * . . Y Y N N N N N N N N N N *                    
*  3 DEVICE ASSIGNMENT       * . . . . Y Y N N N N N N N N *                    
*  4 DISK AREA ASSIGNMENT    * . . . . . . Y . . . . . . . *                    
*  5 DISK FILE ASSIGNMENT    * . . . . . . . Y Y Y Y Y Y Y *                    
*  6 FILE NAME .GT. 4 CHARS  * . . . . . . . . N N Y . . . *                    
*  7 DISK AREA NAME SPECIFIED* . . . . . . . . N Y . N Y N *                    
*  8 FILE ACCOUNT SPECIFIED  * . . . . . . . . N N . N N N *                    
*  9 ACNT NAME .GT. 4 BYTES  * . . . . . . . . . . . . . . *                    
* 10 DCB SIZE .LT. 5 WORDS   * Y N N N N N N N N N N N N N *                    
* 11 DCB SIZE .LT. 6 WORDS   * . . Y N . . Y Y N N N N N N *                    
* 12 DCB SIZE .LT. 7 WORDS   * . . . . Y N . . Y Y Y N N N *                    
* 13 DCB SIZE .LT. 8 WORDS   * . . . . . . . . . . . Y Y N *                    
* 14 DCB SIZE .LT. 9 WORDS   * . . . . . . . . . . . . . . *                    
* 15 DCB SIZE .LT. 10 WORDS  * . . . . . . . . . . . . . . *                    
* 16 DCB SIZE .LT. 11 WORDS  * . . . . . . . . . . . . . . *                    
************************************************************                    
         PAGE                                                                   
         SPACE    5                                                             
****************************************************                            
* CONDITIONS                 * RULES               *                            
****************************************************                            
*                            * 1 1 1 1 1 2 2 2 2 2 *                            
*                            * 5 6 7 8 9 0 1 2 3 4 *                            
****************************************************                            
*  1 NULL ASSIGNMENT         * N N N N N N N N N N *                            
*  2 OPLABEL ASSIGNMENT      * N N N N N N N N N N *                            
*  3 DEVICE ASSIGNMENT       * N N N N N N N N N N *                            
*  4 DISK AREA ASSIGNMENT    * . . . . . . . . . . *                            
*  5 DISK FILE ASSIGNMENT    * Y Y Y Y Y Y Y Y Y Y *                            
*  6 FILE NAME .GT. 4 CHARS  * . . . . . . . . . . *                            
*  7 DISK AREA NAME SPECIFIED* Y . Y N Y Y . N Y Y *                            
*  8 FILE ACCOUNT SPECIFIED  * N Y N Y Y Y Y Y Y Y *                            
*  9 ACNT NAME .GT. 4 BYTES  * . . . N N N Y Y Y . *                            
* 10 DCB SIZE .LT. 5 WORDS   * N N N N N N N N N N *                            
* 11 DCB SIZE .LT. 6 WORDS   * N N N N N N N N N N *                            
* 12 DCB SIZE .LT. 7 WORDS   * N N N N N N N N N N *                            
* 13 DCB SIZE .LT. 8 WORDS   * N N N N N N N N N N *                            
* 14 DCB SIZE .LT. 9 WORDS   * Y Y N N N N N N N N *                            
* 15 DCB SIZE .LT. 10 WORDS  * . . . . Y N Y N N N *                            
* 16 DCB SIZE .LT. 11 WORDS  * . . . . . Y . . Y N *                            
****************************************************                            
         PAGE                                                                   
         SPACE    5                                                             
************************************************************                    
* ACTIONS                    * RULES                       *                    
************************************************************                    
*                            *                   1 1 1 1 1 *                    
*                            * 1 2 3 4 5 6 7 8 9 0 1 2 3 4 *                    
************************************************************                    
*  1 ASSIGN NULL             * . 1 . . . . . . . . . . . . *                    
*  2 ASSIGN OPLABEL BY NAME  * . . . 1 . . . . . . . . . . *                    
*  3 ASSIGN OPLABEL BY INDEX * . . 1 . . . . . . . . . . . *                    
*  4 ASSIGN DEVICE BY NAME   * . . . . . 1 . . . . . . . . *                    
*  5 ASSIGN DEVICE BY INDEX  * . . . . 1 . . . . . . . . . *                    
*  6 SET ASN FOR FILE ASGNMT * . . . . . . 2 . . . . . . . *                    
*  7 ASSIGN 1-WORD FILE NAME * . . . . . . . . 2 2 . . . . *                    
*  8 ASSIGN 2-WORD FILE NAME * . . . . . . . . . . . 2 2 3 *                    
*  9 ASSIGN DISK AREA BY NAME* . . . . . . . . . . . . . . *                    
* 10 ASSIGN DISK AREA INDEX  * . . . . . . 1 . . 1 . . 1 . *                    
* 11 SET AREA-BY-NAME FLAG   * . . . . . . . . 1 . . 1 . 1 *                    
* 12 RESET AREA NAME P-BIT   * . . . . . . . . . . . . . 2 *                    
* 13 ASSIGN 1-WORD ACNT NAME * . . . . . . . . . . . . . . *                    
* 14 ASSIGN 2-WORD ACNT NAME * . . . . . . . . . . . . . . *                    
* 15 RESET ACNT NAME P-BITS  * . . . . . . . . . . . . . 4 *                    
* 16 DECLARE DCB TOO SMALL   * 1 . . . . . . 1 . . 1 . . . *                    
************************************************************                    
         PAGE                                                                   
         SPACE    5                                                             
****************************************************                            
* ACTIONS                    * RULES               *                            
****************************************************                            
*                            * 1 1 1 1 1 2 2 2 2 2 *                            
*                            * 5 6 7 8 9 0 1 2 3 4 *                            
****************************************************                            
*  1 ASSIGN NULL             * . . . . . . . . . . *                            
*  2 ASSIGN OPLABEL BY NAME  * . . . . . . . . . . *                            
*  3 ASSIGN OPLABEL BY INDEX * . . . . . . . . . . *                            
*  4 ASSIGN DEVICE BY NAME   * . . . . . . . . . . *                            
*  5 ASSIGN DEVICE BY INDEX  * . . . . . . . . . . *                            
*  6 SET ASN FOR FILE ASGNMT * . . . . . . . . . . *                            
*  7 ASSIGN 1-WORD FILE NAME * . . . . . . . . . . *                            
*  8 ASSIGN 2-WORD FILE NAME * 3 . 2 3 3 2 . 3 3 2 *                            
*  9 ASSIGN DISK AREA BY NAME* . . 1 . . 1 . . . 1 *                            
* 10 ASSIGN DISK AREA INDEX  * 1 . . . 1 . . . 1 . *                            
* 11 SET AREA-BY-NAME FLAG   * . . . 1 . . . 1 . . *                            
* 12 RESET AREA NAME P-BIT   * 2 . . 2 2 . . 2 2 . *                            
* 13 ASSIGN 1-WORD ACNT NAME * . . . 4 4 3 . . . . *                            
* 14 ASSIGN 2-WORD ACNT NAME * . . . . . . . 4 4 3 *                            
* 15 RESET ACNT NAME P-BITS  * 4 . 3 . . . . . . . *                            
* 16 DECLARE DCB TOO SMALL   * . 1 . . . . 1 . . . *                            
****************************************************                            
         TITLE    '***** ASSIGN CAL RULE SELECTION *****'                       
         SPACE    5                                                             
ASSIGN   RES      0                                                             
         BAL,R4   GETDCBAD          GET DCB ADDRESS IN R2                       
*                                                                               
*        PROCESS RULES 1-24                                                     
*                                                                               
*        DISTINGUISH RULE 1 FROM RULES 2-24                                     
*                                                                               
         LB,R4    *R2               GET DCB LENGTH                              
         CI,R4    5                                                             
*        B TO ACTION FOR RULE 1                                                 
         BL       ASNE7D            B IF DCB TOO SHORT                          
*                                                                               
*        PROCESS RULES 2-24                                                     
*                                                                               
*        UNDOCUMENTED CONDITION:                                                
*        IF DCB IS OPEN, EXIT WITHOUT COMMENT OR ACTION                         
*                                                                               
         LW,R8    0,R2              DCB WORD 0                                  
         CW,R8    Y002                                                          
         BANZ     ASNEXIT           B IF DCB IS OPEN                            
*                                                                               
*        DISTINGUISH RULES 2 (NULL OPLABEL), 3-4 FROM                           
*        2 (NULL, NULL DEVICE, NULL FILE), 5-24                                 
*                                                                               
         LI,R15   2                 TRY FOR OPLABEL                             
         BAL,R5   GETPSI            CHECK FOR OPLABEL PARAMETER                 
         B        ASN10             B IF NOT AN OPLABEL                         
*                                                                               
*        PROCESS RULES 2 (NULL OPLABEL), 3-4                                    
*                                                                               
*        DISTINGUISH RULE 2 FROM 3-4                                            
*                                                                               
         LW,R1    R14               GET OPLB NAME ADDRESS                       
         INT,R13  0,R1              GET OPLABEL NAME                            
         LW,R13   R13                                                           
         BEZ      ASN105            B IF ZERO.  ASSIGN NULL.                    
*                                                                               
*        PROCESS RULES 3-4                                                      
*                                                                               
*        DISTINGUISH RULE 3 FROM 4                                              
*                                                                               
         CI,R4    6                                                             
         BGE      ASN05             B IF SPACE TO ASSIGN BY NAME                
*                                                                               
*        ACTION FOR RULE 3                                                      
*                                                                               
         BAL,R8   ASNOPLBX          ASSIGN BY INDEX                             
         B        ASNOKEX                                                       
*****                                                                           
ASN05    RES      0                                                             
*                                                                               
*        ACTION FOR RULE 4                                                      
*                                                                               
         BAL,R8   ASNOPLBN          ASSIGN OPLABEL BY NAME                      
         B        ASNOKEX                                                       
*****                                                                           
ASN10    RES      0                                                             
*                                                                               
*        PROCESS RULES 2 (NULL, NULL DEVICE, NULL FILE), 5-24                   
*                                                                               
*        DISTINGUISH 2 (NULL DEVICE), 5-6 FROM                                  
*        2 (NULL, NULL FILE), 7-24                                              
*                                                                               
         LI,R15   3                 TRY FOR DEVICE                              
         BAL,R5   GETPSII           CHECK FOR DEVICE PARAMETER                  
         B        ASN20             B IF NOT A DEVICE                           
*                                                                               
*        PROCESS RULES 2 (NULL DEVICE), 5, 6                                    
*                                                                               
*        DISTINGUISH RULE 2 (NULL DEVICE) FROM 5, 6                             
*                                                                               
         LW,R1    R14               GET DEVICE NAME ADDRESS                     
         LCI      2                                                             
         LM,R10   0,R1              GET DEVICE NAME                             
         LD,R10   R10                                                           
         BEZ      ASN105            B IF ZERO. ASSIGN NULL.                     
*                                                                               
*        PROCESS RULES 5, 6                                                     
*                                                                               
*        DISTINGUISH RULE 5 FROM 6                                              
*                                                                               
         CI,R4    7                                                             
         BGE      ASN15             B IF SPACE TO ASSIGN BY NAME                
*                                                                               
*        ACTION FOR RULE 5                                                      
*                                                                               
         BAL,R8   ASNDEVX           ASSIGN DEVICE BY INDEX                      
         B        ASNOKEX                                                       
*****                                                                           
ASN15    RES      0                                                             
*                                                                               
*        ACTION FOR RULE 6                                                      
*                                                                               
         BAL,R8   ASNDEVN           ASSIGN DEVICE BY NAME                       
         B        ASNOKEX                                                       
*****                                                                           
ASN20    RES      0                                                             
*                                                                               
*        PROCESS RULES 2 (NULL, NULL FILE), 7-24                                
*                                                                               
*        DISTINGUISH 2 (NULL, NULL FILE) FROM 7-24                              
*                                                                               
         LI,R15   4                 TRY FILE/AREA ASSIGN                        
         BAL,R5   GETPSII           CHECK FOR FILE/AREA PARAMETER               
         B        ASN105            B IF NOT A FILE/AREA.  ASSIGN NULL          
         LW,R1    R14               GET FILE/AREA NAME ADDRESS                  
         LCI      2                                                             
         LM,R10   1,R1              GET FILE NAME                               
         LD,R10   R10                                                           
         BNEZ     ASN30             B IF FILE NAME NONZERO                      
         INT,R13  0,R1              GET AREA NAME                               
         LW,R13   R13                                                           
         BEZ      ASN105            B IF FILE/AREA IS ZERO. ASSIGN NULL         
ASN30    RES      0                                                             
*                                                                               
*        PROCESS RULES 7-24                                                     
*                                                                               
*        DISTINGUISH 7-8 FROM 9-24                                              
*                                                                               
         CI,R4    6                                                             
         BGE      ASN40             B IF ROOM FOR FILE NAME                     
*                                                                               
*        PROCESS RULES 7-8                                                      
*                                                                               
*        DISTINGUISH 7 FROM 8                                                   
*                                                                               
         CD,R10   BLANKS                                                        
*        B TO ACTION FOR 7                                                      
         BE       %+3                                                           
         CD,R10   ZEROS                                                         
*        B TO ACTION FOR 8                                                      
         BNE      ASNE7D            B IF FILE NAME SPECIFIED                    
*                                                                               
*        ACTION FOR RULE 7                                                      
*                                                                               
         BAL,R8   ASNAREAX          ASSIGN AREA BY INDEX                        
         BAL,R8   ASNFILE           SET ASN FOR FILE ASSIGNMENT                 
         B        ASNOKEX                                                       
*****                                                                           
ASN40    RES      0                                                             
*                                                                               
*        PROCESS RULES 9-24                                                     
*                                                                               
*        DISTINGUISH RULES 9-15, 17 FROM 16, 18-24                              
*                                                                               
*        RULES 16, 18-24 ARE DISTINGUIHED ONLY IF THE DISK FILE                 
*        ACCOUNT NAME OPTION IS SELECTED.                                       
*                                                                               
         DO       #DFACNT                                                       
         LI,R15   14                                                            
         BAL,R5   GETPSII           CHECK FOR ACCOUNT NAME                      
         LI,R14   0                 FLAG FOR NOT SPECIFIED                      
         LW,R5    R14               GET ACNT NAME POINTER                       
         BNEZ     ASN65             B IF SPECIFIED                              
         FIN                        #DFACNT                                     
*                                                                               
*        PROCESS RULES 9-15, 17                                                 
*                                                                               
*        DISTINGUISH RULES 9-11 FROM 12-15, 17                                  
*                                                                               
         CI,R4    7                                                             
         BGE      ASN50             B IF ROOM FOR 2-WORD FILE NAME              
*                                                                               
*        PROCESS RULES 9-11                                                     
*                                                                               
*        DISTINGUISH 9-10 FROM 11                                               
*                                                                               
         CW,R11   BLANKS                                                        
*        B TO ACTION FOR RULE 11                                                
         BNE      ASNE7D            B IF 2-WORD NAME SPECIFIED                  
*                                                                               
*        PROCESS RULES 9-10                                                     
*                                                                               
*        DISTINGUISH RULE 9 FROM 10                                             
*                                                                               
         INT,R13  0,R1              GET AREA NAME                               
         LW,R13   R13                                                           
         BEZ      ASN45             B IF NOT SPECIFIED                          
*                                                                               
*        ACTION FOR RULE 10                                                     
*                                                                               
         BAL,R8   ASNAREAX          ASSIGN AREA BY INDEX                        
         BAL,R8   ASNFILE1          ASSIGN 1-WORD FILE NAME                     
         B        ASNOKEX                                                       
*****                                                                           
ASN45    RES      0                                                             
*                                                                               
*        ACTION FOR RULE 9                                                      
*                                                                               
         BAL,R8   ASNSDAN           SET DISK AREA NAME FLAG                     
         BAL,R8   ASNFILE1          ASSIGN 1-WORD FILE NAME                     
         B        ASNOKEX                                                       
*****                                                                           
ASN50    RES      0                                                             
*                                                                               
*        PROCESS RULES 12-15, 17                                                
*                                                                               
*        DISTINGUISH 12-13 FROM 14-15, 17                                       
*                                                                               
         CI,R4    8                                                             
         BGE      ASN60             B IF ROOM FOR P-BITS WORD                   
*                                                                               
*        PROCESS RULES 12-13                                                    
*                                                                               
*        DISTINGUISH 12 FROM 13                                                 
*                                                                               
         INT,R13  0,R1              GET AREA NAME                               
         LW,R13   R13                                                           
         BEZ      ASN55             B IF AREA NAME NOT SPECIFIED                
*                                                                               
*        ACTION FOR RULE 13                                                     
*                                                                               
         BAL,R8   ASNAREAX          ASSIGN AREA BY INDEX                        
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         B        ASNOKEX                                                       
*****                                                                           
ASN55    RES      0                                                             
*                                                                               
*        ACTION FOR RULE 12                                                     
*                                                                               
         BAL,R8   ASNSDAN           SET DISK AREA NAME FLAG                     
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         B        ASNOKEX                                                       
*****                                                                           
ASN60    RES      0                                                             
*                                                                               
*        PROCESS RULES 14-15, 17                                                
*                                                                               
*        DISTINGUISH 14 FROM 15, 17                                             
*                                                                               
         INT,R13  0,R1              GET AREA NAME                               
         LW,R13   R13                                                           
         BNEZ     ASN65             B IF AREA NAME SPECIFIED                    
*                                                                               
*        ACTION FOR RULE 14                                                     
*                                                                               
         BAL,R8   ASNSDAN           SET AREA NAME FLAG                          
         BAL,R8   ASNRPARN          RESET AREA NAME P-BIT                       
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         DO       #DFACNT                                                       
         BAL,R8   ASNRPACN          RESET ACCOUNT NAME P-BITS                   
         FIN                        #DFACNT                                     
         B        ASNOKEX                                                       
*****                                                                           
ASN65    RES      0                                                             
*                                                                               
*        PROCESS RULES 15-24                                                    
*                                                                               
*        DISTINGUISH 15-16 FROM 17-24                                           
*                                                                               
         CI,R4    9                                                             
         BGE      ASN70             B IF ROOM FOR AN OPTIONAL WORD              
*                                                                               
*        PROCESS RULES 15-16                                                    
*                                                                               
*        DISTINGUISH 15 FROM 16                                                 
*                                                                               
*        RULE 16 IS DISTINGUISHED ONLY IF THE DISK FILE                         
*        ACCOUNT NAME OPTION IS SELECTED                                        
*                                                                               
         DO       #DFACNT                                                       
         CI,R5    0                                                             
*        B TO ACTION FOR 16                                                     
         BNE      ASNE7D            B IF ACCOUNT NAME SPECIFIED                 
         FIN                        #DFACNT                                     
*                                                                               
*        ACTION FOR RULE 15                                                     
*                                                                               
         BAL,R8   ASNAREAX          ASSIGN AREA BY INDEX                        
         BAL,R8   ASNRPARN          RESET AREA NAME P-BITS                      
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         DO       #DFACNT                                                       
         BAL,R8   ASNRPACN          RESET ACCOUNT NAME P-BITS                   
         FIN                        #DFACNT                                     
         B        ASNOKEX                                                       
*****                                                                           
ASN70    RES      0                                                             
*                                                                               
*        PROCESS RULES 17-24                                                    
*                                                                               
*        DISTINGUISH RULE 17 FROM 18-24                                         
*                                                                               
*        RULES 18-24 ARE DISTINGUISHED ONLY IF THE DISK FILE                    
*        ACCOUNT NAME OPTION IS SELECTED                                        
*                                                                               
         DO       #DFACNT                                                       
         CI,R5    0                                                             
         BNE      ASN75             B IF ACCOUNT NAME SPECIFIED                 
         FIN                        #DFACNT                                     
*                                                                               
*        ACTION FOR RULE 17                                                     
*                                                                               
         BAL,R8   ASNAREAN          ASSIGN AREA BY NAME                         
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         DO       #DFACNT                                                       
         BAL,R8   ASNRPACN          RESET ACCOUNT NAME P-BITS                   
         FIN                        #DFACNT                                     
         B        ASNOKEX                                                       
*                                                                               
*        RULES 18-24 ARE DISTINGUISHED ONLY IF THE DISK FILE                    
*        ACCOUNT NAME OPTION IS SELECTED                                        
*                                                                               
         DO       #DFACNT                                                       
*****                                                                           
ASN75    RES      0                                                             
*                                                                               
*        PROCESS RULES 18-24                                                    
*                                                                               
*        DISTINGUISH 18-20, 24 (1-WORD ACNT NAME) FROM                          
*        21-23, 24 (2-WORD ACCOUNT NAME)                                        
*                                                                               
         LW,R10   1,R5              GET SECOND WORD OF ACCOUNT NAME             
         CW,R10   BLANKS                                                        
         BNE      ASN90             B IF NOT A 1-WORD ACNT NAME                 
*                                                                               
*        PROCESS RULES 18-20, 24 (1-WORD ACNT NAME)                             
*                                                                               
*        DISTINGUISH 18 FROM 19-20, 24 (1-WORD ACNT NAME)                       
*                                                                               
         INT,R13  0,R1              GET AREA NAME                               
         LW,R13   R13                                                           
         BNEZ     ASN80             B IF AREA NAME SPECIFIED                    
*                                                                               
*        ACTION FOR RULE 18                                                     
*                                                                               
         BAL,R8   ASNSDAN           SET AREA NAME FLAG                          
         BAL,R8   ASNRPARN          RESET AREA NAME P-BIT                       
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         BAL,R8   ASNACNT1          ASSIGN 1-WORD ACCOUNT NAME                  
         B        ASNOKEX                                                       
*****                                                                           
ASN80    RES      0                                                             
*                                                                               
*        PROCESS RULES 19-20, 24 (1-WORD ACNT NAME)                             
*                                                                               
*        DISTINGUISH 19 FROM 20, 24 (1-WORD ACNT NAME)                          
*                                                                               
         CI,R4    10                                                            
         BGE      ASN85             B IF AT LEAST 10 WORDS                      
*                                                                               
*        ACTION FOR RULE 19                                                     
*                                                                               
         BAL,R8   ASNAREAX          ASSIGN AREA BY INDEX                        
         BAL,R8   ASNRPARN          RESET AREA NAME P-BIT                       
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         BAL,R8   ASNACNT1          ASSIGN 1-WORD ACCOUNT NAME                  
         B        ASNOKEX                                                       
*****                                                                           
ASN85    RES      0                                                             
*                                                                               
*        PROCESS RULES 20, 24 (1-WORD ACNT NAME)                                
*                                                                               
*        DISTINGUISH RULE 20 FROM 24 (1-WORD ACNT NAME)                         
*                                                                               
         CI,R4    11                                                            
         BGE      ASN100            B IF AT LEAST 11-WORD DCB                   
*                                                                               
*        ACTION FOR RULE 20                                                     
*                                                                               
         BAL,R8   ASNAREAN          ASSIGN AREA BY NAME                         
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         BAL,R8   ASNAREAN          ASSIGN AREA BY NAME                         
         BAL,R8   ASNACNT1          ASSIGN 1-WORD ACCOUNT NAME                  
         B        ASNOKEX                                                       
*****                                                                           
ASN90    RES      0                                                             
*                                                                               
*        PROCESS RULES 21-23, 24 (2-WORD ACNT NAME)                             
*                                                                               
*        DISTINGUISH 21 FROM 22-23, 24 (2-WORD ACNT NAME)                       
*                                                                               
         CI,R4    10                                                            
*        B TO ACTION FOR 21                                                     
         BL       ASNE7D            B IF NO ROOM FOR 2-WORD ACCOUNT NAME        
*                                                                               
*        PROCESS RULES 22-23, 24 (2-WORD ACNT NAME)                             
*                                                                               
*        DISTINGUISH 22 FROM 23, 24 (2-WORD ACNT NAME)                          
*                                                                               
         INT,R13  0,R1              GET AREA NAME                               
         LW,R13   R13                                                           
         BNEZ     ASN95             B IF SPECIFIED                              
*                                                                               
*        ACTION FOR RULE 22                                                     
*                                                                               
         BAL,R8   ASNSDAN           SET AREA NAME FLAG                          
         BAL,R8   ASNRPARN          RESET AREA NAME P-BIT                       
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         BAL,R8   ASNACNT2          ASSIGN 2-WORD ACCOUNT NAME                  
         B        ASNOKEX                                                       
*****                                                                           
ASN95    RES      0                                                             
*                                                                               
*        PROCESS RULES 23, 24 (2-WORD ACNT NAME)                                
*                                                                               
*        DISTINGUISH 23 FROM 24 (2-WORD ACNT NAME)                              
*                                                                               
         CI,R4    11                                                            
         BGE      ASN100            B IF AT LEAST 11 WORDS IN DCB               
*                                                                               
*        ACTION FOR RULE 23                                                     
*                                                                               
         BAL,R8   ASNAREAX          ASSIGN AREA BY INDEX                        
         BAL,R8   ASNRPARN          RESET AREA NAME P-BIT                       
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         BAL,R8   ASNACNT2          ASSIGN 2-WORD ACCOUNT NAME                  
         B        ASNOKEX                                                       
*****                                                                           
ASN100   RES      0                                                             
*                                                                               
*        ACTION FOR RULE 24                                                     
*                                                                               
         BAL,R8   ASNAREAN          ASSIGN AREA BY NAME                         
         BAL,R8   ASNFILE2          ASSIGN 2-WORD FILE NAME                     
         BAL,R8   ASNAREAN          ASSIGN AREA BY NAME                         
         BAL,R8   ASNACNT2          ASSIGN 2-WORD ACCOUNT NAME                  
         B        ASNOKEX                                                       
         FIN                        #DFACNT                                     
*****                                                                           
ASN105   RES      0                                                             
*                                                                               
*        ACTION FOR RULE 2                                                      
*                                                                               
         BAL,R8   ASNNULL           ASSIGN NULL                                 
         B        ASNOKEX                                                       
*****                                                                           
         TITLE    '***** ASSIGN CAL EXITS *****'                                
         SPACE    5                                                             
ASNOKEX  RES      0                 NORMAL EXIT                                 
         LI,R15   1                                                             
         B        ASNEXIT                                                       
*****                                                                           
ASNE70   RES      0                 ILLEGAL AREA NAME                           
         LI,R15   X'70'                                                         
         B        ASNEREX                                                       
*****                                                                           
ASNE73   RES      0                 ILLEGAL DEVICE NAME                         
         LI,R15   X'73'                                                         
         B        ASNEREX                                                       
*****                                                                           
ASNE74   RES      0                 ILLEGAL OPLABEL NAME                        
         LI,R15   X'74'                                                         
         B        ASNEREX                                                       
*****                                                                           
ASNE7D   RES      0                 DCB TOO SMALL                               
         LI,R15   X'7D'                                                         
         B        ASNEREX                                                       
*****                                                                           
ASNEREX  RES      0                                                             
         ENABLE                                                                 
         BAL,R8   TMSETERR                                                      
         B        CALSTDX                                                       
*                                                                               
ASNEXIT  RES      0                                                             
         ENABLE                                                                 
ASSIGNX  B        CALEXIT                                                       
*****                                                                           
         TITLE    '***** ASSIGN CAL PRIMITIVE ACTIONS *****'                    
*                                                                               
*        ACTION:  ASSIGN NULL                                                   
*                                                                               
ASNNULL  RES      0                                                             
         BAL,R9   DISABLE                                                       
         LI,R10   0                 NULL ASN VALUE                              
         LW,R11   DCBASNM           MASK FOR ASN FIELD                          
         STS,R10  DCBASN,R2         SET FOR NULL ASSIGNMENT                     
         B        *R8                                                           
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN OPLABEL BY NAME                                        
*                                                                               
ASNOPLBN RES      0                                                             
         BAL,R9   DISABLE                                                       
         INT,R11  0,R1              GET NAME FROM NAME BLOCK                    
         STW,R11  5,R2              STORE IT IN DCB                             
         LW,R11   DCBDONM           GET DCB DEV/OPLB NAME FLAG                  
         STS,R11  DCBDON,R2         SET IT IN DCB                               
         B        ASNOPLB           ADJUST FLAGS FOR OPLB ASSIGN                
*                                                                               
*                                                                               
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN OPLABEL BY INDEX                                       
*                                                                               
ASNOPLBX RES      0                                                             
         LI,R5    1                                                             
         LH,R10   *R1,R5            GET OPLB NAME FROM NAME BLOCK               
         LH,R6    OPLBS1            NR OF OPLABELS DEFINED                      
         CH,R10   OPLBS1,R6         SEARCH FOR OPLB NAME                        
         BE       AOPLBX10          B IF FOUND                                  
         BDR,R6   %-2               CONTINUE SEARCH                             
         B        ASNE74            B IF UNDEFINED OPLB                         
*****                                                                           
AOPLBX10 RES      0                                                             
         BAL,R9   DISABLE                                                       
         LW,R7    DCBDORM           MASK FOR DEV/OPLB/RFILE                     
         STS,R6   DCBDOR,R2         SET DEV/OPLB/RFILE FIELD                    
         LI,R10   0                                                             
         LW,R11   DCBDONM           GET DEV/OPLB NAME FLAG                      
         STS,R10  DCBDON,R2         RESET DEV/OPLB NAME FLAG                    
         B        ASNOPLB           ADJUST FLAGS FOR OPLB ASSIGN                
*                                                                               
         PAGE                                                                   
*                                                                               
*        ADJUST FLAGS FOR OPLB ASSIGN                                           
*                                                                               
ASNOPLB  RES      0                                                             
         LI,R12   0                 TO RESET DEVF FLAG                          
         B        ASNDO             ADJUST FOR DEVICE OR OPLB                   
*                                                                               
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN DEVICE BY NAME                                         
*                                                                               
ASNDEVN  RES      0                                                             
         BAL,R9   DISABLE                                                       
         LCI      2                                                             
         LM,R10   0,R1              GET DEVICE NAME                             
         STM,R10  5,R2              PUT IN DCB                                  
         LW,R11   DCBDONM           GET DEV/OPLB NAME FLAG                      
         STS,R11  DCBDON,R2         SET IT IN DCB                               
         B        ASNDEV            ADJUST FLAGS FOR DEV ASSIGN                 
*                                                                               
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN DEVICE BY INDEX                                        
*                                                                               
ASNDEVX  RES      0                                                             
         LCI      2                                                             
         LM,R10   0,R1              GET DEV NAME FROM NAME BLOCK                
         SLD,R10  -24                                                           
         OR,R10   Y155A5A           CONVERT TO DCT16 FORMAT                     
         LH,R6    DCT7              NR OF DEVICES DEFINED                       
         CD,R10   DCT16,R6          SEARCH FOR DEVICE NAME                      
         BE       ADEVX10           B IF FOUND                                  
         BDR,R6   %-2               CONTINUE SEARCH                             
         B        ASNE73            REPORT INVALID DEV NAME                     
*****                                                                           
ADEVX10  RES      0                                                             
         BAL,R9   DISABLE                                                       
         LW,R7    DCBDORM           MASK FOR DEV/OPLB/RFILE                     
         STS,R6   DCBDOR,R2         SET DEV/OPLB/RFILE VALUE                    
         LI,R10   0                                                             
         LW,R11   DCBDONM           DEV/OPLB NAME FLAG                          
         STS,R10  DCBDON,R2         RESET DEV/OPLB NAME FLAG                    
         B        ASNDEV            ADJUST FLAGS FOR DEVICE ASSIGN              
*                                                                               
         PAGE                                                                   
*                                                                               
*        ADJUST FLAGS FOR DEVICE ASSIGN                                         
*                                                                               
ASNDEV   RES      0                                                             
         LW,R12   DCBDVFM           TO SET DEVF FLAG                            
         B        ASNDO             ADJUST FOR DEVICE OR OPLB                   
*                                                                               
         PAGE                                                                   
*                                                                               
*        ADJUST FOR DEVICE OR OPLB                                              
*                                                                               
ASNDO    RES      0                                                             
         LW,R13   DCBDVFM           MASK FOR DEVICE FLAG                        
         STS,R12  DCBDVF,R2         SET/RESET                                   
         LW,R12   DCBASND           ASN VALUE FOR DEVICE OR OPLABEL             
         LW,R13   DCBASNM           MASK FOR ASN FIELD                          
         STS,R12  DCBASN,R2         SET ASN VALUE                               
         B        *R8                                                           
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN 1-WORD FILE NAME                                       
*                                                                               
ASNFILE1 RES      0                                                             
         LCI      1                 SET NR OF WORDS                             
         B        ASNFILEN          ASSIGN N-WORD FILE NAME                     
*                                                                               
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN 2-WORD FILE NAME                                       
*                                                                               
ASNFILE2 RES      0                                                             
         LCI      2                 SET NR OF WORDS                             
         B        ASNFILEN          ASSIGN N-WORD FILE NAME                     
*                                                                               
         PAGE                                                                   
*                                                                               
*        ASSIGN N-WORD FILE NAME                                                
*                                                                               
ASNFILEN RES 0                                                                  
         LM,R10   1,R1              GET NAME FROM NAME BLOCK                    
         STM,R10  5,R2              STORE IT IN DCB                             
         B        ASNFILE           SET ASN FOR FILE ASSIGNMENT                 
*                                                                               
         PAGE                                                                   
*                                                                               
*        ACTION:  SET ASN FOR FILE ASSIGNMENT                                   
*                                                                               
ASNFILE  RES      0                                                             
         LW,R10   DCBASNF           ASN VALUE FOR FILE                          
         LW,R11   DCBASNM           ASN FIELD MASK                              
         STS,R10  DCBASN,R2         PUT ASN VALUE IN DCB                        
         B        *R8                                                           
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN DISK AREA BY NAME                                      
*                                                                               
ASNAREAN RES      0                                                             
         BAL,R9   DISABLE                                                       
         LW,R10   0,R1              GET AREA NAME FROM NAME BLOCK               
         STW,R10  8,R2              STORE NAME IN DCB WORD 8                    
         LW,R11   XBIT0                                                         
         STS,R11  DCBPBITS,R2       SET P-BIT FOR AREA NAME                     
         LW,R11   DCBDANM                                                       
         STS,R11  DCBDAN,R2         SET DISK AREA NAME FLAG                     
         B        *R8                                                           
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN DISK AREA BY INDEX                                     
*                                                                               
ASNAREAX RES      0                                                             
         LW,R14   R8                SAVE R8                                     
         LW,R15   R5                SAVE R5                                     
         LW,R8    0,R1              GET AREA NAME FROM NAME BLOCK               
         BAL,R5   FMMASTX           GET AREA INDEX                              
         B        ASNE70            B IF NOT FOUND                              
         BAL,R9   DISABLE                                                       
         LW,R5    R15               RESTORE R5                                  
         LW,R7    DCBTYPEM          MASK FOR TYPE (AREA INDEX) FIELD            
         SLS,R6   8                 ALIGN AREA INDEX FOR INSERTION              
         STS,R6   DCBTYPE,R2        PUT AREA INDEX IN DCB                       
         LI,R10   0                                                             
         LW,R11   DCBDANM                                                       
         STS,R10  DCBDAN,R2         RESET DISK AREA NAME FLAG                   
         B        *R14                                                          
         PAGE                                                                   
*                                                                               
*        ACTION:  SET AREA-BY-NAME FLAG                                         
*                                                                               
ASNSDAN  RES      0                                                             
         BAL,R9   DISABLE                                                       
         LW,R11   DCBDANM                                                       
         STS,R11  DCBDAN,R2         SET DISK AREA NAME FLAG                     
         B        *R8                                                           
         PAGE                                                                   
*                                                                               
*        ACTION:  RESET AREA NAME P-BIT                                         
*                                                                               
ASNRPARN RES      0                                                             
         LI,R10   0                                                             
         LW,R11   XBIT0                                                         
         STS,R10  DCBPBITS,R2       RESET AREA NAME P-BIT                       
         B        *R8                                                           
         PAGE                                                                   
         DO       #DFACNT                                                       
*                                                                               
*        ACTION:  ASSIGN ONE-WORD ACCOUNT NAME                                  
*                                                                               
ASNACNT1 RES      0                                                             
         LI,R6    1                 ONE-WORD NAME                               
         B        ASNACNT           SET ACCOUNT NAME                            
*                                                                               
         PAGE                                                                   
*                                                                               
*        ACTION:  ASSIGN TWO-WORD ACCOUNT NAME                                  
*                                                                               
ASNACNT2 RES      0                                                             
         LI,R6    2                 TWO-WORD NAME                               
         B        ASNACNT           SET ACCOUNT NAME                            
*                                                                               
         PAGE                                                                   
*                                                                               
*        ASSIGN ACCOUNT NAME                                                    
*                                                                               
ASNACNT  RES      0                                                             
         LI,R7    8                                                             
         LW,R0    DCBPBITS,R2       GET P-BITS FOR OPTIONAL WORDS               
         BGEZ     %+2               B IF AREA NAME NOT PRESENT                  
         AI,R7    1                 POINT PAST AREA NAME                        
         SCS,R6   -4                SET UP FOR LOAD CONDITIONS                  
         LC       R6                GET NR OF WORDS TO STORE                    
         LM,R10   0,R5              GET ACNT NAME FROM NAME BLOCK               
         STM,R10  *R7,R2            PUT IT IN DCB                               
         LW,R10   XBIT1                                                         
         LC       R6                                                            
         BCS,1    %+2               B IF ONE-WORD ACNT NAME                     
         LW,R10   Y6                                                            
         LW,R11   Y6                                                            
         STS,R10  DCBPBITS,R2       SET THE RIGHT PBITS                         
         B        *R8               RETURN                                      
         PAGE                                                                   
*                                                                               
*        ACTION:  RESET ACCOUNT NAME P-BITS                                     
*                                                                               
ASNRPACN RES      0                                                             
         LI,R10   0                                                             
         LW,R11   Y6                                                            
         STS,R10  DCBPBITS,R2       RESET P2 AND P3                             
         B        *R8                                                           
         FIN                        #DFACNT                                     
         PAGE                                                                   
*                                                                               
*        DISABLE, AND RECHECK FOR DCB OPEN.                                     
*        QUIT IF OPEN, RETURN IF NOT OPEN.                                      
*                                                                               
DISABLE  RES      0                                                             
         DISABLE                                                                
         LW,R0    0,R2              GET DCB WORD 0                              
         CW,R0    Y002                                                          
         BANZ     ASNEXIT           B IF OPEN                                   
         B        *R9                                                           
         TITLE    '***** ASSIGN CAL CONSTANTS *****'                            
         SPACE    5                                                             
DCBASN   EQU      0                                                             
DCBASNM  DATA     X'F'                                                          
DCBASND  DATA     3                                                             
DCBASNF  DATA     1                                                             
*                                                                               
DCBDAN   EQU      0                                                             
DCBDANM  DATA     1**(31-24)                                                    
*                                                                               
DCBDON   EQU      0                                                             
DCBDONM  DATA     1**(31-25)                                                    
*                                                                               
DCBDOR   EQU      1                                                             
DCBDORM  DATA     X'FF'                                                         
*                                                                               
DCBDVF   EQU      1                                                             
DCBDVFM  DATA     1**(31-16)                                                    
*                                                                               
DCBPBITS EQU      7                                                             
*                                                                               
DCBTYPE  EQU      1                                                             
DCBTYPEM DATA     X'3F'**(31-23)                                                
*                                                                               
         PAGE                                                                   
         OLAYEND                                                                
         END                                                                    
