         TITLE    '** SJOB - SJOB CAL1 PROCESSOR **'                            
         PCC      0                                                             
         SYSTEM SIG9P                                                           
         SYSTEM   OPTIONS                                                       
         DEF      A:SJOB            ENTRY  POINT                                
         DO       #ECB                                                          
         DEF      JCALERR,JCALEXIT  EXIT POINTS                                 
OLAYFLAG EQU      'SJOB'                                                        
         SYSTEM   CPRMON                                                        
**********************************************                                  
*        SJOB CAL                            *                                  
*             CREATES A FOREGROUND JOB.      *                                  
*             SETS UP JOB CONTROLS.          *                                  
*             DOES NOT INITIATE ANY TASK.    *                                  
*             JOB NAME MUST BE SUPPLIED.     *                                  
*          SUBROUTINES USED:                 *                                  
*             TMSETERR                       *                                  
*             TMTYC                          *                                  
*             GETFPTN                        *                                  
*             GETTEMP                        *                                  
*          ERROR RETURNS AS SPECIFIED IN FPT *                                  
*          ON ENTRY, R3=FPT ADDRESS          *                                  
*                    R1=FPT CODE             *                                  
*          EXITS CALEXIT OR CALERR           *                                  
*                                            *                                  
**********************************************                                  
*                                                                               
SJOB     BIFFGD   JMOB1             CHECK LEGITIMACY OF CALLER                  
         LW,R4    K:JCP1             OK IF JCP EXECUTING (BIT 0 SET)            
         BLZ      JMOB1                                                         
         LI,R15   TYC6A             SET TYC YTO ILLEGAL CAL                     
         B        JMOBE                                                         
*                                                                               
*                                   CHECK FOR AVAILABLE SJI ENTRY               
JMOB1    LB,R9    SJI3        SJI3(0)=MAX. NO. JOBS EXCLUDING RBM JOB.          
         AI,R9    2            INCREMENT ADDRESS 1 FOR RBM AND 1 FOR BI         
         LI,R6    SJI1                                                          
         AW,R6    R9          COMPUTE BIR INDEX TO START FROM FRONT OF          
         LCW,R7   R9           TABLE AFTER RBM AND BKG ENTRIES                  
         AI,R7    2                 INDEX TO LAST ENTRY                         
*                                                                               
JMOB2    LW,R5   *R6,R7             LOOK AT SJI ENTRY.                          
         BEZ      JMOB3               FOUND  VACANT ENTRY.                      
         CI,R7    -2                STOP LOOP AT END OF SJI                     
         BGE      JMOB2B                                                        
JMOB2A   BIR,R7   JMOB2                                                         
JMOB2B   EQU      %                                                             
         LI,R15   TYC66             NO VACANT ENTRIES                           
         B        JMOBE               COMPLETION CODE                           
JMOB3    AW,R7    R9                GET JOBID  (SJI INDEX)                      
         DISABLE                    DISABLE WHILE SEE IF THIS ENTRY IS          
         LB,R5    SJI3,R7            ALREADY IN PROCESS OF BEING USED.          
         BEZ      JMOB4              BIT 1 IN  SJI3                             
         ENABLE                     IN USE SO TRY AGAIN                         
         SW,R7    R9                RECREATE BIR INDEX                          
         B        JMOB2A         CONTINUE SEARCH                                
JMOB4    OR,R5    X40            SET LOCK ENTRY BIT                             
         STB,R5   SJI3,R7                                                       
         ENABLE                  GET JOB NAME                                   
*                                                                               
         LI,R15   FPTJNAME       BIT 11 (P11)                                   
         BAL,R5   GETFPTN                                                       
         B        JMOB6          PARAMETER  ABSENT                              
         LW,R4   *R14               GET JOB NAME FIRST WORD                     
         LI,R15   FPTJNAME+1        SECOND HALF JOB NAME (P12)                  
         BAL,R5   GETFPTN                                                       
         LI,R14   BLANKS         ABSENT SO LOAD BLANKS                          
         LW,R5   *R14                                                           
         LB,R6    SJI3                                                          
         AI,R6    1                 NO. JOBS INCLUDING RBM JOB                  
*   SEE IF JOB NAME IS UNIQUE                                                   
JMOB5    LD,R8    SJI2,R6                                                       
         CD,R8    R4                                                            
         BE       JMOB6             JOB NAME NOT UNIQUE                         
         BDR,R6   JMOB5                                                         
         STD,R4   SJI2,R7           UNIQUE SO COMPUTE OPTIMUM TSPACE            
         BAL,R8   GETANAME          FETCH THE ACCOUNT AND USER NAME             
         B        JMOB7A            OUT ON BAD ACCOUNT NAME                     
         PUSH     5,R10             SAVE THE ACCOUNT/NAME FOR LATER             
*                                     ACQUISITION REQUIREMENTS.                 
*    COMPUTE JCB SPACE. JPT AND/OR AET MAY BE LINKED OUT OF JCB.                
*                 R0= FLAG  =0  BOTH JPT AND AET IN JCB FIXED PORTION           
*                           =1  JPT IN JCB, AET LINKED FROM JCB                 
*                           =2  AET IN JCB, JPT LINKED FROM  JCB                
*                           =3  BOTH AET AND JCB LINKED FROM JCB                
*        R1= COMPUTED JCB FIXED SPACE REQUIREMENT                               
*        R2= COMPUTED JPT  SPACE  REQUIRED                                      
*        R4= COMPUTED AET  SPACE  REQUIRED                                      
*        R8= SUM OF  R1,R2,R4                                                   
*        R9= SUM OF  R1,R2  OR  R1,R4                                           
*          R3= FPT ADDRESS                                                      
*          R7= JOB ID                                                           
*        R10= TSPACE FOR FIXED JCB PORTION                                      
*        R13= FLAG =0 JPT> AET , =1   AET >JPT                                  
*                                                                               
         LI,R0    0                 CLEAR FLAGS                                 
*                                   COMPUTE FIXED PORTION OF JCB                
         LI,R1    JCBFXL+25         FIXED PART + 25 BBC WORDS                   
         LH,R2    OPLBS1            NO. OF OP LABELS TOTAL                      
         AI,R2    4                 3 FOR ODD BYTES PLUS 1 FOR ZEROETH          
         SLS,R2  -2                 NO.OF WORDS FOR OPLB1                       
         AW,R1    R2                SUM                                         
         AI,R1    1                 DW ALIGNMENT SAFEGUARD                      
         SLS,R1   -1                                                            
         SLS,R1   1                                                             
         CI,R1    256                                                           
         BG       JMOB7             SIZE ERROR                                  
         LI,R2    S:JPT             COMPUTE JPT SPACE IN R2                     
         BEZ      JMOBB1                                                        
         SLS,R2   2                 4 WORDS PER ENTRY                           
         CI,R2    256                                                           
         BG       JMOB7             SIZE ERROR                                  
JMOBB1   LW,R4    K:JAET            COMPUTE AET SPACE                           
         BEZ      JMOBB2                                                        
*                                                                               
         SLS,R4   1                 2 WORDS PER ENTRY                           
         CI,R4    256                                                           
         BG       JMOB7             SIZE ERROE                                  
*                                                                               
JMOBB2   LW,R8    R1                 SUM SPACE REQUIREMENTS                     
         AW,R8    R2                                                            
         AW,R8    R4                                                            
*   BEFORE STARTING SPACE OPTIMIZATION ROUTINE,SEE IF JPT LENGTH(R2)            
*    OR AET LENGTH (R4) IS GREATER.                                             
*   PLACE GREATER VALUE IN R2.                                                  
*   IF JPT>AET, SET FLAG R13=0.                                                 
*   IF AET>JPT,   SET FLAG R13=1.                                               
*   R13 USED BY JMOBJ TO BUILD JCB CORRECTLY AND ALLOCATE TSPACE                
*    OPTIMALLY.                                                                 
*                                                                               
         LI,R13   0                                                             
         CI,R2    0                                                             
         BNE      JMOBB                                                         
         CI,R4    0                                                             
         BNE      JMOBB                                                         
         LW,R10   R1                NO JPT OR AET                               
         B        JMOBJ                                                         
*                                                                               
JMOBB    CW,R2    R4                                                            
         BGE      JMOBS             JPT >AET                                    
         AI,R13   1                 SET SWITCH                                  
         XW,R2    R4                SWAP VALUES                                 
*                                                                               
JMOBS    CI,R8    256                                                           
         BG       JMOBG             SUM OF JCB PARTS > 256                      
*                                                                               
**** TSPACE WINDOWS                                                             
*      1 - <= 64                                                                
*      2 - > 96 <= 128                                                          
*      3 - > 224 <= 256                                                         
*    TEST IF SUM IS IN A WINDOW. IF NOT,COMPUTE OPTIMUM TSPACE VALUES.          
*                                                                               
         CI,R8    64                IS SUM IN WINDOW 1                          
         BLE      JMOB64            YES (<= 64)                                 
         CLM,R8   WINDOW2           NO, IN WINDOW 2?                            
         BCS,9    JMOBS1            NO.                                         
         B        JMOB128           YES                                         
JMOBS1   CLM,R8   WINDOW3           IN WINDOW 3?                                
         BCS,9    JMOBS2            NO                                          
         B        JMOB256           YES                                         
*                                                                               
* SUM NOT IN A WINDOW,THEREFORE COMPUTE  OPTIMUM                                
*     TEST A1: SUM <=96 & R1+R2 IN 1 & R4 <= 32                                 
JMOBS2   CI,R8    96                                                            
         BG       JMOB20            SUM NOT <= 96                               
         LW,R9    R1                R1+R2                                       
         AW,R9    R2                                                            
         CI,R9    64                IS IT IN WINDOW 1?                          
         BG       JMOB10            NO, GO TRY TEST A2                          
         CI,R4    32                FINISH TEST A1                              
         BG       JMOB10            NO, GO TRY TEST A2                          
         AI,R0    1                 TEST A1 PASSED, SET TO LINK AET             
         B        JMOB64            GO SET TSPACE =64                           
*    TEST A2: SUM <= 96 & R1+R4 IN 1 & R2 <= 32                                 
JMOB10   LW,R9    R1                                                            
         AW,R9    R4                R1+R4                                       
         CI,R9    64                IN WINDOW 1?                                
         BG       JMOB11            NO, GO TRY TEST A3                          
         CI,R2    32                FINISH TEST A2                              
         BG       JMOB11            NO,GO TRY TEST A3                           
         AI,R0    2                 TEST A2 PASSED, SET TO LINK JPT             
         B        JMOB64            GO SET TSPACE =64                           
*    TEST A3: SUM <= 96 & R1 IN 1 & BOTH JPT & AET <= 32                        
JMOB11   CI,R1    64                                                            
         BG       JMOB12            FAILED TEST A1,A2,A3 SO USE DEFAULT         
         CI,R2    32                FINISH TEST A3                              
         BG       JMOB12            FAILED                                      
         CI,R4    32                FINISH TEST A3                              
         BG       JMOB12                                                        
         AI,R0    3                 TEST A3 PASSED, SET TO LINK BOTH JP         
         B        JMOB64            GO SET TSPACE = 64                          
*   DEFAULT FOR SUM <= 96 BUT TEST A1,A2,A3 FAILED IS USE WINDOW 2              
*      WITH NO LINKING                                                          
JMOB12   B        JMOB128           SET TSPACE =128, NO LINKING                 
*                                                                               
*                                                                               
*                                                                               
*   TEST B1: 128<SUM<= 224 & R1+R2 IN 2 & R4 <= 64                              
JMOB20   CLM,R8   TESTB                                                         
         BCS,9    JMOBG6            ERROR IF THIS TEST FAILS, SO GO TRY         
*                                     ALL THREE PIECES SEPARATELY               
         LW,R9    R1                128<SUM<= 224                               
         AW,R9    R2                                                            
         CLM,R9   WINDOW2           IN WINDOW 2?                                
         BCS,9    JMOB21            NO,GO TRY TEST B2                           
         CI,R4    64                                                            
         BG       JMOB21                                                        
         AI,R0    1                 TEST B1 PASSED,SET LINK AET                 
         B        JMOB128           GO SET TSPACE=128                           
*    TEST B2: 128< SUM LT/EQ 224 AND R1+R4 IN 2  AND  R2 LT/EQ 64               
JMOB21   LW,R9    R1                                                            
         AW,R9    R4                R1+R4                                       
         CLM,R9   WINDOW2           IN WINDOW2?                                 
         BCS,9    JMOB22            NO, GO TRY TEST B3                          
         CI,R2    64                  FINISH TEST B2                            
         BG       JMOB22            NO,                                         
         AI,R0    2                 TEST B2 PASSED.SET LINK JPT                 
         B        JMOB128           GO SET TSPACE =128                          
*    TEST B3:  128<SUM LT/EQ 224 AND  R1+R2 IN 1 AND R4 LT/EQ 128               
JMOB22   LW,R9    R1                                                            
         AW,R9    R2                                                            
         CI,R9    64                IN WINDOW 1?                                
         BG       JMOB23            NO, GO TRY TEST B4                          
         CI,R4    128                  FINISH TEST B3                           
         BG       JMOB23                                                        
         AI,R0    1                 TEST B3 PASSED.SET LINK AET                 
         B        JMOB64             SET TSPACE =64                             
*    TEST B4: 128 < SUM LT/EQ 224 AND R1+R4 IN 1 AND R2  LT/EQ 128              
JMOB23   LW,R9    R1                                                            
         AW,R9    R4                                                            
         CI,R9    64                IN WINDOW 1?                                
         BG       JMOB24            NO, GO TRY TEST B5                          
         CI,R2    128                FINISH TEST B4                             
         BG       JMOB24                                                        
         AI,R0    2                 TEST B4 PASSED. SET LINK JPT                
         B        JMOB64            SET TSPACE =64                              
*    TEST B5:  128 < SUM LT/EQ 224  AND R1 IN 1 AND R2 AND R4 LT/EQ 64          
JMOB24   CI,R1    64                IN WINDOW 1?                                
         BG       JMOB25            NO - FAILED TESTS B1-B5                     
         CI,R2    64                                                            
         BG       JMOB25                FAIL                                    
         CI,R4    64                                                            
         BG       JMOB25                FAIL                                    
         AI,R0    3           TEST B5 PASSED.SET LINK JPT AND AET               
         B        JMOB64            GO SET TSPACE =64                           
* TEST B6: REST OF RANGE                                                        
*    R1+R2<= 128 & R4<=64                                                       
JMOB25   LW,R9    R1                                                            
         AW,R9    R2                                                            
         CI,R9    128                                                           
         BG       JMOB26                                                        
         CI,R4    64                                                            
         BG       JMOB26                                                        
         AI,R0    1                                                             
         B        JMOB128                                                       
JMOB26   LW,R9    R1                R1+R4<=128&R2<=64                           
         AW,R9    R4                                                            
         CI,R9    128                                                           
         BG       JMOB27                                                        
         CI,R2    64                                                            
         BG       JMOB27                                                        
         AI,R0    2                                                             
         B        JMOB128                                                       
JMOB27   CI,R1    128               R1<=128&R2&R4<=64                           
         BG       JMOB28                                                        
         CI,R2    64                                                            
         BG       JMOB28                                                        
         CI,R4    64                                                            
         BG       JMOB28                                                        
         AI,R0    3                                                             
         B        JMOB128                                                       
*  DEFAULT FOR  128< SUM LT/EQ 224 BUT TESTS B1-B6 FAILED USE WINDOW 3          
JMOB28   B        JMOB256               WITH NO LINKING                         
*                                                                               
*  IF R1+R2+R4 > 256  USE TESTS C1-C6                                           
*    TEST C1  R1+R2 IN 3                                                        
JMOBG    LW,R9    R1                                                            
         AW,R9    R2                                                            
         CLM,R9   WINDOW3           R1+R2 IN WINDOW 3?                          
         BCS,9    JMOBG1            NO  GOTRY   TEST C2                         
         AI,R0    1                 YES.USE WINDOW  3, LINK  AET                
         B        JMOB256                                                       
*    TEST C2:  R1+R4 IN 3                                                       
JMOBG1   LW,R9    R1                                                            
         AW,R9    R4                                                            
         CLM,R9   WINDOW3           R1+R4 IN 3?                                 
         BCS,9    JMOBG2            NO,TRY TEST C3                              
         AI,R0    2                 YES, USE WINDOW 3. LINK JPT                 
         B        JMOB256                                                       
*    TEST C3:     R1+R2   IN  2                                                 
JMOBG2   LW,R9    R1                                                            
         AW,R9    R2                                                            
         CLM,R9   WINDOW2                                                       
         BCS,9    JMOBG3            NO, GOTRY TEST C4                           
         AI,R0    1                 YES, USE WINDOW 2 AND LINK AET              
         B        JMOB128                                                       
*    TEST C4:     R1+R4  IN 2                                                   
JMOBG3   LW,R9    R1                                                            
         AW,R9    R4                                                            
         CLM,R9   WINDOW2                                                       
         BCS,9    JMOBG4            NO. GOTRY  TEST C5                          
         AI,R0    2                 YES. USE WINDOW2 AND LINK JPT               
         B        JMOB128                                                       
*    TEST C5:     R1+R2  IN 1                                                   
JMOBG4   LW,R9    R1                                                            
         AW,R9    R2                                                            
         CI,R9    64                                                            
         BG       JMOBG5            NO, GOTRY TEST C6                           
         AI,R0    1                 YES. USE WINDOW 1 AND LINK AET              
         B        JMOB64                                                        
*    TEST C6:     R1+R4  IN 1                                                   
JMOBG5   LW,R9    R1                                                            
         AW,R9    R4                                                            
         CI,R9    64                                                            
         BG       JMOBG6            NO. SO LINK  ALL 3 SEPARATELY               
         AI,R0    2                                                             
         B        JMOB64            YES. USE WINDOW 1  AND LINK JPT             
*    SUM  > 256   AND TESTS C1-C6  FAILED. LINK  ALL  3 SEPARATELY              
JMOBG6   LW,R10   R1                SET TSPACE = EXACT R1                       
         AI,R0    3                 SET BOTH LINK FLAGS                         
         B        JMOBJ                                                         
*    CLEAR NAME FROM SJI2                                                       
JMOB7    EQU      %                                                             
         PULL     5,R10             RESTORE STACK                               
JMOB7A   RES      0                 BAD ACCOUNT NAME                            
         LI,R15   TYC7B                                                         
         B        JMOB6A                                                        
*                                                                               
JMOB6    RES      0                 BAD JOB NAME                                
         LI,R15   TYC63                                                         
*                                                                               
JMOB6A   RES      0                 RELEASE SJI ENTRY                           
         LD,R10   ZEROS                                                         
         STD,R10  SJI2,R7           ZERO JOB NAME                               
         STB,R10  SJI3,R7           ZERO JOB FLAGS                              
         B        JMOBE                                                         
*    GETS SPACE  AND BUILDS JCB                                                 
*                                                                               
*                                                                               
*                                                                               
*                                                                               
JMOB64   LI,R10   64                SET TSPACE =64                              
         B        JMOBJ               GO GET SPACE AND BUILD JCB                
JMOB128  LI,R10   128               SET TSPACE = 128                            
         B        JMOBJ                                                         
JMOB256  LI,R10   256               SET TSPACE =256                             
         B        JMOBJ                                                         
*   GET TSPACE AND LINK                                                         
JMOBJ    LW,R6    R0                SAVE R0                                     
         LW,R5    R7                SAVE R7 - JOB ID                            
         LW,R7    R10               FIXED JCB SPACE NEEDED                      
         BAL,R8   GETTEMP           GET SPACE                                   
         B        JMOB1E            NO SPACE                                    
         STW,R7   SJI1,R5           PERFORM LINK OF JCB TO SJI                  
         ENABLE                                                                 
         LI,R8    0                 ZERO POINTERS                               
         STW,R8   JCBJPT,R7                                                     
         STW,R8   JCBAET,R7                                                     
         LI,R8    BIT15             SET JOB NOT STARTED BIT IN JCB              
         STW,R8   *R7               AND SIMULTANEOUSLYCLEAR WORD                
*   SEE IF AET OR JPT ARE TO BE GOTTEN FROM TSPACE AND LINKED FROM JCB          
*     FIRST SEE IF JUST AET LINKED                                              
         CI,R6    0                 R6 (FORMER R0) IS 0 IF NO LINKS.            
         BNEZ     JMOBJQ            IF NO LINKS,AND SWITCH WAS PERFORME         
         CI,R13   0                 UNDO SWITCH                                 
         BEZ      JMOBJCB                                                       
         LI,R13   0                                                             
         XW,R2    R4                                                            
         B        JMOBJCB                                                       
JMOBJQ   CI,R6    1                 AET  (ONLY) LINKED?                         
         BNE      JMOBJ1            NO, GO SEE IF JPT LINKED                    
         LW,R7    R4                GET TSPACE FOR AET (R4)                     
         BAL,R8   GETTEMP                                                       
         B        JMOB2E            NO SPACE, ERROR RETURN                      
         CI,R13   0                 SEE IF R2 &R4 WERE SWITCHED                 
         BEZ      JMOBAET           NO,NOT SWITCHED. GO LINK AET.               
*   SWITCHED SO LINK JPT INSTEAD (DONT NEED R6 ANYMORE)                         
JMOBJPT  BAL,R8   JMOBJP                                                        
         B        JMOBJCB           BUILD JCB CONTENT                           
*                                                                               
JMOBJP   LW,R6    SJI1,R5           JCB ADDRESS                                 
         STW,R7   JCBJPT,R6         SET JPT LINK IN JCB                         
         LW,R6     SJI1,R5          GET FIRST WORD OF JCB                       
         LW,R9    Y1                JPT BIT                                     
         STS,R9   *R6               SET JPT LINKED BIT                          
         ENABLE                                                                 
         B        *R8                                                           
*                                                                               
JMOBAE   LW,R6    SJI1,R5           JCB ADDRESS                                 
         STW,R7   JCBAET,R6         SET AET LINK IN JCB                         
         LW,R6     SJI1,R5          GET FORST WORD OF JCB                       
         LW,R9    Y2                AET BIT                                     
         STS,R9   *R6               SET AET LINKED BIT                          
         ENABLE                                                                 
         B        *R8                                                           
*                                                                               
JMOBAET  BAL,R8   JMOBAE                                                        
         B        JMOBJCB           BUILD JCB CONTENT                           
*   SEE IF ONLY JPT LINKED                                                      
JMOBJ1   CI,R6    2                 R6=2 IFLINK ONLY JPT                        
         BNE      JMOBOTH           BOTH AET & JPT TO BE LINKED                 
         LW,R7    R2                GET TSPACE FOR JPT (R2)                     
         BAL,R8   GETTEMP                                                       
         B        JMOB2E            NO SPACE,ERROR RETURN                       
         CI,R13   0                 SEE IF R2 &R4 WERE SWITCHED                 
         BEZ      JMOBJPT           NO, GO LINK JPT ONLY                        
         B        JMOBAET           YES, GO LINK AET ONLY                       
JMOBOTA  BAL,R8   JMOBAE            LINK AET                                    
         B        JMOBOTB                                                       
JMOBOTC  BAL,R8   JMOBJP            LINK JPT                                    
         B        JMOBOTD                                                       
*   BOTH AET & JPT ARE TO BE LINKED                                             
JMOBOTH  LW,R7    R4                DO AET FIRST (ARBITRARY CHOICE)             
         BAL,R8   GETTEMP                                                       
         B        JMOB2E            NO SPACE, ERROR RETURN                      
         CI,R13   0                 SEE IF R2 & R4 WERE SWITCHED                
         BEZ      JMOBOTA           NO,LINK AET                                 
         BAL,R8   JMOBJP            YES, LINK JPT                               
JMOBOTB  LW,R7    R2                DO JPT                                      
         BAL,R8   GETTEMP                                                       
         B        JMOB3E            NO SPACE, ERROR RETURN                      
         CI,R13   0                 SEE IF R2 & R4 WERE SWITCHED                
         BEZ      JMOBOTC           NO, LINK JPT                                
         BAL,R8   JMOBAE            YES LINK AET                                
JMOBOTD  RES      0                                                             
JMOBJCB  RES      0                                                             
*   R2 = JPT ACTUAL LENGTH NEEDED                                               
*   R3 = FPT ADR                                                                
*   R4 = AET ACTUAL LENGTH NEEDED                                               
*   R5 = JOBID (SJI INDEX)                                                      
*   WORD 0 OF THE JCB HAS AET , JPT LINKED BITS SET OR RESET                    
*     APPROPRIATELY AND JOB NOT STARTED BIT SET.                                
*   TSPACE MUST BE ZEROED                                                       
*   R15 MUST BE SET WITH TYC = 01                                               
*   JOB NOT STARTED BIT MUST BE RESET                                           
*                                                                               
         LW,R6    SJI1,R5           GET JCB ADR                                 
         LB,R7    R6                GET JCB LENGTH                              
         BNEZ     JMJCB             ZERO MEANS 256                              
         LI,R7    256                                                           
JMJCB    AI,R7     -1                                                           
         AND,R6   M24               MASK ADR                                    
         LI,R1    JCBJID            JOBID OFFSET                                
         STB,R5   *R6,R1            STORE JOBID                                 
         LI,R1    JCBMM             OFFSET FOR MAX. MEM.(BKGD ONLY)             
         LI,R9    0                                                             
         STH,R9   *R6,R1                                                        
         LI,R1    JCBTM             OFFSET FOR TOTAL MEM.(BKGD ONLY)            
         STH,R9   *R6,R1                                                        
         LI,R1    0                                                             
         STW,R1   JCBTRPS,R6        TRAP CONTROL SECONDARY TASKS                
         STW,R1   JCBTRPP,R6        TRAP CONTROLS PRIMARY TASKS                 
         STW,R1   JCBEDTH,R6        EDT POINTER HEAD                            
         STW,R1   JCBEDTT,R6        EDT POINTER TAIL                            
         STW,R1   JCBSDT,R6         SDT POINTER                                 
         STW,R1   JCBDBUG,R6        ZERO DEBUG CONTROL WORDS                    
         STW,R1   JCBDBUG+1,R6                                                  
         STW,R1   JCBREAK,R6        BREAK CONTROL WORD                          
*   ZERO JCB TABLE SPACE                                                        
JMJCB1   STW,R1   *R6,R7                                                        
         CI,R7    10                DONT ZERO FLAGS AND POINTERS                
         BLE      JMJCB2                                                        
         BDR,R7   JMJCB1                                                        
*   THIS LOOP WONT FALL THROUGH                                                 
*SET BBCT POINTER WORD IN JCB                                                   
JMJCB2   LW,R8    R6                JCB REAL ADR                                
         AI,R8    JCBFXL            POINTER,FLAGS LENGTH                        
         LI,R7    25                BBCT LENGTH                                 
         STB,R7   R8                SET IN TO POINTER                           
         LW,R7    R6                JCB ADR                                     
         AI,R7    JCBBBCT           BBCT POINTER WORD DISPL.                    
         STW,R8   *R7               STORE POINTER IN JCB                        
*                                                                               
         AI,R8    25                FORM OPLB1 TABLE START ADR                  
         STW,R8   R11               R11=START ADR OF OPLB2 TABLE IN JCB         
*                                                                               
         LH,R12   OPLB1             COMPUTE NO. WORDS IN JCB FOR TABLE          
         AI,R12   4                 3 FOR ODD BYTES PLUS 1 FOR ZEROETH          
         SLS,R12  -2                                                            
         AW,R12   R11               R12 =START ADR OF NEXT  TABLE IN JC         
         STW,R5   R10               SAVE R5 JOB ID                              
         LH,R7    OPLB1             NO. OF OP LABELS                            
*   LOOP TO STORE OP LABELS IN JCB.  R1=0                                       
         LI,R5    1                                                             
JMJCBT   RES      0                 SKIP FIRST HW OF SYSTEM TABLE               
         LB,R9    OPLB2,R5          SKIP FIRST BYTE (0)                         
         STB,R9   *R11,R5           STORE RFT OR DCT INDEX                      
         AI,R5    1                                                             
         BDR,R7   JMJCBT                                                        
*   NOW SET POINTERS                                                            
         LH,R7    OPLBS1            NO. OF OP LABELS                            
         STB,R7   R11               SET IN POINTERS                             
         STW,R11  JCBOPL2,R6        SET OPLB2 POINTER IN JCB                    
         LI,R11   OPLBS1            BUILD OPLB1 POINTER                         
         STB,R7   R11               LENGTH                                      
         STW,R11  JCBOPL1,R6        SET POINTER                                 
*   NOW SET UP POINTER IN CASE JPT OR AET IS NOT ALREADY LINKED.                
         STW,R10  R5                RESTORE R5                                  
         AI,R12   1                 DW ADDRESS  (R12 HAS START OF NEXT          
         SLS,R12  -1                                                            
         SLS,R12  1                                                             
         LW,R9    *R6               FIRST WORD OF JCB                           
         LI,R1    0                                                             
         AND,R9   Y1                SEE IF JPT LINKEDBIT SET                    
         BEZ      JMJCB4            NOT SET, SO BRANCH                          
*   LINKED SO ZERO JPT TSPACE                                                   
         LW,R9    JCBJPT,R6         GET JPT LINK                                
         LB,R7    R9                GET TSPACE COUNT                            
         AND,R9   M24               MASK ADR                                    
         CI,R7    0                 ZERO MEANS 256                              
         BNE      JMJCBA                                                        
         LI,R7    256                                                           
JMJCBA   AI,R7    -1                FOR BDR INDEX                               
JMJCB3   STW,R1   *R9,R7                                                        
         BDR,R7   JMJCB3                                                        
         STW,R1   *R9                                                           
         B        JMJCB5                                                        
JMJCB4   RES      0                 0                                           
         CI,R13   0                 SEE IF JPT &AET SWITCHED                    
         BE       JMJCB41           NOT SWITCHED                                
         STB,R4   R12               SET LENGTH                                  
         STW,R4   R1                SAVE LENGTH                                 
         CI,R4    0                                                             
         BE       JMJCB5            NO JPT                                      
         B        JMJCB42                                                       
JMJCB41  STB,R2   R12               SET JPT LENGTH                              
         STW,R2   R1                SAVE LENGTH                                 
         CI,R2    0                                                             
         BE       JMJCB5            NO JPT                                      
JMJCB42  STW,R12  JCBJPT,R6         SET POINTER IN JCB                          
JMJCB5   LW,R9    *R6               FIRST WORD OF JCB                           
         AND,R9   Y2                SEE IF AET LINKED                           
         BEZ      JMJCB7            NOT LINKED, SO BRANCH                       
*   LINKED SO ZERO AET TSPACE                                                   
         LW,R9    JCBAET,R6         GET AET LINK                                
         LB,R7    R9                GET TSPACE LENGTH                           
         AND,R9   M24               MASK ADR                                    
         CI,R7    0                 ZERO MEANS 256                              
         BNE      JMJCB51                                                       
         LI,R7    256                                                           
JMJCB51  AI,R7    -1                FOR BDR INDEX                               
         LI,R8    0                                                             
JMJCB6   STW,R8   *R9,R7                                                        
         BDR,R7   JMJCB6                                                        
         STW,R8   *R9                                                           
         B        JMOBEN                                                        
JMJCB7   RES      0                 NO. OF WORDS IN JPT                         
         AW,R12   R1                                                            
         CI,R13   0                 SET IF JPT & AET WERE SWITCHED              
         BE       JMJCB71           NOT SWITCHED                                
         STB,R2   R12              SET LENGTH                                   
         CI,R2    0                                                             
         BE       JMOBEN            NO AET                                      
         B        JMJCB72                                                       
JMJCB71  STB,R4   R12               COMPUTE AET TABLE ADR                       
         CI,R4    0                                                             
         BE       JMOBEN            NO AET                                      
JMJCB72  STW,R12  JCBAET,R6         SET POINTER IN JCB                          
         B        JMOBEN            NORMAL EXIT                                 
JMOBE    BAL,R8   TMSETERR          ERROR RETURN,R15= X'66' OR X'6A'            
         CW,R15   XF0               TEST SEVERITY                               
         BGE      JCALERR                                                       
         B        JMOBEN1                                                       
JMOBEN   RES      0                 NORMAL EXIT                                 
         DO       #MAP                                                          
         LI,R7    JCBSDTL           GET SDT FOR JOB RESERVED PAGES              
         BAL,R8   GETTEMP                                                       
         B        JMOB3E            NO TSPACE                                   
         STW,R7   JCBSDT,R6         SET POINTER                                 
         ENABLE                                                                 
         LI,R1    0                                                             
         LB,R2    R7                LENGTH, TO ZERO TSPACE                      
         AND,R7   M24                                                           
         AI,R2    -1                FOR BDR INDEX                               
JMOBEN2  STW,R1   *R7,R2                                                        
         BDR,R2   JMOBEN2                                                       
         STW,R1   *R7                                                           
         LI,R1    6                 MOVE SDT  FIXED PORTION                     
JMOBEN3  LW,R2    JMSDT,R1          (DUMMY FOR NOW)                             
         STW,R2   *R7,R1                                                        
         BDR,R1   JMOBEN3                                                       
         LW,R2    JMSDT                                                         
         AW,R2    R7                                                            
         STW,R2   *R7                                                           
         FIN                                                                    
         PULL     5,R10                                                         
         LCI      5                                                             
         STM,R10  JCBACCNT,R6       STORES 5 REGISTERS                          
         LI,R15   TYCNORM                                                       
         LW,R1    *R6               RESET JOB NOT STARTED BIT                   
         AND,R1   FFFEFFFF                                                      
         STW,R1   *R6                                                           
         LI,R1    0                 ZERO ENTRY LOCK                             
         STB,R1   SJI3,R5                                                       
JMOBEN1  BAL,R8   TMTYC15           TMTYC ENTRY WHICH USES R15 AND SETS         
         CW,R15   XF0                                                           
         BGE      JCALERR                                                       
JCALEXIT  B       CALEXIT           NORMAL EXIT                                 
JCALERR  B        CALERR                                                        
JMOB3E   RES      0                                                             
         LW,R6    *R6               JCB FIRST WORD                              
         AND,R6   Y2                CHECK AET LINKED BIT                        
         BEZ      JMOB3E1                                                       
         LW,R6    SJI1,R5           JCB ADR                                     
         LW,R7    JCBAET,R6         GET AET TSPACE LINK                         
         BAL,R8   RELTEMP           RELEASPACEE S                               
JMOB3E1  LW,R6    *R6               JCB FIRST WORD                              
         AND,R6   Y1                CHECK JPT LINKED BIT                        
         BEZ      JMOB2E                                                        
         LW,R6    SJI1,R5           JCB ADR                                     
         LW,R7    JCBJPT,R6         GET JPT TSPACE LINK                         
         BAL,R8   RELTEMP           RELEASE SPACE                               
JMOB2E   LW,R7    SJI1,R5             FOR MAIN JCB PART                         
         BAL,R8   RELTEMP                                                       
JMOB1E   LW,R7    R5                RESTORE R7                                  
         PULL     5,R10             RESTORE STACK                               
         LD,R10   ZEROS             CLEAR NAME FROM SJI2                        
         STD,R10  SJI2,R7                                                       
*  RESET ENTRY LOCK IN SJI3, SET COMPL. CODE FOR NO SPACE                       
         STB,R10  SJI3,R7                                                       
         LI,R15   TYC66             NO SPACE                                    
         B        JMOBE                                                         
         DO       #MAP                                                          
         DO       #SIGMA9M                                                      
JMSDT    DATA     16                                                            
         GEN,8,7,8,9   6,0,240,0                                                
         DATA     X'23309002'                                                   
         DATA     0                                                             
         GEN,8,8,8,8  1,1,1,0       1 ACTIVE, 1 INACTIVE, 1 USERS               
         DATA,1   0,12,1,0                                                      
         DATA     -1                ACCESS CODES                                
JCBSDTL  EQU      22                                                            
         ELSE     #SIGMA9M                                                      
JMSDT    DATA     16                                                            
         GEN,8,7,8,9   3,0,240,0                                                
         DATA     X'23309002'                                                   
         DATA     0                                                             
         GEN,8,8,8,8  1,1,1,0       1 ACT, 1 INACT, 1 USING                     
         DATA,1   0,12,1,0                                                      
         DATA     -1                ACCESS CODES                                
JCBSDTL  EQU      19                                                            
         FIN      #SIGMA9M                                                      
         FIN                                                                    
         BOUND    8                                                             
WINDOW2  DATA     97,128            96<R<=128                                   
WINDOW3  DATA     225,256           224<R<=256                                  
TESTB    DATA     129,224           128<R<=224                                  
         OLAYEND                                                                
         ELSE     #ECB                                                          
SJOB     B        %                                                             
         FIN      #ECB                                                          
A:SJOB   EQU      SJOB                                                          
         END                                                                    
