         PCC      0                                                             
         SYSTEM   SIG9P                                                         
         SYSTEM   OPTIONS                                                       
*                                                                               
*        OVERLAY MADE UP OF ECB TYPE CAL PROCESSORS                             
*                 HIGHER UTILIZATION CALS                                       
*                                                                               
*        SIGNAL, SIGCHK,SIGABNM                                                 
*        POLL,   POLLCHK,POLLABNM                                               
*        PPOST                                                                  
*        START                                                                  
*        STOP                                                                   
*        STIMER, STIMCHK,STIMABNM                                               
*        GETTIME                                                                
*                                                                               
         DEF      A:SIGNAL                                                      
         DO       #ECB                                                          
         DEF      SIGNAL1,SIGCHK,SIGABNM                                        
         DEF      POLL,POLLCHK,POLLABNM                                         
         DEF      PPOST                                                         
         FIN      #ECB                                                          
         DEF      START                                                         
         DEF      STOP,TMSTOP                                                   
         DO1      #ECB                                                          
         DEF      STIMER,STIMABNM                                               
         DEF      GETTIME                                                       
         DEF      SIGX,SIGX1,SIGX2,SIGX4,SIGX5,SIGX8                            
         DEF      SIGX9                                                         
         DO1      #ECB                                                          
         DEF      POLLABX                                                       
OLAYFLAG EQU      'SIGN'                                                        
         SYSTEM   CPRMON                                                        
         TITLE    '** SIGNAL **'                                                
         TITLE    '** SIGNAL - OVERLAY EXITS AND REFS **'                       
SIGX     B        CALSTDX           STANDARD CAL EXIT, R15=TYC                  
SIGX1    B        TMX1                                                          
SIGX2    B        TMX2                                                          
SIGX4    B        TMX4                                                          
SIGX5    B        TMX5                                                          
SIGXPR8  PULL     R8                EXIT TO R8+1 INCL PULL                      
SIGX8P1  AI,R8    1                 EXIT TO R8+1                                
SIGX8    B        *R8                                                           
SIGX9    B        CALEXIT                                                       
         TITLE    '** SIGNAL - SIGNAL CAL PROCESSOR **'                         
*                                                                               
*        SIGNAL   CAL1 PROCESSOR                                                
*                                                                               
         DO       #ECB                                                          
SIGNAL   LI,R15   0                 ZERO TYPE COMPLETION                        
*                                                                               
         BAL,R8   TMGETIDS          GET JOB-TASK BEING SIGNALLED                
         B        SIGX1                                                         
*                                                                               
         BAL,R8   EMBLDECB          CREATE THE ECB - SETS FLAGS,FPT,S-,         
         B        SIGX1                 PR,CL,EA,TIME                           
         BAL,R8   EMDATAI           ADD DATA AREA IN                            
         B        SIGX5                                                         
*                                                                               
         LI,R7    ECBRTID           STORE R-TASK ID                             
         STB,R5   *R2,R7                                                        
         LI,R0    ECBTSIG           STORE ECB TYPE                              
         LI,R7    ECBT                                                          
         STH,R0   *R2,R7                                                        
         BAL,R8   EMARECB           PLACE ECB IN R-CHAIN                        
         B        SIGX5             ERROR, DELETE THE ECB                       
*                                                                               
*                                                                               
SIGNAL1  LW,R0    0,R3              IS THE FPT EXTENDED                         
         CW,R0    XFPTP0                BY P0 BIT?                              
         BAZ      SIGX4                 NO, W/O WAIT ASSUMED                    
         LW,R13   1,R3              GET FPT WORD 1                              
         CI,R13   FPTF3             IS WAIT BIT SET                             
         BAZ      SIGNAL2           B IF NO-WAIT REQUEST                        
*                                                                               
         LB,R4    TCBPOINT          SET R4=S-TASK ID                            
         BAL,R8   SIGCHK            CHECKING SUBROUTINE                         
         LI,R15   TYCSYSER              BUSY??                                  
         B        SIGX                  ERROR OR NORMAL                         
         SPACE    5                                                             
SIGNAL2  RES      0                 R13= FPT WORD 1                             
         CI,R13   FPTF8             IS DELETE ON POST SET                       
         BAZ      SIGX4             NO, TAKE STANDARD EXIT                      
         DISABLE                    YES                                         
         LW,R0    ECBFPT,R2         GET ECB WORD 1                              
         CW,R0    XECBBUSY          HAS ECB BEEN POSTED                         
         BANZ     SIGNAL3           NO, STILL BUSY                              
         ENABLE                     YES                                         
         BAL,R8   EMDELECB          DELETE THE ECB                              
         NOP                                                                    
         ENABLE                     EMDELECB RETURNS DISABLED                   
         B        SIGX9             SERVICE IS COMPLETE                         
*                                                                               
*                                                                               
SIGNAL3  RES      0                                                             
         OR,R0    XECBDP            SET DP BIT IN ECB                           
         STW,R0   ECBFPT,R2         STORE WORD 1 BACK INTO ECB                  
         ENABLE                                                                 
         B        SIGX9             CALEXIT                                     
         PAGE                                                                   
*                                                                               
*        SIGNAL CHECKING SUBROUTINE                                             
*                                   R2=ECB ID                                   
*                                   R3=FPT ADDR (0 IF NO FPT)                   
SIGCHK   PUSH     2,R8              R4=TASK ID                                  
         BAL,R8   EMWAIT            WAIT FOR THE ECB TO BE POSTED               
         B        SIGCHK4               BUSY- RETURN TO CALLER                  
         PUSH     R3                SAVE CURRENT FPT                            
         CI,R15   TYC100            IF ECB WAS NOT DELETED OR DETACHED          
         BE       SIGCHK1               USE TYC, DATA FROM IT                   
         BAL,R8   EMSETR3               R3=ORIGINAL FPT                         
         BAL,R8   EMDATAO               MOVE DATA OUT (IF T=0)                  
         B        %+1                                                           
         LW,R7    ECBCOMPL,R2           R7=COMPL WORD                           
         PUSH     R4                                                            
         BAL,R8   EMDELECB              DELETE ECB                              
         B        %+1                                                           
         ENABLE                                                                 
         PULL     R4                                                            
         LW,R9    R7                    R9=COMPL WORD                           
         B        SIGCHK2                                                       
SIGCHK1  LI,R15   TYCNORM           DELETE FPT SUCESSFUL                        
         LW,R3    0,R3                  SET R3=ORIG FPT                         
         AND,R3   M17                                                           
         BEZ      SIGCHK3               =0, EXIT                                
         LW,R9    TYCWNORM              SET TYC WORD=NORM                       
SIGCHK2  BAL,R8   TMTYCS            STORE COMPL WORD                            
SIGCHK3  PULL     R3                RESET TO CURRENT FPT                        
         BAL,R8   TMSETERR          ALTER R8,R10 AND PSD                        
         PULL     2,R8              ECB COMPLETED EXIT                          
         AI,R8    1                                                             
         B        SIGX8                                                         
SIGCHK4  PULL     2,R8              BUSY EXIT                                   
         B        SIGX8                                                         
         PAGE                                                                   
*                                                                               
*        SIGNAL ABNORMAL CONDITION SUBROUTINE                                   
*                                   ENTRY FROM EMWAIT,S-TASK ENVIRON.           
*                                   R2=ECB.  S-TASK MAY BE TERM.                
*                                       S-ECB LINK NOT=0                        
*                                       DP,WD=0, CHK=1                          
*                                       R-LINK MAY=0, BUSY=0 OR 1               
SIGABNM  PUSH     R8                SAVE EXIT                                   
         LI,R6    0                                                             
         STB,R15  R6                    R6= TYC WORD                            
         DISABLE                                                                
         LW,R0    ECBRECB,R2        LINKED TO AN R-TASK?                        
         BEZ      SIGABN9               NO                                      
         CI,R15   TYCTERM           IN TERMINATION?                             
         BE       SIGABN2               YES- DETATCH FROM S-TASK                
         LW,R0    ECBFPT,R2             GET FLAGS                               
         CW,R0    XECBINP                                                       
         BANZ     SIGABN2                                                       
         OR,R0    XECBPIP                                                       
         STW,R0   ECBFPT,R2                                                     
         ENABLE                                                                 
         BAL,R8   SIGPOST                                                       
         B        %+1                                                           
         B        SIGXPR8                                                       
**                                                                              
**                                                                              
SIGABN2  LW,R0    ECBFPT,R2         R-TASK STILL LINKED, RESET                  
         OR,R0    XECBDP                CHECK, SET DELETE-ON-POST               
         AND,R0   XECBNCHK              TERMINATE OR ABORT/DELFPT AND           
         STW,R0   ECBFPT,R2             INP-                                    
         LI,R0    0                     SET DP, RESET CHK                       
         STW,R0   ECBENDAC,R2           ZERO END ACTION                         
*                                       BUSY,POST,WD AS IS                      
         BAL,R8   EMRSECB           REMOVE FROM S-CHAIN                         
         B        %+1                                                           
         ENABLE                                                                 
         LI,R15   TYC100            SET ECB REMOVED                             
         B        SIGXPR8               EXIT PULLING R8 ADDING 1                
**                                                                              
**                                                                              
SIGABN9  EQU      %                 ECB DID NOT GET FULLY INITIATED             
         LW,R0    ECBFPT,R2             OR HAS BEEN POSTED- R-TASK              
         CW,R0    XECBBUSY              LINK IS ZERO.                           
         BAZ      SIGABNX               TAKE POSTED EXIT                        
         OR,R0    XECBPIP           POST ECB, SET POST, INP                     
         STW,R0   ECBFPT,R2             TAKE POSTED EXIT                        
         ENABLE                                                                 
         PUSH     2,R2                  SAVE R2-R3                              
         BAL,R8   EMPOSTYC                                                      
         PULL     2,R2              RESTORE R2,R3                               
         B        SIGXPR8                                                       
SIGABNX  ENABLE                                                                 
         B        SIGXPR8               EXIT TO R8+1 INCL PULL                  
         ELSE     #ECB                                                          
SIGNAL   B        %                                                             
         FIN      #ECB                                                          
A:SIGNAL EQU      SIGNAL                                                        
         TITLE    '** SIGNAL - POLL CAL PROCESSOR **'                           
*                                                                               
*        POLL     CAL PROCESSOR                                                 
*                                                                               
         DO       #ECB                                                          
POLL     LI,R15   0                 SET THE TYPE COMPLETION TO 0                
         LB,R5    STILMID,R4        SET R5 TO LOAD MODULE ID                    
         LI,R2    0                 SET  NO ECB FLAG                            
         LW,R0    0,R3                  IS THE FPT EXTENDED                     
         CW,R0    XFPTP0                BY P0?                                  
         BAZ      POLLA                 NO                                      
         LW,R0    1,R3              CHECK FOR AN IMMEDIATE POLL                 
         CI,R0    FPTF2                 IF SO, DO NOT BUILD AN ECB              
         BANZ     POLLI                                                         
POLLA    BAL,R8   EMBLDECB          IF NOT IMMEDIATE, BUILD AN                  
         B        SIGX1                 ECB, INCLUDES FLAGS, FPT                
*                                       ADDRESS, S-ECB, PR, CL,                 
*                                       END ACTION, TIME                        
         LW,R0    ECBFPT,R2         SET IN CHECK                                
         OR,R0    XECBCHK                                                       
         STW,R0   ECBFPT,R2                                                     
         LI,R7    ECBT              SET THE ECBTYPE TO POLL                     
         LI,R0    ECBTPOLL                                                      
         STH,R0   *R2,R7                                                        
*                                                                               
POLLI    BAL,R8   POLLCHK           TEST FOR A REQUEST ECB IN CHAIN             
         B        SIGX4                 BUSY- NO REQUEST, ORIG                  
*                                       FPT WITHOUT WAIT, RETURN                
*                                       TO CALLER                               
         B        SIGX              POSTED,ERROR OR NORMAL,EXIT                 
         PAGE                                                                   
*                                                                               
*        POLL CHECKING  SUBROUTINE, ENTRY IS FROM POLL CAL1                     
*                 PROCESSOR OR FROM THE CHECK CAL                               
POLLCHK  PUSH     R8                R2=ECB ID (POLL) OR 0 IF NONE               
         PUSH     R3                    R3=FPT (CHK,DEL,WAIT,ETC)               
*                                   R4=S-TASK ID OF POLL                        
*                                   R5=S-TASK LMID                              
*                                   R15=TYC                                     
         CI,R2    0                 IS THERE A POLLECB?                         
         BE       POLLC1                NO                                      
         LW,R0    ECBFPT,R2         IS THE POLL ECB POSTED?                     
         CW,R0    XECBBUSY                                                      
         BAZ      POLLC6                YES                                     
         LW,R0    STITCB,R4         IF TASK IS TERMINATING, GO                  
         CW,R0    XSTIT                 DIRECTLY TO WAIT                        
         BANZ     POLLC11                                                       
         CI,R1    X'47'             IF DELFPT, GO DIRECTLY TO                   
         BE       POLLC11              WAIT, WAIT DOES ABNORMAL                 
*                                       CALL.                                   
*                                   SET THE CLASS FROM THE ECB                  
         LW,R10   ECBPC,R2                                                      
         B        POLLC2                R10=CLASS                               
POLLC1   LW,R10   R15               SAVE TYC                                    
         LW,R11   R5                    SAVE LMID                               
         LI,R15   FPTCLASS                                                      
         BAL,R5   GETFPTNS                                                      
         LI,R15   ECBCL                 DEFAULT = X'FFFF'                       
         XW,R10   R15                   SWAP TYC  BACK                          
         LW,R5    R11                   RESTORE LMID                            
POLLC2   RES      0                                                             
         AND,R10  XFFFF             R10= CLASS MASK                             
         DISABLE                                                                
POLLC2A  LW,R7    LMIRECB,R5        R7 WILL BE SIGNAL ECB                       
POLLC3   AND,R7   M24               END OF R-CHAIN?                             
         BEZ      POLLC9                YES, NO SIGNAL                          
         LW,R0    ECBFPT,R7         TEST FLAGS, IF INP,POST SET                 
         CW,R0    XECBPIP               NOT ELIGIBLE                            
         BANZ     POLLC4                CONTINUE                                
         CW,R0    XECBBUSY              IF NOT BUSY, NOT ELIGIBLE               
         BAZ      POLLC4                                                        
         CW,R10   ECBPC,R7          COMPARE CLASSES                             
         BAZ      POLLC4                                                        
         LW,R0    ECBCTL,R7         MAKE SURE IT IS A SIGNAL ECB                
         AND,R0   XECBTYPE                                                      
         CI,R0    ECBTSIG                                                       
         BE       POLLC5            ECB FOUND TO SATISFY POLL                   
POLLC4   LW,R7    ECBRECB,R7        MOVE ONTO NEXT ECB IN CHAIN                 
         B        POLLC3                AND CONTINUE SEARCH                     
*                                                                               
POLLC5   LW,R0    ECBFPT,R7         SET THE SIGNAL ECB IN PROCESS               
         OR,R0    XECBINP                                                       
         STW,R0   ECBFPT,R7                                                     
*                                                                               
         ENABLE                                                                 
*                                                                               
         LI,R15   TYCNORM           SET TYPE COMPL=NORMAL                       
         CI,R2    0                 IS THE POLL IMMEDIATE, OR                   
         BE       POLLC7               IS THERE AN ECB?                         
         LW,R0    ECBFPT,R2         SIGNAL FOUND, SET THE POLL                  
         OR,R0    XECBPOST             ECB INTO POSTED STATE                    
         STW,R0   ECBFPT,R2                                                     
         LW,R6    R7                SET THE POSTING COMPLETION                  
         STB,R15  R6                    =X'01'+SIGNAL ECB ID                    
         PUSH     2,R2                  SAVE R2,R3                              
         BAL,R8   POLLPOST          POST THE POLL ECB                           
*                                   R2=POLLECB                                  
*                                   R7=SIGNAL ECB (01 TYC)                      
         B        POLLCC            ERROR? SEARCH AGAIN                         
         PULL     2,R2                  RESTORE R2,R3                           
*                                                                               
         LB,R0    *R3                   IS THIS THE ORIG POLL                   
         CI,R0    X'45'                 REQUEST?                                
         BNE      POLLC6                NO, DO CLEANUP                          
         LW,R0    0,R3                  IS THE FPT EXTENDED BY                  
         CW,R0    XFPTP0                BY P0 BIT?                              
         BAZ      POLLCBX               NO ASSUME NO WAIT                       
         LW,R0    1,R3              IS THE SERVICE REQUEST                      
         CI,R0    FPTF3                 ORIGINAL FPT WITHOUT                    
         BAZ      POLLCBX               WAIT? YES, EXIT LEAVING                 
*                                       POLL ECB POSTED.                        
POLLC6   LW,R7    ECBCOMPL,R2       SET R7=SIGNAL ECB ID                        
         LB,R15   R7                    R15=TYPE COMPLETION                     
         BAL,R8   EMSETR3               R3=ORIGINAL FPT                         
*                                                                               
         AND,R7   M17               IS THERE A SIGNAL ECB?                      
         BEZ      POLLC71               NO                                      
POLLC7   XW,R7    R2                    SET ECBID TO SIGNAL ECB                 
         BAL,R8   EMDATAO               MOVE THE OUTPUT DATA                    
         B        %+1                   CONTINUE                                
         XW,R2    R7                RESTORE TO THE POLL ECB                     
POLLC71  CI,R2    0                 IS THERE A POLL ECB?                        
         BE       POLLC8                NO                                      
         BAL,R8   EMDELECB              DELETE THE POLL ECB                     
         B        %+1                   ERROR, CONTINUE                         
         ENABLE                                                                 
POLLC8   LB,R4    TCBPOINT          TEST FOR THE TASK IN TERMINATION            
         LW,R0    STITCB,R4                                                     
         CW,R0    XSTIT                                                         
         BANZ     POLLC81               YES.                                    
         LW,R0    0,R3                  NO, PUT THE ECB ID INTO                 
         AND,R0   YFFFE                 THE FPT PRESERVING THE                  
         OR,R0    R7                    HIGH ORDER BITS                         
         STW,R0   0,R3                                                          
*                                   POST ORIG FPT, EXIT                         
         BAL,R8   TMTYC15S          STORE THE COMPLETION CODE                   
POLLC81  PULL     R3                    SET BACK TO THE CURRENT                 
         BAL,R8   TMSETERR              FPT AND DO ERROR EXIT                   
         PULL     R8                    LOGIC IN CASE REQ'D                     
         AI,R8    1                                                             
         B        SIGX8                                                         
*                                                                               
POLLC9   CI,R2    0                 IMMEDIATE POLL?                             
         BE       POLLCB                YES                                     
         LB,R0    *R3               NO, IS THE CHECK CALL FROM                  
         CI,R0    X'41'             WAITANY CAL?                                
         BE       POLLCBX              YES, EXIT BUSY                           
         CI,R0    X'42'             TEST CAL?                                   
         BE       POLLCBX               YES, EXIT BUSY                          
         CI,R0    X'45'             ORG POLL CAL1 W/0 WAIT?                     
         BNE      POLLC11               NO                                      
         LW,R0    0,R3                  IS THE FPT EXTENDED?                    
         CW,R0    XFPTP0                                                        
         BAZ      POLLCBX               NO, EXIT (ASSUME W0 WAIT)               
         LW,R0    1,R3                                                          
         CI,R0    FPTF3                                                         
         BANZ     POLLC11               NO (WITH WAIT)                          
POLLCBX  LW,R0    ECBFPT,R2         BUSY EXIT, RESET CHK BIT                    
         AND,R0   XECBNCHK                                                      
         STW,R0   ECBFPT,R2                                                     
POLLCBY  PULL     R3                    (EMWAIT, CHK ALREADY RESET)             
         PULL     R8                                                            
         B        SIGX8                                                         
POLLC11  BAL,R8   EMWAIT            WAIT FOR A POST                             
         B        POLLCBY               BUSY AT CHECK TIME                      
         B        POLLC6            DO CHECK CLEANUP PHASE                      
*                                                                               
POLLCC   PULL     2,R2              RESTORE R2,R3 AND RETRY                     
         B        POLLC2A                                                       
*                                                                               
*        IMMEDIATE POLL LOGIC - NO ECB FOUND                                    
*                                                                               
POLLCB   CI,R15   TYC83             SET THE TYPE COMPLETION TO                  
         BGE      %+2                   NO ECB AVAILABLE AND                    
         LI,R15   TYC83                 EXIT                                    
         B        POLLC8                                                        
         SPACE    5                                                             
*                                                                               
*        POSTING AND ABNORMAL SUBROUTINES FOR POLL                              
*                                                                               
POLLABNM LI,R6    0                 SET THE TYPE COMPLETION AND                 
         STB,R15  R6                    POST THE ECB, NO SIGNAL                 
POLLABX  B        POLLPOST          GO POST THE ECB                             
         FIN      #ECB                                                          
         TITLE    '** SIGNAL - POST CAL PROCESSOR **'                           
*                                                                               
*        POST CAL PROCESSOR                                                     
*                                                                               
         DO       #ECB                                                          
PPOST    LI,R15   TYCNORM           SET TYPE COMPLETION TO NORMAL               
         BAL,R8   TMGETIDS          GET JOB-TASK OF R-ECB                       
         B        SIGX1                 ERROR                                   
         LW,R0    0,R3              GET ECB ID FROM POST FPT                    
         AND,R0   M17                   R0=ECB ID TO BE POSTED                  
*                                                                               
         DISABLE                                                                
*                                                                               
         LW,R2    LMIRECB,R5        SEARCH THE R-ECB CHAIN OF THE               
PPOST1   AND,R2   M17                   LOAD MODULE IDENTIFIED FOR              
         BEZ      PPOSTE                THE ECB, VERIFYING ID BEFORE            
         CW,R0    R2                    POSTING.                                
         BE       PPOST2                                                        
         LW,R2    ECBRECB,R2                                                    
         B        PPOST1                                                        
*                                                                               
PPOST2   LW,R0    ECBCTL,R2         VERIFY THAT THE ECB TYPE IS                 
         AND,R0   XECBTYPE              SIGNAL                                  
         CI,R0    ECBTSIG                                                       
         BNE      PPOSTE                NO ERROR                                
         LW,R0    ECBFPT,R2         VERIFY THAT THE ECB IS NOT                  
         CW,R0    XECBBUSY              ALREADY POSTED                          
         BAZ      PPOSTE                ERROR IF SO                             
         CW,R0    XECBPOST              POSTING CURRENTLY?                      
         BANZ     PPOSTE                ERROR IF SO                             
         CW,R0    XECBINP           HAS THE ECB BEEN POLLED                     
         BAZ      PPOSTE            NO, THIS IS THE WRONG ECB                   
         OR,R0    XECBPOST          SET THE POSTING BIT                         
         STW,R0   ECBFPT,R2                                                     
*                                                                               
         ENABLE                                                                 
*                                                                               
         BAL,R8   EMDATAI           MOVE DATA AREA TO ECB IF                    
         B        %+1                   PROVIDED, IGNORE ERROR FOR NOW          
         LW,R4    R15               FETCH THE COMPLETION WORD FROM              
         LI,R15   FPTTYC                THE POST FPT, SAVE TYC FROM             
         BAL,R5   GETFPTNS              THIS CAL                                
         LW,R15   TYCWNORM          NOT PROVIDED. DEFAULT NORMAL (X'01')        
         MTB,0    R15               IS USER TYC = X'00'                         
         BNEZ     %+2                                                           
         MTB,1    R15               YES, FORCE TO X'01'                         
*                                   OTHERWISE SOME SERVICES                     
*                                   (E.G., WAITANY) MIGHT THINK                 
*                                   SIGNAL NOT COMPLETED.                       
         LW,R6    R15               CALL THE POSTING SUBROUTINE                 
         PUSH     2,R3                  R6=TYC WORD. SAVE R3,R4(TYC)            
         LI,R15   TYCNORM               R15=TYC OF POSTING LOGIC                
         BAL,R8   SIGPOST                                                       
         B        %+1                   ERROR EXIT, CONTINUE                    
         PULL     2,R3              RESTORE R3=FPT, R4=TYC PRIOR                
         CW,R4    R15                   TO POSTING, SET TYC TO                  
         BLE      SIGX1                 LARGER CODE, AND EXIT                   
         LW,R15   R4                                                            
         B        SIGX1                                                         
*                                                                               
PPOSTE   LI,R15   TYC86             ILLEGAL ECB ID, ERROR EXIT                  
         B        SIGX1                 WITHOUT POSTING                         
         FIN      #ECB                                                          
         TITLE    '** SIGNAL - START CAL1 PROCESSOR **'                         
*                                                                               
*        START    CAL1 PROCESSOR                                                
*                                                                               
*                                                                               
START    LI,R15   TYCNORM           SET TYC=NORMAL                              
         LW,R0    0,R3              IS THE FPT EXTENDED                         
         CW,R0    XFPTP0                                                        
         BAZ      STARTERR              NO, ERROR                               
*                                       R3 = FPT ADDRESS                        
         BAL,R8   TMGETIDS          GET JOB-TASK ID TO START                    
         B        SIGX1                 ERROR                                   
         LW,R7    XSTISTRT          SET THE START BIT                           
         DO1      #MULTDSP                                                      
         XPSD,0   TMDQ                                                          
         DO       #ROLL                                                         
         DISABLE                                                                
         BAL,R8   MMRILW            SEE IF HE WAS SWAPPED                       
         FIN      #ROLL                                                         
         STS,R7   STIPRIO,R4                                                    
         ENABLE                                                                 
         BAL,R8   TMTPRIO           TRIGGER RDL IF HIGHER PRIORITY              
         B        SIGX2                 AOK                                     
STARTERR LI,R15   TYCTRAP           TASK NAME ERR, NO TYC WORD                  
         B        SIGX                  OR F7, ERROR ADDR. EXIT                 
         TITLE    '** SIGNAL - STOP CAL PROCESSOR **'                           
*                                                                               
*        STOP     CAL1 PROCESSOR                                                
*                                   R3  = FPT ADDRESS                           
STOP     LI,R15   TYCNORM           SET TYC= NORMAL                             
         LB,R5    STILMID,R4            R5=DEFAULT LMI                          
         LW,R0    0,R3              IF P0 NOT SET, STOP CALLER                  
         CW,R0    XFPTP0                                                        
         BAZ      STOPA                                                         
         BAL,R8   TMGETIDS          GET JOB-TASK ID TO STOP                     
         B        SIGX1                 ERROR                                   
STOPA    LH,R0    LMISTAT,R5        IS THE NAMED TASK                           
         CI,R0    LMISEC                PRIMARY, IF YES, ERR                    
         BAZ      STOPB                 EXIT                                    
         BAL,R8   TMSTOP            STOP THE TASK                               
         B        SIGX2             EXIT                                        
STOPB    LI,R15   TYC62             SET TASK NAME ERROR                         
         B        SIGX1                 AND ERROR EXIT                          
         PAGE                                                                   
*******************                                                             
*    TMSTOP       *                                                             
*******************                                                             
TMSTOP   DISABLE                                                                
         LB,R0    STISTAT,R4        SET THE STOP BIT                            
         AND,R0   XSTINSUS          RESET SUPERWAIT BIT                         
         CI,R0     STISTOP                                                      
         BANZ     TMSTOPA                                                       
         OR,R0    XSTISTOP                                                      
         STB,R0   STISTAT,R4                                                    
         DO       #ROLL                                                         
         LW,R0    0,R3              GET FPT WORD 0                              
         CW,R0    XFPTP0            IS WORD 1 PRESENT                           
         BAZ      STOPA10           NO, CANT BE LONG WAIT                       
         LW,R0    1,R3              GET FPT WORD 1                              
         CI,R0    FPTF0             IS 'LONG-WAIT' SET                          
         BAZ      STOPA10           NO, BRANCH                                  
         LW,R0    STIPRIO,R4                                                    
         CI,R0    STISTRT                                                       
         BANZ     STOPA10           B IF START ALREADY PENDING                  
*                                                                               
         LI,R7    MMTID             SET UP TO TRIGGER MMEXEC                    
         LW,R5    STITCB,R7                                                     
         LW,R10   STCBRDL,R5                                                    
         LH,R5    R10                                                           
         LI,R9    STISTRT                                                       
         LW,R0    STITCB,R4                                                     
         OR,R0    XSTILW            SET LONG WAIT                               
         STW,R0   STITCB,R4                                                     
         STS,R9   STIPRIO,R7        START FOR MMEXEC                            
         MTW,1    ROLL99            MMEXEC RE-ENTRANCE COUNT                    
         MTW,1    TDTRIG            SOFTWARE TRIGGER FLAG                       
         WD,R10   0,R5              TRIGGER MMEXEC DISPATCHER                   
*                                                                               
STOPA10  RES      0                                                             
         LB,R0    STISTAT,R4        RECOVER STISTAT                             
         FIN      #ROLL                                                         
         DO       #SWAP                                                         
         CI,R0    STISLICE          IS THIS A TIME-SLICED TASK                  
         BAZ      TMSTOP01          B IF NO                                     
         LW,R0    STITCB,R4         SET BLOCKED CONDITION                       
         OR,R0    XSTIBLK                                                       
         STW,R0   STITCB,R4                                                     
         PUSH     R8                                                            
         BAL,R8   MMSWAP            CHECK ON SWAP CONDITIONS                    
         NOP                                                                    
         PULL     R8                                                            
         LB,R0    STISTAT,R4        GET STAT FLAGS                              
TMSTOP01 EQU      %                                                             
         FIN      #SWAP                                                         
         ENABLE                                                                 
         CI,R0    STIEXEC           IN EXECUTION?                               
         BAZ      SIGX8                 NO- STOP DONE                           
         PUSH     R8                                                            
         BAL,R8   TMTRIG                                                        
         PULL     R8                                                            
         B        SIGX8                                                         
TMSTOPA  ENABLE                                                                 
         LI,R15   TYC82                                                         
         B        SIGX8                 ERROR EXIT                              
         TITLE    '** SIGNAL - STIMER CAL PROCESSOR **'                         
*                                                                               
*        STIMER CAL1 PROCESSOR                                                  
*                                                                               
         DO       #ECB                                                          
STIMER   LI,R15   FPTTIME           IF THE FPT DOES NOT INCL                    
         BAL,R5   GETFPTNS              A TIME PARM, DO                         
         B        TMSTREQ               A REQUEUE ONLY                          
         LW,R12   R15                   SAVE IN R12                             
         BEZ      TMSTREQ               ZERO, REQUEUE ONLY                      
         BAL,R8   EMBLDECB          BUILD AN ECB TO CONTROL                     
         B        SIGX1                 TIME INTERVAL (ERROR)                   
         LW,R13   1,R3                  R13=PARM WORD                           
TMST1    LI,R1    ECBT              STORE THE ECBTYPE                           
         LI,R0    ECBTTIME                                                      
         STH,R0   *R2,R1                                                        
         CI,R13   FPTF3             WITH WAIT?                                  
         BAZ      SIGNAL2           NO, TEST FOR DP                             
         BAL,R8   SIGCHK                YES, WAIT FOR POST                      
         B        SIGX                  ERROR                                   
         B        SIGX                  EXIT                                    
*                                                                               
TMSTREQ  BIFPRIM  TMST2             PRIMARY, NULL SET TIMER=NOP                 
         LW,R1    XSTICA            SECONDARY, SET 'CHAIN AFTER'                
         STS,R1   STITCB,R4                                                     
         BAL,R8   TMRDLTRG          TRIGGER THE DISPATCHER                      
TMST2    LI,R15   TYCNORM               SET TYC NORMAL                          
         B        SIGX2             EXIT                                        
         PAGE                                                                   
*                                                                               
*        STIMER ABNORMAL SUBR                                                   
*                                                                               
STIMABNM PUSH     R8                SAVE EXIT AND R2-R3                         
         PUSH     2,R2                                                          
         LW,R6    TYCWNORM              SET R6=NORMAL COMPL                     
         BAL,R8   EMPOST                POST THE ECB                            
         NOP                                                                    
         PULL     2,R2                  RESTORE R2-R3                           
         B        SIGXPR8           EXIT TO R8+1 WITH PULL                      
         FIN      #ECB                                                          
         TITLE    '** SIGNAL - GETTIME CAL PROCESSOR **'                        
*                                                                               
*        GETTIME  CAL PROCESSOR                                                 
*                                                                               
GETTIME  LW,R15   K:UTIME           FETCH THE REQUESTED TIME WORD               
         LW,R0    0,R3                  AND STORE IT INTO THE FPT               
         CW,R0    XFPTP0                OPTION BIT IS THE SAME AS               
         BAZ      GETTIM1               P0                                      
         LW,R15   K:TIME                                                        
GETTIM1  STW,R15  1,R3                                                          
         LI,R15   TYCNORM           SET R15=GOOD CAL                            
         B        SIGX                                                          
         OLAYEND                                                                
         END                                                                    
