         SYSTEM   SIG9P                                                         
         SYSTEM   OPTIONS                                                       
*                                                                               
*        CONNECT    CAL1,5          FPT CODE 3 (P1=1)                           
*        ARM        CAL1,5          FPT CODE 3 (P1=0)                           
*        DISCONNECT CAL1,5          FPT CODE 4 (P1=1)                           
*        DISARM     CAL1,5          FPT CODE 4 (P1=0)                           
*                                                                               
         DEF      A:ARM                                                         
         DEF      DISARM,CONNEXIT                                               
OLAYFLAG EQU 'ARM'                                                              
         SYSTEM   CPRMON                                                        
*                                                                               
*                                                                               
STWREAL  CNAME                                                                  
*        THE WORD IN R0 IS STORED IN THE REAL ADDRESS IN R1                     
*        R8 IS DESTROYED IN A MAPPED SYSTEM                                     
         PROC                                                                   
LF       BAL,R8   MMSTORE                                                       
         PEND                                                                   
         TITLE    '** ARM - ARM,DISARM,CON,DISCON CALS **'                      
*        CAL1,5   FPT CODE 3        DISARM OR DISCONNECT                        
*        CAL1,5   FPT CODE 4        ARM OR CONNECT                              
*                                                                               
*        REGISTER USAGE:                                                        
*        R2 = OFFSET TO WD CMMD     R7 = TCB ADDRESS                            
*        R3 = FPT ADDRESS           R10 = INDICATORS                            
*        R4 = TASK ID               R11 = INTERRUPT ADDRESS                     
*        R5 = LMID                  R12 = GRP,PRIO,LEVEL                        
*        R6 = JID, CLOCK INDEX      R13 = FPT CODE                              
*        R0,R1,R8,R9,R14,R15 WORKING REGS, R15=START ADDR                       
*        ABOVE SETTINGS HOLD FOR MOST POINTS IN CAL                             
*                                                                               
DISARM   EQU      %                 OR DISCONNECT                               
ARM      EQU      %                 OR CONNECT                                  
A:ARM    EQU      ARM                                                           
*                                                                               
         LI,R10   0                 SET R10=INDICATORS (OFF)                    
         LW,R13   R1                    R13=FPT CODE                            
         LW,R2    R1                    R2=WD OFFSET (FPT CODE INIT)            
*                                                                               
         LW,R15   0,R3              VERIFY THE INTERRUPT                        
         CI,R15   FPTI2                 I2=0, ADDRESS                           
         BAZ      CONNADR               I2=1, LABEL                             
         BAL,R4   CKINTLAB                                                      
         B        CONNERR                                                       
         B        CONNSR12                                                      
CONNADR  RES      0                                                             
         LW,R11   R15               FPT WORD 0 TO R11                           
         AND,R11  M16               R11= ADDRESS/LABEL                          
         CLM,R11  494A4B            IS IT A CAL234 ADDRESS                      
         BCR,9    CONADDR1          YES, BRANCH                                 
         BAL,R4   CKINTADR          NO, CHECK INT. ADDRESS                      
         B        CONNERR                                                       
CONNSR12 LW,R12   R15                   R12=GROUP, PRIO,LEVEL                   
         LW,R11   R14                                                           
         AI,R11   X'4F'                                                         
*                                                                               
         CI,R11   X'5B'             CLOCK 4 SPECIFIED?                          
         BE       CONNE61               INTERRUPT ERROR                         
         CLM,R11  CN5255            CLOCK PULSE GIVEN?                          
         BCR,9    CONNE61               INTERRUPT ERROR                         
*                                                                               
CONADDR1 RES      0                                                             
         LI,R15   1                 IS THE CAL ARM/DISARM OR                    
         BAL,R5   GETFPTN               CONNECT/DISCONNECT?                     
         B        CONNARM               ARM, DISARM TYPE                        
*                                       R15=START ADDR                          
         OR,R10   XCNP1                 P1 SPECIFIED, SET FLAG                  
         LB,R4    TCBPOINT          ESTABLISH TASK, LMID AND JOB                
         LB,R5    STILMID,R4            BEING CONNECTED, FIRST                  
         LB,R6    STIJID,R4             SET DEFAULT VALUES                      
         LW,R0    0,R3                  HAS THE USER PROVIDED                   
         CW,R0    Y006                  OPTIONAL PARAMETERS?                    
         BAZ      CONNCTSK              NO, LEAVE DEFAULTS                      
*                                                                               
         PUSH     2,R10             SEARCH FOR JOB AND TASK NAMED               
         LW,R1    R3                    IN THE FPT.  SET R1=                    
         AI,R1    2                     FETCH LOCATION OF PARMS                 
         LW,R0    1,R3                  BYPASS P1-P3                            
         LI,R7    3                 NR OF BITS TO CHECK                         
CONNFJOB CW,R0    Y8                                                            
         BAZ      %+2                                                           
         AI,R1    1                                                             
         SLS,R0   1                                                             
         BDR,R7   CONNFJOB                                                      
         LW,R0    0,R3                  IS JOB NAME GIVEN?                      
         CW,R0    XBIT10                                                        
         BAZ      CONNFTSK              NO, LEAVE DEFAULT                       
         CW,R0    XBIT9                 YES, IS TASK ALSO GIVEN?                
         BANZ     CONNLJOB              YES, FETCH AND LOOKUP JOB               
         CI,R13   3                     DISCONNECT?                             
         BNE      CONNE62A              NO, INVALID COMBO OF OPTIONS            
         AI,R1    -2                                                            
CONNLJOB LW,R10   2,R1                  FETCH JOB NAME (BEYOND TASK             
         LW,R11   3,R1                  NAME)                                   
         BAL,R8   TMFINDJ               LOOKUP                                  
         B        CONNER10              ERROR, JOB NONEXISTANT                  
CONNFTSK LW,R0    0,R3                  IS TASK NAME GIVEN?                     
         AND,R0   XBIT9                                                         
         BEZ      CONNPULL          B IF NO TASK NAME                           
         LW,R10   0,R1                  YES, FETCH AND LOOK UP                  
         LW,R11   1,R1                  TASK NAMED                              
         BAL,R8   TMFINDT                                                       
         B        CONNER10              NOT FOUND                               
         LW,R0    XCNLMID           FLAG:  LM NAME SPECIFIED                    
CONNPULL RES      0                                                             
         PULL     2,R10                 RESTORE REGISTERS                       
         OR,R10   R0                MERGE BIT (OR NO BIT)                       
*                                                                               
CONNCTSK LH,R0    LMISTAT,R5        VERIFY THAT THE TASK BEING                  
         CI,R0    LMIRUN            CONNECTED IS RUNNING                        
         BAZ      CONNE62                                                       
         CLM,R11  494A4B                CAL CONNECTION                          
         BCR,9    CONNCR13              YES, BYPASS PRIM ONLY                   
         CI,R0    LMISEC                TEST USED FOR INTERRUPTS                
         BANZ     CONNE62               SECONDARY NOT ALLOWED                   
*                                                                               
CONNCR13 CI,R13   3                 IS THE CAL CONNECT?                         
         BE       CONNCCAL              NO, DISCONNECT                          
*                                                                               
         LW,R0    1,R3              DIRECT CONNECTION?                          
         CW,R0    XBIT4                                                         
         BAZ      CONNCTCB              NO                                      
         OR,R10   XCNDIRCT              YES, SET AN INDICATOR                   
         LW,R9    *R15                  VERIFY 4 WORD 'TCB'                     
         BAL,R8   CONNVADR              AS WRITABLE                             
         B        CONNERR               NO                                      
         AI,R9    3                                                             
         BAL,R8   CONNVADR                                                      
         B        CONNERR                                                       
         B        CONNCCAL              TCB OK, CONTINUE                        
*                                                                               
CONNCTCB LW,R9    R15                   VALIDATE THE START                      
         BAL,R8   CONNVADR              ADDRESS AS LEGAL                        
         B        CONNERR               ILLEGAL                                 
*                                                                               
         LW,R7    1,R3                  VALIDATE THE TCB ADDR                   
         AND,R7   M17                   AS LEGAL                                
         CI,R7    1                     DOUBLEWORD?                             
         BANZ     CONNE8B               NO                                      
         LW,R9    R7                                                            
         BAL,R8   CONNVADR                                                      
         B        CONNERR               ILLEGAL                                 
         CLM,R11  494A4B                CCB VS TCB?                             
         BCR,9    CONNS7                YES                                     
         LW,R9    1,R3                  VERIFY THE END ADDRESS                  
         SLS,R9   -17                   =F(REGISTERS SAVED)                     
         AND,R9   XF                                                            
         BEZ      CONNS16               0=16                                    
         CI,R9    4                     LESS THAN 4?                            
         BGE      CONNADD9              NO                                      
         LI,R9    4                     YES, SET TO 4                           
         B        CONNADD9                                                      
CONNS7   LI,R9    7                     SET CCB LENGTH                          
         B        CONNCEND                                                      
CONNS16  LI,R9    16                    SET TO 16                               
CONNADD9 STB,R9   R10                   SAVE THE REGISTER COUNT                 
         AI,R9    9                     PLUS FIXED LENGTH                       
CONNCEND AW,R9    R7                    VALIDATE THE END OF THE                 
         BAL,R8   CONNVADR              TCB                                     
         B        CONNERR               ERROR                                   
         B        CONNCCAL              GO LOOK UP INTERRUPT                    
*                                       FOR CURRENT CNX                         
CONNARM  CI,R11   X'51'             ARM/DISARM TO 49,4A,4B,50                   
         BLE      CONNE61               51 IS ILLEGAL                           
         B        CONNFSTI                                                      
*                                       CHECK FOR CAL                           
CONNCCAL CLM,R11  494A4B            CAL CONNECTION?                             
         BCR,9    CONNCKDI              BYPASS STI LOOKUP                       
CONNFSTI LH,R9    R12                   R9=PRIORITY (BYTE 3)                    
*                                                                               
*        DISABLE                    TMINTSTI EXITS DISABLED                     
*                                                                               
         BAL,R8   TMINTSTI              SEARCH THE STI FOR PRIO                 
         B        CONNERR               BAD INTERRUPT                           
         B        CONNNSTI              NOT CONNECTED                           
         LW,R0    MTWCMMD               CONNECTED, IS THE                       
         CW,R0    *R11                  INTERRUPT LOCATION=MTW?                 
         BE       CONNE78               IF SO, IT IS IN PROCESS                 
*                                       BY SOME CONNECT OR DISCONNECT           
*                                       LOGIC AND DOUBLE ACTIVITY               
*                                       IS INVALID                              
         OR,R10   XCNNCT                SET CONNECTED INDICATOR                 
         CW,R10   XCNP1             CONNECT OR DISCONNECT?                      
         BAZ      CONNSTAT              NO, DON'T CHG LOC                       
         CB,R6    STIJID,R4             JOB AGREEMENT?                          
         BNE      CONNE63               NO, JOB ERROR                           
         CB,R5    STILMID,R4            EQUAL TO TASK?                          
         BNE      CONNE62               NO, ERROR                               
CONNNTSK STW,R0   *R11                  AND SET MTW INTO LOCATION               
CONNSTAT ENABLE                                                                 
       DO         #SIGMA9           ON THE SIGMA9, READ HARDWARE                
         LI,R14   0                     TO DETERMINE IF IT                      
         LB,R1    R12               IS ACTIVE                                   
         RD,R14   X'1200',R1            R14=1 IF ACTIVE OR WAITING              
         CW,R14   R12                   ACTIVE/WAITING                          
         BAZ      CONNNACT              NO                                      
         RD,R14   X'1100',R1            WAITING                                 
         CW,R14   R12                                                           
         BANZ     CONNNACT              YES, NOT ACTIVE                         
       ELSE       #SIGMA9                                                       
         LW,R1    STITCB,R4         FETCH THE TCB ADDRESS                       
         AND,R1   M17                   =0 IS DIRECT                            
         BEZ      CONNNACT                                                      
         AI,R1    TCBTCB                FETCH TCB POINTER                       
         BAL,R8   MMFETCH                                                       
         AI,R1    -TCBTCB           R1= TCB ADDRESS                             
         AND,R0   M17                   IF TCB POINTS TO ITSELF                 
         CW,R0    R1                    TASK IS NOT ACTIVE                      
         BE       CONNNACT              NOT ACTIVE                              
       FIN        #SIGMA9                                                       
         OR,R10   XCNACTIV              SET ACTIVE BIT                          
*                                                                               
CONNNACT CW,R10   XCNP1             CONNECT OR DISCONNECT?                      
         BANZ     CONNCCLK              YES                                     
         CW,R10   XCNACTIV          ACTIVE?                                     
         BANZ     CONNGOOD              YES, EXIT                               
         B        CONNSWD               NO, DO ARM OR DISARM                    
*                                       IF INACTIVE OR DIRECT                   
CONNNSTI CW,R10   XCNP1             CONNECT OR DISCONNECT?                      
         BAZ      CONNSWD               NO, ARM OR DISARM, GO                   
*                                       DO WD                                   
         CI,R13   3                 DISCONNECT?                                 
         BE       CONNE61               YES, ERROR, NOT CONNECTED               
         CI,R4    0                 FREE STI FOUND?                             
         BE       CONNE66               SPACE ERROR                             
         OR,R7    XSTIUSED          SET UP THE FREE STI                         
         STW,R7   STITCB,R4             SET STITCB=TCB ADDR                     
         STB,R5   STILMID,R4            LOAD MODULE ID                          
         STB,R6   STIJID,R4             JID                                     
         DO       #MULTDSP                                                      
         STB,R4   STIDNXT,R4            DUMMY CHAIN TO ITSELF                   
         STB,R4   STIRNXT,R4            DUMMY CHAIN TO ITSELF                   
         FIN      #MULTDSP                                                      
         STB,R9   R9                    PRIORITY                                
         AND,R9   YFF                                                           
         STW,R9   STIPRIO,R4                                                    
         LI,R0    STIPRIM               PRIMARY STI STAT                        
         STB,R0   STISTAT,R4            STORE THE STATUS BYTE                   
         LI,R0    0                                                             
         STH,R0   STIOVID,R4        ZERO THE REST OF THE STI                    
         STB,R0   STICOUNT,R4                                                   
         DO1      #ECB                                                          
         STW,R0   STITIME,R4                                                    
         STW,R0   STISPCE,R4                                                    
         STW,R0   STIXRTS,R4        CLEAR OLD RTS                               
         LI,R1    0                                                             
         STD,R0   STIRTSB,R4                                                    
*                                                                               
         DO1      #MULTDSP                                                      
         XPSD,0   TMDQA             ADD THE STI TO THE DISPATCHER               
         ENABLE                                                                 
*                                       QUEUE                                   
CONNCCLK LI,R6    0                 IS THE CONNECT OR DISCONNECT                
         CLM,R11  CN585A                TO A CLOCK?                             
         BCS,9    CONNCKDI              ?                                       
         LW,R6    R11                   YES                                     
         AI,R6    -X'57'                SET R6=1,2,3 CLOCK INDEX                
*                                                                               
CONNCKDI CI,R13   3                 DISCONNECT?                                 
         BE       DISCONN               YES                                     
*                                                                               
         CW,R10   XCNDIRCT              DIRECT CONNECTION?                      
         BAZ      CONNCENT              NO, CENTRAL                             
*                                   DIRECT CONNECTIONS                          
         LW,R7    *R15                  FETCH XPSD                              
         CLM,R11  494A4B                CAL DIRECT CONNECTION?                  
         BCR,9    CONCAL2               YES                                     
         LW,R0    XSTIUSED              CHANGE STITCB ADDR=0                    
         STW,R0   STITCB,R4                                                     
         B        CONNCLOK              GO CHECK FOR CLOCK STUFF                
*                                                                               
CONNCENT CLM,R11  494A4B            CAL CONNECTION?                             
         BCR,9    CONCAL                YES                                     
         CW,R10   XCNACTIV              IS CURRENT CENTRAL                      
         BAZ      CONNBTCB              CONNECT ACTIVE?                         
*                                       NO, BUILD TCB                           
         LW,R0    STITCB,R4             YES, IS THE TCB BEING                   
         AND,R0   M17                   REUSED?                                 
         CW,R7    R0                                                            
         BE       CONNEPSD              YES, GO CHANGE ENTRY PSD                
*                                                                               
CONNBTCB OR,R7    XSTIUSED          BUILD TCB                                   
         STW,R7   STITCB,R4             SET NEW TCB ADDR IN STI                 
         AND,R7   M17                                                           
         LW,R1    R7                                                            
         LW,R0    R10                   REFETCH REGS                            
         AND,R0   YFF                                                           
         SLS,R0   4                     TO CC PART OF BYTE                      
         AW,R0    R7                                                            
         AI,R0    4                                                             
         AI,R1    TCBIPSD*2         WORD ZERO OF IPSD                           
         STWREAL                    STORE UNMAPPED                              
         LW,R0    Y07               ALL INTERRUPTS INHIBITED                    
         AI,R1    1                 WORD ONE OF IPSD                            
         STWREAL                    STORE UNMAPPED                              
         LW,R0    CONN91                STM COMMAND                             
         AW,R0    R7                    PLUS TCB LOC                            
         AI,R1    TCBSTM-TCBIPSD*2-1                                            
         STWREAL                    STORE UNMAPPED                              
         LW,R0    CONN92,R6             FETCH PROPER BAL                        
         AI,R1    TCBBAL-TCBSTM                                                 
         STWREAL                    STORE UNMAPPED                              
         LW,R0    LMIPCB,R5             PCB POINT                               
         AI,R1    TCBPCB-TCBBAL                                                 
         STWREAL                    STORE UNMAPPED                              
         LW,R0    R7                TCB ADDRESS                                 
         STB,R4   R0                SET TASK ID IN TCBPOINT                     
         AI,R1    TCBTCB-TCBPCB                                                 
         STWREAL                    STORE UNMAPPED                              
CONNEPSD LW,R0    1,R3                  AND INHIBIT BITS                        
         AND,R0   Y07                                                           
         AW,R0    Y2                    FGD WRITE KEY                           
         LB,R14   R15               REGISTER BLOCK                              
         AND,R14  M4                REMOVE EXTRA BITS                           
         SLS,R14  4                 ALIGN WITH RP FIELD                         
         AW,R0    R14               MERGE REST OF EPSD WORD 1                   
         LW,R1    R7                                                            
         AI,R1    TCBEPSD*2+1                                                   
         STWREAL                    STORE UNMAPPED                              
         AND,R15  M17               ISOLATE START ADDRESS                       
         LW,R0    R15                                                           
         LW,R15   Y008                                                          
         LW,R14   1,R3              M/S BIT                                     
         STS,R14  R0                                                            
         LW,R15   Y003                                                          
         SLS,R14  -1                DM, AM BITS                                 
         STS,R14  R0                                                            
         AI,R1    -1                EPSD WORD 0                                 
         STWREAL                    STORE UNMAPPED                              
*                                                                               
         AND,R7   M17                                                           
         OR,R7    CONN94                                                        
         OR,R7    Y008              SET BIT TO LOAD REG POINTER (BL 0)          
*                                                                               
CONNCLOK RES      0                                                             
         CLM,R11  CN585A            IS IT A CLOCK                               
         BCS,9    CONNXPSD          NO, BRANCH                                  
         LI,R15   2                     FETCH THE CLOCK PARM                    
         BAL,R5   GETFPTN                                                       
         B        CONNNCLK              NOT PROVIDED                            
         LW,R6    R11               GET INTERRUPT LOCATION                      
         AI,R6    -X'57'            R6= 1,2,3 CLOCK INDEX                       
         CW,R10   XCNDIRCT              DIRECT CONNECTION?                      
         BANZ     CONNDCLK              YES                                     
         STD,R15  K:CLK1-2,R6           VALUE TO COUNTERS                       
         LW,R15   CLOCKMTW-1,R6         SET THE RIGHT MTW                       
CONNDCLK STW,R15  X'52'-1,R6            INTO THE PULSE LOC                      
         B        CONNXPSD              CONTINUE                                
CONNNCLK CW,R10   XCNNCT                RECONNECTION, OK                        
         BANZ     CONNXPSD              TO OMIT PARM                            
         DISABLE                        NEW CNNX MUST HAVE                      
         LI,R0    0                     CLOCK PARAMETER                         
         STW,R0   STITCB,R4             FREE STI ACQUIRED                       
         STW,R0   STIPRIO,R4                                                    
         B        CONNE6C               NEW CNX MUST HAVE IT                    
*                                                                               
CONNXPSD STW,R7   *R11              STORE THE XPSD                              
         CW,R10   XCNNCT            CONNECTED ALREADY?                          
         BAZ      CONNSWD               WAS CONNECTED AT                        
CONNSED  LI,R2    2                     ENTRY, DO ENABLE OR                     
         LW,R0    1,R3                  DISABLE VS ARM                          
         CW,R0    XBIT3                 TEST 'DE' PARM                          
         BAZ      CONNDOWD              DO ENABLE                               
         LI,R2    1                     DISABLE                                 
         B        CONNDOWD                                                      
CONNSWD  CI,R2    3                 DISARM??                                    
         BE       CONNDOWD              YES, GO DO IT                           
         LW,R0    1,R3                  ARM, ENABLE OR DISABLE?                 
         CW,R0    XBIT3                                                         
         BAZ      CONNDOWD              ARM, ENABLE, USE R2 AS IS               
         LI,R2    0                     SET TO ARM AND DISABLE                  
CONNDOWD CI,R11   X'51'             DO NOT WD POWER INTERRUPTS                  
         BL       CONNGOOD                                                      
         LB,R9    R12               ALL OTHERS, DO WD                           
         AH,R9    CONN90,R2                                                     
         WD,R12   *R9                                                           
         CLM,R11  CN585A            CLOCK                                       
         BCS,9    CONNGOOD          NO, BRANCH                                  
         SLS,R12  6                     SHIFT LEVEL BIT TO                      
         WD,R12   *R9                   CLOCK PULSE AND WD TO                   
*                                       THE PULSE LEVEL                         
CONNGOOD LI,R15   1                 SET TYC=NORMAL                              
CONNERR  ENABLE                     ERROR AND NORMAL EXIT                       
         LW,R0    0,R3              IS A TYC WORD PROVIDED?                     
         CW,R0    XBIT11                                                        
         BAZ      CONNTTYC              NO, EXIT                                
         LW,R1    R3                    YES, FIND THE TYC WORD                  
         LW,R0    1,R3                                                          
         AND,R0   YE                                                            
CONNTYC1 CW,R0    Y8                                                            
         BAZ      %+2                                                           
         AI,R1    1                                                             
         SLS,R0   1                                                             
         CI,R0    0                                                             
         BNE      CONNTYC1                                                      
         LW,R0    0,R3                                                          
         SLS,R0   9                                                             
         AND,R0   YC                                                            
CONNTYC2 CW,R0    Y8                                                            
         BAZ      %+2                                                           
         AI,R1    2                                                             
         SLS,R0   1                                                             
         CI,R0    0                                                             
         BNE      CONNTYC2                                                      
         STB,R15  R0                                                            
         STW,R0   2,R1                  STORE TYC (+2 FOR FPT BASE)             
CONNTTYC CI,R15   1                 NORMAL TYC?                                 
         BE       CONNEXIT                                                      
         LW,R9    R15               SAVE TYC                                    
         LI,R15   3                 FETCH THE ERROR ADDR                        
         BAL,R5   GETFPTN                                                       
         B        CONNTF7               NONE                                    
         XW,R9    R15                   R15=TYC, R9=ADDR                        
         BAL,R6   TMSETPSD          STORE INTO STACK                            
CONNEXIT B        CALSTDX           EXIT THE CAL                                
CONNTF7  LW,R0    0,R3                  F7 SET?                                 
         CW,R0    XBIT14                                                        
         BANZ     CONNREGS              YES                                     
         LI,R15   TYCTRAP           SET TO BADCAL                               
         B        CONNEXIT          EXIT                                        
CONNREGS LW,R9    R15               SET THE REGISTERS (8 & 10)                  
         LW,R6    R3                    PER STD FPT SPECS IF                    
         BAL,R8   TMSETREG              F7 IS SET                               
         B        CONNEXIT              EXIT                                    
         PAGE                                                                   
*                                                                               
*        DISCONNECT LOGIC                                                       
*                                                                               
DISCONN  LW,R1    R11               SET CAL ADDR INTO INDEX                     
         CLM,R1   494A4B            CAL DISCONNECT?                             
         BCR,9    DISCAL                YES                                     
*                                                                               
         LW,R7    STITCB,R4         GET TCB ADDR IN R7                          
         DISABLE                                                                
         CW,R10   XCNACTIV          ACTIVE CENTRALLY CONNECTED                  
         BANZ     DISCON1               TASK?                                   
         DO1      #MULTDSP                                                      
         XPSD,0   TMDQR                 REMOVE STI FROM QUEUES                  
         LI,R0    0                                                             
         STW,R0   STITCB,R4                                                     
         STW,R0   STIPRIO,R4                                                    
         LW,R0    XPSDCMMD                                                      
         STW,R0   *R11              SET TO REPORT SPURIOUS INTS                 
         B        CONNDOWD          DO A DISARM                                 
*                                                                               
DISCON1  LW,R1    XTCBDSC           SET FOR DELAYED DISCONNECT                  
         STS,R1   TCBPCB,R7             OF CENTRALLY CONNECTED                  
         LI,R2    1                     TASK, DISABLE FOR WD                    
         B        CONNDOWD                                                      
*                                                                               
DISCAL   DISABLE                                                                
         CW,R10   XCNLMID           LOAD MODULE NAMED?                          
         BANZ     DISCAL3               YES                                     
*                                                                               
         LB,R5    LMI#                  NO, SEARCH FOR A CONNECTION             
DISCAL1  LH,R0    LMISTAT,R5        USED?                                       
         CW,R0    CALFLAG-X'49',R1                                              
         BANZ     DISCAL4               YES                                     
DISCAL2  BDR,R5   DISCAL1           CONTINUE SEARCH                             
         B        CONNE61               ERROR, NO CONNECTION                    
*                                                                               
DISCAL3  LH,R0    LMISTAT,R5        IS THE NAMED TASK CONNECTED                 
         CW,R0    CALFLAG-X'49',R1                                              
         BAZ      CONNE62               NO, TASK ERROR                          
*                                                                               
DISCAL4  EOR,R0   CALFLAG-X'49',R1  REVERSE CONNECTED BIT                       
         STH,R0   LMISTAT,R5                                                    
         LW,R0    X'41'                 CHANGE TRAP TO UNIMPL                   
         STW,R0   0,R1                  INSTRUCTION                             
         B        CONNGOOD          EXIT, NO WD                                 
         PAGE                                                                   
*                                                                               
*        CAL      CONNECTIONS                                                   
*                                                                               
CONCAL   AND,R7   M17               CENTRAL CAL CONNECTION                      
         LW,R1    R7                                                            
         LW,R0    R7                    BUILD CCB                               
         AI,R0    4                     0,1=INTERMEDIATE PSD                    
         AI,R1    CCBIPSD*2                                                     
         STWREAL                    STORE UNMAPPED                              
         LW,R0    Y07                                                           
         AI,R1    1                                                             
         STWREAL                    STORE UNMAPPED                              
         LW,R0    CNSTD             4=STD CALREGS                               
         AI,R1    CCBSTD-CCBIPSD*2-1                                            
         STWREAL                    STORE UNMAPPED                              
         LW,R0    CNBAL             5=BAL CALENTRY                              
         AI,R1    CCBBAL-CCBSTD                                                 
         STWREAL                    STORE UNMAPPED                              
         LW,R0    1,R3              6,7=ENTRY PSD                               
         AND,R0   Y07               EPSD WORD 1: INHIBITS                       
         LB,R14   R15               GET REGISTER POINTER                        
         AND,R14  M4                AND SKELETON WRITE KEY                      
         SLS,R14  4                                                             
         AW,R0    R14               PUT EM TOGETHER                             
         AI,R1    CCBEPSD*2+1-CCBBAL                                            
         STWREAL                    STORE UNMAPPED                              
         AND,R15  M17               EPSD WORD 0: START ADDRESS                  
         LW,R0    R15                                                           
         LW,R14   1,R3                                                          
         LW,R15   Y008                                                          
         STS,R14  R0                M/S BIT                                     
         LW,R15   Y083                                                          
         SLS,R14  -1                                                            
         STS,R14  R0                DM, AM, AI BITS                             
         AI,R1    -1                                                            
         STWREAL                    STORE UNMAPPED                              
         OR,R7    CONN94            BUILD XPSD                                  
CONCAL2  LW,R1    R11                                                           
         DISABLE                                                                
         LW,R0    X'41'             IS CAL CURRENTLY CONNECTED?                 
         CW,R0    0,R1                                                          
         BE       CONCAL5               NO                                      
         LW,R0    CALFLAG-X'49',R1  SET R0=INDICATOR BIT FOR                    
         LB,R2    LMI#                  CAL AND SCAN THE LMI                    
CONCAL3  CH,R0    LMISTAT,R2            CONNECTED?                              
         BANZ     CONCAL4               YES                                     
         BDR,R2   CONCAL3               CONTINUE                                
         B        CONCAL5               IGNORE CONNECTION                       
CONCAL4  LH,R0    LMISTAT,R2        REMOVE CONNECTION                           
         EOR,R0   CALFLAG-X'49',R1                                              
         STH,R0   LMISTAT,R2                                                    
CONCAL5  STW,R7   0,R1                                                          
         LH,R0    LMISTAT,R5        SET THE CONNECTED BIT                       
         OR,R0    CALFLAG-X'49',R1                                              
         STH,R0   LMISTAT,R5                                                    
         B        CONNGOOD          EXIT                                        
         PAGE                                                                   
*                                                                               
*        ERROR EXITS TO CONNECT,DISCONNECT CALS                                 
*                                                                               
CONNE61  LI,R15   TYC61                 INTERRUPT ERROR                         
         B        CONNERR                                                       
CONNE62  LI,R15   TYC62                 TASK NAME ERROR                         
         B        CONNERR                                                       
CONNE63  LI,R15   TYC63                 JOB NAME ERROR                          
         B        CONNERR                                                       
CONNE66  LI,R15   TYC66                 SPACE ERROR                             
         B        CONNERR                                                       
CONNE6C  LI,R15   TYC6C                 CLOCK PARMS MISSING                     
         B        CONNERR                                                       
CONNE78  LI,R15   TYC78                 DOUBLE ACTIVITY                         
         B        CONNERR                                                       
CONNE8B  LI,R15   TYC8B                 ADDRESS ERROR                           
         B        CONNERR                                                       
CONNE62A LI,R15   TYC62                 TASK NAME ERROR                         
CONNER10 PULL     2,R10             RESTORE STACK AND R10                       
         B        CONNERR                                                       
*                                                                               
         PAGE                                                                   
*        CONSTANTS USED BY CONNECT/DISCONNECT                                   
*                                                                               
         BOUND    8                                                             
CN5255   DATA     X'52',X'55'       CLOCK PULSE LOCATIONS                       
CN585A   DATA     X'58',X'5A'       CLOCK=0 LOCS, CLK1,2,3                      
XCNP1    EQU      XBIT31            CONNECT OR DISCONNECT                       
XCNLMID  EQU      XBIT30            LMID GIVEN IN FPT                           
XCNNCT   EQU      XBIT29            CONNECTED CURRENTLY                         
XCNDIRCT EQU      XBIT28            NEW CONNECTION DIRECT                       
XCNACTIV EQU      XBIT27            CURRENT TASK CENTRAL, ACTIVE                
CNSTD    STD,R0   CALREG            STD FOR CCB                                 
CNBAL    BAL,R1   CALENTRY          BAL FOR CCB                                 
CONN90   DATA,2   X'1300'           0 ARM AND DISABLE                           
         DATA,2   X'1500'           1 DISABLE                                   
         DATA,2   X'1400'           2 ENABLE                                    
         DATA,2   X'1100'           3 DISARM                                    
         DATA,2   X'1200'           4 ARM AND ENABLE                            
CONN91   STM,0    10                SKELETON STM FOR TCB                        
CONN92   BAL,R1   RBMSAVE           BAL FOR  INTERRUPT CNNX                     
         BAL,R1   CLK1SAVE          BAL FOR CLOCK1 CNNX                         
         BAL,R1   CLK2SAVE          BAL FOR CLOCK2 CNNX                         
         BAL,R1   CLK3SAVE          BAL FOR CLOCK3 CNNX                         
CONN94   EQU      Y0F               XPSD,0 0 COMMAND SKELETON                   
CLOCKMTW MTW,-1   K:CLK1            MTW FOR CLOCK1 PULSE LOC                    
         MTW,-1   K:CLK2            MTW FOR CLOCK2 PULSE LOC                    
         MTW,-1   K:CLK3            MTW FOR CLOCK3 PULSE LOC                    
         TITLE    '** ARM - TASK MANAGEMENT SUBROUTINES **'                     
******************                                                              
*    TMINTSTI    *       SUBROUTINE TO LOCATE THE PRIMARY TASK CORRESP'         
******************            TO AN INTERRUPT PRIORITY PROVIDED                 
*                                                                               
* ENTRY  R9       PRIORITY, BYTE 3                                              
*        BAL,R8   TMINTSTI                                                      
* EXITS  +1       INTERRUPT NOT VALID, DISPATCHER CONNECTED,                    
*                        R15= X'61'                                             
*        +2       TASK NOT FOUND, R15 UNALTERED                                 
*                 R4=FREE ENTRY (0 IF NONE AVAIL) DISABLED                      
*        +3       TASK FOUND, R4= TASK ID, DISABLED                             
*                                                                               
* REGISTERS USED: R0,R4,R15    IF ERRORS                                        
*           SAVED: R1-R3,R5-R14,        R15 IF GOOD                             
* STACK WORDS: NONE                                                             
* SUBROUTINES: NONE                                                             
* NOTES: TRAPS TO CALLER                                                        
*                                                                               
TMINTSTI AND,R9   M8                ISOLATE PRIORITY                            
         DO       #MULTDSP=0        IF ONE DISP, CHECK HIINT                    
         LW,R0    K:HIINT           TEST FOR AN INTERRUPT GREATER               
         AND,R0   M16                   THAN HI, ILLEGAL                        
         AI,R0    -X'4F'                                                        
         CW,R9    R0                                                            
         BGE      TMINTS6                                                       
         LI,R4    0                                                             
         ELSE     #MULTDSP=0        IF MULT DISP, CHECK ALL                     
         LW,R0    R9                TEST THE INTERRUPT                          
         AI,R0    -1                    GIVEN IS NOT RDL, STL LEVEL             
         LH,R4    RDLILVL1          FIRST VALIDATE THAT THE PRIORITY            
TMINTS1  CB,R9    RDLIPRIO,R4           IS NOT RDL OR STL(RDL+1)                
         BE       TMINTS6               RDL GIVEN                               
         CB,R0    RDLIPRIO,R4                                                   
         BE       TMINTS6               RDL+1 GIVEN (STL)                       
         BDR,R4   TMINTS1                                                       
         FIN      #MULTDSP                                                      
*                                                                               
         STB,R4   R8                SET FREE ENT=0                              
         LB,R4    STI#              OK-NOT USED BY RBM-NOW LOOK THROUGH         
*                                       STI                                     
         DISABLE                                                                
TMINTS2  LW,R0    STITCB,R4         IS STI ENTRY USED                           
         BEZ      TMINTS3               NO, SAVE INDEX                          
         LW,R0    STIPRIO,R4            IS IT A PRIMARY CNNCTED                 
         CB,R9    R0                    TO THE INTERRUPT                        
         BNE      TMINTS4               NO,  GO TO NEXT                         
         LB,R0    STISTAT,R4        IGNORE SECONDARY TASKS                      
         CI,R0    STIPRIM                                                       
         BAZ      TMINTS4                                                       
         AI,R8    2                 FOUND, TAKE +3 EXIT                         
         B        *R8                                                           
TMINTS3  STB,R4   R8                SAVE INDEX OF FREE ENTRY                    
TMINTS4  BDR,R4   TMINTS2                                                       
*                                                                               
         LB,R4    R8                SET R4=FREE ENTRY FOUND                     
         AI,R8    1                 NOT FOUND, GIVE +2 EXIT                     
         B        *R8                                                           
*                                                                               
TMINTS6  LI,R15   TYC61                                                         
         B        *R8                                                           
         TITLE    '** ARM -  VALIDATE ADR FOR PRIMARY USE **'                   
*******************                                                             
*  CONNVADR       *                                                             
*******************                                                             
*                                                                               
* ENTRY  R5       LMID                                                          
*        R9       ADDRESS                                                       
*        BAL,R8   CONNVADR                                                      
* EXITS  +1       ERROR                                                         
*        +2       ADDRESS VALID                                                 
* STACK:          2                                                             
* SUBROUTINES:    MMFMP                                                         
*                                                                               
CONNVADR RES      0                 VALIDATE ADDRESS                            
         PUSH     2,R7                                                          
         LW,R14   R9                GET ADDRESS                                 
         AND,R14  M17               REMOVE EXTRA BITS                           
         BAL,R8   MMFMP             FIND ITS PARTITION                          
         LI,R7    1                 NONE. USE GUARANTEED ILLEGAL INDEX          
         LW,R14   PPT,R7            GET PPT ENTRY                               
         LB,R14   R14                                                           
         AND,R14  XPPTTYPE          GET TYPE FIELD                              
         PULL     2,R7                                                          
         AI,R8    1                 SET UP FOR OK RETURN                        
         CI,R14   PPTTYPE1                                                      
         BE       CNVAD1            B IF PRIVATE PARTITION                      
         CI,R14   PPTTYPE4                                                      
         BE       CNVAD1            B IF PREFERRED PARTITION                    
         LI,R15   TYC8B             NOT OK. LOAD COMPLETION CODE                
         AI,R8    -1                SET UP NO-SKIP RETURN                       
CNVAD1   RES      0                                                             
         B        *R8               RETURN                                      
*                                                                               
         OLAYEND                                                                
         END                                                                    
