         TITLE    '** SYSGEN  - SYSTEM FLAGS AND POINTERS **'                   
         PCC      0                                                             
         SYSTEM   SIG5P                                                         
         SYSTEM   OPTIONS                                                       
BTSIZE   SET      -1                (ALL) NUMBER OF SECTORS DEFAULT FOR BT      
SPSIZE   SET      1500              DEFAULT NUMBER OF SECTORS FOR SP            
#RB      SET      0                 FOR POSSIBLE LATE 760X SUPPORT              
         PSYS     0                                                             
#ONLINE  SET      0                                                             
*                                                                               
*                                                                               
* PROC TO CONSTRUCT ALLOCATION CONTROL TABLES                                   
*                                                                               
DWORD    CNAME    15                                                            
WORD     CNAME    14                                                            
HWORD    CNAME    13                                                            
HW       CNAME    13                                                            
BYTE     CNAME    12                                                            
         PROC                                                                   
LF       GEN,8,24 NAME,AF(1)                                                    
         PEND                                                                   
*                                                                               
* PROC TO ZERO FILL A TABLE                                                     
*                                                                               
* CF(2) = NUMBER OF BYTES OF ZERO/ELEMENT (DEFAULT = 4) (LIKE RES)              
* AF(1) = NUMBER OF ELEMENTS TO ZERO                                            
* NO BOUNDING IS DONE                                                           
*                                                                               
ZERO     CNAME                                                                  
         PROC                                                                   
         LIST     0                                                             
LF       DO1      AF(1)                                                         
         DATA,(NUM(CF)=1)*4+(NUM(CF)=2)*CF(2) 0                                 
         LIST     1                                                             
         PEND                                                                   
         PAGE                                                                   
*                                                                               
*                                                                               
*                                                                               
R0       EQU      0                 REGISTER EQUATES                            
R1       EQU      1                                                             
R2       EQU      2                                                             
R3       EQU      3                                                             
R4       EQU      4                                                             
R5       EQU      5                                                             
R6       EQU      6                                                             
R7       EQU      7                                                             
R8       EQU      8                                                             
R9       EQU      9                                                             
R10      EQU      10                                                            
R11      EQU      11                                                            
R12      EQU      12                                                            
R13      EQU      13                                                            
R14      EQU      14                                                            
R15      EQU      15                                                            
         PAGE                                                                   
*                                                                               
* THESE LOCATIONS MAY NOT BE CHANGED AND MUST MATCH THE EQU'S IN CPRMON         
*                                                                               
*                                                                               
*                                                                               
*                                   SYSTEM FLAGS AND POINTERS                   
*                                                                               
*                                                                               
         DO       #ONLINE                                                       
         SYSTEM   BPM                                                           
         REF      M:SI,M:LO,M:BI,M:BO                                           
BUFFER   RES      1001                                                          
         FIN      #ONLINE                                                       
*                                                                               
         DO       1-#ONLINE                                                     
         ASECT                                                                  
         ORG      X'140'                                                        
         FIN      1-#ONLINE                                                     
K:BACKBG DATA     0                 BEGINNING ADDRESS OF BACKGROUND             
K:BCKEND DATA     0                 ENDING ADDRESS OF BACKGROUND                
K:FGDBG1 DATA     0                 CURRENT BEGINNING ADDRESS OF FGD.           
K:FGDEND DATA     0                 ENDING ADDRESS OF FGD.                      
K:CCBUF  DATA     0                 ADDRESS OF CONTROL CARD BUFFER              
K:BPOOL  DATA     0                 START ADD. OF BCKG BLK BUFFER POOL          
K:FGDBG2 DATA     0                 BEG. ADD. OF FGD. SET AT SYSGEN             
K:FMBOX  DATA     0                 START ADD. OF FGD. MAILBOXES                
K:FPOOL  DATA     0                 START ADD. OF FGD. BLK BUFFER POOL          
K:UNAVBG DATA     X'4000'*(1+#MAP)  START ADDRESS OF UNAVAILABLE MEMORY         
K:MDFLAG DATA     0                 OLD K:MASTD CELL                            
K:NUMDA  DATA     0                 HIGHEST VALID INDEX FOR MASTD               
K:VRSION TEXT     'G00 '            CPR VERSION                                 
K:ACCNT  DATA     0                 JOB ACCOUNTING FLAG                         
K:OV     DATA,2   128               DEFAULT PERMINENT OV SIZE IN SECTORS        
         DATA,2   0                 CURRENT OV SIZE                             
K:KEYST  DATA     0                 POST STATUS OF KEYIN HERE                   
K:JCP1   DATA     0                 FLAGS FOR JCP AND CONTROL TASK              
K:CTST   DATA     0                 FLAGS TO EXECUTE CONTROL TASK SUBTSK        
K:SY     DATA     0                 NONZERO IF SY KEYIN ACTIVE                  
K:BPEND  DATA     0                 FIRST USABLE CELL FOR DYNAMIC               
*                                     STORAGE FOR A LOADED BCKG. PROG.          
K:CTWD   DATA     0                 WD CODE FOR CONTROL TASK                    
K:CTGL   DATA     0                 GROUP LEVEL FOR CONTROL TASK                
K:BLOAD  DATA     0,0               NAME OF BCKG PROG TO LOAD                   
K:BAREA  DATA     0                 AREA TO LOAD BCKG PROG FROM                 
K:ASSIGN DATA     0                 ADDRESS OF ASSIGN TABLE                     
K:RUNF   DATA     0                 POST RUN STATUS HERE FOR FGD LOAD           
K:HIINT  DATA     0                 HIGHEST ADDRESS USED FOR INT.               
K:FGDBG3 DATA     0                 BEGIN ADD. OF FGD FROM FMEM KEYIN           
K:PMD    DATA     0,0,0,0,0         CELLS TO DUMP FOR PMD                       
K:DCB    GEN,8,3,21  7,1,1                                                      
         GEN,8,24    3,0                                                        
         DATA        0                                                          
         GEN,15,17   X'400',0                                                   
         DATA        0                                                          
         TEXT        'RBM     '                                                 
K:KEYIN  DATA     0,0,0,0,0,0       KEYIN RESPONSE BUFFER                       
K:FGDBG4 DATA     0                 FWA OF FGD PRIOR TO CKPT                    
K:DELTA  DATA     0                 ENTRY POINT FOR DELTA                       
K:QUEUE  DATA     0                 ADDRESS OF QUEUE ROUTINE                    
K:BTFILE DATA     0                 STATUS FLAGS FOR BT AREA                    
K:GO     DATA,2   128               DEFAULT PERMINENT GO SIZE IN SECTORS        
         DATA,2   0                 CURRENT GO SIZE                             
K:PAGE   DATA,1   37,0,0,0           BYTE 0=NO. LINES PER PAGE                  
K:RDBOOT DATA     0                 FWA AND DEV. NO. OF RAD BOOT                
K:DCT1   DATA     0                 ADDRESSES OF TABLES                         
K:DCT16  DATA     0                                                             
K:OPLBS1 DATA     0                                                             
K:OPLBS3 DATA     0                                                             
K:RFT4   DATA     0                                                             
K:RFT5   DATA     0                                                             
K:SERDEV DATA     0                 ADDRESS OF SERDEV                           
K:REQCOM DATA     0                 ADDRESS OF REQCOM                           
K:INITX  DATA     0                 ADDRESS TO RETURN AFTER INIT. RUNS          
K:FGLD   DATA     0                 RUN FGLD FLAG                               
K:PMD1   DATA     0                 DUMP FLAGS                                  
K:CTDR7  DATA     0                 CT DUMP SAVE R7                             
K:DBTS   DATA     0                 POINTER TO TSPACE FOR BKG PMD               
K:KEYDCB GEN,8,16,4,4 5,1,0,3       DCB FOR KEYIN READ:  OPL/DEV, VFC           
         GEN,8,16,8  10,0,OC        : NRT, OPLABEL                              
         DATA     0                 : BUFFER ADDR, SET BY INIT                  
         DATA     0                 :BYTE COUNT (BY INIT), ERA                  
         DATA     0                 : ARS, ABA                                  
K:CLK1   DATA     0,0               CELLS FOR CLOCK COUNTERS                    
K:CLK2   DATA     0,0                                                           
K:CLK3   DATA     0,0                                                           
K:ABTLOC DATA     0                 ABORT LOC. OF BCKG.                         
K:DCT4   DATA     0                 ADDRESS OF DCT4                             
K:MSG1   TEXTC    '!!KEY-IN'        ALARMS                                      
K:MSG2   TEXTC    '!!KEY ERR'                                                   
K:MSG3   TEXTC    '!!RLS NAME NA'                                               
K:MSG4   TEXTC    '!!FILE NAME ERR'                                             
K:MSG5   TEXTC    '!!FGD AREA ACTIVE'                                           
K:MSG6   TEXTC    '!!NOT ENUF BCKG SPACE'                                       
K:MSG7   TEXTC    '!!UNABLE TO DO ASSIGN'                                       
K:MSG8   TEXTC    '!!BCKG CKPT'                                                 
K:MSG9   TEXTC    '!!BCKG USED BY FGD'                                          
K:MSG10  TEXTC    '!!BCKG RESTART'                                              
K:MSG11  TEXTC    '!!CK AREA TOO SMALL'                                         
K:MSG12  TEXTC    '!!I/O ERR ON CKPT'                                           
K:MSG13  TEXTC    '!!BACKGROUND ABORT WAIT'                                     
K:MSG14  TEXTC    '!!LOADED PROG  '                               3785          
K:MSG15  TEXTC    '!!UNABLE TO LOAD BCKG, ERR     '                             
K:MSG16  TEXTC    '  CKPT ABORT, I/O HUNG             '                         
K:MSG17  TEXTC    '!!IGN TY/CC'                            /SIG7-6218/*C5732 007
         RES      3                                        /SIG7-6218/*C5732 008
K:FPSIM  DATA     0                 ADDRESS OF WHERE SIM. ROUTINES LOADED       
K:DECSIM DATA     0                                                             
K:BYTSIM DATA     0                                                             
K:CVSIM  DATA     0                                                             
*                                                                               
*                                   JOB ACCOUTING CELLS                         
K:MONTH  DATA,1   31,'J','A','N'    TABLE OF DAYS/MONTH AND BCD NAMES           
         DATA,1   28,'F','E','B'      OF MONTH                                  
         DATA,1   31,'M','A','R'                                                
         DATA,1   30,'A','P','R'                                                
         DATA,1   31,'M','A','Y'                                                
         DATA,1   30,'J','U','N'                                                
         DATA,1   31,'J','U','L'                                                
         DATA,1   31,'A','U','G'                                                
         DATA,1   30,'S','E','P'                                                
         DATA,1   31,'O','C','T'                                                
         DATA,1   30,'N','O','V'                                                
         DATA,1   31,'D','E','C'                                                
K:DATE1  DATA     0                 LHW=MAX. NO. DAYS IN YEAR                   
*                                   RHW=YEAR IN BINARY (YEAR-1900)              
K:DATE2  DATA     0                 DAY OF YEAR                                 
K:TIME   DATA     0                 TIME OF DAY IN SECONDS                      
K:BPGLIM DATA     0                 BKG PAGE OUTPUT LIMIT CONTROL               
K:LIMIT  DATA     0                 MAX. EXECUTION TIME FOR BCKG. IN SEC        
K:ACCNAM DATA     0,0,0,0,0         ACCTG LOG ENTRY FOR CURRENT BKG JOB         
*                                   ACCOUNT (2 WDS), USER (3 WDS)               
         DATA     0                   START DATE FOR JOB                        
         DATA     0                   START TIME OF JOB                         
K:ELTIM2 DATA     0                   ELAPSED TIME FOR BCKG                     
*                                   END OF 8 WORD ENTRY                         
K:RFT12  DATA     0                 ADDRESS OF RFT12                            
K:RFT11  DATA     0                 ADDRESS OF RFT11                            
K:RFT1   DATA     0                 ADDRESS OF RFT1                             
K:RFT8   DATA     0                 ADDRESS OF RFT8                             
K:PTCH   DATA      0               BEGINNING ADDR. OF PATCH AREA                
K:PTCHND DATA      0               ENDING ADDR. OF PATCH AREA                   
K:IOWD   DATA     0                 WD CODE FOR IOALT                           
K:IOGL   DATA     0                 GROUP LEVEL FOR IOALT                       
K:UNUSED1 DATA    0                 UNUSED K:                                   
K:SYS1   DATA     0                 SAVE K:SYSTEM DURING REBOOT                 
K:IOLOCK DATA     0                 IOLOCK TABLE PTR                            
K:RMPT   DATA     0                 RMPT POINTER                                
K:BMEM   GEN,16,16 32,32            MAX NUMBER OF BKG PAGES                     
K:JAET   DATA     0                 # OF ALLOCATABLE DCT ENTRIES                
K:RTS    DATA     0                 PTR TO STACK FOR SYSTEM USE                 
K:MDNAME DATA     0                 ADDR OF MDNAME TABLE                        
K:DCT1X  DATA     0                 TRUE PTR TO DCT1                            
K:RBMEND DATA     0                 LWA OF RESIDENT RBM                         
K:RUNJ   DATA     0                 CELL FOR JCP RUN STATUS                     
K:PPT    DATA     0                                                             
K:FSMM   GEN,16,16 #FMEMPGS,#FMEMPGS MAX NUMBER OF SMM PAGES (FORE)             
K:MDBOA  DATA     0                                                             
K:MDEOA  DATA     0                                                             
K:MDDCTI DATA     0                                                             
*                                                                               
* END OF K: CELLS                                                               
*                                                                               
LASTK:   EQU      %                 ADD K:'S BEFORE THIS                        
         TITLE    '** SYSGEN  - CONSTANTS AND PARAMETERS **'                    
*                                                                               
*                                                                               
         DO       1-#ONLINE                                                     
         ORG      (#MEMSIZE&X'FFFF')-#SYSGEN                                    
         ELSE     1-#ONLINE                                                     
         ORG      X'2000'                                                       
         FIN      1-#ONLINE                                                     
LASTHI   EQU      %                 END OF TABLE AREA                           
*                                                                               
OC       EQU      2                 OC OP LABEL INDEX                           
*                                                                               
BTFILE   DATA,2   11,'OV','GO'      TABLE OF BT FILE NAMES                      
         DATA,2   'X1','X2','X3'                                                
         DATA,2   'X4','X5','X6'                                                
         DATA,2   'X7','X8','X9'                                                
         BOUND    4                                                             
CRDCNT   DATA     0                 CARD COUNT FOR ORDER CHECK                  
*                                     BIT 0=1, :MON INPUT                       
*                                     BIT 1=1, :RES INPUT                       
*                                     BIT 2=1, SYS. RAD ALLOCATION DONE         
*                                     BIT3=1, :MEM INPUT                        
FRAD     DATA     0                 NO. ENTRIES FOR FGD. RAD FILES              
BRAD     DATA     5                 NO. ENTRIES FOR BCKG. RAD FILES             
FIOQ     DATA     0                 MAX. NO. FGD. I/O TO QUEUE                  
BIOQ     DATA     3                 MAX. NO. BCKG. I/O TO QUEUE                 
NUMBT    DATA     8                 NO. OF BT FILES. DEFAULT=8                  
SYSLD    DATA     0                 FLAG THAT :SYSLD CARD READ                  
*                                                                               
* THIS IS A TABLE OF CHANNELS WHERE EACH ITEM REPRESENTS                        
* THE OCCURENCE OF A :CHAN COMMAND                                              
*                                                                               
         BOUND    4                                                             
CHANA    EQU      %                 HW CONTAINS FIRST NDD OR ZERO               
         DATA,2   1                 ITEM ZERO IS TABLE INDEX                    
         ZERO,2   41                                                            
         BOUND    4                                                             
CHANB    EQU      %                 HW CONTAINS SECOND NDD OR ZERO              
         ZERO,2   42                                                            
         BOUND    4                                                             
CHANC    EQU      %                 BYTE CONTAIN DEV3 INDEX                     
         ZERO,1   42                                                            
         BOUND    4                                                             
DUAL     DATA     0                 INCREMENTED FOR EACH DUAL OPTION            
         PAGE                                                                   
*                                                                               
* THESE TABLES ALLOW IDENTIFICATION OF DEVICES BY MODEL #                       
*                                                                               
XTRAMODS EQU      10                NUMBER OF EXTRA MODEL #'S                   
*                                                                               
LASTMODL RES      0                                                             
MODEL#   DATA     MODEL#END-MODEL#  EBCDIC MODEL #  (4 CHAR)                    
         TEXT     '7202'            90 WORD RAD - 128 TRACKS                    
         TEXT     '7203'            90 WORD RAD - 256 TRACKS                    
         TEXT     '7204'            90 WORD RAD - 512 TRACKS                    
         TEXT     '7212'            HIGH SPEED RAD                              
         TEXT     '7232'            256 WORD RAD - 512 TRACKS                   
         TEXT     '3214'            NS RAD                                      
         TEXT     '7242'            DOUBLE SPINDLE DISK PACK                    
         TEXT     '7246'            SINGLE SPINDLE DISK PACK                    
         TEXT     '7270'            406 CYL 7242                                
         TEXT     '7275'            DISC 33                                     
         TEXT     '7261'            45M BYTE DISK PACK                          
         TEXT     '7266'            90M BYTE DISK PACK                          
         TEXT     '7251'            DIABLO REMOVEABLE DISK                      
         TEXT     '7252'            DIABLO FIXED DISK                           
         TEXT     '3242'            CARTRAGE DISC                               
         TEXT     '3243'            CARTRAGE DISC                               
         TEXT     '3277'            3333 DISC                                   
         TEXT     '3283'            6660 DISC                                   
         TEXT     '7362'            7T TAPE  (37 IPS)                           
         TEXT     '7372'            7T TAPE  (75 IPS)                           
         TEXT     '7322'            9T TAPE  (75 IPS)                           
         TEXT     '7323'            9T TAPE  (150 IPS)                          
         TEXT     '7332'            9T POTTER                                   
         TEXT     '7333'            9T POTTER                                   
         TEXT     '3325'            9T 550                                      
         TEXT     '3335'            9T 550                                      
         TEXT     '3344'            9T 550                                      
         TEXT     '3345'            9T 550                                      
         TEXT     '3346'            9T 550                                      
         TEXT     '3347'            9T 550                                      
         TEXT     '7440'            LP                                          
         DO       #PAX                                                          
         TEXT     '2310'            LP *** PAX ***                              
         ELSE                                                                   
         TEXT     '7441'            LP                                          
         FIN                                                                    
         TEXT     '7445'            LP                                          
         TEXT     '7446'            LP  (BDP)                                   
         TEXT     '7461'            LP                                          
         TEXT     '7462'            LP                                          
         TEXT     '7463'            LP                                          
         TEXT     '7464'            LP                                          
         TEXT     '7465'            LP                                          
         TEXT     '7466'            LP                                          
         TEXT     '3461'            LP                                          
         TEXT     '3462'            LP                                          
         TEXT     '3463'            LP                                          
         TEXT     '3464'            LP                                          
         TEXT     '3465'            LP                                          
         TEXT     '3466'            LP                                          
         TEXT     '7450'            LP  (LOW COST)                              
         TEXT     '7020'            TTY                                         
         TEXT     '7012'            TTY                                         
         TEXT     '4591'            KSR 35                                      
         TEXT     '4592'            DIABLO HYTYPE                               
         TEXT     '7120'            CR                                          
         TEXT     '7121'            CR                                          
         TEXT     '7122'            CR                                          
         TEXT     '7140'            CR                                          
         TEXT     '3132'            NS 300 CPM CR                               
         TEXT     '3134'            NS 600 CPM CR                               
         TEXT     '3130'            NS 1000 CPM CR                              
         TEXT     '7160'            CP                                          
         TEXT     '7165'            CP  (LOW COST)                              
         TEXT     '7062'            PR                                          
         TEXT     '7020'            PR                                          
         TEXT     '7060'            PR                                          
         TEXT     '7063'            PP                                          
         TEXT     '7020'            PP                                          
         TEXT     '7060'            PP                                          
         TEXT     '7530'            PL                                          
         TEXT     '7531'            PL                                          
         DO       #RB                                                           
         TEXT     '7601'            REMOTE STATION                              
         TEXT     '7605'            REMOTE STATION                              
         FIN      #RB                                                           
         TEXT     'LDEV'            LOGICAL DEVICE                              
         TEXT     'NO  '            NO DEVICE  (IOEX)                           
         TEXT     BLE SPINDLE DISK PACK               
         DATA,1   12                7246 SINGLE SPINDLE DISK PACK               
         DATA,1   12                7270 406 CYL 7242                           
         DATA,1   14                7275 DISC 33                                
         DATA,1   14                7261 45M BYTE DISK PACK                     
         DATA,1   14                7266 90M BYTE DISK PACK                     
         DATA,1   7                 7251 DIABLO REMOVEABLE DISK                 
         DATA,1   7                 7252 DIABLO FIXED DISK                      
         DATA,1   14                3242 CARTRAGE DISC                          
         DATA,1   14                3243 CARTRAGE DISC                          
         DATA,1   14                3277 3333 DISC                              
         DATA,1   14                3283 6660 DISC                              
         DATA,1   9                 7362 7T TAPE  (37 IPS)                      
         DATA,1   9                 7372 7T TAPE  (75 IPS)                      
         DATA,1   8                 7322 9T TAPE  (75 IPS)                      
         DATA,1   8                 7323 9T TAPE  (150 IPS)                     
         DATA,1   8                 7332 9T POTTER                              
         DATA,1   8                 7333 9T POTTER                              
         DATA,1   16                3325 9T 550                                 
         DATA,1   16                3335 9T 550                                 
         DATA,1   16                3344 9T 550                                 
         DATA,1   16                3345 9T 550                                 
         DATA,1   16                3346 9T 550                                 
         DATA,1   16                3347 9T 550                                 
         DATA,1   6                 7440 LP                                     
         DATA,1   6                 7441 LP                                     
         DATA,1   6                 7445 LP                                     
         DATA,1   6                 7446 LP  (BDP)                              
         DATA,1   6                 7461 LP                                     
         DATA,1   6                 7462 LP                                     
         DATA,1   6                 7463 LP                                     
         DATA,1   6                 7464 LP                                     
         DATA,1   6                 7465 LP                                     
         DATA,1   6                 7466 LP                                     
         DATA,1   6                 3461 LP                                     
         DATA,1   6                 3462 LP                                     
         DATA,1   6                 3463 LP                                     
         DATA,1   6                 3464 LP                                     
         DATA,1   6                 3465 LP                                     
         DATA,1   6                 3466 LP                                     
         DATA,1   6                 7450 LP  (LOW COST)                         
         DATA,1   1                 7020 TTY                                    
         DATA,1   1                 7012 TTY                                    
         DATA,1   1                 4591 KSR 35                                 
         DATA,1   1                 4693 DIABLO HYTYPE                          
         DATA,1   4                 7120 CR                                     
         DATA,1   4                 7121 CR                                     
         DATA,1   4                 7122 CR                                     
         DATA,1   4                 7140 CR                                     
         DATA,1   4                 3132 NS 300 CPM CR                          
         DATA,1   4                 3134 NS 600 CPM CR                          
         DATA,1   4                 3130 NS 1000 CPM CR                         
         DATA,1   5                 7160 CP                                     
         DATA,1   5                 7165 CP  (LOW COST)                         
         DATA,1   2                 7062 PR                                     
         DATA,1   2                 7020 PR                                     
         DATA,1   2                 7060 PR                                     
         DATA,1   3                 7063 PP                                     
         DATA,1   3                 7020 PP                                     
         DATA,1   3                 7060 PP                                     
         DATA,1   13                7530 PL                                     
         DATA,1   13                7531 PL                                     
         DO       #RB                                                           
         DATA,1   17               7601 REMOTE STATION                          
         DATA,1   17               7605 REMOTE STATION                          
         FIN      #RB                                                           
         DATA,1   19                LOGICAL DEVICE                              
         DATA,1   0                 NO   NO DEVICE  (IOEX)                      
         DATA,1   0                 NONE NO DEVICE (IOEX)                       
         DATA,1   18                ETHERNET DEVICE (SPECIAL)                   
*                                                                               
         ZERO,1   XTRAMODS                                                      
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
* DEVICE MNEMONIC                                                               
*                                                                               
MNEMONIC DATA,2   0                                                             
         DATA,2   'DC'              7202 90 WORD RAD - 128 TRACKS               
         DATA,2   'DC'              7203 90 WORD RAD - 256 TRACKS               
         DATA,2   'DC'              7204 90 WORD RAD - 512 TRACKS               
         DATA,2   'DC'              7212 HIGH SPEED RAD                         
         DATA,2   'DC'              7232 256 WORD RAD - 512 TRACKS              
         DATA,2   'DC'              3214 NS RAD                                 
         DATA,2   'DP'              7242 DOUBLE SPINDLE DISK PACK               
         DATA,2   'DP'              7246 SINGLE SPINDLE DISK PACK               
         DATA,2   'DP'              7270 406 CYL 7242                           
         DATA,2   'DP'              7275 DISC 33                                
         DATA,2   'DP'              7261 45M BYTE DISK PACK                     
         DATA,2   'DP'              7266 90M BYTE DISK PACK                     
         DATA,2   'DC'              7251 DIABLO REMOVEABLE DISK                 
         DATA,2   'DC'              7252 DIABLO FIXED DISK                      
         DATA,2   'DP'              3242 CARTRAGE DISC                          
         DATA,2   'DP'              3243 CARTRAGE DISC                          
         DATA,2   'DP'              3277 3333 DISC                              
         DATA,2   'DP'              3283 6660 DISC                              
         DATA,2   '7T'              7362 7T TAPE  (37 IPS)                      
         DATA,2   '7T'              7372 7T TAPE  (75 IPS)                      
         DATA,2   '9T'              7322 9T TAPE  (75 IPS)                      
         DATA,2   '9T'              7323 9T TAPE  (150 IPS)                     
         DATA,2   '9T'              7332 9T POTTER                              
         DATA,2   '9T'              7333 9T POTTER                              
         DATA,2   '9T'              3325 9T 550                                 
         DATA,2   '9T'              3335 9T 550                                 
         DATA,2   '9T'              3344 9T 550                                 
         DATA,2   '9T'              3345 9T 550                                 
         DATA,2   '9T'              3346 9T 550                                 
         DATA,2   '9T'              3347 9T 550                                 
         DATA,2   'LP'              7440 LP                                     
         DATA,2   'LP'              7441 LP                                     
         DATA,2   'LP'              7445 LP                                     
         DATA,2   'LP'              7446 LP  (BDP)                              
         DATA,2   'LP'              7461 LP                                     
         DATA,2   'LP'              7462 LP                                     
         DATA,2   'LP'              7463 LP                                     
         DATA,2   'LP'              7464 LP                                     
         DATA,2   'LP'              7465 LP                                     
         DATA,2   'LP'              7466 LP                                     
         DATA,2   'LP'              3461 LP                                     
         DATA,2   'LP'              3462 LP                                     
         DATA,2   'LP'              3463 LP                                     
         DATA,2   'LP'              4364 LP                                     
         DATA,2   'LP'              3465 LP                                     
         DATA,2   'LP'              3466 LP                                     
         DATA,2   'LP'              7450 LP  (LOW COST)                         
         DATA,2   'TY'              7020 TTY                                    
         DATA,2   'TY'              7012 TTY                                    
         DATA,2   'TY'              4591 KSR 35                                 
         DATA,2   'TY'              4693 DIABLO HYTYPE                          
         DATA,2   'CR'              7120 CR                                     
         DATA,2   'CR'              7121 CR                                     
         DATA,2   'CR'              7122 CR                                     
         DATA,2   'CR'              7140 CR                                     
         DATA,2   'CR'              3132 NS 300 CPM CR                          
         DATA,2   'CR'              3134 NS 600 CPM CR                          
         DATA,2   'CR'              3130 NS 1000 CPM CR                         
         DATA,2   'CP'              7160 CP                                     
         DATA,2   'CP'              7165 CP  (LOW COST)                         
         DATA,2   'PR'              7062 PR                                     
         DATA,2   'PR'              7020 PR                                     
         DATA,2   'PR'              7060 PR                                     
         DATA,2   'PP'              7063 PP                                     
         DATA,2   'PP'              7020 PP                                     
         DATA,2   'PP'              7060 PP                                     
         DATA,2   'PL'              7530 PL                                     
         DATA,2   'PL'              7531 PL                                     
         DO       #RB                                                           
         DATA,2   'RB'             7601 REMOTE STATION                          
         DATA,2   'RB'             7605 REMOTE STATION                          
         FIN      #RB                                                           
         DATA,2   'LD'              LOGICAL DEVICE                              
         DATA,2   'NO'              NO   NO DEVICE  (IOEX)                      
         DATA,2   'NO'              NONE NO DEVICE (IOEX)                       
         DATA,2   'EN'              ETHERNET DEVICE                             
         ZERO,2   XTRAMODS                                                      
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* SIDE BUFFER BUFFER SIZES                                                      
*                                                                               
*************************************************************                   
LPSIZE   EQU      133               THESE SIZES                                 
CPSIZE   EQU      120               MUST MATCH                                  
TYSIZE   EQU      256               THOSE IN CPRMON                             
*************************************************************                   
         DO       #SIDEBUF                                                      
SBUFSIZE DATA,1   0                                                             
         DATA,1   0                 7202 90 WORD RAD - 128 TRACKS               
         DATA,1   0                 7203 90 WORD RAD - 256 TRACKS               
         DATA,1   0                 7204 90 WORD RAD - 512 TRACKS               
         DATA,1   0                 7212 HIGH SPEED RAD                         
         DATA,1   0                 7232 256 WORD RAD - 512 TRACKS              
         DATA,1   0                 3214 NS RAD                                 
         DATA,1   0                 7242 DOUBLE SPINDLE DISK PACK               
         DATA,1   0                 7246 SINGLE SPINDLE DISK PACK               
         DATA,1   0                 7270 406 CYL 7242                           
         DATA,1   0                 7275 DISC 33                                
         DATA,1   0                 7261 45M BYTE DISK PACK                     
         DATA,1   0                 7266 90M BYTE DISK PACK                     
         DATA,1   0                 7251 DIABLO REMOVEABLE DISK                 
         DATA,1   0                 7252 DIABLO FIXED DISK                      
         DATA,1   0                 3242 CARTRAGE DISC                          
         DATA,1   0                 3243 CARTRAGE DISC                          
         DATA,1   0                 3277 3333 DISC                              
         DATA,1   0                 3283 6660 DISC                              
         DATA,1   0                 7362 7T TAPE  (37 IPS)                      
         DATA,1   0                 7372 7T TAPE  (75 IPS)                      
         DATA,1   0                 7322 9T TAPE  (75 IPS)                      
         DATA,1   0                 7323 9T TAPE  (150 IPS)                     
         DATA,1   0                 7332 9T POTTER                              
         DATA,1   0                 7333 9T POTTER                              
         DATA,1   0                 3325 9T 550                                 
         DATA,1   0                 3335 9T 550                                 
         DATA,1   0                 3344 9T 550                                 
         DATA,1   0                 3345 9T 550                                 
         DATA,1   0                 3346 9T 550                                 
         DATA,1   0                 3347 9T 550                                 
         DATA,1   (LPSIZE+3)/4      7440 LP                                     
         DATA,1   (LPSIZE+3)/4      7441 LP                                     
         DATA,1   (LPSIZE+3)/4      7445 LP                                     
         DATA,1   (LPSIZE+3)/4      7446 LP  (BDP)                              
         DATA,1   (LPSIZE+3)/4      7461 LP                                     
         DATA,1   (LPSIZE+3)/4      7462 LP                                     
         DATA,1   (LPSIZE+3)/4      7463 LP                                     
         DATA,1   (LPSIZE+3)/4      7464 LP                                     
         DATA,1   (LPSIZE+3)/4      7465 LP                                     
         DATA,1   (LPSIZE+3)/4      7466 LP                                     
         DATA,1   (LPSIZE+3)/4      3461 LP                                     
         DATA,1   (LPSIZE+3)/4      3462 LP                                     
         DATA,1   (LPSIZE+3)/4      3463 LP                                     
         DATA,1   (LPSIZE+3)/4      4364 LP                                     
         DATA,1   (LPSIZE+3)/4      3465 LP                                     
         DATA,1   (LPSIZE+3)/4      3466 LP                                     
         DATA,1   (LPSIZE+3)/4      7450 LP  (LOW COST)                         
         DATA,1   (TYSIZE+3)/4      7020 TTY                                    
         DATA,1   (TYSIZE+3)/4      7012 TTY                                    
         DATA,1   (TYSIZE+3)/4      4591 KSR 35                                 
         DATA,1   (TYSIZE+3)/4      4693 DIABLO HYTYPE                          
         DATA,1   (CPSIZE+3)/4      7120 CR                                     
         DATA,1   (CPSIZE+3)/4      7121 CR                                     
         DATA,1   (CPSIZE+3)/4      7122 CR                                     
         DATA,1   (CPSIZE+3)/4      7140 CR                                     
         DATA,1   (CPSIZE+3)/4      3132 NS 300 CPM CR                          
         DATA,1   (CPSIZE+3)/4      3134 NS 600 CPM CR                          
         DATA,1   (CPSIZE+3)/4      3130 NS 1000 CPM CR                         
         DATA,1   (CPSIZE+3)/4      7160 CP                                     
         DATA,1   (CPSIZE+3)/4      7165 CP  (LOW COST)                         
         DATA,1   0                 7062 PR                                     
         DATA,1   0                 7020 PR                                     
         DATA,1   0                 7060 PR                                     
         DATA,1   0                 7063 PP                                     
         DATA,1   0                 7020 PP                                     
         DATA,1   0                 7060 PP                                     
         DATA,1   0                 7530 PL                                     
         DATA,1   0                 7531 PL                                     
         DO       #RB                                                           
         DATA,1   0                7601 REMOTE STATION                          
         DATA,1   0                7605 REMOTE STATION                          
         FIN      #RB                                                           
         DATA,1   0                 LOGICAL DEVICE                              
         DATA,1   0                 NO   NO DEVICE  (IOEX)                      
         DATA,1   0                 NONE NO DEVICE (IOEX)                       
         DATA,1   0                 ETHERNET DEVICE                             
*                                                                               
         ZERO,1   XTRAMODS                                                      
         FIN      #SIDEBUF                                                      
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* I/O FLAGS FOR DCT3 SETUP                                                      
*                                                                               
IOFLAGS  DATA,1   0                                                             
         DATA,1   X'C0'             7202 90 WORD RAD - 128 TRACKS               
         DATA,1   X'C0'             7203 90 WORD RAD - 256 TRACKS               
         DATA,1   X'C0'             7204 90 WORD RAD - 512 TRACKS               
         DATA,1   X'C0'             7212 HIGH SPEED RAD                         
         DATA,1   X'C0'             7232 256 WORD RAD - 512 TRACKS              
         DATA,1   X'C0'             3214 NS RAD                                 
         DATA,1   X'C0'             7242 DOUBLE SPINDLE DISK PACK               
         DATA,1   X'C0'             7246 SINGLE SPINDLE DISK PACK               
         DATA,1   X'C0'             7270 406 CYL 7242                           
         DATA,1   X'C0'             7275 DISC 33                                
         DATA,1   X'C0'             7261 45M BYTE DISK PACK                     
         DATA,1   X'C0'             7266 90M BYTE DISK PACK                     
         DATA,1   X'C0'             7251 DIABLO REMOVEABLE DISK                 
         DATA,1   X'C0'             7252 DIABLO FIXED DISK                      
         DATA,1   X'C0'             3242 CARTRAGE DISC                          
         DATA,1   X'C0'             3243 CARTRAGE DISC                          
         DATA,1   X'C0'             3277 3333 DISC                              
         DATA,1   X'C0'             3283 6660 DISC                              
         DATA,1   X'C0'             7362 7T TAPE  (37 IPS)                      
         DATA,1   X'C0'             7372 7T TAPE  (75 IPS)                      
         DATA,1   X'C0'             7322 9T TAPE  (75 IPS)                      
         DATA,1   X'C0'             7323 9T TAPE  (150 IPS)                     
         DATA,1   X'C0'             7332 9T POTTER                              
         DATA,1   X'C0'             7333 9T POTTER                              
         DATA,1   X'C0'             3325 9T 550                                 
         DATA,1   X'C0'             3335 9T 550                                 
         DATA,1   X'C0'             3344 9T 550                                 
         DATA,1   X'C0'             3345 9T 550                                 
         DATA,1   X'C0'             3346 9T 550                                 
         DATA,1   X'C0'             3347 9T 550                                 
         DATA,1   X'80'             7440 LP                                     
         DATA,1   X'80'             7441 LP                                     
         DATA,1   X'80'             7445 LP                                     
         DATA,1   X'80'             7446 LP  (BDP)                              
         DATA,1   X'80'             7461 LP                                     
         DATA,1   X'80'             7462 LP                                     
         DATA,1   X'80'             7463 LP                                     
         DATA,1   X'80'             7464 LP                                     
         DATA,1   X'80'             7465 LP                                     
         DATA,1   X'80'             7466 LP                                     
         DATA,1   X'80'             3461 LP                                     
         DATA,1   X'80'             3462 LP                                     
         DATA,1   X'80'             3463 LP                                     
         DATA,1   X'80'             4364 LP                                     
         DATA,1   X'80'             3465 LP                                     
         DATA,1   X'80'             3466 LP                                     
         DATA,1   X'80'             7450 LP  (LOW COST)                         
         DATA,1   X'C0'             7020 TTY                                    
         DATA,1   X'C0'             7012 TTY                                    
         DATA,1   X'C0'             4591 KSR 35                                 
         DATA,1   X'C0'             4693 DIABLO HYTYPE                          
         DATA,1   X'40'             7120 CR                                     
         DATA,1   X'40'             7121 CR                                     
         DATA,1   X'40'             7122 CR                                     
         DATA,1   X'40'             7140 CR                                     
         DATA,1   X'40'             3132 NS 300 CPM CR                          
         DATA,1   X'40'             3134 NS 600 CPM CR                          
         DATA,1   X'40'             3130 NS 1000 CPM CR                         
         DATA,1   X'80'             7160 CP                                     
         DATA,1   X'80'             7165 CP  (LOW COST)                         
         DATA,1   X'40'             7062 PR                                     
         DATA,1   X'40'             7020 PR                                     
         DATA,1   X'40'             7060 PR                                     
         DATA,1   X'80'             7063 PP                                     
         DATA,1   X'80'             7020 PP                                     
         DATA,1   X'80'             7060 PP                                     
         DATA,1   X'80'             7530 PL                                     
         DATA,1   X'80'             7531 PL                                     
         DO       #RB                                                           
         DATA,1   X'C0'            7601 REMOTE STATION                          
         DATA,1   X'C0'            7605 REMOTE STATION                          
         FIN      #RB                                                           
         DATA,1   X'C0'             LOGICAL DEVICE                              
         DATA,1   X'C0'             NO   NO DEVICE  (IOEX)                      
         DATA,1   X'C0'             NONE NO DEVICE (IOEX)                       
         DATA,1   X'C0'             ETHERNET DEVICE                             
*                                                                               
         ZERO,1   XTRAMODS                                                      
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* COMMAND LIST BUFFER LENGTH IN WORDS                                           
*                                                                               
CLISTSIZ DATA,1   0                                                             
         DATA,1   8                 7202 90 WORD RAD - 128 TRACKS               
         DATA,1   8                 7203 90 WORD RAD - 256 TRACKS               
         DATA,1   8                 7204 90 WORD RAD - 512 TRACKS               
         DATA,1   8                 7212 HIGH SPEED RAD                         
         DATA,1   8                 7232 256 WORD RAD - 512 TRACKS              
         DATA,1   8                 3214 NS RAD                                 
         DATA,1   12+2*#MAP         7242 DOUBLE SPINDLE DISK PACK               
         DATA,1   12+2*#MAP         7246 SINGLE SPINDLE DISK PACK               
         DATA,1   12+2*#MAP         7270 406 CYL 7242                           
         DATA,1   12+2*#MAP         7275 DISC 33                                
         DATA,1   12+2*#MAP         7261 45M BYTE DISK PACK                     
         DATA,1   12+2*#MAP         7266 90M BYTE DISK PACK                     
         DATA,1   8                 7251 DIABLO REMOVEABLE DISK                 
         DATA,1   8                 7252 DIABLO FIXED DISK                      
         DATA,1   12+2*#MAP         3242 CARTRAGE DISC                          
         DATA,1   12+2*#MAP         3243 CARTRAGE DISC                          
         DATA,1   12+2*#MAP         3277 3333 DISC                              
         DATA,1   12+2*#MAP         3283 6660 DISC                              
         DATA,1   6                 7362 7T TAPE  (37 IPS)                      
         DATA,1   6                 7372 7T TAPE  (75 IPS)                      
         DATA,1   8                 7322 9T TAPE  (75 IPS)                      
         DATA,1   8                 7323 9T TAPE  (150 IPS)                     
         DATA,1   8                 7332 9T POTTER                              
         DATA,1   8                 7333 9T POTTER                              
         DATA,1   8                 3325 9T 550                                 
         DATA,1   8                 3335 9T 550                                 
         DATA,1   8                 3344 9T 550                                 
         DATA,1   8                 3345 9T 550                                 
         DATA,1   8                 3346 9T 550                                 
         DATA,1   8                 3347 9T 550                                 
         DATA,1   4                 7440 LP                                     
         DATA,1   4                 7441 LP                                     
         DATA,1   4                 7445 LP                                     
         DATA,1   4                 7446 LP  (BDP)                              
         DATA,1   4                 7461 LP                                     
         DATA,1   4                 7462 LP                                     
         DATA,1   4                 7463 LP                                     
         DATA,1   4                 7464 LP                                     
         DATA,1   4                 7465 LP                                     
         DATA,1   4                 7466 LP                                     
         DATA,1   4                 3461 LP                                     
         DATA,1   4                 3462 LP                                     
         DATA,1   4                 3463 LP                                     
         DATA,1   4                 4364 LP                                     
         DATA,1   4                 3465 LP                                     
         DATA,1   4                 3466 LP                                     
         DATA,1   4                 7450 LP  (LOW COST)                         
         DATA,1   10                7020 TTY                                    
         DATA,1   10                7012 TTY                                    
         DATA,1   10                4591 KSR 35                                 
         DATA,1   10                4693 DIABLO HYTYPE                          
         DATA,1   2                 7120 CR                                     
         DATA,1   2                 7121 CR                                     
         DATA,1   2                 7122 CR                                     
         DATA,1   2                 7140 CR                                     
         DATA,1   8                 3132 NS 300 CPM CR                          
         DATA,1   8                 3134 NS 600 CPM CR                          
         DATA,1   8                 3130 NS 1000 CPM CR                         
         DATA,1   39                7160 CP                                     
         DATA,1   2                 7165 CP  (LOW COST)                         
         DATA,1   8                 7062 PR                                     
         DATA,1   8                 7020 PR                                     
         DATA,1   8                 7060 PR                                     
         DATA,1   8                 7063 PP                                     
         DATA,1   8                 7020 PP                                     
         DATA,1   8                 7060 PP                                     
         DATA,1   2                 7530 PL                                     
         DATA,1   2                 7531 PL                                     
         DO       #RB                                                           
         DATA,1   40               7601 REMOTE STATION                          
         DATA,1   40               7605 REMOTE STATION                          
         FIN      #RB                                                           
         DATA,1   0                 LOGICAL DEVICE                              
         DATA,1   0                 NO   NO DEVICE  (IOEX)                      
         DATA,1   0                 NONE NO DEVICE (IOEX)                       
         DATA,1   4                 ETHERNET DEVICE                             
*                                                                               
         ZERO,1   XTRAMODS                                                      
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* SYSGEN I/O TABLE INDEXES                                                      
*                                                                               
IOTX     DATA,1   0                                                             
         DATA,1   DT:DC             7202 90 WORD RAD - 128 TRACKS               
         DATA,1   DT:DC             7203 90 WORD RAD - 256 TRACKS               
         DATA,1   DT:DC             7204 90 WORD RAD - 512 TRACKS               
         DATA,1   DT:DC             7212 HIGH SPEED RAD                         
         DATA,1   DT:DC             7232 256 WORD RAD - 512 TRACKS              
         DATA,1   DT:DC             3214 NS RAD                                 
         DATA,1   DT:DP             7242 DOUBLE SPINDLE DISK PACK               
         DATA,1   DT:DP             7246 SINGLE SPINDLE DISK PACK               
         DATA,1   DT:DP             7270 406 CYL 7242                           
         DATA,1   DT:DP             7275 DISC 33                                
         DATA,1   DT:DP             7261 45M BYTE DISK PACK                     
         DATA,1   DT:DP             7266 90M BYTE DISK PACK                     
         DATA,1   DT:DC             7251 DIABLO REMOVEABLE DISK                 
         DATA,1   DT:DC             7252 DIABLO FIXED DISK                      
         DATA,1   DT:DP             3242 CARTRAGE DISC                          
         DATA,1   DT:DP             3243 CARTRAGE DISC                          
         DATA,1   DT:DP             3277 3333 DISC                              
         DATA,1   DT:DP             3283 6660 DISC                              
         DATA,1   DT:7T             7362 7T TAPE  (37 IPS)                      
         DATA,1   DT:7T             7372 7T TAPE  (75 IPS)                      
         DATA,1   DT:9T             7322 9T TAPE  (75 IPS)                      
         DATA,1   DT:9T             7323 9T TAPE  (150 IPS)                     
         DATA,1   DT:9T             7332 9T POTTER                              
         DATA,1   DT:9T             7333 9T POTTER                              
         DATA,1   DT:9T             3325 9T 550                                 
         DATA,1   DT:9T             3335 9T 550                                 
         DATA,1   DT:9T             3344 9T 550                                 
         DATA,1   DT:9T             3345 9T 550                                 
         DATA,1   DT:9T             3346 9T 550                                 
         DATA,1   DT:9T             3347 9T 550                                 
         DATA,1   DT:LP             7440 LP                                     
         DATA,1   DT:LP             7441 LP                                     
         DATA,1   DT:LP             7445 LP                                     
         DATA,1   DT:LP             7446 LP  (BDP)                              
         DATA,1   DT:LP             7461 LP                                     
         DATA,1   DT:LP             7462 LP                                     
         DATA,1   DT:LP             7463 LP                                     
         DATA,1   DT:LP             7464 LP                                     
         DATA,1   DT:LP             7465 LP                                     
         DATA,1   DT:LP             7466 LP                                     
         DATA,1   DT:LP             3461 LP                                     
         DATA,1   DT:LP             3462 LP                                     
         DATA,1   DT:LP             3463 LP                                     
         DATA,1   DT:LP             4364 LP                                     
         DATA,1   DT:LP             3465 LP                                     
         DATA,1   DT:LP             3466 LP                                     
         DATA,1   DT:LPLP           7450 LP  (LOW COST)                         
         DATA,1   DT:TY             7020 TTY                                    
         DATA,1   DT:TY             7012 TTY                                    
         DATA,1   DT:TY             4591 KSR 35                                 
         DATA,1   DT:TY             4693 DIABLO HYTYPE                          
         DATA,1   DT:CR             7120 CR                                     
         DATA,1   DT:CR             7121 CR                                     
         DATA,1   DT:CR             7122 CR                                     
         DATA,1   DT:CR             7140 CR                                     
         DATA,1   DT:CR             3132 NS 300 CPM CR                          
         DATA,1   DT:CR             3134 NS 600 CPM CR                          
         DATA,1   DT:CR             3130 NS 1000 CPM CR                         
         DATA,1   DT:CP             7160 CP                                     
         DATA,1   DT:CPLP           7165 CP  (LOW COST)                         
         DATA,1   DT:PR             7062 PR                                     
         DATA,1   DT:PR             7020 PR                                     
         DATA,1   DT:PR             7060 PR                                     
         DATA,1   DT:PP             7063 PP                                     
         DATA,1   DT:PP             7020 PP                                     
         DATA,1   DT:PP             7060 PP                                     
         DATA,1   0                 7530 PL                                     
         DATA,1   0                 7531 PL                                     
         DO       #RB                                                           
         DATA,1   0                7601 REMOTE STATION                          
         DATA,1   0                7605 REMOTE STATION                          
         FIN      #RB                                                           
         DATA,1   0                 LOGICAL DEVICE                              
         DATA,1   0                 NO   NO DEVICE  (IOEX)                      
         DATA,1   0                 NONE NO DEVICE (IOEX)                       
         DATA,1   0                 ETHERNET DEVICE                             
         ZERO,1   XTRAMODS                                                      
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* PRE-HANDLER SUBROUTINE NAME                                                   
*                                                                               
         BOUND    8                                                             
PREHAND  EQU      %-2                                                           
         TEXT     'DISCIO  '        7202 - 90 WORD RAD - 128 TRACKS             
         TEXT     'DISCIO  '        7203 - 90 WORD RAD - 256 TRACKS             
         TEXT     'DISCIO  '        7204 - 90 WORD RAD - 512 TRACKS             
         TEXT     'DISCIO  '        7212 - HIGH SPEED RAD                       
         TEXT     'DISCIO  '        7232 - 256 WORD RAD - 512 TRACKS            
         TEXT     'DISCIO  '        3214 - NS RAD                               
         TEXT     'DPAK    '        7242 - DOUBLE SPINDLE DISK PACK             
         TEXT     'DPAK    '        7246 - SINGLE SPINDLE DISK PACK             
         TEXT     'DPAK    '        7270 - 406 CYL 7242                         
         TEXT     'DPAK    '        7275 - DISC 33                              
         TEXT     'DPAK    '        7261 - 45M BYTE DISK PACK                   
         TEXT     'DPAK    '        7266 - 90M BYTE DISK PACK                   
         TEXT     'DISCIO  '        7251 - DIABLO REMOVEABLE DISK               
         TEXT     'DISCIO  '        7252 - DIABLO FIXED DISK                    
         TEXT     'DPAK    '        3242 - CARTRAGE DISC                        
         TEXT     'DPAK    '        3243 - CARTRAGE DISC                        
         TEXT     'DPAK    '        3277 - 3333 DISC                            
         TEXT     'DPAK    '        3283 - 6660 DISC                            
         TEXT     '7TAP    '        7362 - 7T TAPE (37 IPS)                     
         TEXT     '7TAP    '        7372 - 7T TAPE (75 IPS)                     
         TEXT     'MTAP    '        7322 - 9T TAPE (75 IPS)                     
         TEXT     'MTAP    '        7323 - 9T TAPE (150 IPS)                    
         TEXT     'MTAP    '        7332 - 9T POTTER                            
         TEXT     'MTAP    '        7333 - 9T POTTER                            
         TEXT     'TAPEPRE '        3325 - 9T 550                               
         TEXT     'TAPEPRE '        3335 - 9T 550                               
         TEXT     'TAPEPRE '        3344 - 9T 550                               
         TEXT     'TAPEPRE '        3345 - 9T 550                               
         TEXT     'TAPEPRE '        3346 - 9T 550                               
         TEXT     'TAPEPRE '        3347 - 9T 550                               
         TEXT     'PRTOUT  '        7440 - LP                                   
         DO       #PAX                -                                         
         TEXT     'PAXLPRE '        2310 - LP *** PAX ***                       
         ELSE                         -                                         
         TEXT     'PRTOUT  '        7441 - LP                                   
         FIN                          -                                         
         TEXT     'PRTOUT  '        7445 - LP                                   
         TEXT     'LPPRE   '        7446 - LP (BDP)                             
         TEXT     'LPPRE   '        7461 - LP                                   
         TEXT     'LPPRE   '        7462 - LP                                   
         TEXT     'LPPRE   '        7463 - LP                                   
         TEXT     'LPPRE   '        7464 - LP                                   
         TEXT     'LPPRE   '        7465 - LP                                   
         TEXT     'LPPRE   '        7466 - LP                                   
         TEXT     '346XPRE '        3461 - LP                                   
         TEXT     '346XPRE '        3462 - LP                                   
         TEXT     '346XPRE '        3463 - LP                                   
         TEXT     '346XPRE '        3464 - LP                                   
         TEXT     '346XPRE '        3465 - LP                                   
         TEXT     '346XPRE '        3466 - LP                                   
         TEXT     'PRTLCOUT'        7450 - LP (LOW COST)                        
         TEXT     'KBTIO   '        7020 - TTY                                  
         TEXT     'KBTIO   '        7012 - TTY                                  
         TEXT     'KBTIO   '        4591 - KSR 35                               
         TEXT     'KBTIO   '        4592 - DIABLO HYTYPE                        
         TEXT     'CRDIN   '        7120 - CR                                   
         TEXT     'CRDIN   '        7121 - CR                                   
         TEXT     'CRDIN   '        7122 - CR                                   
         TEXT     'CRDIN   '        7140 - CR                                   
         TEXT     'CARDPRE '        3132 NS 300 CPM CR                          
         TEXT     'CARDPRE '        3134 NS 600 CPM CR                          
         TEXT     'CARDPRE '        3130 NS 1000 CPM CR                         
         TEXT     'CRDOUT  '        7160 - CP                                   
         TEXT     'CPLCOUT '        7165 - CP (LOW COST)                        
         TEXT     'PTAP    '        7062 - PR                                   
         TEXT     'KBTIO   '        7020 - PR                                   
         TEXT     'PTAP    '        7060 - PR                                   
         TEXT     'PTAP    '        7063 - PP                                   
         TEXT     'KBTIO   '        7020 - PP                                   
         TEXT     'PTAP    '        7060 - PP                                   
         TEXT     'PLOT    '        7530 - PL                                   
         TEXT     'PLOT    '        7531 - PL                                   
         DO       #RB                                                           
         TEXT     'RBPRE   '       7601 REMOTE STATION                          
         TEXT     'RBPRE   '       7605 REMOTE STATION                          
         FIN      #RB                                                           
         TEXT     'LDPRE   '        LOGICAL DEVICE                              
         TEXT     'IOINC   '        NO - NO DEVICE (IOEX)                       
         TEXT     'IOINC   '        NONE - NO DEVICE (IOEX)                     
         TEXT     'ENPRE   '        ETHERNET DEVICE                             
         ZERO,8   XTRAMODS                                                      
         PAGE                                                                   
*                                                                               
* POST-HANDLER SUBROUTINE NAME                                                  
*                                                                               
         BOUND    8                                                             
POSTHAND EQU      %-2                                                           
         TEXT     'DISCCU  '        7202 - 90 WORD RAD - 128 TRACKS             
         TEXT     'DISCCU  '        7203 - 90 WORD RAD - 256 TRACKS             
         TEXT     'DISCCU  '        7204 - 90 WORD RAD - 512 TRACKS             
         TEXT     'DISCCU  '        7212 - HIGH SPEED RAD                       
         TEXT     'DISCCU  '        7232 - 256 WORD RAD - 512 TRACKS            
         TEXT     'DISCCU  '        3214 - NS RAD                               
         TEXT     'DPAKCU  '        7242 - DOUBLE SPINDLE DISK PACK             
         TEXT     'DPAKCU  '        7246 - SINGLE SPINDLE DISK PACK             
         TEXT     'DPAKCU  '        7270 - 406 CYL 7242                         
         TEXT     'DPAKCU  '        7275 - DISC 33                              
         TEXT     'DPAKCU  '        7261 - 45M BYTE DISK PACK                   
         TEXT     'DPAKCU  '        7266 - 90M BYTE DISK PACK                   
         TEXT     'DISCCU  '        7251 - DIABLO REMOVEABLE DISK               
         TEXT     'DISCCU  '        7252 - DIABLO FIXED DISK                    
         TEXT     'DPAKCU  '        3242 - CARTRAGE DISC                        
         TEXT     'DPAKCU  '        3243 - CARTRAGE DISC                        
         TEXT     'DPAKCU  '        3277 - 3333 DISC                            
         TEXT     'DPAKCU  '        3283 - 6660 DISC                            
         TEXT     '7TAPCU  '        7362 - 7T TAPE (37 IPS)                     
         TEXT     '7TAPCU  '        7372 - 7T TAPE (75 IPS)                     
         TEXT     'MTAPCU  '        7322 - 9T TAPE (75 IPS)                     
         TEXT     'MTAPCU  '        7323 - 9T TAPE (150 IPS)                    
         TEXT     'MTAPCU  '        7332 - 9T POTTER                            
         TEXT     'MTAPCU  '        7333 - 9T POTTER                            
         TEXT     'TAPEPOST'        3325 - 9T 550                               
         TEXT     'TAPEPOST'        3335 - 9T 550                               
         TEXT     'TAPEPOST'        3344 - 9T 550                               
         TEXT     'TAPEPOST'        3345 - 9T 550                               
         TEXT     'TAPEPOST'        3346 - 9T 550                               
         TEXT     'TAPEPOST'        3347 - 9T 550                               
         TEXT     'PRTCU   '        7440 - LP                                   
         DO       #PAX                -                                         
         TEXT     'PAXLPOST'        2310 - LP *** PAX ***                       
         ELSE                         -                                         
         TEXT     'PRTCU   '        7441 - LP                                   
         FIN                          -                                         
         TEXT     'PRTCU   '        7445 - LP                                   
         TEXT     'LPPOST  '        7446 - LP (BDP)                             
         TEXT     'LPPOST  '        7461 - LP                                   
         TEXT     'LPPOST  '        7462 - LP                                   
         TEXT     'LPPOST  '        7463 - LP                                   
         TEXT     'LPPOST  '        7464 - LP                                   
         TEXT     'LPPOST  '        7465 - LP                                   
         TEXT     'LPPOST  '        7466 - LP                                   
         TEXT     '346XPOST'        3461 - LP                                   
         TEXT     '346XPOST'        3462 - LP                                   
         TEXT     '346XPOST'        3463 - LP                                   
         TEXT     '346XPOST'        3464 - LP                                   
         TEXT     '346XPOST'        3465 - LP                                   
         TEXT     '346XPOST'        3466 - LP                                   
         TEXT     'PRTLCCU '        7450 - LP (LOW COST)                        
         TEXT     'KBTCU   '        7020 - TTY                                  
         TEXT     'KBTCU   '        7012 - TTY                                  
         TEXT     'KBTCU   '        4591 - KSR 35                               
         TEXT     'KBTCU   '        4592 - DIABLO HYTYPE                        
         TEXT     'CRDINCU '        7120 - CR                                   
         TEXT     'CRDINCU '        7121 - CR                                   
         TEXT     'CRDINCU '        7122 - CR                                   
         TEXT     'CRDINCU '        7140 - CR                                   
         TEXT     'CARDPOST'        3132 NS 300 CPM CR                          
         TEXT     'CARDPOST'        3134 NS 600 CPM CR                          
         TEXT     'CARDPOST'        3130 NS 1000 CPM CR                         
         TEXT     'CRDOCU  '        7160 - CP                                   
         TEXT     'CPLCCU  '        7165 - CP (LOW COST)                        
         TEXT     'PTAPCU  '        7062 - PR                                   
         TEXT     'KBTCU   '        7020 - PR                                   
         TEXT     'PTAPCU  '        7060 - PR                                   
         TEXT     'PTAPCU  '        7063 - PP                                   
         TEXT     'KBTCU   '        7020 - PP                                   
         TEXT     'PTAPCU  '        7060 - PP                                   
         TEXT     'PLOTCU  '        7530 - PL                                   
         TEXT     'PLOTCU  '        7531 - PL                                   
         DO       #RB                                                           
         TEXT     'RBPOST  '       7601 REMOTE STATION                          
         TEXT     'RBPOST  '       7605 REMOTE STATION                          
         FIN      #RB                                                           
         TEXT     'LDPOST  '        LOGICAL DEVICE                              
         TEXT     'IOINC   '        NO - NO DEVICE (IOEX)                       
         TEXT     'IOINC   '        NONE - NO DEVICE (IOEX)                     
         TEXT     'ENPOST  '        ETHERNET DEVICE                             
         ZERO,8   XTRAMODS                                                      
         PAGE                                                                   
*                                                                               
* NUMBER OF SECTORS PER TRACK                                                   
*                                                                               
NSPT     DATA,1   0                                                             
         DATA,1   16                7202 - 90 WORD RAD - 128 TRACKS             
         DATA,1   16                7203 - 90 WORD RAD - 256 TRACKS             
         DATA,1   16                7204 - 90 WORD RAD - 512 TRACKS             
         DATA,1   82                7212 - HIGH SPEED RAD                       
         DATA,1   12                7232 - 256 WORD RAD - 512 TRACKS            
         DATA,1   11                3214 - NS RAD                               
         DATA,1   6                 7242 - DOUBLE SPINDLE DISK PACK             
         DATA,1   6                 7246 - SINGLE SPINDLE DISK PACK             
         DATA,1   6                 7270 - 406 CYL 7242                         
         DATA,1   11                7275 - DISC 33                              
         DATA,1   11                7261 - 45M BYTE DISK PACK                   
         DATA,1   11                7266 - 90M BYTE DISK PACK                   
         DATA,1   16                7251 - DIABLO REMOVEABLE DISK               
         DATA,1   16                7252 - DIABLO FIXED DISK                    
         DATA,1   7                 3242 - CARTRAGE DISC                        
         DATA,1   7                 3243 - CARTRAGE DISC                        
         DATA,1   12                3277 - 3333 DISC                            
         DATA,1   12                3283 - 6660 DISC                            
         ZERO,1   MODELMAX-(BA(%)-1-BA(NSPT))                                   
         BOUND    4                                                             
*                                                                               
* NUMBER OF WORDS PER SECTOR                                                    
*                                                                               
NWPS     DATA,2   0                                                             
         DATA,2   90                7202 - 90 WORD RAD - 128 TRACKS             
         DATA,2   90                7203 - 90 WORD RAD - 256 TRACKS             
         DATA,2   90                7204 - 90 WORD RAD - 512 TRACKS             
         DATA,2   256               7212 - HIGH SPEED RAD                       
         DATA,2   256               7232 - 256 WORD RAD - 512 TRACKS            
         DATA,2   256               3214 - NS RAD                               
         DATA,2   256               7242 - DOUBLE SPINDLE DISK PACK             
         DATA,2   256               7246 - SINGLE SPINDLE DISK PACK             
         DATA,2   256               7270 - 406 CYL 7242                         
         DATA,2   256               7275 - DISC 33                              
         DATA,2   256               7261 - 45M BYTE DISK PACK                   
         DATA,2   256               7266 - 90M BYTE DISK PACK                   
         DATA,2   90                7251 - DIABLO REMOVEABLE DISK               
         DATA,2   90                7252 - DIABLO FIXED DISK                    
         DATA,2   256               3242 - CARTRAGE DISC                        
         DATA,2   256               3243 - CARTRAGE DISC                        
         DATA,2   256               3277 - 3333 DISC                            
         DATA,2   256               3283 - 6660 DISC                            
         ZERO,2   MODELMAX-(HA(%)-1-HA(NWPS))                                   
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* NUMBER OF TRACKS PER CYLINDER                                                 
*                                                                               
NTPC     DATA,2   0                                                             
         DATA,2   128               7202 - 90 WORD RAD - 128 TRACKS             
         DATA,2   256               7203 - 90 WORD RAD - 256 TRACKS             
         DATA,2   512               7204 - 90 WORD RAD - 512 TRACKS             
         DATA,2   64                7212 - HIGH SPEED RAD                       
         DATA,2   512               7232 - 256 WORD RAD - 512 TRACKS            
         DATA,2   256               3214 - NS RAD                               
         DATA,2   20                7242 - DOUBLE SPINDLE DISK PACK             
         DATA,2   20                7246 - SINGLE SPINDLE DISK PACK             
         DATA,2   20                7270 - 406 CYL 7242                         
         DATA,2   19                7275 - DISC 33                              
         DATA,2   20                7261 - 45M BYTE DISK PACK                   
         DATA,2   20                7266 - 90M BYTE DISK PACK                   
         DATA,2   407               7251 - DIABLO REMOVEABLE DISK               
         DATA,2   407               7252 - DIABLO FIXED DISK                    
         DATA,2   2                 3242 - CARTRAGE DISC                        
         DATA,2   2                 3243 - CARTRAGE DISC                        
         DATA,2   19                3277 - 3333 DISC                            
         DATA,2   19                3283 - 6660 DISC                            
         ZERO,2   MODELMAX-(HA(%)-1-HA(NTPC))                                   
         BOUND    4                                                             
*                                                                               
* NUMBER OF CYLINDERS                                                           
*                                                                               
NCYL     DATA,2   0                                                             
         DATA,2   1                 7202 - 90 WORD RAD - 128 TRACKS             
         DATA,2   1                 7203 - 90 WORD RAD - 256 TRACKS             
         DATA,2   1                 7204 - 90 WORD RAD - 512 TRACKS             
         DATA,2   1                 7212 - HIGH SPEED RAD                       
         DATA,2   1                 7232 - 256 WORD RAD - 512 TRACKS            
         DATA,2   1                 3214 - NS RAD                               
         DATA,2   200               7242 - DOUBLE SPINDLE DISK PACK             
         DATA,2   200               7246 - SINGLE SPINDLE DISK PACK             
         DATA,2   400               7270 - 406 CYL 7242                         
         DATA,2   404               7275 - DISC 33                              
         DATA,2   200               7261 - 45M BYTE DISK PACK                   
         DATA,2   404               7266 - 90M BYTE DISK PACK                   
         DATA,2   1                 7251 - DIABLO REMOVEABLE DISK               
         DATA,2   1                 7252 - DIABLO FIXED DISK                    
         DATA,2   400               3242 - CARTRAGE DISC                        
         DATA,2   400               3243 - CARTRAGE DISC                        
         DATA,2   404               3277 - 3333 DISC                            
         DATA,2   808               3283 - 6660 DISC                            
         ZERO,2   MODELMAX-(HA(%)-1-HA(NCYL))                                   
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* SECTOR SHIFT VALUE FOR BUILDING SEEK ADDRESS                                  
*                                                                               
SECTSHFT DATA,1   0                                                             
         DATA,1   16                7202 - 90 WORD RAD - 128 TRACKS             
         DATA,1   16                7203 - 90 WORD RAD - 256 TRACKS             
         DATA,1   16                7204 - 90 WORD RAD - 512 TRACKS             
         DATA,1   16                7212 - HIGH SPEED RAD                       
         DATA,1   16                7232 - 256 WORD RAD - 512 TRACKS            
         DATA,1   16                3214 - NS RAD                               
         DATA,1   0                 7242 - DOUBLE SPINDLE DISK PACK             
         DATA,1   0                 7246 - SINGLE SPINDLE DISK PACK             
         DATA,1   0                 7270 - 406 CYL 7242                         
         DATA,1   0                 7275 - DISC 33                              
         DATA,1   0                 7261 - 45M BYTE DISK PACK                   
         DATA,1   0                 7266 - 90M BYTE DISK PACK                   
         DATA,1   16                7251 - DIABLO REMOVEABLE DISK               
         DATA,1   16                7252 - DIABLO FIXED DISK                    
         DATA,1   0                 3242 - CARTRAGE DISC                        
         DATA,1   0                 3243 - CARTRAGE DISC                        
         DATA,1   0                 3277 - 3333 DISC                            
         DATA,1   0                 3283 - 6660 DISC                            
         ZERO,1   MODELMAX-(BA(%)-1-BA(SECTSHFT))                               
         BOUND    4                                                             
*                                                                               
* TRACK  SHIFT VALUE FOR BUILDING SEEK ADDRESS                                  
*                                                                               
TRAKSHFT DATA,1   0                                                             
         DATA,1   20                7202 - 90 WORD RAD - 128 TRACKS             
         DATA,1   20                7203 - 90 WORD RAD - 256 TRACKS             
         DATA,1   20                7204 - 90 WORD RAD - 512 TRACKS             
         DATA,1   23                7212 - HIGH SPEED RAD                       
         DATA,1   20                7232 - 256 WORD RAD - 512 TRACKS            
         DATA,1   20                3214 - NS RAD                               
         DATA,1   8                 7242 - DOUBLE SPINDLE DISK PACK             
         DATA,1   8                 7246 - SINGLE SPINDLE DISK PACK             
         DATA,1   8                 7270 - 406 CYL 7242                         
         DATA,1   8                 7275 - DISC 33                              
         DATA,1   8                 7261 - 45M BYTE DISK PACK                   
         DATA,1   8                 7266 - 90M BYTE DISK PACK                   
         DATA,1   20                7251 - DIABLO REMOVEABLE DISK               
         DATA,1   20                7252 - DIABLO FIXED DISK                    
         DATA,1   8                 3242 - CARTRAGE DISC                        
         DATA,1   8                 3243 - CARTRAGE DISC                        
         DATA,1   8                 3277 - 3333 DISC                            
         DATA,1   8                 3283 - 6660 DISC                            
         ZERO,1   MODELMAX-(BA(%)-1-BA(TRAKSHFT))                               
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* CYLINDER SHIFT VALUE FOR BUILDING SEEK ADDRESS                                
*                                                                               
CYLSHFT  DATA,1   0                                                             
         DATA,1   20                7202 - 90 WORD RAD - 128 TRACKS             
         DATA,1   20                7203 - 90 WORD RAD - 256 TRACKS             
         DATA,1   20                7204 - 90 WORD RAD - 512 TRACKS             
         DATA,1   23                7212 - HIGH SPEED RAD                       
         DATA,1   20                7232 - 256 WORD RAD - 512 TRACKS            
         DATA,1   20                3214 - NS RAD                               
         DATA,1   16                7242 - DOUBLE SPINDLE DISK PACK             
         DATA,1   16                7246 - SINGLE SPINDLE DISK PACK             
         DATA,1   16                7270 - 406 CYL 7242                         
         DATA,1   16                7275 - DISC 33                              
         DATA,1   16                7261 - 45M BYTE DISK PACK                   
         DATA,1   16                7266 - 90M BYTE DISK PACK                   
         DATA,1   20                7251 - DIABLO REMOVEABLE DISK               
         DATA,1   20                7252 - DIABLO FIXED DISK                    
         DATA,1   16                3242 - CARTRAGE DISC                        
         DATA,1   16                3243 - CARTRAGE DISC                        
         DATA,1   16                3277 - 3333 DISC                            
         DATA,1   16                3283 - 6660 DISC                            
         ZERO,1   MODELMAX-(BA(%)-1-BA(CYLSHFT))                                
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* DEVICE  PARAMETERS                                                            
*                                                                               
DEDXFLAG EQU      X'80'                                                         
DEDFFLAG EQU      X'40'                                                         
SYSFLAG  EQU      X'20'                                                         
RADFLAG  EQU      X'10'                                                         
ALOCFLAG EQU      X'08'                                                         
SYMBFLAG EQU      X'04'                                                         
*                                                                               
DEDXCC   EQU      8                                                             
DEDFCC   EQU      4                                                             
SYSCC    EQU      2                                                             
RADCC    EQU      1                                                             
*                                                                               
NOFLAG   EQU      8                                                             
*                                                                               
NOTYPE   EQU      0                                                             
*                                                                               
DLOLAY   EQU      0                 DON'T LOAD                                  
ROLAY    EQU      1                 RES OLAY                                    
NROLAY   EQU      2                 NON-RES OLAY                                
LOADED   EQU      3                 LOADED                                      
PROLAY   EQU      4                 PERM RES OLAY                               
SSOLAY   EQU      5                 SUB SYS OLAY                                
*                                                                               
         PAGE                                                                   
STDLB1   DATA,2   HA(STDLBEND)-HA(STDLB1)   OPERATIONAL LABEL TABLE             
*        STANDARD LABELS                                                        
         DATA,2   'C ','OC','LO'                                                
         DATA,2   'LL','DO','CO'                                                
         DATA,2   'BO','CI','SI'                                                
         DATA,2   'BI','SO'                                                     
STDLBEND ZERO,2   50                ROOM FOR 50 USER LABELS                     
         BOUND    4                                                             
STDLB2   EQU      %                 PERMANENT OP LABEL ASSIGNMENTS              
         ZERO,1   HA(STDLBEND)-HA(STDLB1)                                       
         ZERO,1   50                                                            
         BOUND    4                 START ON WORD BOUNDARY                      
STDLBX   EQU      %                                                             
         DO1      #ERRORLOG                                                     
         DATA     '  ER'                                                        
         DO1      #CRASH                                                        
         DATA     '  SE'                                                        
         DO       #DEBUG                                                        
         DATA     '  DP','  DL','  DI'                                          
         DATA     '  P1','  P2'                                                 
         FIN      #DEBUG                                                        
         DO1      #MEDIA                                                        
         DATA     '  MO'                                                        
LBLEND   EQU      %                                                             
*                                   INT. LABEL TABLE. ROOM FOR 226 INTS.        
INTLB1   DATA,2   1                 FIRST UNUSED ENTRY                          
         RES,2    226               EBCDIC NAMES OF INTS.                       
         BOUND    4                 START ON WORD BOUNDARY                      
INTLB2   RES,2    227               ADDRESS OF INTS.                            
         TITLE    '** SYSGEN  - INITIALIZATION AND CONTROL **'                  
*                                                                               
*                                                                               
*                                                                               
A01      LI,R0    0                                                             
         STW,R0   CRDCNT                                                        
         STW,R0   WRITELO+2                                                     
         STW,R0   READSI+2                                                      
         STW,R0   WRITEBO+2                                                     
         STW,R0   SIDEV                                                         
*                                                                               
         LI,R9    0                                                             
         LI,R7    MSG3                                                          
         BAL,R8   TYPE              TYPE CP-R SYSGEN                            
*                                                                               
         DO1      #ONLINE                                                       
         B        A02A                                                          
*                                                                               
         RD,0     0                 READ SSW                                    
         BCR,2    A02A              IF SS3 RESET, USE DEFAULTS                  
*                                   IF ONLY SS3 SET, ASK FOR I/O DEVICES        
         LI,R9    0                                                             
         LI,R7    MSG3A                                                         
         BAL,R8   TYPE              IN,OUT DEVICES                              
A02      LI,R7    READTY                                                        
         BAL,R8   READ              GO TO INPUT IN,OUT DEVICES                  
A02A     LI,R0    1                                                             
         STW,R0   SCANPMA           SET SCAN PARAM.                             
         LI,R0    0                                                             
         STW,R0   SCANPMB                                                       
         STW,R0   SCANPMC                                                       
         LW,R7    SCANPM                                                        
         BAL,R8   SCAN              GET INPUT DEVICE                            
         CI,R6    1                 END OF FIELD                                
         BE       A04               YES                                         
A03      BAL,R8   ERROR             NO, ERROR                                   
         B        A02               GO TRY AGAIN                                
A04      SLS,R8   -8                                                            
         CW,R8    A93               IS COMMAND :SYSGEN                          
         BNE      A03               NO, ERROR                                   
         MTW,1    SCANPMB           SET FOR NOT FIRST FIELD                     
         LI,R4    A03               SET INPUT PM FOR CHKDEV                     
         LI,R13   1                                                             
A05      CI,R6    2                 END OF CARD                                 
         BE       A07               YES                                         
         LI,R0    0                                                             
         STW,R0   SCANPMC                                                       
         BAL,R8   SCAN              GET KEYWORD                                 
         SLS,R8   -8                                                            
         CW,R8    A94               IS IT 'IN'                                  
         BE       A06               YES                                         
         CW,R8    A95               IS TI 'OUT'                                 
         BNE      A03               NO, ERROR                                   
         LI,R12   2                 MASK FOR LO DEVICE                          
         BAL,R8   CHKDEV            GO CHECK LEGALITY OF LO DEV.                
         STW,R8   WRITELO+2         SAVE LO DEV.                                
         B        A05                                                           
A06      LI,R12   1                 MASK FOR SI DEV.                            
         BAL,R8   CHKDEV            CHECK FOR LEGAL SI DEV.                     
         STW,R8   SIDEV             SAVE SI DEV                                 
         B        A05                                                           
A07      LW,R0    SIDEV             WAS AN INPUT DEV INPUT                      
         BNEZ     A09               YES                                         
         AI,R11   X'100'            NO, ERROR. STEP FIELD NO. FOR ALRAM         
         B        A03                                                           
A09      STW,R0   READSI+2          STORE SI DEVICE                             
A10      LI,R7    READSI                                                        
         BAL,R8   READ              READ NEXT CONTROL CARD                      
         LI,R7    WRITELO                                                       
         BAL,R8   WRITE             LOG CONTROL CARD                            
         LW,R0    SIDEV                                                         
         STW,R0   READSI+2          RESTORE SI DEV. IN CASE INPUT ERR           
         LI,R0    1                                                             
         STW,R0   SCANPMA           SET TO EBCDIC                               
         LI,R0    0                                                             
         STW,R0   SCANPMB           SET TO FIRST TIME                           
         STW,R0   SCANPMC           SET TO NOT DEVICE TYPE INPUT                
         LW,R7    SCANPM                                                        
         BAL,R8   SCAN              SCAN FIRST FIELD ON CARD                    
         CI,R6    1                                                             
         BL       A13               ERROR                                       
         BG       A25               END OF CARD, CHECK FOR BLANK CARD           
A12      LI,R9    X'FFF00'          MASK FOR FIRST 3 CHARS.                     
         LW,R1    A91                                                           
         CS,R8    A91,R1            IS IT A LEGAL COMMAND                       
         BE       A15               YES                                         
         BDR,R1   %-2                                                           
A13      BAL,R8   ERROR             ERROR IN FIELD ONE                          
         B        A10               REREAD INPUT FROM TY                        
A15      MTW,1    SCANPMB           SET TO NOT FIRST TIME                       
         LH,R1    A92,R1            GET ADDRESS TO PROCESS CARD                 
         AND,R1   HWMASK                                                        
         B        0,R1              BRANCH TO PROCESSING ROUTINE                
*                                                                               
*                                                                               
A25      CI,R10   0                 BLANK CARD                                  
         BE       A10               YES, READ NEXT CARD                         
         B        A12               NO, PROCESS CARD                            
         PAGE                                                                   
*                                                                               
*                                                                               
*                                   CONSTANTS FOR AXX REGION                    
A91      DATA     A92-A91-1         NO. OF ENTRIES IN TABLE                     
         TEXT     'CHA '            LEGAL CONTROL COMMANDS                      
         TEXT     'DEV '                                                        
         TEXT     'STD '                                                        
         TEXT     'MON '                                                        
         TEXT     'RES '                                                        
         TEXT     'CTI '                                                        
         TEXT     'INT '                                                        
         TEXT     'ALL '                                                        
         TEXT     'PUN '                                                        
         TEXT     'FIN '                                                        
         TEXT     'SYS '                                                        
         TEXT     'COM'                                                         
         DO1      #LN                                                           
         TEXT     'COC '                                                        
         TEXT     'SITE'                                                        
         DO1      #550                                                          
         TEXT     'PROC'            PROCESSOR CARD                              
         TEXT     'MOD '            PATCHER                                     
         TEXT     'MDEF'            MODEL # DEFININTION                         
         TEXT     'MEMO'            :MEMORY COMMABD                             
         TEXT     'PART'                                                        
         PAGE                                                                   
A92      DATA,2   0                 TABLE OF ADDRESSES OF ROUTINES              
         DATA,2   B01               :CHAN                                       
         DATA,2   C01               :DEVICE                                     
         DATA,2   D01               :STDLB                                      
         DATA,2   E01               :MONITOR                                    
         DATA,2   F01               :RESERVE                                    
         DATA,2   G01               :CTINT                                      
         DATA,2   H01               :INTLB                                      
         DATA,2   J01               :ALLOT                                      
         DATA,2   K01               :PUNCH                                      
         DATA,2   K10               :FIN                                        
         DATA,2   K20               :SYSLD                                      
         DATA,2   A10                                                           
         DO1      #LN                                                           
         DATA,2   COC1                                                          
         DATA,2   SITECARD                                                      
         DO1      #550                                                          
         DATA,2   PROCESS                                                       
         DATA,2   COLONMOD                                                      
         DATA,2   MODEL             :MDEF                                       
         DATA,2   Z01               :MEMORY COMMAND                             
         DATA,2   Z01               :PARTITION COMMAND                          
         BOUND    4                                                             
A93      DATA     'SYS'                                                         
A94      DATA     'IN '                                                         
A95      DATA     'OUT'                                                         
         TITLE    '** SYSGEN  - PROCESS :CHAN COMMAND **'                       
B01      LW,R8    DEVNEXT           GET NEXT DCT INDEX                          
         LH,R1    CHANA             GET PRESENT CHAN INDEX                      
         STB,R8   CHANC,R1          SAVE DEV INDEX                              
         CI,R6    2                 DONE WITH CARD                              
         BE       B10               YES                                         
         BAL,R8   SCAN              GET NEXT EBCDIC FIELD                       
         CI,R6    0                 LEGAL                                       
         BNE      B11               NO,ERROR                                    
         CW,R8    DUALT             IS IT DUAL                                  
         BNE      B11               NO ERROR                                    
         LI,R2    -1                SET TO NDD                                  
         STW,R2   SCANPMC                                                       
         BAL,R8   SCAN              GET NEXT HEX FIELD                          
         CI,R6    0                 MUST BE (DUAL,NDD,NDD)                      
         BNE      B11               NOT,ERROR                                   
         CI,R10   5                 3 CHARACTERS                                
         BNE      B11               NO,ERROR                                    
         STH,R8   CHANA,R1          SAVE FIRST CONTROLLER ADDRESS               
         LI,R2    -1                SET TO NDD                                  
         STW,R2   SCANPMC                                                       
         BAL,R8   SCAN              GET LAST HEX FIELD                          
         CI,R6    2                 MUST BE END OF CARD                         
         BNE      B11               NO,ERROR                                    
         CI,R10   5                 3 CHARACTERS                                
         BNE      B11               NOT,ERROR                                   
         STH,R8   CHANB,R1          SAVE SECOND CONTROLLER ADDRESS              
         MTW,1    DUAL              FLAG DUAL OPTION FOUND                      
B10      MTH,1    CHANA             BUMP NUMBER OF CHANNELS                     
         LH,R1    CHANA                                                         
         CI,R1    41                MAX USED                                    
         BNE      %+2               NO                                          
B11      BAL,R8   ERROR             YES                                         
         B        A10               RETURN                                      
DUALT    TEXT     'DUAL'                                                        
         TITLE    '** SYSGEN  - PROCESS :PROC COMMAND FOR 550 **'               
*                                                                               
* 550 PROCESSOR CONFIGURATION CARD                                              
*                                                                               
         DO       #550                                                          
PROCESS  RES      0                                                             
         CI,R6    2                 END OF CARD                                 
         BE       A10               YES                                         
*                                   NO                                          
         BAL,R8   SCAN              SCAN FOR KEY WORD                           
         CI,R6    0                 END OF SUBFIRELD                            
         BNE      B11               NO, ERROR                                   
*                                   YES                                         
         LI,R6    PRTYPEND-PRTYPE-1                                             
B22      CW,R8    PRTYPE,R6         LOOK FOR KEY WORD                           
         BE       B23               FOUND IT                                    
         BDR,R6   B22               LOOP                                        
         B        B11               BAD KEY WORD                                
*                                                                               
B23      STW,R6   PRTEMP            SAVE KEYWORD INDEX                          
*                                                                               
         MTW,1    SCANPMA           SET SCAN FOR HEX                            
         BAL,R8   SCAN              SCAN FOR ADDRESS                            
         CI,R6    0                 ERROR IF NOT EOC OR EOF                     
         BLE      B11               ERROR                                       
*                                   OK                                          
         MTW,-1   SCANPMA           SET SCAN BACK TO EBCDIC                     
         CI,R8    64                CHECK ADDR                                  
         BGE      B11               TOO BIG                                     
*                                   OK                                          
         LW,R1    R8                GET ADDRESS                                 
         LB,R0    CONFIGT,R1        CHECK TABLE FOR OLD TYPE                    
         BNEZ     B11               DUPLICATE ADDRESS                           
         LW,R0    PRTEMP            GET KEYWORD INDEX                           
         STB,R0   CONFIGT,R1        SAVE PROCESSOR TYPE                         
         MTW,1    #CONFIG           KEEP COUNT                                  
         B        PROCESS           LOOP THROUGH ALL OPTIONS                    
         PAGE                                                                   
*                                                                               
PRTEMP   DATA     0                                                             
*                                                                               
PRTYPE   DATA     0                                                             
         TEXT     'CPU '                                                        
         TEXT     'MI  '                                                        
         TEXT     'PI  '                                                        
         TEXT     'MIOP'                                                        
         TEXT     'RMP '                                                        
         TEXT     'CT  '                                                        
         TEXT     'SU  '                                                        
PRTYPEND RES      0                                                             
*                                                                               
CONFIGT  ZERO,1   64                64 BYTES FOR PROCESSOR TYPES                
         FIN      #550                                                          
         TITLE    '** SYSGEN  - SYSGEN PATCHER                 **'              
*                                                                               
* PATCHER FOR SYSGEN                                                            
*                                                                               
COLONMOD RES      0                                                             
         BAL,R8   SCAN              SCAN FOR ANY KEYWORD                        
         CI,R6    0                 IS IT END OF SUBFIELD                       
         BNE      B11               NO, ERROR                                   
*                                   YES                                         
         MTW,1    SCANPMA           SET SCAN FOR HEX                            
         BAL,R8   SCAN              SCAN FOR ADDR                               
         CI,R6    0                                                             
         BLE      B11               ERROR IF NOT EOC OR EOF                     
         LW,R1    R8                SAVE ADDRESS                                
*                                   OK                                          
MODLOOP  RES      0                                                             
         CI,R6    2                 IS IT END OF CARD                           
         BE       A10               YES, QUIT NOW                               
*                                   NO, ITS END OF FIELD                        
         BAL,R8   SCAN              GET DATA                                    
         CI,R6    0                                                             
         BLE      B11               ERROR IF NOT END OF CARD OR FIELD           
*                                   OK                                          
         STW,R8   *R1               STORE INTO ADDR                             
         AI,R1    1                 BUMP ADDR                                   
*                                                                               
         B        MODLOOP                                                       
         TITLE    '** SYSGEN  - PROCESS :DEVICE COMMAND **'                     
*                                                                               
*                                                                               
*                                                                               
C01      CI,R6    2                                                             
         BE       DEVERROR          ERROR IF END OF CARD                        
         LH,R1    CHANA             ANY :CHAN COMMANDS YET                      
         CI,R1    1                 INITIAL VALUE                               
         BE       DEVERROR          NO,ERROR                                    
*                                                                               
         LI,R0    1                                                             
         STW,R0   SCANPMC           SET FOR DEVICE TYPE INPUT                   
C03      LW,R7    SCANPM                                                        
         BAL,R8   SCAN              AND SCAN FOR NEXT FIELD                     
*                                                                               
         CI,R6    1                 IS IT END OF FIELD                          
         BE       C07               NO                                          
*                                   YES                                         
COCERROR RES      0                                                             
DEVERROR RES      0                 ALL DEVICE CARD ERRORS COME HERE            
         BAL,R8   ERROR             PRINT ERROR                                 
*                                                                               
         B        A10               READ NEXT CARD                              
         PAGE                                                                   
*                                                                               
* HOUSEKEEP DEVICE DATA                                                         
*                                                                               
C07      RES      0                                                             
         LW,R1    DEVNEXT           DEVICE INDEX                                
         CI,R1    MAXDEV            IS IT TOO BIG                               
         BGE      DEVERROR          YES, ERROR                                  
*                                   NO                                          
         STH,R8   DEVADDR,R1        SAVE DEVICE ADDRESS                         
*                                                                               
         LH,R3    R8                SAVE MNEMONIC IN R3                         
         LI,R0    0                                                             
         STB,R0   DEVFLAGS,R1       CLEAR FLAGS FIELD                           
         DO1      #DEBUG                                                        
         STB,R0   DEVDEBUG,R1       CLEAR DEBUG                                 
         STB,R0   DEVDISCX,R1       CLEAR DISC INDEX VALUE                      
         STB,R0   DEVMODX,R1        CLEAR MODEL # INDEX                         
         STB,R0   DEVATTEN,R1       CLEAR ATTENDABLE DEVICE                     
         DO       #RB                                                           
         LI,R0    X'40'                                                         
         STB,R0   DEVRB,R1          DEFAULT RB SWITCHES                         
         FIN      #RB                                                           
         PAGE                                                                   
*                                                                               
* FIND DEVICE AND CHECK FOR ERRORS                                              
*                                                                               
         LI,R8    0                                                             
         STW,R8   SCANPMC           SCAN FOR EBCDIC                             
*                                                                               
C07A     RES      0                                                             
         BAL,R8   SCAN              GET MODEL # INTO R8                         
         CI,R6    1                 END OF FIELD OR CARD                        
         BL       DEVERROR          NO,ERROR                                    
*                                                                               
         LW,R2    LASTMODL          # OF MODEL #'S                              
C07B     CW,R8    MODEL#,R2         FIND MODEL #                                
         BE       C07C                                                          
C07B1    BDR,R2   C07B                                                          
         B        DEVERROR          CANT FIND, ERROR                            
*                                                                               
C07C     RES      0                 R2 = MODEL INDEX                            
         CH,R3    MNEMONIC,R2       IS THIS THE SAME NAME                       
         BNE      C07B1             NO, NOT THIS ONE                            
         STB,R2   DEVMODX,R1        SAVE MODEL NUMBER INDEX                     
*                                                                               
         LH,R8    DEVADDR,R1        GET DEVICE ADDRESS                          
         AI,R1    -1                                                            
         BEZ      C07F                                                          
C07D     CH,R8    DEVADDR,R1        IS THE DEVICE ADDR THE SAME                 
         BNE      C07E              NO                                          
         LB,R4    DEVMODX,R1        GET MODEL # INDEX                           
         CH,R3    MNEMONIC,R4       IS NAME THE SAME                            
         BE       DEVERROR          YES, ERROR                                  
C07E     BDR,R1   C07D              LOOK FOR ANOTHER                            
         PAGE                                                                   
C07F     LW,R1    DEVNEXT           DEVICE TABLE INDEX                          
*                                                                               
         LB,R0    IOFLAGS,R2        GET I/O FLAGS                               
         STB,R0   DEVIOFLG,R1       AND PRESET                                  
*                                                                               
         LH,R8    MNEMONIC,R2       GET NAME                                    
         AND,R8   HWMASK                                                        
         CI,R8    'DC'              IS IT A DISC                                
         BE       C08               YES                                         
*                                   MAYBE                                       
         CI,R8    'DP'              HOW ABOUT A DISC PACK                       
         BE       C08               YES                                         
         CI,R8    'EN'              IS IT ETHERNET                              
         BNE      C09               NO                                          
         MTB,1    DEVATTEN,R1       SET ATTENDABLE DEVICE                       
         B        C09               AND GET NEXT OPTION                         
*                                   YES, IT IS A DISC                           
         PAGE                                                                   
*                                                                               
* HOUSEKEEP DISC DATA                                                           
*                                                                               
C08      RES      0                                                             
         LW,R3    DSKNEXT           GET DISC CLASS INDEX                        
         CI,R3    DSKSIZE           IS IT TOO BIG                               
         BG       DEVERROR          YES                                         
*                                   NO                                          
         LI,R8    0                                                             
         STW,R8   DSKSTART,R3       DEFAULT SECTOR START                        
         STW,R8   DEV#AREA          CLEAR # OF AREAS/DEVICE                     
         STW,R8   DEV#SECT          CLEAR # SECTORS/DEVICE                      
         STW,R8   ENDFLAG           CLEAR END FLAG                              
*                                                                               
         LB,R9    NSPT,R2                                                       
         MH,R9    NTPC,R2                                                       
         MH,R9    NCYL,R2           TOTAL NUMBER OF SECTORS                     
         AI,R9    -1                LESS ONE GIVES LAST SECTOR #                
         STW,R9   DSKEND,R3         DEFAULT END SECTOR #                        
*                                                                               
         LH,R8    NWPS,R2                                                       
         STH,R8   DSKNWPS,R3        DEFAULT # OF WORDS PER SECTOR               
*                                                                               
         LB,R8    NSPT,R2                                                       
         STB,R8   DSKNSPT,R3        DEFAULT # OF SECTORS PER TRACK              
*                                                                               
         LH,R8    NTPC,R2                                                       
         STH,R8   DSKNTPC,R3        DEFAULT # OF TRACKS PER CYLINDER            
*                                                                               
         LH,R8    NCYL,R2                                                       
         STH,R8   DSKNCYL,R3        DEFAULT # OF CYLINDERS                      
*                                                                               
         LB,R8    SECTSHFT,R2                                                   
         STB,R8   DSKSECTO,R3       DEFAULT SECTOR SHIFT VALUE                  
         PAGE                                                                   
         LB,R8    TRAKSHFT,R2                                                   
         STB,R8   DSKTRACK,R3       DEFAULT TRACK SHIFT VALUE                   
*                                                                               
         LB,R8    CYLSHFT,R2                                                    
         STB,R8   DSKCYLIN,R3       DEFAULT CYLINDER SHIFT VALUE                
*                                                                               
         LB,R8    DEVFLAGS,R1                                                   
         AI,R8    RADFLAG           SET RAD FLAG                                
         STB,R8   DEVFLAGS,R1                                                   
         PAGE                                                                   
*                                                                               
* SCAN FOR KEYWORDS                                                             
*                                                                               
C09      CI,R6    2                 IS IT END OF CARD                           
         BE       C12               YES                                         
*                                   NO                                          
         LI,R0    1                 SCAN FOR EBCDIC                             
         STW,R0   SCANPMA                                                       
         LW,R7    SCANPM                                                        
         BAL,R8   SCAN                                                          
*                                                                               
         CI,R6    0                 END OF SUB-FIELD                            
         BE       C09B              YES                                         
*                                   NO                                          
         BLZ      DEVERROR          ERROR IN FIELD                              
*                                                                               
         LH,R0    R8                GET FIRST TWO CHARACTERS                    
         CI,R0    'S '-X'10000'     IS IT AN S OPTION                           
         BNE      C09B              NO, LOOK FOR KEYWORD                        
*                                   YES                                         
         LC       DEVFLAGS,R1       IS IT A RAD DEVICE                          
         BCR,RADCC DEVERROR         NO                                          
*                                   YES                                         
         LW,R3    R1                CHECK FOR OTHER SYSTEM RAD                  
         AI,R3    -1                                                            
         BEZ      C09               FIRST ONE                                   
C09A     LC       DEVFLAGS,R3                                                   
         BCS,SYSCC DEVERROR         ERROR IF MORE THAN 1 SYSTEM RAD             
         BDR,R3   C09A                                                          
*                                                                               
         LI,R0    SYSFLAG           GET THE 'SYSTEM' FLAG                       
         LB,R8    DEVFLAGS,R1                                                   
         OR,R8    R0                OR IN SYSTEM FLAG                           
         STB,R8   DEVFLAGS,R1       SET SYSTEM FLAG                             
*                                                                               
         STW,R1   SYSDEVX           SAVE DCT INDEX OF SYSTEM DISC               
*                                                                               
         B        C09               READ NEXT FIELD                             
*                                                                               
C09B     RES      0                                                             
         LW,R2    C90               LENGTH OF TABLE                             
         LI,R9    X'FFF00'          R9=MASK FOR 3 CHARS.                        
         CS,R8    C90,R2            SEARCH FOR KEYWORD                          
         BE       %+3               FOUND IT                                    
         BDR,R2   %-2                                                           
         B        C30               CANT FIND, CHECK FOR AREA NAME              
*                                   FOUND                                       
         LH,R0    C91,R2            GET ADDRESS TO PROCESS KEYWORD              
         AND,R0   HWMASK                                                        
         B        *R0                                                           
         PAGE                                                                   
*                                                                               
* WRAP UP DEVICE PROCESSING                                                     
*                                                                               
C12      RES      0                                                             
         LI,R0    0                                                             
         XW,R0    DEV#AREA          CLEAR AND GET THE AREAS/DEVICE              
         AWM,R0   AREALAST          MAKE NEW AREA INDEX                         
*                                                                               
         DO       #RB                                                           
         LB,R2    DEVMODX,R1        GET MODEL INDEX                             
         LH,R0    MNEMONIC,R2       GET MNEMONIC                                
         CI,R0    'RB'-X'10000'     IS IT AN RB                                 
         BE       C20               YES, WRAP UP RB                             
         FIN      #RB               NO                                          
*                                                                               
         MTW,1    DEVNEXT           BUMP DEVICE INDEX ALSO                      
         LC       DEVFLAGS,R1       GET FLAGS                                   
         BCR,RADCC A10              DONE IF NOT A DISC                          
*                                   GO WRAP UP A DISC                           
         PAGE                                                                   
*                                                                               
* WRAP UP DISC DEVICE                                                           
*                                                                               
         LW,R4    DSKNEXT                                                       
         LW,R3    DSKNEXT                                                       
*                                                                               
         MTW,0    ENDFLAG           WAS AN END SECTOR OPTION INPUT              
         BNEZ     GOTENDS           YES, END SECTOR WAS SPECIFIED               
*                                   NO, COMPUTE END FROM VARIABLES              
         LB,R9    DSKNSPT,R3        GET NSPT                                    
         MH,R9    DSKNTPC,R3        TIMES NTPC                                  
         MH,R9    DSKNCYL,R3        TIMES NCYL                                  
         AI,R9    -1                LESS 1                                      
         STW,R9   DSKEND,R3         FILL IN END SECTOR                          
*                                                                               
GOTENDS  RES      0                                                             
         LW,R0    DSKEND,R3         GET END SECTOR                              
         CW,R0    DSKSTART,R3       COMPARE TO START                            
         BL       DEVERROR          ERROR IF NOT ORDERED                        
*                                                                               
C13      AI,R3    -1                                                            
         BEZ      C15               NO DUPLICATE ENTRY FOUND                    
         LW,R5    CMPRDSK           GET # OF DISC ITEMS                         
C14      EXU      LOADDSK,R5                                                    
         EXU      CMPRDSK,R5        COMPARE TO PREVIOUS ONE                     
         BNE      C13               NOT EQUAL, TRY NEXT ONE                     
         BDR,R5   C14               LOOP THROUGH ALL ITEMS                      
*                                   FOUND A DUPLICATE ENTRY                     
         LW,R4    R3                PUT INDEX IN R4                             
         B        %+2               SKIP BUMP                                   
C15      MTW,1    DSKNEXT           BUMP TO NEXT DSK ENTRY                      
C16      STB,R4   DEVDISCX,R1       SAVE DISK TABLE INDEX                       
         B        A10               GO READ NEXT CARD                           
         PAGE                                                                   
*                                                                               
* WRAP UP A RB DEVICE                                                           
*                                                                               
         DO       #RB                                                           
C20      RES      0                                                             
         LB,R0    DEVRB,R1          GET RB FLAGS                                
         CI,R0    X'80'             IS IT A BISYNC                              
         BANZ     BISYNC            YES                                         
*                                   NO                                          
         CI,R0    X'02'             IS IT HALF OR FULL DUPLEX                   
         BAZ      FULDUPLX          FULL DUPLEX                                 
*                                   HALF DUPLEX                                 
         MTW,1    DEVNEXT           BUMP DEVICE COUNT                           
         B        A10               AND GET NEXT CARD                           
********                                                                        
BISYNC   RES      0                 HAVE TO FORCE DUAL LOGIC                    
         MTW,1    DUAL                                                          
         LH,R2    CHANA             GET CHANNEL INDEX                           
         AI,R2    -1                                                            
         LH,R0    DEVADDR,R1        GET DEVICE ADDRESS                          
         STH,R0   CHANA,R2          PUT IN BOTH ADDRESSES                       
         STH,R0   CHANB,R2                                                      
*                                                                               
         MTW,1    DEVNEXT                                                       
         MTW,1    RBCOUNT                                                       
         B        A10               GO GET NEXT CARD                            
         PAGE                                                                   
FULDUPLX RES      0                 GOT TO MAKE UP TWO DEVICES                  
         LW,R2    R1                                                            
         AI,R2    1                 R2 IS INDEX OF EXTRA DEVICE                 
         CI,R2    MAXDEV            TOO MANY?                                   
         BG       DEVERROR          YES, ERROR                                  
*                                   NO                                          
         LH,R0    DEVADDR,R1        GET ADDRESS                                 
         SLS,R0   -1                                                            
         SLS,R0   1                 MAKE IT EVEN                                
         STH,R0   DEVADDR,R1        AND PUT IN FIRST DEVICE                     
         AI,R0    1                                                             
         STH,R0   DEVADDR,R2        PUT ODD IN SECOND DEVICE                    
*                                                                               
         LI,R0    X'40'                                                         
         STB,R0   DEVIOFLG,R1       IN FLAGS ON EVEN DEVICE                     
*                                                                               
         LI,R0    X'80'                                                         
         STB,R0   DEVIOFLG,R2       OUT FLAGS ON ODD DEVICE                     
*                                                                               
         LB,R0    DEVMODX,R1                                                    
         STB,R0   DEVMODX,R2        MOVE MODEL INDEX                            
*                                                                               
         LB,R0    DEVFLAGS,R1                                                   
         STB,R0   DEVFLAGS,R2       MOVE FLAGS                                  
*                                                                               
         LB,R0    DEVRB,R1                                                      
         STB,R0   DEVRB,R2          MOVE RB FLAGS                               
         PAGE                                                                   
* DEBUG AND DISCX FLAGS ARE ALWAYS ZERO                                         
*                                                                               
         MTW,1    DUAL                                                          
         LH,R3    CHANA             CHANNEL INDEX                               
         AI,R3    -1                                                            
         LH,R0    DEVADDR,R1        GET EVEN DEVICE ADDRESS                     
         STH,R0   CHANA,R3          AND PUT IN CHANA                            
         STH,R0   CHANB,R3          AND PUT IN CHANB                            
*                                                                               
         MTW,2    DEVNEXT           BUMP FOR BOTH DEVICES                       
         MTW,1    RBCOUNT                                                       
         B        A10                                                           
*                                                                               
         FIN      #RB                                                           
         PAGE                                                                   
*                                                                               
* AREA OPTION PROCESSING                                                        
*                                                                               
* R1     DCT INDEX                                                              
* R8     AREA NAME LEFT JUSTIFIED                                               
* R6     TERMINATOR CODE                                                        
*                                                                               
PLOK     EQU      0                                                             
BLOK     EQU      0                                                             
FLOK     EQU      0                                                             
SLOK     EQU      0                                                             
XLOK     EQU      0                                                             
C30      RES      0                                                             
         INT,R3   R8                LOAD RIGHT HAND HW                          
         CI,R3    '  '              IS IT BLANKS                                
         BNE      DEVERROR          NO, ERROR                                   
*                                   YES                                         
         LH,R8    R8                RIGHT JUSTIFY AREA NAME + SIGN EXTEND       
         LI,R3    0                                                             
         LW,R2    DEV#AREA                                                      
         AW,R2    AREALAST          FORM INDEX FOR THIS AREA                    
         CI,R2    AREAMAX           IS IT TOO MANY                              
         BG       DEVERROR          YES, ERROR                                  
*                                   NO                                          
C31      RES      0                                                             
         AI,R3    1                 AREA INDEX                                  
         CW,R3    R2                IS IT FOUND YET                             
         BG       C32               YES, THIS IS THE NEXT AREA                  
         CH,R8    AREANAME,R3       IS IT THIS AREA                             
         BE       DEVERROR          YES, ERROR IF DUPLICATE NAME                
         B        C31               NO, LOOP ON                                 
         PAGE                                                                   
C32      RES      0                                                             
         LW,R2    R3                R2 IS NOW THE NEXT AREA INDEX               
         CH,R8    SPNAME            IS IT THE SP AREA                           
         BNE      C33               NO, SKIP THIS                               
*                                   YES                                         
         LW,R3    R1                CURRENT DCT INDEX                           
         AI,R3    -1                                                            
C32A     RES      0                                                             
         LC       DEVFLAGS,R3       GET DEVICE FLAGS                            
         BCS,SYSCC DEVERROR         ERROR IF ANOTHER SYSTEM DISC                
         BDR,R3   C32A              NO, LOOP THROUGH ALL DEVICES                
*                                                                               
         LI,R0    SYSFLAG           GET THE 'SYSTEM' FLAG                       
         LB,R3    DEVFLAGS,R1       GET CURRENT FLAGS                           
         OR,R3    R0                OR IN SYSTEM FLAG                           
         STB,R3   DEVFLAGS,R1       AND RESTORE IT                              
*                                                                               
         STW,R1   SYSDEVX           SAVE DCT INDEX OF SYSTEM DISC               
*                                                                               
C33      RES      0                                                             
         STH,R8   AREANAME,R2       SAVE AREA NAME                              
         STB,R1   AREADCT,R2        SAVE DCT INDEX                              
         PAGE                                                                   
         LI,R0    5                                                             
         STW,R0   SCANPMA           SET SCAN TO EBCDIC OR DECIMAL               
         BAL,R8   SCAN              GET NUMBER OF SECTORS OR 'ALL'              
*                                                                               
         CI,R6    -1                WAS THERE AN ERROR                          
         BE       DEVERROR          YES                                         
*                                   NO                                          
         CI,R9    0                 WAS THERE A DECIMAL # INPUT                 
         BE       C34               YES                                         
*                                   NO                                          
         CW,R8    ALLTEXT           WAS AN ALL INPUT                            
         BNE      DEVERROR          NO, ERROR                                   
*                                   YES                                         
         LI,R8    -1                SIZE SIGNAL FOR ALL                         
         B        C35               JUMP OVER ENSEC TESTING                     
         PAGE                                                                   
C34      RES      0                 R8 = SECTOR REQUESTED                       
         LW,R0    DEV#SECT          GET CURRENT SECTOR COUNT FOR DEVICE         
         AW,R0    R8                GET NEW SECTOR COUNT                        
         AI,R0    -1                ADJUST TO A SECTOR NUMBER                   
         LW,R3    DSKNEXT                                                       
         CW,R0    DSKEND,R3         IS IT OVERFLOW                              
         BG       DEVERROR          YES, ERROR                                  
*                                   NO                                          
         AWM,R8   DEV#SECT          MAKE NEW SECTOR COUNT                       
C35      RES      0                                                             
         STW,R8   AREASIZE,R2       SAVE AREA SIZE                              
*                                                                               
         DO       #SYMB                                                         
         LH,R0    AREANAME,R2       GET AREA NAME                               
         AND,R0   HWMASK            MASK OFF                                    
         CI,R0    'IS'              IS IT THE IS AREA                           
         BE       C40               YES                                         
*                                   NO                                          
         CI,R0    'OS'              IS IT THE OS AREA                           
         BE       C41               YES                                         
*                                   NO                                          
         FIN      #SYMB                                                         
         CI,R6    0                 IS IT END OF SUB-FIELD                      
         BNE      C36               NO, NO PROTECTION SPECIFICATION             
*                                   YES                                         
         PAGE                                                                   
*                                                                               
* GET PROTECTION TYPE                                                           
*                                                                               
         LI,R0    1                                                             
         STW,R0   SCANPMA           SET SCAN TO EBCDIC                          
         BAL,R8   SCAN              GO GET PROTECTION TYPE                      
*                                                                               
         CI,R6    -1                    ERROR?                                  
         BE       DEVERROR                                                      
*                                   YES                                         
         LB,R8    R8                GET PROTECTION CHARACTER                    
         LB,R4    C39               GET COUNT OF GOOD PROTECTION TYPES          
C35A     RES      0                                                             
         LH,R9    MDTYPL,R4                                                     
         CB,R8    C39,R4            IS IT THIS TYPE                             
         BE       C37               YES, ITS OK                                 
         BDR,R4   C35A              NO, LOOP                                    
         B        DEVERROR          CANT FIND, ERROR                            
         PAGE                                                                   
C36      RES      0                                                             
         LI,R8    'B'               DEFAULT PROTECTION TYPE                     
*                                                                               
         LI,R3    5                 NUMBER OF SPECIAL AREAS                     
         LH,R0    AREANAME,R2       GET AREA NAME                               
         CH,R0    AREAORDR,R3       SEE IF IT MATCHES                           
         BE       C36A              SPECIAL AREA NAME                           
         AI,R3    -1                                                            
         BGEZ     %-3               LOOP                                        
         LI,R9    BLOK              GET B PROTECTION DEFAULT                    
         B        C37               CANT FIND, EXIT WITH 'B' PROTECTION         
********                                                                        
C36A     RES      0                                                             
         LB,R8    DFLTPROT,R3       GET PROTECTION CHARACTER                    
         LH,R9    LOCKDEF,R3        GET DEFAULT FOR AREA                        
C37      RES      0                                                             
         STB,R8   AREATYPE,R2       SAVE AREA PROTECTION TYPE                   
*                                                                               
         CI,R6    1                 END OF SUBFIELD?                            
         BGE      C37A              END OF CARD USE DEFAULT                     
         LI,R0    2                                                             
         STW,R0   SCANPMA           SET SCAN TO HEX                             
         BAL,R8   SCAN                                                          
         CI,R6    1                                                             
         BL       DEVERROR          ERROR IF NOT END OF FIELD   D OR CARD       
         CI,R10   4                                                             
         BG       DEVERROR          ERROR IF MORE THAN 4 CHARACTERS             
         LW,R9    R8                                                            
C37A     RES      0                                                             
         STH,R9   AREALOCK,R2       SAVE AREA LOCK                              
         MTW,1    DEV#AREA          BUMP NUMBER OF AREAS ON DEVICE              
         B        C09               AND READ NEXT OPTION/CARD                   
*                                                                               
*                                                                               
C39      TEXTC    'PBFSX'           PROTECTION VALID CHARACTERS                 
MDTYPL   DATA,2   PLOK,BLOK,FLOK,SLOK,XLOK                                      
         BOUND     4                                                            
         PAGE                                                                   
*                                                                               
*                                                                               
* SYMBIONT AREA OPTIONS                                                         
*                                                                               
         DO       #SYMB                                                         
C40      LI,R3    0                 IS AREA                                     
         B        %+2               SKIP C41                                    
C41      LI,R3    1                 OS AREA                                     
         CI,R6    0                 IS IT END OF SUB-FIELD                      
         BG       C45               NO, IT IS DEFAULT CASE                      
*                                   YES                                         
         LI,R0    4                                                             
         STW,R0   SCANPMA           SET SCAN TO DECIMAL                         
         BAL,R8   SCAN              AND GET FILE SIZE                           
*                                                                               
         CI,R6    1                 IS IT END OF FIELD OR CARD                  
         BL       DEVERROR          NO, ERROR                                   
*                                   YES                                         
         STW,R8   ISFSIZ,R3         SAVE FILE SIZE                              
C45      RES      0                                                             
         LI,R8    'B'               BACKGROUND PROTECTION                       
         B        C37               AND FINISH UP                               
         FIN      #SYMB                                                         
         PAGE                                                                   
*                                                                               
* AREA INFORMATION TABLES                                                       
*                                                                               
DEV#SECT DATA     0                 NUMBER OF SECTORS FOR THIS DEVICE           
*                                                                               
DEV#AREA DATA     0                 NUMBER OF AREAS FOR THIS DEVICE             
*                                                                               
SPNAME   TEXT     'SP  '            NAME OF SP AREA                             
*                                                                               
ALLTEXT  TEXT     'ALL '                                                        
*                                                                               
AREAMAX  EQU      100               MAX NUMBER OF AREAS ALLOWED                 
*                                                                               
AREANAME ZERO,2   AREAMAX+1         AREA NAME TABLE                             
         BOUND    4                                                             
*                                                                               
AREADCT  ZERO,1   AREAMAX+1         DCT INDEX FOR NAME                          
         BOUND    4                                                             
*                                                                               
AREATYPE ZERO,1   AREAMAX+1         PROTECTION TYPE FOR AREA                    
         BOUND    4                                                             
*                                                                               
AREASIZE RES      0                                                             
AREALAST DATA     0                 NUMBER OF AREA ENTRIES IN TABLE             
         ZERO     AREAMAX           SIZE OF AREA IN SECTORS                     
*                                                                               
AREASTRT ZERO     AREAMAX+1         AREA START SECTOR NUMBER                    
*                                                                               
AREALOCK ZERO,2   AREAMAX+1                                                     
         BOUND    4                                                             
#EXTRAMD DATA     0                 NUMBER OF EXTRA MASTER DICTIONARYS          
         PAGE                                                                   
AREAORDR TEXT     'SPFPBPBTXACKD1D2D3D4D5D6D7D8D9DADBDCDDDEDF'                  
DFLTPROT TEXT     'SSSBXS'                                                      
LOCKDEF  DATA,2   SLOK,FLOK,BLOK,BLOK,XLOK,SLOK                                 
         BOUND    4                                                             
*                                                                               
PROTSTG  TEXTC    'PBFS X '         PROTECTION VALUE STRING                     
*                                                                               
MINIMUMD DATA     6                 MINIMUM MASTER DICTIONARY INDEX             
*                                                                               
*                                                                               
ISFSIZ   DATA     25                                                            
OSFSIZ   DATA     200                                                           
         PAGE                                                                   
*                                                                               
* DEDICATE OPTION PROCESSING                                                    
*                                                                               
C22      BAL,R8   SCAN              GET F, X, S, OR J OPTION                    
         CI,R6    1                                                             
         BL       DEVERROR          ERROR IN INPUT                              
         CI,R10   1                                                             
         BNE      DEVERROR          ERROR IF NOT 1 CHAR                         
         LB,R8    R8                                                            
* R8 IS THE DEDICATE CHARACTER                                                  
         LB,R2    DEDTYPES                                                      
         CB,R8    DEDTYPES,R2       LOOK FOR CHARACTER                          
         BE       C22A              FOUND                                       
         BDR,R2   %-2               NOT FOUND, LOOP                             
         B        DEVERROR          CANT FIND, ERROR                            
********                                                                        
C22A     RES      0                                                             
         LB,R2    DEDFLAGS,R2       GET FLAG BIT                                
         LB,R3    DEVFLAGS,R1                                                   
         OR,R2    R3                SET FLAG                                    
         STB,R2   DEVFLAGS,R1       AND SAVE                                    
         B        C09               ALL DONE                                    
********                                                                        
DEDTYPES TEXTC    'FXSJ'                                                        
*                                                                               
DEDFLAGS DATA,1   0,DEDFFLAG,DEDXFLAG,SYMBFLAG,ALOCFLAG                         
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* REMOTE BATCH OPTIONS                                                          
*                                                                               
         DO       #RB                                                           
RBFULL   BAL,R2   RBOPTION                                                      
RBHALF   BAL,R2   RBOPTION                                                      
RBSWIT   BAL,R2   RBOPTION                                                      
RBPRIV   BAL,R2   RBOPTION                                                      
RBBISY   BAL,R2   RBOPTION                                                      
RBOPTION RES      0                                                             
         LCW,R2   R2                                                            
         AI,R2    RBOPTION+1        R2 IS NOW OPTION INDEX                      
*                                                                               
         LB,R3    DEVMODX,R1        GET MODEL NUMBER INDEX                      
         LH,R0    MNEMONIC,R3       GET MNEMONIC                                
         CI,R0    'RB'-X'10000'     IS IT A RB DEVICE                           
         BNE      DEVERROR          NO, ERROR                                   
*                                   YES                                         
         CI,R6    1                 IS IT EOF OR EOC                            
         BL       DEVERROR          NO, ERROR                                   
*                                   YES                                         
         LB,R0    DEVRB,R1                                                      
         EXU      RBEXU,R2          SET BITS AS NEEDED                          
         STB,R0   DEVRB,R1                                                      
         B        C09               RETURN FOR NEXT OPTION                      
         PAGE                                                                   
*                                                                               
*                                                                               
*                                                                               
RBEXU    EQU      %-1                                                           
         OR,R0    KX80              BISYNC                                      
         NOP      0                 PRIV (DEFAULT)                              
         OR,R0    K1                SWITCHED                                    
         OR,R0    K2                HALF                                        
         NOP      0                 FULL (DEFAULT)                              
         FIN      #MAP                                                          
         PAGE                                                                   
*                                                                               
* DISC CHARACTERISTIC OPTIONS                                                   
*                                                                               
C23START BAL,R2   C23               8  SECTOR START VALUE                       
C23END   BAL,R2   C23               7  SECTOR END VALUE                         
C23NWPS  BAL,R2   C23               6  NUMBER OF WORDS/SECTOR                   
C23NSPT  BAL,R2   C23               5  NUMBER OF SECTORS/TRACK                  
C23NTPC  BAL,R2   C23               4  NUMBER OF TRACKS/CYLINDER                
C23NCYL  BAL,R2   C23               3  NUMBER OF CYLINDERS                      
C23SECTO BAL,R2   C23               2  SECTOR SHIFT VALUE                       
C23TRACK BAL,R2   C23               1  TRACK SHIFT VALUE                        
C23CYLIN BAL,R2   C23               0  CYLINDER SHIFT VALUE                     
C23      RES      0                                                             
*                                                                               
         CI,R2    C23END+1          WAS IT AN END SECTOR OPTION                 
         BNE      %+2               NO                                          
         MTW,1    ENDFLAG           YES                                         
*                                                                               
         LCW,R2   R2                                                            
         AI,R2    C23+1             R2 IS NOW THE INDEX FOR VARIABLE            
*                                                                               
         LC       DEVFLAGS,R1       GET DEVICE FLAGS                            
         BCR,RADCC DEVERROR         ERROR IF DEVICE NOT RAD OR DISC             
         PAGE                                                                   
         LI,R0    4                                                             
         STW,R0   SCANPMA           SET SCAN TO DECIMAL                         
         BAL,R8   SCAN              AND GET OPTION                              
*                                                                               
         CI,R6    1                 IS IT END OF FIELD                          
         BL       DEVERROR          NO, ERROR                                   
*                                   SYNTAX OK                                   
         LW,R3    DSKNEXT           GET COUNT OF DEVICE CHARACTERISTIC TABLES   
         CI,R3    DSKSIZE           IS IT TOO MANY                              
         BG       DEVERROR          YES, ERROR                                  
*                                   NO                                          
         EXU      STOREDSK,R2       STORE AWAY VALUE                            
*                                                                               
         B        C09               RETURN FOR NEXT OPTION                      
         PAGE                                                                   
*                                                                               
* DISC TABLE ACCESS EXECUTES                                                    
*                                                                               
STOREDSK EQU      %-1                                                           
         STB,R8   DSKCYLIN,R3                                                   
         STB,R8   DSKTRACK,R3                                                   
         STB,R8   DSKSECTO,R3                                                   
         STH,R8   DSKNCYL,R3                                                    
         STH,R8   DSKNTPC,R3                                                    
         STB,R8   DSKNSPT,R3                                                    
         STH,R8   DSKNWPS,R3                                                    
         STW,R8   DSKEND,R3                                                     
         STW,R8   DSKSTART,R3                                                   
*                                                                               
LOADDSK  EQU      %-1                                                           
         LB,R8    DSKCYLIN,R3                                                   
         LB,R8    DSKTRACK,R3                                                   
         LB,R8    DSKSECTO,R3                                                   
         LH,R8    DSKNCYL,R3                                                    
         LH,R8    DSKNTPC,R3                                                    
         LB,R8    DSKNSPT,R3                                                    
         LH,R8    DSKNWPS,R3                                                    
         LW,R8    DSKEND,R3                                                     
         LW,R8    DSKSTART,R3                                                   
         PAGE                                                                   
CMPRDSK  DATA     CMPREND-CMPRDSK                                               
         CB,R8    DSKCYLIN,R4                                                   
         CB,R8    DSKTRACK,R4                                                   
         CB,R8    DSKSECTO,R4                                                   
         CH,R8    DSKNCYL,R4                                                    
         CH,R8    DSKNTPC,R4                                                    
         CB,R8    DSKNSPT,R4                                                    
         CH,R8    DSKNWPS,R4                                                    
         CW,R8    DSKEND,R4                                                     
         CW,R8    DSKSTART,R4                                                   
CMPREND  EQU      %-1                                                           
*                                                                               
STORDISC EQU      %-1                                                           
         STB,R8   *DISCCSFT,R3                                                  
         STB,R8   *DISCTSFT,R3                                                  
         STB,R8   *DISCSSFT,R3                                                  
         STH,R8   *DISCNCYL,R3                                                  
         STH,R8   *DISCNTPC,R3                                                  
         STB,R8   *DISCNSPT,R3                                                  
         STH,R8   *DISCNWPS,R3                                                  
         STW,R8   *DISCMAXS,R3                                                  
         STW,R8   *DISCMINS,R3                                                  
         PAGE                                                                   
*                                                                               
ENDFLAG  DATA     0                 POSITIVE IF END SECTOR OPTION INPUT         
*                                                                               
*                                                                               
SYSDEVX  DATA     0                 DCT INDEX OF SYSTEM DISC                    
*                                                                               
DSKSIZE  EQU      16                NUMBER OF DIFFERENT DISC TYPES              
DSKNEXT  RES      0                                                             
DSKSTART DATA     1                                                             
         ZERO     DSKSIZE                                                       
*                                                                               
DSKEND   ZERO     DSKSIZE+1                                                     
*                                                                               
DSKNWPS  ZERO,2   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
DSKNSPT  ZERO,1   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
DSKNTPC  ZERO,2   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
DSKNCYL  ZERO,2   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
DSKSECTO ZERO,1   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
DSKTRACK ZERO,1   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
DSKCYLIN ZERO,1   DSKSIZE+1                                                     
         BOUND    4                                                             
*                                                                               
         PAGE                                                                   
*                                                                               
* DEBUG OPTION PROCESSING                                                       
*                                                                               
C26A     RES      0                 DEBUG OPTION                                
         CI,R6    0                 END OF SUBFIELD                             
         BNE      DEVERROR          NO,ERROR                                    
*                                   YES                                         
         LB,R3    DEVMODX,R1        GET MODEL # INDEX                           
         LH,R8    MNEMONIC,R3       GET NAME                                    
         AND,R8   HWMASK                                                        
         CI,R8    'TY'              IS IT A TTY                                 
         BNE      DEVERROR          NO, ERROR                                   
*                                   YES                                         
         LI,R8    2                 SET SCAN FOR HEX                            
         STW,R8   SCANPMA                                                       
         BAL,R8   SCAN                                                          
*                                                                               
         CI,R6    1                 END OF FIELD OR CARD                        
         BL       DEVERROR          NO, ERROR                                   
*                                                                               
         CI,R8    X'5D'             LO LIMIT                                    
         BL       DEVERROR          ERROR                                       
*                                                                               
         CI,R8    X'13F'                                                        
         BG       DEVERROR          TOO BIG                                     
*                                                                               
         AI,R8    -X'4F'                                                        
         DO1      #DEBUG                                                        
         STB,R8   DEVDEBUG,R1       SAVE VALUE                                  
         B        C09               AND GET NEXT OPTION                         
         DO       #PS                                                           
*                                                                               
* SHARE OPTION PROCESSING                                                       
*                                                                               
C26B     RES      0                                                             
         CI,R6    0                 END OF SUBFIELD                             
         BL       DEVERROR          ERROR                                       
         BG       C26C              END OF FILED/CARD                           
*                                                                               
* (SHARE,DIOADR) FORM - PERIPHERIAL SWITCH CONFIGURATION                        
*                                                                               
         LI,R8    2                 SCAN FOR HEX                                
         STW,R8   SCANPMA                                                       
         BAL,R8   SCAN                                                          
         CI,R6    1                 END OF FIELD OR CARD                        
         BL       DEVERROR          NO,ERROR                                    
         SLS,R8   4                 SHIFT TO POS FOR DIO ADR                    
         STB,R8   DEVSHARE,R1       SAVE DIO ADDRESS                            
         MTW,1    SHARE             UP NO SHARED DEVICES                        
         B        C09               GET NEXT OPTION                             
SHARE    DATA     0                 NO OF SHARED DEVICES                        
*                                                                               
* (SHARE) FORM - SHARABLE CONTROLLER CONFIGURATION                              
*                                                                               
C26C     RES      0                                                             
*                                   CHECK IF DEVICE IS ONE WITH                 
*                                   RELEASE INTERRUPT CAPABILITY                
*                                                                               
*                 FLAG WILL BE =1 IF INTERRUPT TYPE                             
*                 FLAG WILL BE =2 IF NON-INTERRUPT TYPE                         
*                 FLAG WILL BE =0 IF NON SHARABLE DEVICE                        
         LI,R8    1                                                             
         STB,R8   DEVSHARE,R1                                                   
         MTW,1    SHARE             UP NO SHARED DEVICES                        
         B        C09                                                           
         FIN      #PS                                                           
         SPACE    3                                                             
*        (ATT) - ATTENDABLE DEVICES                                             
*                 (DEVICES THAT CAN RECEIVE ATTENTION INTERRUPT)                
*                 AND HAVE SPECIAL PREPROCESSOR IN DEVICE HANDLER               
*                 TO HANDLE IT                                                  
         SPACE    1                                                             
C26D     RES      0                                                             
         CI,R6    0                 END OF SUBFIELD                             
         BL       DEVERROR          NO, ERROR IN SYNTAX                         
         BE       DEVERROR          YES, ERROR - ATT W.O. ARG                   
*                                   END OF FIELD,CARD - OK                      
*                                   YES                                         
         LB,R3    DEVMODX,R1        GET MODEL # INDEX                           
         LH,R8    MNEMONIC,R3       GET NAME                                    
         AND,R8   HWMASK                                                        
         CI,R8    'EN'              IS IT ETHERNET                              
         BE       C26E              YES, OK                                     
         CI,R8    'NO'              IS IT NONE?                                 
         BE       C26E              YES, OK                                     
         B        DEVERROR                                                      
C26E     RES      0                                                             
         MTB,1    DEVATTEN,R1       SET FLAG                                    
         B        C09               AND GET NEXT OPTION                         
         PAGE                                                                   
*                                                                               
*                                                                               
* KEY-WORD LIST AND ENTRY POINTS                                                
*                                   CONSTANTS AND FLAGS                         
C90      DATA     C91-C90-1         LENGTH OF TABLE                             
         TEXT     'DED '            LEGAL KEYWORDS FOR :DEVICE                  
         TEXT     'SSE '            S(TART )SEC(TOR)                            
         TEXT     'ENS '                                                        
         TEXT     'NSP '                                                        
         TEXT     'NWP '                                                        
         TEXT     'DEB '                                                        
         TEXT     'NTP '                                                        
         TEXT     'NCY '                                                        
         TEXT     'SSF '                                                        
         TEXT     'TSF '                                                        
         TEXT     'CSF '                                                        
         DO1      #PS                                                           
         TEXT     'SHA '                                                        
         TEXT     'ATT '            ATT(ENABLE) DEVICES                         
         DO       #RB                                                           
         TEXT     'FULL'                                                        
         TEXT     'HALF'                                                        
         TEXT     'SWIT'                                                        
         TEXT     'PRIV'                                                        
         TEXT     'BISY'                                                        
         FIN      #RB                                                           
*                                                                               
*                                                                               
* ENTRY POINTS FOR KEYWORDS                                                     
*                                                                               
C91      DATA,2   0,C22             DED(ICATE)                                  
         DATA,2   C23START          STA(RT SECTOR)                              
         DATA,2   C23END            END( SECTOR)                                
         DATA,2   C23NSPT           NSP(T)                                      
         DATA,2   C23NWPS           NWP(S)                                      
         DATA,2   C26A              DEB(UG)                                     
         DATA,2   C23NTPC           NTP(C)                                      
         DATA,2   C23NCYL           NCY(L)                                      
         DATA,2   C23SECTO          SEC(TOR SHIFT)                              
         DATA,2   C23TRACK          TRA(CK SHIFT)                               
         DATA,2   C23CYLIN          CYL(INDER SHIFT)                            
         DO1      #PS                                                           
         DATA,2   C26B              SHA(RE)                                     
         DATA,2   C26D              ATT(ENDABLE) DEVICES                        
         DO       #RB                                                           
         DATA,2   RBFULL                                                        
         DATA,2   RBHALF                                                        
         DATA,2   RBSWIT                                                        
         DATA,2   RBPRIV                                                        
         DATA,2   RBBISY                                                        
         FIN      #RB                                                           
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
* DEVICE INFORMATION TABLES                                                     
*                                                                               
* THIS DATA IS COLLECTED FROM THE DEVICE CARD AND SAVED TO                      
* BUILD THE DCT TABLES LATER                                                    
*                                                                               
MAXDEV   EQU      100                                                           
*                                                                               
DEVNEXT  DATA     1                                                             
*                                                                               
DEVADDR   ZERO,2  MAXDEV+1          DEVICE ADDRESS                              
         BOUND    4                                                             
*                                                                               
DEVDISCX ZERO,1   MAXDEV+1          DISC TABLE INDEX                            
         BOUND    4                                                             
*                                                                               
DEVMODX  ZERO,1   MAXDEV+1          INDEX TO MODEL # TABLES                     
         BOUND    4                                                             
*                                                                               
DEVDEBUG ZERO,1   MAXDEV+1          DEBUG INTERRUPT LOCATION                    
         BOUND    4                                                             
*                                                                               
DEVFLAGS ZERO,1   MAXDEV+1          DEVICE FLAGS                                
         BOUND    4                                                             
*                                                                               
DEVIOFLG ZERO,1   MAXDEV+1          IO FLAGS                                    
         BOUND    4                                                             
         DO       #PS                                                           
DEVSHARE ZERO,1   MAXDEV+1          SHARE FLAGS/DATA                            
         BOUND    4                                                             
         FIN      #PS                                                           
         SPACE                                                                  
DEVATTEN ZERO,1   MAXDEV+1          FLAG FOR ATTENDABLE DEVICES                 
         BOUND    4                                                             
         SPACE                                                                  
*                                                                               
         DO1      #RB                                                           
DEVRB    ZERO,1   MAXDEV+1          REMOTE BATCH FLAGS                          
         BOUND    4                                                             
         DO1      #RB                                                           
RBCOUNT  DATA     0                                                             
*                                                                               
         TITLE    '** SYSGEN  - PROCESS :COC COMMAND  **'                       
*                                                                               
*                                                                               
* COC CARD PROCESSING                                                           
*                                                                               
*                                                                               
COC1     RES      0                                                             
         CI,R6    2                                                             
         BE       COCERROR          ERROR IF END OF CARD                        
* HOUSEKEEP DEFAULTS                                                            
         DO       #LN                                                           
         LI,R0    X'61'                                                         
         STW,R0   COCOUT                                                        
*                                                                               
         LI,R0    X'60'                                                         
         STW,R0   COCIN                                                         
*                                                                               
         LI,R0    8                                                             
         STW,R0   COCLINES                                                      
*                                                                               
         LI,R0    0                                                             
         STW,R0   COCBUF                                                        
*                                                                               
         LI,R0    0                                                             
         STW,R0   COCRING                                                       
         STW,R0   COCADDR                                                       
         STW,R0   COCHDWR                                                       
         STW,R0   COCHDWR+1                                                     
*                                                                               
         PAGE                                                                   
         LW,R1    CURRLINE                                                      
         LI,R2    X'28'                                                         
         LI,R3    0                                                             
LINEINIT STB,R2   LRATE,R1                                                      
         STB,R3   LTYPE,R1                                                      
         AI,R1    1                                                             
         CW,R1    LASTLINE                                                      
         BLE      LINEINIT                                                      
*                                                                               
* SCAN FOR OPTION KEYWORD                                                       
*                                                                               
COC10    CI,R6    2                 END OF CARD                                 
         BE       COCDONE           YES                                         
*                                   NO, GET NEXT OPTION                         
         LI,R0    1                                                             
         STW,R0   SCANPMA                                                       
         LW,R7    SCANPM                                                        
         BAL,R8   SCAN              GET OPTION KEY WORD                         
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BNE      COCERROR          NO, ERROR                                   
*                                   YES                                         
         LW,R2    COCKEYS           NUMBER OF KEYS                              
         LI,R9    X'FFF00'          THREE CHARACTER MASK                        
COC15    CS,R8    COCKEYS,R2        CHECK FOR MATCH                             
         BE       COC20             FOUND                                       
         BDR,R2   COC15             LOOP                                        
         B        COCERROR          CANT FIND KEY                               
*********                                                                       
COC20    RES      0                                                             
         LH,R1    COCFUN,R2         GET ROUTINE                                 
         AND,R1   HWMASK                                                        
         B        0,R1              GO DO FUNCTION                              
         PAGE                                                                   
COCDEV   RES      0                                                             
         LI,R0    -1                                                            
         STW,R0   SCANPMC           DEVICE TYPE NDD,NOT YYNDD                   
         BAL,R8   SCAN              GET NDD                                     
         LI,R0    0                                                             
         STW,R0   SCANPMC                                                       
*                                                                               
         CI,R6    1                 END OF FIELD OR CARD                        
         BL       COCERROR          NO, ERROR                                   
*                                   YES                                         
         STW,R8   COCADDR           SAVE ADDRESS                                
         B        COC10                                                         
*********                                                                       
COCOUT#  RES      0                                                             
         LI,R2    2                                                             
         STW,R2   SCANPMA           SET SCAN FOR HEX                            
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    1                 END OF CARD OR FIELD                        
         BL       COCERROR          NO,ERROR                                    
*                                   YES                                         
         BAL,R15  CKINTADR                                                      
         B        COCERROR          ILLEGAL ADDRESS                             
         B        COCERROR          PRIORITY NOT BELOW IO LEVEL                 
*                                   NO                                          
         STW,R8   COCOUT            SAVE VALUE                                  
         B        COC10                                                         
         PAGE                                                                   
COCIN#   RES      0                                                             
         LI,R2    2                                                             
         STW,R2   SCANPMA           SET SCAN FOR HEX                            
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    1                 END OF CARD OR FIELD                        
         BL       COCERROR          NO,ERROR                                    
*                                   YES                                         
         BAL,R15  CKINTADR                                                      
         B        COCERROR          ILLEGAL ADDRESS                             
         B        COCERROR          PRIORITY NOT BELOW IO LEVEL                 
*                                   NO                                          
         STW,R8   COCIN             SAVE VALUE                                  
         B        COC10                                                         
*********                                                                       
COCLINE# RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    1                 END OF CARD OR FIELD                        
         BL       COCERROR          NO,ERROR                                    
*                                   YES                                         
         CI,R8    65                IS IT TOO BIG                               
         BGE      COCERROR          YES                                         
*                                   NO                                          
         STW,R8   COCLINES          SAVE VALUE                                  
         B        COC10                                                         
         PAGE                                                                   
COCBUF#  RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    1                 END OF CARD OR FIELD                        
         BL       COCERROR          NO,ERROR                                    
*                                   YES                                         
         CI,R8    256               IS IT TOO BIG                               
         BGE      COCERROR          YES                                         
*                                   NO                                          
         STW,R8   COCBUF            SAVE VALUE                                  
         B        COC10                                                         
*********                                                                       
COCRING# RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    1                 END OF CARD OR FIELD                        
         BL       COCERROR          NO,ERROR                                    
*                                   YES                                         
         CI,R8    256               IS IT TOO BIG                               
         BGE      COCERROR          YES                                         
*                                   NO                                          
         STW,R8   COCRING           SAVE VALUE                                  
         B        COC10                                                         
         PAGE                                                                   
COC33#   RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         LW,R1    CURRLINE                                                      
         AW,R1    R8                                                            
         CW,R1    LASTLINE          LINE TOO BIG                                
         BG       COCERROR          YES                                         
*                                   NO                                          
         LI,R0    33TYPE                                                        
         STB,R0   LTYPE,R1          SAVE IN LINE TYPE TABLE                     
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BE       COC33#            YES                                         
         B        COC10                                                         
         PAGE                                                                   
COC35#   RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         LW,R1    CURRLINE                                                      
         AW,R1    R8                                                            
         CW,R1    LASTLINE          LINE TOO BIG                                
         BG       COCERROR          YES                                         
*                                   NO                                          
         LI,R0    35TYPE                                                        
         STB,R0   LTYPE,R1          SAVE IN LINE TYPE TABLE                     
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BE       COC35#            YES                                         
         B        COC10                                                         
         PAGE                                                                   
COC37#   RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         LW,R1    CURRLINE                                                      
         AW,R1    R8                                                            
         CW,R1    LASTLINE          LINE TOO BIG                                
         BG       COCERROR          YES                                         
*                                   NO                                          
         LI,R0    37TYPE                                                        
         STB,R0   LTYPE,R1          SAVE IN LINE TYPE TABLE                     
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BE       COC37#            YES                                         
         B        COC10                                                         
         PAGE                                                                   
COC15#   RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         LW,R1    CURRLINE                                                      
         AW,R1    R8                                                            
         CW,R1    LASTLINE          LINE TOO BIG                                
         BG       COCERROR          YES                                         
*                                   NO                                          
         LI,R0    15TYPE                                                        
         STB,R0   LTYPE,R1          SAVE IN LINE TYPE TABLE                     
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BE       COC15#            YES                                         
         B        COC10                                                         
         PAGE                                                                   
NOTTJE#  RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN LINE NUMBER                        
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         LW,R1    CURRLINE                                                      
         AW,R1    R8                                                            
         CW,R1    LASTLINE          IS LINE # OK                                
         BG       COCERROR          NO                                          
*                                   YES                                         
         LI,R0    X'80'             FLAG FOR NOT TJE IN MODECPR                 
         STB,R0   LNOTTJE,R1        SAVE FLAG                                   
*                                                                               
         CI,R6    0                                                             
         BE       NOTTJE#           IF EOSF, GET NEXT LINE NUMBER               
         B        COC10             IF NOT, GET NEXT OPTION                     
         PAGE                                                                   
COCRATE# RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    0                 SUBFIELD                                    
         BNE      COCERROR          NO, ERROR                                   
*                                   YES                                         
         LW,R1    COCRTBL                                                       
         CW,R8    COCRTBL,R1                                                    
         BGE      %+2               FOUND RATE                                  
         BDR,R1   %-2               LOOP                                        
*                                                                               
         LI,R3    X'28'                                                         
         AW,R3    R1                ADD RATE INDEX                              
*                                                                               
COCRATEX BAL,R8   SCAN              SCAN FOR LINE #'S                           
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         LW,R1    CURRLINE                                                      
         AW,R1    R8                                                            
         CW,R1    LASTLINE          LINE TOO BIG                                
         BG       COCERROR          YES                                         
*                                   NO                                          
         STB,R3   LRATE,R1          SAVE IN LINE RATE TABLE                     
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BE       COCRATEX          YES                                         
         B        COC10                                                         
         PAGE                                                                   
COCHDWR# RES      0                                                             
         LI,R2    4                                                             
         STW,R2   SCANPMA           SET SCAN FOR DECIMAL                        
         BAL,R8   SCAN              AND SCAN                                    
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BL       COCERROR          YES                                         
*                                   NO                                          
         CI,R8    64                IS IT TOO BIG                               
         BGE      COCERROR          YES                                         
*                                   NO                                          
         LCW,R1   R8                                                            
         LW,R8    KSIGN                                                         
         LI,R9    0                                                             
         SCD,R8   0,R1                                                          
*                                                                               
         OR,R8    COCHDWR                                                       
         OR,R9    COCHDWR+1                                                     
         STD,R8   COCHDWR                                                       
*                                                                               
         CI,R6    0                 END OF SUBFIELD                             
         BE       COCHDWR#          YES                                         
         B        COC10                                                         
         PAGE                                                                   
COCDONE  RES      0                                                             
         LW,R0    COCIN                                                         
         CW,R0    COCOUT                                                        
         BGE      COCERROR                                                      
*                                                                               
         LW,R9    COCBUF                                                        
         BNEZ     COC50                                                         
*                                                                               
         LW,R9    COCLINES                                                      
         MI,R9    3                                                             
         CI,R9    256                                                           
         BL       COC45                                                         
         LI,R9    255                                                           
COC45    STW,R9   COCBUF                                                        
COC50    RES      0                                                             
         LW,R0    COCRING                                                       
         BNEZ     COC60                                                         
*                                                                               
         LW,R0    COCLINES                                                      
         AI,R0    -30                                                           
         BLEZ     COC55                                                         
*                                                                               
         AI,R0    60+3                                                          
         B        COC58                                                         
*********                                                                       
COC55    RES      0                                                             
         LW,R0    COCLINES                                                      
         SLS,R0   1                 DOUBLE IT                                   
         AI,R0    3                                                             
COC58    SLS,R0   -2                                                            
         STW,R0   COCRING                                                       
COC60    RES      0                                                             
         LW,R9    COCIN                                                         
         SLS,R9   24                                                            
         SLD,R8   8                                                             
*                                                                               
         LW,R9    COCOUT                                                        
         SLS,R9   24                                                            
         SLD,R8   8                                                             
*                                                                               
         LW,R9    COCLINES                                                      
         SLS,R9   24                                                            
         SLD,R8   8                                                             
*                                                                               
         LW,R9    COCRING                                                       
         SLS,R9   24                                                            
         SLD,R8   8                                                             
*                                                                               
         LW,R9    COCADDR                                                       
*                                                                               
         LD,R10   COCHDWR                                                       
*                                                                               
         LCI      4                                                             
         PSM,R8   COCSTK                                                        
*                                                                               
         LW,R0    COCLINES                                                      
         AWM,R0   CURRLINE                                                      
*                                                                               
         LW,R0    COCBUF                                                        
         AWM,R0   #BUFF                                                         
*                                                                               
         B        A10                                                           
         PAGE                                                                   
COCKEYS  DATA     LASTCOCK-COCKEYS                                              
         TEXT     'DEVI'                                                        
         TEXT     'IN  '                                                        
         TEXT     'OUT '                                                        
         TEXT     'LINE'                                                        
         TEXT     'BUFF'                                                        
         TEXT     'RING'                                                        
         TEXT     '33  '                                                        
         TEXT     '35  '                                                        
         TEXT     '37  '                                                        
         TEXT     '7015'                                                        
         TEXT     'HARD'                                                        
         TEXT     'NONT'                                                        
LASTCOCK TEXT     'RATE'                                                        
********                                                                        
COCFUN   DATA,2   0,COCDEV                                                      
         DATA,2   COCIN#                                                        
         DATA,2   COCOUT#                                                       
         DATA,2   COCLINE#                                                      
         DATA,2   COCBUF#                                                       
         DATA,2   COCRING#                                                      
         DATA,2   COC33#                                                        
         DATA,2   COC35#                                                        
         DATA,2   COC37#                                                        
         DATA,2   COC15#                                                        
         DATA,2   COCHDWR#                                                      
         DATA,2   NOTTJE#                                                       
         DATA,2   COCRATE#                                                      
         BOUND    4                                                             
         PAGE                                                                   
*********                                                                       
COCRTBL  DATA     5,11,16,31,60,1000                                            
COCOUT   RES      1                                                             
COCIN    RES      1                                                             
COCLINES RES      1                                                             
COCBUF   RES      1                                                             
COCRING  RES      1                                                             
COCADDR  RES      1                                                             
         BOUND    8                                                             
COCHDWR  RES      2                                                             
*********                                                                       
CURRLINE DATA     0                                                             
MAXLINE  EQU      250                                                           
LASTLINE DATA     MAXLINE-1                                                     
         PAGE                                                                   
*                                                                               
* FOUR WORD BLOCKS                  / IN /OUT /LINE/RING/                       
*                                   /            ADDRESS/                       
*                                   /  HARDWIRE         /                       
*                                   /  DOUBLE WORD      /                       
*                                                                               
         BOUND    8                                                             
COCSTK   DATA     %+1                                                           
         GEN,1,15,1,15 1,4*4,1,0                                                
         RES      4*4                                                           
*                                                                               
LTYPE    ZERO,1   MAXLINE                                                       
         BOUND    4                                                             
LRATE    ZERO,1   MAXLINE                                                       
         BOUND    4                                                             
LNOTTJE  ZERO,1   MAXLINE                                                       
         BOUND    4                                                             
*                                                                               
* TERMINAL TYPE EQU'S                                                           
*                                                                               
15TYPE   EQU      3                                                             
33TYPE   EQU      0                                                             
35TYPE   EQU      1                                                             
37TYPE   EQU      2                                                             
*                                                                               
         FIN      #LN                                                           
         TITLE    '** SYSGEN  - PROCESS :MDEF COMMAND  **'                      
*                                                                               
*                                                                               
MODEL    RES      0                                                             
         CI,R6    2                 END OF CARD                                 
         BE       MODELBAD          YES, ERROR                                  
*                                   NO                                          
         BAL,R8   SCAN              SCAN FOR MODEL #                            
*                                                                               
         CI,R6    0                                                             
         BLE      MODELBAD          ERROR IF NOT EOC/EOF                        
*                                                                               
         LW,R1    LASTMODL          INDEX FOR MODEL NUMBER TABLE                
         CW,R8    MODEL#,R1         SEARCH FOR MODEL #                          
         BE       MODEL10           FOUND                                       
         BDR,R1   %-2               LOOP                                        
*                                   CANT FIND, IT IS A NEW MODEL                
         LW,R1    LASTMODL                                                      
         AI,R1    1                                                             
         CI,R1    MODELMAX          TOO MANY?                                   
         BG       MODELBAD          YES                                         
*                                   NO                                          
         STW,R8   MODEL#,R1         ADD NEW MODEL #                             
MODEL10  RES      0                 R1 IS NOW THE MODEL # INDEX                 
         LI,R0    'NO'                                                          
         STH,R0   MNEMONIC,R1       DEFAULT MNEMONIC                            
*                                                                               
MODEL15  RES      0                                                             
         CI,R6    2                 END OF CARD                                 
         BE       MODELOK           YES, WRAP UP MODEL #                        
*                                   NO                                          
         LI,R8    1                                                             
         STW,R8   SCANPMA           SCAN FOR KEYWORD                            
         BAL,R8   SCAN                                                          
*                                                                               
         CI,R6    0                 CHECK TERMINATION                           
         BNE      MODELBAD          ERROR IF NOT EOSF                           
*                                   OK                                          
         LI,R9    -X'100'           THREE CHARACTER MASK                        
         LW,R2    #MODELKW          NUMBER OF KEYWORDS                          
         CS,R8    MODELKW,R2        SEARCH FOR KEYWORD                          
         BE       MODEL20           FOUND                                       
         BDR,R2   %-2               LOOP                                        
         B        MODELBAD          CANT FIND, ERROR                            
********                                                                        
MODEL20  RES      0                                                             
         LB,R0    MODELKWT,R2       SET SCAN TO PROPER TYPE                     
         STW,R0   SCANPMA                                                       
*                                                                               
         BAL,R8   SCAN              GET VALUE                                   
*                                                                               
         CI,R6    0                                                             
         BLE      MODELBAD          ERROR IF NOT EOF/EOC                        
*                                                                               
         EXU      MODELEXU,R2       EXECUTE PARAMETER STORE                     
*                                                                               
         B        MODEL15           AND GET NEXT KEY-WORD                       
********                                                                        
MODELOK  RES      0                                                             
         STW,R1   LASTMODL          UPDATE MODEL # COUNT                        
         B        A10               AND GO GET NEXT CARD                        
********                                                                        
MODELBAD RES      0                                                             
         BAL,R8   ERROR                                                         
         B        A10               GO GET NEXT CARD                            
********                                                                        
MODELXX  RES      0                                                             
         LH,R8    R8                RIGHT SHIFT MNEMONIC                        
         STH,R8   MNEMONIC,R1       STORE IT                                    
         B        *R9               AND RETURN                                  
         PAGE                                                                   
*                                                                               
* SIMILAR,MMMM                                                                  
*                                                                               
* R8     SIMILAR MODEL NUMBER                                                   
* R1     NEW MODEL NUMBER INDEX                                                 
*                                                                               
SIMMODEL RES      0                                                             
         LW,R2    LASTMODL                                                      
         CW,R8    MODEL#,R2         SEARCH FOR SIMILAR NUMBER                   
         BE       %+3               FOUND                                       
         BDR,R2   %-2               LOOP                                        
         B        MODELBAD          ERROR IF CANT FIND                          
*                                                                               
* R2 IS SIMILAR MODEL NUMBER INDEX                                              
*                                                                               
         LW,R3    #GETPUT                                                       
         EXU      MODELGET,R3                                                   
         EXU      MODELPUT,R3                                                   
         BDR,R3   %-2               MOVE ALL CHARACTERISTICS                    
         B        MODEL15           GO GET NEXT OPTION                          
         PAGE                                                                   
*                                                                               
* GET EXECUTES                                                                  
*                                                                               
#GETPUT  DATA     GETPUTE-MODELGET-1                                            
MODELGET EQU      %-1                                                           
         LB,R8    DEVTYPE,R2                                                    
         DO1      #SIDEBUF                                                      
         LB,R8    SBUFSIZE,R2                                                   
         LB,R8    IOFLAGS,R2                                                    
         LB,R8    CLISTSIZ,R2                                                   
         LD,R8    PREHAND,R2                                                    
         LD,R8    POSTHAND,R2                                                   
         LB,R8    NSPT,R2                                                       
         LH,R8    NTPC,R2                                                       
         LH,R8    NCYL,R2                                                       
         LH,R8    NWPS,R2                                                       
         LB,R8    SECTSHFT,R2                                                   
         LB,R8    TRAKSHFT,R2                                                   
         LB,R8    CYLSHFT,R2                                                    
         LB,R8    IOTX,R2                                                       
         LH,R8    MNEMONIC,R2                                                   
GETPUTE  EQU      %                                                             
         PAGE                                                                   
MODELPUT EQU      %-1                                                           
         STB,R8   DEVTYPE,R1                                                    
         DO1      #SIDEBUF                                                      
         STB,R8   SBUFSIZE,R1                                                   
         STB,R8   IOFLAGS,R1                                                    
         STB,R8   CLISTSIZ,R1                                                   
         STD,R8   PREHAND,R1                                                    
         STD,R8   POSTHAND,R1                                                   
         STB,R8   NSPT,R1                                                       
         STH,R8   NTPC,R1                                                       
         STH,R8   NCYL,R1                                                       
         STH,R8   NWPS,R1                                                       
         STB,R8   SECTSHFT,R1                                                   
         STB,R8   TRAKSHFT,R1                                                   
         STB,R8   CYLSHFT,R1                                                    
         STB,R8   IOTX,R1                                                       
         STH,R8   MNEMONIC,R1                                                   
         PAGE                                                                   
*                                                                               
*                                                                               
MODELKW  RES      0                                                             
#MODELKW DATA     MODELKWE-MODELKW-1                                            
         TEXT     'MNEM'                                                        
         TEXT     'TYPE'                                                        
         DO1      #SIDEBUF                                                      
         TEXT     'SDBU'                                                        
         TEXT     'DCT3'                                                        
         TEXT     'CLIS'                                                        
         TEXT     'PREH'                                                        
         TEXT     'POST'                                                        
         TEXT     'NSPT'                                                        
         TEXT     'NTPC'                                                        
         TEXT     'NCYL'                                                        
         TEXT     'NWPS'                                                        
         TEXT     'SSFT'                                                        
         TEXT     'TSFT'                                                        
         TEXT     'CSFT'                                                        
         TEXT     'IOTX'                                                        
         TEXT     'SIMI'                                                        
MODELKWE RES      0                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
MODELKWT DATA,1   0                                                             
         DATA,1   1                                                             
         DATA,1   4                                                             
         DO1      #SIDEBUF                                                      
         DATA,1   4                                                             
         DATA,1   2                                                             
         DATA,1   4                                                             
         DATA,1   1                                                             
         DATA,1   1                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   4                                                             
         DATA,1   1                                                             
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
MODELEXU EQU      %-1                                                           
         BAL,R9   MODELXX                                                       
         STB,R8   DEVTYPE,R1                                                    
         DO1      #SIDEBUF                                                      
         STB,R8   SBUFSIZE,R1                                                   
         STB,R8   IOFLAGS,R1                                                    
         STB,R8   CLISTSIZ,R1                                                   
         STD,R8   PREHAND,R1                                                    
         STD,R8   POSTHAND,R1                                                   
         STB,R8   NSPT,R1                                                       
         STH,R8   NTPC,R1                                                       
         STH,R8   NCYL,R1                                                       
         STH,R8   NWPS,R1                                                       
         STB,R8   SECTSHFT,R1                                                   
         STB,R8   TRAKSHFT,R1                                                   
         STB,R8   CYLSHFT,R1                                                    
         STB,R8   IOTX,R1                                                       
         B        SIMMODEL                                                      
*                                                                               
*                                                                               
*                                                                               
         TITLE    '** SYSGEN  - PROCESS :STDLB COMMAND **'                      
*                                                                               
*                                                                               
*                                                                               
D01      CI,R6    2                 END OF CARD                                 
         BNE      D03               NO                                          
D02      BAL,R8   ERROR             YES,ERROR                                   
         B        A10                                                           
D03      BAL,R8   SCAN              GET OP LABEL                                
         CI,R6    0                                                             
         BNE      D02               ERROR IF NOT END OF SUBFIELD                
         CI,R10   2                                                             
         BG       D02               ERROR IF MORE THAN 2 CHARS.                 
         LH,R1    STDLB1                                                        
         AI,R1    -1                SEE IF OP LABEL ALREADY IN TABLE            
         LH,R8    R8                                                            
         CH,R8    STDLB1,R1                                                     
         BE       D06               YES, IN TABLE                               
         BDR,R1   %-2                                                           
         CI,R10   2                 NOT IN TABLE                                
         BNE      D02               ERROR IF NOT 2 CHARS.                       
         LH,R1    BTFILE                                                        
         CH,R8    BTFILE,R1                                                     
         BE       D02               OP LABEL CAN'T BE SAME AS BT FILE           
         BDR,R1   %-2                                                           
         LH,R1    STDLB1                                                        
         CI,R1    HA(STDLB2)-HA(STDLB1)                                         
         BGE      D02               B IF TOO MANY OPLABELS                      
         STH,R8   STDLB1,R1         STORE OP LABEL                              
D06      MTW,1    SCANPMC           SET FOR DEVICE TYPE INPUT                   
         BAL,R8   SCAN              GET DEVICE                                  
         MTW,-1   SCANPMC           RESET                                       
         CI,R6    1                                                             
         BL       D02               ERROR                                       
         CI,R8    0                                                             
         BNE      D09               NOT ASSIGNED TO ZERO                        
         STB,R8   STDLB2,R1                                                     
D07      CH,R1    STDLB1            WAS THIS A NEW SLOT                         
         BL       %+2               NO                                          
         MTH,1    STDLB1            STEP TO NEXT SLOT                           
         CI,R6    2                 END OF CARD                                 
         BNE      D03               NO, GET NEXT FIELD                          
         B        A10               EXIT                                        
D09      CI,R10   5                                                             
         BNE      D11               NOT DEVICE INPUT                            
         LW,R2    DEVNEXT                                                       
         LH,R3    R8                SAVE NAME                                   
         AND,R8   HWMASK            AND CLEAR TOP HALF OF R8                    
         AI,R2    -1                SEARCH FOR DEVICE                           
*                                                                               
D09A     RES      0                                                             
         CH,R8    DEVADDR,R2        SAME DEVICE ADDRESS                         
         BNE      D09AA             NOT THE SAME ADDRESS                        
         LB,R4    DEVMODX,R2                                                    
         CH,R3    MNEMONIC,R4       SAME NAME ALSO                              
         BE       D09B              YES                                         
D09AA    RES      0                                                             
         BDR,2    D09A              NO, LOOP                                    
         B        D02               CANT FIND, ERROR                            
D09B     RES      0                                                             
         STB,R2   STDLB2,R1         SAVE DCT INDEX AS PERM. ASSIGN.             
         B        D07                                                           
D11      LH,R2    STDLB1            OP LABEL INPUT                              
         AI,R2    -1                                                            
         LH,R8    R8                SEARCH FOR OP LABEL                         
         CH,R8    STDLB1,R2                                                     
         BE       %+3               FOUND IT                                    
         BDR,R2   %-2                                                           
         B        D02               ERROR, BAD OP LABEL INPUT                   
         LB,R0    STDLB2,R2                                                     
         STB,R0   STDLB2,R1         SET TO SAME ASSIGN.                         
         B        D07                                                           
         TITLE    '** SYSGEN  - PROCESS :SITE COMMAND **'                       
*                                                                               
* SITE CARD                                                                     
*                                                                               
SITECARD RES      0                                                             
         MTW,1    SITEFLAG                                                      
*                                                                               
         LI,R0    56                                                            
         LI,R1    BA(INBUF)+6                                                   
         LI,R2    BA(SITETEXT)                                                  
*                                                                               
SITELOOP RES      0                                                             
         LB,R3    0,R1                                                          
         STB,R3   0,R2                                                          
         AI,R1    1                                                             
         AI,R2    1                                                             
         BDR,R0   SITELOOP                                                      
*                                                                               
         B        A10                                                           
*****                                                                           
SITETEXT RES      56/4                                                          
*                                                                               
SITEFLAG DATA     0                                                             
*                                                                               
X55      DATA     55                                                            
         TITLE    '** SYSGEN  - PROCESS :MONITOR COMMAND **'                    
*                                                                               
*                                                                               
*                                                                               
E01      CI,R6    2                 END OF CARD                                 
         BNE      E03               NO                                          
E02      BAL,R8   ERROR             YES, ERROR                                  
         B        A10                                                           
E03      LW,R0    CRDCNT                                                        
         AND,R0   K6                WAS :RES INPUT OR SYS RAD ALLOC.            
         BEZ      E04               NO, ORDER OK                                
         LI,R7    MSG6              YES                                         
         BAL,R8   LOGALM            GO OUTPUT INPUT ORDER ERROR                 
*                                                                               
         WAIT     %                 HALT ON ORDER ERROR                         
         B        A01               START OVER FROM SCRATCH                     
         PAGE                                                                   
*                                                                               
* KEY-WORD FETCH                                                                
*                                                                               
E04      LI,R0    1                                                             
         STW,R0   SCANPMA           SET TO EBCDIC                               
         BAL,R8   SCAN              GET KEYWORD                                 
         CI,R6    -1                                                            
         BE       E02               ERROR                                       
         LW,R1    E90                                                           
         LI,R9    X'FFF00'          MASK FOR 3 CHARS                            
         CS,R8    E90,R1            SEARCH TABLE FOR KEYWORD                    
         BE       %+3               FOUND                                       
         BDR,R1   %-2                                                           
         B        E02               ERROR, NOT FOUND                            
         LH,R0    E91,R1            GET ADDRESS TO PROCESS KEYWORD              
         AND,R0   HWMASK                                                        
         B        *R0                                                           
E05      CI,R6    2                 END OF CARD                                 
         BNE      E03               NO, GET NEXT FIELD                          
         LI,R0    1                 YES                                         
         OR,R0    CRDCNT                                                        
         STW,R0   CRDCNT            SET FLAG THAT :MON INPUT                    
         B        A10               EXIT                                        
         PAGE                                                                   
*                                                                               
* CORE                                                                          
*                                                                               
E20      CI,R6    0                 CORE KEYWORD                                
         BNE      E02               ERROR, IF NOT END OF SUBFIELD               
         MTW,3    SCANPMA           SET TO DECIMAL                              
         BAL,R8   SCAN                                                          
         CI,R6    1                                                             
         BL       E02               ERROR                                       
         CI,R8    16                                                            
         BL       E02               ERROR IF <16K CORE                          
         LW,R9    R8                                                            
         MI,R9    1024                                                          
         STW,R9   K:UNAVBG                                                      
         B        E05                                                           
         PAGE                                                                   
*                                                                               
* FPSIM                                                                         
*                                                                               
E21      CI,R6    0                 FPSIM KEYWORD                               
         BE       E02                                                           
         LI,R0    FPSIZE                                                        
         STW,R0   FPSIM                                                         
         B        E05                                                           
*                                                                               
* DECSIM                                                                        
*                                                                               
E22      CI,R6    0                 DECSIM KEYWORD                              
         BE       E02                                                           
         LI,R0    DECSIZE                                                       
         STW,R0   DECSIM                                                        
         B        E05                                                           
*                                                                               
* ACCNT                                                                         
*                                                                               
E24      CI,R6    0                 ACCNT KEYWORD                               
         BNE      %+2               B IF END OF FIELD                           
*        A KEYWORD WILL BE ACCEPTED (BUT IGNORED)                               
         BAL,R8   SCAN              GET ACCNT TYPE                              
         CI,R6    1                                                             
         BL       E02                                                           
         LI,R0    1                 YES                                         
E24A     STW,R0   K:ACCNT                                                       
         B        E05                                                           
         PAGE                                                                   
*                                                                               
* BYTSIM                                                                        
*                                                                               
E25      CI,R6    0                                                             
         BE       E02                                                           
         LI,R0    BYTSIZE           BYTSIM KEYWORD                              
         STW,R0   BYTSIM                                                        
         B        E05                                                           
*                                                                               
* CVSIM                                                                         
*                                                                               
E26      CI,R6    0                 CVSIM KEYWORD                               
         BE       E02                                                           
E26A     LI,R0    CVSIZE                                                        
         STW,R0   CVSIM                                                         
         B        E05                                                           
*                                                                               
* ALLSIM                                                                        
*                                                                               
E27      CI,R6    0                 ALLSIM KEYWORD                              
         BE       E02                                                           
         LI,R0    FPSIZE                                                        
         STW,R0   FPSIM                                                         
         LI,R0    DECSIZE                                                       
         STW,R0   DECSIM                                                        
         LI,R0    BYTSIZE                                                       
         STW,R0   BYTSIM                                                        
         B        E26A                                                          
         PAGE                                                                   
*                                                                               
* DELTA                                                                         
*                                                                               
         DO       #DELMDL           CODE TO FLAG THAT DELTA WAS REQUESTD        
E28      CI,R6    0                 DELTA KEYWORD                               
         BE       E02                                                           
         LI,R0    DELSIZE                                                       
         STW,R0   DELTA                                                         
         B        E05                                                           
         FIN                                                                    
*                                                                               
* LPP                                                                           
*                                                                               
E29      CI,R6    0                 LINES PER PAGE                              
         BNE      E02                                                           
         MTW,3    SCANPMA           SET FOR DECIMAL                             
         BAL,R8   SCAN              GET NO. LINES PER PAGE                      
         CI,R6    1                                                             
         BL       E02               ERROR                                       
         CI,R8    255                                                           
         BG       E02               ERROR IF MORE THAN 255                      
         STB,R8   K:PAGE            SAVE IT                                     
         B        E05                                                           
         PAGE                                                                   
*                                                                               
* ALARM/CRASH                                                                   
*                                                                               
E33      RES      0                                                             
         CI,R6    0                 IS IT END OF FIELD OR CARD                  
         BLE      E02               NO ERROR                                    
         DO1      #CRASH                                                        
         MTW,1    XBBFLAG           SET FLAG TO FORCE XTRA BB                   
         MTW,1    CRFLAG                                                        
         B        E05               AND GET NEXT FIELD                          
*                                                                               
* ERRORLOG                                                                      
*                                                                               
E33A     RES      0                                                             
         CI,R6    0                 IS IT END OF CARD OR FIELD                  
         BLE      E02               NO, ERROR                                   
         DO1      #ERRORLOG                                                     
         MTW,1    XBBFLAG           SET FLAG TO FORCE EXTRA BB                  
         MTW,1    ERFLAG            SET FLAG TO ALLOW ERROR ALLOC               
         B        E05               AND GET NEXT FIELD                          
*                                                                               
* DEBUG                                                                         
*                                                                               
E34H     RES      0                                                             
         CI,R6    0                 END OF CARD OR FIELD                        
         BLE      E02               NO ERROR                                    
         DO1      #DEBUG            YES                                         
         MTW,1    DBFLAG            SET DEBUG FLAG                              
         B        E05               AND GO ON                                   
         PAGE                                                                   
*                                                                               
* DLOLAY/SSOLAY/PROLAY/ROLAY/NROLAY                                             
*                                                                               
E34F     LI,R0    DLOLAY            DON'T LOAD                                  
         B        E34AA                                                         
E34E     LI,R0    SSOLAY            SUB SYS OLAY                                
         B        E34AA                                                         
E34B     LI,R0    PROLAY            PERMANENTLY RES                             
         B        E34AA                                                         
E34      LI,R0    ROLAY             RESIDENT CODE                               
         B        E34AA                                                         
E34A     LI,R0    NROLAY            NON-RESIDENT                                
E34AA    STB,R0   DEFT4             SAVE IT                                     
         CI,R6    0                                                             
         BNE      E02               ERROR                                       
         BAL,R8   SCAN              GET OLAY NAME                               
         CI,R6    0                                                             
         BL       E02               MUST BE END OF CARD OR FIEL                 
         LW,R1    #OVIS             NUMBER OF OVERLAYS                          
         LD,R15   DEFT1,R1          GET FIRST 4 CHARS OF NEXT OLAY NAME         
         CW,R8    R15                                                           
         BE       E34D              B IF MATCH                                  
         BDR,R1   %-3                                                           
         MTW,1    #OVIS             INCREMENT # OF OVERLAYS                     
         LW,R1    #OVIS             GET # OR OVERLAYS                           
         CI,R1    #OVI              GREATER THAN MAX                            
         BLE      %+3               NO                                          
         MTW,-1   #OVIS             BACK IT UP                                  
         B        E02               ERROR                                       
*                                                                               
E34C     STD,R8   DEFT1,R1                                                      
E34D     LB,R0    DEFT4             GET NEW TYPE                                
         CI,R0    DLOLAY            DONT LOAD                                   
         BE       E34DA             YES ,OKAY                                   
         LB,R0    DEFT4,R1          GET OLD TYPE                                
         CI,R0    PROLAY            PERM RES                                    
         BE       E34DD             YES, DON'T CHANGE                           
         CI,R0    SSOLAY            SUB SYS OLAY                                
         BE       E34DD                                                         
E34DA    EQU      %                                                             
         LB,R0    DEFT4             STORE NAME                                  
         STB,R0   DEFT4,R1          STORE ALLOCATION                            
E34DD    CI,R6    0                 EP'S DECLARED                               
         BNE      E05               NO                                          
         MTW,3    SCANPMA           SET FOR DEC                                 
         BAL,R8   SCAN              GET IT                                      
         CI,R6    0                 SHOULD STILL BE A SUBFIELD                  
         BNE      E02               ERROR                                       
         STW,R8   DEFT2,R1          SAVE NO. OF ENTRY POINTS                    
         BAL,R8   SCAN              GET NEXT                                    
         CI,R6    1                 SHOULD BE END OF FIELD OR CARD              
         BL       E02               ERROR                                       
         SLS,R8   16                SET FOR BOTH                                
         AWM,R8   DEFT2,R1          SAVE NO. OF EXIT POINTS                     
         B        E05               NEXT FIELD                                  
         PAGE                                                                   
*                                                                               
* OLAYEP                                                                        
*                                                                               
E34G     CI,R6    0                 LEGAL                                       
         BNE      E02               NO                                          
         MTW,3    SCANPMA           SET FOR DECIMAL                             
         BAL,R8   SCAN              GET NEXT FIELD                              
         CI,R6    1                 END OF FIELD OR CARD                        
         BL       E02               NO                                          
         CI,R8    #EPI              TOO LARGE                                   
         BLE      %+2               YES                                         
         LI,R8    #EPI              USE MAXIMUM                                 
         STW,R8   #EPIS             SAVE IT                                     
         B        E05               NEXT FIELD                                  
*                                                                               
* REBOOT                                                                        
*                                                                               
*                                                                               
E40      RES      0                                                             
         MTW,-1   REBOOT                                                        
         B        E05               GET NEXT FIELD                              
*                                                                               
REBOOT   DATA     0                                                             
         PAGE                                                                   
*                                                                               
* SYSTEM PROCESSOR AREA NAME                                                    
*                                                                               
E50      RES      0                                                             
         BAL,R8   SCAN              SCAN FOR NAME OF AREA                       
*                                                                               
         CI,R6    1                 IS IT EOF/EOC                               
         BL       E02               NO, ERROR                                   
*                                   YES                                         
         INT,R3   R8                LOAD RIGNT HAND HW                          
         CI,R3    '  '              IT MUST BE BLANKS                           
         BNE      E02               IF NOT, ERROR                               
*                                   OK SO FAR                                   
         LH,R8    R8                RIGHT JUSTIFY AND SIGN EXTEND NAME          
         STH,R8   SPANAME           SAVE NAME FOR LATER                         
         B        E05               AND SCAN FOR NEXT KEYWORD                   
********                                                                        
*                                                                               
SPANAME  DATA     'SP  '            SYSTEM PROCESSOR AREA NAME                  
         PAGE                                                                   
*                                                                               
* OVERLAY BOUND FLAG                                                            
*                                                                               
E55      RES      0                                                             
         CI,R6    0                 IS IT END OF FIELD OR CARD                  
         BLE      E02               NO, ERROR                                   
         MTW,1    BOUNDFLG          YES, SET BOUND FLAG                         
         B        E05               GET NEXT FIELD                              
*                                                                               
* STVM OPTION                                                                   
*                                                                               
E56      EQU      %                 START OF TASK VIRTUAL MEMORY                
         CI,6     0                                                             
         BNE      E02               ERROR IF NOT END OF SUBFIELD                
         MTW,1    SCANPMA           SET FOR HEX (=2)                            
         BAL,8    SCAN                                                          
         CI,6     1                 END OF FIELD OR CARD                        
         BL       E02               NO                                          
         CI,8     X'5000'                                                       
         BL       E02                                                           
         CI,8     X'10000'                                                      
         BG       E02                                                           
         CI,8     X'1FF'            PAGE BOUNDED                                
         BANZ     E02                                                           
         STW,8    STVMVAL                                                       
         B        E05                                                           
         PAGE                                                                   
*                                                                               
* KEY-WORDS                                                                     
*                                                                               
E90      DATA     E91-E90-1         TABLE OF LEGAL KEYWORDS                     
         TEXT     'COR '                                                        
         TEXT     'FPS '                                                        
         TEXT     'DEC '                                                        
         TEXT     'ACC '                                                        
         TEXT     'BYT '                                                        
         TEXT     'CVS '                                                        
         TEXT     'ALL '                                                        
         DO       #DELMDL           TEXT 'DEL ' TO IDENTIFY DELTA REQST         
         TEXT     'DEL '                                                        
         FIN                                                                    
         TEXT     'LPP '                                                        
         TEXT     'CRAS'                                                        
         TEXT     'ALAR'                                                        
         TEXT     'ERRO'                                                        
         TEXT     'ROLA'                                                        
         TEXT     'NROL'                                                        
         TEXT     'PROL'                                                        
         TEXT     'SSOL'                                                        
         TEXT     'DLOL'                                                        
         TEXT     'OLAY'                                                        
         TEXT     'DEBU'                                                        
         TEXT     'REBO'            REBOOT                                      
         TEXT     'SPA '                                                        
         TEXT     'BOUN'                                                        
         TEXT     'STVM'                                                        
*                                                                               
*                                                                               
*                                                                               
E91      DATA,2   0                 KEYWORD SUBROUTINES                         
         DATA,2   E20               CORE                                        
         DATA,2   E21               FPS                                         
         DATA,2   E22               DEC                                         
         DATA,2   E24               ACC                                         
         DATA,2   E25               BYT                                         
         DATA,2   E26               CVS                                         
         DATA,2   E27               ALL                                         
         DO1      #DELMDL                                                       
         DATA,2   E28               DELTA                                       
         DATA,2   E29               LPP                                         
         DATA,2   E33               CRASH                                       
         DATA,2   E33               ALARM                                       
         DATA,2   E33A              ERROR                                       
         DATA,2   E34               ROLAY                                       
         DATA,2   E34A              NROLAY                                      
         DATA,2   E34B              PROLAY                                      
         DATA,2   E34E              SSOL                                        
         DATA,2   E34F              DLOL                                        
         DATA,2   E34G              OLAY                                        
         DATA,2   E34H              DEBUG                                       
         DATA,2   E40               REBOOT                                      
         DATA,2   E50               SPA                                         
         DATA,2   E55               BOUND                                       
         DATA,2   E56               STVMVAL                                     
         BOUND    4                                                             
         TITLE    '** SYSGEN - PROCESS :RESERVE COMMAND **'                     
*                                                                               
*                                                                               
*                                                                               
F01      CI,R6    2                 END OF CARD                                 
         BNE      F03               NO                                          
F02      BAL,R8   ERROR             YES, ERROR EXIT                             
         B        A10                                                           
F03      RES      0                                                             
         LW,R0    CRDCNT                                                        
         CI,R0    2                 HAS A :RES CARD BEEN INPUT                  
         BANZ     F02               YES, ERROR                                  
*                                   NO                                          
*                                                                               
F04      LI,R8    1                                                             
         STW,R8   SCANPMA           SET SCAN TO EBCDIC                          
         BAL,R8   SCAN              GET KEY WORD                                
         CI,R6    0                                                             
         BNE      F02               ERROR IF NOT END OF SUBFIELD                
         LW,R1    F90                                                           
         LI,R9    X'FFF00'          MASK FOR 3 CHAR.                            
         CS,R8    F90,R1            SEARCH FOR KEYWORD                          
         BE       %+3               FOUND                                       
         BDR,R1   %-2                                                           
         B        F02               NOT FOUND, ERROR                            
*                                                                               
         LI,R8    5                                                             
         STW,R8   SCANPMA           SET SCAN TO DECIMAL OR EBCDIC               
         BAL,R8   SCAN              GO GET OPTION                               
         CI,R6    0                                                             
         BLZ      F02               ERROR IN INPUT                              
*                                   INPUT OK                                    
         LH,R0    F91,R1            GET ADDRESS TO PROCESS KEYWORD              
         AND,R0   HWMASK            MASK OFF SIGN EXTENSION                     
         B        *R0                                                           
*                                                                               
* END OF OPTION TESTING                                                         
*                                                                               
F05      CI,R6    2                 END OF CARD                                 
         BNE      F04               NO, GET NEXT FIELD                          
         LI,R0    2                 YES                                         
         OR,R0    CRDCNT            SET BIT THAT :RES INPUT                     
         STW,R0   CRDCNT                                                        
         B        A10               EXIT FOR NEXT CARD                          
         PAGE                                                                   
*                                                                               
* MPATCH                                                                        
*                                                                               
F21      STW,R8   MPATCH            SAVE 'MPATCH' INPUT                         
         B        F05                                                           
*                                                                               
* FRAD                                                                          
*                                                                               
F24      STW,R8   FRAD                                                          
         B        F05                                                           
*                                                                               
* BRAD                                                                          
*                                                                               
F25      STW,R8   BRAD                                                          
         B        F05                                                           
F26      LW,R0    BIOQ                                                          
         AW,R0    R8                                                            
         CI,R0    256                                                           
         BGE      F02               ERROR IF FIOQ+BIOQ>255                      
         STW,R8   FIOQ                                                          
         B        F05                                                           
*                                                                               
* FIOQ                                                                          
*                                                                               
F27      LW,R0    FIOQ                                                          
         AW,R0    R8                                                            
         CI,R0    256                                                           
         BGE      F02               ERROR IF FIOQ+BIOQ>255                      
         STW,R8   BIOQ                                                          
         B        F05                                                           
         PAGE                                                                   
*                                                                               
*                                                                               
* BT                                                                            
*                                                                               
F29      CI,R8    9                                                             
         BG       F02               9 MAX. ALLOWABLE                            
         AI,R8    2                 ADD 2 MORE FOR  GO,OV                       
         STW,R8   NUMBT             SAVE                                        
         B        F05                                                           
*                                                                               
*                                                                               
* TSPACE                                                                        
*                                                                               
F31      RES      0                 TSP                                         
         STW,R8   TEMP#             SAVE TEMP SPACE COUNT                       
         B        F05                                                           
*                                                                               
* TASKS                                                                         
*                                                                               
F32      RES      0                 TASK                                        
         AI,R8    3+2*#MAP                                                      
         CI,R8    192               CHECK FOR LIMIT                             
         BG       F02               TOO BIG                                     
*                                   OK                                          
         STW,R8   #TASKS            SAVE VALUE                                  
         B        F05               AND GET NEXT FIELD                          
*                                                                               
* LDMD/FRGD                                                                     
*                                                                               
F33      RES      0                 LDMD                                        
F23      RES      0                 FRGD                                        
         AI,R8    2                                                             
         CI,R8    255               CHECK FOR LIMIT                             
         BG       F02               TOO BIG                                     
*                                   OK                                          
         STW,R8   #LDMD             SAVE VALUE                                  
         B        F05               AND GET NEXT FIELD                          
*                                                                               
         PAGE                                                                   
* JOBS                                                                          
*                                                                               
F34      RES      0                 JOBS                                        
         CI,R8    31                CHECK UPPER LIMIT                           
         BGE      F02               TOO BIG                                     
*                                   OK                                          
         CI,R8    1                 CHECK LOWER LIMIT                           
         BL       F02               TOO LOW                                     
*                                   OK                                          
         AI,R8    2                 ADD 1 FOR RBM AND BKG JOB                   
         CI,R8    32                TOO MANY                                    
         BG       F02               YES                                         
         DO1      #ECB                                                          
         STW,R8   #JOBS             AND SAVE VALUE                              
         B        F05               RETURN FOR NEXT FIELD                       
*                                                                               
*                                                                               
* JPT                                                                           
*                                                                               
F35      RES      0                 JPT                                         
         CI,R8    64                IS IT TOO BIG                               
         BG       F02               YES, ERROR                                  
*                                   NO                                          
         STW,R8   #JPT              SAVE VALUE                                  
         B        F05               RETURN FOR NEXT FIELD                       
*                                                                               
* BMEM                                                                          
*                                                                               
F36      RES      0                 BMEM                                        
         CI,R8    192               CHECK UPPER LIMIT                           
         BG       F02               TOO BIG                                     
*                                   OK                                          
         STH,R8   R8                SAVE CURRENT AND DEFAULT VALUES             
         STW,R8   K:BMEM            SAVE VALUE                                  
         B        F05               RETURN FOR NEXT FIELD                       
*                                                                               
* FMEM                                                                          
*                                                                               
F40      RES      0                 FMEM                                        
         CI,R8    192               CHECK UPPER LIMIT                           
         BG       F02               TOO BIG, ERROR                              
         STH,R8   R8                SAVE CURRENT AND DEFAULT VALUES             
         STW,R8   K:FSMM                                                        
         B        F05                                                           
*                                                                               
* JENQ                                                                          
*                                                                               
F50      RES      0                                                             
         STW,R8   JENQ              SAVE VALUE                                  
         B        F05                                                           
*                                                                               
JENQ     DATA     0                                                             
*                                                                               
* TENQ                                                                          
*                                                                               
F60      RES      0                                                             
         STW,R8   TENQ              SAVE VALUE                                  
         B        F05                                                           
*                                                                               
TENQ     DATA     0                                                             
         PAGE                                                                   
*                                                                               
* MASTD                                                                         
*                                                                               
F70      RES      0                 MASTD KEY-WORD                              
         CI,R9    0                 IS IT A VALUE                               
         BEZ      F75               YES, PROCESS AS EXTRA MD COUNT              
*                                   NO, IT IS A DN OPTION                       
         LB,R0    R8                GET FIRST CHARACTER                         
         CI,R0    'D'               IS IT A D                                   
         BNE      F02               NO, ERROR                                   
*                                   YES                                         
         LH,R8    R8                RIGHT SHIFT DN                              
         AND,R8   KXFF              MASK OFF N                                  
         CI,R8    '0'               IS IT A LETTER                              
         BGE      %+2               NO                                          
         AI,R8    -'A'+'0'+10       ADJUST TO GET X'FN'                         
         AND,R8   KXF               MASK OFF N                                  
         AI,R8    5                 ADJUST N                                    
         STW,R8   MINIMUMD          AND SAVE AS MINIMUM INDEX                   
         B        F79               GO CHECK FOR OTHER OPTIONS                  
********                                                                        
F75      RES      0                 OPTION IS # OF EXTRA MD ENTRIES             
         STW,R8   #EXTRAMD          SAVE VALUE                                  
*                                                                               
F79      RES      0                                                             
         CI,R6    0                 IS IT END OF SUB-FIELD                      
         BNE      F05               NO, GET NEXT KEYWORD                        
*                                   YES, GET NEXT OPTION                        
         BAL,R8   SCAN                                                          
*                                                                               
         CI,R6    0                 ANY ERROR                                   
         BLZ      F02               YES, ERROR                                  
*                                   NO                                          
         B        F70                                                           
         PAGE                                                                   
*                                                                               
*                                                                               
*                                                                               
F90      DATA     F91-F90-1         TABLE OF LEGAL KEYWORDS                     
         TEXT     'MPA '                                                        
         TEXT     'FRG '                                                        
         TEXT     'FRA '                                                        
         TEXT     'BRA '                                                        
         TEXT     'FIO '                                                        
         TEXT     'BIO '                                                        
         TEXT     'BT  '                                                        
         TEXT     'TSP '                                                        
         TEXT     'TASK'                                                        
         TEXT     'LDMD'                                                        
         TEXT     'JOBS'                                                        
         TEXT     'JPT '                                                        
         TEXT     'BMEM'                                                        
         TEXT     'FMEM'                                                        
         TEXT     'JENQ'                                                        
         TEXT     'TENQ'                                                        
         TEXT     'MAST'            MAS(TD)                                     
*                                                                               
F91      DATA,2   0                                                             
         DATA,2   F21                                                           
         DATA,2   F23                                                           
         DATA,2   F24                                                           
         DATA,2   F25                                                           
         DATA,2   F26                                                           
         DATA,2   F27                                                           
         DATA,2   F29                                                           
         DATA,2   F31                                                           
         DATA,2   F32                                                           
         DATA,2   F33                                                           
         DATA,2   F34                                                           
         DATA,2   F35                                                           
         DATA,2   F36                                                           
         DATA,2   F40               FMEM                                        
         DATA,2   F50               JENQ                                        
         DATA,2   F60               TENQ                                        
         DATA,2   F70               MASTD                                       
         BOUND    4                                                             
         TITLE    '** SYSGEN  - PROCESS :MEMORY COMMAND **'                     
*                                                                               
*        PROCESS :MEM CARD AND                                                  
*                                                                               
*        PUSHING INFORMATION ABOUT EACH DEFINED PARTITION                       
*        IN A DW STACK                                                          
*                                                                               
*        ALSO LOCATE KEY ENTIRES IN THIS STACK:                                 
*                 STM INDEX                                                     
*                 MAILBOX INDEX                                                 
*                 BLOCK BUFFER INDEX                                            
*                 1ST PRIVATE INDEX                                             
*                                                                               
*                 VERIFY THAT THERE IS ONLY ONE:                                
*                       MAILBOX PARTITION                                       
*                       BLOCKING BUFFER PARTITION                               
*        VERIFY THAT START ADDRESS GIVEN FOR                                    
*                 PRIVATE AND PMEM PARTITIONS                                   
*                                                                               
*                                                                               
Z01      CI,R6    2                 END OF CARD                                 
         BNE      Z03                                                           
Z02      BAL,R8   ERROR             YES, ERROR EXIT                             
         B        A10                                                           
Z03      LW,R0    CRDCNT                                                        
         CI,R0    4                 HAS:MEM CARD ALREADY BEEN INPUT             
         BANZ     Z02               YES, ERROR                                  
         LD,R0    Z84               NO, INITIALIZE STACK                        
         STD,R0   Z85                                                           
         LI,R0    0                                                             
         LI,R1    0                                                             
         LCI      2                                                             
         PSM,R0   Z85                                                           
*                                   CPR PARTITION IN STACK FIRST                
*                                                                               
Z04      LI,R8    1                                                             
         STW,R8   SCANPMA           SET SCAN TO EBCDIC                          
         BAL,R8   SCAN              GET KEYWORD                                 
         CI,R6    0                                                             
         BNE      Z02               ERROR IF NOT END OF SUBFIELD                
         LW,R1    Z02                                                           
         LW,R1    Z90                                                           
         LI,R9    X'FFF00'          MASK FOR 3 CHARACTERS                       
         CS,R8    Z90,R1            SEARCH FOR KEYWORD                          
         BE       %+3               FOUND                                       
         BDR,R1   %-2                                                           
         B        Z02               NOT FOUND, ERROR                            
*                                                                               
         LI,R8    5                                                             
         STW,R8   SCANPMA           SET SCAN TO DECIMAL OR EBCDIC               
         BAL,R8   SCAN              GET OPTION                                  
         CI,R6    0                                                             
         BLZ      Z02               ERROR IN INPUT                              
         LH,R0    Z91,R1            GET ADDRESS TO PROCESS KEYWORD              
         AND,R0   HWMASK            MASK OFF SIGN EXTENSION                     
         B        *R0                                                           
*                                                                               
*        RETURN HERE AFTER PROCCESSING OPTION                                   
*                                                                               
Z05      CI,R6    2                 END OF CARD                                 
         BNE      Z04               NO, GET NEXT FIELD                          
*                                   ALL OPTIONS PROCESSED                       
*                                   DO CONISTENCY CHECKS                        
         LW,R0    K:FMBOX           FMBOX OR POOL DEFAULTED START               
         MTW,0    XPOOL                                                         
         BNEZ     %+4               B IF SEPARATE POOL PART                     
         LW,R1    BBNUM                                                         
         SLS,R1   8                 NO. BB TO WORDS                             
         AW,R0    R1                R0=LEN. MBOX+POOL DEFUALT                   
         CI,R0    0                                                             
         BE       Z06               NO                                          
         MTW,0    XPRIV             YES, 1 PRIV.PART MUST EXIST                 
         BEZ      Z05A                                                          
*                                   SEE IF BB+BOX FITS IN PRIV                  
*                                                                               
         LW,R4    XPRIV                                                         
         LD,R2    Z86-2,R4                                                      
         AND,R3   KX1FFFF           R3 = LENGTH OIF PRIV AREA                   
         CW,R3    R0                                                            
         BGE      Z06                                                           
         LI,R7    MSG54                                                         
         B        Z05A+1                                                        
*                                                                               
Z05A     EQU      %                                                             
         LI,R7    MSG53                                                         
         LI,R9    0                                                             
         BAL,R8   TYPE                                                          
         LI,R0    0                                                             
         STW,R0   XPRIV             INITIALIZE VARIABLES                        
         STW,R0   XFMBOX                                                        
         STW,R0   XPOOL                                                         
         STW,R0   BBNUM                                                         
         STW,R0   K:FMBOX                                                       
         STW,0    FLGMBOX                                                       
         STW,R0   FLGPOOL                                                       
         LD,R0    Z84               REINITIALIZE   STACK                        
         STD,R0   Z85                                                           
         LI,R0    0                                                             
         LI,R1    0                                                             
         LCI      2                                                             
         PSM,R0   Z85                                                           
*                                   CPR PARTITION IN STACK FIRST                
         LI,R0    2                                                             
         STW,R0   XSTM                                                          
         B        A10               :MEM CARD IGNORED                           
Z06      EQU      %                                                             
*        DO OVERLAY CHECKS IF POOSIBLE HERE.                                    
         LI,R0    4                 SET BIT THAT :MEM INPUT                     
         OR,R0    CRDCNT                                                        
         B        A10               **** DEBUG **                               
         STW,R0   CRDCNT                                                        
         PAGE                                                                   
*                                                                               
* RSDF                                                                          
*                                                                               
Z20      SLS,R8   9                 RSDF PAGES TO WORDS                         
         LI,R14   TYPFPRIV          FOREGROUND PRIVATE PARTITION                
         LI,R12   0                 START PARM. REQUIRED                        
         LI,R2    R2                                                            
         MTW,0    XPRIV                                                         
         BNEZ     %+2                                                           
         LI,R2    XPRIV                                                         
         B        Z80                                                           
*                                                                               
* FFPOOL                                                                        
*                                                                               
Z22      LW,R9    R8                                                            
         BEZ      Z05               IGNORE IF SIZE=0                            
         SLS,R8   8                 NO BB TO WORDS                              
         MTW,0    FLGPOOL           2ND FFPOOL OPTION                           
         BGZ      Z02               YES, ERROR                                  
         MTW,1    FLGPOOL                                                       
         STW,R9   BBNUM                                                         
         LI,R14   TYPFBLK                                                       
         LI,R2    XPOOL                                                         
         CI,R6    0                                                             
         BEZ      Z80               B IF START ADR GIVEN                        
         B        Z05               DEFAULT CASE, XPOOL=0                       
*                                                                               
* FMBOX                                                                         
*                                                                               
Z28      LI,R14   TYPFMBOX          FOREGROUND MAILBOX PARTITION                
         MTW,0    FLGMBOX           2ND FMBOX OPTION                            
         BGZ      Z02               YES, ERROR                                  
         MTW,1    FLGMBOX                                                       
         LI,R2    XFMBOX                                                        
         CI,R6    0                                                             
         BEZ      Z80               B IF START ADR GIVEN                        
         STW,R8   K:FMBOX           SAVE MAILBOX SIZE                           
         B        Z05               AND GET NEXT PARAMTER                       
*                                                                               
* PMEM                                                                          
*                                                                               
Z30      SLS,R8   9                 PAGES TO WORDS                              
         LI,R12   0                 START PARAM REQUIRED                        
         LI,R14   TYPFPMEM                                                      
         LI,R2    R2                PMEM PARTION NO NOT NEEDED                  
         B        Z80                                                           
*                                                                               
* GAP                                                                           
*                                                                               
Z31      SLS,R8   9                 PAGES TO WORDS                              
         LI,R12   0                 START PARAMATER REQUIRED                    
         LI,R14   TYPEGAP                                                       
         LI,R2    R2                GAP PART NO NOT NEEDED                      
         B        Z80                                                           
         PAGE                                                                   
*                                                                               
* PARTITION PARAMETER FETCH                                                     
*                                                                               
Z80      AI,R8    511               GET START PARAMETER IF ANY                  
         AND,R8   KXFFFE00          ROUND SIZE UP TO A PAGE                     
*                                                                               
         LW,R13   R8                SIZE PARAMETER                              
         STB,R14  R13               PARTITION TYPE                              
*                                                                               
         CI,R6    0                 IS THERE A START PARAMTER                   
         BEZ      Z80A              YES, GET IT                                 
         CI,R12   0                 START PAR REQUIRED                          
         BE       Z02               YES, ERROR                                  
         B        Z81                                                           
Z80A     EQU      %                                                             
*                                   YES                                         
         LI,R8    2                                                             
         STW,R8   SCANPMA                                                       
         BAL,R8   SCAN              SCAN FOR A HEX VALUE                        
*                                                                               
         CI,R6    1                 END OF SUB FIELD OR ERROR                   
         BL       Z02               YES, ERROR                                  
*                                   NO                                          
         CI,R8    X'1FF'            IS IT A PAGE BOUNDARZ                       
         BANZ     F02               NO,ERROR                                    
*                                   YES, OK                                     
         LW,R12   R8                START PARAMTER                              
Z81      LCI      2                                                             
         PSM,R12  Z85               STACK PARAMETERS                            
         LW,R1    XSTM              SAVE PARTION NO IN CELL                     
         STW,R1   *R2                                                           
         MTW,1    XSTM                                                          
         B        Z05                                                           
*                                                                               
* PARTITION DATA STACKS                                                         
*                                                                               
         BOUND    8                                                             
Z84      DATA     Z86-1             STACK DW: EMPTY                             
         GEN,1,15,1,15 1,40,1,0                                                 
Z85      DATA     Z86+1             STACK DW: CPR PART PUSHED IN                
         GEN,1,15,1,15 1,38,1,2                                                 
Z86      ZERO     40                                                            
*                                                                               
TYPFPRIV EQU      1                                                             
TYPFMBOX EQU      2                                                             
TYPFBLK  EQU      3                                                             
TYPFPMEM EQU      4                                                             
TYPESTM  EQU      5                                                             
TYPEGAP  EQU      6                                                             
*                                                                               
         PAGE                                                                   
*                                                                               
Z90      DATA Z91-Z90-1                                                         
         TEXT     'RSD '            FOREGROUND PRIVATE MEMORY                   
         TEXT     'FFP '            FOREGROUND POOL                             
         TEXT     'FMB '            FOREGROUND MAILBOX                          
         TEXT     'PMEM'            PMEM                                        
         TEXT     'GAP '            GAP PARTITION                               
*                                                                               
Z91      DATA,2   0                                                             
         DATA,2   Z20                                                           
         DATA,2   Z22                                                           
         DATA,2   Z28                                                           
         DATA,2   Z30               PMEM                                        
         DATA,2   Z31               GAP                                         
         BOUND    4                                                             
         TITLE    '** SYSGEN  - PROCESS CTINT COMAND **'                        
*                                                                               
*                                                                               
*                                                                               
G01      RES      0                                                             
         LD,R0    G94                                                           
         STD,R0   G95               RESET STACK                                 
*                                                                               
         CI,R6    2                 END OF CARD                                 
         BNE      G03               NO                                          
G02      BAL,R8   ERROR             YES,ERROR                                   
         B        A10                                                           
G03      BAL,R8   SCAN              GET NEXT FIELD                              
         CI,R6    0                                                             
         BNE      G02               ERROR IF NOT END OF SUBFIELD                
         CI,R10   2                                                             
         BNE      G02               ERROR IF NOT 2 CHARS                        
         SLS,R8   -16               POSITION                                    
         CI,R8    'CT'              IS IT 'CT'                                  
         BNE      G05                                                           
         LI,R1    0                 SET INDEX FOR CTINT                         
G04      MTW,1    SCANPMA           SET TO HEX CONVERSION                       
         BAL,R8   SCAN              GET ADDRESS                                 
         CI,R6    1                                                             
         BL       G02               ERROR                                       
         MTW,-1   SCANPMA           RESET TO EBCDIC                             
         CI,R8    0                 IS VALUE 0                                  
         BNEZ     %+2               NO,SKIP                                     
         LI,R8    X'5D'             YES, DEFAULT TO CP INT                      
         BAL,R15  CKINTADR                                                      
         B        G02               ILLEGAL ADDRESS                             
         EXU      G91,R1            PRIORITY NOT BELOW IO LEVEL                 
         EXU      G90,R1            SAVE VALUE                                  
         CI,R6    2                 END OF CARD                                 
         BNE      G03               NO, GET NEXT FIELD                          
         B        A10               EXIT                                        
G05      CI,R8    'HI'              IS IT 'HI'                                  
         BNE      G08               NO                                          
*                                   YES                                         
         LI,R1    1                 SET INDEX FOR HIINT                         
         B        G04                                                           
*                                                                               
G08      RES      0                                                             
         CI,R8    'IO'              IS IT 'IO'                                  
         BNE      G02               NO, ERROR                                   
*                                   YES                                         
         LI,R1    2                                                             
         B        G04               GO BACK WITH INDEX FOR IOINT                
G90      PSW,R8   G95                                                           
         STW,R8   HIINT                                                         
         STW,R8   IOINT                                                         
*        TABLE OF ACTIONS FOR PRIORITY ABOVE IO LEVEL                           
G91      B        G02               ERROR FOR CT                                
         NOP      0                 OK FOR HI                                   
         B        G02               ERROR FOR IO                                
*                                                                               
         BOUND    8                                                             
G94      DATA     G96-1                                                         
         GEN,1,15,1,15 1,20,1,0                                                 
G95      RES      2                                                             
G96      RES      20                                                            
         TITLE    '** SYSGEN  - PROCESS:INTLB COMMAND **'                       
*                                                                               
*                                                                               
H01      CI,R6    2                 END OF CARD                                 
         BNE      H03               NO                                          
H02      BAL,R8   ERROR             YES, ERROR                                  
         B        A10                                                           
H03      BAL,R8   SCAN              GET LABEL FOR INT.                          
         CI,R6    0                                                             
         BNE      H02               ERROR IF NOT END OF SUBFIELD                
         CI,R10   2                                                             
         BNE      H02               ERROR IF NOT 2 CHARS                        
         LH,R1    INTLB1                                                        
         AI,R1    -1                SEARCH TABLE TO SEE IF LABEL                
         LH,R8    R8                  ALREADY THERE                             
         CH,R8    INTLB1,R1                                                     
         BE       %+3               YES, USE SAME SLOT                          
         BDR,R1   %-2                                                           
         LH,R1    INTLB1            NO, USE NEW SLOT                            
         STH,R8   INTLB1,R1         STORE LABEL                                 
         MTW,1    SCANPMA           SET TO HEX CONVERSION                       
         BAL,R8   SCAN              GET ADDRESS                                 
         CI,R6    1                                                             
         BL       H02               ERROR                                       
         MTW,-1   SCANPMA           RESET TO EBCDIC                             
         BAL,R15  CKINTADR                                                      
         B        H02               ILLEGAL ADDRESS                             
         NOP      0                 PRIORITY NOT BELOW IO LEVEL                 
         STH,R8   INTLB2,R1         SAVE ADDRESS OF INT.                        
         CH,R1    INTLB1            WAS THIS A NEW SLOT                         
         BL       %+2               NO                                          
         MTH,1    INTLB1            YES, STEP TO NEXT SLOT                      
         CI,R6    2                 END OF CARD                                 
         BNE      H03               NO,GET NEXT INT LABEL                       
         B        A10               YES, EXIT                                   
         TITLE    '** SYSGEN  - CKINTADR SUBROUTINE  -**'                       
*                                                                               
*        CALL:    BAL,R15  CKINTADR                                             
*                                                                               
*        INPUT:   R8=ADDRESS TO CHECK                                           
*                                                                               
*        RETURN:  CALL+3 IF ADDRESS IS OK                                       
*                 CALL+2 IF PRIORITY NOT BELOW IO LEVEL                         
*                 CALL+1 IF ADDRESS IS ILLEGAL                                  
*                                                                               
*        USES:    R0                                                            
*                                                                               
CKINTADR RES      0                                                             
         CI,R8    X'50'                                                         
         BL       EXPLUS1           B IF TOO SMALL                              
         DO       #550                                                          
         CI,R8    X'9B'                                                         
         BG       EXPLUS1           B IF TOO BIG                                
         CI,R8    X'60'                                                         
         BLE      CKI10             B IF NOT AN EXTERNAL GROUP                  
         LI,R0    X'F'                                                          
         AND,R0   R8                LAST DIGIT OF ADDRESS                       
         CI,R0    X'B'                                                          
         BG       EXPLUS1           B IF IN THE '550 HOLE'                      
         EOR,R0   R8                FIRST DIGIT                                 
         CI,R0    X'70'                                                         
         BE       EXPLUS2           B IF IN GROUP 3 (ABOVE IO)                  
         B        EXPLUS3           OK EXIT                                     
         PAGE                                                                   
CKI10    RES      0                                                             
         ELSE                       #550                                        
         CI,R8    X'13F'                                                        
         BG       EXPLUS1           B IF TOO BIG                                
         FIN                        #550                                        
         CI,R8    X'5C'                                                         
         BLE      EXPLUS2           B IF PRIO .LE. IO LEVEL                     
         CI,R8    X'5E'                                                         
         BE       EXPLUS1           B IF RESERVED LEVEL                         
         CI,R8    X'5F'                                                         
         BE       EXPLUS1           B IF RESERVED LEVEL                         
EXPLUS3  RES      0                                                             
         MTW,1    R15                                                           
EXPLUS2  RES      0                                                             
         MTW,1    R15                                                           
EXPLUS1  RES      0                                                             
         B        *R15                                                          
         TITLE    '** SYSGEN - PROCESS :ALLOBT COMMAND **'                      
*                                                                               
*                                                                               
*                                                                               
J01      CI,R6    2                 END OF CARD                                 
         BNE      J03               NO                                          
J02      BAL,R8   ERROR             YES, ERROR                                  
         B        A10                                                           
J03      BAL,R8   SCAN              GET OV OR GO                                
         CI,R6    0                                                             
         BNE      J02               ERROR IF NOT END OF SUBFIELD                
         CI,R10   2                                                             
         BNE      J02               ERROR IF NOT 2 CHARS.                       
         LH,R8    R8                                                            
         CI,R8    'OV'-X'10000'     IS IT 'OV'                                  
         BNE      J06               NOT OV                                      
         LI,R1    K:OV              SET FOR OV                                  
J04      MTW,3    SCANPMA           SET TO DECIMAL                              
         BAL,R8   SCAN              GET NO. TRKS                                
         CI,R6    1                                                             
         BL       J02               ERROR                                       
         MTW,-3   SCANPMA           RESET TO EBCDIC                             
         CI,R8    X'8000'           IS IT TOO BIG                               
         BGE      J02               YES, ERROR                                  
*                                   NO                                          
         STH,R8   *R1               STORE NO. TRKS IN PROPER CELL               
         CI,R6    2                 END OF CARD                                 
         BNE      J03               NO                                          
         B        A10               YES, EXIT SINCE DONE                        
********                                                                        
J06      CI,R8    'GO'-X'10000'     IS IT 'GO'                                  
         BNE      J02               ERROR, NOT OV OR GO                         
         LI,R1    K:GO                                                          
         B        J04                                                           
         TITLE    '** SYSGEN  - PROCESS :PUNCH COMMAND **'                      
*                                                                               
*                                                                               
*                                                                               
K01      CI,R6    2                 END OF CARD                                 
         BNE      K03               NO                                          
K02      BAL,R8   ERROR             YES, ERROR                                  
         B        A10                                                           
K03      LI,R6    0                 SET SO CHKDEV WON'T CALL AN ERROR           
         LI,R4    K02               ADD. OF ERROR EXIT                          
         LI,R12   4                 MASK FOR BO                                 
         LI,R13   2                 GO TO END OF CARD                           
         BAL,R8   CHKDEV            GO CHECK LEGALITY OF BO DEV.                
         STW,R8   WRITEBO+2                                                     
         B        A10               EXIT                                        
         TITLE    '** SYSGEN  - PROCESS :FIN COMMAND **'                        
*                                                                               
*                                                                               
K10      CI,R6    2                 END OF CARD                                 
         BE       K50               YES                                         
         BAL,R8   SCAN              NO, GET MAP FIELD                           
         CI,R6    2                 END OF CARD                                 
         BE       K12               YES                                         
K11      BAL,R8   ERROR             NO, ERROR                                   
         B        A10                                                           
K12      SLS,R8   -8                WAS MAP INPUT                               
         CW,R8    K19                                                           
         BNE      K11               NO, ERROR                                   
         LW,R0    WRITELO+2         YES                                         
         BEZ      K14               NO LO DEV. SO USE TY                        
K13      STW,R0   WRITEMAP+2        SAVE DEV. FOR MAP                           
         B        K50                                                           
K14      LW,R0    KTYA01                                                        
         B        K13                                                           
K19      DATA     'MAP'                                                         
         TITLE    '** SYSGEN  - PROCESS :SYSLD COMMAND **'                      
*                                                                               
*                                                                               
K20      MTW,1    SYSLD             SET FLAG THAT :SYSLD INPUT                  
         B        K50                                                           
         TITLE    '** SYSGEN  - MISC. CLEANUP **'                               
*                                                                               
*                                                                               
K50      RES      0                                                             
         MTW,0    SYSDEVX           WAS THERE A SYSTEM DISC INPUT               
         BNEZ     K50C              YES                                         
NORADSO  LI,R7    MSG22             NO SYSTEM RAD                               
THROWUP  LI,R9    0                 FLAG TO NOT PRECEED MESSAGE                 
HANDSIN  BAL,R8   TYPE              GO TYPE MESSAGE                             
DISGUST  LI,R7    MSG99             SYSGEN ABORTED                              
ANDGIVE  LI,R9    0                                                             
UPALL    BAL,R8   TYPE                                                          
HOPE     WAIT                                                                   
ANDQUIT  B        %-1               HANG AND WAIT                               
********                                                                        
K50C     RES      0                 CLEAN UP CTINT STUFF                        
         LW,R0    HIINT                                                         
         STW,R0   K:HIINT           INITIALIZE K:HIINT                          
*                                                                               
         LI,R5    X'FF'             MASK                                        
         AND,R5   G95+1             STACK COUNT                                 
         BNEZ     K51               BRANCH IF NON-ZERO                          
*                                                                               
         LW,R0    HIINT             ADD HI INT TO CT STACK                      
         STW,R0   CTINT                                                         
         PSW,R0   G95                                                           
         AI,R5    1                 BUMP STACK COUNT                            
*                                                                               
K51      RES      0                                                             
         DO1      1-#MULTDSP                                                    
         LI,R5    1                 DEFAULT ONLY ONE DISP                       
         STW,R5   #CT               SAVE FOR ALLOCATION                         
         LI,R1    X'140'            MAX INTERRUPT LOC                           
*                                                                               
         LI,R7    MSG22A            :CTINT ERROR                                
K51A     RES      0                                                             
         CW,R1    G96-1,R5          IS R1 LESS                                  
         BL       %+2               YES, SKIP                                   
         LW,R1    G96-1,R5          NO, USE IT                                  
         BDR,R5   K51A              LOOP THROUGH STACK                          
*                                   NO                                          
         CI,R1    X'5C'             IS CT TOO SMALL                             
         BLE      THROWUP           YES, CT IS TOO SMALL, QUIT                  
*                                   NO                                          
         STW,R1   CTINT             SAVE CT VALUE                               
*                                                                               
         BAL,R0   K80               COMPUTE TRIGGER VALUES FOR CT               
         STW,R4   K:CTGL            SAVE THEM                                   
         STW,R2   K:CTWD                                                        
*                                                                               
         LW,R1    IOINT             GET IO LEVEL                                
*                                                                               
         CI,R1    X'5D'             IS IT SET TO THE CP LEVEL                   
         BE       K55               YES, SET TO TRIGGER CONTROL TASK            
*                                                                               
         CW,R1    CTINT             IS IT TOO BIG                               
         BG       THROWUP           YES, ERROR AND QUIT                         
*                                   NO                                          
         BAL,R0   K80               COMPUTE TRIGGER VALUES FOR IO               
*                                                                               
         CI,R1    X'5C'             CHECK AGAINST HARDWARE LEVEL                
         BL       THROWUP           TOO SMALL, ERROR (< X'5C')                  
         BNE      K54               BIGGER                                      
         LI,R2    0                 ZERO IF NO DEFERAL (= X'5C')                
         LI,R4    0                                                             
*                                                                               
K54      RES      0                                                             
         CW,R1    CTINT                                                         
         BNE      K56               IF NOT SKIP                                 
K55      LI,R2    -1                -1 IF DEFERED TO CT LEVEL                   
         LI,R4    -1                                                            
*                                                                               
K56      STW,R4   K:IOGL            SAVE TRIGGER VALUES                         
         STW,R2   K:IOWD                                                        
*                                                                               
*                                                                               
*                                                                               
K60      LW,R1    K:HIINT           SET ALL USED INT. LOC TO  MTW,0             
         AND,R1   KXFFFF            ONLY HIGHEST INT OOC                        
         AI,R1    -X'3F'                                                        
         DO       1-#ONLINE                                                     
         LW,R0    K61                                                           
         STW,R0   X'3F',R1                                                      
         ELSE     1-#ONLINE                                                     
         LI,R0    0                                                             
         LI,R1    1000                                                          
         STW,R0   BUFFER,R1                                                     
         FIN      1-#ONLINE                                                     
         BDR,R1   %-1                                                           
K61      MTW,0    0                                                             
*                                                                               
         TITLE    '** SYSGEN  - DEFAULT AREAS **'                               
*                                                                               
* DEFAULT SP AREA                                                               
*                                                                               
         LW,R1    AREALAST                                                      
SP10     RES      0                                                             
         LH,R0    AREANAME,R1                                                   
         CI,R0    'SP'-X'10000'     IS IT SP                                    
         BE       SP50              YES, SP AREA ALREADY DEFINED                
         BDR,R1   SP10              NO, LOOP THROUGH ALL AREAS DEFINED          
*                                                                               
* NEED TO MAKE UP AN SP AREA                                                    
*                                                                               
         LW,R1    SYSDEVX           GET SYSTEM DISC PTR                         
SP20     RES      0                                                             
         LW,R2    AREALAST                                                      
         AI,R2    1                                                             
         CI,R2    AREAMAX           IS IT TOO MANY AREAS                        
         BLE      SP30              NO                                          
*                                   YES                                         
         LI,R7    MSG98             MESSAGE FOR TOO MANY AREAS                  
         B        THROWUP                                                       
SP30     RES      0                 R1 = DEVICE INDEX R2 = AREA INDEX           
         STB,R1   AREADCT,R2        SAVE DCT INDEX                              
*                                                                               
         LI,R3    'S'                                                           
         STB,R3   AREATYPE,R2       SAVE PROTECTION TYPE                        
*                                                                               
         LI,R3    SPSIZE            SP SIZE IN SECTORS                          
         STW,R3   AREASIZE,R2       SAVE SIZE                                   
*                                                                               
         LI,R3    'SP'                                                          
         STH,R3   AREANAME,R2       SAVE AREA NAME                              
*                                                                               
         MTW,1    AREALAST                                                      
*                                                                               
SP50     RES      0                                                             
         PAGE                                                                   
*                                                                               
* DEFAULT BT AREA                                                               
*                                                                               
         LW,R1    AREALAST                                                      
BT10     RES      0                                                             
         LH,R0    AREANAME,R1                                                   
         CI,R0    'BT'-X'10000'     IS IT BT                                    
         BE       BT50              YES, BT AREA ALREADY DEFINED                
         BDR,R1   BT10              NO, LOOP THROUGH ALL AREAS DEFINED          
*                                                                               
* NEED TO MAKE UP AN BT AREA                                                    
*                                                                               
         LW,R1    SYSDEVX           GET SYSTEM DISC PTR                         
         LW,R2    AREALAST                                                      
         AI,R2    1                                                             
         CI,R2    AREAMAX           IS IT TOO MANY AREAS                        
         BLE      BT30              NO                                          
*                                   YES                                         
         LI,R7    MSG98             MESSAGE FOR TOO MANY AREAS                  
         B        THROWUP                                                       
BT30     RES      0                 R1 = DEVICE INDEX R2 = AREA INDEX           
         STB,R1   AREADCT,R2        SAVE DCT INDEX                              
*                                                                               
         LI,R3    'B'                                                           
         STB,R3   AREATYPE,R2       SAVE PROTECTION TYPE                        
*                                                                               
         LI,R3    BTSIZE            BT SIZE IN SECTORS                          
         STW,R3   AREASIZE,R2       SAVE SIZE                                   
*                                                                               
         LI,R3    'BT'                                                          
         STH,R3   AREANAME,R2       SAVE AREA NAME                              
*                                                                               
         MTW,1    AREALAST                                                      
*                                                                               
BT50     RES      0                                                             
         PAGE                                                                   
*                                                                               
* DEFAULT CK AREA                                                               
*                                                                               
         LW,R1    AREALAST                                                      
CK10     RES      0                                                             
         LH,R0    AREANAME,R1                                                   
         CI,R0    'CK'-X'10000'     IS IT CK                                    
         BE       CK50              YES, CK AREA ALREADY DEFINED                
         BDR,R1   CK10              NO, LOOP THROUGH ALL AREAS DEFINED          
*                                                                               
* NEED TO MAKE UP AN CK AREA                                                    
*                                                                               
         LW,R1    SYSDEVX           GET SYSTEM DISC PTR                         
         LW,R2    AREALAST                                                      
         AI,R2    1                                                             
         CI,R2    AREAMAX           IS IT TOO MANY AREAS                        
         BLE      CK30              NO                                          
*                                   YES                                         
         LI,R7    MSG98             MESSAGE FOR TOO MANY AREAS                  
         B        THROWUP                                                       
CK30     RES      0                 R1 = DEVICE INDEX R2 = AREA INDEX           
         STB,R1   AREADCT,R2        SAVE DCT INDEX                              
*                                                                               
         LI,R3    'S'                                                           
         STB,R3   AREATYPE,R2       SAVE PROTECTION TYPE                        
*                                                                               
         DO       #MAP                                                          
         LW,R9    K:UNAVBG                                                      
         ELSE                                                                   
         BAL,R0   SETFWA            SET UP K: CELLS                             
         LW,R9    K:BCKEND                                                      
         AI,R9    1                                                             
         SW,R9    KBACKBG1                                                      
         FIN                        R9 IS NOW THE DEFAULT # OF WORDS FOR CK     
         LB,R3    DEVDISCX,R1       GET DISC INDEX                              
         AH,R9    DSKNWPS,R3        ROUNDUP                                     
         AI,R9    -1                                                            
         DH,R9    DSKNWPS,R3        GET DEFAULT # OF SECTORS IN R9              
         AI,R9    1                 ADD 1 EXTRA                                 
         STW,R9   AREASIZE,R2       SAVE SIZE                                   
*                                                                               
         LI,R3    'CK'                                                          
         STH,R3   AREANAME,R2       SAVE AREA NAME                              
*                                                                               
         MTW,1    AREALAST                                                      
*                                                                               
CK50     RES      0                                                             
         TITLE    '** SYSGEN  - ASSIGN AREAS **'                                
*                                                                               
* PROCESS ALL ALL DEFAULTS                                                      
*                                                                               
         LW,R1    AREALAST                                                      
ALL10    RES      0                                                             
         LW,R0    AREASIZE,R1       GET SIZE                                    
         BGE      ALL99             SKIP THIS AREA IF NOT ALL OR 0              
*                                   GOT AN ALL SIZE                             
         LB,R2    AREADCT,R1        GET DEVICE FOR AREA                         
         LB,R3    DEVDISCX,R2       GET DISC INDEX                              
         LW,R4    DSKEND,R3         GET ENDING SECTOR OF DISC                   
         AI,R4    1                 ADD ONE TO GET # OF SECTORS/DISC            
         SW,R4    DSKSTART,R3       LESS STARTING SECTOR # GIVES                
*                                   THE NUMBER OF ALLOCATABLE SECTORS           
         CW,R2    SYSDEVX           IS IT THE SYSTEM DISC                       
         BNE      ALL15             NO                                          
*                                   YES                                         
         MTW,0    DSKSTART,R3       IS START OF AREA  = ZERO                    
         BNEZ     ALL15             NO                                          
         AI,R4    -1                YES, ALLOW 1 FOR BOOTSTRAP                  
ALL15    LW,R5    AREALAST          GET THE AREA COUNT AGAIN                    
ALL20    RES      0                                                             
         LB,R0    AREADCT,R5        GET DCT INDEX                               
         CW,R0    R2                IS IT THE SAME DEVICE                       
         BNE      ALL50             NO                                          
*                                   YES                                         
         LW,R0    AREASIZE,R5       GET SIZE                                    
         BLEZ     ALL50             ALL OR DEFAULT AREA                         
*                                   VALID AREA ON DEVICE                        
         SW,R4    R0                REDUUCE COUNT OF ALLOCATABLE                
*                                   SECTORS                                     
         BGEZ     ALL50             BRANCH IF STILL POSITIVE                    
*                                                                               
         LI,R7    MSG97             DISC OVERFLOW                               
         B        THROWUP                                                       
********                                                                        
ALL50    BDR,R5   ALL20             LOOP THROUGH ALL AREAS                      
*                                                                               
         STW,R4   AREASIZE,R1       SET UP REMAINING SECTORS AS SIZE            
ALL99    BDR,R1   ALL10                                                         
*                                                                               
* COUNT ANY AREAS SPECIFIED BY A DEFAULT D(N)                                   
*                                                                               
         LI,R1    0                                                             
DN10     RES      0                                                             
         LH,R0    AREAORDR,R1       GET ORDERED NAME                            
         LW,R2    AREALAST          GET NUMBER OF AREAS DEFINED                 
DN20     RES      0                                                             
         CH,R0    AREANAME,R2       SEARCH FOR NAME                             
         BE       DN50              FOUND, DONT NEED A DEFAULT                  
         BDR,R2   DN20              LOOP THROUGH ALL DEFNED AREAS               
* CANT FIND, HAVE TO ADD A DUMMY AREA ENTRY                                     
         MTW,1    #EXTRAMD          BUMP EXTRA ENTRY COUNT                      
DN50     AI,R1    1                                                             
         CW,R1    MINIMUMD          DONE YET                                    
         BLE      DN10              NO, LOOP                                    
*                                   DONE                                        
         PAGE                                                                   
*                                                                               
* ASSIGN AREA LOCATIONS ON THE DISC                                             
*                                                                               
         LI,R1    1                 FIRST AREA INDEX                            
LOCATE10 RES      0                                                             
         LB,R2    AREADCT,R1        GET DEVICE INDEX                            
         LW,R3    R1                COPY THIS AREA INDEX                        
         LB,R5    DEVDISCX,R2       GET DISC INDEX                              
         LW,R4    DSKSTART,R5       GET DISC START SECTOR                       
         BNEZ     LOCATE20          NON-ZERO                                    
*                                   ZERO START                                  
         CW,R2    SYSDEVX           IS THIS THE SYSTEM DISC                     
         BNE      LOCATE20          NO                                          
         AI,R4    1                 YES, BUMP START BY 1 FOR BOOTSTRAP          
LOCATE20 RES      0                                                             
         AI,R3    -1                BACK UP ONE                                 
         BEZ      LOCATE30          DONE                                        
         CB,R2    AREADCT,R3        IS THIS THE SAME DEVICE                     
         BNE      LOCATE20          NO, KEEP LOOKING                            
*                                   YES,                                        
         LW,R4    AREASTRT,R3                                                   
         AW,R4    AREASIZE,R3       GET START FOR THIS AREA                     
LOCATE30 RES      0                                                             
         STW,R4   AREASTRT,R1                                                   
         AW,R4    AREASIZE,R1       ADD AREA SIZE                               
         AI,R4    -1                GET AREA END                                
         CW,R4    DSKEND,R5         CHECK FOR OVERFLOW                          
         BLE      LOCATE50          OK                                          
*                                   ERROR, DISC OVERFLOW                        
         LI,R7    MSG97             DISC OVERFLOW                               
         B        THROWUP           OF COURSE                                   
********                                                                        
LOCATE50 RES      0                                                             
         AI,R1    1                                                             
         CW,R1    AREALAST          DONE YET                                    
         BLE      LOCATE10          NO, LOOP                                    
*                                   DONE                                        
* NOW THE NUMBER OF MASTER DICTIONARY ENTRIES IS KNOWN                          
         LW,R0    #EXTRAMD          GET NUMBER OF EXTRAS                        
         AW,R0    AREALAST          PLUS NUMBER OF DEFINED AREAS                
         AI,R0    -1                ADJUST FOR ZERO ENTRY USE                   
         STW,R0   #AREAS            SAVE THE NUMBER OF AREAS                    
         SLS,R0   2                 TIMES 4                                     
         STW,R0   #AREASX4          SAVE NUMBER OF BYTES ALSO                   
         TITLE    'CHECK OV AND GO SIZES'                                       
*                                                                               
* ADJUST OV AND GO SIZES                                                        
*                                                                               
K65      RES      0                                                             
         LI,R2    'BT'-X'10000'     BT SIGN EXTENDED                            
         LW,R1    AREALAST                                                      
         CH,R2    AREANAME,R1       SEARCH FOR BT AREA                          
         BE       K65A                                                          
         BDR,R1   %-2               LOOP                                        
         B        %                 CANT GET HERE, BT ALWAYS BUILT              
********                                                                        
K65A     RES      0                                                             
         LH,R3    K:GO                                                          
         AH,R3    K:OV              R3= NO. SECT. NEEDED FOR OV,GO              
         LW,R2    AREASIZE,R1       GET AREA SIZE                               
         BEZ      K66               BT DELIBERATLY SET TO 0                     
*                                   OTHERWISE CHECK FOR BT LARGE ENOUGH         
         CW,R2    R3                IS IT ENUF FOR GO + OV                      
         BGE      K66               YES                                         
         LI,R7    MSG50             NO, GO TYPE 'BT AREA TOO SMALL'             
         B        THROWUP           AND QUIT                                    
********                                                                        
K66      LI,R1    OC                                                            
         LB,R0    STDLB2,R1         WAS OC OP LABEL ASSIGNED                    
         BNEZ     L01               YES                                         
         LI,R7    MSG51             NO, GO TYPE 'OC LABEL NOT ASSIGN.'          
         B        THROWUP           AND QUIT                                    
         PAGE                                                                   
*                                                                               
* SUBROUTINE TO CONSTRUCT TRIGGER VALUES GIVEN AN INTERRUPT ADDR                
*                                                                               
* R0     LINK                                                                   
* R1     INTERRUPT ADDRESS                                                      
* R2     WD VALUE RETURNED                                                      
* R3     USED AS A WORK REGISTER                                                
* R4     GL VALUE RETURNED                                                      
*                                                                               
K80      RES      0                                                             
         LW,R2    R1                ADDR                                        
         AI,R2    -X'60'            FIRST EXTERNAL                              
         BGEZ     %+2               SKIP IF EXTERNAL                            
         AI,R2    -X'12'            FUDGE IF GROUP 0                            
         AI,R2    X'17020'          ADJUST GROUP AND ADD FLAGS                  
         SLD,R2   -4                GROUP TO R2                                 
         SLS,R3   -28               BIT SHIFT TO R3                             
         LI,R4    X'8000'           BIT 16                                      
         LCW,R3   R3                MAKE SHIFT NEGATIVE FOR RIGHT               
         SLS,R4   0,R3              SHIFT OF BIT POSITION                       
         B        *R0                                                           
         TITLE    '** SYSGEN  - TABLE ALLOCATION **'                            
*                                                                               
*                                                                               
*                                                                               
L01      LI,R0    0                                                             
         STW,R0   L94               HOUSEKEEP                                   
         STW,R0   L94+1                                                         
         LW,R0    HIINT                                                         
         AI,R0    2                                                             
         AND,R0   KM2               START ON DW BOUNDARY                        
         DO       #ONLINE                                                       
         LI,R0    BUFFER                                                        
         FIN      #ONLINE                                                       
         STW,R0   L90               SAVE FWA  IN UNUSED INT. CELLS              
         LCW,R0   R0                                                            
         AI,R0    X'140'                                                        
         DO       #ONLINE                                                       
         LI,R0    1000                                                          
         FIN      #ONLINE                                                       
         STW,R0   L91               SAVE NO. CELLS IN UNUSED INT. AREA          
         LI,R0    LASTK:                                                        
         STW,R0   L92               SAVE FOR START OF ALLOCATION                
*                                                                               
         LW,R0    L91               GET SIZE OF UNUSED INT CELLS                
L07      LW,R0    L91                                                           
         BEZ      L09                                                           
         LI,R1    0                                                             
         LI,R0    0                                                             
L08      STW,R0   *L90,R1           ZERO OUT UNUSED INT. CELLS                  
         AI,R1    1                                                             
         CW,R1    L91                                                           
         BL       L08                                                           
* ZERO OUT OTHER TABLE SPACE                                                    
L09      LW,R1    L92                                                           
L09A     STW,R0   0,R1                                                          
         AI,R1    1                                                             
         CI,R1    LASTHI            DONT OVER-WRITE SYSGEN                      
         BL       L09A                                                          
         TITLE    '** SYSGEN  - TABLE ALLOCATION: DCT **'                       
*                                                                               
*START TABLE ALLOCATION                                                         
*                                                                               
         LI,R7    1                 INITIAL SYMT2 INDEX                         
******  LEAVE R7 ALONE THROUGH OUT THIS ALLOCATION CODE  ******                 
         MTH,-1   CHANA             ADJUST IT DOWN                              
         LW,R0    DEVNEXT                                                       
         AI,R0    -1                                                            
         STW,R0   #DCT                                                          
         STW,R0   #DCTX                                                         
         DO       #LN                                                           
         LW,R0    CURRLINE                                                      
         AWM,R0   #DCTX             EXTEND DCT'S BY THE # OF LINES              
         FIN      #LN                                                           
*                                                                               
         LW,R0    DSKNEXT                                                       
         AI,R0    -1                                                            
         STW,R0   #DISCS                                                        
*                                                                               
*                                                                               
         DO       #PS                                                           
         MTW,0    SHARE             ANY SHARED DEVICES                          
         BGZ      L10AA             YES                                         
         LI,R9    X'1FFFF'          NO ,DCTSHARE SIZE = 0/1                     
         LI,R8    K1                                                            
         STS,R8   DCTSHARE                                                      
*                                                                               
L10AA    RES      0                                                             
         FIN      #PS                                                           
         MTW,0    DUAL              ANY DUAL CHANNELS                           
         BGZ      L10A              YES                                         
*                                   NO, FORCE DCT1A AND 1P TO DCT1              
         LI,R9    X'1FFFF'                                                      
         LI,R8    K0                                                            
         STS,R8   DCT1A                                                         
         STS,R8   DCT1P                                                         
*                                                                               
L10A     RES      0                                                             
         LI,R0    0                                                             
         LW,R1    DBFLAG            IS DEBUG INDICATED                          
         BNEZ     %+2               YES                                         
         STW,R0   DCTDEBUG          NO, DONT ALLOCATE DCTDBUG                   
         DO       #ERRORLOG                                                     
         MTW,0    ERFLAG            WAS AN ERROR LOG INDICATED                  
         BNEZ     L21D1             YES                                         
         STW,R0   DCTMODX                                                       
         STW,R0   DCT#IO            DONT ALLOCATE                               
         STW,R0   DCT#ERR                                                       
         STW,R0   IOQERROR          THESE                                       
         FIN      #ERRORLOG                                                     
L21D1    RES      0                                                             
         MTW,0    SITEFLAG                                                      
         BNEZ     %+2                                                           
         STW,R0   SITE                                                          
*                                                                               
         LI,R6    DCTTAB                                                        
         BAL,R5   L60               ALLOCATE DCT TABLE                          
*                                                                               
         LW,R0    DCT1                                                          
         STW,R0   K:DCT1                                                        
         STW,R0   K:DCT1X           TRUE DCT1 PTR                               
*                                                                               
         LW,R0    DCT4                                                          
         STW,R0   K:DCT4                                                        
*                                                                               
         LW,R0    DCT16                                                         
         STW,R0   K:DCT16                                                       
*                                                                               
         LW,R1    #DCTX                                                         
         STH,R1   *DCT7             EXTENDED DCT COUNT                          
         LW,R1    #DCT                                                          
         STH,R1   *DCT1             SET NO. ENTRIES IN OCT                      
         PAGE                                                                   
L10      RES      0                 DCT1 ALLOCATION                             
         LH,R0    DEVADDR,R1        GET DEVICE ADDRESS                          
         STH,R0   *DCT1,R1                                                      
         MTW,0    DUAL              ANY DUAL                                    
         BEZ      %+2               NO                                          
         STH,R0   *DCT1P,R1         YES, STORE DCT1P ALSO                       
         BDR,R1   L10                                                           
*                                                                               
L11      RES      0                 DCT2 ALLOCATION                             
         LH,R1    *DCT1             GET NO OF DCT ENTRIES                       
         LH,R2    CHANA             GET NO. OF CHANNELS                         
         CB,R1    CHANC,R2          THIS ONE MATCH                              
         BGE      %+2                                                           
         BDR,R2   %-2               DECREMENT CHANNEL                           
         STB,R2   *DCT2,R1          STORE CIT INDEX                             
         BDR,R1   %-4               NEXT DEVICE                                 
         PAGE                                                                   
*                                                                               
* DUAL CHANNEL LOGIC                                                            
*                                                                               
         LW,R1    #DCT                                                          
L11AA    RES      0                                                             
         LB,R2    *DCT2,R1          GET CHANNEL NUMBER                          
L11B     LI,R5    X'FF0'                                                        
         LH,R4    CHANB,R2          IS IT DUAL                                  
         BEZ      L11D              NO                                          
*                                   YES, DUAL                                   
         LH,R4    *DCT1,R1          GET DEVICE ADDRESS                          
         LI,R5    X'FF0'            MASK FOR IOP/SUB-CHANNEL                    
*                                                                               
         LH,R6    CHANA,R2          GET CHANNEL PRIMARY ADDRESS                 
         CS,R4    R6                IS IT A MATCH                               
         BNE      L11BB             NO                                          
*                                   YES                                         
         LH,R6    CHANB,R2          GET ALTERNATE ADDRESS                       
         LS,R4    R6                FORM TOTAL ALTERNATE                        
         STH,R4   *DCT1A,R1         AND PUT IN ALTERNATE                        
         B        L11C                                                          
********                                                                        
L11BB    LH,R6    CHANB,R2          GET ALTERNATE CHANNEL                       
         CS,R4    R6                IS IT A MATCH                               
         BNE      L11E              NO, NOT PART OF DUAL                        
*                                   YES                                         
         STH,R4   *DCT1A,R1         SAVE ALTERNATE CHANNEL ADDRESS              
         LH,R6    CHANA,R2          GET PRIMARY CHANNEL                         
         LS,R4    R6                FORM FULL PRIMARY ADDRESS                   
         STH,R4   DCT1P,R1          SAVE IT                                     
L11C     RES      0                                                             
         LI,R3    3                 SET TO USE EITHER CHANNEL                   
         PAGE                                                                   
*                                                                               
* REMOTE BATCH DUAL CASE                                                        
*                                                                               
         DO       #RB                                                           
         LB,R2    DEVMODX,R1        GET MODEL INDEX                             
         LH,R0    MNEMONIC,R2       GET MNEMONIC                                
         CI,R0    'RB'-X'10000'     IS IT A REMOTE STATION                      
         BNE      L11F              NO, SKIP THIS                               
*                                   YES                                         
         LB,R0    DEVRB,R1          GET REMOTE STATION FLAGS                    
         CI,R0    X'40'             IS IT IDLE, FULL AND NOT BISYNC             
         BNE      L11F              NO, THIS IS NOT THE SPECIAL CASE            
*                                   YES, THIS IS FUNNY CASE                     
         LI,R3    1                 PRESET FOR EVEN CASE                        
         LH,R0    *DCT1,R1          GET DEVICE ADDRESS                          
         CI,R0    1                 IS IT ODD OR EVEN                           
         BAZ      L11F              EVEN, USE SUB-CHANNEL ONE                   
         LI,R3    2                 ODD, USE SUB-CHANNEL TWO                    
         FIN      #RB                                                           
         B        L11F              GO AND SET SUB-CHANNEL                      
         PAGE                                                                   
*                                                                               
* NON-DUAL CASE, USE SUB-CHANNEL ONE FLAGS                                      
*                                                                               
L11D     LI,R3    X'1'              SUBCHANNEL ONE ONLY                         
         B        L11F                                                          
*                                                                               
* DUAL CHANNEL BUT NOT DUAL DEVICE                                              
*                                                                               
L11E     LI,R3    0                 INITIALIZE                                  
         LI,R5    X'F00'            MASK FOR IOP                                
         LH,R6    CHANA,R2                                                      
         CS,R4    R6                SAME AS FIRST IOP                           
         BNE      %+2               NO                                          
         AI,R3    X'1'              USES SUBCHANNEL ONE                         
         LH,R6    CHANB,R2                                                      
         CS,R4    R6                SAME AS SECOND IOP                          
         BNE      %+2               NO                                          
         AI,R3    X'2'              USES SUBCHANNEL TWO                         
         CI,R3    X'3'              BOTH MATCH                                  
         BNE      %+2               NO                                          
         LI,R3    X'0'              YES,USE BOTH                                
*                                                                               
L11F     STB,R3   *DCT3,R1          SAVE ACCESS CODE                            
         BDR,R1   L11AA             DO NEXT                                     
         PAGE                                                                   
*                                                                               
* VARIOUS DCT INITIALIZATION                                                    
*                                                                               
L11G     EQU      %                                                             
         LW,R1    #DCT              GET DCT COUNT                               
L17      LB,R2    DEVMODX,R1        GET MODEL INDEX                             
         LB,R3    DEVTYPE,R2        GET TYPE                                    
         STB,R3   *DCT4,R1          SET UP DCT4                                 
*                                                                               
         LB,R3    DEVIOFLG,R1       GET I/O FLAGS                               
         LB,R4    *DCT3,R1          GET DUAL FLAGS                              
         OR,R3    R4                AND OR IN                                   
         STB,R3   *DCT3,R1          SET UP DCT3                                 
*                                                                               
         LB,R3    DEVDISCX,R1       GET DISC CHARACTERISTIC INDEX               
         STB,R3   *DCTDISCI,R1      SET UP DCTDISCI                             
         DO       #PS                                                           
         LW,R3    SHARE             R3 = NO SHARED DEVICES                      
         BEZ      %+4               NONE                                        
         STB,R3   *DCTSHARE         TABLE BYTE 0 = NO SH. DEV.                  
         LB,R3    DEVSHARE,R1                                                   
         STB,R3   *DCTSHARE,R1                                                  
         FIN      #PS                                                           
*                                                                               
         LI,R3    1                 FLAG FOR DEDICATES                          
         LC       DEVFLAGS,R1       GET DEDICATE FLAGS                          
         BCR,DEDXCC %+2             SKIP IF NOT IOEX                            
         STB,R3   *DCT5,R1          SET UP DCT5                                 
*                                                                               
         LC       DEVFLAGS,R1                                                   
         BCR,DEDFCC %+2             SKIP IF NOT DEDICATED TO FGND               
         STB,R3   *DCT14,R1         SET UP DCT14                                
*                                                                               
         LC       DEVFLAGS,R1                                                   
         BCR,DEDXCC %+2             SKIP IF NOT DEDICATED TO IOEX               
         STB,R3   *DCT15,R1         SET UP DCT15                                
*                                                                               
         LH,R2    MNEMONIC,R2       GET NAME OF DEVICE                          
         AND,R2   HWMASK            REMOVE EXTENDED SIGN                        
         SLD,R2   -8                ADJUST POSITION FOR MESSAGE                 
         AW,R2    L99               BUILD IN R2,R3                              
         LI,R4    3                                                             
         LH,R0    DEVADDR,R1        GET DEVICE ADDRESS                          
L21D     AND,R0   KXF               GET DEV. NO.                                
         AI,R0    X'F0'                                                         
         CI,R0    X'FA'             CHANGE TO BCD                               
         BL       %+2                                                           
         AI,R0    -X'39'                                                        
         STB,R0   R3,R4             STORE  DEV NO.                              
         LH,R0    DEVADDR,R1        GET DEVICE ADDRESS                          
         SLS,R0   -4                GET MS DEV NO.                              
         AI,R4    -1                                                            
         CI,R4    1                                                             
         BG       L21D              LOOP BACK                                   
         LH,R0    DEVADDR,R1        GET DEVICE ADDRESS                          
         SLS,R0   -8                GET IOP NO.                                 
         AND,R0   KX3F              MASK OFF IOP #                              
         DO       #550                                                          
         LI,R5    BA(SCAN87)-BA(SCAN88)+1                                       
         CB,R0    SCAN88,R5                                                     
         BE       %+3                                                           
         BIR,R5   %-2                                                           
         B        %                                                             
         LB,R0    SCAN87,R5                                                     
         ELSE                                                                   
         AI,R0    X'C1'             CHANGE TO BCD                               
         FIN      #550                                                          
         STB,R0   R3,R4                                                         
         STD,R2   *DCT16,R1         STORE ALARM IN DCT16                        
         BDR,R1   L17               LOOP FOR ALL DEVICES                        
*                                                                               
*                                                                               
         LI,R4    0                 ZERO ALLOCATABLE COUNT                      
         LI,R3    -1                ALLOCATABLE FLAG                            
         LW,R1    #DCT                                                          
*                                                                               
L21E     RES      0                                                             
         LB,R2    DEVFLAGS,R1       GET DEVICE FLAGS                            
         CI,R2    ALOCFLAG          IS THE DEVICE ALLOCATABLE                   
         BAZ      %+3               NO, SKIP                                    
         STB,R3   *DCTJID,R1        YES, SET TO -1                              
         AI,R4    1                 COUNT THEM                                  
         BDR,R1   L21E              LOOP TIL DONE                               
         AW,R4    JENQ              ADD NR EXTRA PER JOB                        
         STW,R4   K:JAET            STORE COUNT OF ALLOCATABLE DEVICES          
*                                                                               
         LW,R1    #DCT              DEVICE COUNT                                
L21F     RES      0                                                             
         LB,R2    DEVMODX,R1        GET MODEL INDEX                             
         LW,R2    MODEL#,R2         GET MODEL #                                 
         STW,R2   *DCTMOD,R1        TO DCTMODEL                                 
         DO       #ERRORLOG                                                     
         MTW,0    ERFLAG            WAS ERROR LOGGING INDICATED                 
         BEZ      L21H              NO, SKIP DCTMODX STUFF                      
*                                                                               
         LH,R3    R2                IS IT A NO OR NONE                          
         AND,R3   KXFFFF                                                        
         AI,R3    -'NO'                                                         
         BEZ      L21G1             IF NO OR NONE, STORE 0 IN DCTMODX           
*                                                                               
         LI,R3    0                 CLEAR COUNT                                 
         LI,R4    4                 DIGIT COUNT                                 
L21G     MI,R3    10                TIMES TEN                                   
         LB,R9    R2                                                            
         AI,R9    -'0'                                                          
         AW,R3    R9                                                            
         SLS,R2   8                                                             
         BDR,R4   L21G              LOOP FOR 4 DIGITS                           
L21G1    STH,R3   *DCTMODX,R1       PUT VALUE IN DCTMODX                        
         FIN      #ERRORLOG                                                     
L21H     BDR,R1   L21F              AND LOOP TIL DONE                           
*                                                                               
         PAGE                                                                   
         DO       #SYMB                                                         
*                                                                               
* FILL IN DCTSYMB                                                               
*                                                                               
         LW,R1    #DCT              GET DEVICE COUNT                            
L21SYMB  RES      0                                                             
         LB,R0    DEVFLAGS,R1       GET DEVICE FLAGS                            
         LI,R2    0                 DEFAULT                                     
         CI,R0    SYMBFLAG          IS IT A SYMBIONT DEVICE                     
         BAZ      %+2               NO                                          
         LI,R2    X'0C'             YES                                         
         STB,R2   *DCTSYM1,R1       STORE                                       
         BDR,R1   L21SYMB           AND LOOP                                    
         FIN      #SYMB                                                         
         PAGE                                                                   
*                                                                               
* FILL IN DCTCD (DISC PACK 3243 ONLY)                                           
*                                                                               
         DO       #DP3243                                                       
         LW,R1    #DCT              GET DEVICE COUNT                            
L21DC1   RES      0                                                             
         LW,R0    *DCTMOD,R1        GET MODEL #                                 
         CW,R0    MDL3243           IS IT THE RIGHT MODEL                       
         BNE      L21DC4            NO                                          
*                                   YES                                         
         LH,R0    *DCT1,R1          GET DEVICE ADDR                             
         EOR,R0   K1                INVERT LOW ORDER BIT                        
         LW,R2    #DCT              GET DEVICE COUNT                            
L21DC2   RES      0                                                             
         CH,R0    *DCT1,R2          IS IT THE SAME                              
         BNE      L21DC3            NO                                          
*                                   YES                                         
         STB,R2   *DCTCD,R1         SAVE OTHER DCT INDEX                        
L21DC3   BDR,R2   L21DC2            LOOP THROUGH                                
L21DC4   BDR,R1   L21DC1            TWO LOOPS                                   
         FIN      #DP3243                                                       
*                                                                               
         PAGE                                                                   
*                                                                               
* TEMPORARLY MOVE THE DEVICE PRE- AND POST- HANDLER NAMES INTO THE DCTS         
*                                                                               
         LW,R1    #DCT              GET DEVICE COUNT                            
HANDLOOP RES      0                                                             
         LB,R2    DEVMODX,R1        GET MODEL # INDEX                           
         LD,R4    PREHAND,R2        GET PRE-HANDLER NAME                        
         STD,R4   *DCT13,R1         SAVE IN DCT13                               
*                                                                               
         LD,R4    POSTHAND,R2       GET POST HANDLER NAME                       
         STW,R4   *DCT8,R1          SAVE FIRST HALF IN DCT8                     
         STW,R5   *DCT9,R1          SAVE SECOND HALF IN DCT9                    
         BDR,R1   HANDLOOP          LOOP FOR ALL DCT ENTRIES                    
         TITLE    '** SYSGEN  - TABLE ALLOCATION: DISC **'                      
*                                                                               
* SET UP THE DISC CHARACTERISTIC TABLES                                         
*                                                                               
         LW,R3    #DISCS                                                        
L21DISC  RES      0                                                             
         LW,R2    CMPRDSK                                                       
L21DSK   RES      0                                                             
         EXU      LOADDSK,R2        LOAD A DISC ITEM                            
         EXU      STORDISC,R2       STORE A DISC ITEM                           
         BDR,R2   L21DSK            ITEMLOOP                                    
         BDR,R3   L21DISC           DISC LOOP                                   
         TITLE    '** SYSGEN  - TABLE ALLOCATION: MD   **'                      
*                                                                               
* ALLOCATE AND FILL IN MD TABLES                                                
*                                                                               
         LI,R6    MDTAB                                                         
         BAL,R5   L60               ALLOCATE ALL MD TABLES                      
         DO       #PRIV                                                         
         LW,R15   #AREAS            NR OF AREAS                                 
         SLS,R15  1                 NR OF WORDS FOR MDVSN                       
         BAL,R5   L69               GET SPACE AT DW BOUND                       
         STW,R9   MDVSN             SAVE ADDRESS OF SPACE                       
         BAL,R5   L55               DEFINE NEXT SYMBOL (MDVSN)                  
         FIN                        #PRIV                                       
*                                                                               
*        ARE THE ZERO ENTRIES USED OR NOT IN MD...                              
*        IF NOT THEN WE CAN DO AS TABLE WITH OTHERS...                          
*                                                                               
**************                                                                  
*                                                                               
*                                                                               
*                                                                               
         LW,R1    #AREAS                                                        
         LI,R0    X'40'             USER, MOUNTABLE FLAG                        
         STB,R0   *MDFLAG,R1                                                    
         AI,R1    -1                                                            
         BGEZ     %-2               DEFAULT AREAS TO USER/MOUNTABLE             
*                                                                               
         LI,R1    1                 AREA INDEX                                  
         LW,R2    MINIMUMD                                                      
         AI,R2    1                 INDEX OF FIRST FREE MD ENTRY                
L21MD10  RES      0                                                             
         LH,R0    AREANAME,R1                                                   
         LW,R3    MINIMUMD                                                      
         CH,R0    AREAORDR,R3       LOOK FOR A PRE-ASSIGNED ENTRY               
         BE       L21MD20           FOUND                                       
         AI,R3    -1                                                            
         BGEZ     %-3               LOOP THROUGH ALL PRE-ASSIGNED NAMES         
*                                   NOT PRE-ASSIGNED                            
         LW,R3    R2                GET NEXT FREE ENTRY                         
         AI,R2    1                 AND BUMP NEXT FREE ENTRY                    
*                                                                               
L21MD20  RES      0                 R3 IS NOW THE MD INDEX                      
*                                   AND R1 IS THE AREA INDEX                    
         STH,R0   *MDNAME,R3        MDNAME                                      
*                                                                               
         LB,R4    AREADCT,R1                                                    
         STB,R4   *MDDCTI,R3        MDDCTI                                      
*                                                                               
         LB,R0    *DCTDISCI,R4                                                  
         STB,R0   *MDDISCI,R3       MDDISCI                                     
*                                                                               
         LW,R0    AREASTRT,R1                                                   
         STW,R0   *MDBOA,R3         MDBOA                                       
*                                                                               
         AW,R0    AREASIZE,R1                                                   
         AI,R0    -1                                                            
         STW,R0   *MDEOA,R3         MDEOA                                       
         LH,R0    AREALOCK,R1                                                   
         STH,R0   *MDLOCK,R3        MDLOCK                                      
*                                                                               
         LB,R0    AREATYPE,R1                                                   
         LB,R4    PROTSTG                                                       
*                                                                               
         CB,R0    PROTSTG,R4        SEARCH FOR PROTECTION CHARACTER             
         BE       %+3                                                           
         BDR,R4   %-2                                                           
         B        %                 HANG IF CANT FIND                           
*                                                                               
         AI,R4    -1+MDALLOC                                                    
         STB,R4   *MDFLAG,R3        MDFLAG                                      
*                                                                               
         AI,R1    1                                                             
         CW,R1    AREALAST                                                      
         BLE      L21MD10           LOOP THROUGH ALL AREAS                      
         PAGE                                                                   
*                                                                               
         LW,R0    MDFLAG                                                        
         STW,R0   K:MDFLAG                                                      
*                                                                               
         LW,R0    MDBOA                                                         
         STW,R0   K:MDBOA                                                       
*                                                                               
         LW,R0    MDEOA                                                         
         STW,R0   K:MDEOA                                                       
*                                                                               
         LW,R0    MDNAME                                                        
         STW,R0   K:MDNAME                                                      
*                                                                               
         LW,R0    #AREAS                                                        
         STW,R0   K:NUMDA                                                       
         AI,R0    1                 STEP TO GIVE NUMBER OF AREAS                
         STB,R0   K:MDNAME          AND STORE                                   
*                                                                               
         LH,R0    SPANAME           GET SPANAME                                 
         LI,R1    0                 MD INDEX                                    
L21MD30  RES      0                                                             
         CH,R0    *K:MDNAME,R1      SEARCH FOR SYSTEM PROCESSOR AREA            
         BE       L21MD40           FOUND                                       
         AI,R1    1                                                             
         CW,R1    K:NUMDA           DONE YET                                    
         BLE      L21MD30           NO, LOOP                                    
         LI,R1    0                 DEFAULT TO SP INDEX IF BAD INPUT            
L21MD40  RES      0                                                             
         LW,R9    R1                PUT SYSTEM PROCESSOR AREA INDEX IN R9       
         BAL,R5   L55               ALLOCATE THAT VALUE TO S:SPAI               
*                                                                               
         LW,R0   MDDCTI                                                         
         STW,R0   K:MDDCTI                                                      
         TITLE    '** SYSGEN  - TABLE ALLOCATION: SYMB,TENQ,RB **'              
         DO       #SYMB                                                         
*                                                                               
* DEFINE SYMBIONT FILE SIZES                                                    
*                                                                               
         LW,R9    ISFSIZ                                                        
         BAL,R5   L55               DEFINE S:ISFSZ                              
*                                                                               
         LW,R9    OSFSIZ                                                        
         BAL,R5   L55               DEFINE S:OSFSIZ                             
         FIN      #SYMB                                                         
*                                                                               
*        SET UP S:TENQ VALUE                                                    
*                                                                               
         LW,R9    TENQ                                                          
         BAL,R5   L55               DEFINE S:TENQ                               
*                                                                               
* DEFINE S:#RB                                                                  
*                                                                               
         DO       #RB                                                           
         LW,R9    RBCOUNT                                                       
         BAL,R5   L55                                                           
         FIN      #RB                                                           
         TITLE    '** SYSGEN  - TABLE ALLOCATION: MMROLTAB **'                  
*                                                                               
         DO       #ROLL                                                         
*                                                                               
*T*      TABLE MMROLTAB                                                         
*T*      MMROLTAB IS USED OT ALLOECATE SECTORS FOR ROLLOUT                      
*T*      TO THE CHECKPOINT AREA                                                 
*T*                                                                             
*T*      MMROLTAB+0 = FLAG+ #  (SECTORS/PAGE)                                   
*T*                   FLAG=0 IF AN EXACT NUM. OF SECTORS/PAGE                   
*T*                                 FOR 90 WORDS/SEC DISK                       
*T*                                 62 |  5                                     
*T*                                 FOR 256 WODS/SEC DISK                       
*T*                                       2                                     
*T*                                                                             
*T*              +1 = CURRENT POSITION IN BIT PATTERN                           
*T*                    (INITIALLY ZERO)                                         
*T*                  MMRINDX                                                    
*T*               +2 = MMRENDX (NUMBER OF BITDS IN MAP)                         
*T*                     (NO PAGES IN CK AREA)                                   
*T*              +3 = MMMAPLG WORDS FOR ROLLMAP                                 
*T*                                 (BITS INM AP+31)/32)                        
*T*              +4 = MMRLOOP (LOOP WORK CELL)                                  
*T*                    (INITIALIZED TO ZERO)                                    
*T*              +5 = MMROLMAP (FIRST WORD OF BT PATTERN                        
*T*                   (MMMAPLG WORDS LONG)                                      
*T*                                                                             
         LI,R10   0                                                             
         LI,R11   0                                                             
         LI,R12   0                                                             
         LI,R13   0                                                             
         LI,R14   0                                                             
         LI,R15   0                                                             
         LI,R1    5                                                             
         LI,R1    5                 R1 = CK INDEX                               
         LB,R0    *MDFLAG,R1                                                    
         CI,R0    MDALLOC           B IF CK NOT ALLOCATED                       
         BANZ     %+3                                                           
         LI,R15   5                 DEFAULT NUMBER OF CELLS                     
         B        L21RT                                                         
         LW,R11   *MDEOA,R1                                                     
         SW,R11   *MDBOA,R1                                                     
         AI,R11   1                 R11 = EOA-BOA+1                             
*                                         NO SECTORS IN CK                      
         LB,R2    *MDDISCI,R1                                                   
         LH,R0    *DISCNWPS,R2      R0 = NO. WORDS/SEC.                         
*                                                                               
         LI,R13   512                                                           
         DW,R12   R0                R12 = 0 IF  PAGS                            
*                                         FIT EVENLY                            
         CI,R12   0                                                             
         BEZ      %+2                                                           
         AI,R13   1                 R13 = NO SECTORS/PAGE                       
*                                                                               
         DW,R11   R13               R11 = # PAGES IN CK AREA                    
         LW,R15   R11                                                           
         AI,R15   31                                                            
         SLS,R15  -5                R15 = WORDS NEED FOR BIT MAP                
         AI,R15   5                        + 5 CONTROL WORDS                    
L21RT    EQU      %                                                             
         BAL,R5   L69               ALLOCATE SPACE (DW BOUND)                   
         BAL,R5   L55               ALLOCATE SYMBOL MMROLTAB                    
*                                   R9 = ADR OF MMROLTAB                        
         STW,R13  *R9               INIT TO # SEC/PAGE                          
         STH,R12  *R9               REMAINDER IS FLAG                           
*                                                                               
         AI,R9    2                                                             
         STW,R11  *R9               INIT BITS IN MAP                            
         AI,R9    1                                                             
         AI,R15   -5                                                            
         STW,R15  *R9               INIT # WORDS IN MAP                         
*                                                                               
         LW,R4    R11               R4 = # BITS IN MAP                          
         AND,R4   KX1F               = # BITS IN LAST WORD OF MAP               
         BEZ      L21RT2            B IF LAST WORD FULL                         
         LCW,R4   R4                                                            
         LI,R3    -1                                                            
         SLS,R3   0,R4                                                          
         AI,R9    1                                                             
         AW,R9    R15                                                           
         STW,R3   *R9               LOCK EXCESS BITS IN LAST WD                 
L21RT2   EQU      %                                                             
         FIN      #ROLL                                                         
         TITLE    '** SYSGEN  - TABLE ALLOCATION: SIDE BUF,DEBUG **'            
*                                                                               
*                                                                               
* ALLOCATE SIDE BUFFERS                                                         
*                                                                               
         DO       #SIDEBUF                                                      
         LI,R10   1                 SET FLAG TO PREVENT SYMBOL DEF              
         LI,R9    R14               SET FLAG FOR WORD ALLOCATION                
         LW,R1    #DCT              GET DEVICE COUNT                            
L21J     LB,R2    DEVMODX,R1        GET MODEL INDEX                             
         LB,R14   SBUFSIZE,R2       GET SIDE BUFFER SIZE                        
         BEZ      L21K              SKIP ALLOCATION IF ZERO                     
         AI,R14   1+1               ADD 1 FOR POST WORD AND 1 FOR L70           
         BAL,R8   L70               ALLOCATE SPACE                              
         LW,R4    L93               GET ADDR                                    
         AI,R4    1                 ADD 1 FOR MISSING ZERO ENTRY                
         STW,R4   *DCTSDBUF,R1      AND SAVE IT                                 
         LB,R14   *DCT3,R1          GET I/O FLAGS                               
         CI,R14   X'80'             IS AN OUTPUT DEVICE                         
         BAZ      L21K              NO                                          
         LI,R14   1                 YES                                         
         STB,R14  R14                                                           
         STW,R14  0,R4              SET POST WORD NON-ZERO                      
L21K     BDR,R1   L21J              AND LOOP FOR ALL DEVICES                    
         FIN      #SIDEBUF                                                      
*                                                                               
*                                                                               
*                                                                               
         DO       #DEBUG                                                        
         LI,R0    0                                                             
         XW,R0    DBFLAG            CLEAR AND TEST DBFLAG                       
         BEZ      L21M              NONE                                        
*                                   SOME                                        
         LW,R1    #DCT              GET DEVICE COUNT                            
L21L     RES      0                                                             
         LB,R2    DEVDEBUG,R1       GET DEBUG INTERRUPT ADDRESS                 
         STB,R2   *DCTDEBUG,R1                                                  
         BEZ      %+2                                                           
         MTW,4    DBFLAG            COUNT DEBUG DEVICES X 4                     
         BDR,R1   L21L              AND LOOP                                    
*                                                                               
L21M     RES      0                                                             
         LW,R15   DBFLAG                                                        
         BAL,R5   L69               ALLOCATE PSD SPACE                          
         SLS,R9   2                 MAKE LOCATION BA                            
         STW,R9   SYMT2,R7          ADD TO SYMBOL TABLE                         
         AI,R7    1                                                             
*                                                                               
         FIN      #DEBUG                                                        
         TITLE    '** SYSGEN  - TABLE ALLOCATION: LOGFLAG,SITE,550 **'          
*                                                                               
*                                                                               
* FIX UP ERROR LOG FLAG                                                         
*                                                                               
         DO       #ERRORLOG                                                     
         LW,R0    ERFLAG            GET ERFLAG                                  
         STW,R0   *LOGFLAG          SAVE IN FLAG WORD                           
         FIN      #ERRORLOG                                                     
*                                                                               
*                                                                               
* MOVE IN SITE TEXT                                                             
*                                                                               
         MTW,0    SITEFLAG                                                      
         BEZ      NOSITE                                                        
*                                                                               
         LI,R0    56                                                            
         LI,R1    0                                                             
*                                                                               
SITELUP  LB,R2    SITETEXT,R1                                                   
         STB,R2   *SITE,R1                                                      
         AI,R1    1                                                             
         BDR,R0   SITELUP                                                       
NOSITE   RES      0                                                             
*                                                                               
* FILL IN CONFIGURATION TABLES FOR 550                                          
*                                                                               
         DO       #550                                                          
         LI,R6    63                MAX UNIT #                                  
         LW,R5    #CONFIG           NUMBER OF UNITS DEFINED                     
         BEZ      FIGIT             SKIP IF NONE                                
FIGLOOP  LB,R0    CONFIGT,R6        GET TYPE                                    
         BEZ      FIGLEAF           NULL                                        
*                                   NOT NULL                                    
         STB,R0   *CNFGTYPE,R5      SAVE TYPE                                   
         STB,R6   *CNFGADDR,R5      AND ADDR                                    
         AI,R5    -1                                                            
FIGLEAF  AI,R6    -1                                                            
         BGEZ     FIGLOOP           LOOP THROUGH TABLE                          
         LW,R0    #CONFIG                                                       
         STB,R0   *CNFGTYPE                                                     
FIGIT    RES      0                                                             
         FIN      #550                                                          
         TITLE    '** SYSGEN  - TABLE ALLOCATION: CLIST, CITY **'               
*                                                                               
*                                                                               
*                                   UP DCT7 CONTENT                             
*                                     UP DCT6                                   
         LI,R9    R15                                                           
         LW,R1    #DCT              DEVICE COUNT                                
L22      RES      0                                                             
         LB,R2    DEVMODX,R1        GET MODEL INDEX                             
         LB,R15   CLISTSIZ,R2       GET CLIST SIZE IN WORDS                     
         BEZ      L22A              NO CELLS NEEDED                             
         BAL,R5   L69               ALLOCATE A DW BOUNDED SPACE                 
         SLS,R9   -1                MAKE ADDRESS A DW ADDRESS                   
         STH,R9   *DCT7,R1          AND FILL IN DCT7                            
L22A     BDR,R1   L22               LOOP                                        
*                                                                               
*                                                                               
*                                   ALLOCATE CIT TABLE                          
*                                                                               
         LH,R12   CHANA             GET NO. CIT ENTRIES                         
         AI,R12   4                 ADD 1 EXTRA BYTE FOR ENTRY ZERO             
         SLS,R12  -2                                                            
         LH,R14   CHANA             LENGTH                                      
         AI,R14   1                 SET FOR EXTRA                               
         LI,R10   0                                                             
         LI,R9    R12                                                           
*                                                                               
         BAL,R8   L70               ALLOCATE CIT1                               
         BAL,R8   L70               ALLOCATE CIT2                               
         BAL,R8   L70               ALLOCATE CIT3                               
         LW,R0    L93                                                           
         STW,R0   LCIT3             SAVE CIT3                                   
         BAL,R8   L70               ALLOCATE CIT5                               
         MTW,0    DUAL              DUAL OPTION                                 
         BEZ      L24               NO                                          
         BAL,R8   L70               ALLOCATE CIT6                               
         LH,R1    CHANA             GET NO. OF CHANNELS                         
L23      LH,R2    CHANB,R1          IS IT DUAL                                  
         BEZ      L23A              NO                                          
         LI,R2    X'8'              GET DUAL FLAG                               
         STB,R2   *LCIT3,R1         SAVE FLAG                                   
L23A     BDR,R1   L23               NEXT                                        
         B        L25                                                           
L24      LI,R0    0                                                             
         STW,R0   SYMT2,R7          DONT ALLOCATE CIT6                          
         AI,R7    1                 INCREMENT SYMT2 INDEX                       
         TITLE    '** SYSGEN  - TABLE ALLOCATION: IOQ **'                       
*                                                                               
*                                                                               
*                                   ALLOCATE IOQ                                
*                                                                               
*                                                                               
L25      EQU      %                                                             
         LW,R14   FIOQ                                                          
         AW,R14   BIOQ              R14=NO. ENTRIES IN IOQ                      
         STW,R14  #IOQ                                                          
*                                                                               
         LI,R6    IOQTAB                                                        
         BAL,R5   L60               ALLOCATE ALL IOQ TABLES                     
*                                                                               
         LW,R0    BIOQ              #OF BACKGROUND ENTRIES                      
         STB,R0   *IOQ1             TO ENTRY 0 OF IOQ1                          
*                                                                               
         LW,R1    #IOQ              TOTAL IOQ COUNT                             
         STB,R1   *IOQ4             TO IOQ4                                     
         LI,R0    0                 ZERO                                        
         STB,R0   *IOQ2,R1          LAST LINK                                   
*                                                                               
         LW,R0    #IOQ                                                          
         AI,R1    -1                                                            
*                                                                               
         STB,R0   *IOQ2,R1          FORWARD LINK ALL ENTRIES                    
         AI,R0    -1                                                            
         BDR,R1   %-2                                                           
*                                                                               
         STB,R0   *IOQ2             FIRST LINK                                  
         TITLE    '** SYSGEN  - TABLE ALLOCATION: RFT  **'                      
*                                                                               
*                                                                               
*                                                                               
*                                                                               
*                                   ALLOCATE RFT TABLE                          
         LW,R14   FRAD                                                          
         AW,R14   BRAD              TOTAL NO. ENTRIES MINUS 1                   
         AW,R14   NUMBT             ADD IN NO. BT FILES                         
         STW,R14  #RFT                                                          
*                                                                               
         LI,R6    RFTTAB                                                        
         BAL,R5   L60               ALLOCATE ALL RFT ENTRIES                    
*                                                                               
         LW,R0    RFT1                                                          
         STW,R0   K:RFT1            SET ADREESS OF RFT1                         
         LW,R2    NUMBT             STORE BT FILE NAMES                         
         LW,R1    KBLANKS                                                       
L30      LH,R0    BTFILE,R2         GET FILE NAME                               
         SLS,R0   16                                                            
         AI,R0    X'4040'           ADD IN BLANKS                               
         STD,R0   *RFT1,R2          STORE NAME                                  
         DO1      #MAP                                                          
         MTB,2    *RFT9,R2          PUT BACKGROUND JOB ID IN (2)                
         BDR,R2   L30                                                           
*                                                                               
         LW,R0    #RFT              TOTAL RFT COUNT                             
         STH,R0   *RFT4                                                         
*                                                                               
         LW,R0    BRAD              MAX # OF BACKGROUND ENTRIES                 
         STB,R0   *RFT13                                                        
*                                                                               
         LW,R0    RFT1                                                          
         STW,R0   K:RFT1            SAVE RFT1                                   
*                                                                               
         LW,R0    RFT4                                                          
         STW,R0   K:RFT4            SAVE RFT4                                   
*                                                                               
         LW,R0    RFT5                                                          
         STW,R0   K:RFT5            SAVE RFT5 PTR                               
*                                                                               
         LW,R0    NUMBT             # OF BT FILES                               
         STB,R0   *RFT15                                                        
*                                                                               
         LW,R0    RFT8                                                          
         STW,R0   K:RFT8            SAVE RFT8                                   
*                                                                               
         LW,R0    RFT11                                                         
         STW,R0   K:RFT11           SAVE RFT11 PTR                              
*                                                                               
         LW,R0    RFT12                                                         
         STW,R0   K:RFT12           SAVE RFT12 PTR                              
         TITLE    '** SYSGEN  - TABLE ALLOCATION:   **'                         
*                                                                               
*                 ALLOCATE LMI, STI, RDLI, AND SJI TABLES                       
*                                                                               
         LI,R5    LBLEND-STDLBX     GET NO. OF OPLBLS TO ADD                    
         BEZ      L31               NONE                                        
L31A     LH,R6    STDLB1            GET NO. PRESENTLY                           
         LW,R0    STDLBX-1,R5       GET EXTRA OPLABEL                           
L31AA    LH,R1    STDLB1,R6         PICK UP STANDARD ENTRY                      
         AND,R0   HWMASK                                                        
         AND,R1   HWMASK                                                        
         CW,R0    R1                IS IT ALREADY ENTERED                       
         BE       L31B              YES, DONT ADD                               
         BDR,R6   L31AA             LOOP THRU ALL OPLABELS                      
*                                                                               
         LH,R6    STDLB1            NO. OF ENTRYS                               
         STH,R0   STDLB1,R6         NEW ONE                                     
         MTH,1    STDLB1            INCR. NO.                                   
L31B     BDR,R5   L31A              NEXT                                        
L31      EQU      %                                                             
         LH,R0    STDLB1            GET OPLABEL COUNT                           
         AI,R0    -1                ADJUST FOR LAST ENTRY                       
         STW,R0   #OPLBL            AND SAVE FOR ALLOCATION                     
*                                                                               
         LI,R6    T1                                                            
         BAL,R5   L60               ALLOCATE TABLE BASED ON T1                  
*                                                                               
         LW,R0    #LDMD             LMI SIZE                                    
         STB,R0   *LMI9             PUT IN ENTRY 0 OF LMI9                      
*                                                                               
         LW,R0    #TASKS            STI SIZE                                    
         STB,R0   *STILMID          PUT IN ENTRY 0 OF STILMID                   
*                                                                               
         LW,R8    #JOBS             SJI SIZE                                    
         STB,R8   *SJI3             PUT IN ENTRY 0 OF SJI3                      
*                                                                               
         LW,R6    #CT                                                           
         STH,R6   *RDLILVL1         RDLI LENGTH                                 
*                                                                               
L32      RES      0                                                             
         PLW,R1   G95               GET A CT ADDR                               
         STH,R1   *RDLIADD,R6       AND SAVE IT                                 
*                                                                               
         BAL,R0   K80               COMPUTE TRIGGER VALUES                      
         STH,R4   *RDLILVL1,R6      AND SAVE THEM                               
         STH,R2   *RDLIGRP1,R6                                                  
*                                                                               
         AI,R1    1                                                             
         BAL,R0   K80               COMPUTE TRIGGER VALUES                      
         STH,R4   *RDLILVL2,R6      OF NEXT LEVEL AND SAVE THEM                 
         STH,R2   *RDLIGRP2,R6      AND SAVE THEM                               
*                                                                               
         AI,R1    -X'50'            GET HARDWARE PRIORITY                       
         STB,R1   *RDLIPRIO,R6      AND SAVE IT                                 
*                                                                               
         LI,R15   26                                                            
         BAL,R5   L69               GET 26 WORDS DW BOUNDED                     
         LI,R0    X'0F'             XPSD OP CODE                                
         STB,R0   R9                ADD TO LOCATION                             
         STW,R9   *RDLITCB,R6       AND SAVE IT                                 
*                                                                               
         BDR,R6   L32               LOOP THROUGH RDLI TABLE                     
*                                                                               
*                                                                               
*                                                                               
         LW,R1    #OPLBL                                                        
         STH,R1   *OPLB1            SAVE TABLE SIZE IN OPLB1                    
*                                                                               
L33      RES      0                                                             
         LH,R0    STDLB1,R1                                                     
         STH,R0   *OPLB1,R1         BUILD NAME TABLE                            
*                                                                               
         LB,R0    STDLB2,R1                                                     
         STB,R0   *OPLB2,R1         BUILD INDEX TABLE                           
         STB,R0   *OPLB3,R1         FILL IN OPLB3 ALSO                          
         BDR,R1   L33               LOOP THROUGH OP LABELS                      
*                                                                               
         LW,R0    OPLB1                                                         
         STW,R0   K:OPLBS1          FILL IN K: PTR                              
*                                                                               
         LW,R0    OPLB3                                                         
         STW,R0   K:OPLBS3          FILL IN K: PTR                              
*                                                                               
         LW,R0    REBOOT            GET REBOOT FLAG                             
         STW,R0   *ALARMREC         STORE IN ALARM RECIEVER LOCATION            
         TITLE    '** SYSGEN  - TABLE ALLOCATION: INTLB **'                     
*                                                                               
*                                                                               
*                                   ALLOCATE AND STORE INTLB TABLE              
         MTH,-1   INTLB1            SET TO NO. ENTRIES                          
         LH,R14   INTLB1                                                        
         LW,R13   R14                                                           
         AI,R13   2                                                             
         SLS,R13  -1                                                            
*                                                                               
         LI,R9    R13               HA                                          
         BAL,R8   L70               ALLOCATE INTLB1                             
         STH,R14  *L93              STORE NO. ENTRIES                           
         LW,R1    R14                                                           
         LH,R0    INTLB1,R1                                                     
         STH,R0   *L93,R1           STORE INTLB1 TABLE                          
         BDR,R1   %-2                                                           
*                                                                               
         BAL,R8   L70               ALLOCATE INTLB2                             
         LW,R1    R14                                                           
         LH,R0    INTLB2,R1                                                     
         STH,R0   *L93,R1           STORE INTLB2 TABLE                          
         BDR,R1   %-2                                                           
         TITLE    '** SYSGEN  - TABLE ALLOCATION: OVLOAD  **'                   
*                                                                               
*                                                                               
*                                                                               
*                                   ALLOCATE OVLOAD TABLE                       
         LI,R8    0                 PRESET CLEAR                                
         LW,R1    #OVIS             NO. OF OVERLAYS                             
         LI,R0    0                 ADD UP EP'S                                 
L34A     LW,R6    DEFT2,R1          GET NO. FOR THIS OLAY                       
         BNEZ     %+2               DEFAULT                                     
         AI,R6    X'10001'          YES                                         
         LB,R5    DEFT4,R1          GET RES OR NON-RES                          
         CI,R5    NROLAY                                                        
         BE       %+2               RES                                         
         AND,R6   HWMASK            NO EXIT POINTS                              
         CI,R5    DLOLAY                                                        
         BE       %+2                                                           
         AW,R0    R6                ADD THEM UP                                 
         STW,R8   DEFT2,R1          CLEAR ENTRY                                 
         BDR,R1   L34A              AGAIN                                       
         AH,R0    R0                ADD ENTRIES AND EXITS                       
         AND,R0   HWMASK            CLEAR UPPER                                 
         CI,R0    #EPI              TOO MANY                                    
         BLE      %+2               NO                                          
         LI,R0    #EPI              SET MAX                                     
         MTW,0    #EPIS             ALLOCATED ALTERNATELY                       
         BNEZ     L34B              YES                                         
         STW,R0   #EPIS             STORE IT FOR ALLOCATION                     
L34B     LI,R6    OLAY1             ALLOCATE OVI AND EPI                        
         BAL,R5   L60                                                           
         LW,R0    OVILG             SAVE LENGTH ADDRESS                         
         STW,R0   OVILGA                                                        
         LW,R0    OVINM             SAVE NAME ADDRESS                           
         STW,R0   OVINMA                                                        
         LW,R0    OVISK             SAVE SEEK ADDRESS                           
         STW,R0   OVISKA                                                        
         LW,R0    OVIGR             SAVE GRANULE ADR                            
         STW,R0   OVIGRA                                                        
         LW,R0    EPIEP             SAVE ENTRY/EXIT POINT ADDRESS               
         STW,R0   EPIEPA                                                        
         LW,R0    EPIB              SAVE BRANCH ADDRESS                         
         STW,R0   EPIBA                                                         
         LW,R0    #OVIS             OVI  SIZE                                   
         STB,R0   *OVIGR            TO  OVILG                                   
         STH,R0   *OVILG            ALSO HERE FOR OLD                           
         LW,R0    #EPIS             EPI SIZE                                    
         STW,R0   EPIOVX            SAVE FOR GREATER 255                        
         LW,R0    S:TRACEP          NO. OF RBM EPS                              
         STW,R0   S:TRA                                                         
         LH,R5    *OVILGA           OVI SIZE                                    
         LW,R0    EPIEP             BASE OF EPIEP                               
         AW,R0    R5                                                            
         SLS,R0   2                 BYTE ADDRESS                                
         STW,R0   DEFT2,R5          INITIALIZE AS ENTRIES                       
         BDR,R5   %-4                                                           
         TITLE    '** SYSGEN  - TABLE ALLOCATION: RMPT  **'                     
*                                                                               
*        CREATE RMPT AND PPT TABLES AND CONVERT INTERMEDATE                     
*        SYSGEN STACK INFORMATION TO RUN TIME FORMAT                            
*        EXPECTED BY CPR                                                        
*                                                                               
*                                                                               
*        THE STACK HAS DOULBE WORD ENTIRES: 1/PARTITON OF FORMAT:               
*                                                                               
*                                                                               
*        RBM      RMPT, WORD 0= (UNDEFINED)                                     
*                       WORD 1= (UNDEFINED)                                     
*                       THIS ENTRY IS ALWAYS THE FIRST RMPT                     
*                       ENTRY AND IS CREATED BY SYSGEN ALWAYS                   
*        PRIVATE  RMPT, WORD 0= START ADDR FROM RSDF CARD                       
*                       WORD 1= TYPE (1) AND LENGTH                             
*                               IN WORDS (FORCED TO EVEN PAGES                  
*                               BY SYSGEN)                                      
*                              DEFAUTED MAILBOX AND BLOCKING                    
*                       BUFFER ASSIGNMENTS WILL GO                              
*                       TO THE FIRST RSDF CARD INPUT (EARLIEST                  
*                       ONE IN RMPT)                                            
*        MAILBOX  RMPT, WORD 0= START ADDR FROM FMBOX CARD                      
*                       WORD 1= TYPE (2) AND LENGTH IN WORDS                    
*                               ALSO FORCED TO EVEN PAGES                       
*                       DEFAULT MAILBOX INPUT DOES NOT CREATE                   
*                       A RMPT ENTRY BUT THE LENGTH IS PUT INTO                 
*                       K:FMBOX.                                                
*        BUFFERS  RMPT, WORD 0= START ADDR FROM FPOOL CARD                      
*                       WORD 1= TYPE (3) AND LENGTH IN WORDS                    
*                               =# OF BUFFERS TIMES 256 ROUNDED                 
*                               UP TO AN EVEN PAGE IF REQUIRED                  
*                       DEFAULT BUFFER INPUT (NO START ADDR)                    
*                       DOES NOT CREATE AN RMPT BUT THE LOC                     
*                                                                               
*                        BBNUM = NUMBER OF BUFFERS REQUESTED                    
*                                                                               
*        PREFERRED RMPT, WORD 0= START ADDR FROM PMEM CARD                      
*                       WORD 1= TYPE (4) AND LENGTH IN WORDS                    
*                       COMPUTED AS 512*# PAGES REQUESTED                       
*        STM      RMPT, WORD 0= (UNDEFINED)                                     
*                       WORD 1= (UNDEFINED)                                     
*                       THIS IS ALWAYS LAST RMPT, CREATED BY SYSGEN             
*                                                                               
*                                                                               
*                                                                               
         LI,R8    0                 PUSH EXTRA DW FOR STM                       
         LI,R9    0                                                             
         LI,R10   TYPESTM                                                       
         STB,R10  R9                                                            
         LCI      2                                                             
         PSM,R8   Z85                                                           
*                                                                               
*                                                                               
         LW,R15   Z85+1             STACK COUNT                                 
         AND,R15  KX7FFF            MASK OFF COUNT                              
*                                                                               
         LI,R9    R15                                                           
         LI,R10   0                 FLAG FOR SYMBOL ALLOCATION                  
         BAL,R8   L70               ALLOCATE RMPT TABLE  (DW)                   
*                                                                               
         LW,R8    L93                                                           
         STW,R8   K:RMPT            SAVE RMPT POINTER                           
*                                                                               
         SLS,R15  -1                MAKE NUMBER A DW COUNT                      
         STB,R15  K:RMPT            PUT IN ZERO BYTE OF RMPT PTR                
*                                                                               
         LB,R14   K:RMPT            PPT COUNT                                   
         LI,R9    R14                                                           
         BAL,R8   L70               ALLOCATE PPT SPACE/SYM (WDS)                
*                                                                               
         LW,R8    L93                                                           
         STW,R8   K:PPT             SAVE PPT PTR FOR OLOAD                      
*                                                                               
         LB,R1    K:RMPT            LOOP COUNT                                  
*                                                                               
L35      RES      0                                                             
         LCI      2                                                             
         PLM,R8   Z85               GET A DW ENTRY                              
         LB,R5    R9                R5 = PART TYPE                              
         LB,R15   R9                                                            
         SLS,R15  24                                                            
         STW,R15  *K:PPT,R1                                                     
         AND,R9   KX1FFFF                                                       
         LW,R15   R9                R15 = SAVED SIZE                            
         AW,R9    R8                                                            
         AI,R9    -1                                                            
         STD,R8   *K:RMPT,R1        AND PUT IT IN RMPT                          
         EXU      %+1,R5                                                        
         B        L35A              CPR PART                                    
         B        L35B              PRIVATE PART                                
         B        L35C              MAILBOX PART                                
         B        L35D              FPOOL PART                                  
         B        L35E              PREFERRED PART                              
         B        L35F              STM PART                                    
         B        L35G              GAP PART                                    
L35A     LI,R8    0                 CPR                                         
         LI,R9    0                 RBMEND NOT YET AVAILABLE                    
         STD,R8   *K:RMPT,R1                                                    
*        B        L37                                                           
L35B     B        L37               PRIVATE                                     
L35C     B        L37               MAILBOX                                     
L35D     B        L37               FPOOL                                       
L35G     B        L37               GAP                                         
*                                                                               
L35E     EQU      %                 PREFERED                                    
         SLS,R15  -9                GET SIZE IN PAGES                           
         AI,R15   4                 ADD TWO ADDITIONAL DW'S                     
         B        L35EF                                                         
L35F     EQU      %                 STM                                         
         LI,R8    0                                                             
         LW,R9    K:UNAVBG                                                      
         AI,R9    -1                                                            
         STD,R8   *K:RMPT,R1        CORRECT MISTTAKE                            
         LI,R15   2                 STM HAS PCT OF SIZE 2                       
         B        L35EF                                                         
*                                                                               
L35EF    BAL,R5   L69               ALLOCATE PCT FOR STM/PMEM                   
         LW,R8    R9                                                            
*                                                                               
         LI,R9    X'7FFFF'                                                      
         STS,R8   *K:PPT,R1         PPCT ADR TO PPT                             
*                                                                               
*                                   FILL OUT PCT                                
         LD,R2    *K:RMPT,R1                                                    
         SLS,R2   -9                CONVERT START ADDR TO PAGE #                
         LW,R3    R15               GET TABLE SIZE                              
         AI,R3    -4                # OF PAGES AGAIN                            
         STB,R3   R2                AND PUT INTO TOP OF R2                      
         LW,R3    %+1               PICK UP A NOP                               
         NOP      0                                                             
         STD,R2   *R8               INITIALIZE PCT TABLE                        
*                                                                               
*                                                                               
L37      RES      0                                                             
         BDR,R1   L35               LOOP THROUGH RMPT                           
*                                                                               
* THE FOLLOWING TABLES ARE NOW PRACTICALLY ALLOCATED                            
*                                                                               
*        RMPT (DW)                                                              
*                 WORD 0 = PARTITION FWA                                        
*                 WORD 1 = PARTITON LWA                                         
*                                                                               
*        PPT (W)                                                                
*                 BYTE 0 = PARTITION TYPE (0-5)                                 
*                 BYTES1-4 = PCT ADDRESS IF ANY                                 
*                                                                               
*        THE ABOVE TABLES ARE PARALLEL ONE/PARTITION                            
*                                                                               
*        TO DO    SET FWA,LWA ON RBM AND STM PARTITIONS                         
*                       RBM= 0,RBMEND                                           
*                       STM= RBMEND+1,LAST REAL MEMORY ADDR                     
*                                                                               
*        PCT      PREFERRED PARTITION                                           
*                 CREATED AND INITIALIZED BY SYSGEN TO                          
*                 THE FINAL RUN FORMAT AS GIVEN IN DOCUMENT                     
*        PCT      STM 'PARTITION'                                               
*                 ONLY ALLOCATED BY SYSGEN, CONTENT IS UNDEFINED                
*                 MUST BE INITIALIZED BY IPLMM                                  
*                                                                               
*        PCT      AS INPUT FOR PREFERRED,                                       
*                 FOR STM, WORD 0=CHAIN HEAD, FREE MEMORY                       
*                          WORD 1=PAGE COUNT                                    
*                                                                               
*        K:FPOOL,K:FMBOX,K:BACKBG,K:BCKEND,K:FGDEND PER SPECS                   
*                                                                               
*                                                                               
*                                                                               
         PAGE                                                                   
*                                                                               
*                                                                               
*        ALLOCATE BBCT FOR FPOOL                                                
*                                                                               
*        BBCW     WORD 0=BLOCKING BUFFER COUNT                                  
*                 WORD 1-N=BUFFER ADDRESSES  (+ FLAGS)                          
*                                                                               
*                 K:FPOOL = ADDRESS OF BBCW                                     
*                                                                               
*                                                                               
         LW,R14   BBNUM                                                         
         CI,R14   0                                                             
         BE       IPLMM25           NO BB SPECIFIED                             
         MTW,0    XPOOL                                                         
         BEZ      IPLMM22           BB SPEC, WITHOUT START ADR                  
*                                                                               
*                                                                               
*        BLOCKING BUFFER ALLOCATION: SEPARATE PARTITON                          
*                                                                               
         LW,R14   BBNUM                                                         
         AI,R14   1                 FOR COUNT                                   
*                                   R14 = LENGTH OF BBCT                        
         LI,R10   1                 NO SYSMBOL ALLOCATION                       
         LI,R9    R14               WORD ALLOCATION                             
         BAL,R8   L70               GET SPACE                                   
         LW,R1    L93               R0 = BBCT ADDRESS                           
         AI,R1    1                 WORD 0 USED                                 
         STW,R1   K:FPOOL                                                       
         LW,R4    XPOOL                                                         
         LD,R0    *K:RMPT,R4        R0 = FWA OF POOL AREA                       
*                                   FILL OUT BBCT                               
         LW,R3    BBNUM                                                         
         STW,R3   *K:FPOOL          1ST WORD = NO BB                            
         LI,R2    1                                                             
         STW,R0   *K:FPOOL,R2                                                   
         AI,R0    256                                                           
         AI,R2    1                                                             
         BDR,R3   %-3                                                           
         B        IPLMM25                                                       
*                                                                               
*        BLOCKING BUFFER ALLOCATION: DEFAULTED INTO RSDF PART                   
*                                                                               
*        (NO RMPT ENTRY) - CARD INPUT WITHOUT START ADR                         
*                                                                               
IPLMM22  EQU      %                                                             
*                                                                               
         LW,R14   BBNUM                                                         
         AI,R14   1                 FOR COUNT                                   
*                                   R14 = LENGTH OF BBCT                        
         LI,R10   1                 NO SYSMBOL ALLOCATION                       
         LI,R9    R14               WORD ALLOCATION                             
         BAL,R8   L70               GET SPACE                                   
         LW,R1    L93               R1 = BBCT ADDRESS                           
         AI,R1    1                 CORRECT FOR WORD 0 USAGE                    
         STW,R1   K:FPOOL                                                       
*                                   FILL OUT BBCT                               
         LW,R4    XPRIV                                                         
         LD,R0    *K:RMPT,R4        R0 = FWA OF PRIV AREA                       
         LW,R4    BBNUM                                                         
         SLS,R4   8                 NO BB TO WORDS                              
         SW,R1    R4                                                            
         AI,R1    1                                                             
         STW,R1   FWAPRSDF          R1 = FWA OF POOL AREA                       
         LW,R3    BBNUM                                                         
         STW,R3   *K:FPOOL          1ST WORD = NO BB                            
         LI,R2    1                                                             
         STW,R1   *K:FPOOL,R2                                                   
         AI,R1    256                                                           
         AI,R2    1                                                             
         BDR,R3   %-3                                                           
         B        IPLMM25                                                       
*                                                                               
*                                                                               
*                                                                               
*        BLOCKING BUFFER ALLOCATION: SYSTEM DEFAULT OF 1                        
*                                                                               
*        S:XBB=0 BY SYSGEN IF NOT DEFAULTED (SYMBOL ONLY-NO LOC)                
*                                                                               
*                                                                               
IPLMM25  EQU      %                                                             
         LI,R9    0                 DEFAULT TO ZERO                             
         MTW,0    BBNUM             WAS BB ALLOCATED                            
         BGZ      %+5               YES, ALLOCATE SYM ONLY                      
         MTW,0    XBBFLAG           IS XBB NEEDED (REBOOT,ERLOG)                
         BLEZ     %+3               NO, ALLOCATE SYMBOL ONLY                    
         LI,R15   258                                                           
         BAL,R5   L69               ALLOCATE SPACE ON DW BOUNDRY                
         BAL,R5   L55               DEFINE SYMBOL (S:XBB)                       
         MTW,0    BBNUM             WAS BB ALLOCATED                            
         BGZ      IPLMM26           YES                                         
         MTW,0    XBBFLAG           IS THERE AN EXTRA BLOCKING BUFFER           
         BLEZ     IPLMM26           NO                                          
         STW,R9   K:FPOOL           R9=ADDR OF 258 WORD AREA FOR                
         LI,R8    1                 NUMBBBCW AND BUFFERBUFFERS                  
         STW,R8   *K:FPOOL              WORD 0=# BUFFERS                        
         AI,R9     2                    WORD 1=BUFFER ADDRESS                   
         LI,R1     1                                                            
         STW,R9   *K:FPOOL,R1       STORE IN BBCT                               
         B        IPLMM26                                                       
         PAGE                                                                   
*                                                                               
*        PROCESS DEFAULTED MAILBOX REQUEST (NO RMPT ENTRY)                      
*                 BUT CARD INPUT WITH SIZE, NO START ADDR                       
*                                                                               
IPLMM26  EQU      %                                                             
         LW,R1    XFMBOX                                                        
         CI,R1    0                                                             
         BEZ      %+4                                                           
         LD,R0    *K:RMPT,R1        SEPARATE MBOX PART                          
         STW,R0   K:FMBOX                                                       
         B        IPLMM30                                                       
         MTW,0    K:FMBOX                                                       
         BEZ      IPLMM30           NO MBOX IN RSDF                             
         LW,R1    FWAPRSDF          WAS POOL IN RSDF                            
         BNEZ     %+3               B IF YES                                    
         LW,R1    XPRIV                                                         
         LD,R0    *K:RMPT,R1                                                    
         SW,R1    K:FMBOX                                                       
         STW,R1   K:FMBOX                                                       
         B        IPLMM30                                                       
IPLMM30  EQU      %                                                             
         TITLE    '** SYSGEN  - TABLE ALLOCATION: WL, S:UTIME,S:JPT **'         
*                                                                               
*                                                                               
*                                                                               
*        ALLOCATE SPACE FOR WRITE LOCKS                                         
*                                                                               
         LW,R12   K:UNAVBG          GET CORE SIZE                               
         CI,R12   128*1024          IS IT GREATER THAN 128K                     
         BG       %+2                                                           
         LI,R12   128*1024          YES, TRUNCATE                               
         LI,R13   0                                                             
         SLD,R12  -13               GET NO. WORDS NEED FOR WRITE LOCKS          
         CI,R13   0                 CHECK FOR REMAINDER                         
         BE       %+2               NONE                                        
         AI,R12   1                 ADD ONE EXTRA                               
         LW,R1    R12               SAVE R12                                    
         LI,R12   17                WLOCK ALWAYS 17 WORDS                       
         LI,R9    R12               USE R12 INSTEAD OF R14 BECAUSE              
         LI,R10   0                 ALLOCATE SYMBOL ALSO                        
         BAL,R8   L70                 NEED WORD ZERO                            
         STW,R1   *L93              STORE NO. ENTRIES FOR AVAIL. CORE           
         LW,R1    L93                                                           
         STW,R1   WLOCK                                                         
*                                                                               
*                                                                               
*                                                                               
*        ALLOCATE SPACE FOR SYTEM TASK ACCESS CODES                             
*                                                                               
*        **TEMP UNTIL ALLOCATION ROUTINES REWRITTEN                             
*        DO BOUND 8 WITH WASTED DW                                              
         LI,R15   2                                                             
         BAL,R5   L69                                                           
*                                                                               
         LI,R6    STACCTAB                                                      
         BAL,R5   L60                                                           
*                                                                               
*                                                                               
*        BUILD ACCESS CODES FOR SYSTEM  TASKS                                   
*        ------ UNIMPLEMENTED AND UNCHECKED ------                              
*                                                                               
         LW,R9    STACC             SET UP MMC DW                               
         LW,R10   STACC                                                         
         AI,R10   2                                                             
         STW,R10  *R9                                                           
         LI,R10   0                                                             
         LI,R11   X'10'                                                         
         STB,R11  R10                                                           
*                                   POOR MANS LITERAL FIX..                     
         AI,R9    1                                                             
         STW,R10  *R9                                                           
         AI,R9    1                 SET UP ACCI ITSELF                          
         LI,R0    1                 CODE = READ AND EXECUTE                     
         LW,R9    STACC                                                         
         AI,R9    2                                                             
         LI,R10   0                                                             
         LW,R11   STVMVAL                                                       
         AI,R11   -1                                                            
         BAL,R8   STOREWL                                                       
         LI,R0    3                 CODE = NO ACCESS                            
         LW,R9    STACC                                                         
         AI,R9    2                                                             
         LW,R10   STVMVAL                                                       
         LW,R11   KX1FFFF                                                       
         BAL,R8   STOREWL                                                       
*                                                                               
         LW,R0    STVMVAL                                                       
         STW,R0   *STVM                                                         
         LI,R0    #ETVM                                                         
         STW,R0   *ETVM                                                         
*                                                                               
*                                                                               
*                                                                               
*                 DEFINE S:UTIME VALUE                                          
*                                                                               
         LW,R0    #UTIME                                                        
         SLS,R0   2                 MAKE BYTE VALUE                             
         STW,R0   SYMT2,R7          PUT IN SYMBOL TABLE                         
         AI,R7    1                 AND BUMP SYMBOL PTR                         
*                                                                               
*                                                                               
*                 DEFINE S:JPT                                                  
*                                                                               
         LW,R0    #JPT                                                          
         SLS,R0   2                 MAKE A BYTE VALUE                           
         STW,R0   SYMT2,R7          AND PUT IN SYMBOL TABLE                     
         AI,R7    1                 BUMP SYMBOL PTR                             
         TITLE    'IOLOCK AND MMROLTAB'                                         
*                                                                               
* ALLOCATE IOLOCK                                                               
*                                                                               
         DO       #MAP                                                          
         LW,R12   K:UNAVBG                                                      
         SLS,R12  -9                MAKE INTO NUMBER OF PAGES                   
         STW,R12  #IOLOCK           NUMBER OF BYTES FOR IOLOCK                  
*                                                                               
         LI,R6    IOLTAB                                                        
         BAL,R5   L60               ALLOCATE IOLOCK                             
*                 LATER DO WITH L70 AND MOVE TO AHEAD OF WLOCK                  
         LW,R0    IOLOCK                                                        
         STW,R0   K:IOLOCK                                                      
*                                                                               
         FIN      #MAP                                                          
         TITLE    '** SYSGEN  - TABLE ALLOCATION: COC  **'                      
*                                                                               
* ALLOCATE ALL COC STUFF                                                        
*                                                                               
         DO       #LN                                                           
         LI,R0    X'7FFF'                                                       
         AND,R0   COCSTK+1          GET # OF COC                                
         BEZ      NOCOC             EXIT IF NO COC IN SYSGEN                    
         SLS,R0   -2                                                            
         STW,R0   TRUE#COC                                                      
*                                                                               
         CI,R0    1                 IS IT ONE                                   
         BE       %+2               NO                                          
         AI,R0    -1                YES, REDUCE BY 1                            
         STW,R0   #COC                                                          
         SLS,R0   +2                                                            
         AI,R0    -1                NO EXTRA WORDS                              
         STW,R0   #COCX4                                                        
*                                                                               
         LW,R0    CURRLINE                                                      
         STW,R0   TRUE#LIN                                                      
         CI,R0    1                 IS IT ONE                                   
         BE       %+2               YES                                         
         AI,R0    -1                                                            
         STW,R0   #LINES            NUMBER OF LINES                             
*                                                                               
         LI,R6    COCTAB                                                        
         BAL,R5   L60               ALLOCATE COC TABLES                         
*                                                                               
         LW,R15   TRUE#COC                                                      
         SLS,R15  1                                                             
         BAL,R5   L69               ALLOCATE COD:LPC                            
         STW,R9   COD:LPC                                                       
         BAL,R5   L55               AND DEFINE LABEL                            
*                                                                               
         BAL,R5   L69               ALLOCATE COD:HWL                            
         STW,R9   COD:HWL                                                       
         BAL,R5   L55               AND DEFINE LABEL                            
*                                                                               
         LI,R15   4                                                             
         BAL,R5   L69               ALLOCATE CO:IN0                             
         BAL,R5   L55               AND DEFINE SYMBOL                           
*                                                                               
         LW,R0    TRUE#COC                                                      
         CI,R0    1                 IS THERE MORE THAN ONE COC                  
         BLE      ONECOC            NO                                          
*                                   YES                                         
         LI,R15   7                                                             
         BAL,R5   L69               ALLOCATE CO:INN                             
         BAL,R5   L55               AND DEFINE LABEL                            
         B        TWOCOC                                                        
**                                                                              
ONECOC   RES      0                                                             
         LI,R9    0                                                             
         BAL,R5   L55               SET CO:INN TO ZERO                          
*                                                                               
TWOCOC   RES      0                                                             
         LW,R15   TRUE#COC                                                      
         MI,R15   6                                                             
         BAL,R5   L69               ALLOCATE CO:OUT0                            
         BAL,R5   L55               DEFINE SYMBOL                               
*                                                                               
         LW,R15   TRUE#COC                                                      
         SLS,R15  2                 TIMES 4                                     
         BAL,R5   L69               ALLOCATE CO:CMND                            
         BAL,R5   L55               AND DEFINE SYMBOL                           
*                                                                               
         LW,R15   #BUFF                                                         
         MI,R15   4                                                             
         BAL,R5   L69               ALLOCATE COCBUF                             
         BAL,R5   L55               DEFINE SYMBOL                               
*                                                                               
         LW,R9    R15                                                           
         AI,R9    -4                                                            
         BAL,R5   L55               DEFINE HRBA                                 
*                                                                               
         LW,R9    TRUE#COC                                                      
         AI,R9    -1                                                            
         BAL,R5   L55               DEFINE LCOC                                 
*                                                                               
         LW,R9    TRUE#LIN                                                      
         BAL,R5   L55               DEFINE LNOL                                 
*                                                                               
         PAGE                                                                   
*                                                                               
* FILL IN ALL COC ENTRIES                                                       
*                                                                               
         LW,R6    TRUE#COC          COC INDEX                                   
         AI,R6    -1                                                            
*                                                                               
COCLOOP  RES      0                                                             
         LCI      4                                                             
         PLM,R8   COCSTK            GET COC DATA                                
*                                                                               
         LB,R1    R8                IN LEVEL                                    
         STH,R1   *COH:II,R6                                                    
*                                                                               
         LI,R1    1                                                             
         LB,R1    R8,R1             OUT LEVEL                                   
         STH,R1   *COH:IO,R6                                                    
*                                                                               
         STD,R10  *COD:HWL,R6       HARDWIRE LINES                              
*                                                                               
         LI,R1    2                                                             
         LB,R11   R8,R1             #LINES                                      
         AI,R11   -1                                                            
         LI,R10   0                 CLEAR R10                                   
         STD,R10  *COD:LPC,R6       STORE DW FOR NOW                            
*                                                                               
         STH,R9   *COH:DN,R6        DEVICE ADDRESS                              
*                                                                               
         STB,R8   R9                                                            
         SLS,R9   -24                                                           
         STH,R9   *COH:RBS,R6       RING BUFFER SIZE                            
*                                                                               
         LW,R15   R9                                                            
         BAL,R5   L69               ALLOCATE RING BUFFER                        
*                                                                               
         LH,R0    *COH:RBS,R6       RING BUFFER SIZE                            
         AW,R0    R9                ADD BASE ADDRESS                            
         STW,R0   *CO:RINGE,R6      SAVE LAST WORD+1 PTR                        
         LW,R8    R0                UPPER END +1                                
         SW,R8    R9                BASE                                        
         SLS,R8   2                 IN BYTES                                    
         STH,R8   *COH:RBS,R6       IN TABLE                                    
*                                                                               
         LI,R1    -1                                                            
         STW,R1   *R9                                                           
         AI,R9    1                                                             
         CW,R9    R0                                                            
         BL       %-3              PRESET RING BUFFER TO -1                     
*                                                                               
***************************                                                     
* NOTE: THIS NEEDS FURTHER PROCESSING                                           
***************************                                                     
*                                                                               
         LW,R0    R6                COC#                                        
         SLS,R0   4                                                             
         OR,R0    COCWD1            OR IN WD                                    
         STW,R0   *CO:STAT,R6                                                   
*                                                                               
         LW,R0    R6                                                            
         SLS,R0   4                                                             
         OR,R0    COCRD1                                                        
         STW,R0   *CO:OUTRS,R6                                                  
*                                                                               
         LW,R0    R6                                                            
         SLS,R0   4                                                             
         OR,R0    COCWD2                                                        
         STW,R0   *CO:RCVON,R6                                                  
*                                                                               
         LW,R0    R6                                                            
         SLS,R0   4                                                             
         OR,R0    COCWD3                                                        
         STW,R0   *CO:XDATA,R6                                                  
*                                                                               
         LW,R0    R6                                                            
         SLS,R0   4                                                             
         OR,R0    COCWD4                                                        
         STW,R0   *CO:RCVDO,R6                                                  
*                                                                               
         LW,R0    R6                                                            
         SLS,R0   4                                                             
         OR,R0    COCWD5                                                        
         STW,R0   *CO:TRNDO,R6                                                  
*                                                                               
         LW,R0    R6                                                            
         SLS,R0   4                                                             
         OR,R0    COCWD6                                                        
         STW,R0   *CO:XSTOP,R6                                                  
*                                                                               
         AI,R6    -1                                                            
         BGEZ     COCLOOP                                                       
*                                                                               
         LI,R6    0                 COC INDEX                                   
         LI,R8    0                                                             
         LI,R9    0                                                             
COCLOOP2 RES      0                                                             
         AD,R8    *COD:LPC,R6                                                   
         STD,R8   *COD:LPC,R6                                                   
         AI,R9    1                                                             
         LW,R8    R9                                                            
         AI,R6    1                                                             
         CW,R6    TRUE#COC                                                      
         BL       COCLOOP2                                                      
* COD:LPC NOW FIXED UP RIGHT                                                    
*                                                                               
         LH,R1    *COH:II           INPUT ADDR FOR COC 0                        
         BAL,R0   K80               COMPUTE GROUP AND BITS                      
         STW,R4   *CO:IIL                                                       
*                                                                               
         LI,R9    X'FF'                                                         
         AND,R9   R2                GROUP #                                     
         BAL,R5   L55               DEFINE COA:IIG                              
*                                                                               
         LH,R1    *COH:IO                                                       
         BAL,R0   K80                                                           
         STW,R4   *CO:OIL           OUTPUT LEVEL BIT                            
*                                                                               
         LI,R9    X'FF'                                                         
         AND,R9   R2                GET OUTPUT GROUP                            
         BAL,R5   L55               DEFINE COA:OIG                              
*                                                                               
         LW,R6    TRUE#COC                                                      
         AI,R6    -1                                                            
         LI,R8    0                                                             
         LI,R9    0                                                             
COCLOOP3 RES      0                                                             
         LH,R1    *COH:II,R6                                                    
         BAL,R0   K80                                                           
         OR,R8    R4                INPUT LEVEL BITS                            
*                                                                               
         LH,R1    *COH:IO,R6                                                    
         BAL,R0   K80                                                           
         OR,R9    R4                OUTPUT LEVEL BITS                           
*                                                                               
         AI,R6    -1                                                            
         BGEZ     COCLOOP3                                                      
*                                                                               
         STW,R8   *CO:AIIL          ALL INPUT LEVELS                            
         STW,R9   *CO:AOIL          ALL OUTPUT LEVELS                           
*                                                                               
         PAGE                                                                   
*                                                                               
* FILL IN LINE TABLES                                                           
*                                                                               
         LW,R6    #LINES                                                        
LINELOOP RES      0                                                             
         LI,R0    X'88'                                                         
         STB,R0   *MODE,R6                                                      
*                                                                               
         LI,R0    X'20'                                                         
         STB,R0   *MODE2,R6                                                     
*                                                                               
         LI,R0    X'80'                                                         
         STB,R0   *MODE3,R6                                                     
*                                                                               
         LB,R0    LTYPE,R6                                                      
         STB,R0   *COCTERM,R6                                                   
*                                                                               
         LB,R0    LRATE,R6                                                      
         STB,R0   *MODE4,R6                                                     
*                                                                               
         LB,R0    LNOTTJE,R6                                                    
         STB,R0   *MODECPR,R6                                                   
*                                                                               
         LI,R0    1                                                             
         STB,R0   *CPOS,R6                                                      
*                                                                               
         LI,R0    X'8000'                                                       
         STH,R0   *TL,R6                                                        
*                                                                               
         AI,R6    -1                                                            
         BGEZ     LINELOOP                                                      
         B        COCFULL                                                       
********                                                                        
NOCOC    RES      0                                                             
         AI,R7    (LASTCOC-FIRSTCOC+2)/2 FIX UP SYMT PTR                        
COCFULL  RES      0                                                             
         PAGE                                                                   
*                                                                               
* FILL IN DCT EXTENSION                                                         
*                                                                               
         LH,R1    *DCT1             DEVICE LENGTH                               
         AI,R1    1                 PLUS 1                                      
         LH,R2    *DCT7             EXTENDED LENGTH                             
         LI,R3    0                 LINE NUMBER                                 
*                                                                               
DCTXLOOP RES      0                                                             
         CW,R1    R2                DONE OR NO EXTENSION                        
         BG       DCTEXIT           YES                                         
*                                   NO                                          
         LI,R0    X'C0'                                                         
         STB,R0   *DCT3,R1          DCT3 FLAGS                                  
         LI,R0    1                                                             
         STB,R0   *DCT4,R1          DCT4                                        
*                                                                               
         STB,R3   *DCT14,R1         LINE # TO DCT14                             
*                                                                               
         LW,R0    TEXT7611                                                      
         STW,R0   *DCTMOD,R1        DCTMOD = 7611                               
*                                                                               
         LI,R0    3                                                             
         LW,R9    R3                LINE #                                      
         LI,R11   0                                                             
LINEDEC  RES      0                                                             
         LI,R8    0                                                             
         DW,R8    KD10              DIVIDE BY 10                                
         LW,R10   R8                REMAINDER                                   
         AI,R10   '0'               ADD ON ZONE                                 
         SLD,R10  -8                SHIFT INTO R11                              
         BDR,R0   LINEDEC           LOOP 3 TIMES                                
         SLS,R11  -8                ONE MORE SHIFT                              
* R11 IS NOW TEXT DECIMAL LINE NUMBER                                           
         LI,R10   0                                                             
         AD,R10   TEXTLNXX          FORM ALARM MSG                              
         STD,R10  *DCT16,R1         AND STORE IN DCT16                          
*                                                                               
         LW,R4    TRUE#COC          NUMBER OF COC'S                             
         AI,R4    -1                                                            
DCT2LOOP RES      0                                                             
         CLM,R3   *COD:LPC,R4       DOES LINE FIT RANGE                         
         BCR,9    COCFOUND          YES                                         
         AI,R4    -1                NO                                          
         BGEZ     DCT2LOOP          LOOP THRU COC'S                             
         B        %                 CANT                                        
********                                                                        
COCFOUND RES      0                                                             
         STB,R4   *DCT2,R1          STORE COC # IN DCT2                         
*                                                                               
         AI,R3    1                 BUMP LINE #                                 
         AI,R1    1                 BUMP DCT #                                  
         B        DCTXLOOP          AND LOOP                                    
********                                                                        
DCTEXIT  RES      0                 DONE WITH DCT EXTENSIONS                    
         FIN      #LN                                                           
         TITLE    '** SYSGEN  - VERIFY SYMBIONT AREAS **'                       
         SPACE    2                                                             
       DO       #SYMB                                                           
*                                                                               
*        VERIFY SYMBIONT AREAS IF DEVICES ARE RESERVED FOR THEM                 
         LCI      0                 SAVE ALL REGISTERS                          
         STM,R0   JBMASAVE          'CAUSE SOME ARE NEEDED AND WHICH IS         
*                                   NOT DOCUMENTED ANYWHERE                     
         LI,R14   0                 SET NO AREAS ALLOCATED SWITCH               
         LI,R8    C'IS'                                                         
         BAL,R5   AREAINDX          FIND INDEX FOR AREA                         
         B        JBMA1               NOT DEFINED; SO NOT ALLOCATED             
         LB,R8    *MDFLAG,R1        GET MD FLAGS                                
         CI,R8    MDALLOC           IS AREA ALLOCATED                           
         BAZ      JBMA1               NOT ALLOCATED                             
*                                                                               
         AI,R14   X'F0'             SET 'IS' AREA ALLOCATED                     
*                                                                               
JBMA1    EQU      %         TEST SAME THINGS FOR THE 'OS' AREA                  
         LI,R8    C'OS'                                                         
         BAL,R5   AREAINDX                                                      
         B        JBMA2                                                         
         LB,R8    *MDFLAG,R1        GET MD FLAGS                                
         CI,R8    MDALLOC           IS AREA ALLOCATED                           
         BAZ      JBMA2                                                         
*                                                                               
         AI,R14   X'0F'             SET 'OS' AREA ALLOCATED                     
*                                                                               
JBMA2    EQU      %         SET UP LOOP TO LOOK FOR RESERVED DEVICES            
         LI,R13   0                 SET NO ERRORS FOUND                         
         LI,R0    0                 CLEAR A REG FOR RESETTING SWITCHES          
         LH,R1    *DCT1             GET NUMBER OF DEVICES TO SCAN               
         PAGE                                                                   
         SPACE    2                                                             
JBMA3    EQU      %         TEST EACH DEFINED DEVICE FOR SYMBIONT RESER         
         LB,R15   *DCTSYM1,R1       GET ITS STATUS BYTE                         
         CI,R15   X'08'             RESERVED FOR SYMBIONTS SET ? ?              
         BAZ      JBMA4               NO, SKIP IT                               
*                                                                               
         LB,R2    *DCT4,R1          USE DEVICE TYPE TO DETERMINE                
         CB,R14   JBMATABL,R2       IF SYMBIONTS CAN RESERVE IT                 
*                                   AND IF SO, IS THE AREA IT NEEDS             
*                                   IS ALLOCATED.                               
         BANZ     JBMA4             THEY CAN'T, OR IT ISN'T; SKIP IT            
*                                                                               
         STB,R0   *DCTSYM1,R1       RESET SYMBIONT RESERVED BITS                
         STB,R0   *DCTJID,R1        AND RESERVED FLAG                           
         AI,R13   1                 STEP ERROR COUNT                            
*                                                                               
JBMA4    EQU      %         STEP TO NEXT DEVICE; TEST IF DONE                   
         BDR,R1   JBMA3                                                         
*                                                                               
         CI,R13   0                 ANY ERRORS FOUND ?                          
         BE       JBMA9               NO, CONTINUE OK                           
         LI,R7    JBMAMSG             YES, OUT ALARM MESSAGE                    
         LI,R9    0                 SET NOTHING TO TYPE FIRST                   
         BAL,R8   TYPE                                                          
         B        JBMA9             AND THEN CONTINUE                           
         PAGE                                                                   
*                                                                               
*                                                                               
************************************                                            
*                                                                               
*   AREAINDX      COMPUTE INDEX OF AN AREA NAME                                 
*                                                                               
*                                                                               
*        INPUTS:  R5 :  LINK ADDRESS                                            
*                 R8 :  AREA NAME, RIGHT JUSTIFIED (THUS: C'  XX')              
*                                                                               
*                                                                               
*        OUTPUTS: R1 :  INDEX FOR THE AREA                                      
*                 R8 :  NAME LEFT JUSTIFIED (THUS: C'XX  ')                     
*                                                                               
*        EXITS:   R5  : NAME NOT FOUND; R1 ONE GREATER THAN NUM AREAS           
*                 R5+1: NAME FOUND; R1 HAS INDEX                                
*                                                                               
*        NOTE:    INDEX ZERO IS ALLOWED AND OK.  ZERO IS THE INDEX OF           
*                 THE FIRST AREA.                                               
*                                                                               
************************************                                            
AREAINDX EQU      %                                                             
         SLS,R8   16                LEFT JUSTIFY THE NAME                       
         LH,R8    R8                RIGHT JUSTIFY AND SIGN EXTEND               
         LI,R1    0                 SET INITIAL INDEX                           
*                                                                               
AREA1NDX EQU      %         LOOK UP THE NAME                                    
         CH,R8    *MDNAME,R1        IS THIS THE ONE                             
         BE       1,R5                YES, EXIT SUCCESSFULLY, INDEX SET         
         AI,R1    1                 NO, STEP TO NEXT                            
         CW,R1    K:NUMDA           ALL DONE                                    
         BLE      AREA1NDX            NO, TRY ANOTHER                           
         B        0,R5              YES, RETURN AT NOT FOUND EXIT               
         PAGE                                                                   
         SPACE    2                                                             
************************************                                            
*                                                                               
*        TABLE FOR TESTING IF CORRECT AREA ALLOCATED FOR THE TYPE               
*        OF DEVICE THAT WAS RESERVED.                                           
*                                                                               
*                   +----->  INPUT TYPE DEVICE, 'IS' AREA REQUIRED              
*                   |+---->  OUTPUT TYPE DEVICE, 'OS' AREA REQUIRED             
*                   ||                                                          
*                   VV     INDEX    TYPE OF DEVICE                              
JBMATABL DATA,1   X'00'    00       NO                                          
         DATA,1   X'00'    01       TY                                          
         DATA,1   X'00'    02       PR                                          
         DATA,1   X'00'    03       PP                                          
         DATA,1   X'F0'    04       CR                                          
         DATA,1   X'00'    05       CP                                          
         DATA,1   X'0F'    06       LP                                          
         DATA,1   X'00'    07       DC                                          
         DATA,1   X'00'    08       9T                                          
         DATA,1   X'00'    09       7T                                          
         DATA,1   X'00'    10       CP LOW COST                                 
         DATA,1   X'0F'    11       LP LOW COST                                 
         DATA,1   X'00'    12       DP                                          
         DATA,1   X'00'    13       PL                                          
         DATA,1   X'00'    14       DP                                          
         DATA,1   X'0F'    15       LP                                          
*                                                                               
         BOUND    4                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
JBMAMSG  DATA     0                                                             
         TEXTC    'NO SYMBIONT AREA(S) ALLOCATED. ',;                           
                  'RESERVED DEVICE(S) RELEASED.'                                
*                                                                               
         BOUND    4                                                             
*                                                                               
*                                                                               
JBMASAVE RES      16                SPACE TO SAVE REGISTERS                     
*                                                                               
JBMA9    EQU      %         END SYMBIONT AREA/RESERVED DEVICES CHECKS           
         LCI      0                 RELOAD ALL THE REGISTERS                    
         LM,R0    JBMASAVE          TO KEEP EVERYONE HAPPY                      
*                                                                               
*                                                                               
       FIN      #SYMB                                                           
         TITLE    '** SYSGEN  - ALLOCATE TEMP SPACE **'                         
*                 ALLOCATE TEMP SPACE                                           
*                                                                               
* THIS MUST BE ALLOCATED JUST BEFORE THE OVERLAY ALLOCATION **********          
*                                                                               
         LW,R15   TEMP#             NUMBER OF TEMP CELLS REQUESTED              
         BGZ      L37A              IF ZERO, CALCULATE DEFAULT                  
*                                                                               
         DO       #ECB                                                          
         LW,R15   #IOQ                                                          
         MI,R15   8                 8 WORDS/IOQ                                 
         FIN      #ECB                                                          
*                                                                               
         LW,R13   #JOBS                                                         
         AI,R13   -2                RBM                                         
         BLEZ     %+3                                                           
         MI,R13   32                32 WORDS/JOB                                
         AW,R15   R13               ADD TO TOTAL                                
*                                                                               
         DO       #ERRORLOG                                                     
         MTW,0    ERFLAG                                                        
         BEZ      %+2                                                           
         AI,R15   LOGSIZE+32        SPACE FOR 1 ERROR LOG                       
         FIN      #ERRORLOG                                                     
         DO       #CRASH                                                        
         MTW,0    CRFLAG            IS IT SYSGENED                              
         BEZ      %+2               NO                                          
         AI,R15   128               SPACE TO HANDLE CRASH                       
         FIN      #CRASH                                                        
*                                                                               
         LW,R13   #JPT              JPT SPACE                                   
         MI,R13   4                 4 WORDS/JPT                                 
         BAL,R1   L50               ROUND UP                                    
         MW,R13   #JOBS             TIMES NO OF JOBS                            
         AW,R15   R13               ADD TO TOTAL                                
*                                                                               
         DO       #ECB                                                          
         LW,R13   K:JAET            JAET SPACE                                  
         MI,R13   2                                                             
         BAL,R1   L50               ROUND UP                                    
         MW,R13   #JOBS             TIMES NO OF JOBS                            
         AW,R15   R13               ADD TO TOTAL                                
         FIN      #ECB                                                          
*                                                                               
         DO       #MAP                                                          
         LW,R13   #TASKS                                                        
         AI,R13   -3                                                            
         MI,R13   192               192 WORDS/TASK AVG.                         
         AW,R15   R13               ADD TO TOTAL                                
         FIN      #MAP                                                          
         DO       1-#MAP                                                        
         AI,R15   X'20'             BACKGROUND STCB                             
         AI,R15   X'20'             FOR KEY-INS AND HEADER READS                
         AI,R15   4                 ROOM FOR RBM JPT                            
         AI,R15   8                 ROOM FOR BKGD INIT                          
         FIN      #MAP                                                          
L37A     RES      0                                                             
         DO       1-#ONLINE                                                     
*                                                                               
         MTW,0    BOUNDFLG          IS BOUNDING REQUESTED                       
         BEZ      L37B              NO                                          
*                                   YES                                         
         LW,R14   L92               GET PRES POS                                
         AI,R14   X'F'                                                          
         AND,R14  FFFFFFF0          ROUND                                       
         STW,R14  L92                                                           
         FIN      1-#ONLINE                                                     
L37B     LW,R9    R15                                                           
         BAL,R5   L55               ASSIGN VALUE TO S:TEMPN                     
*                                                                               
         BAL,R5   L69               ALLOCATE SPACE                              
*                                                                               
         BAL,R5   L55               ASSIGN VALUE TO S:TEMP                      
*                                                                               
*                                                                               
*                                   ALLOCATE OVERLAY AREA                       
*                                   THIS MUST BE DONE LAST                      
         LW,R0    L92               GET NEXT ADDRESS TO USE                     
         AI,R0    1                                                             
         AND,R0   KM2               START ON DW BOUND.                          
         DO       1-#ONLINE                                                     
         DO       1-#MAP                                                        
         MTW,0    BOUNDFLG          BOUNDING NEEDED                             
         BEZ      L38               NO                                          
         FIN      1-#MAP                                                        
         AI,R0    511-((1-#MAP)*256) ADD ALMOST A PAGE                          
         LI,R1    0                 CLEAR R1                                    
         SLD,R0   -9+(1-#MAP)       R0 NOW NEXT PAGE #                          
         SLS,R0   9-(1-#MAP)        R0 NOW NEXT PAGE ADDR                       
         SCS,R1   9+2-(1-#MAP)      R1 NOW RESIDUE BYTES                        
         LCW,R1   R1                COMPLEMENT RESIDUE                          
         AI,R1    (512*4-1)-((1-#MAP)*256*4) ADD ALMOST A PAGE OF BYTES         
         AWM,R1   SYMT2-2,R7        ADD TO S:TEMPN VALUE ******                 
         FIN      1-#ONLINE                                                     
L38      STW,R0   OLAYFWA           SET FWA OF OLAY AREA                        
         SLS,R0   2                 CHANGE TO BYTE ADD.                         
         STW,R0   SYMT2,R7          SAVE IN SYMBOL TABLE                        
         SLS,R0   -2                GET FWA TO LOAD RESIDENT ROUTINES           
         AI,R0    OLAYSIZE+1                                                    
         AND,R0   KM2               FORCE ON DW BOUND.                          
         MTW,0     MPATCH                                                       
         BEZ      L40                                                           
         STW,R0    K:PTCH          SAVE STARTNG. ADDR. OF PATCH AREA            
         AW,R0     MPATCH                                                       
         AND,R0    KM2                                                          
         STW,R0    K:PTCHND        SAVE ENDING ADDR. OF PATCH AREA              
         MTW,-1   K:PTCHND                                                      
L40      STW,R0   EXLOC1            SAVE FOR LOADER                             
         STW,R0   EXLOC2                                                        
         STW,R0   LDLOC1                                                        
         STW,R0   LDLOC2                                                        
         STW,R0   INITEND                                                       
         STW,R0   LDEND             SET INITIAL LOAD ADR                        
         B        M01                                                           
         TITLE    '** SYSGEN  - ALLOCATION SUBROUTINES **'                      
*                                                                               
* ROUND UP A NUMBER TO NEXT POWER OF 2                                          
*                                                                               
* R1     LINK                                                                   
* R13    NUMBER TO ROUND UP                                                     
* R5     USED IN COMPUTATION                                                    
*                                                                               
L50      RES      0                                                             
         CI,R13   0                 ZERO                                        
         BE       *R1               YES                                         
         AI,R13   -1                BACK UP ONE IN CASE ALREADY 2**N            
         LI,R5    -1                COUNTER INITIAL                             
L52      RES      0                                                             
         AI,R5    1                 BUMP COUNTER                                
         SLS,R13  -1                RIGHT SHIFT                                 
         CI,R13   0                 IS IT ZERO YET                              
         BNEZ     L52               NO, LOOP                                    
*                                   YES                                         
         LI,R13   1                 BIT 31                                      
         SLS,R13  0,R5              SHIFT LEFT ENOUGH                           
*                                                                               
         B        0,R1              RETURN ON LINK                              
         PAGE                                                                   
*                                                                               
* ALLOCATE A VALUE TO A SYMBOL                                                  
*                                                                               
* R5     LINK                                                                   
* R9     VALUE TO ASSIGN                                                        
*                                                                               
L55      RES      0                                                             
         SLS,R9   2                 MAKE BYTE VALUE                             
         STW,R9   SYMT2,R7          SAVE VALUE                                  
         AI,R7    1                                                             
         SLS,R9   -2                RESTORE R9                                  
         B        *R5                                                           
         PAGE                                                                   
*                                                                               
* THIS SUBROUTINE ALLOCATES TABLES BASED ON A CONTROL TABLE                     
*                                                                               
* R5     LINK                                                                   
* R6     CONTROL TABLE POINTER                                                  
*        WORD 0   CONTROL TABLE SIZE                                            
*        WORD N   BYTE 0            TYPE/REGISTER                               
*                 BYTE 1-3          ADDR OF CELL WITH ENTRY COUNT               
* R10    SET TO 0 FOR SYMT ALLOCATION                                           
* R0     CLOBBERED                                                              
* R1     CLOBBERED                                                              
* R2     CLOBBERED                                                              
* R3     CLOBBERED                                                              
* R4     CLOBBERED                                                              
* R7     CURRENT SYMT INDEX (UPDATED)                                           
* R8     CLOBBERED                                                              
*                                                                               
L60      RES      0                                                             
         LI,R10   0                 FLAG TO CAUSE SYMBOL ALLOCATION             
         LI,R1    1                 FIRST INDEX                                 
         LW,R2    *R6               CONTROL TABLE COUNTER                       
*                                                                               
L65      RES      0                                                             
         LW,R4    *R6,R1            CONTROL WORD                                
         BEZ      L68               DONT ALLOCATE IF ZEROED                     
         LW,R3    *R4               ENTRY COUNT                                 
         BEZ      L68A              IF ZERO, USE LAST SYMBOL ADDR               
         LB,R4    R4                TYPE/REGISTER                               
*                                                                               
         B        %-11,R4           ROUND UP WHERE NECESSARY                    
         AI,R3    2                 BYTE                                        
         AI,R3    2                 HW                                          
         NOP      0                 WORD                                        
*                                   DW                                          
         B        %-11,R4           SHIFT TO GET WORD COUNT                     
         SCS,R3   -1                BYTE                                        
         SCS,R3   -1                HW                                          
         SCS,R3   -1                WORD                                        
         SCS,R3   +1                DW                                          
*                                                                               
         AND,R3   HWMASK            MASK OFF SPARE BITS                         
         STW,R3   *R4               AND PUT IN PROPER REGISTER                  
         LW,R9    R4                R9 = REGISTER PTR                           
         BAL,R8   L70               ALLOCATE SPACE                              
*                                                                               
         LW,R8    L93               GET TABLE START                             
         STW,R8   *R6,R1            AND SAVE OVER CONTROL WORD                  
*                                                                               
L66      AI,R1    1                                                             
         BDR,R2   L65               LOOP TIL DONE                               
         B        0,R5              RETURN ON LINK                              
*                                                                               
L68      RES      0                                                             
         LI,R0    0                                                             
         STW,R0   SYMT2,R7          ZERO SYMBOL VALUE                           
         AI,R7    1                 AND BUMP SYMBOL INDEX                       
         B        L66               RETURN TO LOOP                              
*                                                                               
L68A     RES      0                 USE LAST SYMBOL                             
         LW,R0    L93               GET LAST ADDR                               
         STW,R0   *R6,R1                                                        
         SLS,R0   2                 MAKE A BYTE ADDR                            
         STW,R0   SYMT2,R7          STORE IN SYMBOL TABLE                       
         AI,R7    1                 BUMP SYMBOL PTR                             
         B        L66               AND CONTINUE                                
         PAGE                                                                   
*                                                                               
* SUBROUTINE TO GET SPACE ALLOCATED ON A DW BOUNDRY WITHOUT                     
* SYMBOL ALLOCATION                                                             
*                                                                               
* R15    NO OF WORDS TO GET                                                     
* R5     LINK                                                                   
* R9     RETURNS WITH LOCATION OF SPACE                                         
* R10    UNCHANGED                                                              
* R0     CLOBBERED                                                              
* R4     CLOBBERED                                                              
* R7     CURRENT SYMT INDEX                                                     
*                                                                               
L69      RES      0                                                             
         LW,R4    R10               SAVE R10 FLAG                               
         LI,R10   1                 FLAG FOR NO SYMBOL ALLOCATION               
*                                                                               
         LI,R9    R15               FLAG FOR L70                                
         BAL,R8   L70               ALLOCATE SPACE                              
*                                                                               
         LW,R9    L93               GET LOCATION                                
         AI,R9    2                 ADJUST FOR DUMMY                            
*                                                                               
         LW,R10   R4                RESTORE R10                                 
         B        0,R5              AND RETURN                                  
         PAGE                                                                   
*                                                                               
* L70 - TABLE SPACE ALLOCATOR                                                   
*                                                                               
* CALL IS BAL,R8 L70                                                            
*                                                                               
* R7     CURRENT SYMT INDEX (UPDATED)                                           
* R9     =R12 FOR BYTE ALLOCATION                                               
*        =R13 FOR HW ALLOCATION                                                 
*        =R14 FOR WORD ALLOCATION                                               
*        =R15 FOR DW ALLOCATION                                                 
* R12-R15 CONTAIN THE NUMBER OF WORDS TO ALLOCATE                               
* R10    =0 IF SYMT TO BE ALLOCATED                                             
*        =1 IF SYMT NOT TO BE CHANGED                                           
* R0     CLOBBERED                                                              
*                                                                               
* L93    CONTAINS THE ADDRESS OF THE ALLOCATED TABLE ON EXIT                    
*                                                                               
L70      STW,R8   L79               SAVE RETURN                                 
         LW,R0    *R9               GET NO. CELLS NEEDED                        
         CW,R0    L91               ROOM IN UNUSED INT. CELLS                   
         BGE      L71               NO, LEAVE 1 SPARE CELL IN CASE DA           
         LW,R8    L90               YES                                         
         STW,R8   L93               SAVE ADD. FOR EXIT                          
         AWM,R0   L90               SET TO NEXT FWA                             
         LCW,R0   R0                                                            
         AWM,R0   L91               DECREASE COUNT OF CELLS LEFT                
         CI,R9    R15               IS IT A DA                                  
         BNE      L72               NO                                          
         LW,R0    K1                MAKE SURE ADD. ON DW BOUND.                 
         AND,R0   L93                                                           
         BEZ      L72               OK                                          
         MTW,1    L90               NOT OK, STEP TO DOUBLEWORD                  
         MTW,1    L93                                                           
         MTW,-1   L91               REDUCE                                      
         B        L72                                                           
L71      LW,R8    L92               ALLOCATE IN HIGHER CORE                     
         STW,R8   L93                                                           
         AWM,R0   L92                                                           
         LW,R0    L92               GET TAIL ADDR                               
         CI,R0    LASTHI            IS SYSGEN BEING CLOBBERED                   
         BL       L71A              NO                                          
*                                   YES, THROW UP                               
         LI,R7    MSG96             TABLE ALLOCATION EXCEEDS SYSGEN LIMIT       
         B        THROWUP                                                       
********                                                                        
L71A     RES      0                                                             
*                                   NO, OK                                      
         CI,R9    R15               IS IT A DA                                  
         BNE      L72               NO                                          
         LW,R0    K1                YES, START ON DW BOUNDARY                   
         AND,R0   L93                                                           
         BEZ      L72               OK, NOW                                     
         MTW,1    L92               NOT OK, STEP TO DA                          
         MTW,1    L93                                                           
L72      CI,R9    R14               GET TYPE OF ADD.                            
         BL       %+4               BYTE OR HW                                  
         BE       %+2               WORD                                        
         MTW,-1   L93               DW, KNOCK DOWN BY 2                         
         MTW,-1   L93                                                           
         CI,R10   0                 SHOULD WE UPDATE SYMT2                      
         BNE      L78               NO                                          
         LW,R0    L93               YES, DO IT                                  
         SLS,R0   2                 CHANGE TO BA                                
         STW,R0   SYMT2,R7                                                      
         AI,R7    1                                                             
L78      B        *%+1              EXIT                                        
L79      DATA     0                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
*                                   CONSTANTS AND FLAGS                         
L86      DATA     X'80000000'       CONSTANTS FOR CP COMMAND LIST               
L87      DATA     X'08000001'                                                   
L88      DATA     X'09000020'                                                   
L89      DATA     X'2E000078'                                                   
*                                   END OF CONSTANTS FOR CP COMM. LIST          
L90      DATA     0                 NEXT ADD. TO USE IN INT. CELLS              
L91      DATA     0                 NO. CELLS LEFT IN INT. AREA                 
L92      DATA     0                 NEXT ADD. TO USE IN HIGH CORE               
L93      DATA     0                 EXIT ADD. FROM L70                          
L94      DATA,8   0                 TABLE OF MULTI-UNIT CONTROLLERS             
L99      DATA     X'155A5A00'       NEW LINE, EXCLAM, EXCLAM                    
MDL3243  TEXT     '3243'                                                        
         DO       #LN                                                           
TEXT7611 TEXT     '7611'                                                        
         BOUND    8                                                             
TEXTLNXX DATA     X'155A5AD3',X'D5000000' NL,BANG,BANG,L,N,X,X,X                
         FIN      #LN                                                           
*                                                                               
SYSLDFWA RES      0                 START OF SYSLOAD TO BE PUNCHED OUT          
         TITLE    '** SYSGEN  - ALLOCATION TABLES  **'                          
*                                                                               
* ALLOCATION TABLES                                                             
*                                                                               
STVMVAL  DATA     #STVM             START OF TASK VIRTUAL MEMORY                
LCIT3    DATA     0                                                             
PPTPTR   RES      1                                                             
#UTIME   DATA     500                                                           
#JPT     DATA     0+2*#TJE                                                      
TEMP#    DATA     0                                                             
#TASKS   DATA     3+2*#MAP                                                      
#LDMD    DATA     2+1*#MAP                                                      
#JOBS    DATA     2                                                             
#CT      DATA     0                                                             
#OPLBL   DATA     0                                                             
XBBFLAG  DATA     #MAP                                                          
ERFLAG   DATA     0                                                             
CRFLAG   DATA     0                                                             
DBFLAG   DATA     0                                                             
XPRIV    DATA     0                 FIRST PRIVATE AREA PART NO                  
XPOOL    DATA     0                 FPOOL AREA PART NO                          
XFMBOX   DATA     0                 FMBOX PART NO                               
XSTM     DATA     2                 STM AREA PARTION NO                         
BBNUM    DATA     0                 NUMBER OF BLOCKING BUFFERS                  
FLGMBOX  DATA     0                                                             
FLGPOOL  DATA     0                                                             
FWAPRSDF DATA     0                 FWA POOL WHEN IN RSDF                       
*                                                                               
*        LMI                                                                    
*                                                                               
T1       DATA     T1END-T1-1                                                    
LMI1     DWORD    #LDMD                                                         
LMINAME  DWORD    K0                                                            
LMI2     WORD     #LDMD                                                         
LMIPCB   WORD     K0                                                            
LMIFWA   WORD     K0                                                            
LMI3     WORD     #LDMD                                                         
LMIJID   WORD     K0                                                            
LMILWA   WORD     K0                                                            
LMI4     WORD     #LDMD                                                         
LMIPL    WORD     K0                                                            
LMICTXT  WORD     K0                                                            
LMI5     HW       #LDMD                                                         
LMISTAT  HW       K0                                                            
LMI6     WORD     #LDMD                                                         
LMISDT   WORD     K0                                                            
LMIRTS   DWORD    #LDMD                                                         
LMI8     BYTE     #LDMD                                                         
LMIMAXS  BYTE     K0                                                            
LMI9     BYTE     #LDMD                                                         
LMIMAXR  BYTE     K0                                                            
LMIUSERS BYTE     K0                                                            
LMI#     BYTE     K0                                                            
         DO       #ECB                                                          
LMISECB  WORD     #LDMD                                                         
LMIRECB  WORD     #LDMD                                                         
LMIAET   WORD     #LDMD                                                         
         FIN      #ECB                                                          
         DO       #MAP                                                          
LMIRFT   WORD     #LDMD                                                         
         FIN      #MAP                                                          
*                                                                               
* STI                                                                           
*                                                                               
STISPCE  WORD     #TASKS                                                        
STIXRTS  WORD     #TASKS                                                        
STIRTSB  DWORD    #TASKS                                                        
STIJID   BYTE     #TASKS                                                        
STILMID  BYTE     #TASKS                                                        
STIPRIO  WORD     #TASKS                                                        
STITCB   WORD     #TASKS                                                        
STIOVID  HW       #TASKS                                                        
STICOUNT BYTE     #TASKS                                                        
         DO1      #ECB                                                          
STITIME  WORD     #TASKS                                                        
         DO       #MULTDSP                                                      
STIDNXT  BYTE     #TASKS                                                        
STIRNXT  BYTE     #TASKS                                                        
         FIN      #MULTDSP                                                      
STISTAT  BYTE     #TASKS                                                        
STITICK  HW       #TASKS                                                        
         DO       #TSLICE                                                       
STIQMIN  BYTE     #TASKS                                                        
STIQMAX  BYTE     #TASKS                                                        
         FIN      #TSLICE                                                       
*                                                                               
RDLIPRIO BYTE     #CT                                                           
         DO1      #MULTDSP                                                      
RDLISTI  BYTE     #CT                                                           
RDLITCB  WORD     #CT                                                           
RDLIADD  HW       #CT                                                           
RDLILVL1 HW       #CT                                                           
RDLIGRP1 HW       #CT                                                           
RDLILVL2 HW       #CT                                                           
RDLIGRP2 HW       #CT                                                           
*                                                                               
SJI1     WORD     #JOBS                                                         
SJI2     DWORD    #JOBS                                                         
SJI3     BYTE     #JOBS                                                         
SJI4     HW       #JOBS                                                         
JCPSETP  WORD     K1                                                            
JCPCATW  WORD     K1                                                            
*                                                                               
OPLB1    HW       #OPLBL                                                        
OPLB2    BYTE     #OPLBL                                                        
OPLB3    BYTE     #OPLBL                                                        
*                                                                               
S:SD     BYTE     K1                                                            
S:EDT    BYTE     K1                                                            
*                                                                               
ALARMREC BYTE     K1                ALARM RECIEVER LOCATION                     
*                                                                               
T1END    RES      0                                                             
*                                                                               
         PAGE                                                                   
*                                                                               
* I/O QUEUE TABLES                                                              
*                                                                               
#IOQ     DATA     0                                                             
IOQTAB   DATA     IOQEND-IOQTAB-1                                               
IOQ1     BYTE     #IOQ                                                          
IOQ2     BYTE     #IOQ                                                          
IOQ3     BYTE     #IOQ                                                          
IOQ4     BYTE     #IOQ                                                          
IOQ5     BYTE     #IOQ                                                          
IOQ7     BYTE     #IOQ                                                          
IOQ8     WORD     #IOQ                                                          
IOQ9     HW       #IOQ                                                          
IOQ10    BYTE     #IOQ                                                          
IOQ11    BYTE     #IOQ                                                          
IOQ12    WORD     #IOQ                                                          
IOQ13    DWORD    #IOQ                                                          
IOQ14    BYTE     #IOQ                                                          
IOQECB   WORD     #IOQ                                                          
         DO1      #ERRORLOG                                                     
IOQERROR WORD     #IOQ                                                          
IOQEND   RES      0                                                             
*                                                                               
* RAD FILE TABLES                                                               
*                                                                               
#RFT     DATA     0                                                             
RFTTAB   DATA     RFTEND-RFTTAB-1                                               
RFT1     DWORD    #RFT                                                          
RFT2     WORD     #RFT                                                          
RFT3     WORD     #RFT                                                          
RFT4     HW       #RFT                                                          
RFT5     HW       #RFT                                                          
RFT6     WORD     #RFT                                                          
RFT6A    WORD     #RFT                                                          
RFT7     BYTE     #RFT                                                          
RFT8     BYTE     #RFT                                                          
RFT9     BYTE     #RFT                                                          
RFT10    HW       #RFT                                                          
RFT11    WORD     #RFT                                                          
RFT12    WORD     #RFT                                                          
RFT13    BYTE     #RFT                                                          
RFT14    BYTE     #RFT                                                          
RFT15    BYTE     #RFT                                                          
RFT16    BYTE     #RFT                                                          
RFT17    WORD     #RFT                                                          
RFTESZ   WORD     #RFT                                                          
RFTE#    HW       #RFT                                                          
RFTACNT  DWORD    #RFT                                                          
RFTEND   RES      0                                                             
*                                                                               
         PAGE                                                                   
*                                                                               
* DEVICE CONTROL TABLES                                                         
*                                                                               
#DCT     DATA     0                                                             
#DCTX    DATA     0                                                             
#DISCS   DATA     0                                                             
         DO1      #550                                                          
#CONFIG  DATA     0                                                             
DCTTAB   DATA     DCTEND-DCTTAB-1                                               
DCT1     HW       #DCT                                                          
DCT1P    HW       #DCT                                                          
DCT1A    HW       #DCT                                                          
DCT2     BYTE     #DCTX                                                         
DCT3     BYTE     #DCTX                                                         
DCT4     BYTE     #DCTX                                                         
DCTDISCI BYTE     #DCT                                                          
         DO1      #RB                                                           
DCTRB    BYTE     #DCT                                                          
DCT5     BYTE     #DCTX                                                         
DCT6     BYTE     #DCTX                                                         
DCT7     HW       #DCT                                                          
DCT8     WORD     #DCT                                                          
DCT9     WORD     #DCT                                                          
DCT10    HW       #DCT                                                          
DCT11    WORD     #DCT                                                          
DCT12    WORD     #DCT                                                          
DCT13    DWORD    #DCT                                                          
DCT14    BYTE     #DCTX                                                         
DCT15    BYTE     #DCT                                                          
DCT16    DWORD    #DCTX                                                         
DCT17    HW       #DCT                                                          
DCT18    BYTE     #DCTX                                                         
DCT19    BYTE     #DCT                                                          
DCT20    BYTE     #DCT                                                          
DCT20A   BYTE     #DCT                                                          
DCT21    HW       #DCT                                                          
DCTDEBUG BYTE     #DCT                                                          
DCTRBM   BYTE     #DCT                                                          
DCTDCB   BYTE     #DCTX                                                         
DCTJID   BYTE     #DCTX                                                         
DCTMOD   WORD     #DCTX                                                         
         DO1      #PS                                                           
DCTSHARE BYTE     #DCT OR #DCTX                                                 
         DO       #ERRORLOG                                                     
DCTMODX  HW       #DCT                                                          
DCT#IO   WORD     #DCT                                                          
DCT#ERR  WORD     #DCT                                                          
         FIN      #ERRORLOG                                                     
         DO1      #SIDEBUF                                                      
DCTSDBUF WORD     #DCT                                                          
         DO1      #TJE                                                          
DCTTJE   BYTE     #DCTX                                                         
         DO1      #SYMB                                                         
DCTSYM1  BYTE     #DCT                                                          
         DO1      #SYMB                                                         
DCTSYM2  WORD     #DCT                                                          
         DO1      #SYMB                                                         
DCTSYM3  BYTE     #DCT                                                          
         DO1      #DP3243                                                       
DCTCD    BYTE     #DCT                                                          
DISCNSPT BYTE     #DISCS                                                        
DISCNWPS HW       #DISCS                                                        
DISCMAXS WORD     #DISCS                                                        
DISCMINS WORD     #DISCS                                                        
DISCSSFT BYTE     #DISCS                                                        
DISCTSFT BYTE     #DISCS                                                        
DISCCSFT BYTE     #DISCS                                                        
DISCNTPC HW       #DISCS                                                        
DISCNCYL HW       #DISCS                                                        
         DO1      #ERRORLOG                                                     
LOGFLAG  BYTE     K1                RESERVE A WORD FOR FLAG                     
SITE     BYTE     X55                                                           
         DO       #550                                                          
CNFGADDR BYTE     #CONFIG                                                       
CNFGTYPE BYTE     #CONFIG                                                       
CNFGSTAT WORD     #CONFIG                                                       
         FIN      #550                                                          
DCTEND   RES      0                                                             
*                                                                               
         PAGE                                                                   
*                                                                               
* OVERLAY AND TRACE TABLES                                                      
#OVIS    DATA     #OVERS                                                        
         DO       #MAP                                                          
#EPIS    DATA     600                                                           
         ELSE     #MAP                                                          
#EPIS    DATA     280                                                           
         FIN      #MAP                                                          
OLAY1    DATA     OLAYEND-OLAY1-1                                               
OVILG    HW       #OVIS                                                         
OVINM    WORD     #OVIS                                                         
OVISK    WORD     #OVIS                                                         
OVIGR    BYTE     #OVIS                                                         
         DO       #MAP                                                          
OVIMA    HW       #OVIS                                                         
OVIECB   WORD     #OVIS                                                         
OVICT    BYTE     #OVIS                                                         
OVIUSAGE WORD     #OVIS                                                         
         FIN      #MAP                                                          
EPIEP    WORD     #EPIS                                                         
EPIB     BYTE     K1                                                            
         DO       #PATCH                                                        
S:TRACE  BYTE     K1                                                            
S:TRACEN BYTE     K1                                                            
S:TRACES BYTE     K1                                                            
S:TRACET BYTE     K1                                                            
S:TRACEP BYTE     K1                                                            
         FIN      #PATCH                                                        
OLAYEND  RES      0                                                             
         PAGE                                                                   
*                                                                               
* COC TABLE ALLOCATION TABLE                                                    
*                                                                               
         DO       #LN                                                           
COCTAB   DATA     COCEND-COCTAB-1                                               
COH:DN   HW       #COC                                                          
CO:AIIL  BYTE     K1                WORD                                        
CO:AOIL  BYTE     K1                WORD                                        
CO:IIL   BYTE     K1                WORD                                        
CO:OIL   BYTE     K1                WORD                                        
CO:STAT  BYTE     #COCX4            WORD TABLE                                  
CO:OUTRS BYTE     #COCX4            WORD TABLE                                  
CO:RCVON BYTE     #COCX4            WORD TABLE                                  
CO:XDATA BYTE     #COCX4            WORD TABLE                                  
CO:TRNDO BYTE     #COCX4            WORD TABLE                                  
CO:RCVDO BYTE     #COCX4            WORD TABLE                                  
CO:XSTOP BYTE     #COCX4            WORD TABLE                                  
CO:LST   BYTE     #COCX4            WORD TABLE                                  
CO:RINGE BYTE     #COCX4            WORD TABLE                                  
COH:RBS  HW       #COC                                                          
CO:OUT   BYTE     #COCX4            WORD TABLE                                  
COH:II   HW       #COC                                                          
COH:IO   HW       #COC                                                          
COCHPB   BYTE     K1                WORD                                        
COCOC    BYTE     #LINES                                                        
LB:UN    BYTE     #LINES                                                        
ARSZ     BYTE     #LINES                                                        
BUFCNT   BYTE     #LINES                                                        
MODE     BYTE     #LINES                                                        
MODE2    BYTE     #LINES                                                        
MODE3    BYTE     #LINES                                                        
MODE4    BYTE     #LINES                                                        
MODECPR  BYTE     #LINES                                                        
COCTERM  BYTE     #LINES                                                        
RSZ      BYTE     #LINES                                                        
CPI      BYTE     #LINES                                                        
CPOS     BYTE     #LINES                                                        
COCII    HW       #LINES                                                        
COCIR    HW       #LINES                                                        
COCOI    HW       #LINES                                                        
COCOR    HW       #LINES                                                        
TL       HW       #LINES                                                        
EOMTIME  HW       #LINES                                                        
COCEND   RES      0                                                             
#COC     DATA     0                                                             
TRUE#COC DATA     0                                                             
#COCX4   DATA     0                                                             
#BUFF    DATA     0                                                             
#LINES   DATA     0                                                             
TRUE#LIN DATA     0                                                             
COCWD1   WD,10    X'3000'                                                       
COCRD1   RD,7     X'3000'                                                       
COCWD2   WD,7     X'3001'                                                       
COCWD3   WD,6     X'3005'                                                       
COCWD4   WD,7     X'3003'                                                       
COCWD5   WD,7     X'3007'                                                       
COCWD6   WD,7     X'300E'                                                       
COD:LPC  DATA     0                                                             
COD:HWL  DATA     0                                                             
         FIN      #LN                                                           
         PAGE                                                                   
*                                                                               
* MASTER DICTIONARY ENTRIES                                                     
*                                                                               
#AREAS   DATA     0                                                             
#AREASX4 DATA     0                                                             
*                                                                               
MDTAB    DATA     MDEND-MDTAB-1     NUMBER OF MD ALLOCATIONS                    
*                                                                               
MDDCTI   BYTE     #AREAS                                                        
MDDISCI  BYTE     #AREAS                                                        
MDBOA    BYTE     #AREASX4          WORD TABLE                                  
MDEOA    BYTE     #AREASX4          WORD TABLE                                  
MDFLAG   BYTE     #AREAS                                                        
MDNAME   HW       #AREAS                                                        
MDLOCK   HW       #AREAS                                                        
MDEND    RES      0                                                             
         DO1      #PRIV                                                         
MDVSN    RES      1                                                             
*                                                                               
*                                                                               
#STACC   DATA     18*4-1            DW + 16 AC WORDS (ADJ FOR BYTE0 USE)        
STACCTAB DATA     3                                                             
STACC    BYTE     #STACC            WORD TABLE - WITH WORD 0                    
STVM     BYTE     K1                DW BOUNDARY FOR COMPARE INST                
ETVM     BYTE     K1                                                            
*                                                                               
*                                                                               
* IOLOCK                                                                        
*                                                                               
         DO       #MAP                                                          
#IOLOCK  DATA     0                                                             
IOLTAB   DATA     1                                                             
IOLOCK   BYTE     #IOLOCK                                                       
         FIN      #MAP                                                          
*                                                                               
*                                                                               
*        WLOCK                                                                  
*                                                                               
WLOCK    DATA     0                 ADDRESS OF WL TABLE                         
         TITLE    '** SYSGEN  - OUTPUT FWA MESS AND MAP **'                     
*                                                                               
*                                                                               
*                                                                               
*                                                                               
*                                                                               
M01      BAL,R0   SETFWA            GO CHANGE TO FWA'S IF NOT ALREADY           
*                                     DONE                                      
         LW,R0    WRITEMAP+2        WAS A MAP REQUESTED                         
         BEZ      N01               NO                                          
         BAL,R8   MAP               YES, OUTPUT MAP                             
         LI,R0    0                                                             
         STW,R0   WRITEMAP+2                                                    
         B        N01                                                           
         TITLE    '** SYSGEN  - PUNCH REBOOTABLE RBM **'                        
*                                                                               
*                                                                               
*                                                                               
*                                                                               
N01      LW,R0    WRITEBO+2         WAS REBOOTABLE RBM REQUESTED                
         BEZ      N15               NO                                          
         LI,R0    BA(N80)           YES                                         
         STW,R0   WRITEBO           STORE FBA OF OUTPUT BUFFER                  
         LI,R1    BOOT9-BOOT1       GET NO. WORDS IN ONE CARD BOOT              
         LW,R0    BOOT1A-1,R1                                                   
         STW,R0   N80-1,R1          MOVE TO OUTPUT BUFFER                       
         BDR,R1   %-2                                                           
         LI,R7    WRITEBO                                                       
         BAL,R8   WRITE             PUNCH OUT ONE CARD BOOT                     
         LI,R0    X'FF'                                                         
         SCS,R0   -8                                                            
         STW,R0   N80               SET UP FIRST 3 WORDS OF 2 CARD BOOT         
         LI,R0    0                                                             
         STW,R0   N80+1                                                         
         LI,R0    X'1FFF'                                                       
         STW,R0   N80+2                                                         
         LI,R4    BOOT20A                                                       
         LI,R1    0                 SET TO MOVE WORDS FOR CARD ONE              
         LI,R3    2                 SET FOR 2 CARDS                             
N04      LW,R0    *R4                                                           
         STW,R0   N80+3,R1          MOVE CARD ONE TO PUNCH BUFFER               
         AI,R4    1                                                             
         AI,R1    1                                                             
         CI,R1    27                                                            
         BL       N04               NOT DONE                                    
N05      LI,R1    30                DONE                                        
         LI,R0    0                                                             
         AW,R0    N80-1,R1          CKSM CARD                                   
         BDR,R1   %-1                                                           
         LCW,R0   R0                                                            
         STW,R0   N80+1             STORE COMPLEMENT CKSM                       
         BAL,R8   WRITE             PUNCH 2 CARD BOOT                           
         BDR,R3   %+2                                                           
         B        N10                                                           
         LI,R0    0                                                             
         LI,R1    27                                                            
         AWM,R1   N80+2                                                         
         STW,R0   N80+2,R1                                                      
         BDR,R1   %-1               CLEAR PUNCH BUFFER TO ZERO                  
         STW,R0   N80+1                                                         
         LI,R0    X'9F'                                                         
         SCS,R0   -8                                                            
         STW,R0   N80               SET UP FOR CARD 2                           
N07      LW,R0    *R4                                                           
         STW,R0   N80+3,R1          MOVE CARD 2 TO PUNCH BUFFER                 
         AI,R4    1                                                             
         AI,R1    1                                                             
         CI,R4    BOOT29A                                                       
         BL       N07               NOT DONE                                    
         B        N05               DONE, LOOP BACK FOR CKSM AND PUNCH          
         PAGE                                                                   
*                                                                               
*                                   SET UP TO PUNCH TABLE AREA OF CORE          
*                                     AND SYSLOAD                               
*                                                                               
*                                                                               
N10      LI,R0    X'FF'                                                         
         SCS,R0   -8                                                            
         STW,R0   N80               SET UP WORD ONE OF OUTPUT BUFFER            
         LW,R0    HIINT                                                         
         AI,R0    1                                                             
         STW,R0   N91               SET FWA TO DUMP                             
         LW,R0    L92               GET LWA+1 USED                              
         STW,R0   N92               SET LWA+1 TO DUMP                           
         BAL,R8   N50               GO PUNCH OUT TABLES                         
         LI,R0    SYSLDFWA                                                      
         STW,R0   N91                                                           
         LI,R0    SYSLDLWA                                                      
         STW,R0   N92                                                           
         BAL,R8   N50               GO PUNCH OUT SYSLOAD                        
         LI,R0    X'9F'                                                         
         STB,R0   N80               SET 9F FOR LAST CARD FLAG                   
         LI,R0    SYSLOAD           GET FWA OF SYSLOAD                          
         AI,R0    1                 ADD 1 BECAUSE DECREASED IN N50              
         STW,R0   N91               KLUDGE UP FWA,LWA FOR TRANSFER CARD         
         STW,R0   N92                                                           
         BAL,R8   N50               GO PUNCH TRANSFER CARD                      
         LH,R0    WRITEBO+2                                                     
         CI,R0    DT:CP             IS THE HIGH SPEED CARD PUNCH                
         BNE      N15               NO                                          
*                                   YES, PUNCH AN EXTRA BLANK CARD              
         LI,R1    30                NO, OUTPUT BLANK CARD                       
         LI,R0    0                                                             
         STW,R0   N80-1,R1          ZERO OUT IMAGE                              
         BDR,R1   %-1                                                           
         LI,R7    WRITEBO                                                       
         BAL,R8   WRITE             GO OUTPUT EXTRA CARD                        
N15      LI,R0    0                                                             
         STW,R0   WRITEBO+2         HOUSEKEEP                                   
         MTW,1    SYSLDFLG          SET FLAG: NOW IN SYSLOAD                    
         LW,R0    SYSLD             WAS :SYSLD CARD READ                        
         BEZ      SYSLOAD           NO, ENTER AFTER START                       
         B        P02               YES, ENTER AFTER START                      
         PAGE                                                                   
*                                                                               
*                                   SBR TO PUNCH OUT CORE ONTO CARDS            
*                                   N91= FWA TO PUNCH FROM                      
*                                   N92= LWA+1 TO PUNCH TO                      
*                                                                               
N50      STW,R8   N59               SAVE RETURN                                 
N51      LW,R0    *N91                                                          
         BNEZ     N53                                                           
         MTW,1    N91               SUPPRESS LEADING ZEROES ON CARD             
         LW,R0    N91                                                           
         CW,R0    N92                                                           
         BL       N51               NOT DONE                                    
         B        *N59              DONE WITH THIS AREA OF CORE                 
N53      MTW,-1   N91               GET LOAD ADD. MINUS ONE                     
         LW,R0    N91                                                           
         SLS,R0   16                                                            
         STW,R0   N80+1             SAVE FOR CARD                               
         LI,R1    28                ALWAYS MOVE 28 WORDS TO CARD IMAGE          
N54      LW,R0    *N91,R1                                                       
         STW,R0   N80+1,R1          MOVE WORDS TO CARD IMAGE                    
         BDR,R1   N54                                                           
         LI,R0    29                                                            
         AWM,R0   N91               UPDATE FWA TO NEXT CELL TO PUNCH            
         LW,R1    N92                                                           
         SW,R1    N91               HAVE WE GONE PAST LWA+1                     
         BGEZ     N56               NO                                          
         LI,R0    0                                                             
         STW,R0   N80+30,R1         ZERO OUT EXTRA WORDS                        
         BIR,R1   %-1                                                           
N56      LI,R1    59                                                            
         LI,R2    0                                                             
         AH,R2    N80,R1            COMPUTE CKSM                                
         BDR,R1   %-1                                                           
         AND,R2   KXFFFF            MASK OFF HALF WORD                          
         LCW,R2   R2                TAKE TWO'S COMPLEMENT OF CKSM               
         LI,R1    1                                                             
         STH,R2   N80+1,R1          STORE CKSM                                  
         LI,R7    WRITEBO                                                       
         BAL,R8   WRITE             GO PUNCH CARD                               
         MTW,1    N80               STEP SEQ. NO.                               
         LW,R0    N91                                                           
         CW,R0    N92               MORE TO DO                                  
         BL       N51               YES                                         
         B        *N59              NO, EXIT                                    
N59      DATA     0                                                             
N80      ZERO,1   120               PUNCH BUFFER                                
         DATA     0,0                                                           
N91      DATA     0                 FWA TO DUMP                                 
N92      DATA     0                 LWA+1 TO DUMP                               
         TITLE    '** SYSGEN  - ONE CARD BOOTSTRAP **'                          
*                                                                               
*                                                                               
*                                   READS IN TWO CARD BOOTSTRAP                 
*                                   FORMAT OF TWO CARDS IS:                     
*                                     WORD 1,BYTE 1=FF,CARD 1                   
*                                                  =9F,CARD 2                   
*                                           BYTES 2,3,4=0                       
*                                     WORD 2= COMPLEMENT CKSM                   
*                                     WORD 3= LOAD ADDRESS-1                    
*                                   TRANSFERS CONTROL TO X'3000'                
*                                                                               
         LOC      X'2A'             EXECUTES AT X'2A'                           
BOOT1A   EQU      %%                SET EQUAL TO LOAD ADDRESS                   
BOOT1    LAW,R0   0                 SET 1,2 PUNCH IN COL. 1 FOR BIN CARD        
         LI,R0    DA(BOOT7)         ADD. OF COM. LIST                           
BOOT2    SIO,0    *X'25'            READ A CARD                                 
         TIO,0    *X'25'                                                        
         BCS,12   %-1               NOT DONE                                    
         LI,R1    30                CKSM 30 WORDS                               
         LI,R2    0                                                             
         AW,R2    BOOT8-1,R1        GET CKSM IN R2                              
         BDR,R1   %-1                                                           
         BNEZ     %                 ERROR IF CKSM NOT ZERO                      
         LI,R1    27                NO. WORDS TO MOVE                           
         LW,R2    BOOT8+2,R1                                                    
         STW,R2   *BOOT8+2,R1       MOVE WORDS TO PROPER CORE LOC.              
         BDR,R1   %-2                                                           
         MTB,1    BOOT8             IS THIS CARD TWO                            
         BEZ      BOOT2             NO, GET CARD TWO                            
         B        X'2000'           YES,TRANSFER CONTROL TO 2000                
         BOUND    8                                                             
BOOT7    GEN,8,24 2,X'4000'         READ BIN., ADD. OF BUFFER                   
         GEN,8,24 8,120             HTE, 120 BYTES                              
BOOT8    EQU      X'1000'           ADD. TO LOAD TWO CARD BOOT INTO             
BOOT9    RES      0                                                             
         TITLE    '** SYSGEN  TWO CARD BOOTSTRAP  **'                           
*                                                                               
*                                   LOADS REBOOTABLE RBM DECK                   
*                                                                               
*                                   FORMAT OF DECK IS:                          
*                                     WORD 1, BYTE 1=FF,NOT LAST CARD           
*                                                   =9F,LAST CARD               
*                                             BYTE 2=0                          
*                                          BYTES 3,4=SEQ. NO.                   
*                                     WORD 2, HW 1=LOAD ADDRESS-1               
*                                             HW 2=COMPLEMENT CKSM              
*                                   TRANSFERS CONTROL TO ADD. ON 9F CARD        
*                                   CLEARS CORE FROM 40-203F                    
         LOC      X'2000'                                                       
BOOT20A  EQU      %%                SET EQUAL TO LOAD ADDRESS                   
BOOT20   LI,R1    X'1000'                                                       
         LI,R5    0                                                             
         STW,R5   X'3F',R1          CLEAR CORE FOR RBM                          
         BDR,R1   %-1                                                           
         LI,R0    DA(BOOT28)        SET TO COM. LIST                            
BOOT21   SIO,0    *X'25'            READ NEXT CARD                              
         TIO,0    *X'25'                                                        
         BCS,12   %-1               LOOP TILL I/O DONE                          
         LI,R1    59                SET TO CKSM 59 HWORDS                       
         LI,R2    0                                                             
         AH,R2    BOOT29,R1         COMPUTE CKSM                                
         BDR,R1   %-1                                                           
         AND,R2   BOOT27                                                        
         BEZ      %+2               CKSM OK                                     
BOOT22   WAIT     %                 ERROR IN CKSM, R2 CONTAINS CKSM             
         LI,R1    1                                                             
         CH,R5    BOOT29,R1                                                     
         BE       %+2               SEQ. NO. OK                                 
         WAIT     %                 SEQ. ERROR                                  
         AI,R5    1                 STEP SEQ. NO.                               
         LB,R1    BOOT29                                                        
         CI,R1    X'FF'             IS FIRST BYTE OK                            
         BE       BOOT23            YES                                         
         CI,R1    X'9F'                                                         
         BNE      BOOT22            NO, FIRST BYTE BAD; CALL CKSM ERR           
         LH,R1    BOOT29+1          TRANSFER CARD                               
         B        *R1               EXIT BOOT                                   
*                                                                               
BOOT23   LI,R1    28                                                            
         LH,R2    BOOT29+1                                                      
         LW,R3    BOOT29+1,R1                                                   
         STW,R3   *R2,R1            MOVE WORDS FROM CARD TO PROPER              
         BDR,R1   %-2                 CORE LOC.                                 
         B        BOOT21                                                        
*                                                                               
BOOT27   DATA     X'FFFF'           MASK FOR CKSM                               
         BOUND    8                                                             
BOOT28   GEN,8,24 2,BA(BOOT29)      READ BIN. , ADD. OF BUFFER                  
         GEN,8,24 8,120             HTE , 120 BYTES                             
BOOT29A  EQU      %%                SET EQUAL TO LOAD ADDRESS                   
BOOT29   RES      30                INPUT BUFFER                                
         ORG      %%                RESET EXEC. COUNTER=LOAD COUNTER            
         TITLE    '** SYSGEN  - SUB. TO LOG ALARM  **'                          
*                                                                               
*                                   CALL  BAL,R8     LOGALM                     
*                                     R7=FWA OF ALARM TO OUTPUT                 
*                                                                               
*                                                                               
LOGALM   STW,R8   LOGALM7           SAVE RETURN                                 
         STW,R7   LOGALM8           SAVE FWA OF ALARM                           
         AI,R7    1                                                             
         LB,R0    *R7               GET BY TE COUNT                             
         STW,R0   LOGALM9+1                                                     
         SLS,R7   2                 CHANGE TO BYTE ADDRESS                      
         AI,R7    1                                                             
         STW,R7   LOGALM9                                                       
         LW,R0    WRITELO+2                                                     
         STW,R0   LOGALM9+2         LOG ALARM ON LO DEVICE                      
         LI,R7    LOGALM9                                                       
         BAL,R8   WRITE             LOG ALARM ON OUTPUT DEV.                    
         LI,R9    0                                                             
         LW,R7    LOGALM8                                                       
         BAL,R8   TYPE              TYPE ALARM                                  
         B        *%+1              RETURN                                      
LOGALM7  DATA     0                 EXIT ADDRESS                                
LOGALM8  DATA     0                 FWA OF ALARM                                
LOGALM9  DATA     0                                                             
         DATA     0                 BYTE COUNT                                  
         DATA     0                 DEVICE TO OUTPUT TO, YYNDD FORMAT           
         TITLE    '** SYSGEN  - COMPLETE CORE ALLOCATION **'                    
*                                                                               
*                                                                               
*                                                                               
SETFWA   MTW,0    SETFWA9           HAS ROUTINE ALREADY RUN                     
         BNEZ     *R0               YES, EXIT                                   
         STW,R0   SETFWA9           SAVE RETURN                                 
         DO       #MAP=0                                                        
         LW,R10   K:UNAVBG                                                      
         LW,R0    K:FPOOL           WAS ANY FGD BLK BUFFERS ALLOCATED           
         BEZ      SETFWA2           NO                                          
         SW,R10   R0                YES, GET FWA OF FGD BLK BUFFERS             
         STW,R10  K:FPOOL                                                       
SETFWA2  LW,R0    K:FMBOX           ANY FGD MAILBOXES                           
         BEZ      SETFWA3           NO                                          
         SW,R10   R0                                                            
         STW,R10  K:FMBOX           YES, SET FWA                                
SETFWA3  LW,R10   K:UNAVBG                                                      
         LW,R0    K:FGDBG2          GET FGD SPACE          /SIG7-1838/*C5732    
         SW,R10   R0                YES                                         
         STW,R10  K:FGDBG1          SET FWA OF FGD                              
         STW,R10  K:FGDBG2                                                      
SETFWA4  LI,R0    RBMSIZE           COMPUTE SIZE OF RBM                         
         AW,R0    FPSIM                                                         
         AW,R0    DECSIM                                                        
         AW,R0    BYTSIM                                                        
         AW,R0    CVSIM                                                         
         DO       #DELMDL           ADDS DELTA SIZE TO COMPUTE RBM SIZE         
         AW,R0    DELTA                                                         
         FIN                                                                    
         AW,R0    MPATCH                                                        
         AI,R0    511               ROUND UP TO PAGE BOUNDARY                   
         LI,R11   X'FFE00'          MASK FOR PAGE BOUNDARY                      
         AND,R0   R11                                                           
         STW,R0   KBACKBG1                                                      
         LW,R0    K:FGDBG2                                                      
         AI,R0    -1                                                            
         STW,R0   K:BCKEND          SET K:BCKEND                                
         LW,R0    K:FMBOX                                                       
         AI,R0    -1                                                            
         BGZ      SETFWA7                                                       
         LW,R0    K:FPOOL                                                       
         AI,R0    -1                                                            
         BGZ      SETFWA7                                                       
         LW,R0    K:UNAVBG                                                      
         AI,R0    -1                                                            
SETFWA7  STW,R0   K:FGDEND          SET K:FGDEND                                
         ELSE     #MAP                                                          
         LW,R0    STVMVAL                                                       
         STW,R0   KBACKBG1                                                      
         LW,R0    K:UNAVBG                                                      
         CI,R0    X'20000'                                                      
         BL       %+2                                                           
         LI,R0    X'20000'                                                      
         AI,R0    -1                                                            
         STW,R0   K:FGDEND          =MIN(MEMSIZE,VIRTUALMEMSIZE)                
         LI,R0    X'1FFFF'                                                      
         STW,R0   K:BCKEND                                                      
         FIN      #MAP                                                          
         B        *%+1                                                          
SETFWA9  DATA     0                 RETURN ADDRESS                              
         TITLE    '** SYSGEN  - SYSLOAD PHASE  **'                              
*                                                                               
*                                   LOADS RBM AND OVERLAYS AND WRITES           
*                                     THEM ON RAD                               
*                                                                               
*                                   THESE NEXT 5 FLAGS MUST BE CONSEC.          
*                                     AND IN THE SAME ORDER AS DEFT1            
RTN      DATA     CTINT-RTN-1       # OF ROUTINES MONITOR CARD MAY REQST        
FPSIM    DATA     0                 FLAG TO LOAD FLOATING PT. ROUTINES          
DECSIM   DATA     0                 FLAG TO LOAD DECIMAL ROUTINES               
BYTSIM   DATA     0                 FLAG TO LOAD BYTE INST. PCKG.               
CVSIM    DATA     0                 FLAG TO LOAD CONVERT INST. PCKG.            
         DO       #DELMDL                                                       
DELTA    DATA     0                 FLAG TO LOAD DELTA                          
         FIN      #DELMDL                                                       
*                                                                               
*                                   THESE NEXT TWO CELLS MUST BE CONSEC.        
*                                     AND IN ORDER                              
* THE "INT" CELLS MUST NOT BE RE-ORDERED                                        
CTINT    DATA     X'5D'                                                         
HIINT    DATA     X'13F'            HIGHEST INT. ADD. USED BY SYSTEM            
IOINT    DATA     X'5C'             IO INTERRUPT PROCESSOR                      
CPINT    DATA     X'5D'             CONTROL PANEL INTERRUPT                     
INITEND  DATA     0                 END OF RBM INIT. CODE                       
LDEND    DATA     0                 INITIAL LOAD ADR                            
SYSLDFLG DATA     0                 NONZERO IN SYSLOAD PHASE                    
KBACKBG1 DATA     0                 BCKG. FWA, SET AFTER RBM LOADED             
MPATCH   DATA     0                 SIZE OF PATCH AREA FOR RBM                  
NOTHING  DATA     0                 FLAG TO TYPE RELOAD NOTHING                 
OLAYFWA  DATA     0                 FWA OF RBM OVERLAYS                         
OLDBCKBG DATA     0                 OLD BCKG. FWA (USED IN UPD OPTION)          
OVILGA   DATA     0                 BYTE LENGTH OF OVERLAY ADR                  
OVINMA   DATA     0                 NAME OF OVERLAY ADR                         
OVISKA   DATA     0                 SEEK ADDRESS OF OVR ADR                     
OVIGRA   DATA     0                 GRANULE DISP IN SP                          
EPIEPA   DATA     0                 ENTRY/EXIT OF OVR ADR                       
EPIBA    DATA     0                 REPLACED BRANCH OF OVR ADR                  
EPIOVX   DATA     0                 NO. OF EPI'S                                
S:TRA    DATA     0                 ADR. TO KEEP TRACE NO.                      
OLAYGRAN DATA     0                 PRESENT SP OFFSET FOR OLAY                  
RBMGRAN  DATA     1                 PRESENT SP OFFSET FOR RBM                   
SAVER1   DATA     0                                                             
SAVER2   DATA     0                                                             
RBMFSIZE DATA     0                 RBM FILE SIZE (USED BY SYSLOAD)             
RBMSTART DATA     0                 TRANSFER ADD. FOR RBM                       
DIRADR   DATA     0                 DIRECTORY ADDRESS                           
BALINIT  DATA     0                 CELL FOR END 'ADR'                          
SIDEV    DATA     0                 SI INPUT DEVICE (YYNDD FORMAT)              
SYSOPT   DATA     0                 SLSLOAD OPTION, 0=UPD, 1=ALL                
READBI   DATA     BA(INBUF1)                                                    
         DATA     120                                                           
         DATA     0                                                             
READSI   DATA     BA(INBUF)                                                     
         DATA     80                                                            
         DATA     0                                                             
READTY   DATA     BA(INBUF)                                                     
         DATA     80                                                            
         DATA,2   DT:TY,1                                                       
WRITEBO  DATA     0                                                             
         DATA     120                                                           
         DATA     0                                                             
WRITEDC  DATA     0                 BYTE FWA                                    
         DATA     0                 NO. BYTES                                   
         DATA,2   DT:DC,0                                                       
         DATA     0                 GRANULE NO.                                 
         DATA     0                 INDEX FOR RAD AREA(EVEN NO.)                
WRITELO  DATA     BA(INBUF)                                                     
         DATA     80-(9*#ONLINE)                                                
         DATA,2   DT:LP,2                                                       
WRITEMAP DATA                                                                   
         DATA                                                                   
         DATA     0                                                             
SCANPM   DATA     %+1               CALLING SEQ. FOR SCAN                       
         DATA     INBUF                                                         
SCANPMA  DATA     0                 CONVERSION TYPE                             
SCANPMB  DATA     0                 FIRST TIME FLAG                             
SCANPMC  DATA     0                 DEVICE TYPE INPUT                           
         DATA     CONTCRD           ADDRESS TO HANDLE CONT. CARD                
INBUF    RES      20                CONTROL CARD BUFFER                         
INBUF1   RES      30                BI INPUT BUFFER                             
*                                                                               
*                                   CONSTANTS                                   
K120     DATA     120                                                           
K0       DATA     0                                                             
K1       DATA     1                                                             
K2       DATA     2                                                             
K3       DATA     3                                                             
K4       DATA     4                                                             
K6       DATA     6                                                             
K7       DATA     7                                                             
KD10     DATA     10                                                            
KXF      DATA     X'F'                                                          
KX10     DATA     X'10'                                                         
KX1F     DATA     X'1F'                                                         
KX33     DATA     X'33'                                    /SIG7-1808/*C5732    
KX3F     DATA     X'3F'                                                         
KX80     DATA     X'80'                                                         
KXF0     DATA     X'F0'                                                         
KXFF     DATA     X'FF'                                                         
K960     DATA     960                                                           
KX1FF    DATA     X'1FF'                                                        
KXF00    DATA     X'0F00'                                                       
KX4000   DATA     X'4000'                                                       
KX7FFF   DATA     X'7FFF'                                                       
KXFFFF   DATA     X'FFFF'                                                       
KYFF     DATA     X'FF000000'                                                   
KXFFFE00 DATA     X'FFFE00'                                                     
FFFFFFF0 DATA     X'FFFFFFF0'                                                   
KYFFFE   DATA     X'FFFE0000'                                                   
M24      DATA     X'00FFFFFF'                                                   
KX1FE00  DATA     X'1FE00'                                                      
KX1FFFF  DATA     X'1FFFF'                                                      
KM2      DATA     -2                                                            
KBLANKS  DATA     X'40404040'                                                   
KLBLANK  DATA     X'40400000'                                                   
KSIGN    DATA     X'80000000'                                                   
         DO1      #CRASH                                                        
KCRASH   TEXT     'CRASOLAY'        LOAD LOC FOR CRASH                          
KTYA01   DATA,2   DT:TY,1                                                       
MDALLOC  EQU      X'80'             BIT IN MDFLAG INDICATING ALLOCATED          
MDWPMASK EQU      K7                MASK FOR MD FLAG TO GET WP VALUE            
*                                                                               
UNBORG   EQU      X'00'             UNBLOCK FILE ORG BIT IN DIRE ENTRY          
BLKORG   EQU      X'01'             BLOCKED FILE ORG IN DIRE ENTRY              
COMPORG  EQU      X'02'             COMPRESSED FILE ORG                         
*                                                                               
*                                                                               
BOUNDFLG DATA     0                                                             
         PAGE                                                                   
*                                                                               
KSYSTEM  RES      0         PROTOTYPE DATA FOR THE K:SYSTEM CELL                
         DATA,1   X'80'               CP-R TYPE=8                               
         DATA,1   X'80'               VERSION H00                               
         DATA,2   BIT24*#SIGMA9+;     TYPE OF MACHINE: 0 => SIGMA 5,            
                  BIT25*(1-#SIGMA9)+;     1 => SIGMA6, 2 => SIGMA 9,            
                  BIT25*#550+;            3 => XEROX 550                        
                  BIT29+;             REAL-TIME ROUTINES PRESENT                
                  BIT31*#SYMB         SYMBIONTS PRESENT.                        
*                                                                               
*                                                                               
BIT24    EQU      2**6                                                          
BIT25    EQU      2**5                                                          
BIT29    EQU      2**2                                                          
BIT31    EQU      2**-1                                                         
         TITLE    '** SYSGEN  - PROCESS :SYSLD COMMAND **'                      
*                                                                               
*                                   THIS SECTION IS ENTERED AFTER THE           
*                                   REBOOTABLE RBM DECK IS INPUT OR             
*                                   BY SYSGEN UPON READING THE :SYSLD           
*                                   COMMAND                                     
*                                                                               
*                                                                               
SYSLOAD  LI,R7    MSG40                                                         
         LI,R9    0                                                             
         BAL,R8   TYPE              OUTPUT RBM SYSLOAD AND                      
         LI,R0    0                                                             
         STW,R0   WRITELO+2         SET SO NO LO OUTPUT                         
         STW,R0   WRITEBO+2         SET SO NO BO OUTPUT                         
         STW,R0   SIDEV                                                         
         LW,R0    KTYA01                                                        
         STW,R0   READSI+2          SET SI INPUT TO TYA01                       
P01      LI,R7    READSI                                                        
         BAL,R8   READ              GO READ :SYSLD COMMAND                      
         LI,R7    WRITELO                                                       
         BAL,R8   WRITE             LOG ON LO IF ENTERED FROM SYSGEN            
         LW,R0    SIDEV                                                         
         STW,R0   READSI+2                                                      
*                                                                               
*                                   ENTRY POINT FROM SYSGEN                     
P02      LI,R0    1                                                             
         STW,R0   SCANPMA                                                       
         LI,R0    0                                                             
         STW,R0   SCANPMB                                                       
         STW,R0   SCANPMC                                                       
         LW,R7    SCANPM                                                        
         BAL,R8   SCAN              GO SCAN 'SYSLD' FIELD                       
         CI,R6    1                                                             
         BGE      P05               ERROR IF NOT 1 OR 2                         
P04      BAL,R8   ERROR                                                         
         B        P01                                                           
P05      BE       P06               END OF FIELD                                
         CI,R10   0                 CHECK FOR BLANK CARD                        
         BE       P01               YES                                         
         B        P04               NO, ERROR                                   
P06      SLS,R8   -8                                                            
         CW,R8    P90               IS IT SYS                                   
         BNE      P04               NO, ERROR                                   
         MTW,1    SCANPMB                                                       
P08      CI,R6    2                 END OF CARD                                 
         BE       P18               YES                                         
         LI,R0    0                                                             
         STW,R0   SCANPMC                                                       
         BAL,R8   SCAN              GET NEXT FIELD                              
         CI,R6    -1                                                            
         BE       P04               ERROR                                       
         LW,R1    P93                                                           
         CW,R8    P93,R1            SEARCH FOR KEYWORD                          
         BE       %+3               FOUND IT                                    
         BDR,R1   %-2                                                           
         B        P04               ERROR, BAD KEYWORD                          
         LH,R0    P94,R1                                                        
         AND,R0   HWMASK                                                        
         B        *R0               ENTER PROPER ROUTINE                        
*                                                                               
P09      LI,R0    -1                SET FOR FAST ALL                            
         B        P10A                                                          
P10      LI,R0    1                 SET FOR ALL                                 
P10A     CI,R6    0                                                             
         BE       P04               ERROR IF END OF SUBFIELD                    
         STW,R0   SYSOPT            SET SYSLOAD OPTION                          
         B        P08               EXIT                                        
*                                                                               
P11      LI,R0    0                 UPD OPTION                                  
         B        P10A                                                          
*                                                                               
P12      LI,R4    P04               PROCESS 'IN' KEYWORD                        
         LI,R12   8                 MASK FOR BI DEVICE                          
         LI,R13   1                 END ON END OF FIELD                         
         BAL,R8   CHKDEV            GO GET DEVICE                               
         STW,R8   READBI+2          STORE DEV. IN CALL SEQ                      
         B        P08                                                           
*                                                                               
P13      LI,R4    P04               PROCESS 'OUT' KEYWORD                       
         LI,R12   4                 MASK FOR BO DEV.                            
         LI,R13   1                 END ON END OF FIELD                         
         BAL,R8   CHKDEV            GET AND CHECK DEV.                          
         STW,R8   WRITEBO+2         STORE IN CALL                               
         B        P08                                                           
*                                                                               
P14      CI,R6    0                 PROCESS 'V' KEYWORD                         
         BNE      P04               ERROR IF NOT END OF SF                      
         BAL,R8   SCAN              GET VERSION                                 
         CI,R6    1                                                             
         BL       P04               ERROR                                       
         CI,R10   4                                                             
         BG       P04               UP TO 4 CHARS. ALLOWED                      
         STW,R8   K:VRSION          SAVE VERSION                                
         DO       0       REMOVE, V,XXX NOT SAME AS REV LEVEL                   
         LH,R9    R8                COPY VER LETTER, 1ST UPDATE DIGIT           
         AND,R8   KXF00             GET LOW ORDER 4 BITS OF UPDATE              
         AND,R9   KXF00             AND VERSION                                 
         SLS,R9   4                 SHIFT VER TO LEFT DIGIT OF BYTE             
         OR,R8    R9                AND FORM VERSION/UPDATE LEVEL BYTE          
         SLS,R8   8                 MOVE TO ITS PLACE                           
         OR,R8    KSYSTEM           FORM COMPLETE K:SYSTEM ENTRY                
         FIN      0                                                             
         LW,R8    KSYSTEM             WE KNOW BETTER THAN USER                  
         STW,R8   K:SYS1            AND SAVE FOR INIT TO MOVE                   
         B        P08               EXIT                                        
*                                                                               
P15      LI,R4    P04               PROCESS 'MAP' KEYWORD                       
         LI,R12   2                 MASK FOR LO DEV.                            
         LI,R13   1                 STOP ON END OF FIELD                        
         LW,R8    WRITELO+2         GET ADDR OF PRINTER FROM :SYS               
         CW,R6    R13               IS A MODEL SPECIFIED ON :SYSLD?             
         BE       %+2                 NO, USE :SYS SPECIFIED PRINTER            
         BAL,R8   CHKDEV                                                        
         STW,R8   WRITEMAP+2        STORE IN MAP CALL                           
         B        P08                                                           
*                                                                               
P16      LI,R0    2                 OVR OPTION                                  
         B        P10A                                                          
*                                                                               
P18      LW,R0    READBI+2          WAS AN INPUT DEV. INPUT                     
         BNEZ     P19               YES                                         
         LI,R0    X'FFFF'                                                       
         AND,R0   X'25'             GET BOOT DEVICE ADDRESS                     
         AI,R0    DT:9T**16         ASSUME A 9T TAPE                            
         CI,R0    X'80'             IS IT A MULTI-UNIT CONTROLER                
         BANZ     %+2               YES                                         
         AI,R0    (DT:CR-DT:9T)**16 NO, ASSUME A CARD READER                    
         STW,R0   READBI+2                                                      
*                                                                               
P19      RES      0         TEST AREA INITIALIZATION MODE                       
         LW,R0    SYSOPT            CHECK OPTION FLAG                           
         BEZ      R01               UPDATE OPTION                               
         CI,R0    2                 IS IT  OVERRIDE                             
         BE       S00               FORGET  CLEARING OR CHECKING                
         B        Q01               ALL OPTION, GO CLEAR RAD                    
         PAGE                                                                   
*                                                                               
* SYSLD KEY-WORDS                                                               
*                                                                               
HWMASK   DATA     X'FFFF'                                                       
P90      DATA     'SYS'                                                         
P93      DATA     8                 # OF LEGAL PARAMETERS                       
         TEXT     'FAST'                                                        
         TEXT     'ALL '                                                        
         TEXT     'UPD '                                                        
         TEXT     'IN  '                                                        
         TEXT     'OUT '                                                        
         TEXT     'V   '                                                        
         TEXT     'MAP '                                                        
         TEXT     'OVR '                                                        
P94      DATA,2   0,P09,P10,P11,P12,P13                                         
         DATA,2   P14,P15                                                       
         DATA,2   P16                                                           
         TITLE    '** SYSGEN  - ZERO DISK AREAS **'                             
*                                                                               
*                                                                               
*                                                                               
Q01      MTW,1    SKIPFLAG          SET SKIP FLAG FOR WRITE COMMAND             
         LW,R1    K:NUMDA           GET INDEX FOR LAST RAD AREA                 
Q03      LB,R2    *MDFLAG,R1        GET FLAGS                                   
         CI,R2    MDALLOC           IS AREA ALLOCATED                           
         BANZ     Q05                 BRANCH IF IT IS                           
Q04      AI,R1    -1                GET NEXT                                    
         BGEZ     Q03                MASTER DICTIONARY ENTRY                    
         MTW,-1   SKIPFLAG          RESET SKIP-WRITE FLAG                       
         B        S00               GO LOAD RBM                                 
Q05      LI,R0    0                                                             
         STW,R0   WRITEDC+3         RESET GRANULE #                             
         STW,R1   WRITEDC+4         SET AREA #                                  
         LB,R4    *MDDCTI,R1        GET DCT INDEX IN R4                         
         LD,R8    *K:DCT16,R4       GET                                         
         SLD,R8   8                  DEVICE                                     
         AND,R8   KXFFFF              NAME                                      
         LI,R9    DT:DP                                                         
         CI,R8    'DP'              CHECK FOR DISK PACK                         
         BE       %+2               SKIP IF DISC PACK                           
         LI,R9    DT:DC                                                         
         SLD,R8   48                PUT INDEX IN TOP OF R8                      
         AH,R8    *K:DCT1,R4         DEVICE NO. AND                             
         AI,R8    X'4000'             FLAG TO EXIT ON ERROR                     
         STW,R8   WRITEDC+2                                                     
         LB,R2    *MDDISCI,R1       GET DISC INDEX                              
         LB,R0    *DISCNSPT,R2      GET NUMBER OF SECTORS/TRACK                 
         STW,R0   Q94               SAVE IT                                     
*                                                                               
         LH,R0    *DISCNWPS,R2      GET NWPS                                    
         STH,R0   Q91               SAVE IT                                     
*                                                                               
         LH,R2    Q96                                                           
         DH,R2    Q91                                                           
         STW,R2   Q90               MAX SECTORS FOR 1 IOCD                      
         LW,R4    *MDBOA,R1         GET START OF AREA                           
         STW,R4   Q95               START OF AREA                               
         LW,R3    *MDEOA,R1         GET END OF AREA                             
         SW,R3    Q95                                                           
         AI,R3    1                                                             
         LW,R2    SYSOPT            CHECK FOR FAST ALL                          
         BGZ      %+2                BRANCH IF NOT                              
         LI,R3    1                 CLEAR FIRST SECTOR OF AREA                  
         STW,R3   Q92               REMAINING SECTORS                           
Q07      STW,R3   Q93               SECTORS TO CLEAR ON NEXT WRITE              
         LW,R0    Q94               CHECK FOR DISK PACK                         
         BNEZ     Q09                BRANCH IF IT IS                            
         CW,R3    Q90               CHECK FOR TOO MANY SECTORS                  
         BLE      Q13                BRANCH IF OK                               
         LW,R3    Q90               GET MAXIMUM                                 
         B        Q07                AND GO BACK                                
Q09      CW,R3    Q94               CHECK FOR MORE THAN 1 TRACK                 
         BLE      Q11                BRANCH IF NOT                              
         LW,R3    Q94               GET 1 TRACK AND GO BACK                     
         B        Q07                                                           
Q11      LI,R2    0                                                             
         LW,R3    WRITEDC+3         ADD GRANULE AND                             
         AW,R3    Q95                AREA START                                 
         DW,R2    Q94               CHECK FOR END ON                            
         AW,R2    Q93                TRACK BOUNDARY                             
         CW,R2    Q94                                                           
         BLE      Q13                 BRANCH IF OK                              
         SW,R2    Q94               SUBTRACT OVER BOUNDARY                      
         LW,R3    Q94               COMPUTE SECTORS                             
         SW,R3    R2                 TO NEXT BOUNDARY                           
         STW,R3   Q93                 USE IT                                    
Q13      LW,R3    Q93               COMPUTE                                     
         MH,R3    Q91                BYTE                                       
         SLS,R3   2                   COUNT                                     
         STW,R3   WRITEDC+1                                                     
         LI,R7    WRITEDC           WRITE                                       
         BAL,R8   WRITE              DATA                                       
         LW,R3    Q93               UPDATE                                      
         AWM,R3   WRITEDC+3          GRANULE                                    
         LCW,R3   Q93               UPDATE REMAINING                            
         AWM,R3   Q92                SECTOR COUNT                               
         BEZ      Q04               BRANCH IF DONE                              
         LW,R3    Q92               GET REMAINDER AND                           
         B        Q07               DO NEXT WRITE                               
Q90      DATA     0                 NO.SECT. TO CLEAR ON EACH WRITE             
Q91      DATA     0                 NO. WORDS/SECTOR                            
Q92      DATA     0                 TOTAL NO. SECTORS IN AREA                   
Q93      DATA     0                 NO. SECT FOR NEXT WRITE                     
Q94      DATA     0                 0 = RAD, N = NO. SECT/TRACK DISKPACK        
Q95      DATA     0                 AREA START                                  
Q96      DATA     X'40000000'       HALFWORD 0 = MAX WORDS PER IOCD             
         TITLE    '** SYSGEN  - UPDATE OPTION CHECKS **'                        
*                                                                               
*                                   READ IN EXISTING RAD BOOT AND THEN          
*                                     MASTER DICT.  TO CHECK WHICH AREAS        
*                                     HAVE MOVED ON THE RAD                     
*                                                                               
R01      LI,R0    0                                                             
         STW,R0   NOTHING           TYPE 'NOTHING' FLAG SET                     
*                                   0 - TYPE NOTHING; >1 - DONT TYPE NOTHING    
         STW,R0   WRITEDC+4         SET PACKET TO SP AREA                       
         LI,R1    1                                                             
         LI,R14   0                                                             
         LI,R15   X'3FFFF'                                                      
         XW,R14   *MDBOA            FAKE BOA FOR SP                             
         XW,R15   *MDEOA            FAKE EOA FOR SP ALSO                        
* MDBOA/MDEOA HAVE TO BE RESTORED BELOW AT R19                                  
         LW,R0    OLAYFWA                                                       
         SLS,R0   2                                                             
         STW,R0   WRITEDC           SET FWA TO READ RADBOOT INTO                
         LI,R0    88                                                            
         STW,R0   WRITEDC+1         SET TO READ 88 BYTES                        
         LB,R2    *MDDCTI           GET DCT INDEX                               
         LD,R8    *K:DCT16,R2         DEVICE                                    
         SLD,R8   8                    TYPE                                     
         AND,R8   KXFFFF            MASK MNEMONIC                               
         LI,R9    DT:DP             DISC PACK INDEX                             
         CI,R8    'DP'              IS IT A DISC PACK                           
         BE       %+2               YES, SKIP                                   
         LI,R9    DT:DC             NO, USE RAD INDEX                           
         SLD,R8   48                PUT INDEX INTO TOP OF R8                    
         AH,R8    *DCT1,R2          MERGE IN DEVICE ADDRESS                     
         STW,R8   WRITEDC+2                                                     
         PAGE                                                                   
         LI,R0    0                 LOCATION OF BOOT STRAP                      
         STW,R0   WRITEDC+3         STORE SYS. RAD FWA                          
         LI,R7    WRITEDC                                                       
         BAL,R8   READ              GO READ IN RAD BOOT                         
         LW,R4    OLAYFWA           R4=FWA OF INPUT BUFFER                      
         LW,R0    0,R4                                                          
         CW,R0    DCBOOT            CHECK AND MAKE SURE READ RAD BOOT           
         BNE      R34               ERROR, NOT RAD BOOT                         
         LW,R0    DBOOT10A-DCBOOT,R4  GET OLD RBM FILE SIZE                     
         STW,R0   RBMFSIZE            SAVE IT                                   
         LW,R0    DBOOT11A-DCBOOT,R4 GET SECTOR NUMBER OF END OF OLD CPR        
         EXU      DBOOT17A-DCBOOT,R4 GET # OF SECTORS IN R13                    
         SW,R0    R13               BACK UP SECTOR NUMBER                       
         AI,R0    1                 AND FORWARD ONE                             
         STW,R0   WRITEDC+3         PUT IN PACKET                               
*                                                                               
         LI,R0    X'400'*4                                                      
         STW,R0   WRITEDC+1         SET TO READ FIRST 400 WORDS OF RBM          
R19      BAL,R8   READ              GO READ IN RBM                              
         STW,R14  *MDBOA            RESTORE MDBOA                               
         STW,R15  *MDEOA            RESTORE MDEOA                               
         LW,R4    OLAYFWA                                                       
         AI,R4    -X'40'            FORM VIRTUAL START OF OLD MONITOR           
         LW,R12   K:MONTH,R4        GET K:MONTH                                 
         CW,R12   K:MONTH           IS IT THE SAME AS THIS ONE                  
         BNE      R35               NO, CANT FIND OLD SYSTEM                    
*                                   YES, ASSUME WE'VE FOUND AN OLD CPR          
         LW,R0    K:BACKBG,R4       GET OLD BKG BEGIN LOCATION                  
         STW,R0   OLDBCKBG          SAVE IT FOR LATER                           
         PAGE                                                                   
         LW,R3    K:NUMDA           GET NUMBER OF AREAS IN NEW SYSTEM           
R20      RES      0                                                             
*                                                                               
         LB,R0    *MDFLAG,R3        IS NEW AREA ALLOCATED AT ALL                
         CI,R0    MDALLOC                                                       
         BAZ      R22               NO, IGNORE IT                               
*                                   YES, CHECK FOR AN OLD AREA                  
         LW,R12   K:MDNAME,R4       GET LOCATION OF OLD MDNAME                  
         AW,R12   R4                ADJUST LOCATION                             
         LW,R2    K:NUMDA,R4        GET NUMBER OF OLD MD'S                      
         LH,R0    *MDNAME,R3        GET NAME OF NEW AREA                        
         CI,R0    'CK'-X'10000'     IS IT CK AREA                               
         BE       R22               YES, DONT CARE IF IT MOVED                  
*                                   NO                                          
         CI,R0    'BT'-X'10000'     IS IT BT AREA                               
         BE       R22               YES, DONT CARE IF IT MOVED                  
*                                   NO                                          
         CI,R0    'IS'-X'10000'     IS IT IS AREA                               
         BE       R22               YES, DONT CARE IF IT MOVED                  
*                                   NO                                          
         CI,R0    'OS'-X'10000'     IS IT THE OS AREA                           
         BE       R22               YES, DONT CARE IF IT MOVED                  
*                                   NO                                          
*                                                                               
         STH,R0   MSG45+3           PUT AREA NAME IN MSG FOR LATER              
*                                                                               
         CH,R0    *R12,R2           SEARCH FOR SAME NAME IN OLD SYSTEM          
         BE       R21               FOUND IT                                    
         AI,R2    -1                                                            
         BGEZ     %-3               LOOP THROUGH OLD NAMES                      
         B        R22               CANT FIND, CANT COMPARE                     
         PAGE                                                                   
R21      RES      0                 R2 IS NOW INDEX OF AREA IN OLD SYSTEM       
         LW,R12   K:MDFLAG,R4       GET LOCATION OF OLD FLAG TABLE              
         AW,R12   R4                ADJUST LOCATION                             
         LB,R0    *R12,R2           GET FLAGS FOR OLD AREA                      
         CI,R0    MDALLOC           IS IT ALLOCATED                             
         BAZ      R22               NO, CANT COMPARE                            
*                                   YES, THEN THEY MUST BE THE SAME             
         LW,R12   K:MDBOA,R4        GET LOCATION OF OLD MDBOA                   
         AW,R12   R4                ADJUST LOCATION                             
         LW,R0    *R12,R2           GET OLD START                               
         CW,R0    *MDBOA,R3         IS IT THE SAME                              
         BNE      AREAMOVD          NO, AREA MOVED                              
*                                   YES                                         
         LW,R12   K:MDEOA,R4        GET LOCATION OF OLD MDEOA                   
         AW,R12   R4                ADJUST LOCATION                             
         LW,R0    *R12,R2           GET OLD EOA                                 
         CW,R0    *MDEOA,R3         IS IT THE SAME                              
         BNE      AREAMOVD          NO, AREA CHANGED SIZE                       
*                                   YES                                         
         LW,R12   K:MDDCTI,R4       GET LOCATION OF OLD MDDCTI                  
         AW,R12   R4                ADJUST LOCATION                             
         LB,R1    *R12,R2           GET OLD DCT INDEX                           
         LW,R12   K:DCT1X,R4        GET LOCATION OF OLD DCT1                    
         AW,R12   R4                ADJUST LOCATION                             
         LH,R0    *R12,R1           GET OLD DEVICE ADDRESS                      
         LB,R1    *MDDCTI,R3        GET NEW DCT INDEX                           
         CH,R0    *DCT1,R1          IS I THE SAME                               
         BE       R22               YES, AREA ON THE SAME DEVICE                
*                                   NO, AREA ON DIFFERENT DEVICE                
AREAMOVD RES      0                                                             
         LI,R9    0                                                             
         LI,R7    MSG45                                                         
         BAL,R8   TYPE                                                          
         MTW,1    NOTHING                                                       
         PAGE                                                                   
R22      RES      0                                                             
         AI,R3    -1                                                            
         BGEZ     R20               LOOP THROUGH ALL NEW AREAS                  
*                                                                               
         LW,R0    NOTHING           DID ANY AREAS MOVE                          
         BEZ      S00               NO, EXIT THIS REGION                        
R24      LI,R7    MSG46             YES, GO TYPE  'CONTINUE'                    
         LI,R9    0                 ONLY ALLOW TYPE CONTINUE                    
         BAL,R8   TYPE                                                          
         LI,R7    READTY                                                        
         BAL,R8   READ              GO INPUT YES OR NO RESPONSE                 
         LB,R0    INBUF                                                         
         CI,R0    'Y'               IS IT A YES                                 
         BE       S00               YES, GO ON                                  
         CI,R0    'N'               IS IT A NO                                  
         BE       DISGUST           YES, ABORT SYSGEN                           
         B        R24               ASK THE KLUTZ FOR A GOOD ANSWER AGAIN       
********                                                                        
R34      RES      0                                                             
         STW,R14  *MDBOA            RESTORE MDBOA                               
         STW,R15  *MDEOA            RESTORE MDEOA                               
R35      RES      0                                                             
         LI,R9    0                                                             
         LI,R7    MSG49                                                         
         BAL,R8   TYPE              UNABLE TO FIND OLD CPR                      
*                                                                               
         LI,R8    2                                                             
         STW,R8   SYSOPT            FORCE OPTION TO OVERRIDE                    
         B        R24                                                           
         TITLE    '** SYSGEN  - LOAD CPR AND OVERLAYS **'                       
*                                                                               
*                                   THIS SECTION LOADS RBM, OPTIONAL            
*                                     ROUTINES, AND THE OVERLAYS, AND           
*                                     WRITES THE OVERLAYS ON THE RAD            
*                                                                               
*                                                                               
S00      RES      0                                                             
         LB,R1    *MDDISCI          SP AREA DISC INDEX                          
         LH,R0    *DISCNWPS,R1      GET NUMBER OF WORDS/SECTOR                  
         STW,R0   S49               AND SAVE IT                                 
*                                                                               
         LB,R1    *MDDCTI           GET DCT INDEX OF SP AREA                    
         LD,R8    *K:DCT16,R1       GET                                         
         SLD,R8   8                  DEVICE                                     
         AND,R8   KXFFFF            MASK MNEMONIC                               
         LI,R9    DT:DP             DISC PACK INDEX                             
         CI,R8    'DP'              IS IT A DISC PACK                           
         BE       %+2               YES, SKIP                                   
         LI,R9    DT:DC             NO, USE RAD INDEX                           
         SLD,R8   48                PUT INDEX INTO TOP OF R8                    
         AH,R8    *K:DCT1,R1        ADD DEVICE NO.                              
         STW,R8   WRITEDC+2                                                     
         LI,R0    1                                                             
         STW,R0   WRITEDC+3         SET START SECTOR TO 1                       
         LI,R0    0                                                             
         STW,R0   WRITEDC+4         SET TO SP AREA                              
         LW,R1    OLAYFWA           COMPUTE FWA OF CLOBBERABLE                  
         DO       #ONLINE                                                       
         AI,R1    -BUFFER                                                       
         ELSE     #ONLINE                                                       
         AI,R1    -X'40'            POTION OF RESIDENT MONITOR                  
         FIN      #ONLINE                                                       
         LI,R0    0                                                             
         DW,R0    S49               CONVERT TO INTEGER NO. GRANULES             
         AI,R0    0                 TEST REMAINDER                              
         BEZ      %+2               B IF REM. = 0                               
         AI,R1    1                 NOT 0, SO ADD 1 GRANULE                     
         MW,R1    S49               R1 = NO. WORDS TO PRESERVE                  
         LW,R0    R1                COPY INTO R0                                
         SLS,R0   2                 GET BYTE COUNT OF PRESERVED AREA            
         STW,R0   S80               SAVE BYTE COUNT FOR LATER                   
         DO       #ONLINE                                                       
         AI,R1    BUFFER                                                        
         ELSE     #ONLINE                                                       
         AI,R1    X'40'             R1 = FWA OF CLOBBERABLE RBM                 
         FIN      #ONLINE                                                       
         STW,R1   S83               SAVE FOR BKGD OLAY LOAD LOC.                
         BAL,R8   S70               GO DO HOUSEKEEPING                          
         LW,R1    RTN               # OF ROUTINES THAT MAY BE FLAGGED           
S00B     LW,R0    RTN,R1            CHECK CONTENTS OF FLAG                      
         BEZ      %+4                                                           
         LI,R2    FPSIM1-1          BASE OF SIMS                                
         AW,R2    R1                OFFSET                                      
         MTB,1    DEFT4,R2          SET FOR RES                                 
         BDR,R1   S00B                ROUTINES                                  
S01      BAL,R8   S55               GO READ NEXT CARD                           
S08      RES      0                                                             
S08A     AI,R1    1                 STEP INDEX                                  
S08B     CW,R1    S91               DONE WITH THIS CARD                         
         BE       S01               YES                                         
         LB,R2    INBUF1,R1         GET CONTROL BYTE                            
         CI,R2    X'F'                                                          
         BG       S09               NOT 0-F                                     
         LH,R0    S99,R2                                                        
         AND,R0   HWMASK                                                        
         B        *R0               ENTER PROPER REGION                         
S09      LW,R0    S96               IS THIS A VALID MODULE                      
         BNEZ     S10               YES                                         
         LI,R7    MSG32             NO                                          
         B        S20A              GO TYPE 'OBJ MOD NOT RECOG'                 
S10      CI,R2    X'80'                                                         
         BGE      S35               LOAD RELOC. SHORT FORM                      
         CI,R2    X'13'             IS IT TYPE 13                               
         BE       S38               YES                                         
         CI,R2    X'40'                                                         
         BL       S20               ERROR, ILL. CONTROL BYTE                    
         CI,R2    X'50'                                                         
         BL       S37               LOAD ABS.                                   
         BGE      S36               LOAD RELOC., LONG FORM                      
*                                                                               
S20      LI,R0    'E='                                                          
         LI,R5    -4                                                            
         LW,R10   R2                                                            
         BAL,R8   HEXBCD            GO CHANGE CONTROL BYTE TO BCD               
         STW,R0   MSG25A+4                                                      
         LI,R7    MSG25                                                         
S20A     LI,R9    0                                                             
         BAL,R8   TYPE              GO TYPE 'ERR, CONTROL BYTE=XX'              
S20AA    RES      0                                                             
         LI,R7    MSG46                                                         
         LI,R9    0                                                             
         BAL,R8   TYPE              GO TYPE CONTINUE                            
*                                                                               
         LI,R7    READTY                                                        
         BAL,R8   READ              GO READ ANSWER                              
*                                                                               
         LB,R0    INBUF             GET FIRST CHARACTER                         
         CI,R0    'Y'               IS IT YES                                   
         BE       S20B              YES                                         
*                                   NO                                          
         CI,R0    'N'               IS IT A NO                                  
         BE       DISGUST           YES, QUIT                                   
         B        S20AA             NO, ASK FUMBLE FINGER AGAIN                 
*                                                                               
S20B     LI,R7    READBI                                                        
         BAL,R8   READ              FLUSH THIS OBJ. MODULE                      
         CI,R8    0                 EOF READ                                    
         BNE      S20D              YES                                         
         LI,R1    1                 NO                                          
         LB,R0    INBUF1,R1                                                     
         BNEZ     S20B              LOOP UNTIL SEQ NO. ZERO READ                
         BAL,R8   S70               GO DO HOUSEKEEPING                          
         LI,R0    S08               KLUDGE RETURN ADD.                          
         STW,R0   S55L                                                          
         B        S55AF             ENTER READ SBR AFTER READ CARD              
S20D     MTW,1    S84               STEP EOF COUNT                              
         MTW,1    S85               SET FLAG THAT END ITEM READ                 
         BAL,R8   S70               DO HOUSEKEEPING                             
         B        S01                                                           
*                                                                               
S22      BAL,R8   S56               DECLARE EXT. DEF. NAME                      
         LB,R3    INBUF1,R1         GET LENGTH                                  
         BAL,R8   S75               GO PACK NAME INTO R10,R11                   
         LH,R2    R10               GET FIRST 2 CHAR                            
         AND,R2   HWMASK                                                        
         CI,R2    'A:'              IS THIS SPECIAL AP CHANGE                   
         BNE      %+3               NO                                          
         SLD,R10  16                RECONSTRUCT                                 
         AI,R11   '  '              BY SHIFTING OFF A:                          
         LW,R2    DEFT2             NO                                          
         CD,R10   DEFT1,R2          SEARCH FOR DEF NAME                         
         BE       S22D              FOUND IT                                    
         BDR,R2   %-2                                                           
         LW,R2    SYMT2             CHECK IN                                    
         CD,R10   SYMT1,R2           RBM SYMBOL TABLE                           
         BE       S23J                BRANCH IF THERE                           
         BDR,R2   %-2               CONTINUE SEARCH                             
**** EXIT POINT                                                                 
         LW,R0    S97               NON-RES OVERLAY                             
         BNEZ     S22A              YES                                         
         LW,R2    S98               GET    IDENTIFIER                           
         LB,R0    DEFT4,R2          GET ALLOC. TYPE                             
         CI,R0    SSOLAY            SUB-SYS                                     
         BE       %+3               YES                                         
         CI,R0    PROLAY            PERM. RES.                                  
         BNE      S22AA             NO                                          
         LI,R2    SYMTSIZE          FIND  A SPOT                                
         LD,R7    SYMT1,R2          FIND  LAST EMPTY                            
         BEZ      %+3               ALWAYS AT LEAST ONE                         
         BDR,R2   %-2               NEXT                                        
         B        S22B              NONE LEFT                                   
         STD,R10  SYMT1,R2          NEW ENTRY                                   
         B        S23J                                                          
S22AA    MTW,1    S89               NO INCREMENT DECLARATION                    
         B        S08               BUT DON'T PROCESS EXIT POINT                
S22A     LI,R2    #EPI              SIZE OF EPI                                 
         LD,R7    DEFT1,R2          FIND NEXT SPOT                              
         BNEZ     %+2                                                           
         BDR,R2   %-2               WILL ALWAYS BE A NON-ZERO                   
         CI,R2    #EPI              ANY LEFT                                    
         BE       S22B              NO                                          
         AI,R2    1                 SET TO FIRST ZERO                           
         LW,R0    S96               LEGAL MODULE                                
         BEZ      S22B              NO                                          
         LW,R0    S98               OVERLAY IDENTIFIED YET                      
         BEZ      S22B              NO                                          
         STB,R0   DEFT5,R2          STORE OVID                                  
         STD,R10  DEFT1,R2          CREATE ITEM FOR EXIT POINT                  
         LW,R0    S89               DECLARATION NUMBER                          
         STH,R0   DEFT3,R2          SAVE IT                                     
         MTW,1    S89               INCREMENT REF/DEF                           
         B        S08               GET NEXT CONTROL BYTE                       
S22B     STD,R10  MSG26A+3                                                      
         LI,R7    MSG26             ILL. DEF ALARM                              
S22C     LI,R9    0                                                             
         NOP      0                 TEMPORARY                                   
         NOP      0                 TEMPORARY                                   
         MTW,1    S89               STEP DECLARATION NO.                        
         B        S08               CONTINUE PROCESSING CARD                    
**** DEF EXIT OR ENTRY                                                          
S22D     CI,R2    SIMBASE           SIMULATORS,RBM,RBMEND                       
         BGE      S22D2             YES                                         
         CH,R2    *OVILGA           OVERLAY NAME                                
         BLE      S22D2             YES                                         
S22D3    LW,R0    *EPIEPA,R2        MUST BE ENTRY                               
         BNEZ     S22B              ERROR ALREADY PROCESSED                     
S22D1    LW,R0    S96               LEGAL MODULE                                
         BEZ      S22B              NO                                          
         LW,R0    S98               OVERLAY IDENTIFIED YET                      
         STB,R0   DEFT5,R2          SET OVID IN EPI                             
S22D1A   LW,R0    S89                                                           
         STH,R0   DEFT3,R2          STORE DECLARATION NUMBER                    
         MTW,1    S89               INCREMENT IT                                
         B        S08               NEXT ITEM                                   
S22D2    LB,R0    DEFT4,R2          SHOULD THIS MODULE BE LOADED                
         BEZ      S20B              NO, SKIP OVER IT                            
         CI,R0    LOADED            YES, ALREADY LOADED                         
**** OVERLAY                                                                    
         BE       S22E              YES                                         
         LW,R0    S96               MODULE ALREADY DECLARED                     
         BEZ      %+4               NO                                          
         CI,R2    SIMBASE           SIMULATOR OR RBM                            
         BGE      S22D1A            YES                                         
         B        S22D3             ENTRY ALSO                                  
         LB,R0    DEFT4,R2          GET LOAD TYPE                               
         CI,R0    ROLAY             RESIDENT                                    
         BE       S22L              YES                                         
         CI,R0    PROLAY            PERM RES                                    
         BE       S22L              YES                                         
         MTW,1    S97               SET NON-RES FLAG                            
         CI,R0    SSOLAY            IS IT SUB SYS                               
         BNE      S22J              NO                                          
         LW,R0    S81               MON DONE YET                                
         BNEZ     S22F1             YES                                         
         STW,R1   SAVER1            YES,SAVE R1                                 
         STW,R2   SAVER2            AND R2                                      
         B        S40C              GO WRITE RBM TO RAD                         
S22E     STD,R10  MSG27A+3          YES                                         
         LI,R7    MSG27             DUP. DEF ALARM                              
         B        S20A              SKIP ROM                                    
S22F     LW,R1    SAVER1            RESTORE R1                                  
         LW,R2    SAVER2            AND R2                                      
S22F1    LW,R0    KBACKBG1          LOAD IN BACKGROUND                          
         STW,R0   EXLOC1            SET EXEC9 LOC. TO START OF BCKG.            
         STW,R0   EXLOC2                                                        
         LW,R0    S83               SET TO LOAD IN CLOBBERABLE                  
         STW,R0   LDLOC1            PORTION OF RBM                              
         STW,R0   LDLOC2                                                        
S22H     STW,R2   S98               SAVE INDEX FOR LATER                        
         MTW,1    S96               SET FLAG THAT VALID MODULE                  
         CH,R2    *OVILGA           IS IT ALSO ENTRY POINT                      
         BLE      S22D1             YES                                         
         MTW,1    S89               STEP DECL. NO.                              
         B        S08               GET NEXT CONTROL BYTE                       
S22J     LW,R0    OLAYFWA                                                       
         STW,R0   LDLOC1                                                        
         STW,R0   LDLOC2                                                        
         DO       #CRASH                                                        
         CI,R2    CRASH             IS THIS THE CRASH OVERLAY                   
         BNE      S22J1             NO                                          
         LCI      2                                                             
         LM,R10   KCRASH            FIND LOAD LOCATION                          
         LW,R7    SYMT2             SIZE OF SYM TABLE                           
S22J0    CD,R10   SYMT1,R7          THIS IT                                     
         BE       S22J00            YES                                         
         BDR,R7   S22J0             NO, LOOP                                    
         B        S22J1             CAN'T FIND                                  
S22J00   LW,R0    SYMT2,R7                                                      
         SLS,R0   -2                ADDRESS TO R0                               
         FIN      #CRASH                                                        
S22J1    STW,R0   EXLOC1                                                        
         STW,R0   EXLOC2                                                        
         B        S22H                                                          
S22L     CI,R2    RBM                                                           
         BE       S22P                                                          
S22M     RES      0                                                             
         LW,R0    INITEND           LAST RESIDENT                               
         STW,R0   EXLOC1                                                        
         STW,R0   EXLOC2                                                        
         LW,R0    LDEND             NEXT LOAD ADR FOR RES                       
         STW,R0   LDLOC1                                                        
         STW,R0   LDLOC2                                                        
         LW,R0    S89               GET DECL. NO.                               
         STH,R0   DEFT3,R2          SAVE IT                                     
         B        S22H                                                          
S22P     LW,R3    DEFT2             SEE IF ANY MISSING                          
         LI,R4    0                   ROUTINES                                  
S22P1    LB,R0    DEFT4,R3                                                      
         CI,R0    1                                                             
         BE       S22Q1             YES, A MISSING ONE                          
S22Q     AI,R3    -1                DECREMENT                                   
         CI,R3    #EPI              DONE                                        
         BE       S22R              YES                                         
         B        S22P1                                                         
S22Q1    CI,R3    RBM                                                           
         BE       S22Q              OK IF RBM OR RBMEND                         
         CI,R3    RBMEND                                                        
         BE       S22Q                                                          
         LD,R10   DEFT1,R3                                                      
         STD,R10  MSG28A+3,R4       STORE NAME OF MISSING MODULE                
         AI,R4    1                 STEP INDEX                                  
         B        S22Q              GET NEXT ONE                                
S22R     CI,R4    0                 WERE THERE ANY MISSING                      
         BE       S22M              NO                                          
         BAL,R8   S78               YES, GO TYPE RELOAD MSG.                    
         B        S22M              ANSWER WAS NO TO RELOAD?                    
*                                                                               
S23      LI,R13   0                 PROCESS DEC. PRIM. REF                      
S23A     BAL,R8   S56                                                           
         LB,R3    INBUF1,R1         GET NAME LENGTH                             
         BAL,R8   S75               GO PACK NAME INTO R10,R11                   
*                                                                               
         BAL,R8   SPEEDIN           TRY TO FIND FAST                            
         B        S23J              SYMT EXIT                                   
         B        S23G              DEFT EXIT                                   
*                                                                               
*                                                                               
         LW,R2    SYMT2                                                         
         CD,R10   SYMT1,R2          SEARCH SYMT FOR DEF                         
         BE       S23J              FOUND IT                                    
         BDR,R2   %-2                                                           
         LW,R2    DEFT2                                                         
         CD,R10   DEFT1,R2          SEARCH DEFT FOR DEF                         
         BE       S23G              FOUND IT                                    
         BDR,R2   %-2                                                           
**** ENTRY POINT                                                                
         LW,R2    EPIOVX            SIZE OF EPI                                 
         LD,R7    DEFT1,R2          FIND NEXT SPOT                              
         BNEZ     %+2                                                           
         BDR,R2   %-2               A NON-ZERO ALWAYS EXISTS                    
         CW,R2    EPIOVX            ANY LEFT                                    
         BE       S23B              NO                                          
         AI,R2    1                 LAST NON-ZERO                               
         LW,R0    S96               LEGAL MODULE                                
         BEZ      S23B              NO                                          
         STD,R10  DEFT1,R2          CREATE ITEM                                 
         LW,R0    S89               DECLATION NUMBER                            
         STH,R0   DEFT3,R2          SAVE IT                                     
         MTW,1    S89               INCREMENT                                   
         LW,R0    EPIEPA            CALCULATE                                   
         AW,R0    R2                ADDRESS                                     
         SLS,R0   2                 BYTE ADDRESS                                
         STW,R0   DEFT2,R2          SAVE IT                                     
         B        S08               GET NEXT CONTROL BYTE                       
S23B     STD,R10  MSG30A+3          ILL. REF ALARM                              
         LI,R7    MSG30                                                         
         B        S22C                                                          
S23E     MTW,1    S89               STEP DECL. NO.                              
         B        S08                                                           
S23G     LW,R0    S89                                                           
         STH,R0   DEFT3,R2          SAVE DECL NO.                               
         B        S23E                                                          
S23J     LW,R0    S89                                                           
         STH,R0   SYMT3,R2          SAVE DECL. NO.                              
         B        S23E                                                          
*                                                                               
*                                   PROCESS ORG                                 
S24      BAL,R8   S60               EVALUATE EXP.                               
         LW,R0    R15                                                           
         AND,R0   K3                GET BYTE DISPLACEMENT                       
         STW,R0   S93A                                                          
         SLS,R15  -2                CHANGE TO WORD RESOL.                       
         LW,R0    R15                                                           
         SW,R0    EXLOC2            GET DISPLACEMENT OF ORG                     
*IT IS ACCEPTABLE TO BACKWARD ORG                                               
         STW,R15  EXLOC2            SET NEW EXLOC                               
         AW,R0    LDLOC2            NEX LDLOC                                   
         XW,R0    LDLOC2            KEEP OLD                                    
         CW,R0    LDLOC2            BACKWARD                                    
         BLE      S08               NO                                          
         LW,R2    S98               MODULE ID                                   
         LB,R7    DEFT4,R2          TYPE                                        
         CI,R7    SSOLAY            SUB SYS                                     
         BNE      S08               NO                                          
         SW,R0    LDLOC1            CALC BYTES                                  
         LW,R3    R0                PRESERVE WORD LENGTH                        
         SLS,R0   2                                                             
         STW,R0   WRITEDC+1         PREPARE TO WRITE                            
         LW,R0    LDLOC1            LOWER ADR                                   
         SLS,R0   2                 BYTE ADR                                    
         STW,R0   WRITEDC                                                       
         LW,R0    OLAYGRAN                                                      
         STW,R0   WRITEDC+3         SET SECTOR                                  
         LI,R7    WRITEDC           PARAMETERS                                  
         BAL,R8   WRITE             GO DO IT                                    
         LI,R2    0                 UPDATE SECTOR ADR                           
         DW,R2    S49               NO. WORDS PER SECTOR                        
         CI,R2    0                 EXTRA SECTOR                                
         BE       %+2               NO                                          
         AI,R3    1                 YES                                         
         AW,R3    WRITEDC+3         UPDATE                                      
         STW,R3   OLAYGRAN          UPDATE GRAN BASE                            
         XW,R3    WRITEDC+3         PRESERVE OLD                                
         LW,R0    LDLOC2            SET UP NEXT SEG                             
         STW,R0   LDLOC1                                                        
         LW,R0    EXLOC2            AND EXECUTION                               
         STW,R0   EXLOC1                                                        
         MTW,0    DIRADR            ONE ALREADY USED                            
         BNEZ     S08               YES                                         
         LI,R4    DIREXTRA          FIND AN ENTRY                               
         LI,R5    #SUBSYS           NO. OF EXTRAS                               
*                                                                               
S24A     RES      0         FIND NEXT SUBSYSTEM ENTRY SPACE                     
         MTW,+00  0,R4              IS THIS ONE ALREADY USED ?                  
         BEZ      S24B                NO, AVAILABLE. USE IT.                    
*                                                                               
         LW,R6    2,R4              GET WORD WITH LENGTH                        
         AND,R6   KXFF              REMOVE OTHER BYTES                          
         AW,R4    R6                STEP POINTER BY LENGTH TO NEXT ENTRY        
         BDR,R5   S24A              ANY MORE POSSIBLY LEFT ?                    
         B        S08                 NO, SKIP IT                               
*                                                                               
*                                                                               
S24B     RES      0         BUILD A SUBSYSTEM ENTRY                             
         STW,R4   DIRADR            SAVE DIRECTORY ADDRESS                      
         LW,R2    S98               MODULE ID                                   
         LD,R6    DEFT1,R2          GET NAME                                    
         LCI      2                                                             
         STM,R6   0,R4              AND PUT IN THE DIRECTORY                    
         STW,R3   5,R4              STORE BOT                                   
         LW,R3    S49               FORM GSIZE/RSIZE ENTRY WITH                 
         SLS,R3   2                 GSIZE = RSIZE = SECTOR SIZE                 
         STH,R3   R3                IN BYTES                                    
         STW,R3   3,R4              STORE IN ENTRY                              
         LI,R3    9                 SET MINIMAL ENTRY LENGTH                    
         DO       #DFACNT           IF ACCOUNT FILES...                         
          LCI      2                SET ACCOUNT NAME IN ENTRY                   
          LM,R6    SPCPR9           SAME AS IN 'CPRFILE'                        
          STM,R6   9,R4                                                         
          AI,R3    2                STEP LENGTH TO INCLUDE ACCOUNT              
         FIN      #DFACNT                                                       
         STW,R3   2,R3              SET LENGTH OF DIRE ENTRY                    
         B        S08               GO READ THE SYSTEM                          
*                                                                               
S25      LI,R13   1                 PROCESS DEC. SEC. REF.                      
         B        S23A                                                          
*                                                                               
S26      BAL,R8   S56               PROCESS DEFINE FIELD                        
         LB,R4    INBUF1,R1         R4=K                                        
         BAL,R8   S56                                                           
         LB,R5    INBUF1,R1         R5=L,LENGTH                                 
         CI,R5    32                                                            
         BLE      %+2                                                           
         WAIT     %                 CAN'T PROCESS LENGTH>32 BITS                
         BAL,R8   S60               EVALUATE EXP.                               
         LCW,R2   R14                                                           
         SLS,R15  0,R2              SET TO PROPER RESOLUTION                    
         LI,R0    -255                                                          
         AW,R4    R0                                                            
         LCW,R4   R4                R4=POS. AMOUNT OF SHIFT FROM BIT 31         
         LW,R9    LDLOC2            ADD. TO LOAD                                
         LW,R0    R4                                                            
         SLS,R0   -5                R0= NO. FULL WORDS TO BACK UP               
         SW,R9    R0                BACK UP TO PROPER WORD                      
         AND,R4   KX1F              MASK OFF BIT COUNT WITHIN WORD              
         LW,R2    S93A              GET BYTE WITHIN WORD                        
         SLS,R2   3                 CHANGE TO BIT NO.                           
         SW,R2    R4                R2=TRAILING BIT NO.                         
         BGZ      %+3               IN SAME WORD                                
         AI,R9    -1                BYTE 0, BACK UP ONE MORE WORD               
         AI,R2    32                CHANGE TO POS. BIT NO.                      
         SW,R2    R5                SUBTRACT OF LENGTH                          
         BGEZ     %+2               NOT SPLIT BETWEEN WORDS                     
         WAIT     %                 CAN'T HANDLE FIELD SPLIT BETWEEN WDS        
         AW,R2    R5                GET BACK TRAILING BIT POSITION              
         AI,R2    -32               CHANGE TO NO. TO SHIFT                      
         LCW,R4   R2                R4=NO. TO SHIFT FROM BIT 31                 
         LW,R3    KSIGN                                                         
         LCW,R6   R5                                                            
         SAS,R3   1,R6              GET MASK FOR FILED                          
         SLS,R3   -32,R5            RT. JUSTIFY MASK                            
         AND,R15  R3                MASK OUT VALUE                              
         SLS,R15  0,R4              SHIFT VALUE TO PROPER POSITION              
         SLS,R3   0,R4              SHIFT MASK TOO                              
         LW,R2    *R9               GET WORD TO MODIFY                          
         AW,R2    R15               ADD IN VALUE                                
         STS,R2   *R9               STORE NEW VALUE                             
         B        S08                                                           
*                                                                               
S27      BAL,R8   S56               PROCESS EXT. DEF.                           
         LB,R4    INBUF1,R1         GET DEF. NO.                                
         LW,R2    S89               GET HIGHEST DECL NO.                        
         CI,R2    254               TWO BYTE CONTROL                            
         BLE      S27AA             NO                                          
         SLS,R4   8                                                             
         STW,R4   S60XXX            SAVE UPPER                                  
         BAL,R8   S56                                                           
         LB,R4    INBUF1,R1         GET SECOND                                  
         AW,R4    S60XXX            COLLECT                                     
S27AA    RES      0                                                             
         BAL,R8   S60               GO EVALUATE EXP.                            
         LW,R2    DEFT2                                                         
         CH,R4    DEFT3,R2          SEARCH FRO DEF NO.                          
         BE       S27C               FOUND IT                                   
         BDR,R2   %-2                                                           
         LW,R2    SYMT2             CHECK FOR                                   
S27B     CH,R4    SYMT3,R2          RBM SYMBOL                                  
         BE       %+3                 BRANCH IF IT IS                           
         BDR,R2   S27B              CONTINUE SEARCH                             
         B        S08               TEMPORARY                                   
         STW,R15  SYMT2,R2          STORE VALUE OF DEF                          
         B        S08                                                           
**** EVALUATE DEF ENTRY OR EXIT                                                 
S27C     CI,R2    SIMBASE           SIMULATORS,RBM,RBMEND                       
         BGE      S27C1             YES                                         
         LW,R0    DEFT2,R2          GET VALUE                                   
         BEZ      S27C1             MUST BE EXIT                                
         STW,R15  *EPIEPA,R2        SAVE ENTRY DEFINITION                       
         B        S08               NEXT ITEM                                   
S27C1    STW,R15  DEFT2,R2          STORE BYTE ADDRESS                          
         B        S08                                                           
*                                                                               
S28      LW,R0    S94               PROCESS STND. CONTROL SECT.                 
         BEZ      %+2                                                           
         WAIT     %                 CAN'T HANDLE MORE THAN ONE CNTRL SCT        
S28A     BAL,R8   S56                                                           
         LB,R0    INBUF1,R1         GET SIZE OF MODULE                          
         AND,R0   KXF                                                           
         STW,R0   R2                                                            
         LI,R3    2                 SET FOR NEXT 2 BYTES OF SIZE                
S28B     BAL,R8   S56                                                           
         LB,R0    INBUF1,R1                                                     
         SLS,R2   8                                                             
         AW,R2    R0                GET NEXT 2 BYTES OF SIZE                    
         BDR,R3   S28B                                                          
         AI,R2    3                                                             
         SLS,R2   -2                CHANGE SIZE TO WORDS                        
         STW,R2   S94               STORE SIZE IN WORDS                         
         B        S08                                                           
*                                                                               
S29      LW,R0    S94               PROCESS NON STND. CNTRL SECT.               
         BEZ      %+2                                                           
         WAIT     %                 CAN'T HANDLE MORE THAN ONE CTRL SECT        
         LW,R0    S89                                                           
         STW,R0   S95               SET DECL. NO. FOR NON STND. CTRL            
         MTW,1    S89               STEP DECL. NO.                              
         B        S28A                                                          
*                                                                               
S30      BAL,R8   S60               PROCESS START ITEM                          
         LW,R0    S98                                                           
         CI,R0    RBMEND                                                        
         BE       %+4               IT IS INIT                                  
         SLS,R15  -2                ADJUST FOR WORD ADR                         
         STW,R15  BALINIT           SAVE IT                                     
         B        S08                                                           
S30B     SLS,R15  -2                CHANGE TO WA                                
         STW,R15  RBMSTART          SAVE RBM TRANSFER ADD.                      
         B        S08                                                           
*                                                                               
S31      BAL,R8   S56               PROCESS REPEAT LOAD                         
* MUST REPEAT OF LOAD ABSOLUTE 1-BYTE ZERO                                      
         LB,R2    INBUF1,R1                                                     
         BAL,R8   S56                                                           
         LB,R0    INBUF1,R1                                                     
         SLS,R2   8                 R2=REPEAT COUNT                             
         AW,R2    R0                                                            
         BAL,R8   S56                                                           
         LB,R3    INBUF1,R1         GET REPEATED ITEM CONTROL BYTE              
         CI,R3    X'41'                                                         
         BNE      S33               BRANCH IF NOT ABS 1-BYTE LOAD               
         BAL,R8   S56                                                           
         LB,R4    INBUF1,R1         GET REPEATED ITEM                           
         BNEZ     S33               BRANCH IF NOT ZERO                          
         LW,R5    S93A              NEXT BYTE TO LOAD                           
         STB,R4   *LDLOC2,R5        LOAD A BYTE                                 
         AI,R5    1                                                             
         BDR,R2   %-2               AND LOOP                                    
         DW,R4    K4                GET WORD AND BYTE EXCESS                    
         AWM,R5   LDLOC2                                                        
         AWM,R5   EXLOC2                                                        
         STW,R4   S93A                                                          
         B        S37C                                                          
*                                                                               
S33      LI,R2    X'F'              REPEAT LOAD ITEM CODE                       
         B        S20               ERROR                                       
*                                                                               
*                                                                               
*                                   &ROCESS LOAD RELOC. SHORT FORM              
S35      LI,R4    -2                SET TO WORD RELOCATION                      
         CI,R2    X'C0'                                                         
         BGE      S35J              IF REL. TO FWD. REF. USE STND. RELOC        
         AND,R2   KX3F              GET DECL. NO.                               
S35B     CI,R2    0                                                             
         BE       S35J              STND. CTRL SECT                             
         CW,R2    S95                                                           
         BE       S35J              NON STND CTRL SECT                          
*                                                                               
         LW,R7    R2                PUT FIND VALUE IN R7                        
         BAL,R8   SPEEDOUT          TRY TO FIND FAST                            
         B        S35K              SYMT                                        
         B        S35BA             DEFT                                        
*                                                                               
         LW,R3    SYMT2                                                         
         CH,R2    SYMT3,R3          SEARCH FOR DECL. NO.                        
         BE       S35K              FOUND IT                                    
         BDR,R3   %-2                                                           
         LW,R3    DEFT2                                                         
         CH,R2    DEFT3,R3          SEARCH DEFT FOR IT                          
         BE       S35BA             FOUND IT                                    
         BDR,R3   %-2                                                           
         NOP      0                 TEMPORARY                                   
S35BA    LW,R9    DEFT2,R3          GET VALUE OF DEFT                           
S35D     SLS,R9   0,R4              CHANGE TO PROPER RESOL.                     
         LI,R3    0                                                             
S35F     BAL,R8   S56                                                           
         LB,R0    INBUF1,R1                                                     
         STB,R0   R10,R3            GET WORD TO LOAD                            
         AI,R3    1                                                             
         CI,R3    4                                                             
         BL       S35F              PACK 4 BYTES                                
         LW,R2    R10               YES                                         
         AW,R2    R9                ADD IN RELOCATION BIAS                      
         LI,R3    X'7FFFF'          GET MASK                                    
         SLS,R3   0,R4              LINE UP MASK RIGHT                          
         STS,R2   R10               STORE VALUE IN WORD                         
         LW,R0    S93A              ARE WE ON BYTE 0                            
         BEZ      S35H              YES                                         
         LI,R0    0                 NO                                          
         STW,R0   S93A              RESET TO BYTE 0                             
         MTW,1    LDLOC2            STEP TO NEXT ADD.                           
         MTW,1    EXLOC2                                                        
S35H     STW,R10  *LDLOC2           STORE WORD                                  
         MTW,1    LDLOC2            STEP TO NEXT ADD.                           
         MTW,1    EXLOC2                                                        
         B        S37C              DO LOAD LIMIT CHECK                         
S35J     LW,R9    EXLOC1            GET FWA OF LOAD AREA                        
         SLS,R9   2                 CHANGE TO BYTE ADD.                         
         B        S35D                                                          
S35K     LW,R9    SYMT2,R3          GET VALUE OF DEF                            
         B        S35D                                                          
*                                                                               
*                                   PROCESS LOAD RELOC. LONG FORM               
S36      AND,R2   KXF                                                           
         CI,R2    4                 FORWARD REF                                 
         BANZ     S36B              YES                                         
         BAL,R8   S56                                                           
         LB,R4    INBUF1,R1         GET DECL. NO.                               
         CI,R2    8                 TWO BYTES                                   
         BANZ     S36AA             NO                                          
         SLS,R4   8                                                             
         STW,R4   S60XXX            SAVE UPPER                                  
         BAL,R8   S56                                                           
         LB,R4    INBUF1,R1         GET LOWER                                   
         AW,R4    S60XXX            COLLECT                                     
S36AA    RES      0                                                             
         XW,R4    R2                                                            
         AND,R4   K3                GET RESOLUTION                              
         LCW,R4   R4                FOR SHIFT                                   
         B        S35B                                                          
S36B     LI,R4    -2                SET FOR WORD RESOL.                         
         BAL,R8   S56               PASS OVER DECL. NO.                         
         CI,R2    8                 TWO BYTES                                   
         BANZ     S35J              NO                                          
         BAL,R8   S56                                                           
         B        S35J              TREAT AS STND. CNTRL SECT.                  
*                                                                               
S37      AND,R2   KXF               PROCESS LOAD ABSOLUTE                       
         BNEZ     %+2               GET NO. BYTES                               
         AI,R2    16                                                            
         LW,R9    R2                                                            
         LW,R3    S93A              GET NEXT BYTE WITHIN WORD TO STORE          
         AW,R9    R3                                                            
S37B     BAL,R8   S56                                                           
         LB,R0    INBUF1,R1                                                     
         STB,R0   *LDLOC2,R3        STORE BYTES                                 
         AI,R3    1                                                             
         BDR,R2   S37B                                                          
         AND,R3   K3                MASK OFF NEXT BYTE TO STORE                 
         STW,R3   S93A              STORE NEXT BYTE TO STORE                    
         SLS,R9   -2                                                            
         AWM,R9   LDLOC2            UP FWA TO STORE                             
         AWM,R9   EXLOC2                                                        
S37C     LW,R0    LDLOC2            CHECK FOR                                   
         CI,R0    SYSLDFWA           LOAD LIMIT EXCEEDED                        
         BL       S08                 BRANCH IF NOT                             
         LI,R7    MSG4              OUTPUT ERROR MESSAGE AND                    
         B        S20A               FLUSH OBJECT MODULE                        
*                                                                               
S38      BAL,R8   S56                 SKIP  TYPE 13(DEBUG LOAD ITEM)            
         LB,R3    INBUF1,R1                                                     
         BAL,R8   S56               PASS OVER NAME                              
         BDR,R3   %-1                                                           
         BAL,R8   S56               PASS OVER FWD REF ITEM                      
         BAL,R8   S56                                                           
         B        S08               EXIT FOR NEXT LOAD ITEM                     
*                                                                               
S40      BAL,R8   S56               END ITEM, GET SEVERITY LEVEL                
         LW,R0    BALINIT           END 'ADR'                                   
         BEZ      %+5               NO                                          
         SW,R0    EXLOC1            BACKUP LENGTH                               
         STW,R0   S94               SAVE IT                                     
         AW,R0    LDLOC1            CALC BAL ADR                                
         BAL,R11  *R0               GO TO 'ADR'                                 
         MTW,1    S85               SET FLAG THAT END ITEM READ                 
         LW,R0    LDLOC1            INITIAL LOADING POSITION                    
         CW,R0    LDLOC2            FINAL LOADING POSITION                      
         BE       S42               NULL MODULE IGNORE                          
         LW,R2    S98               GET INDEX INTO OVLOAD OR DEFT               
         LW,R0    S97                                                           
         BNEZ     S41               LOADING OLAYS                               
**** RESIDENT                                                                   
         CH,R2    *OVILGA           OVERLAY                                     
         BG       S40A              NO                                          
         LW,R0    S94               SIZE                                        
         SLS,R0   2                 BYTES                                       
         STH,R0   *OVILGA,R2        STORE IT AS LENGTH                          
         LW,R0    EXLOC1            LOCATION                                    
         SLS,R0   2                 AS BYTE ADDRESS                             
         STW,R0   *OVISKA,R2        STORE IT IN SEEK                            
         LW,R7    EPIOVX            EPI SIZE                                    
         CB,R2    DEFT5,R7          OVID SAME                                   
         BE       S40B              YES                                         
S40A1    BDR,R7   %-2               NO                                          
         B        S40A              DONE                                        
S40B     LW,R0    *EPIEPA,R7        MUST BE ENTRY                               
         SLS,R0   -2                WORD ADR                                    
         AW,R0    BRANCH            MAKE DIRECT BRANCH                          
         XW,R0    *EPIEPA,R7        STORE IT                                    
         SLS,R0   -2                WORD ADDRESS                                
***************************                                                     
         LW,R8    DEFT2,R7          GET TABLE VALUE                             
         SLS,R8   -2                WORD ADDRESS                                
         LW,R1    S94               LENGTH OF OVERLAY                           
         AI,R1    -1                ADJUST FOR LOOP                             
         BLEZ     S40B1                                                         
         LW,R10   R0                BUILD BAL,R0 DEF                            
         AW,R10   BALINST                                                       
         LW,R11   BALNOR            MASK FOR NO R REGISTER                      
S40B4    CS,R10   *LDLOC1,R1        DOES THIS ONE MATCH                         
         BE       S40B3             YES                                         
S40B2    BDR,R1   S40B4             AGAIN                                       
         CI,R1    0                 ONE MORE IF ZERO                            
         BE       S40B4                                                         
         B        S40B1             DONE                                        
S40B3    LW,R9    *LDLOC1,R1        GET INSTRUCTION                             
         AND,R9   KYFFFE            CLEAR ADDRESS                               
         OR,R9    R8                FILL IN TABLE VALUE                         
         STW,R9   *LDLOC1,R1        RESTORE INSTRUCTION                         
         B        S40B2             DO NEXT                                     
S40B1    RES      0                                                             
***************************                                                     
         B        S40A1                                                         
S40A     EQU      %                                                             
         DO       #PATCH                                                        
         CI,R2    RBM               IS THIS RBM                                 
         BNE      S40T              NO                                          
         LW,R1    EPIOVX            GET NO. OF EP'S                             
         LD,R7    DEFT1,R1          FIND NO. OF ACTUAL                          
         BNEZ     %+2               FOUND LAST                                  
         BDR,R1   %-2               NEXT                                        
         STW,R1   *S:TRA            SAVE IT                                     
S40T     RES      0                                                             
         CI,R2    RBMEND            IS IT RBMEND                                
         BNE      S40TT             NO                                          
         LW,R1    *S:TRA            GET NO. DEFINED IN RBM                      
         SLS,R1   1                 DOUBLE IT                                   
         LW,R0    DEFT1,R1          GET NAME                                    
S40TA    STW,R0   *LDLOC2,R1        STORE IT                                    
         BDR,R1   %-2               NEXT                                        
         LW,R1    *S:TRA                                                        
         SLS,R1   1                                                             
         AWM,R1   LDLOC2                                                        
         AWM,R1   EXLOC2                                                        
         AWM,R1   S94                                                           
S40TT    RES      0                                                             
         FIN      #PATCH                                                        
         LI,R0    LOADED                                                        
         STB,R0   DEFT4,R2          SET FLAG THAT MODULE LOADED                 
         LW,R0    S94               GET SIZE                                    
         AW,R0    EXLOC1            UP TO NEXT FWA                              
         LW,R1    R0                SAVE                                        
         AI,R0    1                                                             
         AND,R0   KM2               START ON DW BOUND.                          
         SW,R1    R0                GET NEG DIFF                                
         LCW,R1   R1                COMP                                        
         AW,R1    LDLOC2            ADJUST LDLOC EQUALLY                        
         STW,R1   LDLOC1                                                        
         STW,R1   LDLOC2                                                        
         STW,R1   LDEND                                                         
         LW,R1    R0                PRESERVE                                    
         DO       1-#ONLINE                                                     
         MTW,0    BOUNDFLG          BOUNDING NEEDED                             
         BEZ      S40TX             NO                                          
*                                   YES                                         
         AI,R0    X'F'              ROUND TO EVEN X'10'                         
         AND,R0   FFFFFFF0                                                      
         SW,R1    R0                GET NEG DIFF                                
         LCW,R1   R1                COMP                                        
         AW,R1    LDLOC2            ADJUST LDLOC EQUALLY                        
         STW,R1   LDLOC1                                                        
         STW,R1   LDLOC2                                                        
         STW,R1   LDEND                                                         
S40TX    RES      0                                                             
         FIN      1-#ONLINE                                                     
         STW,R0   EXLOC1                                                        
         STW,R0   EXLOC2                                                        
         STW,R0   INITEND           SAVE EACH TIME                              
         LW,R0    RBMGRAN           FIRST WRITE                                 
         CI,R0    1                                                             
         BNE      %+3                                                           
         LI,R0    X'40'             BASE IF RBM MODULE                          
         B        %+3                                                           
         LW,R0    OLAYFWA                                                       
         AI,R0    OLAYSIZE          BASE OTHERWISE                              
         SLS,R0   2                 BYTE ADDRESS                                
         STW,R0   WRITEDC           PUT IN PACKET                               
         SLS,R0   -2                WORD ADDRESS                                
         LW,R5    LDLOC1                                                        
         SW,R5    R0                GET LENGTH                                  
         LI,R4    0                                                             
         DW,R4    S49               CALC NO OF SECTORS                          
         CI,R5    0                 ANY                                         
         BE       S40V              NO                                          
         LW,R1    R5                SAVE IT                                     
         XW,R5    RBMGRAN           GET PRESENT BASE                            
         AWM,R5   RBMGRAN           UPDATE IT                                   
         STW,R5   WRITEDC+3         SET GRAN                                    
         LW,R5    R1                RESTORE IT                                  
         LW,R1    R4                PRESERVE REMAINDER                          
         MW,R5    S49               WORDS TO WRITE                              
         CI,R2    RBMEND            IS MODULE INIT                              
         BNE      %+2               NO                                          
         AW,R5    R1                WRITE IT ALL                                
         SLS,R5   2                 BYTE COUNT                                  
         STW,R5   WRITEDC+1         PUT IN PACKET                               
         LI,R7    WRITEDC                                                       
         BAL,R8   WRITE             WRITE THIS PART                             
         LW,R0    WRITEDC+3         FIRST WRITE                                 
         CI,R2    RBMEND            MODULE INIT                                 
         BE       S40V              YES                                         
         LW,R4    OLAYFWA                                                       
         AI,R4    OLAYSIZE          NEW BASE                                    
         AW,R4    R1                NEW UPPER BOUND                             
         LW,R3    LDLOC1            OLD UPPER BOUND                             
         STW,R4   LDLOC1                                                        
         STW,R4   LDLOC2                                                        
         STW,R4   LDEND                                                         
*        MOVE FROM END TOWARD DISPLACEMENT                                      
*        TO AVOID RANGE OVERLAP PROBLEMS                                        
*        (ONLY SIGNIFICANT FOR FIRST WRITE)                                     
         CW,R3    R4                                                            
         BE       S40V              NO MOVE                                     
         BG       S40U              B IF MOVING DOWNWARD                        
*                                                                               
*                                   MOVE UPWARD FROM TOP                        
         LW,R5    R1                INDEX                                       
         SW,R4    R1                                                            
         AI,R4    -1                NEW BASE-1                                  
         SW,R3    R1                                                            
         AI,R3    -1                OLD BASE-1                                  
         LW,R0    *R3,R5                                                        
         STW,R0   *R4,R5                                                        
         BDR,R5   %-2               MOVE                                        
         B        S40V                                                          
*                                                                               
S40U     RES      0                 MOVE DOWNWARD FROM BOTTOM                   
         LCW,R5   R1                INDEX                                       
         LW,R0    *R3,R5                                                        
         STW,R0   *R4,R5                                                        
         BIR,R5   %-2               MOVE                                        
*                                                                               
S40V     RES      0                                                             
         B        S42                                                           
S40C     RES      0                                                             
         LI,R2    RBMEND            SET UP BACKGROUND                           
         LW,R0    DEFT2,R2          GET VALUE FOR END OF RESIDENT RBM           
         SLS,R0   -2                CHANGE TO WA                                
         AI,R0    1                 ADD 1 FOR FIRST USUAVLE CELL                
         AI,R0    511               GET NEXT PAGE BOUND.                        
         LI,R2    X'1FE00'                                                      
         AND,R0   R2                                                            
         DO       #MAP                                                          
         STW,R0   K:FGDBG1                                                      
         STW,R0   K:FGDBG2                                                      
         LW,0     STVMVAL           OVERIDE DEFUAL WITH SYSGEN INPUT            
         STW,R0   KBACKBG1                                                      
         ELSE     #MAP                                                          
         STW,R0   KBACKBG1                                                      
         FIN      #MAP                                                          
         DO       #DELMDL           STORES FWA OF DELTA INTO K:DELTA            
         LI,R2    DELTA1            SET FWA OF DELTA                            
         LW,R0    DEFT2,R2                                                      
         SLS,R0   -2                CHANGE TO WA                                
         STW,R0   K:DELTA           SET FWA OF DELTA                            
         FIN                                                                    
         LI,R1    4                                                             
         LI,R2    FPSIM1+3          SET UP ADDRESSES OF SIM. ROUTINES           
S40G     LW,R0    DEFT2,R2          GET BYTE ADDRESS OF SIM. ROUTINE            
        SLS,R0   -2                CHANGE TO WORD ADD.                          
        STW,R0   K:FPSIM-1,R1      SAVE ADDRESS OF SIM. ROUTINE                 
        AI,R2    -1                                                             
        BDR,R1   S40G                                                           
*                                                                               
*        WRITE ALL RBM TO RAD EVEN THOUGH TABLES ARE NOT YET COMPLETE           
*                                                                               
*                                                                               
*                                                                               
*                                                                               
*                                                                               
         LI,R0    1                 START OF SP                                 
         STW,R0   WRITEDC+3             FOR RBM                                 
         LW,R0    WRITEDC+3         SAVE START GRANULE NO.                      
         STW,R0   S81               FOR RES. MONITOR                            
         DO       #ONLINE                                                       
         LI,R0    BUFFER                                                        
         ELSE     #ONLINE                                                       
         LI,R0    X'40'             FWA TO WRITE FROM = X'40'                   
         FIN      #ONLINE                                                       
         SLS,R0   2                 MAKE BA                                     
         STW,R0   WRITEDC           SET UP PAR. TAB.                            
         LW,R8    INITEND                                                       
         SLS,R8   2                                                             
         SW,R8    WRITEDC           R8 = NO. BYTES TO WRITE                     
         STW,R8   S48               TOTAL BBYTE COUNT                           
*                                                                               
         LW,R1    R8                                                            
         SLS,R1   -3                GET HALF # OF WORDS                         
         LI,R0    0                 CLEAR RO FOR DIVIDE                         
         DW,R0    S49               # OF SECTORS TO R1                          
         STW,R1   S47                                                           
         MW,R1    S49               WORD COUNT FOR 1/2 THE SECTORS              
         SLS,R1   2                 TO BYTES                                    
*                                                                               
         STW,R1   WRITEDC+1         BYTE COUNT                                  
*                                   WRITE HAS BEEN DONE                         
*                                   SEEK HAS BEEN RETAINED                      
*                                                                               
         LW,R1    WRITEDC                                                       
         AW,R1    WRITEDC+1         BEW BYTE ADDRESS                            
         STW,R1   WRITEDC                                                       
*                                                                               
         LW,R1    S48                                                           
         SW,R1    WRITEDC+1         REMAINING BYTE COUNT                        
         STW,R1   WRITEDC+1                                                     
*                                                                               
         LW,R1    S47                                                           
         AWM,R1   WRITEDC+3         NEW SECTORR #                               
*                                   WRITE HAS BEEN DONE                         
         LW,R1    OLAYGRAN          GET LAST GRAN                               
         STW,R1   WRITEDC+3                         TO WRITE                    
         AI,R1    -1                CALC BOF                                    
         STW,R1   SPCPR6            STORE EOT                                   
         B        S22F              DO JCP                                      
S41      LW,R0    S94               GET SIZE                                    
         SLS,R0   2                 CHANGE TO BYTES                             
         STH,R0   *OVILGA,R2        SAVE BYTE SIZE OF OLAY                      
         STW,R0   WRITEDC+1         SET BYTE COUNT TO WRITE                     
         LW,R0    OLAYGRAN          ALLOCATED                                   
         BNEZ     S41AA             YES                                         
         LH,R1    *OVILGA           NO OF OVERLAYS                              
         LI,R5    0                                                             
S41AB    LB,R0    DEFT4,R1          GET OVERLAY TYPE                            
         CI,R0    ROLAY             RESIDENT                                    
         BE       %+3               YES                                         
         CI,R0    PROLAY            PROLAY                                      
         BNE      %+2               NO                                          
         AI,R5    1                 INCREMENT COUNT                             
         BDR,R1   S41AB                                                         
         MI,R5    512               CALC WORDS FOR OVERLAYS                     
         LW,R0    INITEND                                                       
         AI,R0    -X'40'            SIZE OF PROLAYS                             
         AW,R5    R0                                                            
         AI,R5    INITSIZE                                                      
         LI,R4    0                                                             
         DW,R4    S49               CALCULATE NO OF SECTORS                     
         AI,R5    1                 ROUND UP                                    
         AI,R5    1                 OFFSET IN SP                                
         STW,R5   OLAYGRAN          SAVE OLAY GRAN BASE                         
         LW,R0    R5                                                            
S41AA    STW,R0   WRITEDC+3         SET FOR WRITE                               
         LW,R1    WRITEDC+3         GET GRANULE NO. FOR THIS OLAY               
         AI,R1    -1                MAKE RELATIVE TO START OF FILE              
         STB,R1   *OVIGRA,R2        SAVE GRANULE NUMBER                         
         LW,R0    LDLOC1            GET LOAD LOCATION                           
         SLS,R0   2                                                             
         STW,R0   WRITEDC           SET BYTE ADD. TO WRITE FROM                 
         LB,R0    DEFT4,R2          GET TYPE                                    
         CI,R0    SSOLAY            SUB SYS                                     
         BNE      %+4               NO                                          
         LI,R0    0                 CLEAR ENTRY POINT                           
         STW,R0   *EPIEPA,R2                                                    
         B        S41C              DON'T PROCESS                               
**** NON-RESIDENT                                                               
         LI,R7    #EPI              SIZE OF EPI                                 
         CB,R2    DEFT5,R7          OVID SAME                                   
         BE       S41B              YES                                         
S41A     BDR,R7   %-2               NO                                          
         B        S41C              DONE                                        
S41B     LW,R0    DEFT2,R7          EXIT OR ENTRY                               
         SLS,R0   -2                WORD ADDRESS                                
         CW,R0    EPIBA             ENTRY OR EXIT                               
         BG       S41D              EXIT                                        
         LW,R0    *EPIEPA,R7        GET ENTRY IN OVERLAY                        
         SLS,R0   -2                WORD ADDRESS                                
         LB,R8    DEFT5,R7          GET OVID                                    
         SLS,R8   16                BITS8-15                                    
         AW,R0    R8                GATHER                                      
         AW,R0    CAL1OV            MAKE IT A CAL1                              
         XW,R0    *EPIEPA,R7        PUT IT AWAY                                 
         SLS,R0   -2                WORD ADDRESS                                
***************************                                                     
         LW,R8    DEFT2,R7          GET TABLE VALUE                             
         SLS,R8   -2                WORD ADDRESS                                
         LW,R1    S94               LENGTH OF OVERLAY                           
         AI,R1    -1                ADJUST FOR LOOP                             
         BLEZ     S41B1                                                         
         LW,R10   R0                BUILD BAL,R0 DEF                            
         AW,R10   BALINST                                                       
         LW,R11   BALNOR            MASK FOR NO R REGISTER                      
S41B4    CS,R10   *LDLOC1,R1        DOES THIS ONE MATCH                         
         BE       S41B3             YES                                         
S41B2    BDR,R1   S41B4             AGAIN                                       
         CI,R1    0                 ONE MORE IF AERO                            
         BE       S41B4                                                         
         B        S41B1             DONE                                        
S41B3    LW,R9    *LDLOC1,R1        GET INSTRUCTION                             
         AND,R9   KYFFFE            CLEAR ADDRESS                               
         OR,R9    R8                FILL IN TABLE VALUE                         
         STW,R9   *LDLOC1,R1        RESTORE INSTRUCTION                         
         B        S41B2             DO NEXT                                     
S41B1    RES      0                                                             
***************************                                                     
         B        S41A                                                          
S41D     RES      0                                                             
         LW,R8    DEFT2,R7          GET ADDRESS                                 
         SLS,R8   -2                WORD ADDRESS                                
         LW,R0    *R8               GET INSTRUCTION                             
         LI,R10   0                 DEFAULT IF OVERFLOW                         
         LW,R1    EPIOVX            SIZE OF EP TABLE                            
S41C1    LW,R9    *EPIEPA,R1        GET NEXT EP                                 
         BNEZ     S41C2             NOT EMPTY                                   
         LW,R9    DEFT2,R1          ONLY USE IF EXIT SLOT                       
         SLS,R9   -2                WORD ADDRESS                                
         CW,R9    EPIBA             EXIT                                        
         BLE      S41C3             NO                                          
         LW,R10   R1                SAVE AS POSSIBLE NEXT SLOT                  
         B        S41C3             TRY NEXT                                    
S41C2    CW,R0    *EPIEPA,R1        SAME AS THIS ONE                            
         BNE      S41C3             NO                                          
         LW,R3    R1                YES REUSE IT                                
         B        S41C4                                                         
S41C3    BDR,R1   S41C1             DO NEXT                                     
         LW,R3    R10               USE EMPTY ONE                               
S41C4    RES      0                                                             
         STW,R0   *EPIEPA,R3        STORE IT                                    
         LW,R0    EPIEPA            CREATE CAL1                                 
         AW,R0    R3                                                            
         AW,R0    CAL1OV                                                        
         STW,R0   *R8               REPLACE OLD BRANCH                          
         B        S41A                                                          
S41C     EQU      %                                                             
         LI,R7    WRITEDC                                                       
         BAL,R8   WRITE             WRITE OLAY ON RAP                           
         LW,R2    S98               GET OVID                                    
         LW,R0    SEEK              GET SEEK ADR                                
         STW,R0   *OVISKA,R2        SAVE IT                                     
         LI,R0    0                                                             
         LW,R1    S94               COMPUTE NO. GRANULES USED                   
         DW,R0    S49               S49=NO. WDS/SECT.                           
         CI,R0    0                                                             
         BE       %+2               NO REMAINDER                                
         AI,R1    1                                                             
         AW,R1    WRITEDC+3                                                     
         STW,R1   WRITEDC+3         SET NEXT GRANULE NO. TO WRITE FROM          
         STW,R1   OLAYGRAN          UPDATE OLAY GRAN BASE                       
         LW,R2    S98               MODULE ID                                   
         LB,R0    DEFT4,R2          TYPE                                        
         CI,R0    SSOLAY            SUB SYS                                     
         BNE      S41CCC            NO                                          
         LW,R3    DIRADR            DIRECTORY RESIDENT IN MEMORY ?              
         BEZ      S41CCC              NO, DON'T TRY TO FORM AN ENTRY            
*                                                                               
         LW,R4    R1                COPY NEXT SECTOR AFTER END AND              
         SW,R4    5,R3              COMPUTE FSIZE, = EOT-BOT, AND               
         STW,R4   4,R3              SET IN THE DIRECTORY ENTRY                  
         AI,R1    -1                COMPUTE TRUE EOT, AND                       
         STW,R1   6,R3              STORE THAT IN THE DIRECTORY ENTRY           
*                                                                               
S41CCC   RES      0                                                             
         LI,R0    LOADED                                                        
         STB,R0   DEFT4,R2          STORE TYPE                                  
S42      BAL,R8   S70               GO DO HOUSEKEEPING                          
         LH,R0    READBI+2                                                      
         CI,R0    DT:PR             IS INPUT PAPER TAPE                         
         BNE      S01               NO                                          
S44      LI,R9    0                 YES, USE STEP MODE                          
         LI,R7    MSG33             GO TYPE  'TYPE C OR E'                      
         BAL,R8   TYPE                                                          
         LI,R7    READTY                                                        
         BAL,R8   READ              READ INPUT                                  
         LB,R0    INBUF                                                         
         CI,R0    'C'               IS IT CONT? (C)                             
         BE       S01               YES                                         
         CI,R0    'E'               IS IT END? (E)                              
         BE       S50               YES, END OF OBJ. MOD.                       
         BNE      S44               NO, ERROR                                   
*                                                                               
S47      DATA     0                 SECTORS IN FIRST WRITE                      
S48      DATA     0                 TOTAL BYTE COUNT                            
S49      DATA     0                 NO. WDS/SECT. FOR SP AREA                   
S50      LH,R3    *OVILGA           SEE IF ANY MISSING OLAYS                    
         LI,R4    0                                                             
         LB,R0    DEFT4,R3                                                      
         CI,R0    LOADED                                                        
         BNE      %+3               NO                                          
S50B     BDR,R3   %-3               YES                                         
         B        S50E              DONE                                        
         LD,R10   DEFT1,R3          STORE NAME OF MISSING OLAYS                 
         STD,R10  MSG28A+3,R4                                                   
         AI,R4    1                                                             
         B        S50B                                                          
S50E     CI,R4    0                 WERE THERE ANY MISSING                      
         BE       T01               NO, EXIT 'S' REGION                         
         BAL,R8   S78               YES, GO TYPE ALARM AND,RELOAD?              
         B        T01               IF RETURN, NO INPUT TO RELOAD?              
         PAGE                                                                   
*                                                                               
*                                                                               
*                                   SBR TO READ NEXT CARD                       
S55      STW,R8   S55L                                                          
S55A     LI,R7    READBI                                                        
         BAL,R8   READ              GO READ NEXT CARD                           
         CI,R8    0                 WAS AN EOF READ                             
         BE       S55AF             NO                                          
         LW,R0    S85               WAS AN END ITEM LAST THIMG READ             
         BNEZ     S55AD             YES,EOF OK                                  
         MTW,1    S84               IGNORE FIRST                                
         BEZ      S55A               EOD AFTER SYSLOAD                          
         LI,R7    MSG31             NO ERROR                                    
         B        S55C              ERROR - EOF BEFORE END ITEM                 
S55AD    LW,R2    S98               GET LAST ID BY DEF                          
         CI,R2    JCP               WAS LAST MODULE JCP    /SIG7-1769/*C5732    
         BNE      S55A              NO, READ NEXT CARD     /SIG7-1769/*C5732    
         B        S50               YES,EXIT AND CHECK MISSING IDENTS           
S55AF    LW,R2    INBUF1                                                        
         AND,R2   KXFF                                                          
         BEZ      S55BE             ERROR IF RECORD SIZE=0                      
         STW,R2   S91               SAVE RECORD SIZE                            
         AI,R2    -1                SET FOR CKSM                                
         LI,R3    0                                                             
S55B     LB,R0    INBUF1,R2                                                     
         AW,R3    R0                COMPUTE CKSM                                
         BDR,R2   S55B                                                          
         CI,R2    -1                                                            
         BNE      S55B               GO BACK FOR LAST BYTE                      
         LI,R1    2                                                             
         LB,R0    INBUF1,R1         GET CKSM FROM CARD                          
         SLS,R0   1                 MULT. BY 2                                  
         LI,R1    X'FF'                                                         
         CS,R0    R3                IS CKSM OK                                  
         BE       S55E              YES                                         
S55BE    LI,R7    MSG23             TYPE 'BI CKSM ERR'                          
S55C     LI,R9    0                                                             
         BAL,R8   TYPE                                                          
         WAIT     %                 HALT AFTER ERROR                            
         B        S55A                                                          
S55E     LI,R1    1                                                             
         LB,R0    INBUF1,R1         IS SEQ. NO OK                               
         CB,R0    S90                                                           
         BE       S55G              YES                                         
         LI,R7    MSG24             NO, TYPE 'BI SEQ ERR'                       
         B        S55C                                                          
S55G     MTB,1    S90               STEP SEQ. NO.                               
         LI,R0    0                                                             
         STW,R0   S85               RESET END ITEM READ FLAG                    
         LI,R1    3                 SET INDEX TO PROCESS CARD                   
         B        *%+1              EXIT                                        
S55L     DATA     0                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
S56      AI,R1    1                 SBR TO GET NEXT BYTE                        
         CW,R1    S91               IS THIS LAST BYTE                           
         BNE      *R8               NO                                          
         LCFI     14                SET TO SAVE 14 REGS                         
         STM,R2   S56C              SAVE REGS                                   
         BAL,R8   S55               READ NEXT CARD                              
         LCFI     14                                                            
         LM,R2    S56C                                                          
         B        S56                                                           
S56C     RES      14                                                            
         PAGE                                                                   
*                                                                               
*                                                                               
*                                   EVALUATE EXPRESSION SBR                     
*                                   CALL BAL,R8  S60                            
*                                                                               
*                                   RETURNS                                     
*                                     R14=RESOLUTION                            
*                                     R15=VALUE                                 
*                                   USES R0-R3,R8-R10,R13-R15                   
*                                                                               
*                                                                               
S60      STW,R8   S68               SAVE RETURN                                 
         LI,R14   -1                                                            
         LI,R15   0                                                             
S60A     BAL,R8   S56                                                           
         LB,R2    INBUF1,R1         GET CONTROL BYTE                            
         LW,R3    R2                                                            
         BEZ      S20               ERROR IF ZERO                               
         CI,R3    2                                                             
         BL       S61               ADD CONSTANT                                
         BE       S66               END EXPRESSION                              
         SLS,R3   -2                                                            
         AND,R3   KXF                                                           
         AI,R3    -8                                                            
         BLZ      S20               ERROR, ILL. CONTROL BYTE                    
         LW,R9    R2                                                            
         AND,R9   K3                SAVE RESOLUTION                             
         LH,R0    S69,R3                                                        
         AND,R0   HWMASK                                                        
         B        *R0               GO TO PROPER SECTION                        
         PAGE                                                                   
S61      LI,R2    0                 PROCESS ADD CONSTANT                        
S61A     BAL,R8   S56                                                           
         LB,R0    INBUF1,R1                                                     
         STB,R0   R10,R2            STORE CONSTANT IN R10                       
         AI,R2    1                                                             
         CI,R2    4                                                             
         BL       S61A                                                          
         AW,R15   R10               ADD CONSTANT TO ACC. VALUE                  
         B        S60A              EXIT                                        
         PAGE                                                                   
*                                                                               
S62      LI,R13   0                 PROCESS ADD VALUE OF DECL.                  
S62A     BAL,R8   S56                                                           
         LB,R0    INBUF1,R1         GET DECL. NO.                               
         LW,R3    S89               HIGHEST DECL. NO.                           
         CI,R3    254               TWO BYTE                                    
         BLE      S62AA             NO                                          
         SLS,R0   8                                                             
         STW,R0   S60XXX            SAVE UPPER                                  
         BAL,R8   S56                                                           
         LB,R0    INBUF1,R1         GET LOWER                                   
         AW,R0    S60XXX            COLLECT                                     
S62AA    RES      0                                                             
         BEZ      S62G              STND. CNTROL SECT.                          
         CW,R0    S95                                                           
         BE       S62G              NON STND. CNTRL SECT                        
*                                                                               
         LW,R7    R0                PUT FIND VALUE IN R7                        
         BAL,R8   SPEEDOUT          TRY TO FIND QUICK                           
         B        S62AB             SYMT                                        
         B        S62H              DEFT                                        
*                                                                               
         LW,R3    DEFT2                                                         
         CH,R0    DEFT3,R3          SEARCH FOR DECL. NO.                        
         BE       S62H              FOUND IT                                    
         BDR,R3   %-2                                                           
         LW,R3    SYMT2                                                         
         CH,R0    SYMT3,R3          SEARCH FOR DECL. NO.                        
         BE       S62AB             FOUND IT                                    
         BDR,R3   %-2                                                           
         NOP      0                 TEMPORARY                                   
S62AB    LW,R10   SYMT2,R3          FOUND IT                                    
S62C     LW,R0    R13                                                           
         BEZ      %+2               ADD DECL.                                   
         LCW,R10  R10               SUB DECL.                                   
         LW,R0    R14                                                           
         BLZ      S62E              RES. NOT ESTABLISHED YET                    
         CW,R9    R14                                                           
         BE       S62E                                                          
         WAIT     %                 CAN'T HANDLE MIXED MODE EXPRESSION          
S62E     STW,R9   R14               STORE RESOL.                                
         LCW,R2   R14                                                           
         SAS,R10  0,R2              SET VALUE TO PROPER RES.                    
         AW,R15   R10               ADD TO ACC. SUM                             
         B        S60A                                                          
S62G     LW,R10   EXLOC1            GET VALUE FOR CONTROL SECTION               
         SLS,R10  2                                                             
         B        S62C                                                          
S62H     LW,R10   DEFT2,R3                                                      
         B        S62C                                                          
*                                                                               
S63      LI,R13   1                 PROCESS SUB VALUE OF DECL.                  
         B        S62A                                                          
*                                                                               
S64      LW,R2    R14               PROCESS CHANGE EXP RESOL.                   
         BLZ      S60A              NO RESOL. EST. YET                          
         SW,R2    R9                                                            
         SLS,R15  0,R2              CHANGE RESOL.                               
         B        S60A                                                          
*                                                                               
S65      LI,R14   0                 PASS OVER ADD/SUB VALUE OF FWD REF          
         BAL,R8   S56                                                           
         BAL,R8   S56                                                           
         B        S60A                                                          
         PAGE                                                                   
S66      LW,R2    R14                                                           
         BGEZ     %+3               RESOL. IS SET                               
         LI,R14   2                 FORCE TO WORD                               
         LI,R2    2                 RESOLUTION                                  
         SLS,R15  0,R2              MAKE BYTE RESOL.                            
         B        *S68              EXIT EVAL. EXP.                             
*                                                                               
S68      DATA     0                 RETURN ADDRESS                              
S60XXX   DATA     0                                                             
*                                                                               
S69      DATA,2   S62,S65,S63,S65                                               
         DATA,2   S64,S20,S20,S20                                               
         PAGE                                                                   
*                                                                               
*                                                                               
*                                                                               
*                                   DO HOUSEKEEPING SBR                         
*                                   RUNS AFTER AN END ITEM OR A                 
*                                     DECK HAS BEEN SKIPPED                     
*                                   CALL  BAL,R8  S70                           
*                                                                               
S70      LI,R0    0                                                             
         STW,R0   S90                                                           
         STW,R0   S93A                                                          
         STW,R0   S94                                                           
         STW,R0   S95                                                           
         STW,R0   S96                                                           
         STW,R0   S97                                                           
         STW,R0   LDLOC1                                                        
         STW,R0   LDLOC2                                                        
         STW,R0   DIRADR                                                        
         STW,R0   BALINIT                                                       
         LW,R1    DEFT2                                                         
         STH,R0   DEFT3,R1          CLEAR DECL. NO.                             
         BDR,R1   %-1                                                           
         LW,R1    SYMT2                                                         
         STH,R0   SYMT3,R1                                                      
         BDR,R1   %-1                                                           
         LI,R0    1                                                             
         STW,R0   S89                                                           
         B        *R8               EXIT                                        
         PAGE                                                                   
*                                                                               
*                                   SRR TO STORE NAME IN R10,R11                
*                                   CALL IS BAL,R8  S75                         
*                                                                               
*                                      R3= NO. BYTES IN NAME                    
*                                                                               
*                                                                               
S75      STW,R8   S75C              SAVE EXIT                                   
         LW,R10   KBLANKS                                                       
         LW,R11   KBLANKS                                                       
         LI,R2    0                                                             
S75A     BAL,R8   S56               STEP TO NEXT BYTE                           
         LB,R0    INBUF1,R1                                                     
         STB,R0   R10,R2            STORE BYTE                                  
         AI,R2    1                                                             
         BDR,R3   S75A                                                          
         B        *%+1              EXIT                                        
S75C     DATA     0                                                             
*                                                                               
*                                   SBR TO TYPE MISSING ID'S ALARM              
*                                                                               
*                                                                               
S78      STW,R8   S78F              SAVE RETURN                                 
         LW,R0    R4                GET NO. OF IDENTS                           
         SLS,R0   3                 MULT. BY 8                                  
         AI,R0    11                R/=BYTE COUNT FOR ALARM                     
         STB,R0   MSG28A            STORE BYTE COUNT                            
         LI,R7    MSG28                                                         
         LI,R9    0                                                             
         BAL,R8   TYPE              TYPE 'MISSING ID'S' ALARM                   
         LW,R10   KBLANKS                                                       
         LW,R11   KBLANKS                                                       
         STD,R10  MSG28A+1,R4       CLEAR BUFFER BACK TO BLANKS                 
         BDR,R4   %-1                                                           
         B        *S78F             RETURN                                      
         PAGE                                                                   
S78F     DATA     0                 EXIT RETURN                                 
*                                   FLAGS AND CONSTANTS FOR S REGION            
EXLOC1   DATA     0                 EXEC. FWA                                   
EXLOC2   DATA     0                 CURRENT EXEC. ADDRESS                       
LDLOC1   DATA     0                 FWA OF LOAD AREA                            
LDLOC2   DATA     0                 CURRENT ADDRESS TO LOAD INTO                
S83      DATA     0                 BKGD OLAY LOAD LOCATION                     
S81      DATA     0                 START GRANULE FOR RESEDENT RBM              
S80      DATA     0                 BYTES OF RBM TO SAVE                        
S84      DATA     -1                EOF COUNT                                   
S85      DATA     0                 END ITEM READ FLAG                          
S89      DATA     1                 NEXT DECL. NO. TO USE                       
S90      DATA     0                 SEQ NO.                                     
S91      DATA     0                 LAST BYTE+1 TO PROCESS ON CARD              
S93A     DATA     0                 NEXT BYTE WITHIN WORD TO LOAD               
S94      DATA     0                 SIZE OF LOAD MODULE IN WORDS                
S95      DATA     0                 DECL. NO. OF NON STND. CNTRL SECT.          
S96      DATA     0                 FLAG THAT THIS IS A VALID MODULE            
S97      DATA     0                 LOADING OVERLAYS FLAG                       
S98      DATA     0                 INDEX INTO DEFT OR OVLOAD FOR MODULE        
*                                     BEING LOADED                              
S99      DATA,2   S08,S20,S20,S22                                               
         DATA,2   S24,S23,S25,S26   ADD. OF PROCESSING ROUTINES                 
         DATA,2   S20,S20,S27,S28                                               
         DATA,2   S29,S30,S40,S31                                               
         PAGE                                                                   
*                                                                               
*        BAL,R8   SPEEDIN           FOR LOCATING SYMBOL FAST                    
*                                                                               
*        R10,R11 IS DOUBLEWORD TO COMPARE                                       
*                                                                               
*        R2 SHOULD BE DEFT OF SYMT INDEX IF FOUND                               
*        +1 EXIT  IS SYMT                                                       
*        +2 EXIT  IS DEFT                                                       
*        +3 EXIT   IS NOT FOUND                                                 
*                                                                               
SPEEDIN  EQU      %                                                             
         LI,R0    0                 VALUE FOR UP, OR DOWN                       
         LW,R7    S89               STARTING POINT                              
*                                                                               
SPEEDI2  LH,R2    SPEED,R7          LAST MODULE VALUE                           
         BEZ      SPEEDIX2          NOT FOUND                                   
         BGZ      SPEEDI1           SYMT                                        
         LCW,R2   R2                                                            
         CD,R10   DEFT1,R2          THIS IT                                     
         BE       SPEEDIX1          YES                                         
         B        SPEEDI4                                                       
*                                                                               
SPEEDI1  CD,R10   SYMT1,R2          THIS IT                                     
         BE       SPEEDIX           YES                                         
*                                                                               
SPEEDI4  STCF     SPEEDID           SAVE CC                                     
         CI,R0    0                 INCR OR DECR SET                            
         BE       SPEEDI3           NO                                          
SPEEDI5  AW,R7    R0                INCR OR DECR                                
         BNEZ     SPEEDI2                                                       
         B        SPEEDIX2          NONE FOUND                                  
*                                                                               
SPEEDI3  LCF      SPEEDID           PICK UP CC                                  
         BL       %+3               GO DOWN                                     
         LI,R0    1                 GO UP                                       
         B        SPEEDI5                                                       
         LI,R0    -1                GO DOWN                                     
         B        SPEEDI5                                                       
*                                                                               
SPEEDIX2 AI,R8    1                 NONE                                        
SPEEDIX1 AI,R8    1                 DEFT                                        
SPEEDIX  B        *R8               SYMT                                        
*                                                                               
SPEEDID  DATA     0                                                             
         PAGE                                                                   
*                                                                               
*                                                                               
*        BAL,R8   SPEEDOUT          FOR GET INDEX QUICK                         
*                                                                               
*        R7 IS SYMBOL VALUE ON INPUT                                            
*                                                                               
*        R3 IS DEFT OF SYMT INDEX ON EXIT                                       
*        +1 IS SYMT                                                             
*        +2 IS DEFT                                                             
*                                                                               
SPEEDOUT EQU      %                                                             
         LH,R3    SPEED,R7          SHOULD BE HERE                              
         BEZ      SPEEDO1           NOT MOVED YET                               
         BGZ      SPEEDO2           SYMT                                        
         LCW,R3   R3                DEFT                                        
         CH,R7    DEFT3,R3                                                      
         BNE      SPEEDO1           NOT MOVED YET                               
         B        SPEEDOX                                                       
*                                                                               
SPEEDO2  CH,R7    SYMT3,R3                                                      
         BNE      SPEEDO1           NOT MOVED YET                               
         B        SPEEDOX1                                                      
*                                                                               
SPEEDOX  AI,R8    1                 DEFT                                        
SPEEDOX1 B        *R8               SYMT                                        
*                                                                               
SPEEDO1  LCI      4                                                             
         STM,R0   SPEEDOD                                                       
         LW,R1    SYMT2             SIZE OF SYMT                                
         LH,R3    SYMT3,R1          GET SYMBOL VALUE                            
         BEZ      %+2               NOT DEFINED                                 
         STH,R1   SPEED,R3          SAVE IT                                     
         BDR,R1   %-3                                                           
*                                                                               
         LW,R1    DEFT2             SIZE OF DEFT                                
         LH,R3    DEFT3,R1          SYMBOL VALUE                                
         BEZ      %+3               NOT DEFINED                                 
         LCW,R2   R1                NEGATE FOR DEFT                             
         STH,R2   SPEED,R3          SAVE IT                                     
         BDR,R1   %-4                                                           
*                                                                               
         LCI      4                                                             
         LM,R0    SPEEDOD                                                       
         B        SPEEDOUT                                                      
*                                                                               
SPEEDOD  DATA     0,0,0,0                                                       
         TITLE    '** SYSGEN - ADJUST DEFT2 TABLES **'                          
*                                                                               
*                                                                               
*                                                                               
*                                                                               
T01      RES      0                                                             
*                                                                               
T20      LH,R1    *OVILGA           NUMBER OF OVERLAYS                          
T21      LD,R7    DEFT1,R1          MOVE                                        
         STW,R7   *OVINMA,R1        4 BYTES FOR NAME                            
         LW,R0    *EPIEPA,R1        GET EP VALUE                                
         LH,R0    R0                GET UPPER HALF WORD                         
         CI,R0    X'6800'           IS IT AMBRANCH                              
         BNE      %+3               NON-RESIDENT                                
         LW,R0    *OVISKA,R1        GET BASE                                    
         B        T21A                                                          
         LH,R0    *OVILGA,R1        BYTE LENGTH                                 
T21A     STW,R0   DEFT2,R1          SAVE                                        
         BDR,R1   T21                                                           
*                                                                               
         LW,R1    EPIOVX            SIZE OF EPI                                 
T22      CH,R1    *OVILGA           DONE                                        
         BE       T23               YES                                         
         LW,R0    DEFT2,R1          GET ADR                                     
         SLS,R0   -2                ADJUST FOR WORD ADDRESS                     
         CW,R0    EPIBA             ENTRY OR EXIT                               
         BG       T22A              EXIT                                        
         LW,R0    *EPIEPA,R1        GET ENTRY ADDRESS                           
         AND,R0   HWMASK                                                        
         SLS,R0   2                 CREATE BYTE ADR                             
         STW,R0   DEFT2,R1          SAVE IT                                     
T22A     BDR,R1   T22               NEXT                                        
T23      EQU      %                                                             
         TITLE    '** SYSGEN - FIX UP DEVICE HANDLER ADDRESS **'                
*                                                                               
* FIX UP DEVICE HANDLER ADDRESSES                                               
*                                                                               
         LW,R1    #DCT              GET DEVICE COUNT                            
HANDLE   RES      0                                                             
         LW,R10   *DCT8,R1                                                      
         LW,R11   *DCT9,R1          GET POST-HANDLER NAME                       
         BAL,R0   FINDNAME          FIND ADDRESS                                
         STW,R8   *DCT9,R1          AND PUT POST-HANDLER ADDRESS IN DCT9        
*                                                                               
         LD,R10   *DCT13,R1         GET PRE-HANDLER NAME                        
         BAL,R0   FINDNAME          FIND ADDRESS                                
         MTB,0    DEVATTEN,R1       WAS THIS ATTENABLE DEVICE                   
         BEZ      %+2                                                           
         OR,R8    KSIGN             YES, ADD IN FLAG BIT                        
         STW,R8   *DCT8,R1          SAVE PRE-HANDLER ADDRESS                    
         BDR,R1   HANDLE            LOOP THROUGH ALL DEVICES                    
         B        T23A                                                          
*                                                                               
* SUBROUTINE TO FIND AN ADDRESS GIVEN ITS NAME                                  
*                                                                               
FINDNAME RES      0                 LINK IS R0; NAME IS IN R10/R11              
         LW,R2    SYMT2             NUMBER OF SYMBOLS                           
         CD,R10   SYMT1,R2          SEARCH                                      
         BE       SYMTNAME          FOUND IT                                    
         BDR,R2   %-2               LOOP THRU SYMT                              
*                                                                               
         LW,R2    DEFT2             NUMBER OF SYMBOLS                           
         CD,R10   DEFT1,R2          SEARCH                                      
         BE       DEFTNAME          FOUND                                       
         BDR,R2   %-2               LOOP                                        
*                                   CANT FIND                                   
         LD,R10   INCNAME           LOAD UP IOINC TEXT                          
         B        FINDNAME          AND LOCATE IT INSTEAD                       
*                                                                               
         BOUND    8                                                             
INCNAME  TEXT     'IOINC   '                                                    
***                                                                             
SYMTNAME RES      0                                                             
         LW,R8    SYMT2,R2          GET ADDRESS                                 
         SLS,R8   -2                MAKE IT A WORD ADDRESS                      
         B        *R0               AND EXIT                                    
***                                                                             
DEFTNAME RES      0                                                             
         LW,R8    DEFT2,R2          GET ADDRESS                                 
         SLS,R8   -2                MAKE IT A WORD ADDRESS                      
         B        *R0                                                           
         TITLE    '** SYSGEN - OUTPUT MAP AND CPRMAP FILE **'                   
T23A     RES      0                                                             
         LW,R0    KBACKBG1                                                      
         STW,R0   K:BACKBG          SET FWA OF BCKG                             
         BAL,R8   MAP               YES,OUTPUT MAP                              
         DO       #CPRMAP                                                       
         LI,R1    1                 INDEX                                       
         LW,R3    OLAYFWA                                                       
         SLS,R3   2                                                             
         STW,R3   WRITEDC           BYTE ADDRESS                                
         LW,R3    MAPBASE           UPPER BOUND                                 
         AI,R3    1                                                             
         LI,R2    0                                                             
         SW,R3    OLAYFWA                                                       
         SLS,R3   2                 BYTE COUNT                                  
         LD,R12   R2                SAVE FOR LATER                              
         LW,R0    WRITEDC+3                                                     
         STW,R0   SPMAP5            SET MAP'S BOT                               
         LI,R8    80                GET RSIZE (FIXED: MUST BE 80!)              
         DW,R12   R8                (BYTES OF MAP SPACE) / 80                   
         STW,R13  SPMAP4            = NUMBER OF RECORDS = FSIZE                 
         DW,R2    K960              NO OF BLKS                                  
         AI,R3    1                 ROUND                                       
         LI,R4    0                                                             
         LW,R5    K960              WORDS/BLK                                   
         SLS,R5   -2                                                            
         DW,R4    S49               WORDS/SEC                                   
         CI,R4    0                 ANY REM                                     
         BE       %+2               NO                                          
         AI,R5    1                 ROUND                                       
         LW,R2    R5                                                            
         LW,R4    K960                                                          
*                                   R3=BLKS                                     
*                                   R4=BLK BYTESIZE                             
*                                   R2=SEC/BLK                                  
T24      LI,R7    WRITEDC                                                       
         STW,R4   WRITEDC+1         SET BYTE COUNT UP                           
         BAL,R8   WRITE                                                         
         AI,R3    -1                DONE YET                                    
         BEZ      T25               YES                                         
         AWM,R2   WRITEDC+3         INCR SEC ADR                                
         AWM,R4   WRITEDC           INCR BYTE ADR                               
         B        T24               DO NEXT BLK                                 
T25      AW,R2    WRITEDC+3         NEW GRAN ADR                                
         STW,R2   WRITEDC+3                                                     
         AI,R2    -1                                                            
         STW,R2   SPMAP6            SET MAP'S EOT                               
         FIN      #CPRMAP                                                       
         TITLE    '** SYSGEN - SEARCH FOR K:XXXX VALUES **'                     
         PAGE                                                                   
V00      EQU      %                                                             
         LI,R1    ((V07-1)-V06)/2                                               
V01      LD,R10   V06,R1            GET SYMBOL NAME                             
         LW,R2    SYMT2             SEARCH SYMT                                 
         CD,R10   SYMT1,R2                                                      
         BE       V02                                                           
         BDR,R2   %-2                                                           
         LW,R2    DEFT2             SEARCH DEFT                                 
         CD,R10   DEFT1,R2                                                      
         BE       V03                                                           
         BDR,R2   %-2                                                           
         STW,R10  MSG52+2           SYMBOL NOT FOUND                            
         STW,R11  MSG52+3                                                       
         STW,R1   V05                                                           
         LI,R7    MSG52             OUTPUT MESSAGE                              
         LI,R9    0                                                             
         BAL,R8   TYPE                                                          
         LI,R7    MSG46             OUTPUT CONTINUE                             
         LI,R9    0                                                             
         BAL,R8   TYPE                                                          
         LI,R7    READTY            READ ANSWER                                 
         BAL,R8   READ                                                          
         LW,R1    V05               RESTORE INDEX                               
         LB,R0    INBUF                                                         
         CI,R0    'Y'                                                           
         BE       V04                                                           
         DO       #ONLINE=1                                                     
         M:EXIT                                                                 
         ELSE                                                                   
         LI,R7    MSG99                                                         
         LI,R9    0                                                             
         BAL,R8   TYPE                                                          
         B        %                                                             
         FIN                                                                    
V02      LW,R13   SYMT2,R2                                                      
         B        V04A                                                          
V03      LW,R13   DEFT2,R2                                                      
V04A     SLS,R13  -2                                                            
         LW,R3    V07,R1                                                        
         STW,R13  *R3                                                           
V04      BDR,R1   V01                                                           
         B        V08                                                           
V05      DATA     0                 TEMP CELL FOR INDEX SAVE                    
*                                                                               
         BOUND    8                                                             
V06      EQU      %-2                                                           
         TEXT     'SERDEV  '                                                    
         TEXT     'RBMEND  '                                                    
         TEXT     'REQCOM  '                                                    
         TEXT     'QUEUE  '                                                     
         TEXT     '6KLIMIT'                                                     
V07      EQU      %-1                                                           
         DATA     K:SERDEV                                                      
         DATA     K:RBMEND                                                      
         DATA     K:REQCOM                                                      
         DATA     K:QUEUE                                                       
         DATA     STVMLIMIT                                                     
STVMLIMIT         DATA              0                                           
V08      EQU      %                                                             
*                                                                               
         LW,R0    STVMLIMIT         SEE IF STVM TO SMALL                        
         CW,R0    STVMVAL                                                       
         BL       V09                                                           
         LI,R7    MSG55                                                         
         B        THROWUP                                                       
V09      EQU      %                                                             
         LW,R0    K:RBMEND          FILL OUT CPR RMPT                           
         AI,R0    512                                                           
         AND,R0   KX1FE00           ROUND TO NEXT PAGE                          
         AI,R0    -1                MAKE A LWA                                  
         LI,R1    3                 DW TABLE, WORD 0 UNUSED                     
         STW,R0   *K:RMPT,R1                                                    
*                                                                               
*                                                                               
*                                                                               
*                                                                               
         TITLE    '** SYSGEN - WRITE LOCK SETUP **'                             
*                                                                               
*        BUILD AND SET WRITE LOCKS FOR FIRST 128K, ALL PAGES                    
*                 =11 (NO WRITE EXCEPT FROM SKELETON)                           
*                 EXCEPT FOR PRIVATE, PREFERRED, MAILBOX AND                    
*                 FGD BLOCKING BUFFER PARTITIONS                                
*                 PRIMARY TASKS RUN WITH KEY OF FGD                             
*                 ALL SECONDARY TASKS IN MAPPED SYSTEM INCL                     
*                 BACKGROUND RUN WITH SKELETON KEY (USE ACCESS                  
*                 CODES FOR PROTECTION).                                        
XPPTTYPE EQU      KXF                                                           
IPLMM44  EQU      %                                                             
         LI,R1    16                SET UP FOR WRITE LOCKS                      
         LW,R0    STMCODE                                                       
IPLMM46  STW,R0   *WLOCK,R1                                                     
         BDR,R1   IPLMM46           INITIALIZE  TO RBM CODE                     
         LB,R7    K:RMPT            NUMBER OF PARTITIONS                        
IPLMM48  LW,R8    *K:PPT,R7         GET PPT ENTRY                               
         LB,R1    R8                                                            
         AND,R1   XPPTTYPE          ISOLATE TYPE OF PARTITION                   
         EXU      %+1,R1                                                        
*                                                                               
         B        IPLMM48A          CPR PARTITION                               
         B        IPLMM48B          FOREGROUND PRIVATE                          
         B        IPLMM48B          FOREGROUND MAILBOX                          
         B        IPLMM48B          FOREGROUND BLOCKING BUFFERS                 
         B        IPLMM48C          FOREGROUND PREFFERED                        
         B        IPLMM50           SECONDARY TASK MEMORY                       
         B        IPLMM50           GAP PARTITION                               
         B        IPLMM50           NA                                          
         B        IPLMM50           NA                                          
*                                                                               
IPLMM48A EQU      %                                                             
         LI,R0    3                 SYSTEM WRITE LOCK =11                       
         B        IPLMM49                                                       
*                                                                               
IPLMM48B EQU      %                                                             
         LI,R0    2                 FOREGROUND FOR PRIMARY TASKS                
         B        IPLMM49                                                       
IPLMM48C EQU      %                                                             
         LI,R0    0                 PREFFERED MEMORY                            
         B        IPLMM49                                                       
*                                                                               
IPLMM49  EQU      %                                                             
         LD,R10   *K:RMPT,R7        GET LIMITS                                  
         LW,R9    WLOCK                                                         
         AI,R9    1                 SKIP OVER CONTROL WD                        
         BAL,R8   STOREWL           SET WRITE LOCKS                             
IPLMM50  EQU      %                                                             
         BDR,R7   IPLMM48           B IF NOT DONE                               
         B        IPLMM51                                                       
STMCODE  DATA     X'55555555'       WRITE LOCK CODE FOR STM                     
         PAGE                                                                   
*                                                                               
*                                                                               
*        SUBR TO STORE WRITE LOCKS                                              
*                                                                               
*        R0 = CODE                                                              
*        R9 = IMAGE ADDRESS                                                     
*        R10 =FWA                                                               
*        R11 = LWA                                                              
*        BAL,R8   STOREWL                                                       
*                                                                               
*                                                                               
STOREWL  RES      0                                                             
         SLS,R10  -9                PAGE ADDRESS                                
         SLS,R11  -9                PAGE ADDRESS                                
         LW,R1    R10               1ST 2 BIT INDEX                             
*                                                                               
STOREWL1 LW,R4    R1                                                            
         LI,R5    0                 CLEAR                                       
         SCD,R4   -4                WORD INDEX TO R4                            
         SCS,R5   5                 SHIFT COUNT                                 
         AI,R5    2                 FUDGE FOR RIGHT SHIFT                       
         LCW,R5   R5                COMPLEMENT FOR RIGHT SHIFT                  
*                                                                               
         LW,R3    R0                WL CODE                                     
         LI,R2    3                 MASK                                        
         SCD,R2   0,R5              POSITION BOTH                               
         STS,R2   *R9,R4            AND STORE                                   
*                                                                               
         AI,R1    1                 BUMP INDEX                                  
         CW,R1    R11               DONE YET                                    
         BLE      STOREWL1          NO,LOOP                                     
*                                                                               
         B       *R8                RETURN                                      
*                                                                               
IPLMM51  EQU      %                                                             
         TITLE    '** SYSGEN - WRITE BOOT/TABLES/SP DIRE TO DISK **'            
*                                                                               
* WRITE OUT BOOTSTRAP FILE                                                      
*                                   WRITE OUT RBM                               
T30      LW,R1    WRITEDC+3         GET NEXT GRANULE FOR WRITING                
         STW,R1   SPBOOT5           SET AS BOT FOR BOOT FILE                    
         STW,R1   SPBOOT6           (AND EOT, AS FSIZE = 1 SECTOR)              
         LW,R1    SPCPR6            SET CPRFILE'S FSIZE = EOT-BOT+1             
         STW,R1   SPCPR4            (BUT BOT=1, SO FSIZE = EOT, ALWAYS)         
         LW,R1    WRITEDC+3         GET NEXT WRITE                              
         AI,R1    -1                                                            
         STW,R1   DBOOT10A          SAVE FILE SIZE FOR RBM INIT.                
         AI,R1    2                                                             
         STW,R1   SPDICT1           SET 1ST UNUSED AND AVAILABLE SECTOR         
*                                                                               
*                                                                               
         LW,R0    RBMSTART          WRITE OUT RAD BOOT INTO BOOT FILE           
         AWM,R0   DCBOOT2A          BOOT START ADDRESS                          
         LB,R1    *MDDCTI           GET THE SYSTEM DCT INDEX                    
         LH,R0    *DCT1,R1          GET DEVICE ADDRESS                          
         STW,R0   K:RDBOOT          SAVE BOOTSTRAP DEVICE ADDRESS               
         STW,R0   DCBOOT5A          STORE DEV. NO. OF SYS. RAD                  
*                                                                               
         LB,R1    *MDDISCI          GET DISC INDEX OF SP AREA                   
*                                                                               
         LH,R0    *DISCNWPS,R1      GET NUMBER OF WORDS/SECTOR                  
         SLS,R0   2                 GET NUMBER OF BYTES/SECTOR                  
         STW,R0   DCBOOT8A          SAVE IN BOOTSTRAP                           
         LB,R0    *DISCSSFT,R1      GET SECTOR SHIFT                            
         STW,R0   DBOOT13A                                                      
*                                                                               
         LH,R0    *DISCNTPC,R1      NUMBER OF TRACKS/CYLINDER                   
         STW,R0   DBOOT14A                                                      
*                                                                               
         LB,R0    *DISCTSFT,R1      TRACK SHIFT                                 
         STW,R0   DBOOT15A                                                      
*                                                                               
         LB,R0    *DISCCSFT,R1      CYLINDER SHIFT                              
         STW,R0   DBOOT16A                                                      
*                                                                               
         LB,R0    *DISCNSPT,R1      NUMBER OF SECTORS/TRACK                     
         STW,R0   DBOOT12A                                                      
         PAGE                                                                   
         LW,R0    S48               BYTE COUNT FOR MONITOR                      
         AW,R0    DCBOOT8A          ADD SECTOR SIZE                             
         AI,R0    -1                LESS ONE                                    
         SLD,R0   -32               SHIFT FOR DIVIDE                            
         DW,R0    DCBOOT8A          DIVIDE BY SECTOR SIZE                       
         STW,R1   DBOOT11A          PART OF LAST SECTOR #                       
         MTW,-1   DBOOT11A          LESS ONE SECTOR FOR SECTOR 0                
*                                                                               
         AWM,R1   DBOOT17A          STORE # OF SECTORS TO READ                  
         MW,R1    DCBOOT8A          MULTIPLY BY SECTOR SIZE AGAIN               
         SW,R1    DCBOOT8A          BACK UP ONE SECTOR                          
         AI,R1    X'40'*4           PLUS HEX 40                                 
         AWM,R1   DCBOOT3A          PUT IN BOOTSTRAP                            
         LW,R1    *MDBOA            GET START OF SP AREA                        
         AW,R1    S81               GET RELATIVE SECTOR OF MONITOR IN SP        
         AWM,R1   DBOOT11A          AND PUT IN SYSGEN                           
*                                                                               
         LI,R0    BA(DCBOOT)                                                    
         STW,R0   WRITEDC           FBA OF RAD BOOT                             
         LI,R0    BA(DCBOOT18)-BA(DCBOOT00)                                     
         STW,R0   WRITEDC+1                                                     
*                                                                               
         LI,R7    WRITEDC                                                       
         BAL,R8   WRITE             GO WRITE BOOT FILE                          
         LW,R0    SEEK              GET BOOT SEEK ADDRESS                       
         STW,R0   DCBOOT9A          AND PUT IN BOOT                             
         BAL,R8   WRITE             AND REWRITE BOOTSTRAP                       
*                                                                               
         LI,R1    DCBOOT18-DCBOOT00                                             
         LW,R0    DCBOOT-1,R1                                                   
         STW,R0   X'2A'-1,R1                                                    
         BDR,R1   %-2               MOVE BOOT STRAP INTO LO CORE                
         PAGE                                                                   
*                                                                               
*                                                                               
*        HERE WE RE-WRITE X'40' THRU OLAYFWA SINCE THE RBM TABLES               
*        ARE NOW COMPLETE                                                       
*                                                                               
         DO       #ONLINE                                                       
         LI,R0    BUFFER                                                        
         ELSE     #ONLINE                                                       
         LI,R0    X'40'             GET FWA OF RES. MON.                        
         FIN      #ONLINE                                                       
         SLS,R0   2                 MAKE BA                                     
         STW,R0   WRITEDC           STORE IN P.T.                               
         LW,R0    S80               BYTE LENGTH OF PRESERVED MON.               
         STW,R0   WRITEDC+1         STORE IN P.T.                               
         LW,R0    S81               START GRANULE FOR RES. MON.                 
         STW,R0   WRITEDC+3         STORE IN P.T.                               
         LI,R7    WRITEDC                                                       
         BAL,R8   WRITE             REWRITE RBM TABLES                          
         PAGE                                                                   
*                                                                               
* CHECK TO SEE IF SP DIRECTORY CHANGED                                          
*                                                                               
         MTW,R0   SYSOPT            TEST SYSLOAD OPTION                         
         BNEZ     T37               FORCE LOAD OF SP IF NOT UPD                 
*                                   UPD OPTION                                  
         LW,R0    RBMFSIZE          CHECK OLD FILE SIZE                         
         CW,R0    DBOOT10A          DID FILE SIZE CHANGE                        
         BE       T40               NO, CHECK BACKGROUND LOAD LOCATION          
*                                   YES                                         
         LI,R0    'SP'                                                          
         STH,R0   MSG45+3           STORE SP TEXT                               
*                                                                               
         LI,R9    0                                                             
         LI,R7    MSG45                                                         
         BAL,R8   TYPE              TYPE SP AREA (RELOAD TYPED BEFORE)          
*                                                                               
         MTW,1    NOTHING           RESET TYPE NOTHING FLAG                     
*                                                                               
T37      RES      0         WRITE OUT THE SP AREA'S DIRECTORY SECTOR            
         LW,R0    S49               CONVERT DISC'S WORDS PER SECTOR INTO        
         SLS,R0   2                 BYTES FOR SETTING GSIZES, RSIZES            
         STH,R0   R0                FORM  'GSIZE/RSIZE' ENTRY                   
         STW,R0   SPCPR3            FOR 'CPRFILE'                               
         STW,R0   SPBOOT3           AND FOR 'RADBOOT'                           
         LI,R0    BA(SPDICT)                                                    
         STW,R0   WRITEDC                                                       
         LI,R0    SPDICTSZ          SET UP CALLING SEQ.                         
         STW,R0   WRITEDC+1                                                     
         LI,R0    0                                                             
         STW,R0   WRITEDC+3                                                     
         LI,R7    WRITEDC                                                       
         BAL,R8   WRITE             GO WRITE SP DICT.                           
         PAGE                                                                   
*                                                                               
*                                                                               
* CHECK FOR BACKGROUND LOAD LOCATION CHANGE                                     
*                                                                               
T40      RES      0                                                             
         MTW,0    SYSOPT            CHECK SYSLOAD OPTIONS                       
         BNEZ     T60               NOT UPD                                     
*                                                                               
         LW,R0    K:BACKBG                                                      
         CW,R0    OLDBCKBG          HAS BACKGROUND LOAD LOC CHANGED             
         BE       T50               NO, GO CHECK FOR NOTHING MSG                
*                                   YES                                         
         LI,R9    0                                                             
         LI,R7    MSG47                                                         
         BAL,R8   TYPE              TYPE 'BACKGROUND PROGRAMS'                  
*                                                                               
         MTW,1    NOTHING           SET FLAG TO NOT TYPE NOTHING                
T50      RES      0                                                             
         MTW,0    NOTHING                                                       
         BNEZ     T60               HAD TO RELOAD SOMETHING                     
*                                   RELOAD NOTHING                              
         LI,R9    0                                                             
         LI,R7    MSG48                                                         
         BAL,R8   TYPE              TYPE 'NOTHING'                              
         PAGE                                                                   
*                                                                               
* WRITE OUT RAD BOOT ONTO SECTOR ZERO                                           
*                                                                               
*                                                                               
T60      RES      0                                                             
         LB,R7    *MDDISCI          GET DISC INDEX FOR SP AREA                  
         MTW,0    *DISCMINS,R7      DOES IT HAVE A NON-ZERO START               
         BNEZ     T70               YES, DONT WRITE OUT BOOTSTRAP               
*                                   NO                                          
         LI,R0    0                                                             
         STW,R0   *MDBOA            FUDGE SP START PTR                          
*                                                                               
         LI,R0    BA(DCBOOT)          WRITE BOOT OUT WITH WRITE                 
         STW,R0   WRITEDC                                                       
         LI,R0    BA(DCBOOT18)-BA(DCBOOT00)                                     
         STW,R0   WRITEDC+1                                                     
*                                                                               
         LI,R0    0                                                             
         STW,R0   WRITEDC+3                                                     
*                                                                               
         LI,R7    WRITEDC                                                       
         BAL,R8   WRITE             WRITE OUT RAD BOOT ONTO SECTOR ZERO         
         PAGE                                                                   
*                                                                               
* PUNCH OUT HARD COPY CARD BOOT IF REQUESTED                                    
*                                                                               
*                                                                               
T70      RES      0                                                             
         LW,R0    WRITEBO+2         PUNCH HARD COPY OF BOOT IF REQUESTED        
*                                     OR IF HAVE TO                             
         BEZ      T80               NO CARD BOOT NEEDED                         
         LI,R0    BA(DCBOOT)                                                    
         STW,R0   WRITEBO                                                       
         LI,R0    120                                                           
         STW,R0   WRITEBO+1         SET UP CALL                                 
         LI,R7    WRITEBO                                                       
         BAL,R8   WRITE             GO PUNCH OUT HARD COPY OF RAD BOOT          
         LH,R0    WRITEBO+2                                                     
         CI,R0    DT:CP             IS IT A HIGH SPEED CARD PUNCH               
         BNE      T80               NO                                          
*                                   YES, PUNCH AN EXTRA BLANK CARD              
         LI,R0    BA(T90)                                                       
         STW,R0   WRITEBO                                                       
         LI,R7    WRITEBO                                                       
         BAL,R8   WRITE             GO PUNCH EXTRA CARD                         
         PAGE                                                                   
*                                                                               
* BRANCH TO BOOTSTRAP IN LO CORE AND BRING IN SYSTEM                            
*                                                                               
*                                                                               
         DO       #ONLINE                                                       
T80      RES      0                                                             
CLOSELO  M:CLOSE  M:LO,(SAVE)                                                   
CLOSEBO  M:CLOSE  M:BO,(SAVE)                                                   
         M:EXIT                                                                 
         ELSE     #ONLINE                                                       
         DO       #BOOTOV                                                       
T80      RES      0                                                             
*        LW,R0    SIOBOOT           OVERRIDE SWITCH SETTINGS                    
*        STW,R0   X'2F'                                                         
*        LW,R0    TIOBOOT                                                       
*        STW,R0   X'32'                                                         
         LW,R0    DCBOOT5                                                       
         STW,R0   X'25'                                                         
         B        X'2A'             EXIT TO BOOTY STRAP                         
SIOBOOT  SIO,R6   *DCBOOT5                                                      
TIOBOOT  TIO,R8   *DCBOOT5                                                      
         ELSE     #BOOTOV                                                       
T80      B        X'2A'             EXIT TO BOOTSTRAP                           
         FIN      #BOOTOV                                                       
         FIN      #ONLINE=0                                                     
         PAGE                                                                   
*                                                                               
* BLANK IMAGE FOR BLANK CARD PUNCHING                                           
*                                                                               
T90      ZERO,1   120               120 BYTES OF ZERO                           
         PAGE                                                                   
*                                                                               
* SP AREA DIRECTORY SKELETON                                                    
*                                                                               
*                                                                               
SPDICT   DATA     SPDICTND-SPDICT   NEXT AVAILABLE WORD IN DIRECTORY            
SPDICT1  DATA     0                 FILLED-IN NEXT FREE SECTOR IN AREA          
SPDICT2  DATA     X'55555555'       H00 DIRECTORY ID WORDS                      
SPDICT3  DATA     X'AAAAAAAA'       H00 DIRECTORY ID WORDS                      
*                                                                               
*                                                                               
SPCPRFIL RES      0          THE SYSTEM'S FILE                                  
         TEXT     'CPRFILE '                                                    
SPCPR2   DATA,1   UNBORG,0,0,SPCPREND-SPCPRFIL   ORG, FLAG2, 0, LENGTH          
SPCPR3   DATA,2   0,0                            GSIZE, RSIZE                   
SPCPR4   DATA     0                              FSIZE                          
SPCPR5   DATA     1                              BOT                            
SPCPR6   DATA     0                              EOT                            
SPCPR7   DATA     0                              XTENT NUMBER                   
SPCPR8   DATA     0                              ESIZ                           
         DO1      #DFACNT                                                       
SPCPR9    TEXT     #SYSACNT                      ACCOUNT NAME                   
         DATA     0                 USEC                                        
         DATA     0                 DATE                                        
SPCPREND RES      0                 END 'CPRFILE' ENTRY                         
*                                                                               
*                                                                               
DIREXLEN EQU      SPCPREND-SPCPRFIL     SIZE OF A FILE ENTRY                    
*                                                                               
DIREXTRA RES      0         BASE OF SUBSYSTEM DIRECTORY ENTRIES                 
*                                                                               
         LIST,1   1                 SUPPRESS LISTING OF EXTRA ENTRIES           
        DO       #SUBSYS            CREATE ENTRIES FOR ALL SUBSYSTEMS           
         DATA     0,0               FILENAME                                    
         DATA     0+0+0+DIREXLEN    FLAGS, LEN                                  
         DATA     0+0               GSIZE, RSIZE                                
         DATA     0                 FSIZE                                       
         DATA     0                 BOT                                         
         DATA     0                 EOT                                         
         DATA     0                 XTNT                                        
         DATA     0                 ESIZ                                        
         DO1      #DFACNT                                                       
          TEXT     #SYSACNT         ACCOUNT                                     
         DATA     0                 USEC                                        
         DATA     0                 DATE                                        
        FIN      #SUBSYS                                                        
*                                                                               
         LIST     1                                                             
*                                                                               
        DO       #CPRMAP                                                        
SPMAP    RES      0         THE SYSTEM'S MAP FILE                               
         TEXT     'CPRMAP  '                                                    
SPMAP2   DATA,1   BLKORG,0,0,SPMAPEND-SPMAP      FLAGS, LENGTH                  
SPMAP3   DATA,2   1024,80                        GSIZE, RSIZE                   
SPMAP4   DATA     0                              FSIZE                          
SPMAP5   DATA     0                              BOT                            
SPMAP6   DATA     0                              EOT                            
SPMAP7   DATA     0                              XTNT                           
SPMAP8   DATA     0                              ESIZE                          
         DO1      #DFACNT                                                       
SPMAP9    TEXT     #SYSACNT                      ACCOUNT                        
         DATA     0                 USEC                                        
         DATA     0                 DATE                                        
SPMAPEND RES      0                                                             
        FIN      #CPRMAP                                                        
*                                                                               
*                                                                               
*                                                                               
SPBOOT   RES      0         COPY OF THE SYSTEM'S BOOTSTRAP PROGRAM              
         TEXT     'RADBOOT '                                                    
SPBOOT2  DATA,1   UNBORG,0,0,SPBOOTND-SPBOOT                                    
SPBOOT3  DATA,2   0,0                                                           
SPBOOT4  DATA     1                 FSIZE                                       
SPBOOT5  DATA     0                 BOT                                         
SPBOOT6  DATA     0                 EOT                                         
SPBOOT7  DATA     0                 XTNT                                        
SPBOOT8  DATA     0                 ESIZE                                       
         DO1      #DFACNT                                                       
SPBOOT9   TEXT     #SYSACNT         ACCOUNT                                     
         DATA     0                 USEC                                        
         DATA     0                 DATE                                        
SPBOOTND RES      0                                                             
*                                                                               
*                                                                               
*                                                                               
SPDICTND RES      0         END OF PREFORMATTED DIRECTORY                       
*                                                                               
*                                                                               
*                                                                               
SPDICTSZ EQU      (SPDICTND-SPDICT)*4    LENGTH OF DIRECTORY IN BYTES           
         TITLE    '** SYSGEN - - DISK BOOTSTRAP **'                             
*                                                                               
*                                                                               
         LOC      X'2A'             EXECUTION LOCATION                          
*                                                                               
* THE BOOTSTRAP WRITTEN ON DISC CONSISTS OF 45 WORDS                            
* OUT OF WHICH THE FIRST 22 ARE ALL THAT IS READ BY THE                         
* HARDWARE BOOT.  THAT BOOTSTRAP THEN READS THE FULL BOOTSTRAP                  
* FROM DISC AND THAT AGAIN READS THE CPR FILE SECTOR BY SECTOR                  
* STARTING WITH THE HIGHEST SECTOR NUMBER FIRST                                 
*                                                                               
* THE LAST SECTOR READ OF THE MONITOR OVERWRITES THE BOOT STRAP                 
* EXTENSION. BE CAREFUL..                                                       
*                                                                               
* THE FOLLOWING CELLS ARE USED BY INIT DURING PROCESSING OF PATCH CARDS         
*                                                                               
* ADDRESSES X'2A', X'2C' AND X'2D' ARE EXECUTED BY INIT ALSO                    
*                                                                               
* ADDRESS X'37' IN THE BOOTSTRAP MUST CONTAIN THE SP DEVICE ADDRESS             
*                                                                               
* ADDRESS X'3B' IN THE BOOTSTRAP MUST CONTAIN THE SECTOR SIZE                   
* IN BYTES FOR THE SP DEVICE                                                    
         PAGE                                                                   
DCBOOT   EQU      %%                                                            
DCBOOT00 LAW,R14  DCBOOT11          LAW MAKES THE CARD BINARY                   
*                                   PUT LAST SECTOR NUMBER IN R14               
         NOP      0                 SPACE FOR K:SYSTEM LATER                    
DBOOT17A EQU      %%                                                            
DCBOOT17 LI,R13   0                 COUNT OF SECTORS TO READ                    
DCBOOT3A EQU      %%                                                            
DCBOOT3  LI,R2    0                 STARTING BA                                 
*** THIS IS THE START OF THE LOOP WHICH READS IN CPR ***                        
DCBOOT0  LI,R0    DA(DCBOOT6)       CDW ADDRESS FOR SIO                         
         DO       #BOOTOV                                                       
         SIO,R6   *X'25'                                                        
         ELSE                                                                   
         SIO,R6   *DCBOOT5                                                      
         FIN                                                                    
DCBOOT1  LI,R10   100               WAIT 100 MICROSECONDS                       
         BDR,R10  %                 WAIT FOR ONE MS                             
         DO       #BOOTOV                                                       
         TIO,R8   *X'25'                                                        
         ELSE                                                                   
         TIO,R8   *DCBOOT5                                                      
         FIN                                                                    
         BCS,12   DCBOOT1           NO, LOOP                                    
         CI,R13   0                 DONE WITH LAST PIECE                        
DCBOOT2A EQU      %%                                                            
DCBOOT2  BEZ      0                 YES, BRANCH TO INIT                         
         B        DCNEXT            NO, READ NEXT PIECE                         
*************************************************************                   
* CONSTANTS FOR SHORT BOOTSTRAP                                                 
*************************************************************                   
DCBOOT5A EQU      %%                                                            
DCBOOT5  DATA     0                 DEVICE ADDRESS                              
*                                                                               
DCBOOT6  GEN,8,24 3,BA(DCBOOT9)     SEEK ORDER                                  
         GEN,8,24 X'22',4           BYTE COUNT OF 4 WORKS FOR RADS ALSO         
*                                                                               
DCBOOT7  GEN,8,24 2,BA(DCBOOT00)    READ ORDER AND BYTE ADDRESS                 
DCBOOT8A EQU      %%                                                            
DCBOOT8  DATA     0                 BYTE COUNT FOR ONE SECTOR                   
*                                                                               
DCBOOT9A EQU      %%                                                            
DCBOOT9  DATA     0                 SEEK ADDRESS OF BOOTSTRAP                   
*                                                                               
DBOOT10A EQU      %%                                                            
DCBOOT10 DATA     0                 CPR FILE SIZE                               
*                                                                               
DBOOT11A EQU      %%                                                            
DCBOOT11 DATA     0                 SECTOR # OF CPR LAST SECTOR                 
*                                                                               
         DATA     0                 SPARE                                       
         PAGE                                                                   
************************************************************                    
* THE FOLLOWING CODE IS IN THE BOOTSTRAP EXTENSION                              
************************************************************                    
DCNEXT   RES      0                                                             
         STW,R2   DCBOOT7           STORE NEW BYTE ADDRESS                      
         MTB,2    DCBOOT7           PUT IN READ ORDER                           
*                                                                               
         LW,R9    R14               GET SECTOR NUMBER                           
         LI,R8    0                                                             
         DW,R8    DCBOOT12          DIVIDE BY SECTORS/TRACK                     
         LW,R12   R8                PUT SECTORS INTO R12                        
         SLS,R12  *DCBOOT13         POSITION SECTORS                            
*                                                                               
         LI,R8    0                                                             
         DW,R8    DCBOOT14          DIVIDE BY TRACKS/CYLINDER                   
         SLS,R8   *DCBOOT15         POSITION TRACKS                             
         OR,R12   R8                AND MERGE IN                                
*                                                                               
         SLS,R9   *DCBOOT16         POSITION CYLINDERS                          
         OR,R12   R9                AND MERGE IN                                
*                                                                               
         STW,R12  DCBOOT9           PUT INTO CORE                               
*                                                                               
         AI,R14   -1                DECREMENT SECTOR NUMBER                     
         SW,R2    DCBOOT8           SUBTRACT SECTOR SIZE FROM BYTE ADDRESS      
         AI,R13   -1                DECREASE SECTOR COUNTER                     
         B        DCBOOT0                                                       
**********************************************************                      
* CONSTANTS FOR BOOTSTRAP EXTENSION                                             
*********************************************************                       
DBOOT12A EQU      %%                                                            
DCBOOT12 DATA     0                 SECTORS/TRACK                               
*                                                                               
DBOOT13A EQU      %%                                                            
DCBOOT13 DATA     0                 SECTOR SHIFT                                
*                                                                               
DBOOT14A EQU      %%                                                            
DCBOOT14 DATA     0                 TRACKS/CYLINDER                             
*                                                                               
DBOOT15A EQU      %%                                                            
DCBOOT15 DATA     0                 TRACK SHIFT                                 
*                                                                               
DBOOT16A EQU      %%                                                            
DCBOOT16 DATA     0                 CYLINDER SHIFT                              
*                                                                               
DCBOOT18 RES      0                 END OF BOOTSTRAP                            
         ORG      %%                RESET EXECITION COUNTER                     
         TITLE    '** SYSGEN  - SUBROUTINE FOR DEVICE INPUT CHECKS **'          
*                                                                               
*                                   CALL IS  BAL,R8  CHKDEV                     
*                                     INPUT PARAMETERS                          
*                                      R4= ADD. OF ERROR ROUTINE                
*                                      R12=MASK FOR LEGALITY TYPE               
*                                      R13=R6 CODE TO END ON.                   
*                                   EXITS WITH:                                 
*                                      R8 = BITS  0 - 15 = IOT INDEX            
*                                           BITS 16 - 31 = DEVICE ADDR          
*                                   DOES LEGALITY CHECKS ON R6                  
*                                                                               
CHKDEV   STW,R8   CHKDEV9           SAVE RETURN                                 
         CI,R6    0                                                             
         BNE      *R4               ERROR, IF NOT END OF SUBFIELD               
         MTW,1    SCANPMC           SET FOR DEVICE TYPE INPUT                   
         BAL,R8   SCAN              GET DEVICE                                  
         MTW,-1   SCANPMC                                                       
         CI,R6    -1                                                            
         BE       *R4               ERROR                                       
         CI,R10   5                                                             
         BNE      *R4                                                           
         STW,R8   CHKDEV10          SAVE YYNDD                                  
*                                                                               
         CI,R6    0                                                             
         BNE      *R4               ERROR IF NOT END OF SUB-FIELD               
*                                                                               
         BAL,R8   SCAN              GET MODEL #                                 
*                                                                               
         LW,R1    LASTMODL          GET NUMBER OF MODEL #S                      
         CW,R8    MODEL#,R1         SEARCH FOR MODEL #                          
         BE       %+3                                                           
         BDR,R1   %-2                                                           
         B        *R4               ERROR IF CANT FIND                          
*                                                                               
         LB,R1    IOTX,R1           GET I/O TYPE INDEX FOR SYSGEN I/O           
         LH,R9    IOT1,R1           GET PROPER NAME                             
         CH,R9    CHKDEV10          IS IT OK                                    
         BNE      *R4               NO,ERROR                                    
*                                                                               
         STH,R1   CHKDEV10          INDEX TO TOP OF YYNDD                       
         LW,R8    CHKDEV10                                                      
*                                                                               
         CI,R6    2                                                             
         BE       *CHKDEV9          EXIT IF END OF CARD                         
         CW,R6    R13                                                           
         BE       *CHKDEV9          EXIT IF PROPER R6                           
         B        *R4               ERROR IF NOT                                
CHKDEV9  DATA     0                                                             
CHKDEV10 DATA     0                                                             
         TITLE    '** SYSGEN  - CONTINUATION CARD PROCESSING **'                
*                                                                               
*                                   ENTERED BY SCAN AFTER READING ;             
*                                   READS AND LOGS NEXT CARD                    
*                                                                               
*                                                                               
CONTCRD  STW,R8   CONTCRD9          SAVE RETURN                                 
         LI,R7    READSI                                                        
         BAL,R8   READ              READ CONT. CARD                             
         LI,R7    WRITELO                                                       
         BAL,R8   WRITE             LOG CONT. CARD                              
         B        *%+1              RETURN TO SCAN                              
CONTCRD9 DATA     0                                                             
         TITLE    '** SYSGEN  - ERROR ROUTINE  **'                              
*                                                                               
*                                   LOGS ERROR ALARM ON BOTH OUTPUT             
*                                     DEVICE AND TYA01                          
*                                   SWITCHES INPUT DEVICE TO TY SO              
*                                     OPERATOR CAN RETYPE CARD ON TY            
*                                                                               
*                                                                               
ERROR    STW,R8   ERROR8            SAVE RETURN                                 
         STW,R11  MSG5+4            STORE FIELD NO. IN ALARM                    
         LW,R0    WRITELO+2                                                     
         STW,R0   ALARMPM+2         OUTPUT ALARM ON LO                          
         LI,R7    ALARMPM                                                       
         BAL,R8   WRITE             WRITE ALARM ON OUTPUT DEV.                  
         LW,R0    ALARMPM+2                                                     
         CW,R0    KTYA01            BYPASS ID ALREADY LOGGED ON TY              
         BE       ERROR3                                                        
         LI,R9    0                                                             
         LI,R7    MSG5                                                          
         BAL,R8   TYPE              TYPE ALARM ON TY                            
ERROR3   LW,R0    KTYA01                                                        
         STW,R0   READSI+2          SWITCH INPUT TO TY                          
         B        *%+1              EXIT                                        
ERROR8   DATA     0                                                             
*                                                                               
ALARMPM  DATA     BA(MSG5A)+1       BA OF ERROR FIELD XX MSG                    
         DATA     14                BYTE COUNT                                  
         DATA     0                 DEVICE TO OUTPUT ON                         
         TITLE    '** SYSGEN  - MAP OUTPUT ROUTINE    **'                       
*                                                                               
MAP      STW,R8   M99               SAVE RETURN                                 
         LI,R1    11                                                            
         LI,R2    0                                                             
M02      LW,R0    WRITEMAP+2        SET UP CALL SEQ.                            
         BEZ      M02A              NO PRINTED MAP; SKIP SET UP FOR IT          
*                                                                               
         STW,R0   M92+2,R2                                                      
         AI,R2    3                                                             
         BDR,R1   M02                                                           
         LH,R6    WRITEMAP+2        RESET FIRST TIME SWITCH FOR PRINT           
         LI,R0    0                 SO NEXT LINE PRINTED WILL BE                
         STB,R0   IOT14,R6          ON A NEW PAGE                               
*                                                                               
M02A     RES      0                                                             
         LI,R7    M93                                                           
         BAL,R8   WRITMAP           SKIP TWO LINES                              
         BAL,R8   WRITMAP                                                       
         LI,R1    4                 GET NO. FWA'S TO WRITE                      
         LI,R2    M87A+4            ADD. OF FIRST MSG+4                         
         LI,R7    M97A+3            ADD. OF FIRST PT+3                          
M03      AI,R2    -4                POINT OT CURRENT MSG                        
         AI,R7    -3                POINT TO CURRENT PT                         
         LW,R10   FWATAB,R1         GET ADD OF VALUE                            
         LW,R10   *R10              GET VALUE                                   
         BEZ      M04               B IF NOT ALLOC.                             
         CI,R10   X'10000'          IS ADD OVER 64K                             
         BL       %+2               NO                                          
         MTW,1    2,R2              YES, SET HI ORDER BIT                       
         LI,R0    0                 SET UP                                      
         LI,R5    -12               CALL SEQUENCE                               
         BAL,R8   HEXBCD            FOR HEXBCD                                  
         STW,R0   3,R2              STORE INTO MSG                              
         BAL,R8   WRITMAP           WRITEMSG                                    
M04      BDR,R1   M03               B IF NOT DONE                               
         LI,R7    M93                                                           
         BAL,R8   WRITMAP           SKIP TWO LINES                              
         BAL,R8   WRITMAP                                                       
         LI,R7    M94                                                           
         BAL,R8   WRITMAP           TBL ALLOC HDR                               
         PAGE                                                                   
*                                                                               
* OUTPUT SYMBOL TABLES                                                          
*                                                                               
         LI,R0    SYMT1             INITIALIZE POINYERS                         
         STW,R0   M70                                                           
         LI,R0    SYMT2                                                         
         STW,R0   M71                                                           
         LI,R0    SYMTSIZE          GET SIZE OF SYMT                            
         STW,R0   M72                 FOR MAP                                   
         LI,R1    1                                                             
*                                                                               
* PRINT A SYMBOL TABLE                                                          
*                                                                               
M08      LW,R0    KBLANKS                                                       
         LI,R2    20                                                            
         STW,R0   M90-1,R2          BLANK OUT PRINT BUFFER                      
         BDR,R2   %-1                                                           
*                                                                               
         LI,R0    M90                                                           
         STW,R0   M91               RESET STORE PTR                             
*                                                                               
         LI,R2    5-#ONLINE         NUMBER OF SYMBOLS/LINE                      
         PAGE                                                                   
M09      LD,R14   *M70,R1           GET A SYMBOL NAME                           
         BNEZ     M09N              VALID NAME: OUT IT                          
*                                                                               
         LI,R7    M92               PRINT PARTIAL LINE                          
         BAL,R8   WRITMAP           TO END LOW END                              
         CI,R2    1                 WAS THE LINE A FULL LINE ?                  
         BNE      M09A                NO, BLANKS IN LAST ENTRY POS              
*                                                                               
         LI,R7    M93               LINE WAS FULL. OUT A BLANK LINE             
         BAL,R8   WRITMAP           TO SEPARATE PARTS OF TABLE                  
*                                                                               
M09A     AI,R1    1                 STEP TO NEXT VALID ENTRY                    
         CW,R1    M72               AT END OF TABLE ?                           
         BG       M15                 YES, GO TEST FOR NEXT TABLE               
*                                                                               
         LD,R14   *M70,R1           GET NEXT SYMBOL TABLE ENTRY                 
         BNEZ     M08               VALID SYMBOL: START NEW LINE WITH           
         B        M09A              UNUSED ENTRY: SKIP IT                       
*                                                                               
M09N     RES      0         OUT A NAME AND ITS ADDRESS                          
         LI,R0    0                 INIT THE CONVERTED RESULT WORD              
         LI,R5    -12               SET TO CONVERT 4 CHARACTERS                 
         LW,R10   *M71,R1           GET BYTE ADDRESS TO OUTPUT                  
         SLS,R10  -2                CONVERT TO A WORD ADDRESS                   
         BAL,R8   HEXBCD            CONVERT TO EBCDIC                           
         LW,R10   R0                MOVE                                        
         LW,R11   M82               GET THE '=' SIGN                            
         SCD,R10  -8                FORM '=XXXX   '                             
         LD,R8    R14               THEN 'NNNNNNNN=XXXX   '                     
         LCI      4                 MOVE TO THE PRINTLINE                       
         STM,R8   *M91                                                          
         MTW,+4   M91               STEP POINTER FOR NEXT ADDRESS               
*                                                                               
*                                                                               
*                                                                               
M10A     AI,R1    1                 STEP INDEX                                  
         CW,R1    M72               DONE WITH THIS PART OF MAP                  
         BG       M12               DONE                                        
         BDR,R2   M09               LOOP FOR ONE LINE                           
M12      LI,R7    M92                                                           
         BAL,R8   WRITMAP           PRINT A LINE                                
         CW,R1    M72               DONE WITH THIS SYMBOL TABLE                 
         BLE      M08               NO, OUTPUT NEXT LINE                        
*                                   YES, WHAT NEXT                              
         PAGE                                                                   
*                                                                               
* CHECK FOR DEFT MAP ALSO                                                       
*                                                                               
M15      RES      0         TEST FOR 2ND PASS THROUGH HERE                      
         LI,R7    M93               SPACE 2 LINES TO SEPARATE THE               
         BAL,R8   WRITMAP           TWO TABLE ON THE CPRMAP FILE                
         BAL,R8   WRITMAP                                                       
         LH,R6    WRITEMAP+2        RESET FIRST TIME SWITCH FOR PRINT           
         LI,R0    0                 SO NEXT LINE PRINTED WILL BE                
         STB,R0   IOT14,R6          ON A NEW PAGE                               
         LW,R0    M70               HAVE WE DONE DEFT                           
         CI,R0    DEFT1                                                         
         BE       M16               YES,DONE                                    
         MTW,0    SYSLDFLG          IS CALL FROM SYSLOAD                        
         BEZ      M16               NO, DON'T DO DEFT                           
         LI,R0    DEFT1             SET POINTERS FOT DEFT                       
         STW,R0   M70                                                           
         LI,R0    DEFT2                                                         
         STW,R0   M71                                                           
         LW,R0    DEFT2             SET SYMBOL                                  
         STW,R0   M72                COUNT FOR MAP                              
         LI,R1    1                                                             
         LI,R7    M98C                                                          
         BAL,R8   WRITMAP           PROG ALLOC HDR                              
         B        M08               OUTPUT SYMBOL TABLE                         
         PAGE                                                                   
*                                                                               
* OUTPUT AREA MAP                                                               
*                                                                               
M16      LI,R7    M98               OUTPUT RAD ALLOCATION HEADING               
         BAL,R8   WRITMAP                                                       
         LI,R7    M98A                                                          
         BAL,R8   WRITMAP           OUTPUT HDR                                  
*                                                                               
         LW,R0    KBLANKS                                                       
         LI,R2    21                                                            
         STW,R0   M90-2,R2          CLEAR OUT PRINT BUFFER                      
         BDR,R2   %-1                                                           
*                                                                               
         LI,R1    0                                                             
M17      RES      0                                                             
         LB,R0    *MDFLAG,R1        GET FLAGS                                   
         CI,R0    MDALLOC           IS AREA ALLOCATED                           
         BAZ      M24A              NO                                          
*                                   YES                                         
         LH,R0    *MDNAME,R1        GET AREA NAME                               
         STH,R0   M90               PUT IN MESSAGE                              
*                                                                               
         LB,R2    *MDDISCI,R1       GET DISC INDEX                              
         LH,R0    *DISCNWPS,R2      GET NWPS                                    
         BAL,R8   BINBCD            CONVERT                                     
         STW,R0   M90+13            PUT NWPS IN MESSAGE                         
         PAGE                                                                   
         LB,R2    *MDDCTI,R1        GET DCT INDEX                               
         LW,R0    *DCTMOD,R2        GET MODEL NUMBER                            
         STW,R0   M90+4             PUT IN MESSAGE                              
*                                                                               
         LD,R2    *DCT16,R2         GET DEVICE NAME                             
         SLD,R2   24                POSITION LEFT                               
         STW,R2   M90+2             MOST OF IT                                  
         LB,R3    R3                                                            
         STB,R3   M90+3             REST OF IT TO MESSAGE                       
*                                                                               
         LW,R0    R1                GET AREA INDEX IN R0                        
         BAL,R8   BINBCD            CONVERT                                     
         STH,R0   M90+1             AND PUT IN MESSAGE                          
*                                                                               
         LB,R2    *MDFLAG,R1        GET PROTECT BITS                            
         AND,R2   MDWPMASK          MASK OFF PROTECT CODE                       
         LB,R0    M28,R2            GET PROTECT CHARACTER                       
         STB,R0   M90+12            AND PUT IN MESSAGE                          
*                                                                               
         LW,R0    *MDBOA,R1         GET BOA                                     
         BAL,R8   BINBCD            CONVERT                                     
         LCI      2                                                             
         STM,R8   M90+5             PUT BOA IN MESSAGE                          
*                                                                               
         LW,R0    *MDEOA,R1         GET EOA                                     
         BAL,R8   BINBCD            CONVERT                                     
         LCI      2                                                             
         STM,R8   M90+7                                                         
         PAGE                                                                   
         LW,R0    *MDEOA,R1         GET END OF AREA                             
         SW,R0    *MDBOA,R1         LESS BEGINNING OF AREA                      
         AI,R0    1                 LESS ONE TO GET SIZE                        
         BAL,R8   BINBCD            CONVERT                                     
         LCI      2                                                             
         STM,R8   M90+9             AND PUT IN MESSAGE                          
*                                                                               
         LI,R7    M92                                                           
         BAL,R8   WRITMAP           PRINT A LINE                                
*                                                                               
M24A     RES      0                                                             
         AI,R1    1                                                             
         CW,R1    K:NUMDA           DONE YET                                    
         BLE      M17               NO, LOOP                                    
*                                   YES, ALL DONE                               
         LI,R7    M98B                                                          
         BAL,R8   WRITMAP                                                       
         B        *M99              RETURN                                      
********                                                                        
M28      TEXT     'PBFS X '         WRITE PROTECT CHARACTERS                    
         PAGE                                                                   
*                                                                               
* BINARY TO DECIMAL EBCDIC CONVERSION ROUTINE                                   
*                                                                               
*                                                                               
* INPUT:                                                                        
* R8     LINK                                                                   
* R0     VALUE                                                                  
*                                                                               
* OUTPUT:                                                                       
* R0     LEAST SIGNIFICANT HALF                                                 
* R8/9   WHOLE NUMBER                                                           
*                                                                               
BINBCD   RES      0                                                             
         LCI      8                                                             
         STM,R1   BINBCDSV          SAVE R1 THROUGH R8                          
*                                                                               
         SLD,R0   -32               MOVE R0 TO R1 FOR DIVISION                  
         LI,R3    8                 8 CHARACTER COUNTER                         
BINBCD10 RES      0                                                             
         LI,R0    0                 CLEAR TOP HALF FOR DIVIDE                   
         DW,R0    KD10              DIVIDE BY 10                                
         AI,R0    '0'               ADD A '0' TO REMAINDER                      
         SLD,R8   -8                SLIDE OVER ONE CHARACTER                    
         STB,R0   R8                PUT IN CHARACTER STRING                     
*                                                                               
         CI,R1    0                 IS REMAINDER ZERO                           
         BE       BINBCD30          YES                                         
*                                   NO                                          
         BDR,R3   BINBCD10          LOOP                                        
         LW,R8    STARSTG                                                       
         LI,R9    STARSTG                                                       
         B        BINBCD90          EXIT                                        
         PAGE                                                                   
BINBCD20 RES      0                                                             
         SLD,R8   -8                                                            
         LI,R0    ' '                                                           
         STB,R0   R8                BLANK FILL                                  
BINBCD30 BDR,R3   BINBCD20          FILL OUT VALUE                              
*                                                                               
BINBCD90 LCI      7                                                             
         LM,R1    BINBCDSV          RESTORE R1-R7                               
         LW,R0    R9                PICK UP RIGHT HALF                          
         B        *BINBCDSV+7       RETURN                                      
********                                                                        
*                                                                               
BINBCDSV RES      8                 8 CELLS FOR REGISTER SAVE                   
*                                                                               
STARSTG  TEXT     '****'                                                        
         PAGE                                                                   
*                                                                               
* MAP PRINTOUT CONSTANTS                                                        
*                                                                               
*                                                                               
M70      DATA     0                 POINTERS TO SYMT OR DEFT                    
M71      DATA     0                                                             
M72      DATA     0                 SYMBOL COUNT FOR MAP                        
*                                                                               
M80      TEXT     '**** CPR PROGRAM ALLOCATION ****'                            
M81      TEXT     '**** END MAP ****'                                           
M82      TEXT     '   ='                                                        
M83      TEXT     '**** DISC ALLOCATION ***'                                    
M84 TEXT 'AREA # DEVICE  MODEL   FIRST    LAST    SIZE   WP   NWPS'             
M85      TEXT     ' BCKG. FWA=0XXXX'                                            
M86      TEXT     ' FGD.  FWA=0XXXX'                                            
M87      TEXT     ' FMBOX FWA=0XXXX'                                            
M87A     TEXT     ' PATCH FWA=0XXXX'                                            
M88      TEXT     ' '                                                           
M89      TEXT     '**** CPR TABLE ALLOCATION ****'                              
         BOUND    8                                                             
M90      RES      20                PRINT BUFFER                                
M91      DATA     0                 POINTER TO PRINT IMAGE                      
M92      DATA     BA(M90)                                                       
         DATA     80                                                            
         DATA     0                                                             
M93      DATA     BA(M88)                                                       
         DATA     1                                                             
         DATA     0                                                             
M94      DATA     BA(M89)                                                       
         DATA     30                                                            
         DATA     0                                                             
M95      DATA     BA(M85)                                                       
         DATA     16                                                            
         DATA     0                                                             
M96      DATA     BA(M86)                                                       
         DATA     16                                                            
         DATA     0                                                             
M97      DATA     BA(M87)                                                       
         DATA     16                                                            
         DATA     0                                                             
M97A     DATA     BA(M87A)                                                      
         DATA     16                                                            
         DATA     0                                                             
M98      DATA     BA(M83)                                                       
         DATA     24                                                            
         DATA     0                                                             
M98A     DATA     BA(M84)                                                       
         DATA     56                                                            
         DATA     0                                                             
M98B     DATA     BA(M81)                                                       
         DATA     17                                                            
         DATA     0                                                             
M98C     DATA     BA(M80)                                                       
         DATA     32                                                            
         DATA     0                                                             
M99      DATA     0                 EXIT                                        
FWATAB   EQU      %-1                                                           
         DATA     K:BACKBG                                                      
         DATA     K:FGDBG2                                                      
         DATA     K:FMBOX                                                       
         DATA     K:PTCH                                                        
MAPBASE  DATA     0                 PRESENT BASE OF MAP                         
*                                                                               
*                                                                               
         PAGE                                                                   
*                                                                               
* COPY MAP IMAGE FOR CPRMAP FILE                                                
*                                                                               
*                                                                               
*                                                                               
*                                                                               
WRITMAP  RES      0                                                             
         MTW,0    SYSLDFLG          IS CALL FROM SYSLOAD                        
         BEZ      WMAP2               NO, TEST IF PRINTING MAP                  
*                                                                               
         STD,R2   R10               SAVE  R2,R3                                 
         STD,R4   R12               SAVE  R4,R5                                 
         LW,R4    0,R7              GET BASE                                    
         SLS,R4   -2                WORD ADDRESS                                
         AI,R4    -1                SET UP                                      
         LW,R2    1,R7              GET BYTE COUNT                              
         AI,R2    3                                                             
         SLS,R2   -2                EXTENDED WORD COUNT                         
         LW,R5    MAPBASE           PRESENT BASE                                
         BNEZ     WMAP1             ALREADY SET                                 
         LW,R0    KBLANKS                                                       
         LI,R3    SYSLDFWA-1                                                    
         CW,R3    OLAYFWA                                                       
         BL       %+3                                                           
         STW,R0   *R3               PRESET BLANKS                               
         BDR,R3   %-3                                                           
         LW,R5    OLAYFWA           BASE                                        
         AI,R5    -1                                                            
         STW,R5   MAPBASE                                                       
WMAP1    LW,R3    *R4,R2                                                        
         STW,R3   *R5,R2            MOVE IMAGE                                  
         BDR,R2   %-2                                                           
         AI,R5    20                                                            
         STW,R5   MAPBASE           UPDATE BASE                                 
         LD,R2    R10               RESTORE R2,R3                               
         LD,R4    R12               RESTORE R4,R5                               
*                                                                               
WMAP2    RES      0         TEST IF PRINTED MAP REQUESTED                       
         MTW,+00  WRITEMAP+2        IS AN ADDRESS GIVEN?                        
         BEZ      *R8                 NO, SKIP PRINT OUTPUT                     
*                                                                               
         B        WRITE             YES, GO PRINT IT                            
         TITLE    '** SYSGEN  - SCAN SUBROUTINE  **'                            
*                                                                               
*                                                                               
*                                   SCANS ONE SUBFIELD AT A TIME                
*                                                                               
*                                   CALL IS   BAL,R8   SCAN                     
*                                     WHERE  R7=ADD. OF INPUT PARAM.            
*                                     WHICH ARE                                 
*                                                                               
*                                       WORD 1= ADD. OF INPUT BUFFER            
*                                               (MUST START ON WORD BND)        
*                                       WORD 2=1, LEAVE FIELD IN EBCDIC         
*                                             =2, CONVERT TO HEX                
*                                             =4, CONVERT TO DECIMAL            
*                                             =3, CONVERT TO HEX OR BCD         
*                                             =5, CONVERT TO DEC OR BCD         
*                                                                               
*                                       WORD 3=0, FIRST TIME FOR CARD           
*                                             =1, CONTINUE ON CARD              
*                                                                               
*                                       WORD 4=0, NO DEVICE TYPE INPUT          
*                                             =1, DEV. TYPE INPUT NEXT          
*                                                 (EITHER YYNDD,OP.             
*                                                  LABEL, OR ZERO)              
*                                                 F1 MUST=1                     
*                                               YYNDD GETS CHANGED TO           
*                                               BITS 0-15 ; YY IN BCD           
*                                               BITS 21-23; N IN BINARY         
*                                               BITS 24-31; DD IN BINARY        
*                                         =-1, ONLY NDD NOT YYNDD               
*                                       WORD 5=ADD. OF ROUTINE TO               
*                                              PROCESS  ;                       
*                                                                               
*                                   EXITS WITH FOLLOWING:                       
*                                                                               
*                                     R7- UNCHANGED                             
*                                     R8,R9- CONTAIN VALUE                      
*                                       IF R9=0, R8 CONTAINS DEC OR HEX         
*                                            =NONZERO, R8 AND R9 CONTAIN        
*                                               EBCDIC(UNUSED CHAR. HAVE        
*                                               BLANKS)                         
*                                                                               
*                                     R6=0, END OF SUBFIELD                     
*                                       =1, END OF FIELD                        
*                                       =2, END OF CARD                         
*                                       =-1,ERROR IN SUBFIELD OR FIELD          
*                                         ERRORS ARE:                           
*                                           ILLEGAL CHAR.                       
*                                           MORE THAN 8 CHARS.                  
*                                           COL. 80 SCANNED                     
*                                           ILLEGAL PARENTHSES                  
*                                           NO : IN COL. ONE                    
*                                           EMPTY FIELD OR SUBFIELD             
*                                     R10= NO. CHARS. IN FIELD OR SUBF.         
*                                     R11= SUBFIELD NO. IN EBCDIC FOR           
*                                          ERROR FIELD XX ALARM; CHARS.         
*                                          ARE IN BITS 8-23, OTHER CHARS        
*                                          ARE BLANKS                           
*                                                                               
*                                   REGISTERS USED:  R0, R5-R11                 
*                                                    R7 IS UNCHANGED            
*                                   AFTER AN ERROR RETURN, WORD 3 OF            
*                                     INPUT PARAM. MUST BE ZERO                 
*                                                                               
*                                                                               
*                                                                               
*                                                                               
*                                                                               
SCAN     STW,R8   SCAN99            SAVE RETURN ADDRESS                         
         LW,R0    *R7                                                           
         STW,R0   SCAN96            SAVE ADD. OF BUFFER                         
         LW,R0    SCAN92            IS IT A CONT. CARD                          
         BNEZ     SCAN0             NO                                          
         STW,R7   SCAN88            YES, SAVE R7                                
         AI,R7    4                                                             
         LW,R0    *R7                                                           
         BAL,R8   *R0               ENTER ROUTINE TO READ NEXT CARD             
         LW,R7    SCAN88            RESTORE R7                                  
SCAN0    LW,R8    SCAN89A           HOUSEKEEP R8,R9 TO ALL BLANKS               
         STW,R8   R9                                                            
         LI,R0    -9                                                            
         STW,R0   SCAN93            HOUSEKEEP CHAR. COUNT                       
         MTW,0    3,R7              GET DEVICE CONVERSION,NDD                   
         BGEZ     %+3               NO                                          
         MTW,2    SCAN93            ADVANCE CHAR COUNT BY 2(YY)                 
         MTW,2    3,R7              SET TO YYNDD                                
         LI,R0    0                                                             
         STW,R0   SCAN95            CLEAR COUNT OF HEX CHARS.                   
         LW,R0    2,R7              IS THIS A CONTINUATION                      
         BNEZ     SCAN4             YES                                         
         STW,R0   SCAN90            HOUSEKEEP FIELD FLAG AND                    
         LI,R0    -1                  PARENTHESES FLAG                          
         STW,R0   SCAN91                                                        
SCAN1    LI,R0    X'F0F0'                                                       
         STW,R0   SCAN94            HOUSEKEEP FIELD COUNT                       
         LB,R0    *SCAN96           IS COLUMN ONE A COLON                       
         CI,R0    X'7A'                                                         
         BNE      SCAN8             NO, ERROR                                   
         LI,R6    1                 SET TO COL. 2                               
         LI,R0    X'40'                                                         
SCAN2    CB,R0    *SCAN96,R6        SCAN OFF LEADING BLANKS                     
         BNE      SCAN6             NOT BLANK                                   
         AI,R6    1                 STEP INDEX                                  
         CI,R6    80                                                            
         BL       SCAN2             NOT COL. 80 YET                             
         LI,R10   0                 BLANK CARD, SET NO. CHARS=0                 
         LI,R6    2                 SET TO END OF CARD                          
         B        SCAN33            EXIT                                        
*                                                                               
SCAN4    LW,R0    SCAN92            IS THIS A CONT. CARD                        
         BEZ      SCAN1             YES                                         
         LW,R6    SCAN98            GET COL. INDEX                              
         AI,R6    1                 STEP TO NEXT COL.                           
SCAN6    LW,R11   1,R7              GET INPUT CONVERSION TYPE IN R11            
         LI,R0    0                                                             
         STW,R0   SCAN98            HOUSEKEEP                                   
         MTW,1    SCAN94            STEP FIELD COUNTER IN EBCDIC                
         LI,R5    3                 CHECK FOR OVERFLOW AND RESET IF             
         LI,R0    X'FA'             OVERFLOW                                    
         CB,R0    SCAN94,R5                                                     
         BG       SCAN7             NO OVERFLOW                                 
         LI,R0    X'F0'             RESET FOR OVERFLOW                          
         STB,R0   SCAN94,R5                                                     
         LI,R5    2                                                             
         MTB,1    SCAN94,R5                                                     
SCAN7    LB,R10   *SCAN96,R6        GET NEXT BYTE                               
         CI,R10   X'C1'                                                         
         BL       SCAN25            SPECIAL CHAR.                               
         MTW,1    SCAN93            STEP CHAR. COUNT                            
         BNEZ     SCAN9             NOT TOO MANY CHARS.                         
SCAN8    LI,R6    -1                SET TO ERROR EXIT                           
         B        SCAN33            GO TO EXIT                                  
SCAN9    CI,R10   X'C7'                                                         
         BL       SCAN19            HEX CHAR.                                   
         CI,R10   X'F0'                                                         
         BL       SCAN14            EBCDIC CHAR.                                
         CI,R10   X'FA'                                                         
         BGE      SCAN8             ERROR, ILLEGAL CHAR.                        
         CI,R11   4                 IS FIELD DECIMAL                            
         BL       SCAN19            NO DECIMAL CONVERSION                       
         LI,R11   4                 SET FLAG SO ONLY DECIMAL CONVERSION         
         CW,R8    SCAN89A           IS THIS FIRST CHAR.                         
         BNE      %+2               NO                                          
         LI,R8    0                 YES, CLEAR R8                               
         LW,R9    R8                                                            
         MI,R9    10                CHANGE TO DECIMAL                           
         AI,R10   -X'F0'                                                        
         AW,R9    R10               ADD INTO ACC. SUM                           
         LW,R8    R9                MOVE VALUD TO R8                            
SCAN10   LI,R9    0                 SET EXIT VALUE TO DEC OR HEX                
SCAN11   LW,R0    SCAN91            WAS ) PREVIOUS CHAR.                        
         BEZ      SCAN8             YES, ERROR IN FIELD                         
SCAN12   AI,R6    1                 STEP COL. COUNT                             
         CI,R6    72                COL 72                                      
         BL       SCAN7             NO                                          
         B        SCAN8             YES, ERROR                                  
SCAN14   LW,R0    R10               CHECK FOR LEGAL EBCDIC CHAR.                
         AND,R0   KXF                                                           
         BEZ      SCAN8             ILLEGAL CHAR.                               
         CI,R0    'A'                                                           
         BGE      SCAN8             ILLEGAL CHAR.                               
         CI,R10   X'E1'                                                         
         BE       SCAN8             ILLEGAL CHAR.                               
SCAN14A  LI,R0    1                                                             
         AND,R11  R0                EBCDIC CONV. REQUESTED                      
         BEZ      SCAN8             NO, ERROR                                   
         LW,R5    SCAN93            GET CHAR. COUNT                             
         AI,R5    8                 GET PROPER BYTE FOR CHAR.                   
         STB,R10  R8,R5             STORE CHAR. IN PROPER BYTE                  
         B        SCAN11                                                        
SCAN19   LW,R0    3,R7              IS THIS DEVICE TYPE INPUT                   
         BEZ      SCAN20            NO                                          
         LW,R0    SCAN93            YES                                         
         AI,R0    5                 IS IT CHAR. 4 OR 5                          
         BLZ      SCAN14A           NO, KEEP IN EBCDIC                          
         BGZ      SCAN22            YES, CHAR. 5                                
         LI,R5    2                                                             
         LB,R0    R8,R5             GET IOP NO.                                 
         DO       #550                                                          
         LI,R5    BA(SCAN87)-BA(SCAN88)                                         
SCAN19A  CB,R0    SCAN87,R5         LOOK FOR MATCH OF IOP LETTER                
         BE       SCAN19B           FOUND IT                                    
         BIR,R5   SCAN19A                                                       
         B        SCAN8             ERROR, CANT FIND                            
*                                                                               
SCAN19B  LB,R0    SCAN88,R5         GET HEX FOR IOP BYTE                        
         ELSE                                                                   
         AI,R0    -X'C1'            CHANGE TO BINARY                            
         BLZ      SCAN8             NOT A-H, ERROR                              
         CI,R0    7                                                             
         BG       SCAN8             ERROR                                       
         FIN      #550                                                          
         LH,R8    R8                                                            
         SLS,R8   8                 POSITION FIRST 2 CHARS.                     
         AW,R8    R0                                                            
         B        SCAN22                                                        
SCAN20   LI,R0    2                                                             
         AND,R0   R11                                                           
         BEZ      SCAN14A           NOT HEX CONV.                               
         LI,R11   2                 SET TO HEX ONLY                             
         CW,R8    SCAN89A           IS THIS FIRST CHAR.                         
         BNE      SCAN22            NO                                          
         LI,R8    0                 YES, CLEAR R8                               
SCAN22   SLS,R8   4                                                             
         CI,R10   X'F0'                                                         
         BGE      %+2                                                           
         AI,R10   X'39'             CHANGE TO HEX                               
         AI,R10   -X'F0'                                                        
         AW,R8    R10                                                           
         MTW,1    SCAN95            STEP COUNT OF HEX                           
         B        SCAN10            GET NEXT CHAR.                              
SCAN25   CI,R10   X'6B'             COMMA                                       
         BNE      SCAN35            NO                                          
         LW,R0    SCAN91            YES,GET PARENTHESES FLAG                    
         BGZ      SCAN29            NOT END OF FIELD                            
         LI,R0    -1                                                            
         STW,R0   SCAN91            RESET PARENTHESES FLAG                      
SCAN28   MTW,1    SCAN98            SET EXIT PARAM. FOR END OF FIELD            
SCAN29   MTW,1    SCAN90            STEP FIELD FLAG                             
         LW,R10   SCAN93            GET CHAR. COUNT ON EXIT                     
         AI,R10   9                 CHANGE TO POSITIVE                          
         BEZ      SCAN8             ERROR IF BLANK FIELD                        
         LW,R0    3,R7              SPECIAL CONVERSION                          
         BEZ      SCAN32            NO                                          
         CI,R10   1                 YES                                         
         BEZ      SCAN34            1 CHAR, MUST BE '0' OR 'C'                  
         CI,R10   2                                                             
         BEZ      SCAN32            2 CHARS. , OP. LABEL                        
         CI,R10   5                                                             
         BNE      SCAN8             ERROR, IF NOT 5 CHARS.,(YYNDD)              
         MTW,-2   SCAN95                                                        
         BNEZ     SCAN8             ERROR, IF NOT 2 HEX CHARS.                  
SCAN32   XW,R6    SCAN98            SAVE CHAR COUNT AND SET EXIT PM.            
SCAN33   MTW,1    SCAN92            STEP CONT. CARD FLAG                        
         LW,R11   SCAN94            SET R11 TO FIELD NO.                        
         SLS,R11  8                 POSITION TO PROPER BITS                     
         AW,R11   SCAN89            ADD IN BLANKS                               
         B        *SCAN99           EXIT                                        
SCAN34   LB,R0    R8                                                            
         CI,R0    '0'               IS IT ZERO                                  
         BNE      %+3               NO                                          
         LI,R8    0                 SET R8 TO ZERO                              
         B        SCAN32                                                        
         CI,R0    'C'               IS IT C OP LABEL                            
         BNE      SCAN8             NO, ERROR                                   
         B        SCAN32            YES                                         
SCAN35   CI,R10   X'5D'             RIGHT PARENTH.                              
         BNE      SCAN36            NO                                          
         LW,R0    SCAN91            YES, CHECK LEGALITY                         
         BLEZ     SCAN8             ERROR, RT.PARENTH., BUT NO LEFT             
         MTW,-1   SCAN91            SET PARENTH. FLAG TO RT. PARENTH.           
         B        SCAN12            GET NEXT CHAR.                              
SCAN36   CI,R10   X'4D'             LEFT PARENTHSES                             
         BNE      SCAN37            NO                                          
         MTW,0    SCAN91            YES                                         
         BGZ      SCAN8             ERROR, 2 LFT. PARENTH. IN A ROW             
         LI,R0    1                                                             
         STW,R0   SCAN91            SET TO LEFT PARENTH.                        
         B        SCAN12            GET NEXT CHAR.                              
SCAN37   CI,R10   X'40'             BLANK                                       
         BNE      SCAN38            NO                                          
         LW,R0    SCAN91            GET PARENTH. FLAG                           
         BGZ      SCAN8             ERROR, LFT. BUT NO RIGHT                    
         LW,R0    SCAN90            YES, CHECK FIELD                            
         BNEZ     SCAN37C           SPEC. FIELD, SO EXIT                        
         LI,R0    '.'                                                           
SCAN37A  AI,R6    1                                                             
         CI,R6    80                STRIP OFF BLANKS AFTER MNE. FIELD           
         BE       SCAN37C           END OF CARD, NO SPEC. FIELD                 
         CB,R10   *SCAN96,R6                                                    
         BE       SCAN37A           A BLANK                                     
         CB,R0    *SCAN96,R6        IS IT A PERIOD                              
         BE       SCAN37C           YES,TREAT AS END OF CARD                    
         AI,R6    -1                RESET TO LAST BLANK                         
         B        SCAN28            GO TO EXIT WITH END OF FIELD                
SCAN37C  MTW,2    SCAN98                                                        
         B        SCAN29                                                        
SCAN38   CI,R10   X'5E'             ;                                           
         BNE      SCAN39            NO                                          
         LW,R0    SCAN90                                                        
         BEZ      SCAN8             NOT ALLOWED IN MNEMONIC FIELD               
         LW,R0    SCAN91                                                        
         BGZ      SCAN8             ERROR, LFT. PARENTH., BUT NO RIGHT          
         LW,R10   SCAN93                                                        
         AI,R10   9                 WERE ANY CHAR. SCANNED                      
         BEZ      SCAN8             NO,ERROR IF EMPTY FIELD                     
         LI,R0    -1                                                            
         STW,R0   SCAN92            SET CONT. CARD FLAG                         
         B        SCAN28                                                        
SCAN39   CI,R10   '%'               CHECK FOR LEGAL EBCDIC CHAR.                
         BE       SCAN41            OK                                          
         CI,R10   ':'                                                           
         BL       SCAN8             ILLEGAL CHAR.                               
         CI,R10   X'7C'                                                         
         BG       SCAN8             ILLEGAL CHAR.                               
SCAN41   MTW,1    SCAN93            OK, STEP CHAR. COUNT                        
         BNEZ     SCAN14A                                                       
         B        SCAN8             ERROR,TOO MANY CHARS.                       
*                                                                               
         PAGE                                                                   
*                                                                               
* IOP TABLE FOR 550                                                             
*                                                                               
         DO       #550                                                          
SCAN86   TEXT     ' ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%#@:   '               
SCAN87   DATA     X'00000809',X'0A0B0C0D',X'10111213',X'14151819'               
         DATA     X'1A1B1C1D',X'20212223',X'24252829',X'2A2B2C2D'               
         DATA     X'30313233',X'34350102',X'03040000',0                         
         FIN      #550                                                          
         PAGE                                                                   
SCAN88   DATA     0                 SAVE R7 HERE                                
SCAN89   DATA     X'40000040'       BLANKS                                      
SCAN89A  DATA     X'40404040'       EBCDIC BLANKS                               
SCAN90   DATA     0                 FIELD FLAG                                  
SCAN91   DATA     0                 PARENTHESES FLAG                            
SCAN92   DATA     1                 CONT. CARD FLAG                             
SCAN93   DATA     0                 CHAR. COUNT                                 
SCAN94   DATA     0                 FIELD COUNT                                 
SCAN95   DATA     0                 COUNT OF HEX CHARS.                         
SCAN96   DATA     0                 ADD. OF CARD BUFFER                         
SCAN98   DATA     0                 COL. INDEX AND EXIT PM. R6                  
SCAN99   DATA     0                 RETURN ADDRESS                              
         TITLE    '** SYSGEN  - READ/WRITE SUBROUTINES **'                      
*                                                                               
*                                   PERFORMS ALL I/O FOR SYSGEN EXCEPT          
*                                      TYPING ALARMS                            
*                                   CALL                                        
*                                      BAL,R8    READ OR WRITE                  
*                                    WHERE R7= ADDRESS OF INPUT PARAM.          
*                                      WHICH CONTAIN TWO WORDS                  
*                                         WORD 1= BYTE ADD. FOR I/O             
*                                         WORD 2= BYTE COUNT                    
*                                         WORD 3=DEVICE FOR I/O IN              
*                                                YYNDD FORMAT,                  
*                                                BIT 16=1 MEANS LP DEV.         
*                                                BIT 17=1,EXIT ON I/O ERR.      
*                                         WORD 4=RAD GRANULE                    
*                                         WORD 5=DW INDEX FOR RAD AREA          
*                                   WON'T WRITE ANYTHING IF OUTDEV=0            
*                                                                               
*                                   USES R0, R5-R11                             
*                                   EXITS:                                      
*                                      R7= UNCHANGED                            
*                                      R8=0, NO EOF READ                        
*                                        =1, EOF READ                           
*                                                                               
*                                                                               
*                                                                               
         PAGE                                                                   
         DO       #ONLINE                                                       
READ     RES      0                                                             
         STW,R8   REXIT                                                         
         LCI      2                                                             
         LM,R5   *R7                                                            
         SLS,R5   -2                MAKE WORD ADDRESS                           
         CI,R7    READBI                                                        
         BE       READB                                                         
*                                                                               
         LI,R0    ' '               BLANK                                       
         LW,R7    R6                GET BYTE COUNT                              
         AI,R7    -1                LESS ONE                                    
         STB,R0   *R5,R7            BLANK CLEAR BUFFER                          
         BDR,R7   %-1                                                           
*                                                                               
         M:READ   M:SI,(BUF,*R5),(SIZE,*R6),(WAIT)                              
         B        RWEXIT                                                        
READB    M:READ   M:BI,(BUF,*R5),(SIZE,*R6),(WAIT),(ABN,READEOF)                
RWEXIT   RES      0                                                             
         LI,R8    0                                                             
         B       *REXIT                                                         
READEOF  RES      0                                                             
         LI,R8    1                                                             
         B        *REXIT                                                        
*                                                                               
WRITE    RES      0                                                             
         STW,R8   REXIT                                                         
         LCI      2                                                             
         LM,R5   *R7                                                            
         SLS,R5   -2                MAKE WORD ADDRESS                           
         CI,R7    WRITEDC                                                       
         BNE      WRITECAL                                                      
         LW,R9    R7                                                            
         AI,R9    3                                                             
         LW,R0    *R9                                                           
         STW,R0   SEEK                                                          
         M:WRITE  M:BO,(BUF,*R5),(SIZE,*R6),(KEY,*R9),(WAIT)                    
         B        RWEXIT                                                        
WRITECAL RES      0                                                             
         M:WRITE  M:LO,(BUF,*R5),(SIZE,*R6),(WAIT)                              
         B        RWEXIT                                                        
*                                                                               
REXIT    RES      1                                                             
         ELSE     #ONLINE                                                       
         PAGE                                                                   
READ     LI,R0    0                                                             
         STW,R0   RDWT91            SET FLAG FOR READ OPERATION                 
         B        RDWT1                                                         
WRITE    MTW,1    RDWT91            SET NON ZERO FOR WRITE                      
         FIN      #ONLINE                                                       
RDWT1    STW,R8   RDWT99            SAVE EXIT                                   
RDWT1AA  RES      0                                                             
         LI,R0    0                                                             
         STW,R0   PSTIOPR1          CLEAR PAPER TAPE READ PHASE                 
         LW,R8    2,R7                                                          
         BEZ      *RDWT99           EXIT IF DEV=0                               
         LW,R0    2,R7              GET DEVICE                                  
         LH,R6    R0                GET INDEX                                   
RDWT1B   LW,R10   2,R7                                                          
         LH,R0    IOT1,R6           GET DEVICE NAME                             
         STH,R0   R10               BUILD YYNDD                                 
         STD,R6   RDWT98            SAVE R6,R7                                  
         MTW,0    SKIPFLAG          SKIPWRITE                                   
         BNEZ     RDWT1F            YES                                         
         CI,R6    DT:DC             RAD                                         
         BE       %+3               YES                                         
         CI,R6    DT:DP             IS IT A DISK PACK                           
         BNE      RDWT1F            NO                                          
         LW,R5    4,R7              GET MD INDEX                                
         BNEZ     RDWT1F            QUIT IF NOT SP AREA                         
         LB,R5    *MDDISCI,R5       GET DISC INDEX                              
         LH,R0    *DISCNWPS,R5      GET NUMBER OF WORDS/SECTOR                  
         SLS,R0   2                 FORM BYTES/SECTOR                           
         STW,R0   RDWTDP            SAVE BYTES/SECTOR                           
         LW,R8    1,R7              GET BYTE COUNT                              
         SW,R8    R0                SECTOR OR LESS                              
         BLEZ     RDWT1H            YES                                         
         STW,R8   RDWTDP1           SAVE REST OF COUNT                          
         STW,R0   1,R7              SET BYTE COUNT TO SECTOR                    
         MTW,0    RDWTDP2                                                       
         BNEZ     RDWT1F                                                        
         LW,R8    1,R7                                                          
         STW,R8   RDWTDP2           PRESERVE ORIGINAL BYTE COUNT                
         LW,R0    3,R7              PRESERVE ORIGNINAL GRAN                     
         STW,R0   RDWTDP3                                                       
         LW,R0    0,R7                                                          
         STW,R0   RDWTDP4           PRESERVE ORIGINAL BYTE ADDRESS              
         B        RDWT1F            GO PROCESS                                  
RDWT1H   LI,R0    0                                                             
         STW,R0   RDWTDP1           CLEAR REMAINING BYTE COUNT                  
RDWT1F   RES      0                                                             
         CI,R6    DT:PR             IS DEVICE PR                                
         BNE      %+3               NO                                          
         LI,R0    1                 YES, SET BYTE COUNT=1                       
         B        %+2                                                           
         LW,R0    1,R7                                                          
         STW,R0   IOCL1             STORE BYTE COUNT IN COM. LIST               
         LI,R0    0                                                             
         STW,R0   RDWT89            STORE INTO MSG                              
         STW,R0   RDWT93            CLEAR EXIT PARAM.                           
         STW,R0   RDWT94            CLEAR NO. RETRIES                           
RDWT1D   LI,R0    -1                                                            
         STW,R0   RDWT95            RESET EMPTY TYPED FLAG                      
         PAGE                                                                   
*                                                                               
* WAIT FOR DEVICE TO BE READY                                                   
*                                                                               
*                                                                               
RDWT2    LI,R0    4                                                             
RDWT2C   TIO,R11  *R10              DO TIO                                      
*                                                                               
         BCR,12   RDWT6             BRANCH IF SIO CAN BE ACCEPTED               
         BCS,8    RDWT4             BRANCH IF IOP BUSY OR DEV. NOT REC.         
         AI,R0    -1                HAVE WE TRIED 3 TIMES                       
         BEZ      %+4               YES,GO OUTPUT BUSY ALARM                    
         LI,R5    640               NO,LOOP FOR 1 MIL. TO CUT DOWN BW           
         BDR,R5   %                                                             
         B        RDWT2C            GO TRY TIO AGAIN                            
         CI,R6    DT:LP             DEVICE BUSY - IS IT A LINE PRINTER          
         BE       RDWT2              BRANCH IF IT IS - WAIT FOR COMPLETE        
         CI,R6    DT:LPLP           LOW-PERFORMANCE                             
         BE       RDWT2              LINE PRINTER                               
         LI,R9    -1                GO TYPE YYNDD BUSY                          
RDWT3    LI,R7    MSG11                                                         
RDWT3A   BAL,R8   TYPE              TYPE PROPER ALARM                           
RDWT3C   LD,R6    RDWT98            RESTORE R6,R7                               
         B        RDWT2             LOOP TILL TIO IS OK                         
RDWT4    BCS,4    RDWT5             BRANCH IF DEV. NOT REC.                     
         LI,R9    1                                                             
         B        RDWT3             GO TYPE IOP X BUSY                          
RDWT5    LI,R9    -1                                                            
         LI,R7    MSG10             GO TYPE YYNDD UNRECOG                       
         BAL,R8   TYPE                                                          
         WAIT                                                                   
         B        RDWT3C            GO TRY AGAIN                                
         PAGE                                                                   
*                                                                               
* DEVICE IS NOT BUSY NOW                                                        
*                                                                               
RDWT6    SCS,R11  4                                                             
         AND,R11  K1                IS DEVICE IN MANUAL                         
         BNEZ     RDWT8             NO                                          
         LB,R0    IOT6,R6           MAYBE,SEE IF NEED TOV TO TELL               
         BEZ      RDWT7             DON'T NEED TDV, DEV. IS IN MANUAL           
*                                                                               
         TDV,R11  *R10              DO TDV TO SEE IF DEV. IN MANUAL             
*                                                                               
         SCS,R11  8                 RT. JUSTIFY STATUS                          
         AND,R11  R0                                                            
         BEZ      RDWT8             DEV. IS NOT IN MANUAL                       
RDWT7    MTW,1    RDWT95            WAS EMPTY ALARM TYPED                       
         BNEZ     RDWT2             YES                                         
         LI,R9    -1                NO                                          
         LI,R7    MSG12             SET UP TO TYPE 'EMPTY'                      
         B        RDWT3A                                                        
         PAGE                                                                   
*                                                                               
* READY TO DO AN SIO NOW                                                        
*                                                                               
RDWT8    LI,R0    -1                                                            
         STW,R0   RDWT95            RESET EMPTY TYPED FLAG                      
         LW,R0    PSTIOPR1          IS THIS PAPER TAPE NOT PHASE 0              
         BNEZ     RDWT10A           YES, DON'T SET UP IOCL                      
         LW,R0    RDWT94            IS THIS A RETRY                             
         BNEZ     RDWT9             YES, DON'T GO TO PRE EDIT AGAIN             
         LH,R0    IOT10,R6          IS THERE A PRE I/O EDIT                     
         BEZ      RDWT9             NO                                          
         BAL,R8   *R0               YES, GO TO IT                               
RDWT9    LI,R0    2000              CONSTANT FOR 2 SEC. LOOP FOR CP             
         STW,R0   RDWT96            SET LOOP COUNTER FOR CP                     
*                                   SET UP COMMAND LIST                         
         LW,R0    0,R7              GET BYTE ADD. OF I/O                        
         MTW,0    RDWT91                                                        
         BNEZ     %+3               WRITE                                       
         LB,R9    IOT3,R6           GET READ ORDER                              
         B        %+2                                                           
         LB,R9    IOT4,R6           GET WRITE ORDER                             
         STB,R9   R0                STORE ORDER BYTE                            
         STW,R0   IOCL              STORE WORD ONE OF COM. LIST                 
         LB,R0    IOT5,R6                                                       
         AW,R0    SKIPFLAG          ADD FLAG FOR POSSIBLE SKIP OPERATION        
         STB,R0   IOCL1             SET FLAG BITS IN WORD TWO OF CL             
         LH,R11   IOT13,R6          IS THERE CL TO FOLLOW IOCL                  
         BEZ      RDWT10            NO                                          
         LW,R5    *R11              YES, GET NO. WORDS IN CL                    
         LW,R0    *R11,R5                                                       
         STW,R0   IOCL1,R5          MOVE CL TO FOLLOW IOCL1                     
         BDR,R5   %-2                                                           
RDWT10   LW,R0    RDWT94            IS THIS A RETRY                             
         BEZ      RDWT10A           NO                                          
         MTW,0    RDWT91            YES                                         
         BNEZ     %+4               WRITE, TAKE IOT8                            
         LH,R0    IOT16,R6          IS THERE A READ ERR. REC CL                 
         BNEZ     RDWT10B           YES, USE IT                                 
         B        RDWT10A           NO                                          
         LH,R0    IOT8,R6           IS THERE A WRITE ERR. REC. CL               
         BNEZ     RDWT10B           YES, USE IT                                 
RDWT10A  LB,R0    IOT14,R6          IS THERE A SPECIAL PRE CL                   
         BNEZ     %+3               NO                                          
         LH,R0    IOT15,R6          YES,GET DA OF FIRST TIME CL                 
         B        RDWT10B                                                       
         LI,R0    DA(IOCL)          GET NORMAL DA OF CL                         
*                                                                               
RDWT10B  SIO,R11  *R10              GIVE SIO                                    
*                                                                               
         BCS,12   %-1               LOOP UNTIL SIO TAKES                        
         PAGE                                                                   
*                                                                               
* SIO DONE, NOT WAIT FOR I/O TO COMPLETE                                        
*                                                                               
RDWT11   STW,R10  RDWT97            SAVE R10                                    
         TIO,R10  *R10              DO TIO TO CHECK IF I/O DONE                 
         STCF     R5                SAVE CONDITION CODES                        
         STW,R10  R8                R8=CURRENT CMD ADD.                         
         LW,R10   RDWT97            RESTORE R10                                 
         CI,R6    DT:DC             IS IT A RAD                                 
         BE       RDWT11C            YES                                        
         CI,R6    DT:DP             IS IT A DISC PACK                           
         BE       RDWT11C            YES                                        
         CI,R6    DT:CR             IS IT A CARD READER                         
         BNE      RDWT11F            NO                                         
RDWT11C  LB,R5    R5                GET CONDITION CODE FOLLOWING TIO            
         CI,R5    X'C0'             IS I/O DONE FOR HIGH SPEED RAD              
         BANZ     RDWT13B           NO,GO LOOP AND TRY TIO AGAIN                
RDWT11F  STW,R11  RDWT92            SAVE STATUS                                 
         SCS,R11  7                                                             
         AND,R11  KX33                                     /SIG7-1808/*C5732    
         BEZ      RDWT15            DONE WITH I/O                               
         CI,R6    DT:LP             IS IT A LINE PRINTER                        
         BNE      RDWT13            MAYBE NOT                                   
         CI,R8    DA(IOCL)          ARE WE ON LAST CMD LIST FOR LP              
         BNE      RDWT13B           NO, LOOP                                    
RDWT12   LI,R0    1                 YES                                         
         STB,R0   IOT14,R6          SET FLAG SO PAGE EJECT ONLY DONE            
         LW,R0    RDWT92              ONCE                                      
         AND,R0   KXFFFF                                                        
         BNEZ     RDWT13B           NOT ZERO BYTE COUNT, LOOP                   
         B        RDWT15            LEAVE ON ZERO BYTE COUNT                    
RDWT13   CI,R6    DT:LPLP           IS IT A LOW-PERFORMANCE LP                  
         BNE      RDWT13B           NOT A LINE PRINTER(LP)                      
         CI,R8    DA(IOCL+2)        LOW PERF. LP, ARE WE ON LAST CMD LST        
         BE       RDWT12            YES                                         
RDWT13B  LI,R5    640               LOOP FOR 1 MIL. TO CUT DOWN I/O             
         BDR,R5   %                   BANDWIDTH                                 
         CI,R6    DT:CP             IS IT A CARD PUNCH                          
         BNE      RDWT11            NO, LOOP ON TIO                             
         MTW,-1   RDWT96            YES, HAVE WE LOOPED FOR 2 SEC.              
         BNEZ     RDWT11            NO                                          
         TDV,R11  *R10              YES, ASSUME CP IS JAMMED                    
*                                                                               
         HIO,R9   *R10              GIVE HIO TO CP                              
*                                                                               
         SLS,R11  -16               RT. JUSTIFY STATUS FOR ALARM                
         LI,R9    -1                                                            
         LI,R7    MSG14             TYPE  CP FAULT                              
         BAL,R8   TYPE                                                          
         LD,R6    RDWT98            RESTORE R6,R7                               
         LI,R0    1                                                             
         STW,R0   RDWT94            SET RETRY COUNT TO ONE                      
         B        RDWT2             GO TRY TIO                                  
         PAGE                                                                   
*                                                                               
* I/O IS NOW DONE, CHECK STATUS TO SEE IF OK                                    
*                                                                               
RDWT15   LH,R0    IOT17,R6          IS THERE A SPEC. ROUTI.                     
         BEZ      RDWT15A           NO                                          
         BAL,R8   *R0               YES ENTER IT                                
         MTW,0    RDWT89            WAS THERE A WRITE PROTECT VIOLATION         
         BNEZ     RDWT28            B IF VIOL. OCCURRED                         
*                                                                               
* NO WRITE PROTECT VIOLATION ON MAGNETIC TAPE                                   
*                                                                               
         MTW,0    RDWT93            IS THERE AN EOF ON TAPE OR CARD             
         BNEZ     RDWT23            YES, EXIT NOW                               
*                                                                               
* NO END OF FILE ON EITHER TAPE OR CARDS                                        
*                                                                               
RDWT15A  LW,R11   RDWT92            GET TIO STATUS BACK                         
         SLS,R11  -16               RT. JUSTIFY                                 
         LB,R0    IOT9,R6           GET MASK FOR OSB                            
         AND,R0   R11                                                           
         BEZ      RDWT22            OSB OK                                      
RDWT16   LB,R0    IOT7,R6           GET NO. RETRIES                             
         BEZ      RDWT17            NONE                                        
         CW,R0    RDWT94            MAX. NO. RETRIES BEEN HAD                   
         BE       RDWT17            YES, GIVE ALARM                             
         MTW,1    RDWT94            NO, STEP COUNT                              
         B        RDWT2             GO TRY AGAIN                                
RDWT17   AND,R11  KXF0              IS IT AN IOP ERROR                          
         BEZ      RDWT19            YES                                         
         LI,R9    -1                                                            
RDWT18   LI,R7    MSG15             ERROR ALARM                                 
         LW,R11   RDWT92            GET TIO STATUS                              
         SLS,R11  -16                                                           
         BAL,R8   TYPE              GO TYPE ERROR ALARM                         
         LD,R6    RDWT98            RESTORE R6,R7                               
         LI,R0    1                                                             
         STW,R0   RDWT94            SET FLAG FOR RETRY                          
         LH,R0    IOT18,R6          IS THERE AN ERR REC. ROUTINE                
         BEZ      RDWT2             NO,GO TRY I/O AGAIN                         
         BAL,R8   *R0               YES, GO TO IT                               
         B        RDWT2             GO TRY DEVICE AGAIN                         
RDWT19   LI,R9    1                 SET FOR IOP X ERROR ALARM                   
         B        RDWT18                                                        
*                                                                               
* OPERATIONAL STATUS BYTE OK, CHECK FOR UNUSUAL END                             
*                                                                               
RDWT22   SLS,R11  -11               WAS THERE AN UNUSUAL END                    
         AND,R11  K1                                                            
         BNEZ     RDWT25            YES                                         
*                                                                               
* NO UNUSUAL END OR OTHER PROBLEM                                               
*                                                                               
RDWT23   LH,R0    IOT11,R6          IS THERE A POST EDIT                        
         BEZ      %+2               NO                                          
         BAL,R8   *R0               YES,G GO TO POST EDIT                       
         LW,R8    RDWT93                                                        
         LD,R6    RDWT98            RESTORE R6,R7                               
         LW,R0    RDWTDP1           GET REST OF BYTE COUNT                      
         BEZ      RDWT23A           DONE                                        
         STW,R0   1,R7              PUT IT IN PACKET                            
         MTW,0    RDWTSEEK          SEEK SAVED                                  
         BNEZ     %+3               YES                                         
         LW,R0    SEEK              SAVE FIRST SEEK                             
         STW,R0   RDWTSEEK                                                      
         MTW,1    3,R7              INCR GRAN ADDRESS                           
         LW,R0    RDWTDP                                                        
         AWM,R0   0,R7              INCR BYTE ADR                               
         B        RDWT1AA           DO NEXT SECTOR                              
RDWT23A  MTW,0    RDWTSEEK          SEEK SAVED                                  
         BEZ      RDWT23B           NO                                          
         LW,R0    RDWTSEEK                                                      
         STW,R0   SEEK              RESTORE ORIGINAL SEEK                       
         LW,R0    RDWTDP2                                                       
         STW,R0   1,R7              RESTORE ORIGINAL BYTE COUNT                 
         LW,R0    RDWTDP3           RESTORE ORIGINAL GRAN ADR                   
         STW,R0   3,R7                                                          
         LW,R0    RDWTDP4                                                       
         STW,R0   0,R7              RESTORE ORIGINAL BYTE ADDRESS               
         LI,R0    0                                                             
         STW,R0   RDWTSEEK                                                      
         STW,R0   RDWTDP2                                                       
RDWT23B  RES      0                                                             
         B        *RDWT99           EXIT FROM READ/WRITE                        
         PAGE                                                                   
*                                                                               
* THERE WAS AN UNUSUAL END                                                      
*                                                                               
*                                                                               
RDWT25   CI,R6    DT:DC             IS IT A RAD                                 
         BE       %+3                YES                                        
         CI,R6    DT:DP             IS IT A DISC PACK                           
         BNE      RDWT25B           NO                                          
         CI,R8    DA(DCCL1)         YES, WAS SEEK COM LIST LAST ONE             
         BE       RDWT25B           YES, BAD SEEK ADDRESS                       
         LW,R11   RDWT92            NO, IS BYTE COUNT=0                         
         CI,R11   X'FFFF'                                                       
         BAZ      RDWT23            YES, I/O COMPLETED OK                       
RDWT25B  TDV,R11  *R10              NO, PROBLEM ON I/O. DO TDV FOR UNUS.        
*                                      END                                      
         SLS,R11  -16                                                           
         CI,R11   X'1000'                                                       
         BANZ     RDWT28            WRITE PROTECT VIOLATION                     
RDWT26   LI,R9    -1                NO                                          
         LI,R7    MSG16                                                         
         BAL,R8   TYPE              GO TYPE YYNDD UNUS. END                     
         LD,R6    RDWT98            RESTORE R6,R7                               
         LW,R11   RDWT92            GET TIO STATUW                              
         SLS,R11  -16                AND                                        
         B        RDWT16              GO TRY AGAIN                              
RDWT28   LI,R9    -1                FLAG TO TYPE YYNDD                          
         LI,R7    MSG13             GO TYPE                                     
         BAL,R8   TYPE              WRT PROT ALARM                              
         LD,R6    RDWT98            RESTORE R6,R7                               
         CI,R6    DT:DP             IS IT A PACK                                
         BE       RDWT29            YES                                         
         CI,R6    DT:DC             IS THIS A RAD                               
         BNE      RDWT30            NO, MUST BE MT                              
         WAIT     %                 WAIT FOR RAD WRITE SWITCHES RESET           
RDWT29   RES      0                                                             
         B        RDWT2             GO TRY I/O AGAIN                            
RDWT30   TDV,R11  *R10                                                          
         SLS,R11  1                 TEST IF WRITE PERMITTED                     
         BNOV     RDWT30            NO (CAN'T HAVE OVER-RUN)                    
         LI,R0    0                 YES                                         
         STW,R0   RDWT89            CLEAR WRT PROT FLAG                         
         B        RDWT2             RETRY                                       
*                                                                               
RDWT89   DATA     0                 MT WRT PROT FLAG                            
RDWT90   DATA     X'FFFF07FF'                                                   
RDWT91   DATA     0                 0=READ, NONZERO=WRITE                       
RDWT92   DATA     0                 STATUS FROM TIO                             
RDWT93   DATA     0                 EXIT PARAM.                                 
RDWT94   DATA     0                 NO. RETRIES                                 
RDWT95   DATA     0                 FLAG THAT EMPTY TYPED                       
RDWT96   DATA     0                 LOOP COUNTER FOR CP                         
RDWT97   DATA     0                 SAVE R10 HERE                               
         BOUND    8                                                             
RDWT98   DATA     0                 SAVE R6                                     
         DATA     0                 SAVE R7                                     
RDWT99   DATA     0                 EXIT ADDRESS                                
RDWTDP1  DATA     0                 REMAINING BYTE COUNT                        
RDWTDP2  DATA     0                 ORIGINAL  BYTE COUNT                        
RDWTSEEK DATA     0                 ORIGINAL  SEEK                              
RDWTDP3  DATA     0                 ORIGNAL GRAN                                
RDWTDP4  DATA     0                 ORIGINAL BYTE ADDRESS                       
RDWTDP   DATA     0                 BYTES/SECTOR                                
*                                                                               
         BOUND    8                                                             
IOCL     DATA     0                 COMMAND LIST FOR I/O                        
IOCL1    DATA     0                                                             
         RES      6                                                             
         TITLE    '** SYSGEN -  I/O TABLES **'                                  
*                                                                               
*                                   I/O TABLES FOR READ,WRITE                   
*                                   PARALLEL TABLES, INDEXED BY DEV.            
*                                     TYPE                                      
* DEVICE TYPE     VALUE             DEVICE NAME                                 
DT:TY    EQU      0                 TYPEWRITER                                  
DT:CR    EQU      1                 CARD READER                                 
DT:PR    EQU      2                 PAPER TAPE READER                           
DT:PP    EQU      3                 PAPER TAPE PUNCH                            
DT:LP    EQU      4                 LINE PRINTER                                
DT:LPLP  EQU      5                 LINE PRINTER, LOW PERFORMANCE               
DT:9T    EQU      6                 9-TRACK MAGNETIC TAPE                       
DT:7T    EQU      7                 7-TRACK MAGNETIC TAPE                       
DT:CP    EQU      8                 CARD PUNCH                                  
DT:CPLP  EQU      9                 CARD PUNCH, LOW PERFORMANCE                 
DT:DC    EQU      10                RAD (7202,7204,7212,7232)                   
DT:DP    EQU      11                DISC PACK (7242,7246)                       
IOTLAST  EQU      11                VALUE OF LAST DEVICE TYPE                   
         PAGE                                                                   
IOT0     EQU      %                 TYPE OF DEVICE                              
*  BIT   VALUE    MEANING                                                       
*  0-3            NOT USED                                                      
*   4    8        BINARY INPUT OK                                               
*   5    4        BINARY OUTPUT OK                                              
*   6    2        LISTING OUTPUT OK                                             
*   7    1        SYMBOLIC INPUT OK                                             
         DATA,1   3,9,9,4           TY,CR,PR,PP                                 
         DATA,1   2,2,13,12         LP,LPLP,9T,7T                               
         DATA,1   4,4,0,0           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT1     EQU      %                 NAME OF DEVICE IN EBCDIC                    
         TEXT     'TYCRPRPP'                                                    
         TEXT     'LPLP9T7T'                                                    
         TEXT     'CPCPDCDP'                                                    
         BOUND    4                                                             
IOT2     EQU      %                 VALUE OF 1 = LOW-PERFORMANCE DEVICE         
         DATA,1   0,0,0,0           TY,CR,PR,PP                                 
         DATA,1   0,1,0,0           LP,LPLP,9T,7T                               
         DATA,1   0,1,0,0           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT3     EQU      %                 READ ORDER FOR DEVICE                       
         DATA,1   X'86',6,2,0       TY,CR,PR,PP                                 
         DATA,1   0,0,2,2           LP,LPLP,9T,7T                               
         DATA,1   0,0,X'12',X'12'   CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT4     EQU      %                 WRITE ORDERS FOR DEVICE                     
         DATA,1   5,0,0,1           TY,CR,PR,PP                                 
         DATA,1   1,1,1,1           LP,LPLP,9T,7T                               
         DATA,1   9,9,1,1           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT5     EQU      %                 FLAGS FOR WORD 2 OF COMMAND LIST            
*  BIT   VALUE    MEANING                                                       
*   0    80       DATA CHAIN                                                    
*   1    40       IZC                                                           
*   2    20       COMMAND CHAIN                                                 
*   3    10       ICE                                                           
*   4     8       HTE                                                           
*   5     4       IUE                                                           
*   6     2       SUPPRESS INCORRECT LENGTH                                     
*   7     1       S                 SKIP FLAG SET IF SKIPFLAG = 1               
         DATA,1   2,0,0,X'80'       TY,CR,PR,PP                                 
         DATA,1   2,X'22',0,0       LP,LPLP,9T,7T                               
         DATA,1   X'20',0,X'22',X'22'  CP,CPLP,DC,DP                            
         BOUND    4                                                             
IOT6     EQU      %                 MANUAL MODE MASK FOR TDV                    
         DATA,1   0,0,X'10',X'60'   TY,CR,PR,PP                                 
         DATA,1   0,0,0,0           LP,LPLP,9T,7T                               
         DATA,1   0,0,0,0           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT7     EQU      %                 NUMBER OF RETRIES TO ATTEMPT                
         DATA,1   1,0,0,0           TY,CR,PR,PP                                 
         DATA,1   1,1,10,10         LP,LPLP,9T,7T                               
         DATA,1   5,5,5,5           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT8     EQU      %                 ADDR. OF ERROR-RECOVERY COMM. LIST          
         DATA,2   0,0,0,0           TY,CR,PR,PP                                 
         DATA,2   0,0,DA(MTWERR),DA(MTWERR) LP,LPLP,9T,7T                       
         DATA,2   DA(CPERR),0,0,0   CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT9     EQU      %                 MASK FOR OPERATIONAL STATUS BYTE            
*  BIT   VALUE    MEANING (SIO,HIO,TIO,TDV)                                     
*   0    80       INCORRECT LENGTH                                              
*   1    40       TRANSMISSION DATA ERROR                                       
*   2    20       TRANSMISSION MEMORY ERROR                                     
*   3    10       MEMORY ADDRESS ERROR                                          
*   4     8       IOP MEMORY ERROR                                              
*   5     4       IOP CONTROL ERROR                                             
*   6     2       IOP HALT                                                      
*   7     1       SELECTOR IOP BUSY                                             
         DATA,1   X'7F',-1,-1,-1    TY,CR,PR,PP                                 
         DATA,1   X'7F',X'3F',-1,-1 LP,LPLP,9T,7T                               
         DATA,1   -1,-1,X'7F',X'7F' CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT10    EQU      %                 ADDR. OF PRE-I/O EDIT ROUTINE               
         DATA,2   PREIOTY,0,0,0     TY,CR,PR,PP                                 
         DATA,2   0,PREIOLP,0,0     LP,LPLP,9T,7T                               
         DATA,2   0,0,PREIODC,PREIODC  CP,CPLP,DC,DP                            
         BOUND    4                                                             
IOT11    EQU      %                 ADDR. OF POST-I/O EDIT ROUTINE              
         DATA,2   PSTIOTY,0,PSTIOPR,0  TY,CR,PR,PP                              
         DATA,2   0,0,0,0           LP,LPLP,9T,7T                               
         DATA,2   PSTIOCP,0,0,0     CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT13    EQU      %                 ADDR OF SPECIAL CL TO FOLLOW IOCL1          
         DATA,2   TYCL,0,0,PTCL     TY,CR,PR,PP                                 
         DATA,2   0,LPCL,0,0        LP,LPLP,9T,7T                               
         DATA,2   CPCL,0,DCCL,DCCL  CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT14    EQU      %                 VALUE OF 1 = CL BEFORE IOCL NOT REQ.        
         DATA,1   1,1,1,1           TY,CR,PR,PP                                 
         DATA,1   0,0,1,1           LP,LPLP,9T,7T                               
         DATA,1   1,1,0,0           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT15    EQU      %                 ADDR OF CL FOR PAGE EJECT OR SEEK           
         DATA,2   0,0,0,0           TY,CR,PR,PP                                 
         DATA,2   DA(LPCL1),DA(LPCL1),0,0 LP,LPLP,9T,7T                         
         DATA,2   0,0,DA(DCCL1),DA(DCCL1) CP,CPLP,DC,DP                         
         BOUND    4                                                             
IOT16    EQU      %                 ADDR. OF CL FOR READ ERROR RECOVERY         
         DATA,2   0,0,0,0           TY,CR,PR,PP                                 
         DATA,2   0,0,DA(MTRERR),DA(MTRERR)  LP,LPLP,9T,7T                      
         DATA,2   0,0,0,0           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT17    EQU      %                 ADDR. OF INCORRECT LENGTH RECOVERY          
         DATA,2   0,CRREC,0,0       TY,CR,PR,PP                                 
         DATA,2   0,0,MTREC,MTREC   LP,LPLP,9T,7T                               
         DATA,2   0,0,0,0           CP,CPLP,DC,DP                               
         BOUND    4                                                             
IOT18    EQU      %                 ADDR OF ERROR RECOVERY ROUTINE              
         DATA,2   0,0,0,0           TY,CR,PR,PP                                 
         DATA,2   0,0,0,0           LP,LPLP,9T,7T                               
         DATA,2   0,0,DCREC,DCREC   CP,CPLP,DC,DP                               
*                                                                               
*                                                                               
         BOUND    8                                                             
MTWERR   DATA,1   X'4B',0,0,0       BACKSPACE ONE REC.                          
         DATA,1   X'20',0,0,0       COM. CHAIN                                  
         DATA,1   X'63',0,0,0       SET ERASE                                   
         DATA,1   X'20',0,0,0       COM. CHAIN                                  
         GEN,8,24 8,DA(IOCL)        TRANSFER IN CHAN.                           
         DATA     0                                                             
         BOUND    8                                                             
MTRERR   GEN,8,24 X'4B',0           BACKSPACE ONE REC.                          
         GEN,8,24 X'20',0           COM. CHAIN                                  
         GEN,8,24 8,DA(IOCL)        TRANS. IN CHAN.                             
         DATA     0                                                             
         BOUND    8                                                             
CPERR    GEN,8,24 X'11',BA(CPBUF)   STACK IN ALT. ,REPUNCH CARD                 
         GEN,8,24 X'20',120         COM. CHAIN, 120 BYTES                       
         GEN,8,24 8,DA(CPERR)       TRANSFER IN CHAN.                           
         DATA     0                                                             
         GEN,8,24 8,DA(IOCL)        TRANSFER IN CHAN.                           
         DATA     0                                                             
         BOUND    8                                                             
         DATA     0                 FORCE ON ODD BOUNDARY                       
TYCL     DATA     2                 NO. WORDS IN CL                             
         GEN,8,24 5,BA(TYNL)        WRITE ORDER, ADD. OF NL CODE                
         GEN,8,24 0,1               NO FLAGS SET, 1 BYTE                        
TYNL     DATA,1   X'15'             NEW LINE CODE                               
         BOUND    4                                                             
PTCL     DATA     2                                                             
         GEN,8,24 1,BA(BLANK)       PUNCHES 5 BLANK FRAMES AFTER EACH           
         GEN,8,24 0,5                 RECORD ON PT                              
BLANK    DATA,8   0                                                             
         BOUND    4                                                             
LPCL     DATA     2                                                             
         GEN,8,24 0,0               FILLED IN BY PRE I/O EDIT                   
         GEN,8,24 0,0                                                           
CPCL     DATA     4                 NO. WORDS TO MOVE                           
         GEN,8,24 8,DA(IOCL)        TRANSFER IN CHAN.                           
SKIPFLAG DATA     0                 1=WRITE DS                                  
         DATA     0                 STOP ORDER                                  
         DATA     0                                                             
         BOUND    8                                                             
DCCL     DATA     4                 NO. WORDS                                   
         GEN,8,24 3,BA(SEEK)        SEEK ORDER                                  
DCCLB    DATA     0                 FILLED IN BY PRE-IO EDIT                    
         DATA     0                 FILLED IN BY PRE EDIT FOR                   
         DATA     0                   CHECK WRITE                               
         BOUND    8                                                             
LPCL1    GEN,8,24 3,BA(LPTF)        FORMAT, ADD. OF TOP OF FORM                 
         GEN,8,24 X'20',1           COM. CHAIN, ONE BYTE                        
         GEN,8,24 8,DA(IOCL)        TRANSFER IN CHAN.                           
DCCLSEEK GEN,8,24 X'20',2           COMMAND CHAIN, 2 BYTES                      
DCCL1    GEN,8,24 3,BA(SEEK)        SEEK ORDER                                  
DCCL1B   DATA     0                 FILLED IN BY PRE-IO EDIT                    
         GEN,8,24 8,DA(IOCL)        TRANS. IN CHAN.                             
DPCLSEEK GEN,8,24 X'20',4           COMMAND CHAIN, 4 BYTES                      
SEEK     DATA     0                                                             
LPTF     DATA,1   X'F1'             TOP OF FORM CODE                            
         TITLE    '**** PRE I/O EDIT FOR RAD ****'                              
*                                                                               
*                                   SETS UP RAD ADDRESS FOR SEEK                
*                                                                               
PREIODC  STW,R8   PREIODC8                                                      
         LW,R0    RDWT91                                                        
         BEZ      %+3               RAD READ                                    
         LI,R0    X'22'             RAD WRITE, SET CMD CHAIN                    
         B        %+2                                                           
         LI,R0    2                 RAD READ, DON'T CMD CHAIN                   
         STB,R0   IOT5,R6                                                       
PREIODC2 STD,R6   PREIODC9          SAVE R6 & R7                                
         LW,R6    4,R7              GET INDEX FOR MASTD                         
         LW,R7    3,R7              GET DISCPLACEMENT                           
         BAL,R5   CONVSECT          COMPUTE TRUE SEEK ADDR                      
         STW,R11  SEEK                                                          
* R0 IS THE NUMBER OF BYTES IN A SEEK NOW                                       
PREIODC7 STW,R0   DCCLB              BYTE COUNT IN                              
         STW,R0   DCCL1B              COMMAND LISTS                             
         LW,R0    *PREIODC9+1                                                   
         STW,R0   DCCL+3                                                        
         LI,R0    5                 SET UP CL FOR CHECK WRITE                   
         STB,R0   DCCL+3                                                        
         LW,R0    IOCL1                                                         
         STW,R0   DCCL+4                                                        
         LI,R0    X'A'              HTE,AND SUPP. IL                            
         AW,R0    SKIPFLAG          ADD FLAG FOR POSSIBLE CLEAR                 
         STB,R0   DCCL+4                                                        
         LD,R6    PREIODC9          RESTORE R6,R7                               
         B        *%+1                                                          
PREIODC8 DATA     0                                                             
         BOUND    8                                                             
PREIODC9 DATA     0                                                             
         DATA     0                                                             
         PAGE                                                                   
*****ENTRY:       R6  CONTAINS THE MASTER DICTIONARY INDEX                      
*              R7    CONTAINS THE RELATIVE SECTOR ADDR WITHIN THE AREA          
*              R5   LINK                                                        
*                                                                               
*  AT EXIT:    R11   CONTAINS THE RAD SEEK ADDRESS                              
*                 R0    CONTAINS THE NUMBER OF BYTES IN A SEEK                  
*                                                                               
*                                                                               
*                                                                               
CONVSECT RES      0                                                             
         LW,R9    *MDBOA,R6         GET AREA START                              
         AW,R9    R7                FORM SECTOR # TO SEEK TO                    
*                                                                               
         LB,R7    *MDDISCI,R6       GET DISC INDEX                              
*                                                                               
         LI,R8    0                                                             
         LB,R0    *DISCNSPT,R7      GET NSPT                                    
         DW,R8    R0                GET SECTOR # IN R8                          
*                                                                               
         LB,R0    *DISCSSFT,R7      GET SECTOR SHIFT                            
         SLS,R8   *R0               POSITION SECTORS                            
         LW,R11   R8                AND PUT IN R11                              
*                                                                               
         LI,R8    0                                                             
         LH,R0    *DISCNTPC,R7                                                  
         DW,R8    R0                GET TRACK # AND CYLINDER #                  
*                                                                               
         LB,R0    *DISCTSFT,R7      GET TRACK SHIFT                             
         SLS,R8   *R0               POSITION TRACK #                            
         OR,R11   R8                AND MERGE IT INTO R11                       
*                                                                               
         LB,R0    *DISCCSFT,R7      GET CYLINDER SHIFT                          
         SLS,R9   *R0               POSITION CYLINDER #                         
         OR,R11   R9                MERGE IN CYLINDER #                         
*                                                                               
         LI,R0    4                 SEEK BYTE COUNT OF 4 ALWAYS WORKS           
*                                                                               
         LI,R7    X'20'             CC FLAGS                                    
         STB,R7   R0                INTO TOP OF BYTE COUNT                      
*                                                                               
         B        *R5               EXIT                                        
         TITLE    '**** PRE I/O EDIT FOR LOW PERF. LP ****'                     
*                                                                               
*                                   SETS UP DUPLICATE CL FOR LP                 
*                                                                               
*                                                                               
*                                                                               
*                                                                               
PREIOLP  LW,R0    IOCL1             GET BYTE COUNT                              
         AND,R0   KXFF                                                          
         STW,R0   LPCL+2            STORE IT                                    
         LI,R0    2                 ADD IN FLAGS                                
         STB,R0   LPCL+2                                                        
         LW,R0    0,R7              GET BYTE ADD.                               
         STW,R0   LPCL+1                                                        
         LI,R0    1                 ADD IN WRITE ORDER                          
         STB,R0   LPCL+1                                                        
         B        *R8                                                           
         TITLE    '**** PRE I/O EDIT FOR TY ****'                               
*                                                                               
*                                   KNOCKS OFF TRAILING BLANKS FOR              
*                                     MSGS. OUTPUT TO TY                        
*                                                                               
*                                                                               
*                                                                               
*                                                                               
PREIOTY  LW,R0    RDWT91            IS THIS A WRITE                             
         BNEZ     PREIOTY1          YES                                         
         LI,R0    2                 NO                                          
         STB,R0   IOT5,R6           SET TO NO DATA CHAIN                        
         LI,R0    0                                                             
         STH,R0   IOT13,R6          ZERO OUT ADD. OF NEW LINE CL                
         B        *R8                                                           
PREIOTY1 STW,R6   PREIOTY9          SAVE R6                                     
         LW,R5    1,R7              GET BYTE COUNT                              
         AI,R5    -1                DECREASE FOR INDEX VALUE                    
         BLEZ     PREIOTY4          ALWAYS LEAVE ONE BYTE                       
         LW,R6    0,R7              GET ADD. OF BUFFER                          
         SLS,R6   -2                CHANGE TO WA                                
PREIOTY2 LB,R0    *R6,R5            GET CHAR.                                   
         CI,R0    X'40'             IS IT BLANK                                 
         BNE      PREIOTY4          NO,DONE                                     
         MTW,-1   IOCL1             YES, DECREASE BYTE COUNT                    
         BDR,R5   PREIOTY2                                                      
PREIOTY4 LW,R6    PREIOTY9                                                      
         LI,R0    X'82'             SET FOR DATA CHAIN                          
         STB,R0   IOT5,R6                                                       
         LI,R0    TYCL              SET FOR NEW LINE CL                         
         STH,R0   IOT13,R6                                                      
         B        *R8               EXIT                                        
PREIOTY9 DATA     0                 R6                                          
         TITLE    '**** POST I/O EDIT FOR PR ****'                              
*                                                                               
*                                   READS PAPER TAPE ONE FRAME AT A             
*                                     TIME LOOKING FOR NEW LINE, ETC.           
*                                     FOR BCD TAPE OR READS PROPER COUNT        
*                                     FOR BINARY TAPE                           
*                                                                               
PSTIOPR  LW,R5    PSTIOPR1          GET PHASE TO ENTER                          
         B        PSTIOPR2,R5       GO TO PROPER PHASE                          
PSTIOPR1 DATA     0                                                             
PSTIOPR2 B        PSTIOPR3          PHASE 1 FOR ALL                             
         B        PSTIOPR4          BCD PHASE 1                                 
         B        PSTIOPR5          BCD PHASE 2                                 
         B        PSTIOPR7          BIN PHASE 1                                 
         B        PSTIOPR8          BIN PHASE 2                                 
         B        *R8               BIN PHASE 3                                 
PSTIOPR3 LI,R0    X'82'                                                         
         STB,R0   IOCL              CHANGE TO READ IMMEDIATE                    
         LW,R5    IOCL                                                          
         LB,R0    0,R5              PROCESS FIRST BYTE                          
         CI,R0    X'11'             IS IT A BINARY RECORD                       
         BNE      %+3               NO, BCD                                     
         MTW,3    PSTIOPR1          STEP TO NEXT PHASE                          
         B        RDWT1D            EXIT TO READ NEXT BYTE                      
         MTW,1    PSTIOPR1          SET TO BCD PHASE                            
         LI,R0    0                                                             
         STW,R0   PSTIOPR9          CLEAR BYTE COUNT                            
PSTIOPR4 LW,R5    IOCL                                                          
         LB,R0    0,R5              GET BYTE                                    
         BEZ      PSTIOPR6          END OF RECORD                               
         CI,R0    X'15'             IS IT A NEW LINE                            
         BE       PSTIOPR6          YES                                         
         CI,R0    X'FF'             SHOULD FRAME BE IGNORED                     
         BE       RDWT1D            YES                                         
         CI,R0    8                 IS IT AN EOM                                
         BNE      %+5                                                           
         LI,R0    2                                                             
         STB,R0   IOCL              RESET TO READ IGNORING BLANK FRAMES         
         MTW,-1   PSTIOPR1          YES, RESET TO PHASE 0                       
         B        RDWT1D                                                        
         MTW,1    PSTIOPR9          STEP BYTE COUNT                             
         LW,R0    PSTIOPR9                                                      
         CW,R0    1,R7              IS THIS LAST BYTE REQUESTED                 
         BGE      %+3               YES                                         
         MTW,1    IOCL              NO, STEP ADDRESS                            
         B        RDWT1D            EXIT FOR NEXT BYTE                          
         MTW,1    PSTIOPR1          STEP TO NEXT PHASE                          
         LB,R0    IOT3,R6           GET READ ORDER                              
         SCS,R0   -8                                                            
         AI,R0    BA(PSTIOP10)      CHANGE WORD 1 OF CMD LIST                   
         STW,R0   IOCL                                                          
         B        RDWT1D                                                        
PSTIOPR5 LW,R5    IOCL              BCD PHASE 2                                 
         LB,R0    0,R5                                                          
         BEZ      PSTIOPR6          DONE                                        
         CI,R0    X'15'                                                         
         BNE      RDWT1D            NOT DONE YET                                
PSTIOPR6 LW,R5    1,R7              GET NO. BYTES REQUESTED                     
         SW,R5    PSTIOPR9          R5= NO. BYTES LEFT                          
         BLEZ     CRREC             NONE LEFT, EXIT VIA CR RECOV.               
         MTW,-1   IOCL              REDUCE BYTE ADD.                            
         LW,R6    IOCL                                                          
         AW,R6    R5                R6=LAST BYTE OF BUFFER                      
         LI,R0    X'40'                                                         
         STB,R0   0,R6              PAD OUT USER'S BUFFER WITH BLANKS           
         AI,R6    -1                                                            
         BDR,R5   %-2                                                           
         B        CRREC             EXIT THRU CR REC.                           
*                                                                               
PSTIOPR7 LW,R5    IOCL              GET FIRST BYTE OF LENGTH                    
         LB,R0    0,R5                                                          
         SLS,R0   8                                                             
         STW,R0   PSTIOP10          SAVE IT                                     
         MTW,1    PSTIOPR1          STEP TO NEXT PHASE                          
         B        RDWT1D                                                        
*                                                                               
PSTIOPR8 LW,R5    IOCL              GET 2ND BYTE OF LENGTH                      
         LB,R0    0,R5                                                          
         AW,R0    PSTIOP10                                                      
         STW,R0   IOCL1             STORE NEW BYTE COUNT                        
         MTW,1    PSTIOPR1          STEP TO NEXT PHASE                          
         B        RDWT1D                                                        
*                                                                               
PSTIOPR9 DATA     0                 BYTE COUNT                                  
PSTIOP10 DATA     0                 PILE UP EXTRA BYTES HERE                    
         TITLE    '**** POST I/O EDIT FOR TY ****'                              
*                                                                               
*                                   PADS IN TRAILING BLANKS OUT TO              
*                                      NO. BYTES USER ASKED FOR                 
*                                                                               
PSTIOTY  STW,R8   PSTIOTY9          SAVE RETURN                                 
         LW,R0    RDWT91            IS THIS A WRITE                             
         BNEZ     *R8               YES, EXIT                                   
         LW,R5    1,R7              GET TOTAL BYTE COUNT                        
         STW,R5   R8                SAVE IN R8                                  
         SW,R5    RDWT92            NO. BYTES ACTUALLY READ IN R5               
         AND,R5   KXFFFF                                                        
         AI,R5    -1                TAKE OFF NEW LINE CODE                      
         STW,R6   PSTIOTY8          SAVE R6                                     
         LW,R6    0,R7                                                          
         SLS,R6   -2                                                            
         LB,R0    *R6,R5            GET LAST BYTE INPUT                         
         CI,R0    8                 IS IT AN EOM                                
         PAGE                                                                   
*                                                                               
*                                                                               
*                                                                               
         BE       PSTIOTY7          YES, DO INPUT AGAIN                         
         LI,R0    X'40'                                                         
         STB,R0   *R6,R5            STORE BLANKS IN BUFFER                      
         AI,R5    1                                                             
         CW,R5    R8                                                            
         BL       %-3               NOT DONE YET                                
         LW,R6    PSTIOTY8          DONE, RESTORE R6                            
         B        *PSTIOTY9         EXIT                                        
PSTIOTY7 LW,R6    PSTIOTY8          RESTORE R6                                  
         LI,R0    DA(TYCL+1)                                                    
         SIO,R11  *R10              OUTPUT NEW LINE IF EOM INPUT                
         TIO,R11  *R10                                                          
         BCR,4    RDWT9                                                         
         B        %-2                                                           
PSTIOTY8 DATA     0                 R6                                          
PSTIOTY9 DATA     0                 EXIT ADD                                    
         TITLE    '**** POST I/O EDIT FOR CP ****'                              
*                                                                               
*                                   MOVE CARD TO ALT. BUFFER IN CASE            
*                                     OF ERROR                                  
*                                                                               
*                                                                               
*                                                                               
*                                                                               
PSTIOCP  LI,R5    119               BYTE COUNT-1                                
         STW,R6   PSTIOCP9          SAVE R6                                     
         LW,R6    0,R7                                                          
         SLS,R6   -2                ADD. OF BUFFER                              
         LB,R0    *R6,R5                                                        
         STB,R0   CPBUF,R5          MOVE CARD IMAGE                             
         BDR,R5   %-2                                                           
         LB,R0    *R6               MOVE LAST BYTE                              
         STB,R0   CPBUF                                                         
         LW,R6    PSTIOCP9          RESTORE R6                                  
         B        *R8               EXIT                                        
PSTIOCP9 DATA     0                 R6                                          
CPBUF    RES      30                BACKUP IMAGE FOR CP ERROR                   
         TITLE    '**** PROCESS INC. LENGTH FOR CR AND MT ****'                 
*                                                                               
*                                                                               
*                                                                               
CRREC    LW,R0    0,R7                                                          
         SLS,R0   -2                FWA OF INPUT BUFFER                         
         LW,R0    *R0               GET FIRST WORD READ                         
         CW,R0    CRREC8            IS IT AN EOD                                
         BNE      *R8               NO                                          
         MTW,1    RDWT93            YES, SET FLAG FOR EXIT                      
         B        *R8                                                           
CRREC8   TEXT     '!EOD'                                                        
*                                                                               
*                                                                               
* MAGNETIC TAPE INCORRECT LENGTH PROCESSING                                     
*                                                                               
MTREC    TDV,R11  *R10              CHECK FOR EOF                               
         SCS,R11  4                 MASK OUT WRT PROT                           
         AND,R11  K3                VIOL. AND EOF                               
         SCS,R11  -1                SAVE EOF BIT                                
         STB,R11  RDWT89            STORE WRT PROT BIT                          
         SLS,R11  -31               GET EOF BIT BACK                            
         STB,R11  RDWT93            STORE IT                                    
         B        *R8                                                           
         TITLE    '**** PROCESS ERROR RECOVERY FOR DC ****'                     
*                                                                               
*                                                                               
DCREC    LW,R0    2,R7              GET FLAG FOR EXIT ON I/O ERR                
         AND,R0   KX4000                                                        
         BEZ      *R8               RETURN IF NO EXIT ON I/O ERR.               
         LI,R0    DA(DCREC8)                                                    
         SIO,R11  *R10              GIVE SIO FOR SENSE ORDER                    
         BANZ     %-1               LOOP UNTIL SIO TAKES                        
         TIO,R11  *R10                                                          
         BCR,12   %+2               SENSE DONE                                  
         B        %-2               LOOP TILL SENSE DONE                        
         CI,R6    DT:DP             CHECK FOR DISC PACK                         
         BNE      DCREC4             BRANCH IF NOT                              
         LI,R5    2                                                             
         LB,R10   DCREC9,R5         PICK UP TRK NO.                             
         LW,R6    4,R7              GET MD INDEX                                
         LB,R5    *MDDISCI,R6       GET DISC INDEX                              
         LH,R5    *DISCNTPC,R5      GET NUMBER OF TRACKS/CYLINDER               
         LD,R6    RDWT98            RESTORE R6 AND R7                           
         MH,R5    DCREC9            CYLINDER*20=TRKS                            
         AW,R10   R5                TRACK NUMBER                                
         B        DCREC6                                                        
DCREC4   LH,R10   DCREC9                                                        
         AND,R10  KX7FFF                                                        
         SLS,R10  -4                SHIFT OFF SECTORS                           
DCREC6   LI,R0    0                 CONVERT TO EBCDIC                           
         LI,R5    -12                4 CHARACTERS                               
         BAL,R8   HEXBCD            CHANGE ADD. TO BCD                          
         STW,R0   MSG17A+4                                                      
         LI,R9    -1                                                            
         LW,R10   2,R7                                                          
         LH,R7    IOT1,R6           GET DEVICE NAME                             
         STH,R7   R1                RESTORE R10 TO YYNDD                        
         LI,R7    MSG17                                                         
         BAL,R8   TYPE              GO TYPE PARITY ERR.TRK XXXX                 
         LD,R6    RDWT98            RESTORE R6,R7                               
         B        *RDWT99           EXIT READ/WRT ROUTINE                       
         BOUND    8                                                             
DCREC8   GEN,8,24 4,BA(DCREC9)      SENSE ORDER, INPUT ADDRESS                  
         GEN,8,24 2,4               SUPPRESS INCORRECT LENGTH, 4 BYTES          
DCREC9   DATA     0                 SENSE ORDER INPUT                           
         TITLE    '** SYSGEN  - TYPE SUBROUTINE  **'                            
*                                   TYPES ALARMS AND MSGS. ON TYA01             
*                                   DOES OWN I/O                                
*                                   IF TYA01 NOT READY, ROUTINE WAITS           
*                                     IF OPERATOR RUNS TRIES AGAIN              
*                                   INPUT PARAMETERS:                           
*                                    CALL IS    BAL,R8    TYPE                  
*                                    R7=ADDRESS OF MSG. TO BE TYPED             
*                                    R9=-1,TYPE YYNDD FIRST                     
*                                      =1, TYPE IOP X FIRST                     
*                                      =0, TYPE NOTHING FIRST                   
*                                    R10=YYNDD (E.G. CRA03), IF ANY             
*                                         YY IS EBCDIC, NOD IS BIN.             
*                                    R11=STATUS BYTES TO BE TYPED,              
*                                          IF ANY, RIGHT HALF WORD              
*                                   USES  R0,R5-R11                             
*                                      R10 IS UNCHANGED ON EXIT                 
*                                                                               
*                                                                               
         DO       #ONLINE                                                       
TYPE     LW,R5    R7                                                            
         AI,R5    1                                                             
         LB,R6    *R5                                                           
         STW,R8   REXIT                                                         
         B        WRITECAL                                                      
         ELSE     #ONLINE                                                       
TYPE     STW,R8   TYPE87            SAVE RETURN                                 
         FIN      #ONLINE                                                       
         STW,R10  TYPE87A           SAVE R10                                    
         LI,R0    TYPE95            HOUSEKEEP                                   
         STW,R0   TYPE94A                                                       
         LI,R0    0                                                             
         STW,R0   TYPE86                                                        
         STW,R11  TYPE89                                                        
         LW,R9    R9                                                            
         BEZ      TYPE9             NOTHING TO TYPE FIRST                       
         BGZ      TYPE7             TYPE IOP X FIRST                            
         LH,R0    R10                                                           
         AND,R0   KXFFFF                                                        
         AW,R0    KLBLANK                                                       
         STW,R0   TYPE91            STORE !!YY                                  
         LI,R6    2                                                             
         LB,R0    R10,R6            GET IOP NO.                                 
* COMPUTE IOP LETTER FOR MESSAGE                                                
         DO       #550                                                          
         AND,R0   KX3F                                                          
         LI,R5    BA(SCAN87)-BA(SCAN88)+1                                       
         CB,R0    SCAN88,R5                                                     
         BE       %+3                                                           
         BIR,R5   %-2                                                           
         B        %                                                             
         LB,R0    SCAN87,R5                                                     
         ELSE     #550=0                                                        
         AND,R0   KXF                                                           
         AI,R0    'A'                                                           
         FIN      #550=0                                                        
         LI,R5    -4                                                            
         BAL,R8   HEXBCD            GO TO CHANGE DD OF YYNDD TO EBCDIC          
         SLS,R0   8                 R0=NDD                                      
         AI,R0    X'40'             ADD IN BLANK                                
         B        TYPE8                                                         
TYPE7    LW,R0    TYPE92            GET !!IO                                    
         STW,R0   TYPE91                                                        
         LI,R6    2                                                             
         LB,R0    R10,R6            GET IOP NO.                                 
* COMPUTE IOP LETTER FOR MESSAGE                                                
         DO       #550                                                          
         AND,R0   KX3F                                                          
         LI,R5    BA(SCAN87)-BA(SCAN88)+1                                       
         CB,R0    SCAN88,R5                                                     
         BE       %+3                                                           
         BIR,R5   %-2                                                           
         B        %                                                             
         LB,R0    SCAN87,R5                                                     
         ELSE     #550=0                                                        
         AND,R0   KXF                                                           
         AI,R0    'A'                                                           
         FIN      #550=0                                                        
         SLS,R0   8                                                             
         AW,R0    TYPE93            FOR IOP X PART OF ALARM                     
TYPE8    STW,R0   TYPE91+1                                                      
         LW,R0    TYPE94A                                                       
         STW,R0   TYPE86            SAVE FWA OF COMMAND LIST                    
TYPE9    MTW,2    TYPE94A           STEP COM. LIST POINTER                      
         LW,R0    *R7                                                           
         BGZ      TYPE13            MUST TYPE STATUS TOO                        
         MTW,2    TYPE94A                                                       
         LW,R0    TYPE86                                                        
         BEZ      TYPE12                                                        
         LW,R0    TYPE85            STORE TRANSFER IN CHANNEL COMMAND           
         STW,R0   TYPE96              SINCE MUST SKIP ONE COM. LIST             
         B        TYPE13                                                        
TYPE12   LW,R0    TYPE94A                                                       
         STW,R0   TYPE86                                                        
TYPE13   LW,R10   R7                GET FWA OF MSG.                             
         AI,R10   1                                                             
         LB,R11   *R10              GET BYTE COUNT                              
         AW,R11   TYPE94            ADD IN FLAGS                                
         SLS,R10  2                 CHANGE TO BYTE ADD.                         
         AW,R10   TYPE88            ADD IN WRITE ORDER AND 1 MORE BYTE          
         STD,R10  *TYPE94A          STORE COMM. PAIR                            
         LW,R0    *R7                                                           
         BEZ      TYPE18            NO STATUS TO TYPE                           
         MTW,2    TYPE94A           STEP TO NEXT COMM. PAIR                     
         LW,R10   TYPE89            GET STATUS                                  
         LI,R5    -12               SET FOR 4 CHARS.                            
         LI,R0    0                                                             
         BAL,R8   HEXBCD            GO AND CONVERT STATUS TO BCD                
         LW,R6    *R7                                                           
         STW,R0   MSG1,R6           STORE INTO IMAGE                            
         LW,R7    TYPE95+1                                                      
         AW,R6    TYPE84            ADD IN ADDRESS                              
         SLS,R6   2                 CHANGE TO BYTE ADD.                         
         STD,R6   *TYPE94A          STORE IN COM LIST                           
TYPE18   LW,R0    TYPE86                                                        
         SLS,R0   -1                CHANGE TO DA                                
         SIO,R5   1                 *** DO SIO ***                              
         BANZ     %-1               LOOP UNTIL SIQ TAKES                        
         LW,R10   TYPE87A           RESTORE R10 BEFORE EXIT                     
         TIO,R5   1                                                             
         BCR,4    *TYPE87                                                       
         B        %-2               LOOP TILL TYPE OUT DONE                     
*                                                                               
*                                                                               
TYPE84   GEN,10,5,17  5,0,MSG1-1                                                
TYPE85   GEN,8,24     8,DA(TYPE97)  TRANSFER IN CHANNEL COMM.                   
TYPE86   DATA     0                 FWA OF COM. LIST                            
TYPE87   DATA     0                 EXIT                                        
TYPE87A  DATA     0                 SAVE R10 HERE                               
TYPE88   DATA,1   5,0,0,1           CONSTANT                                    
TYPE89   DATA     0                 STATUS BYTES                                
TYPE91   DATA,8   0                 STORAGE FOR ALARM                           
TYPE92   TEXT     '  IO'                                                        
TYPE93   DATA,1   'P',' ',0,' '                                                 
TYPE94   DATA     X'82000000'                                                   
TYPE94A  DATA     0                                                             
         BOUND    8                                                             
TYPE95   GEN,8,5,19  5,0,BA(TYPE91)     COMMAND LIST                            
         DATA,2   X'8200',8         DATA CHAIN, SUPP. IL, 8 BYTES               
TYPE96   DATA,1   5,0,0,0                                                       
         DATA,1   X'82',0,0,0                                                   
TYPE97   DATA,1   5,0,0,0                                                       
         DATA,1   X'82',0,0,0                                                   
TYPE98   GEN,8,5,19  5,0,BA(TYPE99)    END OF COMMAND LIST                      
         DATA,2   X'0200',1                                                     
TYPE99   DATA,1   X'15',0,0,0       NEW LINE CODE                               
         TITLE    '**** CONVERTS HEX TO EBCDIC ****'                            
*                                   CHANGES HEX CHARS. TO EBCDIC                
*                                   UP TO 4 CHARS. OUTPUT IN R0                 
*                                   INPUT PARAMETERS                            
*                                    R0=0 OR OTHER CHARS.                       
*                                    R5=0,DO 1 CHAR.                            
*                                      -4,DO 2 CHAR.                            
*                                      -8,DO 3 CHAR.                            
*                                      -12,DO 4 CHAR.                           
*                                    R10=CHARS. TO BE CHANGED,                  
*                                         RIGHT JUSTIFIED                       
*                                   OUTPUT                                      
*                                    R0-CONTAINS CHARS. IN EBCDIC,              
*                                         RIGHT JUSTIFIED                       
*                                   USES                                        
*                                    R11,R9                                     
*                                   CALL                                        
*                                    BAL,R8   HEXBCD                            
*                                                                               
HEXBCD   LI,R11   X'F'              MASK                                        
HEXBCD1  SLS,R0   8                                                             
         LW,R9    R10               GET HEX CHAR.                               
         SLS,R9   0,R5              RIGHT JUSTIFY                               
         AND,R9   R11               MASK OFF                                    
         AI,R9    X'F0'             CHANGE TO EBCDIC                            
         CI,R9    X'FA'                                                         
         BL       %+2               NOT A-F                                     
         AI,R9    -X'39'                                                        
         AW,R0    R9                ADD INTO ACC. VALVE                         
         AI,R5    4                                                             
         BLEZ     HEXBCD1           NOT DONE                                    
         B        *R8               EXIT                                        
*                                                                               
         TITLE    '** SYSGEN  - ALARM MESSAGES **'                              
*                                                                               
*                                                                               
*                                   MESSAGES TO BE TYPED ON TYA01               
*                                   FIRST WORD IS FLAG                          
*                                      0=PRINT NOTHING AFTER ALARM              
*                                      1=PRINT STATUS BYTE AFTER ALARM          
*                                      3=PRINT TDV STATUS AFTER ALARM           
*                                   MSGS. ARE ALL TYPED BY TYPE ROUTINE         
*                                                                               
*                                                                               
MSG1     TEXT     'TIO='                                                        
MSG1A    DATA     0                 STORAGE FOR STATUS BYTE                     
MSG2     TEXT     'TDV='                                                        
MSG2A    DATA     0                 STORAGE FOR TDV STORAGE                     
MSG3     DATA     0                                                             
         TEXTC    'TCP-R SYSGEN'                                                
MSG3A    DATA     0                                                             
         TEXTC    'IN,OUT DEVICES '                                             
MSG4     DATA     0                                                             
         TEXTC    'CORE OVERFLOW INTO SYSLOAD'                                  
MSG5     DATA     0                                                             
MSG5A    TEXTC    'ERROR ITEM  X '                                              
MSG6     DATA     0                                                             
         TEXTC    'INPUT ORDER ERROR'                                           
MSG10    DATA     0                                                             
         TEXTC    'UNRECOG'                                                     
MSG11    DATA     0                                                             
         TEXTC    'BUSY'                                                        
MSG12    DATA     0                                                             
         TEXTC    'MANUAL'                                                      
MSG13    DATA     0                                                             
         TEXTC    'WRT PROT'                                                    
MSG14    DATA     3                                                             
         TEXTC    'FAULT,'                                                      
MSG15    DATA     1                                                             
         TEXTC    'ERROR,'                                                      
MSG16    DATA     3                                                             
         TEXTC    'UNUS. END,'                                                  
MSG17    DATA     0                                                             
MSG17A   TEXTC    'PARITY ERR,TRK=XXXX'                                         
MSG22    DATA     0                                                             
         TEXTC    'NO SYSTEM RAD'                                               
MSG22A   DATA     0                                                             
         TEXTC    ':CTINT ERROR'                                                
MSG23    DATA     0                                                             
         TEXTC    'BI CKSM ERR'                                                 
MSG24    DATA     0                                                             
         TEXTC    'BI SEQ ERR'                                                  
MSG25    DATA     0                                                             
MSG25A   TEXTC    'ERR,CONTROL BYTE=XX'                                         
         BOUND    8                                                             
MSG26    DATA     0                                                             
MSG26A   TEXTC    'ILL. DEF,  XXXXXXXX'                                         
MSG27    DATA     0                                                             
MSG27A   TEXTC    'DUP. DEF,  XXXXXXXX'                                         
MSG28    DATA     0                                                             
MSG28A   DATA,1   91,'M','I','S'                                                
         TEXT     'SING ID                                         '            
         TEXT     '                                        '                    
         BOUND    8                                                             
MSG30    DATA     0                                                             
MSG30A   TEXTC    'ILL. REF,  XXXXXXXX'                                         
MSG31    DATA     0                                                             
         TEXTC    'EOF BEFORE END ITEM'                                         
MSG32    DATA     0                                                             
         TEXTC    'OBJ. MOD. NOT RECOG.'                                        
MSG33    DATA     0                                                             
         TEXTC    'TYPE C OR E'                                                 
MSG40    DATA     0                                                             
*                             V NEW LINE                                        
         TEXTC    'RBM SYSLOAD
INPUT OPTIONS'                                   
MSG42    DATA     0                                                             
         TEXTC    'CK AREA TOO SMALL'                                           
MSG45    DATA     0                                                             
         TEXTC    'RELOAD XX AREA'                                              
MSG46    DATA     0                                                             
         TEXTC    'CONTINUE?'                                                   
MSG47    DATA     0                                                             
         TEXTC    'RELINK BACKGROUND PROGRAMS'                                  
MSG48    DATA     0                                                             
         TEXTC    'RELOAD NOTHING'                                              
MSG49    DATA     0                                                             
         TEXTC    'UNABLE TO FIND OLD CP-R'                                     
MSG50    DATA     0                                                             
         TEXTC    'BT AREA TOO SMALL'                                           
MSG51    DATA     0                                                             
         TEXTC    'OC LABEL NOT ASSIGNED'                                       
MSG52    DATA     0                                                             
         TEXTC    '   ******** NOT FOUND - NEEDED IN K:CELL'                    
MSG55    DATA     0                                                             
         TEXTC    ' SYGEN ABORTED - STVM TO LOW'                                
MSG53    DATA     0                                                             
         TEXTC    'ERROR: PRIVATE PARTITION REQUIRED - :MEM IGNORED'            
MSG54    DATA     0                                                             
         TEXTC    'POOL+MBOX .GT. RSDF'                                         
MSG96    DATA     0                                                             
         TEXTC    'TABLE ALLOCATION OVERRUNS SYSGEN'                            
MSG97    DATA     0                                                             
         TEXTC    'DISC OVERFLOW DURING AREA ALLOCATION'                        
MSG98    DATA     0                                                             
         TEXTC    'TOO MANY DISC AREAS SPECIFIED'                               
MSG99    DATA     0                                                             
         TEXTC    'SYSGEN ABORTED'                                              
         TITLE    '** SYSGEN  - DEFT TABLES -OLAY DEFINITIONS **'               
*                                                                               
*                                                                               
* SPECIAL SYSTEM OVERLAYS                                                       
*                                                                               
* NON-RESIDENT AND BIASED AT START OF VIRTUAL MEMORY                            
         BOUND    8                                                             
DEFT1    DATA,8   0                                                             
JCPX     TEXT     'JCP     '                                                    
         TEXT     'LOAD    '                                                    
         DO1      #TJE                                                          
         TEXT     'TEL     '                                                    
#SSOLAY  EQU      ((%-DEFT1-2)/2)                                               
         PAGE                                                                   
*                                                                               
*                                                                               
* NON-RESIDENT OVERLAYS                                                         
*                                                                               
         DO1      1-#MAP                                                        
         TEXT     'CKPT    '                                                    
         TEXT     'FGL1    '                                                    
         TEXT     'FGL2    '                                                    
         TEXT     'FGL3    '                                                    
         TEXT     'SCHED   '                                                    
         TEXT     'SCNEXT  '                                                    
         TEXT     'ABEX    '                                                    
         TEXT     'KEYSCN  '                                                    
         TEXT     'KEY1    '                                                    
         TEXT     'KEY2    '                                                    
         TEXT     'KEY3    '                                                    
         TEXT     'KEY4    '                                                    
         TEXT     'KEY5    '                                                    
         TEXT     'KEY6    '                                                    
         TEXT     'KEY7    '                                                    
         TEXT     'KEY8    '                                                    
         TEXT     'KEY9    '                                                    
         DO       #TJE                                                          
         TEXT     'TEX1    '                                                    
         TEXT     'TEX2    '                                                    
         TEXT     'TEL1    '                                                    
         TEXT     'TEL2    '                                                    
         TEXT     'TEL3    '                                                    
         FIN      #TJE                                                          
         TEXT     'DUMP    '                                                    
         TEXT     'BKL1    '                                                    
         DO       1-#ONLINE                                                     
         TEXT     'ARM     '                                                    
         TEXT     'ENQ     '                                                    
         TEXT     'DELETE  '                                                    
         TEXT     'RWBFIL  '                                                    
         TEXT     'FINDBB  '                                                    
         TEXT     'RWEXT   '                                                    
         TEXT     'DEVI    '                                                    
         TEXT     'ASSIGN  '                                                    
         TEXT     'IOEX    '                                                    
         TEXT     'OPENX   '                                                    
         TEXT     'CLOSEX  '                                                    
         TEXT     'REWIND  '                                                    
         TEXT     'REWDEV  '                                                    
         DO       #MAP                                                          
         TEXT     'IPLMM   '                                                    
         TEXT     'IPLSYM  '                                                    
         TEXT     'MMO1    '                                                    
         TEXT     'MMO2    '                                                    
         TEXT     'MMO3    '                                                    
         TEXT     'MMO4    '                                                    
         TEXT     'MMO5    '                                                    
         TEXT     'MMO6    '                                                    
         TEXT     'PLO1    '                                                    
         FIN      #MAP                                                          
         TEXT     'SIGNAL  '                                                    
         TEXT     'SJOB    '                                                    
         TEXT     'SNAM    '                                                    
         TEXT     'RUN     '                                                    
         TEXT     'PINIT   '                                                    
         TEXT     'STDLB   '                                                    
         TEXT     'EXTM    '                                                    
         TEXT     'WAIT    '                                                    
         DO       #MAP                                                          
         TEXT     'TIO1    '                                                    
         TEXT     'TIO2    '                                                    
         FIN      #MAP                                                          
         TEXT     'TT      '                                                    
         TEXT     'TTJOB   '                                                    
         DO       #SYMB                                                         
         TEXT     'JOB1    '                                                    
         TEXT     'JOB2    '                                                    
         TEXT     'SYM2    '                                                    
         TEXT     'SYM3    '                                                    
         TEXT     'SYM5    '                                                    
         FIN      #SYMB                                                         
         TEXT     'TRAPS   '                                                    
         TEXT     'TMGETP  '                                                    
         TEXT     'ALLOT   '                                                    
         TEXT     'ESU     '                                                    
         TEXT     'CRS     '                                                    
         TEXT     'CRD     '                                                    
         TEXT     'CKD     '                                                    
         TEXT     'CKD2    '                                                    
         DO1      #ERRORLOG                                             1164.910
         TEXT     'LOG     '                                                    
CRASHX   TEXT     'CRASH   '                                                    
         DO       #MEDIA                                                        
         TEXT     'MED1    '                                                    
         TEXT     'MED2    '                                                    
         FIN      #MEDIA                                                        
         TEXT     'CRS2    '                                                    
         DO       #DEBUG                                                        
         TEXT     'DBDW    '                                                    
         TEXT     'DBC1    '                                                    
         TEXT     'DBC2    '                                                    
         TEXT     'DBC3    '                                                    
         TEXT     'DBS1    '                                                    
         TEXT     'DBS2    '                                                    
         TEXT     'DBS3    '                                                    
         FIN      #DEGUG                                                        
         TEXT     'PRINT   '                                                    
         FIN      1-#ONLINE                                                     
#NROLAY  EQU      ((%-DEFT1-2)/2)-#SSOLAY                                       
         PAGE                                                                   
*                                                                               
*                                                                               
* RESIDENT OVERLAYS                                                             
*                                                                               
         DO       1-#ONLINE                                                     
         TEXT     'TMTYC   '                                                    
         TEXT     'CHECK   '                                                    
         TEXT     'READWR  '                                                    
         TEXT     'SDBUF   '                                                    
        DO       #SYMB                                                          
         TEXT     'SYM1    '                                                    
         TEXT     'SYM4    '                                                    
        FIN      #SYMB                                                          
         TEXT     'RWFILE  '                                                    
         TEXT     'RWDEV   '                                                    
         TEXT     'GETNRT  '                                                    
         FIN      1-#ONLINE                                                     
#ROLAY   EQU      ((%-DEFT1-2)/2)-#NROLAY-#SSOLAY                               
         PAGE                                                                   
*                                                                               
*                                                                               
* PERMINENTLY RESIDENT OVERLAYS                                                 
*                                                                               
         TEXT     'DISC    '                                                    
         TEXT     'TAPE    '                                                    
         TEXT     'CARD    '                                                    
         DO1      #RB                                                           
         TEXT     'RB      '                                                    
         TEXT     'TTY     '                                                    
         DO1      #MEDIA                                                        
         TEXT     'MEDIA   '                                                    
         DO1      (#LP7446+#LPRNTLC+#LPRINT+#LP346X)>0                          
         TEXT     'LP      '                                                    
         DO1      #TJE                                                          
         TEXT     'TEX     '                                                    
         DO1      #LN                                                           
         TEXT     'COCIO   '                                                    
         DO       #SYMB                                                         
         TEXT     'SEX     '                                                    
         FIN      #SYMB                                                         
         DO       1-#ONLINE                                                     
         TEXT     'TERM    '                                                    
         DO       #MAP                                                          
         TEXT     'TIO3    '                                                    
         TEXT     'MMROOT  '                                                    
         FIN      #MAP                                                          
         FIN      1-#ONLINE                                                     
#PROLAY  EQU      ((%-DEFT1-2)/2)-#ROLAY-#NROLAY-#SSOLAY                        
#OVERS   EQU      (%-DEFT1-2)/2                                                 
         ZERO,8   #OVI-#OVERS                                                   
         ZERO,8   #EPI-#OVI                                                     
RBMX     TEXT     'RBM     '                                                    
RBMENDX  TEXT     'RBMEND  '                                                    
FPSIMX   TEXT     'FPSIM   '                                                    
         TEXT     'DECSIM  '                                                    
         TEXT     'BYTSIM  '                                                    
         TEXT     'CVSIM   '                                                    
         DO       #DELMDL                                                       
DELTAX   TEXT     'DELTA   '                                                    
         FIN      #DELMDL                                                       
DEFTEND  EQU      %                                                             
JCP      EQU      (JCPX-DEFT1)/2                                                
CRASH    EQU      (CRASHX-DEFT1)/2                                              
RBM      EQU      (RBMX-DEFT1)/2                                                
RBMEND   EQU      (RBMENDX-DEFT1)/2                                             
FPSIM1   EQU      (FPSIMX-DEFT1)/2                                              
         DO       #DELMDL                                                       
DELTA1   EQU      (DELTAX-DEFT1)/2                                              
         FIN      #DELMDL                                                       
SIMBASE  EQU      RBM                                                           
#DEFTS   EQU      (DEFTEND-DEFT1-2)/2                                           
#SIMS    EQU       (DEFTEND-RBMX)/2                                             
         PAGE                                                                   
DEFT2    DATA     #DEFTS                                                        
         DATA,2   0,0               *TEMPORARY                                  
         ZERO     #DEFTS-1                                                      
         BOUND    4                                                             
DEFT3    DATA,2   0                                                             
         ZERO,2   #DEFTS                                                        
         BOUND    4                                                             
*                                   0 = DONT LOAD                               
*                                   1 = RESIDENT                                
*                                   2 = NON RESIDENT                            
*                                   3 = LOADED                                  
*                                   4 = PERM RESIDENT                           
*                                   5 = SUB SYSTEM                              
DEFT4    DATA,1   0                                                             
         DO1      #SSOLAY                                                       
         DATA,1   SSOLAY                                                        
         DO1      #NROLAY                                                       
         DATA,1   NROLAY                                                        
         DO1      #ROLAY                                                        
         DATA,1   ROLAY                                                         
         DO1      #PROLAY                                                       
         DATA,1   PROLAY                                                        
         ZERO,1   #EPI-#OVERS                                                   
         DATA,1   PROLAY,PROLAY                                                 
         DO1      #SIMS-2                                                       
         DATA,1   DLOLAY                                                        
         BOUND    4                                                             
DEFT5    DATA,1   0                                                             
         ZERO,1   #DEFTS                                                        
         BOUND    4                                                             
BRANCH   B        0                                                             
CAL1OV   CAL1,0    0                FILLED WITH CAL1                            
BALINST  BAL,R0   0                 USE TO LOK FOR DEF REFERENCES               
BALNOR   DATA     X'FF0FFFFF'       TO CLEAR R                                  
         TITLE    '** SYSGEN  - SYMT TABLES - SYSGEN DEFINED SYMBOLS **'        
*                                                                               
*                                   CONTAINS DEFS OF ALL MONITOR TABLES         
*                                     NOT REFERENCED THROUGH SYSTEM             
*                                     POINTERS                                  
*                                   SET UP BY SYSGEN AND USED BY SYSLOAD        
*                                     TO SATISFY REF'S ENCOUNTERED              
*                                     DURING LOADING OF RBM                     
*                                                                               
*                                                                               
         BOUND    8                 START ON DW BOUNDARY                        
SYMT1    DATA,8   0                                                             
         TEXT     'DCT1    '                                                    
         TEXT     'DCT1P   '                                                    
         TEXT     'DCT1A   '                                                    
         TEXT     'DCT2    '                                                    
         TEXT     'DCT3    '                                                    
         TEXT     'DCT4    '                                                    
         TEXT     'DCTDISCI'                                                    
         DO1      #RB                                                           
         TEXT     'DCTRB   '                                                    
         TEXT     'DCT5    '                                                    
         TEXT     'DCT6    '                                                    
         TEXT     'DCT7    '                                                    
         TEXT     'DCT8    '                                                    
         TEXT     'DCT9    '                                                    
         TEXT     'DCT10   '                                                    
         TEXT     'DCT11   '                                                    
         TEXT     'DCT12   '                                                    
         TEXT     'DCT13   '                                                    
         TEXT     'DCT14   '                                                    
         TEXT     'DCT15   '                                                    
         TEXT     'DCT16   '                                                    
         TEXT     'DCT17   '                                                    
         TEXT     'DCT18   '                                                    
         TEXT     'DCT19   '                                                    
         TEXT     'DCT20   '                                                    
         TEXT     'DCT20A  '                                                    
         TEXT     'DCT21   '                                                    
         TEXT     'DCTDEBUG'                                                    
         TEXT     'DCTRBM  '                                                    
         TEXT     'DCTDCB  '                                                    
         TEXT     'DCTJID  '                                                    
         TEXT     'DCTMOD  '                                                    
         DO1      #PS                                                           
         TEXT     'DCTSHARE'                                                    
         DO       #ERRORLOG                                                     
         TEXT     'DCTMODX '                                                    
         TEXT     'DCT#IO  '                                                    
         TEXT     'DCT#ERR '                                                    
         FIN      #ERRORLOG                                                     
         DO1      #SIDEBUF                                                      
         TEXT     'DCTSDBUF'                                                    
         DO1      #TJE                                                          
         TEXT     'DCTTJE  '                                                    
         DO1      #SYMB                                                         
         TEXT     'DCTSYM1 '                                                    
         DO1      #SYMB                                                         
         TEXT     'DCTSYM2 '                                                    
         DO1      #SYMB                                                         
         TEXT     'DCTSYM3 '                                                    
         DO1      #DP3243                                                       
         TEXT     'DCTCD   '                                                    
         TEXT     'DISCNSPT'                                                    
         TEXT     'DISCNWPS'                                                    
         TEXT     'DISCMAXS'                                                    
         TEXT     'DISCMINS'                                                    
         TEXT     'DISCSSFT'                                                    
         TEXT     'DISCTSFT'                                                    
         TEXT     'DISCCSFT'                                                    
         TEXT     'DISCNTPC'                                                    
         TEXT     'DISCNCYL'                                                    
         DO1      #ERRORLOG                                                     
         TEXT     'LOGFLAG '                                                    
         TEXT     'SITE    '                                                    
         DO       #550                                                          
         TEXT     'CNFGADDR'                                                    
         TEXT     'CNFGTYPE'                                                    
         TEXT     'CNFGSTAT'                                                    
         FIN      #550                                                          
         TEXT     'MDDCTI  '                                                    
         TEXT     'MDDISCI '                                                    
         TEXT     'MDBOA   '                                                    
         TEXT     'MDEOA   '                                                    
         TEXT     'MDFLAG  '                                                    
         TEXT     'MDNAME  '                                                    
         TEXT     'MDLOCK  '                                                    
         DO1      #PRIV                                                         
         TEXT     'MDVSN   '                                                    
         TEXT     'S:SPAI  '                                                    
         DO       #SYMB                                                         
         TEXT     'S:ISFSIZ'                                                    
         TEXT     'S:OSFSIZ'                                                    
         FIN      #SYMB                                                         
         TEXT     'S:TENQ  '                                                    
         DO1      #RB                                                           
         TEXT     'S:#RB   '                                                    
         DO1      #ROLL                                                         
         TEXT     'MMROLTAB'                                                    
         DO1      #DEBUG                                                        
         TEXT     'S:DEBUG '                                                    
         TEXT     'CIT1    '                                                    
         TEXT     'CIT2    '                                                    
         TEXT     'CIT3    '                                                    
         TEXT     'CIT5    '                                                    
         TEXT     'CIT6    '                                                    
         TEXT     'IOQ1    '                                                    
         TEXT     'IOQ2    '                                                    
         TEXT     'IOQ3    '                                                    
         TEXT     'IOQ4    '                                                    
         TEXT     'IOQ5    '                                                    
         TEXT     'IOQ7    '                                                    
         TEXT     'IOQ8    '                                                    
         TEXT     'IOQ9    '                                                    
         TEXT     'IOQ10   '                                                    
         TEXT     'IOQ11   '                                                    
         TEXT     'IOQ12   '                                                    
         TEXT     'IOQ13   '                                                    
         TEXT     'IOQ14   '                                                    
         TEXT     'IOQECB  '                                                    
         DO1      #ERRORLOG                                                     
         TEXT     'IOQERROR'                                                    
         TEXT     'RFT1    '                                                    
         TEXT     'RFT2    '                                                    
         TEXT     'RFT3    '                                                    
         TEXT     'RFT4    '                                                    
         TEXT     'RFT5    '                                                    
         TEXT     'RFT6    '                                                    
         TEXT     'RFT6A   '                                                    
         TEXT     'RFT7    '                                                    
         TEXT     'RFT8    '                                                    
         TEXT     'RFT9    '                                                    
         TEXT     'RFT10   '                                                    
         TEXT     'RFT11   '                                                    
         TEXT     'RFT12   '                                                    
         TEXT     'RFT13   '                                                    
         TEXT     'RFT14   '                                                    
         TEXT     'RFT15   '                                                    
         TEXT     'RFT16   '                                                    
         TEXT     'RFT17   '                                                    
         TEXT     'RFTESZ  '                                                    
         TEXT     'RFTE#   '                                                    
         TEXT     'RFTACNT '                                                    
         TEXT     'LMI1    '                                                    
         TEXT     'LMINAME '                                                    
         TEXT     'LMI2    '                                                    
         TEXT     'LMIPCB  '                                                    
         TEXT     'LMIFWA  '                                                    
         TEXT     'LMI3    '                                                    
         TEXT     'LMIJID  '                                                    
         TEXT     'LMILWA  '                                                    
         TEXT     'LMI4    '                                                    
         TEXT     'LMIPL   '                                                    
         TEXT     'LMICTXT '                                                    
         TEXT     'LMI5    '                                                    
         TEXT     'LMISTAT '                                                    
         TEXT     'LMI6    '                                                    
         TEXT     'LMISDT  '                                                    
         TEXT     'LMIRTS  '                                                    
         TEXT     'LMI8    '                                                    
         TEXT     'LMIMAXS '                                                    
         TEXT     'LMI9    '                                                    
         TEXT     'LMIMAXR '                                                    
         TEXT     'LMIUSERS'                                                    
         TEXT     'LMI#    '                                                    
         DO       #ECB                                                          
         TEXT     'LMISECB '                                                    
         TEXT     'LMIRECB '                                                    
         TEXT     'LMIAET  '                                                    
         FIN      #ECB                                                          
         DO       #MAP                                                          
         TEXT     'LMIRFT  '                                                    
         FIN      #MAP                                                          
         TEXT     'STISPCE '                                                    
         TEXT     'STIXRTS '                                                    
         TEXT     'STIRTSB '                                                    
         TEXT     'STIJID  '                                                    
         TEXT     'STILMID '                                                    
         TEXT     'STIPRIO '                                                    
         TEXT     'STITCB  '                                                    
         TEXT     'STIOVID '                                                    
         TEXT     'STICOUNT'                                                    
         DO1      #ECB                                                          
         TEXT     'STITIME '                                                    
         DO       #MULTDSP                                                      
         TEXT     'STIDNXT '                                                    
         TEXT     'STIRNXT '                                                    
         FIN      #MULTDSP                                                      
         TEXT     'STISTAT '                                                    
         TEXT     'STITICK '                                                    
         DO       #TSLICE                                                       
         TEXT     'STIQMIN '                                                    
         TEXT     'STIQMAX '                                                    
         FIN      #TSLICE                                                       
         TEXT     'RDLIPRIO'                                                    
         DO1      #MULTDSP                                                      
         TEXT     'RDLISTI '                                                    
         TEXT     'RDLITCB '                                                    
         TEXT     'RDLIADD '                                                    
         TEXT     'RDLILVL1'                                                    
         TEXT     'RDLIGRP1'                                                    
         TEXT     'RDLILVL2'                                                    
         TEXT     'RDLIGRP2'                                                    
         TEXT     'SJI1    '                                                    
         TEXT     'SJI2    '                                                    
         TEXT     'SJI3    '                                                    
         TEXT     'SJI4    '                                                    
         TEXT     'JCPSETP '                                                    
         TEXT     'JCPCATW '                                                    
         TEXT     'OPLB1   '                                                    
         TEXT     'OPLB2   '                                                    
         TEXT     'OPLB3   '                                                    
         TEXT     'S:SD    '                                                    
         TEXT     'S:EDT   '                                                    
         TEXT     'ALARMREC'                                                    
         TEXT     'INTLB1  '                                                    
         TEXT     'INTLB2  '                                                    
         TEXT     'OVLOAD1 '                                                    
         TEXT     'OVLOAD2 '                                                    
         TEXT     'OVISK   '                                                    
         TEXT     'OVLOAD3 '                                                    
         DO       #MAP                                                          
         TEXT     'OVIMA   '                                                    
         TEXT     'OVIECB  '                                                    
         TEXT     'OVICT   '                                                    
         TEXT     'OVIUSAGE'                                                    
         FIN      #MAP                                                          
         TEXT     'EPIEP   '                                                    
         TEXT     'EPIB    '                                                    
         DO       #PATCH                                                        
         TEXT     'S:TRACE '                                                    
         TEXT     'S:TRACEN'                                                    
         TEXT     'S:TRACES'                                                    
         TEXT     'S:TRACET'                                                    
         TEXT     'S:TRACEP'                                                    
         FIN      #PATCH                                                        
         DO       #MAP                                                          
         TEXT     'RMPT    '                                                    
         TEXT     'PPT     '                                                    
         FIN      #MAP                                                          
         TEXT     'S:XBB   '                                                    
         TEXT     'WLOCK   '                                                    
         TEXT     'TMACIMC '        SYSTEM TASK ACCESS CODES                    
         TEXT     'STVM    '        START OF TASK VIRTUAL MEMORY                
         TEXT     'ETVM    '        END OF TASK VIRTUAL MEMORY                  
         TEXT     'S:UTIME '                                                    
         TEXT     'S:JPT   '                                                    
         DO1      #MAP                                                          
         TEXT     'IOLOCK  '                                                    
         DO       #LN                                                           
FIRSTCOC TEXT     'COH:DN  '                                                    
         TEXT     'CO:AIIL '                                                    
         TEXT     'CO:AOIL '                                                    
         TEXT     'CO:IIL  '                                                    
         TEXT     'CO:OIL  '                                                    
         TEXT     'CO:STAT '                                                    
         TEXT     'CO:OUTRS'                                                    
         TEXT     'CO:RCVON'                                                    
         TEXT     'CO:XDATA'                                                    
         TEXT     'CO:TRNDO'                                                    
         TEXT     'CO:RCVDO'                                                    
         TEXT     'CO:XSTOP'                                                    
         TEXT     'CO:LST  '                                                    
         TEXT     'CO:RINGE'                                                    
         TEXT     'COH:RBS '                                                    
         TEXT     'CO:OUT  '                                                    
         TEXT     'COH:II  '                                                    
         TEXT     'COH:IO  '                                                    
         TEXT     'COCHPB  '                                                    
         TEXT     'COCOC   '                                                    
         TEXT     'LB:UN   '                                                    
         TEXT     'ARSZ    '                                                    
         TEXT     'BUFCNT  '                                                    
         TEXT     'MODE    '                                                    
         TEXT     'MODE2   '                                                    
         TEXT     'MODE3   '                                                    
         TEXT     'MODE4   '                                                    
         TEXT     'MODECPR '                                                    
         TEXT     'COCTERM '                                                    
         TEXT     'RSZ     '                                                    
         TEXT     'CPI     '                                                    
         TEXT     'CPOS    '                                                    
         TEXT     'COCII   '                                                    
         TEXT     'COCIR   '                                                    
         TEXT     'COCOI   '                                                    
         TEXT     'COCOR   '                                                    
         TEXT     'TL      '                                                    
         TEXT     'EOMTIME '                                                    
         TEXT     'COD:LPC '                                                    
         TEXT     'COD:HWL '                                                    
         TEXT     'CO:IN0  '                                                    
         TEXT     'CO:INN  '                                                    
         TEXT     'CO:OUT0 '                                                    
         TEXT     'CO:CMND '                                                    
         TEXT     'COCBUF  '                                                    
         TEXT     'HRBA    '                                                    
         TEXT     'LCOC    '                                                    
         TEXT     'LNOL    '                                                    
         TEXT     'COA:IIG '                                                    
LASTCOC  TEXT     'COA:OIG '                                                    
         FIN      #LN                                                           
         TEXT     'S:TEMPN '                                                    
         TEXT     'S:TEMP  '                                                    
         TEXT     'OLAYFWA '                                                    
         ZERO,8   #RBMDEF           ZERO THEM DEFS                              
SYMT1END RES      0                 THIS MUST FOLLOW LAST SYMBOL                
SYMTSIZE EQU      DA(SYMT1END)-DA(SYMT1)-1                                      
*                                       ENTRY 0= NO. ENTRIES IN TABLE           
SYMT2    DATA     SYMTSIZE                                                      
         ZERO     SYMTSIZE          DEFS VALUE AS BYTE ADR                      
SYMT3    RES,2    SYMTSIZE+1        DECLARATION # FOR DEF                       
         BOUND    4                                                             
SPEED    ZERO,2   SYMTSIZE+#DEFTS                                               
         BOUND    4                                                             
SYSLDLWA RES      0                 END OF SYSLOAD TO BE PUNCHED                
         ORG      INBUF                                                         
         TEXT     ':SYS (IN,CRA03,7120),(OUT,LPA02,7440)'                       
         END      A01               TRANSFER TO FIRST CELL OF SYSGEN            
