************************************************************                    
*                                                          *                    
*                                                          *                    
*        K E Y - I N  P A R T  O N E                       *                    
*                                                          *                    
*                                                          *                    
************************************************************                    
         SYSTEM   SIG5P                                                         
         SYSTEM OPTIONS                                                         
         DEF      A:KEY1                                                        
         PCC      0                                                             
         PSYS     0                                                             
OLAYFLAG EQU      'KEY1'                                                        
         DEF      KEY1EXB                                                       
         DEF      KEY1A04                                                       
         REF      JCPSETP,SJI4                                                  
         SYSTEM   CPRMON                                                        
*                                                                               
*                                                                               
*                                   RUNS UNDER RBM CONTROL TASK AS AN           
*                                    OVERLAY, AND PROCESSES ALL KEYINS          
OLAYSIZ  EQU      512                                                           
         TITLE    '** KEY1 - KEY-IN CONTROL SECTION **'                         
KEY1     RES      0                                                             
A:KEY1   EQU      KEY1                                                          
A01      RES      0                                                             
         LW,R0    K:KEYST                                                       
         BNEZ     A03               YES                                         
A02      RES      0                                                             
         LCI      4                                                             
         LM,R7    KEYREAD                                                       
         CAL1,1   R7                READ KEYIN,  WITH PROMPT, NO WAIT           
         LW,R1    WTKEY                                                         
         STS,R1   K:JCP1            SET WAITING FOR KEYIN FLAG                  
         LW,R1    KEYIN                                                         
         STS,R1   K:CTST            SET KEYIN TASK ACTIVE                       
         B        KEY1EXIT          EXIT TO CONTROL TASK                        
*                                                                               
*                                                                               
A03      EQU      %                                                             
         LI,R1    X'20'             KEYIN SCAN PAREN FIELD FLAG                 
         OR,R1    KEYIN             KEYIN REQUESTED FLAG                        
         LI,R0    0                                                             
         STS,R0   K:CTST            CLEAR KEYIN ACTIVE BIT                      
         STW,R0   K:KEYST           CLEAR POST STATUS CELL                      
         LW,R1    WTKEY                                                         
         STS,R0   K:JCP1            CLEAR WAITING FOR KEYIN FLAG                
         LI,R7    -KEYBYTES         SET INPUT SCAN INDEX                        
*                                                                               
         LB,R0    *K:KEYIN,R7       GET FIRST CHARACTER                         
         CI,R0    '!'               BANG                                        
         BNE      %+2               B IF NOT BANG                               
         AI,R7    1                 SKIP BANG                                   
         LW,R0    K:KEYIN                                                       
         AND,R0   M17               KEYIN BUFFER END+1                          
         SLS,R0   2                 FORM LAST BYTE +1                           
*        BIT 8 RESET TO TELL SCAN:  NOT IN PAREN FIELD                          
         STB,R7   R0                NEXT CHARACTER TO SCAN                      
         LW,R7    R0                GET R7 AS PREPARED FOR SCAN                 
         LI,R11   1                 SCAN EBCDIC                                 
         BAL,R14  SCAN              GET KEYWORD                                 
         CI,R6    0                                                             
         BL       A04               B IF SCAN ERROR                             
         CI,R10   0                                                             
         BLE      KEY1EXIT          EXIT IF NULL KEYWORD                        
*                                                                               
A03F     EQU      %         START TESTING WHAT WAS TYPED IN                     
        DO       #SYMB                                     ############         
         LB,R0    R8                IS 1ST CHARACTER AN 'S'?          #         
         CI,R0    C'S'              AS IN 'SYMBIONTS' ?               #         
         BNE      %+2                 NO, SAVE R0 AS A SWITCH         #         
         SLD,R8   8                 YES, SHIFT IT OFF LEFT END        #         
*                                                                     #         
A03F5    EQU      %         ENTRY TO RETRY YYNDD WITH LEADING S       #         
        FIN      #SYMB                                     ############         
         SLD,R8   -24               RIGHT JUSTIFY 5 CHARACTERS                  
         AW,R8    A92               PREFIX WITH 'N/L,BANG,BANG'                 
         LH,R1    DCT1              GET NUMBER OF DEVICE NAMES TO TEST          
*                                                                               
A03G     EQU      %         LOOK UP NAME AS A DEVICE NAME                       
         CD,R8    DCT16,R1          IS IT A LEGAL DEVICE NAME ?                 
         BE       A10                 YES, TEST FOR WHOM                        
         BDR,R1   A03G              NO, TEST MORE                               
*                                                                               
*                           NOT A DEVICE NAME; RE-FORM KEY-WORD                 
         SLD,R8   24                REMOVE PREFIX                               
        DO       #SYMB                                     ############         
         CI,R0    C'S'              WAS AN 'S' REMOVED?               #         
         BNE      A03H                NO                              #         
         SLD,R8   -8                  YES, PUT IT BACK                #         
         STB,R0   R8                                                  #         
         LI,R0    0                 CLEAR R0 OF ITS 'S'               #         
         B        A03F5             RETRY SEARCH WITH LEADING 'S'     #         
        FIN      #SYMB                                     ############         
A10      EQU      %                 LEGAL DEVICE NAME FOUND                     
         DO       #SYMB                                                         
         CI,R0    C'S'              WAS 'S' REMOVED?                            
         BNE      A10A              NO, DEVICE ERR RECOVERY                     
*                                                                               
         LI,R2    A99S-A90          SET SYMBIONT PROCESSOR                      
         B        A06               AND TEST IF ALLOWED YET                     
A10A     EQU      %                 DO DEVICE ERR RECOVERY                      
         FIN      #SYMB                                                         
         B        Y00               YYNDD KEY-IN                                
         PAGE                                                                   
*                                                                               
*                                                                               
*                                                                               
A03H     EQU      %         NOT A 'YYNDD'; TRY KEY-WORD COMMAND                 
         LI,R9    X'FFF00'          SET MASK X'FFFFFF00'                        
         LW,R2    A90               SET NUMBER OF KEY-WORDS TO SCAN             
*                                                                               
A03J     EQU      %                                                             
         CS,R8    A90,R2            SEARCH FOR THE KEY-WORD                     
         BE       A06               FOUND                                       
         BDR,R2   A03J                NOT YET; TRY ANOTHER                      
*                                                                               
         B        A04               ERROR                                       
*                                                                               
KEY1A04  EQU      %                                                             
A04      EQU      %                                                             
         LCI      3                 SET FOR 3 WORD FPT                          
         LM,R4    TYPE2             FPR IN REGS                                 
         CAL1,2   R4                ERROR ENTRY TYPE 'KEY ERR'                  
         B        A02                                                           
*                                                                               
*                                                                               
A06      EQU      %         KEY-WORD FOUND                                      
*        IF SYSTEM IS IN INITIALIZATION, DT KEYIN REQUIRED                      
         LW,R0    K:JCP1                                                        
         CI,R0    X'10'                                                         
         BAZ      A06A              B IF NOT IN INITIALIZATION                  
         CI,R2    DTTEXT-A90                                                    
         BNE      A04               B IF NOT DT KEYIN (ERROR)                   
*                                                                               
         CI,R6    2                                                             
         BE       A04               PARAMETERS REQUIRED FOR INITIALIZING        
*                                                                               
*        ENTER CORRECT OVERLAY                                                  
*                                                                               
A06A     RES      0                                                             
         DO       #550                                                          
         CI,R2    A90SS-A90                                                     
         BGE      P300SS            B IF SW                                     
         FIN      #550                                                          
         CI,R2    A90J-A90                                                      
         BGE      P309              B IF KEY9                                   
         CI,R2    A90I-A90                                                      
         BGE      P308              B IF KEY8                                   
         CI,R2    A90H-A90                                                      
         BGE      P307              B IF KEY7                                   
         CI,R2    A90G-A90                                                      
         BGE      P306              B IF KEY6                                   
         CI,R2    A90F-A90                                                      
         BGE      P305              B IF KEY5                                   
         CI,R2    A90E-A90                                                      
         BGE      P304              B IF KEY4                                   
         CI,R2    A90D-A90                                                      
         BGE      P303              B IF KEY3                                   
         CI,R2    A90C-A90                                                      
         BGE      P302              B IF KEY2                                   
         LH,R9    A91,R2            GET ADDRESS OF PROCESSING ROUTINE           
         XW,R8    R9                SET TO USE R8 TO BRANCH THERE,              
         B        *R8               AND SAVE KEY-WORD IN R9                     
*                                                                               
*        ON EXIT:                                                               
*                 R1 :  DCT INDEX IF YYNDD WAS ENTERED                          
*                 R2 :  KEY-WORD INDEX                                          
*                 R6 :  RETURN CODE FROM FIRST SCAN                             
*                 R7 :  SET UP FOR SCAN ROUTINE                                 
*                 R8 :  ADDRESS OF PROCESSING ROUTINE                           
*                 R9 :  KEY-WORD, CHARACTERS 1 - 4                              
*                                                                               
P302     AI,R2    A90-A90C          BIAS R2 TO 0 FOR TABLE LOOKUP               
         LI,R0    KEY2                                                          
         B        KEY1KEYN                                                      
*                                                                               
P303     AI,R2    A90-A90D                                                      
         LI,R0    KEY3                                                          
         B        KEY1KEYN                                                      
*                                                                               
P304     AI,R2    A90-A90E                                                      
         LI,R0    KEY4                                                          
         B        KEY1KEYN                                                      
*                                                                               
P305     AI,R2    A90-A90F                                                      
         LI,R0    KEY5                                                          
         B        KEY1KEYN                                                      
*                                                                               
P306     AI,R2    A90-A90G                                                      
         LI,R0    KEY6                                                          
         B        KEY1KEYN                                                      
*                                                                               
P307     AI,R2    A90-A90H                                                      
         LI,R0    KEY7                                                          
         B        KEY1KEYN                                                      
*                                                                               
P308     AI,R2    A90-A90I                                                      
         LI,R0    KEY8                                                          
         B        KEY1KEYN                                                      
*                                                                               
P309     AI,R2    A90-A90J                                                      
         LI,R0    KEY9                                                          
         B        KEY1KEYN                                                      
*                                                                               
KEY1EXIT RES      0                                                             
         LI,R0    CT1               RETURN TO CONTROL TASK                      
KEY1KEYN RES      0                                                             
KEY1EXB  B        *R0                                                           
         PAGE                                                                   
*                                                                               
*        KEY1 OVERLAY KEYWORDS                                                  
*                                                                               
A90      DATA     A91-A90-1         KEY-IN KEY-WORDS:  NUMBER OF THEM           
         TEXT     'C   '                                                        
         TEXT     'W   '                                                        
         TEXT     'X   '                                                        
         TEXT     'TY  '                                                        
         TEXT     'CC  '                                                        
         TEXT     'SY  '                                                        
         TEXT     'RSY '                                                        
         TEXT     'FG  '                                                        
         TEXT     'COC'                                                         
         TEXT     'FGC'                                                         
         TEXT     'SYC'                                                         
         TEXT     'FSC'                                                         
         TEXT     'SFC'                                                         
         TEXT     'TYC'                                                         
         TEXT     'STC '                                                        
         DO1      #CRASH                                                        
         TEXT     'CRS '            CRASH SAVE                                  
         DO1      #ERRORLOG                                                     
         TEXT     'ESU '            ERROR SUMMARY                               
*                                                                               
*        KEY2 OVERLAY KEYWORDS                                                  
*                                                                               
A90C     RES      0                                                             
DTTEXT   TEXT     'DT'                                                          
         TEXT     'STD'                                                         
         TEXT     'CIN '                                                        
         TEXT     'DM'                                                          
         TEXT     'DB'                                                          
         TEXT     'DF'                                                          
         TEXT     'DED '                                                        
         TEXT     'UND '                                                        
         PAGE                                                                   
*                                                                               
*        KEY3 OVERLAY KEYWORDS                                                  
*                                                                               
A90D     EQU      %                                                             
         TEXT     'INT '            INTLB                                       
         DO1      #ECB                                                          
         TEXT     'INI '            INIT KEYIN                                  
         TEXT     'EXT'             EXTRM KEYIN                                 
         TEXT     'STR '            START                                       
         TEXT     'STP '            ST(O)P                                      
         DO1      #DEBUG                                                        
         TEXT     'DEB '            DEBUG                                       
         TEXT     'STA'             STATUS KEYIN                                
         DO1      #ECB                                                          
         TEXT     'SJO'             SJOB KEYIN                                  
         DO1      #ECB                                                          
         TEXT     'KJO'             KJOB KEYIN                                  
         TEXT     'CRD'             CRASH DUMP                                  
         DO1      #CRASH                                                        
         TEXT     'CKD'             CRASH SAVE                                  
         TEXT     'SCH '            SCHED KEYIN                                 
*                                                                               
*        KEY4 OVERLAY KEYWORDS                                                  
*                                                                               
A90E     EQU      %                                                             
         DO1      #ECB                                                          
         TEXT     'SIG'             SIGNAL KEY IN                               
         TEXT     'DIS'                                                         
         TEXT     'SET'             SETNAME KEY IN                              
         DO1      #TJE                                                          
         TEXT     'BRE'             BREAK KEYIN                                 
         TEXT     'BME'             BACKGROUND MEMORY KEYIN                     
         TEXT     'FME'             FMEM KEYIN                                  
         DO1      #TJE                                                          
         TEXT     'CON'             CONTROL KEYIN                               
         DO       #MAP                                                          
         TEXT     'PAU '                                                        
         TEXT     'ATT '                                                        
         FIN                        #MAP                                        
         PAGE                                                                   
*                                                                               
*        KEY5 OVERLAY KEYWORDS                                                  
*                                                                               
A90F     EQU      %                                                             
       DO       #MEDIA                                                          
         TEXT     'MED '            MEDIA                                       
       FIN      #MEDIA                                                          
         DO       #TJE                                                          
         TEXT     'ON  '            ON KEYIN                                    
         TEXT     'OFF '            OFF KEYIN                                   
         TEXT     'SEN '            SEND KEYIN                                  
         TEXT     'LOG '            LOGON KEYIN                                 
         FIN      #TJE                                                          
*                                                                               
*        KEY6 OVERLAY KEYWORDS                                                  
*                                                                               
A90G     EQU      %                 PART 6                                      
         TEXT     'SNA '            SNAP KEY-IN                                 
         DO       #ERRORLOG                                                     
         TEXT     'ESE '            ESEND = ERRSEND KEY-IN                      
         TEXT     'ERR '            ERRSEND KEY-IN                              
         TEXT     'ELOG'            ELOG KEY-IN                                 
         FIN      #ERRORLOG                                                     
         TEXT     'ALA '            ALARM KEY-IN                                
         TEXT     'REB '            REBOOT KEY-IN                               
         DO1      #TSLICE                                                       
         TEXT     'Q   '                                                        
         DO       #550                                                          
         TEXT     'Q30 '                                                        
         TEXT     'Q31 '                                                        
         FIN      #550                                                          
*                                                                               
         PAGE                                                                   
*                                                                               
*        KEY7 OVERLAY KEYWORDS                                                  
*                                                                               
A90H     EQU      %                 PART 7;                                     
        DO       #SYMB                                     ############         
A99S     TEXT     '    '            'SYYNDD' SYMBIONTS; NO KEY-WORD   #         
         TEXT     'BATC'            BATCH                             #         
         TEXT     'DELE'            DELETE AN ID                      #         
         TEXT     'DO  '            SE 'DO' FLAG                      #         
         TEXT     'PRIO'            SET PRIORITY FOR AN ID            #         
         TEXT     'RDO '            RESET 'DO' FLAG                   #         
         TEXT     'SS  '            START SYMBIONT INPUT              #         
*        TEXT     'JOB '            FUTURE JOB KEY-IN                           
        FIN      #SYMB                                     ############         
*                                                                               
*        KEY8 OVERLAY KEYWORDS                                                  
*                                                                               
A90I     RES      0                                                             
         DO       #PRIV                                                         
         TEXT     'MOU '            MOUNT                                       
         TEXT     'UNM '            UNMOUNT                                     
         TEXT     'DPS '            DPS - - DISK PACK STATUS                    
         TEXT     'DPI '            DPI - - DISK PACKS IDLE                     
         FIN                        #PRIV                                       
*                                                                               
*        KEY9 OVERLAY KEYWORDS                                                  
*                                                                               
A90J     RES      0                                                             
         TEXT     'GAP '            GAP                                         
         TEXT     'PRE '            PREFMODE                                    
         PAGE                                                                   
*        SENCE SWITCH KEYIN KEYWORDS                                            
*                                                                               
A90SS    RES      0                                                             
         DO       #550                                                          
         TEXT     'SS0 '                                                        
         TEXT     'SS1 '                                                        
         TEXT     'SS2 '                                                        
         TEXT     'SS3 '                                                        
         TEXT     'SS4 '                                                        
         TEXT     'SS5 '                                                        
         TEXT     'SS6 '                                                        
         TEXT     'SS7 '                                                        
         TEXT     'SS8 '                                                        
         TEXT     'SS9 '                                                        
         TEXT     'SSA '                                                        
         TEXT     'SSB '                                                        
         TEXT     'SSC '                                                        
         TEXT     'SSD '                                                        
         TEXT     'SSE '                                                        
         TEXT     'SSF '                                                        
         FIN      #550                                                          
         PAGE                                                                   
*                                                                               
*        KEY1 BRANCH TABLE                                                      
*                                                                               
A91      RES      0                                                             
         DATA,2   0                                                             
         DATA,2   B00               C                                           
         DATA,2   C01               W                                           
         DATA,2   D01               X                                           
         DATA,2   E01               TY                                          
         DATA,2   F01               CC                                          
         DATA,2   J01               SY                                          
         DATA,2   J30               RSY                                         
         DATA,2   L01               FG                                          
         DATA,2   B01               COC                                         
         DATA,2   L10               FGC                                         
         DATA,2   L20               SYC                                         
         DATA,2   L30               FSC                                         
         DATA,2   L30               SFC                                         
         DATA,2   E10               TYC                                         
         DATA,2   Q01                                                           
         DO1      #CRASH                                                        
         DATA,2   X01               CRS                                         
         DO1      #ERRORLOG                                                     
         DATA,2   Z01               ESUM                                        
         PAGE                                                                   
*                                                                               
* CONSTANTS                                                                     
*                                                                               
         BOUND    4                                                             
A92      DATA     X'155A5A00'       NEW LINE, EXCLAM, EXCLAM  IN BCD            
ABOR     DATA     X'09000004'       BIT MASK FOR K:CTST                         
KEYIN    EQU      Y04               0400 0000                                   
CTDRUN   EQU      Y02                                                           
CTDABT   EQU      X'10000'                                                      
IDLE     EQU      Y01               0100 0000                                   
BKLD     EQU      Y008              0080 0000                                   
JPLD     EQU      Y004              0040 0000                                   
WTKEY    EQU      Y08               0800 0000                                   
KL001    EQU      Y001              0010 0000                                   
KL01     EQU      Y01               0100 0000                                   
KL08     EQU      Y08               08000000                                    
KLFF     EQU      YFF               FF00 0000                                   
KBLANKS  EQU      BLANKS            4040 4040                                   
KL20     EQU      Y2                2000 0000                                   
KL1FF    DATA     X'1FF00000'                                                   
BKGNAME  DATA     'BKG '            BACKGROUND TASK NAME WORD ONE               
KEYREAD  GEN,8,1,23  X'10',1,K:KEYDCB   FPT TO READ A KEYIN                     
         DATA     P7+P9+F7+F8                                                   
         DATA     '-'               PROMPT                                      
         GEN,2,30 3,K:KEYST         CLEANUP OPERATION: POST WORD                
TYPE1    GEN,8,24 2,0               FPT TO TYPE 'BANG BANG KEY-IN'              
         GEN,1,31 1,0                                                           
         DATA     K:MSG1                                                        
TYPE2    GEN,8,24 2,0               FPT TO TYPE 'BANG BANG KEY ERR'             
         GEN,1,31 1,0                                                           
         DATA     K:MSG2                                                        
         TITLE    '** KEY1 - C,W,X,TY,CC,D,T,SY,FG KEY-INS **'                  
*                                                                               
*                                   C KEYIN                                     
B00      RES      0                 C KEYIN                                     
         DO       #SYMB                                                         
         CI,R6    2                                                             
         BNE      B10               B IF THERE IS A PARAMETER                   
         FIN                        #SYMB                                       
B01      LI,R1    -(KEYBYTES/4)                                                 
         LW,R14   *K:KEYIN,R1       GET FIRST WORD OF KEYIN                     
         STW,R14  K:KEYIN+2         SAVE FOR BKG SUBSYSTEMS                     
         LI,R3    CTESTS                                                        
         BAL,R8   CWXTESTS          SEE IF BKG STATE PERMITS 'C'                
         BAL,R8   BKGSEQ                                                        
         B        B05               B IF ALREADY RUNNING                        
         B        KEY1EXIT          RETURN HERE IF JUST STARTED                 
*                                                                               
B05      RES      0                 BKG ALREADY ACTIVE                          
         LW,R14   K:CTST                                                        
         CI,R14   1                                                             
         BANZ     B07               B IF BKG DUMP RUNNING                       
         CI,R14   X'10000'                                                      
         BAZ      B07               B IF NOT ABORT ATTENDED WAIT                
         LW,R1    Y08               ABEX BIT                                    
         STS,R1   K:CTST            SET IT                                      
         B        KEY1EXIT                                                      
B07      RES      0                                                             
         DO       #MAP                                                          
         CAL1,7   BKGSTOP                                                       
         CAL1,7   BKGSTART                                                      
         FIN      #MAP                                                          
         LI,R0    0                                                             
         LW,R1    IDLE                                                          
         STS,R0   K:CTST            RESET IDLE BIT                              
         B        KEY1EXIT                                                      
*                                                                               
         DO       #SYMB                                                         
B10      RES      0                 C O(PERATOR) AND C S(YMBIONT)               
         LI,R11   1                                                             
         BAL,R14  SCAN              SCAN PARAMETER                              
         CI,R6    2                                                             
         BNE      A04               B IF NOT END OF KEYIN                       
         CI,R10   1                                                             
         BNE      A04               B IF NOT A 1-CHAR PARAMETER                 
         LB,R8    R8                GET THE CHAR                                
         LI,R15   4                 FLAG FOR SYMBIONT C                         
         LI,R14   0                 ASSUME RESET                                
         CI,R8    'O'                                                           
         BE       B15               B IF OPERATOR CONTROL REQUESTED             
         CI,R8    'S'                                                           
         BNE      A04               B IF NOT SYMBIONT CONTROL REQUEST           
         LW,R14   R15               PREPARE TO SET FLAG                         
B15      RES      0                                                             
         STS,R14  SYMB              SET OR RESET SYMBIONT CONTROL FLAG          
         B        KEY1EXIT          EXIT                                        
         FIN                        #SYMB                                       
         PAGE                                                                   
*                                                                               
* W KEYIN                                                                       
*        W KEYIN                                                                
C01      LI,R3    WTESTS                                                        
         BAL,R8   CWXTESTS          SEE IF BKG STATE PERMITS 'W'                
         LW,R1    IDLE                                                          
         DO1      #MAP                                                          
         CAL1,7   BKGSTOP                                                       
         STS,R1   K:CTST            SET IDLE BIT                                
         B        KEY1EXIT                                                      
*                                                                               
* X KEY-IN                                                                      
*                                                                               
*                                                                               
D01      RES      0                 X KEYIN                                     
         LW,R1    K:CTST                                                        
         CW,R1    CTDRUN                                                        
         BAZ      D01B              B IF CT DUMP NOT RUNNING                    
         LI,R1    CTDABT            ABORT CT DUMP                               
         STS,R1   K:PMD1                                                        
         B        KEY1EXIT          EXIT-X TERMINATED PMD                       
D01B     LI,R3    XTESTS                                                        
         BAL,R8   CWXTESTS          SEE IF BKG STATE PERMITS 'X'                
         LI,R6    BKGJID            BACKGROUND JOB ID                           
         LW,R10   BKGNAME           BACKGROUND TASK NAME                        
         LW,R11   BLANKS            REST OF BKG TASK NAME                       
         BAL,R8   TMFINDT                                                       
         B        D02               CANT FIND TASK IN TABLES                    
         LW,R0    STITCB,R4         BKG STCB ADDRESS                            
         LW,R0    *R0               SAVED PSD WORD 1                            
         AND,R0   X1FFFF                                                        
         STW,R0   K:ABTLOC          SAVE ABORT ADDRESS                          
D02      RES      0                                                             
         LW,R1    ABOR              SET BIT TO RUN A BEX   /SIG7-1948/*C5732 C01
         LW,R0    KL08              AND CLEAR IDLE BIT     /SIG7-1948/*C5732 C01
         STS,R0   K:CTST                                   /SIG7-1948/*C5732 C01
         DO1      #MAP                                                          
         CAL1,7   BKGSTOP                                                       
         B        KEY1EXIT          B WITH BITS SET                             
*                                                                               
* CWXTESTS                                                                      
*                                                                               
*                                                                               
CWXTESTS RES      0                                                             
         LD,R0    JCP1,R3                                                       
         CS,R0    K:JCP1                                                        
         BNE      A04               KEY ERR                                     
         LD,R0    CTST,R3                                                       
         CS,R0    K:CTST                                                        
         BNE      A04               KEY ERR                                     
         B        *R8               KEYIN PERMITTED.  RETURN.                   
         PAGE                                                                   
*                                                                               
*        BKG STATE TESTS FOR C/W/X KEYIN PERMISSION                             
*        FORMAT IS     DATA     CONDITION,COMPARISON MASK                       
*        ONE TABLE FOR K:JCP1, ONE FOR K:CTST                                   
*        ONE ENTRY PER TABLE FOR EACH KEYIN                                     
         BOUND    8                                                             
JCP1     RES      0                                                             
CTESTS   EQU      DA(%)-DA(JCP1)                                                
         DATA     0,X'30000000'                                                 
WTESTS   EQU      DA(%)-DA(JCP1)                                                
         DATA     X'40000000',X'70000000'                                       
XTESTS   EQU      DA(%)-DA(JCP1)                                                
         DATA     X'40000000',X'70000000'                                       
CTST     DATA     0,X'08800000'                                                 
         DATA     0,X'09810000'                                                 
         DATA     0,X'08800000'                                                 
*                                                                               
         PAGE                                                                   
*                                                                               
* TY KEY-IN                                                                     
*                                                                               
E01      LI,R3    0                 SET FLAG THAT NOT 'TYC'                     
E02      LW,R0    K:JCP1                                                        
         CI,R0    4                 IS TY KEYIN ALREADY IN EFFECT               
         BANZ     E05               YES                                         
         AI,R0    4                                                             
         STW,R0   K:JCP1            NO, SET BIT THAT TY KEYIN MADE              
         LI,R1    C                 GET C OP LABEL INDEX                        
         LI,R2    1                                                             
         LB,R0    OPLBS3,R1         SAVE CURRENT ASSIGN OF C                    
         STB,R0   K:JCP1,R2                                                     
         LI,R2    OC                                                            
         LB,R0    OPLBS2,R2         GET PERM. ASSIGN. OF OC                     
         STB,R0   OPLBS3,R1         SET C TO OC                                 
E05      CI,R3    0                 WAS IT 'TYC'                                
         BE       KEY1EXIT          NO,EXIT                                     
         B        B01               YES, GO TO PROCESS 'C'                      
         B        KEY1EXIT          EXIT                                        
*                                                                               
E10      LI,R3    1                 PROCESS 'TYC' KEYIN                         
         B        E02                                                           
*                                                                               
*                                                                               
* CC KEY-IN                                                                     
*                                                                               
*                                   CC KEYIN                                    
F01      LW,R0    K:JCP1                                                        
         CI,R0    4                 WAS TY KEYIN PREVIOUSLY DONE                
         BAZ      KEY1EXIT          NO,EXIT                                     
         EOR,R0   X4                YES                                         
         STW,R0   K:JCP1            RESET TY BIT                                
         LI,R1    C                 R1= INDEX FOR C OP LABEL                    
         LI,R2    1                                                             
         LB,R0    K:JCP1,R2                                                     
         STB,R0   OPLBS3,R1         RESET C TO PREVIOUS ASSIGNMENT              
         B        KEY1EXIT                                                      
*                                                                               
         PAGE                                                                   
*                                                                               
* SY KEY-IN                                                                     
*                                                                               
J01      RES      0                                                             
         LI,R1    JCBSY             SET FLAG                                    
*                                                                               
J10      RES      0                 SY/RSY                                      
         CI,R6    2                                                             
         BE       J20               B IF NO JOB NAME                            
         LI,R11   1                                                             
         BAL,R14  SCAN              GET JOB ID                                  
         LW,R2    R6                 SAVE SCAN STATUS                           
         LW,R3    R7                 SAVE SCAN STATE                            
         LD,R10   R8                                                            
         BAL,R8   TMFINDJ           FIND JOB ID                                 
         B        A04               NOT VALID JOB NAME                          
         CI,R6    2                                                             
         BE       J20               B IF BKG JOB                                
*                                                                               
J15      RES      0                 ALL JOBS, SY/RSY                            
*                                   R7 = JCB ADDR                               
*                                   R1 = JCBSY (SY) OR 0 (RSY)                  
         LW,R0    R1                                                            
         LI,R1    JCBSY                                                         
         STS,R0   0,R7              SET/RESET SY FLAG                           
         CI,R2    2                  WAS IT END OF CARD                         
         BE       KEY1EXIT           YES, EXIT                                  
         XW,R2    R6                 NO, GET JOB INDEX IN R2                    
         LW,R7    R3                 RESTORE SCAN STATE                         
         LI,R3    KEY1EXIT           AND EXIT ADDRESS IN R3                     
         B        L20A                                                          
*****                                                                           
J20      RES      0                 SPECIAL FOR BKG                             
         STW,R1   K:SY              SET/RESET OLD SY FLAG                       
         LI,R7    JCBBKG            GET JCB ADDRESS                             
         LI,R6    2                  BKG JOB INDEX                              
         B        J15                                                           
*****                                                                           
*                                                                               
*        RSY KEYIN                                                              
*                                                                               
J30      RES      0                                                             
         LI,R1    0                 RESET FLAG                                  
         B        J10                                                           
*****                                                                           
*                                                                               
*            STC KEYIN                                                          
*                                                                               
*                                                                               
Q01      RES      0                                                             
         CI,R6    1                                                             
         BG       KEY1EXIT           END OF CARD  IGNORE                        
         BL       A04                NOT END OF FIELD  ERROR                    
         LI,R11   2                  SET FOR HEX                                
         BAL,R14  SCAN                                                          
         CI,R6    2                                                             
         BNE      A04                ERROR IF NOT END OF CARD                   
         STW,R8   JCPSETP            STORE PARAMETER                            
         B        KEY1EXIT                                                      
         PAGE                                                                   
*                                                                               
* FG KEY-IN                                                                     
*                                                                               
*                                                                               
*                                   FG KEYIN                                    
L01      LI,R1    8                                                             
         STS,R1   K:JCP1            SET BIT FOR FG KEYIN                        
         B        KEY1EXIT          EXIT                                        
*                                   FGC KEYIN                                   
L10      LI,R1    8                                                             
         STS,R1   K:JCP1            SET FG PART                                 
         B        B01                                                           
*                                   SYC KEYIN                                   
L20      LI,R0    1                                                             
         STW,R0   K:SY              SET SY PART                                 
         LI,R1    JCBSY                                                         
         STS,R1   JCBBKG            SET NEW SY FLAG                             
         LI,R3    B01                SET RETURN TO PROCESS C COMMAND            
         LI,R2    2                                                             
L20A     RES      0                                                             
         LI,R8    0                  DEFAULT SETTING                            
         CI,R6    2                  IS END OF CARD?                            
         BE       L21                YES  BRANCH                                
         LI,R11   2                  SET FOR HEX CONVERSION                     
         BAL,R14  SCAN                                                          
         CI,R6    2                                                             
         BNE      A04                B IF NOT END OF KEYIN                      
         CI,R10   4                                                             
         BG       A04                ERROR IF MORE THAN 4 CHAR                  
L21      RES      0                                                             
         STH,R8   SJI4,R2                                                       
         B        0,R3                                                          
*                                   FSC OR SFC KEYINS                           
L30      LI,R1    8                                                             
         STS,R1   K:JCP1            SET FG PART                                 
         B        L20                                                           
*                                                                               
*                                                                               
*                 SENSE SWITCH KEY-INS DONE HERE                                
*                                                                               
         DO       #550                                                          
P300SS   RES      0                 SENSE SWITCH KEYINS PROCESSED HERE          
         AI,R2    A90-A90SS                                                     
         SLS,R2   28                                                            
         WD,R2    0                 SET SSW ON 550                              
         B        KEY1EXIT                                                      
         FIN      #550                                                          
         TITLE    '** KEY1 - CRS - ESUM KEY-INS **'                             
         DO       #CRASH                                                        
X01      EQU      %                                                             
         LI,R0    CRS                                                           
         LI,R15   CT1               **TEMP TIL CLEANUPED**                      
         B        KEY1KEYN                                                      
         FIN      #CRASH                                                        
         SPACE    3                                                             
         DO       #ERRORLOG                                                     
         MTW,0    DCT#IO                                                        
         BEZ      A04               NO ERROR LOGGING                            
Z01      EQU      %                                                             
         LI,R0    ESU                                                           
         LI,R15   CT1               **TEMP TIL CLEANUPED**                      
         B        KEY1KEYN                                                      
         FIN      #ERRORLOG                                                     
         TITLE    '** KEY1 - YYNDD KEY-IN **'                                   
*                                                                               
*                                   ON ENTRY R1=DCT INDEX OF DEVICE TO          
*                                      RECOVER                                  
Y00      RES      0                                                             
         CI,R6    2                                                             
         BE       A04               ERROR IF END OF CARD                        
         LI,R11   1                 SET FOR BCD                                 
         BAL,R14  SCAN              GO TO CHAR.                                 
         DO       #PS                                                           
         LW,R0    R8                                                            
         SLS,R0   -16                                                           
         CI,R0    'MU'                                                          
         BE       Y80                                                           
         CI,R0    'MA'                                                          
         BE       Y81                                                           
         CI,R0    'AA'                                                          
         BE       Y83                                                           
         CI,R0    'A '                                                          
         BE       Y83                                                           
         FIN       #PS                                                          
         CI,R10   1                                                             
         BNE      A04               ERROR IF NOT 1 CHAR.                        
         LB,R0    R8                GET CHAR. INPUT                             
         CI,R0    'C'                                                           
         BE       Y30               CONTINUE                                    
         CI,R0    'R'                                                           
         BE       Y20               RETRY                                       
         CI,R0    'E'                                                           
         BE       Y05A                                                          
*                                                                               
         CI,R0    'X'               IS IT AN X                                  
         BNE      A04               NO, ERROR                                   
*                                                                               
* YYNDD X KEY-IN                                                                
*                                                                               
         DISABLE                                                                
         LB,R3    DCT6,R1           GET IOQ INDEX                               
         BEZ      Y11               EXIT IF NON EXISTENT Q ENTRY                
         CB,R1    IOQ7,R3                                                       
         BNE      Y11               B IF NOT FOR THIS DEVICE NOW                
         LB,R2    IOQ13,R3          GET RIGHT PRIORITY                          
         BAL,R5   RIPOFF            AND RIP OFF THE Q ENTRY                     
         B        Y12               AND EXIT                                    
*                                                                               
* YYNDD E KEY-IN                                                                
*                                                                               
Y05A     RES      0                                                             
         BAL,R15  Y70               SET UP                                      
         LI,R12   IOABORT           TYC FOR ABORT                               
         MTH,1    DCT10,R1          BUMP FOR RE:ENT PROTECTION                  
Y10      BAL,R5   *K:REQCOM         FINISH CLEANUP                              
Y11      BAL,R2   *K:SERDEV                                                     
Y12      RES      0                 EXIT KEY PROCESSING                         
         LI,R0    0                 GET 0                  1SIG7-1553/*C5732    
         LW,R1    KL001             GET MASK               1SIG7-1553/*C5732    
         STS,R0   K:CTST            RESET KEYIN REQUIRED   1SIG7-1553/*C5732    
         B        KEY1EXIT          EXIT                                        
*                                                                               
* YYNDD R KEY-IN                                                                
*                                                                               
Y20      BAL,R15  Y70               SET UP                                      
Y21      ENABLE                                                                 
         B        Y11               RESTART IO                                  
         PAGE                                                                   
*                                                                               
* YYNDD C KEY-IN                                                                
*                                                                               
Y30      BAL,R15  Y70               SET UP                                      
         CI,R12   X'800'            IS CONTINUE LEGAL                           
         BANZ     Y21               NO, MAKE RETRY                              
         LI,R12   1                  SET FOR NORMAL COMPLETION                  
         LI,R11   0                 SET REMAINING BYTE CNT=0                    
         B        Y10               YES, B TO DEQUENE & CLEANUP                 
*                                                                               
Y70      OR,R1    KLFF              SET BGRND PRIORITY                          
         LB,R8    DCT5,R1           SWITCHES                                    
         CI,R8    8                 IS KEY-IN PENDING                           
         BAZ      A04               NO,ERROR                                    
         AI,R8    -8                YES, RESET KEY-IN PENDING                   
         DISABLE                                                                
         STB,R8   DCT5,R1           RESTORE SWITCHES                            
         LB,R3    DCT6,R1           IO QUEUE INDEX                              
         LB,R8    IOQ3,R3           IO QUEUE SWITCHES                           
         AI,R8    -X'80'            RESET REQUEST BUSY                          
         STB,R8   IOQ3,R3           STORE BACK                                  
         LB,R4    DCT2,R1           CIT INDEX                                   
         LD,R10   DCT13,R1          COMPLETION INFO                             
         LH,R12   R11               TYC TO R12                                  
         B        *R15              RETURN                                      
* YYNDD,MU                                                                      
* YYMDD,MA                                                                      
* YYNDD,AA                                                                      
* YYMDD,A                                                                       
*                                                                               
         DO       #PS                                                           
Y80      LI,R5    X'C'              MANUAL UNAVAILABLE                          
         B        Y85                                                           
Y81      LI,R5    X'4'              MANUAL AVAILABLE                            
         B        Y85                                                           
Y83      LI,R5    0                 AUTOMATIC (AVAILABLE)                       
Y85      RES      0                                                             
         LB,R3    DCTSHARE                                                      
         BEZ      A04                                                           
         LB,R3    DCTSHARE,R1                                                   
         BEZ      A04                                                           
         AND,R3   XF0               R3 = KEYED IN DEVICE SWITCH ADR             
         LH,R2    DCT1              R2 = LOOP CONTROL                           
         DISABLE                                                                
Y86A     LB,R4    DCTSHARE,R2                                                   
         AND,R4   XF0               R4 = SWITCH ADDRESS THIS DEVICE             
         CW,R3    R4                IS THIS DEVICE ON SAME SWITCH               
         BNE      Y86B              B IF NOT                                    
         LB,R4    DCTSHARE,R2       YES, SET TABLE                              
         AND,R4   F3MASK                                                        
         OR,R4    R5                                                            
         STB,R4   DCTSHARE,R2                                                   
Y86B     BDR,R2   Y86A                                                          
         ENABLE                                                                 
         B        KEY1EXIT                                                      
F3MASK   DATA     X'F3'                                                         
         FIN      #PS                                                           
         OLAYEND                                                                
         END                                                                    
