         SYSTEM   SIG5                                                          
         SYSTEM   OPTIONS                                                       
         TITLE    '       **** DEFS AND REFS ****'                              
         DEF      PASSONE,OLAYONE                                               
         REF      EBL:ROO2                                                      
         REF      LML:ROO2                                                      
         REF      FLG:ROO2                                                      
         REF      ADDNXT,ADDX,B:C,B:ROM,B:X,BAP:ROM,BAP:ROO2,BEPROMI            
         REF      BL:ROO2,BOUNDCS,BOUNDRDW,CCDCBV                               
         REF      CCSTACK,CCVALUE,CHKBLANK,CMPZ,COMPBS,CONVROMX,DCBTYPE         
         REF      DWBOUND,EXTEND,F:DEFREF,F:DEVICE,F:EBCDIC,F:MODIR             
         REF      F:MODULE,F:PUBL,FBA:COMN,FBA:DCBT,FBA:INTT,FBA:LIM            
         REF      FBA:OVLO,FBA:ROO2,FBA:TABS,FBA:TEMP,FL:BACK,FL:BOUND          
         REF      FL:COMN,FL:ERROR,FL:GO,FL:LBLD,FL:LBPAS,FL:LIB,FL:MAP         
         REF      FL:MODF,FL:NXTCC,FL:OFLOW,FL:OUTOV,FL:PAS2,FL:PUBL            
         REF      FL:RTYPE,FL:STEP,FL:TASKS,FL:TEMP,FL:UDCB,FL:UNNAM            
         REF      FLTMPTSK,FPT:CCI6,FPT:CCI7,FPT:CC1,FPT:CC2,FPT:CC3            
         REF      FPT:CC4,FPT:CC5,FPT:CC8,FPT:DIAG,FPT:LB1,FPT:LB11             
         REF      FPT:LB10,FPT:LB13,FPT:LB2,FPT:LB3,FPT:LB4,FPT:LB5             
         REF      FPT:LB6,FPT:LB7,FPT:LB8,FPT:LB9,FPT:ONE1,FPT:ONE2             
         REF      FPT:ONE4,FPT:ONE3,FPT:PRLO,FPT:RDG,FPT:RD2,FPT:RD3            
         REF      FPT:WTG,FPT:XN1,FWA:ASSN,GETDECL,LBA:COMN,LBA:DCBT            
         REF      LBA:LIM,LBA:OVLO,LBA:PATH,LBA:ROM,LBA:ROO2,LOADERR            
         REF      LOADSEG,LWA:ASSN,M:C,M:GO,M:LL,M:LO,M:OC,M:OV,M:X1            
         REF      M:X2,M:X3,M:X4,M:X5,M:X6,MOVBYTS,MOVEDW,NBA:SECT              
         REF      NUM1,NUM2,NXTSEG,OLOADPCB,P:GRAN,P:POOL,PATHEND               
         REF      PT:CC6,PT:CC7,PT:DIAG1,PT:LB12,PT:RD1,PT:SCAN,PT:WTGR         
         REF      RABORT,RAREABC,RAX,RDIAG,RDIAGX,READXN,ROMBYTE                
         REF      ROMBYTES,ROMERR,SATREF,SCANEXIT,SCANFLAG,SCANITEM             
         REF      SCAN80,SCAN82,SCAN83,SCAN84,SCAN85,SCAN88,SCAN89              
         REF      SCAN89A,SCAN90,SCAN91,SCAN92,SCAN93,SCAN94,SCAN95             
         REF      SCAN96,SCAN98,SCAN99,SERCHDCB,SERCHFWD,SERCHPUB               
         REF      SERCHSEG,SERCHSYM,SERCHVAL,SKIPX,SOLVEX,STORCBV               
         REF      SYMFBA,T:BDP,T:BZA,T:FBA,T:LBA,T:LDADDR                       
         REF      T:LDINST,T:NBE,T:PL,TBENTRY,V:CCDCB,V:CCTYPE                  
         REF      V:COLAY,V:DECLNO,V:LIBSIZ,V:LINKID,V:MASK,V:MODLOC            
         REF      V:ROMRNO,V:SEGID,V:TOTSIZ,VMODMTB,WDP:ASSN,WORD               
         REF      WRITEXN,XBC,ZERONXT,ZEROX,4BYTES                              
         REF      X:F,X:FFFF,X:TY,X:TYDV,X:TYFLB,X:0,X:7F,Y:FFFE,Y:002     101  
         REF      Y:FFF8                                   /SIG7-3806/C015732   
         REF      V:MSECB,V:MRECB,V:MENQ,V:NUSG,V:NPLSG                         
         REF      FBA:RTMP,LBA:ROO1                                             
         REF      FL:STM,FL:CRIT,FL:PRIM,FL:RTMP                                
         REF      S:FMSK,S:IMSK,S:MMSK,S:SMSK,S:PMSK                            
         REF      BOUNDRP                                                       
         REF      FL:SMM                                                        
         REF      GIOOBIT,GIODBIT,GIOFBIT,GIOABIT,GIOFA,GIOBITS                 
         REF      X:FFF                                                         
         REF      FPT:ASN,FPT:GASN,FPT:COR,FPT:REW,FPT:PACK                     
         REF      FPT:OPEN,FPT:CLS                                              
         REF      PT:OPEN,PT:CLS                                                
         REF      B:OPLBNM,B:DEVNM,B:DEVX,B:DEVCON,B:ERRCC                      
         REF      NXTROM,GIOCT                                                  
         REF      FPT:ROM1                                                      
         TITLE    '       **** EQUATES ****'                                    
SAVE%    SET      %                                                             
         ASECT                                                                  
R0       EQU      %                                                             
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                                                          
         USECT    SAVE%                                                         
*                       *V:CCTYPE INDICES                                       
:OLOAD   EQU      1                                                             
:PUBLIB  EQU      2                                                             
:ROOT    EQU      3                                                             
:SEG     EQU      4                                                             
:COMMON  EQU      5                                                             
:LCOMMON EQU      6                                                             
:INCLUDE EQU      7                                                             
:EXCLUDE EQU      8                                                             
:RES     EQU      9                                                             
:LIB     EQU      10                                                            
:MODIFY  EQU      11                                                            
:ASSIGN  EQU      12                                                            
:BINARY  EQU      13                (BINARY ROM RECORD)                         
*                       *FPT CONSTANTS                                          
OPEN     EQU      X'14'                                                         
CLOSE    EQU      X'15'                                                         
READ     EQU      X'10'                                                         
WRITE    EQU      X'11'                                                         
REWIND   EQU      X'01'                                                         
SKIPREC  EQU      X'1D'                                                         
RECORDNO EQU      X'80000000'                                                   
ERA      EQU      X'80000000'                                                   
ABA      EQU      X'40000000'                                                   
BUF      EQU      X'20000000'                                                   
RSZ      EQU      X'10000000'                                                   
KEY      EQU      X'01000000'                                                   
REALTIME EQU      X'00400000'                                                   
WAIT     EQU      X'10'                                                         
ROOT2ID  EQU      X'9001'           ROOT2 SEG ID NR                             
COMNID   EQU      X'9004'           COMMON SEG ID NR                            
*                       *DCB CONSTANTS (BYTE ITEMS)                             
IN       EQU      1                                                             
OUT      EQU      2                                                             
INOUT    EQU      3                                                             
RETRY    EQU      3                                                             
RAD      EQU      1                                                             
DEVICE   EQU      3                                                             
DEVF     EQU      X'80'                                                         
OPLB     EQU      3                                                             
VFC      EQU      1                                                             
*                       *RAD AREAS                                              
FP       EQU      1                 FOREGROUND PROGRAMS                         
SP       EQU      0                 SYSTEM PROGRAMS                             
BT       EQU      3                 BACKGROUND TEMP                             
*                       *DEVICE TYPES                                           
PR       EQU      2                 PAPER-TAPE READER                           
*                       *ABNORMAL I/O CONDITION CODES                           
IL       EQU      7                 BUFFER SMALLAR THAN DATA READ               
EOD      EQU      5                 TAPE MARK OR 'EOD'                          
EOF      EQU      6                 CONTROL COMMAND ON 'C' DEVICE               
EOT      EQU      X'1C'             END-OF-TAPE                                 
NOFILE   EQU      3                 RAD FILE DOES NOT EXIST                     
*                        *SIZES                                                 
PCBSIZE  EQU      13*4              PCB SIZE IN BYTES                           
TEMPSIZE EQU      150               DEFAULT TEMP STACK SIZE (IN WORDS)          
GRANSIZE EQU      256               GRANULE SIZE IN WORDS                       
DCBSIZE  EQU      11                                                            
PLESIZE  EQU      16                T:PL ENTRY SIZE                             
PLSIZE   EQU      5*PLESIZE+1       T:PL SIZE IN WORDS:                         
*                                   ENTRY SIZE TIMES MAX NR ENTRIES             
*                                   PLUS ONE WORD TO ALLOW ZERO                 
*                                   WORD AT END OF TABLE                        
*        T:PL ENTRY ITEM INDICES                                                
PLSYMBL  EQU      10                WORD INDEX TO T:SYMBOL BL                   
PLSYMGO  EQU      11                WORD INDEX TO T:SYMBOL GRAN ORIGIN          
PLVALBL  EQU      12                WORD INDEX TO T:VALUE BL                    
PLVALGO  EQU      13                WORD INDEX TO T:VALUE GRAN ORIGIN           
PLNSEGS  EQU      24                BYTE INDEX TO NR OF SEGS IN PUBLIB          
*T:SEG FIELDS                                                                   
S:LL     EQU      9                 WD OF LOAD MODULE LENGTH OF SEG             
S:MA     EQU      12                HWD OF SEGMENT START ADDRESS                
S:ML     EQU      13                HWD OF SEGMENT MEMORY LENGTH                
S:ENTRY  EQU      7                 WD OF ROOT ENTRY                            
S:VALBL  EQU      7                 HWD OF BL OF T:VALUE                        
S:SYMBL  EQU      9                 HWD OF BL OF T:SYMBOL                       
S:LA     EQU      5                 HWD OF LM ADDRESS OF SEG                    
S:FLAGS  EQU      7                 W INDEX TO FLAG FIELD                       
*        SHIFTS FROM RJ TO NATURAL POSITION IN T:SEG FLAG WORD                  
S:FSHIFT EQU      28                FIXED REAL MEMORY FLAG SHIFT                
S:ISHIFT EQU      27                INITIAL LOAD FLAG SHIFT                     
S:MSHIFT EQU      25                MEM ACCESS PROT CODE SHIFT                  
S:SSHIFT EQU      23                SHARABILITY CODE SHIFT                      
S:PSHIFT EQU      22                PRELOADED SHARABLE SEG FLAG SHIFT           
LEFT     EQU      1                                                             
RIGHT    EQU      -1                                                            
*                        *CONTROL BYTE MASKS AND VALUES                         
TY       EQU      X'C0'             SYMBOL TYPE (DEF,DSECT,PREF,SREF)           
DEF      EQU      0                     EXTERNAL DEFINITION                     
DSECT    EQU      X'40'                 DUMMY SECTION                           
SREF     EQU      X'80'                 SECONDARY REFERENCE                     
PREF     EQU      X'C0'                 PRIMARY REFERENCE                       
D        EQU      X'20'            *SYMBOL HAS/HASNOT BEEN DEFINED,             
*                                   ALLOCATED, OR SATISFIED FLAG MASK           
DEFINED  EQU      X'20'                 DEFINED DEF                             
UNDEFINE EQU      0                     DEF UNDEFINED                           
SATISFYD EQU      X'20'                 SATISFIED REF                           
UNSAT    EQU      0                     REF UNSATISFIED                         
ALLOCATD EQU      X'20'                 ALLOCATED DSECT                         
UNALLOCT EQU      0                     DSECT NOT ALLOCATED                     
V        EQU      X'10'            *SYMBOL HAS BEEN DEFINED/ALLOCATED/          
*                                   SATISFIED WITH EITHER A VALUE               
*                                   OR AN EXPRESSION FLAG MASK                  
VALUE    EQU      X'10'                 VALUE                                   
EXP      EQU      0                     EXPRESSION                              
C        EQU      X'08'            *SYMBOL VALUE IS EITHER A CONSTANT OR        
*                                   AN ADDRESS FLAG MASK                        
CONSTANT EQU      X'08'                *SYMBOL VALUE IS A CONSTANT              
*                                       WITH NO RESOLUTION                      
ADDRESS  EQU      0                    *SYMBOL VALUE IS AN ADDRESS              
*                                       WITH BYTE RESOLUTION                    
F        EQU      X'04'            *SYMBOL IS/ISNOT A DUPLICATE FLAG            
*                                   MASK                                        
DUPLICAT EQU      X'04'                 DUPLICATE SYMBOL                        
NOTDUP   EQU      0                     NOT DUPLICATE SYMBOL                    
LB       EQU      X'03'             SYMBOL FROM ROM OR LIBRARY                  
ROM      EQU      0                     SYMBOL FROM ROM                         
USER     EQU      X'02'                 SYMBOL FROM USER LIBRARY                
SYSTEM   EQU      X'01'                 SYMBOL FROM SYSTEM LIBRARY              
PUBLIC   EQU      X'03'                 PUBLIC LIBRARY SYMBOL                   
RES      EQU      DSECT+ALLOCATD+; *RES SYMBOL CONTROL BYTE                     
                  EXP+NOTDUP+ROM    (TO BE ALLOCATED AT SEGMENT END)            
EXCLPREF EQU      PREF+UNSAT+VALUE; EXCLUDED PREF SYMBOL CONTROL BYTE           
                  +NOTDUP+ROM                                                   
ADSECT   EQU      DSECT+ALLOCATD+VALUE+ADDRESS+NOTDUP+ROM                       
UADSECT  EQU      DSECT+UNALLOCT+VALUE+ADDRESS+NOTDUP+ROM                       
*                                                                               
G        EQU      X'40000'          FLAG IN T:MODULE FOR B:MT SAVED             
*                        *MONITOR CELLS                                         
PCBPOINT EQU      X'4E'             FWA OF BACKGROUND PROGRAM'S PCB             
K:BACKBG EQU      X'140'            FWA OF BACKGROUND                           
K:BCKEND EQU      X'141'            LWA OF BACKGROUND                           
K:FGDEND EQU      X'143'            LWA OF FOREGROUND                           
K:CCBUF  EQU      X'144'            FWA OF CONTROL COMMAND BUFFER               
K:FGDBG2 EQU      X'146'            DEFAULT FWA OF FOREGROUND                   
K:FMBOX  EQU      X'147'            MONITOR FOREGROUND PRGMS MAILBOX            
K:BPEND  EQU      X'153'            LWA+1 OF LOADED BACKGROUND PROGRAM          
K:DCT1   EQU      X'176'            POINTER TO HW WITH # OF DCT ENTRIES         
K:DCT16  EQU      X'177'            POINTER TO DW WITH DEVICE EBCDIC            
K:OPLBS3 EQU      X'179'            POINTER TO OPLB'S CURRENT ASSIGNMENT        
*                        *FLAG VALUES FOR FL:NXTCC                              
ORENTRY  EQU      X'40000000'                                                   
NOOLOAD  EQU      X'30000000'                                                   
NOPUB    EQU      X'0C000000'                                                   
NOROOT   EQU      X'03000000'                                                   
NOSEG    EQU      X'00C00000'                                                   
NOCOM    EQU      X'00300000'                                                   
NOLCOM   EQU      X'000C0000'                                                   
NOINC    EQU      X'00030000'                                                   
NOEXC    EQU      X'0000C000'                                                   
NORES    EQU      X'00003000'                                                   
NOLIB    EQU      X'00000C00'                                                   
NOMOD    EQU      X'00000300'                                                   
NOASS    EQU      X'000000C0'                                                   
NOBIN    EQU      X'00000030'                                                   
NOLMH    EQU      X'0000000C'                                                   
NOEOF    EQU      X'00000003'                                                   
MODEND   EQU      X'00000100'                                                   
ASSEND   EQU      X'00000040'                                                   
BINEND   EQU      X'00000010'                                                   
LMHEND   EQU      X'00000004'                                                   
EOFEND   EQU      X'00000001'                                                   
SEGEND   EQU      X'00400000'                                                   
*                        *OPLBS                                                 
OPLB:C   EQU      1                                                             
OPLB:OC  EQU      2                                                             
OPLB:LO  EQU      3                                                             
OPLB:LL  EQU      4                                                             
*                        *OVERLAY LOADER SEGMENT IDENTS                         
SEG:CCI  EQU      1                 CONTROL COMMAND INTERPRETER                 
SEG:PAS1 EQU      2                 PASS ONE                                    
SEG:PAS2 EQU      3                 PASS TWO                                    
SEG:MAP  EQU      4                 MAP                                         
SEG:DIAG EQU      5                 DIAGNOSTICS                                 
SEG:LIB  EQU      6                 LIBRARY SEARCH                              
CC1      EQU      8                 CONDITION CODE 1                            
CC2      EQU      4                 CONDITION CODE 2                            
CC3      EQU      2                 CONDITION CODE 3                            
CC4      EQU      1                 CONDITION CODE 4                            
*                        *DIAGNOSTICS                                           
CCITEM   EQU      1           CC ERR:ITEM XX                                    
OCCITEM  EQU      2           CC ERR:ITEM XX  (OLOAD)                           
OCCFITEM EQU      4           CC ERR:FOLLOWING ITEM XX (OLOAD)                  
CCFITEM  EQU      3           CC ERR:FOLLOWING ITEM XX                          
CCORDER  EQU      5           CC ERR:ILLEGAL ORDER                              
CCIDENT  EQU      6           CC ERR:SEG IDENT NOT 1ST OPTION                   
CCDUPNAM EQU      7           CC ERR:DUP NAME IN ITEM XX                        
CCSEGORD EQU      8           CC ERR:SEG'S ORDERED INCORRECTLY                  
CCDUPSEG EQU      9           CC ERR:DUP SEG IDENT                              
CCUNDSEG EQU      10          CC ERR:SEG IDENT UNRECOGNIZED                     
CCUNDSYM EQU      11          CC ERR:UNDEFINED SYMBOL IN ITEM XX                
OCCFORE  EQU      12          CC ERR:NEED (FORE,FWA,LWA) OPT FOR PUBLIB         
OCCTEMP  EQU      13          CC ERR:ILLEGAL OPT FOR PUBLIB (TEMP,VAL)          
OCCLINKS EQU      14          CC ERR:ILLEGAL OPT FOR PUBLIB (GO,LINKS)          
OCCTASKS EQU      15          CC ERR:ILLEGAL OPT FOR PUBLIB (TASKS,VAL)         
OCCPUBL  EQU      16          CC ERR:ILLEGAL OPT FOR PUBLIB (PUBL,NAME)         
CHKSUM   EQU      17          ROM ERR:CHKSUM                                    
SEQERR   EQU      18          ROM ERR:BAD SEQ                                   
LOADITEM EQU      19          ROM ERR:ILL LOAD ITEM                             
OBJFORMT EQU      20          ROM ERR:NOT OBJ LANGUAGE                          
NOTSTBIN EQU      21          ROM ERR:NOT STANDARD BIN                          
NOMODEND EQU      22          ROM ERR:NO MODULE END                             
TEXOFLO  EQU      23          ROM ERR:EXPRESSION SIZE EXCEEDS MAX               
RFUND    EQU      24          CC ERR:UNDEFINED FILE                             
RFUND2   EQU      25          CC ERR:UNDEFINED FILE                             
EOFONCC  EQU      26          UNEXPECTED MONITOR CC ON TTYDD                    
ILLEOD   EQU      27          UNEXPECTED EOD ON DEVICE/FILE                     
ILLEOD2  EQU      28          UNEXPECTED EOD ON DEVICE/FILE                     
BOTERR   EQU      29          BOT ON DEVICE/FILE                                
EOTERR   EQU      30          EOT ON DEVICE/FILE                                
EOTERR2  EQU      31          EOT ON DEVICE/FILE                                
IRRECRD  EQU      32          UNRECOVERABLE RD ERR ON DEVICE/FILE               
IRRECWR  EQU      33          UNRECOVERABLE WR ERR ON DEVICE/FILE               
TINYBUFF EQU      34          BUF SMALLAR THAN DATA RECD                        
RONGDCB  EQU      35          DCB HAS BAD PARAMETERS                            
NORADFIL EQU      36          UNDEFINED FILE AA,XXXXXXXX (IN DCB)               
DCBNODEV EQU      37          DCB NOT ASSIGNED                                  
READOUTP EQU      38          READING AN OUTPUT DEVICE                          
WRITEINP EQU      39          WRITING ON INPUT DEVICE                           
NOOPDCBW EQU      40          DCB HAS INSUFFICIENT INFO                         
NOOPDCBR EQU      41          DCB HAS INSUFFICIENT INFO                         
PROGERR  EQU      42          PROGRAM ERROR,OLAY,ADDR XXXXX                     
DCBCLOSE EQU      43          PROGRAM ERROR,OLAY,SB=XX,ADDR XXXXX               
DCBOPEN  EQU      44          PROGRAM ERROR,OLAY,SB=XX,ADDR XXXXX               
NONREAL  EQU      45          PROGRAM ERROR,OLAY,SB=XX,ADDR XXXXX               
INVBUFF  EQU      46          PROGRAM ERROR,OLAY,SB=XX,ADDR XXXXX               
REREADCC EQU      47          PROGRAM ERROR,OLAY,SB=XX,ADDR XXXXX               
ILLDCB   EQU      48          WARNING:ILL DCB NAME                              
ILLDCB2  EQU      49          WARNING:DCB IN OVERLAY SEG                        
LCOMSIZE EQU      50          LCOM XXX OF SIZE XX GR. THAN ALLOCATED            
DCBADR   EQU      51          WARNING:ILL DCB ADDR                              
PUBLIB5  EQU      52          DSECT'S IN PUBLIB LOAD                            
PLENGTH  EQU      53          BIAS TOO LARGE                                    
BACKSIZE EQU      54          BACKGROUND TOO SMALL                              
TABOFLO  EQU      55          BACKGROUND TOO SMALL                              
MOUNTPT  EQU      56          MOUNT PAPER TAPE ROM                              
FULLRFT  EQU      57          RAD FILE TABLE FULL                               
RADWP    EQU      58          TTYDD WRT PROT                                    
UPREF    EQU      59          WARNING:UNSATISFIED REF'S                         
DUPLDEFS EQU      60          WARNING:DUPLICATE DEF'S                           
UNDEFDEF EQU      61          WARNING:UNDEFINED DEF'S                           
UNDEFORG EQU      62          UNDEFINED ORIGIN                                  
ILLORG   EQU      63          ILLEGAL ORIGIN XXXXX                              
FLDOFLO  EQU      64          WARNING:FIELD OVERFLOW AT ADDR XXXXX              
NOSTART  EQU      65          WARNING:NO START ADDR FOR ROOT                    
SEG16K   EQU      66                SEG GT 16K-1                                
ABORT    EQU      67          FILE DESTROYED AA,FFFFFFFF                        
ABORT2   EQU      68          FILE UNCHANGED AA,FFFFFFFF                        
EXCLIM   EQU      69          WARNING:PROGRAM EXCEEDS SPEC ADDR LIMITS          
UNDEFRLC EQU      70          PROGRAM ERROR:UNALLOCATED CONTROL SECT            
UNDEFDCB EQU      71          WARNING:UNALLOCATED DEFID DCB                     
OCCAREA  EQU      72          CC ERR:SPECIFIED AREA FOR PUBLIB NOT 'FP'         
UNDEFST  EQU      73          WARNING:UNDEFINED START ADDR                      
ILLSTRT  EQU      74          WARNING:START ADDR XXXXX OUTSIDE SEGMENT          
CCMODORD EQU      83          ILL ORDER: MODIFY CC IGNORED                      
DCBDSECT EQU      87                DCB CANNOT BE A DSECT                  101  
DSECTDEF EQU      92                DSECT DUPLICATES A DEF                      
SYM2BIG  EQU      96                SYMBOL TABLE OVERFLOW                       
         TITLE    ' **** DYNAMIC TABLE AREA POINTERS ****'                      
*                                                                               
*                       *THE FOLLOWING TABLES AREAS ARE DYNAMICALLY             
*                        ALLOCATED (DURING PASSONE) AND ARE LOCATED             
*                        BETWEEN THE END OF THE LOGEST OVERLAY                  
*                        (K:PEND) AND THE END OF BACKGROUND (K:BACKEND).        
*                       *THE EQUATED VALUES ARE INDICES INTO T:FBA,             
*                        T:LBA,T:NBE,AND T:BZA.                                 
*                                                                               
T:PUBVAL EQU      1      PUBLIC LIBRARY DEF VALUE TABLE                         
*                            *5 BYTES PER ENTRY                                 
*                            *ENTRIES PARALLEL TO T:PUBSYM ENTRIES              
*                                                                               
*                                                                               
T:PUBSYM EQU      2      PUBLIC LIBRARY DEF EBCDIC NAME TABLE                   
*                            *VARIABLE SIZED ENTRIES                            
*                            *ENTRIES PARALLEL TO T:PUBVAL ENTRIES              
*                                                                               
*                                                                               
*                                                                               
T:VALUE  EQU      3     *PROGRAM SYMBOL TABLE VALUES (ADDR,CONSTANT,OR E        
*                        (SYMBOL TABLE HAS DEFS,DSECTS,AND FORWARD REFS)        
*                            *5 BYTES PER ENTRY                                 
*                            *ENTRIES PARALLEL TO T:SYMBOL                      
*                                                                               
*                                                                               
T:SEG    EQU      4      SEGMENT INFORMATION TABLE                              
*                            *9 WORDS PER ENTRY                                 
*                            *ONE ENTRY PER SEGMENT                             
*                                                                               
T:DCBV   EQU      5      TABLE OF VARIABLE DCB'S                                
*                            *7 WORDS PER ENTRY                                 
*                            *ONE DCB FOR EACH DISTINCT RAD FILE                
*                             SPECIFIED FOR ROM INPUT                           
*                                                                               
T:DCB    EQU      6     *TABLE OF SYSTEM (M:) AND USER (F:) DCB                 
*                        DEF'S AND  REF'S                                       
*                            *3 WORDS PER ENTRY                                 
*                                                                               
T:ROMI   EQU      7     *ROM INPUT INFORMATION TABLE;CONTAINS THE               
*                        NUMBER OF ROM'S TO INPUT AND THE INPUT SOURCE.         
*                        (TABLE ONLY EXIST DURING PASSONE)                      
*                            *1 WORD PER ENTRY                                  
*                                                                               
T:MODIFY EQU      8     *TABLE OF CORE IMAGE MODIFICATIONS FOR THE              
*                        SEGMENT                                                
*                            *VARIABLE SIZED ENTRIES                            
*                                                                               
T:MODULE EQU      9      MODULE INFORMATION TABLE                               
*                            *5 WORDS PER ENTRY                                 
*                            *ONE ENTRY PER MODULE                              
*                                                                               
B:MT     EQU      10    *MODULE TABLES BUFFER FOR T:DECL,T:CSECT,T:FWD          
*                        AND T:FWDX; BUFFER OUTPUT EITHER AT THE END            
*                        OF THE SEGMENT OR WHEN THE BUFFER IS FULL.             
*                                                                               
T:DECL   EQU      11    *MODULE DECLARATION TABLE; EACH DECLARATION             
*                        ENTRY POINTS TO AN ENTRY IN (1) T:DCB,                 
*                        (2) T:SYMBOL/T:VALUE,(3) T:CSECT, OR                   
*                        (4) T:PUBSYM/T:PUBVAL                                  
*                            *2 BYTES PER ENTRY                                 
*                                                                               
T:CSECT  EQU      12    *CONTROL SECTION TABLE; EACH ENTRY CONTAINS             
*                        SIZE AND ALLOCATED ADDRESS.                            
*                            *2 WORDS PER ENTRY                                 
*                                                                               
T:FWD    EQU      13    *FORWARD TABLE; EACH ENTRY CONTAINS A FORWARD           
*                        NUMBER AND IT'S CORRESPONDING VALUE. A VALUE           
*                        CAN BE AN ADDR, CONSTANT, OR AN EXPRESSION.            
*                            *2 WORDS PER ENTRY                                 
T:FWDX   EQU      14     FORWARD EXPRESSION TABLE                               
*                            *VARIABLE SIZED ENTRIES                            
*                                                                               
T:SYMBOL EQU      15    *PROGRAM SYMBOL TABLE EBCDIC NAMES AND DSECT            
*                        SIZES; ENTRIES PARALLEL TO T:VALUE ENTRIES             
*                            *VARIABLE SIZED ENTRIES                            
*                                                                               
T:VALX   EQU      16    *T:VALUE EXPRESSION TABLE; BACKWARD TABLE               
*                        WITH FORWARD ENTRIES,BUILT FROM K:BACKEND              
*                            *VARIABLE SIZED ENTRIES                            
*                                                                               
*                                                                               
FBA:PUBV EQU      T:FBA+T:PUBVAL                                                
FBA:PUBS EQU      T:FBA+T:PUBSYM                                                
FBA:VALU EQU      T:FBA+T:VALUE                                                 
FBA:SEG  EQU      T:FBA+T:SEG                                                   
FBA:DCBV EQU      T:FBA+T:DCBV                                                  
FBA:DCB  EQU      T:FBA+T:DCB                                                   
FBA:ROMI EQU      T:FBA+T:ROMI                                                  
FBA:MODF EQU      T:FBA+T:MODIFY                                                
FBA:MODL EQU      T:FBA+T:MODULE                                                
FBA:MTB  EQU      T:FBA+B:MT                                                    
FBA:DECL EQU      T:FBA+T:DECL                                                  
FBA:CSEC EQU      T:FBA+T:CSECT                                                 
FBA:FWD  EQU      T:FBA+T:FWD                                                   
FBA:FWDX EQU      T:FBA+T:FWDX                                                  
FBA:SYM  EQU      T:FBA+T:SYMBOL                                                
FBA:VALX EQU      T:FBA+T:VALX                                                  
BDP:PUBV EQU      T:BDP+T:PUBVAL                                                
BDP:PUBS EQU      T:BDP+T:PUBSYM                                                
BDP:VALU EQU      T:BDP+T:VALUE                                                 
BDP:SEG  EQU      T:BDP+T:SEG                                                   
BDP:DCBV EQU      T:BDP+T:DCBV                                                  
BDP:DCB  EQU      T:BDP+T:DCB                                                   
BDP:ROMI EQU      T:BDP+T:ROMI                                                  
BDP:MODF EQU      T:BDP+T:MODIFY                                                
BDP:MODL EQU      T:BDP+T:MODULE                                                
BDP:MTB  EQU      T:BDP+B:MT                                                    
BDP:DECL EQU      T:BDP+T:DECL                                                  
BDP:CSEC EQU      T:BDP+T:CSECT                                                 
BDP:FWD  EQU      T:BDP+T:FWD                                                   
BDP:FWDX EQU      T:BDP+T:FWDX                                                  
BDP:SYM  EQU      T:BDP+T:SYMBOL                                                
BAP:VALX EQU      T:BDP+T:VALX                                                  
LBA:PUBV EQU      T:LBA+T:PUBVAL                                                
LBA:PUBS EQU      T:LBA+T:PUBSYM                                                
LBA:VALU EQU      T:LBA+T:VALUE                                                 
LBA:SEG  EQU      T:LBA+T:SEG                                                   
LBA:DCBV EQU      T:LBA+T:DCBV                                                  
LBA:DCB  EQU      T:LBA+T:DCB                                                   
LBA:ROMI EQU      T:LBA+T:ROMI                                                  
LBA:MODF EQU      T:LBA+T:MODIFY                                                
LBA:MODL EQU      T:LBA+T:MODULE                                                
LBA:MTB  EQU      T:LBA+B:MT                                                    
LBA:DECL EQU      T:LBA+T:DECL                                                  
LBA:CSEC EQU      T:LBA+T:CSECT                                                 
LBA:FWD  EQU      T:LBA+T:FWD                                                   
LBA:FWDX EQU      T:LBA+T:FWDX                                                  
LBA:SYM  EQU      T:LBA+T:SYMBOL                                                
LBA:VALX EQU      T:LBA+T:VALX                                                  
NBE:PUBV EQU      T:NBE+T:PUBVAL                                                
NBE:PUBS EQU      T:NBE+T:PUBSYM                                                
NBE:VALU EQU      T:NBE+T:VALUE                                                 
NBE:SEG  EQU      T:NBE+T:SEG                                                   
NBE:DCBV EQU      T:NBE+T:DCBV                                                  
NBE:DCB  EQU      T:NBE+T:DCB                                                   
NBE:ROMI EQU      T:NBE+T:ROMI                                                  
NBE:MODF EQU      T:NBE+T:MODIFY                                                
NBE:MODL EQU      T:NBE+T:MODULE                                                
NBE:MTB  EQU      T:NBE+B:MT                                                    
NBE:DECL EQU      T:NBE+T:DECL                                                  
NBE:CSEC EQU      T:NBE+T:CSECT                                                 
NBE:FWD  EQU      T:NBE+T:FWD                                                   
NBE:FWDX EQU      T:NBE+T:FWDX                                                  
NBE:SYM  EQU      T:NBE+T:SYMBOL                                                
NBE:VALX EQU      T:NBE+T:VALX                                                  
BZA:PUBV EQU      T:BZA+T:PUBVAL                                                
BZA:PUBS EQU      T:BZA+T:PUBSYM                                                
BZA:VALU EQU      T:BZA+T:VALUE                                                 
BZA:SEG  EQU      T:BZA+T:SEG                                                   
BZA:DCBV EQU      T:BZA+T:DCBV                                                  
BZA:DCB  EQU      T:BZA+T:DCB                                                   
BZA:ROMI EQU      T:BZA+T:ROMI                                                  
BZA:MODF EQU      T:BZA+T:MODIFY                                                
BZA:MODL EQU      T:BZA+T:MODULE                                                
BZA:MTB  EQU      T:BZA+B:MT                                                    
BZA:DECL EQU      T:BZA+T:DECL                                                  
BZA:CSEC EQU      T:BZA+T:CSECT                                                 
BZA:FWD  EQU      T:BZA+T:FWD                                                   
BZA:FWDX EQU      T:BZA+T:FWDX                                                  
BZA:SYM  EQU      T:BZA+T:SYMBOL                                                
BZA:VALX EQU      T:BZA+T:VALX                                                  
         TITLE    '       **** SUBROUTINE CALLS ****'                           
*                                                                               
BAL      EQU      X'6A'             'BAL' OP CODE                               
*                                                                               
CHKBLANK COM,8,4,3,17  BAL,15,0,CHKBLANK                                        
INBYTS   COM,8,4,3,17  BAL,14,0,INBYTS                                          
LOADSEG  COM,8,4,3,17  BAL,15,0,LOADSEG                                         
RABORT   COM,8,4,3,17    BAL,14,0,RABORT                                        
RAREABC  COM,8,4,3,17    BAL,15,0,RAREABC                                       
MAPSYM   COM,8,4,3,17  BAL,12,0,MAPSYM                                          
MOVBYTS  COM,8,4,3,17  BAL,15,0,MOVBYTS                                         
PRINTSYM COM,8,4,3,17  BAL,15,0,PRINTSYM                                        
BLNKSUPR COM,8,4,3,17  BAL,13,0,BLNKSUPR                                        
RDIAG    COM,8,4,3,17  BAL,15,0,RDIAG                                           
HEXTOEBD COM,8,4,3,17  BAL,13,0,HEXTOEBD                                        
DECHEX   COM,8,4,3,17  BAL,13,0,DECHEX                                          
HEADER   COM,8,4,3,17  BAL,15,0,HEADER                                          
PRINTLO  COM,8,4,3,17  BAL,14,0,PRINTLO                                         
PREPFLD  COM,8,4,3,17  BAL,15,0,PREPFLD                                         
ADDNXT   COM,8,4,3,17     BAL,14,0,ADDNXT                                       
ADDX     COM,8,4,3,17     BAL,14,0,ADDX                                         
ALLOCOMN COM,8,4,3,17     BAL,14,0,ALLOCOMN                                     
BLDCSECT COM,8,4,3,17    BAL,13,0,BLDCSECT                                      
BOUNDRDW COM,8,4,3,17     BAL,15,0,BOUNDRDW                                     
         DO       #MAP~=0                                                       
BOUNDRP  COM,8,4,3,17  X'6A',15,0,BOUNDRP                                       
         FIN      #MAP~=0                                                       
BOUNDCS  COM,8,4,3,17    BAL,15,0,BOUNDCS                                       
DWBOUND  COM,8,4,3,17     BAL,15,0,DWBOUND                                      
COMPBS   COM,8,4,3,17     BAL,15,0,COMPBS                                       
COMPSIZE COM,8,4,3,17    BAL,14,0,COMPSIZE                                      
CONVROMX COM,8,4,3,17     BAL,13,0,CONVROMX                                     
DCBTYPE  COM,8,4,3,17     BAL,15,0,DCBTYPE                                      
EXTEND   COM,8,4,3,17     BAL,15,0,EXTEND                                       
GETDECL  COM,8,4,3,17     BAL,14,0,GETDECL                                      
INCLFWDX COM,8,4,3,17     BAL,13,0,INCLFWDX                                     
LOADERR  COM,8,4,3,17     BAL,15,0,LOADERR                                      
ROMERR   COM,8,4,3,17     BAL,15,0,ROMERR                                       
MOVEMT   COM,8,4,3,17     BAL,14,0,MOVEMT                                       
NXTSEG   COM,8,4,3,17     BAL,13,0,NXTSEG                                       
PATHEND  COM,8,4,3,17     BAL,12,0,PATHEND                                      
RAX      COM,8,4,3,17     BAL,12,0,RAX                                          
READXN   COM,8,4,3,17     BAL,15,0,READXN                                       
WRITEXN  COM,8,4,3,17     BAL,15,0,WRITEXN                                      
RESETMTA COM,8,4,3,17     BAL,14,0,RESETMTA                                     
ROMBYTE  COM,8,4,3,17     BAL,15,0,ROMBYTE                                      
ROMBYTES COM,8,4,3,17     BAL,14,0,ROMBYTES                                     
SATREF   COM,8,4,3,17     BAL,13,0,SATREF                                       
SERCHDCB COM,8,4,3,17     BAL,14,0,SERCHDCB                                     
SERCHFWD COM,8,4,3,17     BAL,14,0,SERCHFWD                                     
SERCHSEG COM,8,4,3,17     BAL,15,0,SERCHSEG                                     
SERCHSYM COM,8,4,3,17     BAL,14,0,SERCHSYM                                     
SERCHPUB COM,8,4,3,17     BAL,14,0,SERCHPUB                                     
SERCHVAL COM,8,4,3,17     BAL,15,0,SERCHVAL                                     
SERCHX   COM,8,4,3,17     BAL,14,0,SERCHX                                       
SIZECS   COM,8,4,3,17     BAL,14,0,SIZECS                                       
SKIPX    COM,8,4,3,17     BAL,13,0,SKIPX                                        
SOLVEX   COM,8,4,3,17     BAL,13,0,SOLVEX                                       
CHGRR    COM,8,4,3,17     BAL,15,0,CHGRR                                        
STORCBV  COM,8,4,3,17     BAL,14,0,STORCBV                                      
SYMFBA   COM,8,4,3,17     BAL,15,0,SYMFBA                                       
TBENTRY  COM,8,4,3,17     BAL,15,0,TBENTRY                                      
WORD     COM,8,4,3,17     BAL,15,0,WORD                                         
WRITEMT  COM,8,4,3,17     BAL,14,0,WRITEMT                                      
XBC      COM,8,4,3,17    BAL,15,0,XBC                                           
ZERONXT  COM,8,4,3,17     BAL,14,0,ZERONXT                                      
ZEROX    COM,8,4,3,17     BAL,14,0,ZEROX                                        
4BYTES   COM,8,4,3,17     BAL,15,0,4BYTES                                       
SCAN1ST  COM,8,4,3,17    BAL,14,0,SCAN1ST                                       
SCANEBC  COM,8,4,3,17    BAL,14,0,SCANEBC                                       
SCANHEX  COM,8,4,3,17    BAL,14,0,SCANHEX                                       
SCANHE   COM,8,4,3,17    BAL,14,0,SCANHE                                        
SCANDEC  COM,8,4,3,17    BAL,14,0,SCANDEC                                       
SCANDE   COM,8,4,3,17    BAL,14,0,SCANDE                                        
SCANFILE COM,8,4,3,17     BAL,13,0,SCANFILE                                     
SCANSYM  COM,8,4,3,17     BAL,13,0,SCANSYM                                      
SCAN     COM,8,4,3,17     BAL,15,0,SCAN                                         
LBOPTION COM,8,4,3,17     BAL,13,0,LBOPTION                                     
RDCC     COM,8,4,3,17    BAL,14,0,RDCC                                          
         TITLE    '       **** HEX CONSTANTS ****'                              
OLAYONE  EQU      %                                                             
X:DVCFLB DATA     D+V+C+F+LB                                                    
X:1      DATA     X'1'                                                          
X:FB     DATA     X'FB'                                                         
X:FFFFF  DATA     X'FFFFF'                                                      
X:TYD    DATA     TY+D                                                          
Y:DV     DATA,1   D+V,0,0,0                                                     
X:7FFFF  DATA     X'7FFFF'                                                 101  
Y:008    DATA     X'00800000'                                                   
Y:84     DATA     X'84000000'                                                   
*                                                                               
COMMON   DATA,1   7                                                             
         DATA,6   'F4:COM'                                                      
         BOUND    4                                                             
         TITLE    '       **** PASSONE ****'                                    
PASSONE  RES      0                                                             
ONE05    EQU      %                                                             
         LW,R0    FL:MODF           HAVE MODIFY COMMANDS BEEN INPUT             
         BNEZ     ONE760                YES                                     
         LI,R2    0                     NO,SET T:ROMI POINTER TO ZERO           
         B        ONE12                                                         
ONE10    LW,R2    NBE:ROMI          POINT TO NEXT T:ROMI ENTRY                  
         AW,R2    BEPROMI                                                       
ONE12    STW,R2   BEPROMI                                                       
         CW,R2    BDP:ROMI          END OF T:ROMI (ROM INPUT TABLE)             
         BE       ONE700                YES,ALL ROMS INPUT FOR SEGMENT          
         BG       ONE225                PAST END,ERROR                          
ONE20    LW,R2    BEPROMI               NO,CALCULATE WORD ADDR OF ENTRY         
         AW,R2    FBA:ROMI                                                      
         SLS,R2   -2                                                            
         LH,R0    *R2               NUMBER OF ROMS LEFT TO PROCESS              
         BLZ      ONE50                 UNTIL EOD ENCOUNTERED                   
         BEZ      ONE10             B IF NO MORE                                
*                                                                               
ONE40    MTH,-1   *R2               REDUCE NUMBER-OF-ROMS-TO-INPUT COUNT        
ONE50    LI,R1    T:MODULE                                                      
         ZERONXT                    ZERO NEXT ENTRY IN T:MODULE AND             
         SLS,R5   -2                WORD ADDRESS OF T:MODULE ENTRY              
         LW,R12   FL:LBLD           RETURN BA IN R5                             
         BNEZ     ONE70                 ROM TO BE INPUT VIA F:MODULE            
         BOUNDCS                    START MODULE ON BOUND SPECIFIED             
         LW,R0    0,R2              GET T:ROMI ENTRY                            
         SLS,R0   19                ALIGN ROM MEDIUM FIELD                      
         LI,R1    X'4000'                                                       
         LS,R0    0,R2              PICK UP PACK FLAG                           
         STW,R0   0,R5              SET T:MODULE ENTRY WORD 0                   
         B        ONE90                                                         
*                                                                               
ONE70    RES      0                                                             
         AI,R12   14**3             F:MODULE IS IO MEDIUM                       
         LW,R0    0,R2              T:ROMI ENTRY (RECORD NR IN HW1)             
         STH,R12  R0                                                            
         STW,R0   0,R5              SET T:MODULE ENTRY WORD 0                   
         DWBOUND                    LOAD STARTING AT A DW BOUND                 
ONE90    RES      0                                                             
         LI,R0    0                                                             
         LI,R1    1                                                             
         STH,R0   *R2,R1            ZERO IO MEDIUM ID FOR REPEAT                
*                                   LOADS FROM THIS MEDIUM                      
         RESETMTA                                                               
*                                   POINTERS TO START AT FBA:MTB &              
*                                   BDP:MTB                                     
         LI,R1    T:DECL           *CLEAR ENTRY ZERO IN T:DECL                  
         ZERONXT                    (STANDARD CONTROL SECTION DECLARATN)        
         LW,R0    NBE:DECL                                                      
         STW,R0   BDP:DECL                                                      
ONE92    EQU      %                                                             
         LI,R0    0                 SET UP ROMBYTE CALL                         
         STW,R0   V:DECLNO             *RESET DECLARATIONS-ENCOUNTERED          
*                                       COUNTER                                 
         LI,R8    ONE95                 ADDR IF EOD ENCOUNTERED                 
         BAL,R15  NXTROM            SET UP FOR NEXT ROM INPUT                   
         B        ONE100                                                        
*                                                                               
*        ROMBYTE RETURNS HERE ON EOD ENCOUNTERED                                
*                                                                               
ONE95    LW,R2    BEPROMI           EOD ENCOUNTERED INSTEAD OF ROM              
         AW,R2    FBA:ROMI                                                      
         SLS,R2   -2                                                            
         MTH,5    *R2                   WAS INPUT UNTIL EOD SPECIFIED           
         BEZ      ONE20                     YES,GET NEXT T:ROMI ENTRY           
         LW,R0    FL:GO                 WAS 'GO,LINKS'SPECIFIED                 
         BLZ      ONE96                      YES,PROGRAM END                    
         LI,R9    ILLEOD                    NO,ILLEGAL EOD ENCOUNTERED          
         RDIAG                                                                  
         B        ONE92                      (REREAD)                           
ONE96    LW,R0    V:CCTYPE              IS THERE A :MODIFY CC IN B:C            
         CI,R0    :MODIFY                                                       
         BE       ONE97             BRANCH IF MODIFY CC REMAINS                 
         MTW,-1   V:NUSG            DECREMENT NR OF SEGS                        
         B        ONE810            BRANCH TO FINISH PASS1                      
ONE97    RES      0                                                             
         LI,R9    CCMODORD                  YES;MODIFY CC OUT-OF-ORDER,         
         RDIAG                                  OUTPUT ALARM AND RESET          
         LI,R0    0                             FLAGS SO THAT ONLY              
         STW,R0   V:CCTYPE                      :ASSIGN OR 'EOF' LEGAL          
         LW,R0    ONE98                         INPUT                           
         STW,R0   FL:NXTCC                                                      
         B        ONE810                                                        
*                                                                               
ONE98    DATA     X'3FFFFF31'           (:ASSIGN BITS FOR FL:NXTCC)             
         PAGE                                                                   
ONE100   ROMBYTE                    GET FIRST/NEXT BYTE IN ROM RECORD           
         CI,R8    X'80'             LOAD ITEM=                                  
         BGE      ONE170                      LOAD RELOCATABLE (SHORT)          
         CI,R8    X'60'                                                         
         BGE      ONE115                      ILLEGAL LOAD ITEM                 
         CI,R8    X'50'                                                         
         BGE      ONE180                      LOAD RELOCATABLE (LONG)           
         CI,R8    X'40'                                                         
         BGE      ONE190                      LOAD ABSOLUTE                     
         CI,R8    X'1E'             PSECT CONTROL BYTE                          
         BE       CC205             B IF ITEM IS PSECT                          
         CI,R8    X'13'                                                         
         BLE      ONE120                                                        
ONE115   LI,R9    LOADITEM                    ILLEGAL LOAD ITEM ABORT           
         RDIAG                                                                  
ONE120   LW,R7    R8                                                            
         B        ONE130,R7         BRANCH TO LOAD ITEM TYPE                    
ONE130   B        ONE100                      PADDING BYTE                      
         B        ONE115                      ADD CONSTANT                      
         B        ONE115                      EXPRESSION END                    
         B        ONE310                      DECLARE DEF                       
         B        ONE150                      DEFINE ORIGIN                     
         B        ONE320                      DECLARE PREF                      
         B        ONE330                      DECLARE SREF                      
         B        ONE140                      DEFINE FIELD                      
         B        ONE570                      DEFINE FORWARD                    
         B        ONE240                      DECLARE DUMMY SECTION             
         B        ONE510                      DEFINE DEF                        
         B        ONE210                      DECLARE STANDARD CS               
         B        ONE200                      DECLARE NONSTANDARD CS            
         B        ONE150                      DEFINE START                      
         B        ONE590                      MODULE END                        
         B        ONE160                      REPEAT LOAD                       
         B        ONE570                      DEFINE FWD AND HOLD               
         B        ONE582                      DEBUG EXT SYMBOL TYPE             
         B        ONE584                      DEBUG INT SYMBOL TYPE             
         B        ONE585                      DEBUG SYMBOL DECLARATION          
         PAGE                                                                   
ONE140   LI,R9    2                 DEFINE FIELD                                
         ROMBYTES                       SKIP ITEM (PROCESSED BY PASSTWO)        
ONE150   SKIPX                      DEFINE START,ORIGIN                         
         B        ONE100                SKIP EXPRESSION;GET NEXT ITEM           
ONE160   LI,R9    2                 REPEAT LOAD                                 
         B        ONE195                SKIP ITEM                               
ONE170   LI,R9    4                 LOAD RELOCATABLE(SHORT)                     
         B        ONE195                SKIP ITEM                               
ONE180   LI,R9    5                 LOAD RELOCATABLE (LONG)                     
         CI,R8    8                                                             
         BANZ     ONE195                SKIP ITEM (HAS ONE BYTE NAME NO)        
         LI,R9    6                     SKIP ITEM (HAS TWO BYTE NAME NO)        
         B        ONE195                SKIP ITEM                               
ONE190   LW,R9    R8                LOAD ABSOLUTE                               
         AND,R9   X:F                   SKIP ITEM                               
         BNEZ     ONE195                                                        
         LI,R9    16                                                            
ONE195   ROMBYTES                   SKIP PASSTWO LOAD ITEMS                     
         B        ONE100            GO GET NEXT BYTE IN ROM                     
         PAGE                                                                   
ONE200   MTW,1    V:DECLNO          DECLARE NONSTANDARD CONTROL SECTION         
         BLDCSECT                      *ALLOCATE CSECT AND BUILD                
         STH,R9   R2                    T:CSECT,T:DECL ENTRIES                  
         LI,R5    BA(R2)                                                        
         LI,R1    T:DECL                                                        
         ADDNXT                                                                 
         B        ONE100                                                        
CC205    LI,R8    X'7FF'            PROCESS PSECT ITEM                          
         CW,R8    NBA:SECT                                                      
         BAZ      ONE200            BRANCH IF ALREADY AT PAGE START             
         OR,R8    NBA:SECT                                                      
         AI,R8    1                 FORCE TO PAGE-START                         
         STW,R8   NBA:SECT          RESET NEXT LOAD LOC                         
         B        ONE200            FINISH PROCESSING AS A                      
*                                   NONSTD CONTROL SECT                         
         PAGE                                                                   
ONE210   LW,R4    FBA:DECL          DECLARE STANDARD CONTROL SECTION            
         SLS,R4   -1                                                            
         LH,R0    0,R4                  HAS STANDARD CSECT BEEN ALLOCATE        
         BNEZ     ONE220                                                        
         BLDCSECT                          NO,ALLOCATE AND BUILD T:CSECT        
         STH,R9   0,R4                        T:DECL ENTRIES                    
         B        ONE100                                                        
ONE220   SIZECS                            YES,GET SIZE AND INCREMENT           
         LW,R5    FBA:DECL                     CONTROL SECTION ADDRESS          
         TBENTRY                               COUNTER (NBA:SECT) AND           
         CI,R1    T:CSECT                      STORE SIZE IN T:CSECT ENT        
         BE       ONE230                                                        
ONE225   LI,R9    PROGERR                      PROGRAM ERROR,OUTPUT             
         RDIAG                                     ALARM AND ABORT              
ONE230   SLS,R5   -2                           WA OF T:CSECT ENTRY              
         LW,R0    1,R5                 *HAS A STANDARD CSECT BEEN               
*                                       PREVIOUSLY DEFINED                      
         BNEZ     ONE115                    YES,COMPILER ERROR                  
         STW,R3   1,R5                                                          
         AWM,R3   NBA:SECT                                                      
         B        ONE100                                                        
         PAGE                                                                   
ONE240   LW,R0    FL:PUBL           DECLARE DUMMY SECTION                       
         BEZ      ONE250                                                        
         LI,R9    PUBLIB5               DSECT IN PUBLIC LIBRARY,ERROR           
         RDIAG                                                                  
ONE250   RES      0                                                             
         GETDECL                    GET DECLARATION NR OF DEF                   
         MTW,1    V:DECLNO          POINTED BY DSECT AND STORE SAME             
         LI,R1    T:DECL                POINTED BY DSECT AND STORE SAME         
         ADDNXT                         POINTER IN DSECT T:DECL ENTRY           
*                                                                               
         TBENTRY                       *GET BA OF TABLE AREA AND ENTRY          
         LW,R2    R5                    POINTED BY DEF DECLARATION AND          
*                                       SAVE IN R2                              
         CI,R1    T:VALUE              *DOES DEF POINT TO ENTRY IN T:VAL        
         BE       ONE255                   *YES                            101  
         CI,R1    T:DCB                    *NO,IS DCB A DSECT              101  
         BNE      ONE225                          *NO,PROGRAM ERROR        101  
         LI,R9    DCBDSECT                        *YES,PROGRAMMER ERROR    101  
         RDIAG                                         ABORT               101  
ONE255   LB,R0    0,R2              TYPE AND FLAGS                              
         LW,R1    X:TY                                                          
         AND,R1   R0                TYPE ONLY                                   
         CI,R1    DEF                                                           
         BNE      %+3               B IF NOT DEF                                
         CI,R0    F                                                             
         BANZ     ONE305            B IF DUP DEF.  THIS MEANS                   
*                                   SYMBOL ALREADY IS A DEF.                    
*                                   SO CANT BE DSECT. (R9)=SYMBOL NR            
         SYMFBA                     GET BA OF T:SYMBOL ENTRY                    
         LW,R4    R5                    AND SAVE IN R4                          
         SIZECS                        *GET DSECT SIZE AND CREATE(IN R3)        
         LW,R5    R4                                                            
         OR,R3    Y:84                  T:SYMBOL CONTINUATION ENTRY             
         LB,R0    0,R2                 *GET T:VALUE CONTROL BYTE                
         AND,R0   X:TYD                                                         
         CI,R0    DSECT+ALLOCATD        HAS DSECT BEEN ALLOCATED                
         BE       ONE280                    YES                                 
         CI,R0    DEF+DEFINED           IS T:VALUE ENTRY A DEFINED DEF          
         BE       ONE225                    YES,PROGRAM ERROR                   
         AND,R0   X:TY                                                          
         CI,R0    DSECT                 IS T:VALUE ENTRY A DSECT                
         BE       ONE290                    YES                                 
         CI,R0    DEF                   IS T:VALUE ENTRY A DEF                  
         BNE      ONE225                    NO,PROGRAM ERROR                    
         LB,R0    0,R2                      YES,CHANGE DEF TO A DSECT           
         AND,R0   X:DVCFLB                  ENTRY                               
         AI,R0    DSECT                                                         
         STB,R0   0,R2                                                          
ONE260   LW,R8    FBA:SYM                      *IS THERE ROOM FOR               
         AW,R8    BDP:SYM                       CONTINUATION ENTRY              
         AI,R8 4                                IN T:SYMBOL                     
         CW,R8    LBA:SYM                                                       
         BL       ONE270                            YES                         
         LI,R1    T:SYMBOL                                                      
         LI,R8    4                                                             
         EXTEND                                     NO,EXTEND AREA              
         B        ONE260                                                        
ONE270   LB,R6    0,R5                         *MOVE FOLLOWING ENTRIES          
         AW,R5    R6                            IN T:SYMBOL DOWN TO             
         LW,R6    R5                            MAKE ROOM FOR CONTINUATI        
         AI,R6    4                             ENTRY                           
         AI,R8    -4                                                            
         SW,R8    R5                                                            
         MOVBYTS                                                                
         MTW,4    BDP:SYM                      *ADD CONTINUATION ENTRY          
         LW,R6    R5                                                            
         LI,R5    BA(R3)                                                        
         LI,R8    4                 STORE SIZE IN EXTENSION ENTRY               
         MOVBYTS                                                                
         B        ONE300            GO ALLOCATE THE DSECT                       
ONE280   LB,R5    0,R4                  DSECT ALLOCATED                         
         AW,R5    R4                       *IS SIZE OF NEW DSECT                
         COMPSIZE                           GREATER THAN SIZE OF                
*                                           ALLOCATED DSECT                     
         BLE      ONE100                        NO                              
         LW,R8    R3                                                            
         AND,R8   X:FFFFF           R8=SIZE OF DSECT                            
         LW,R10   R4                R10=BA OF DSECT T:SYMBOL ENTRY              
         LI,R9    LCOMSIZE                      YES,OUTPUT ALARM AND            
         RDIAG                                      CONTINUE                    
         B        ONE100                                                        
ONE290   RES      0                 PRIOR UNALLOCATED DSECT                     
         LI,R6    BA(COMMON)                                                    
         COMPBS                                                                 
         BNE      ONE295            B IF NOT BLANK COMMON                       
         LB,R6    0,R4                                                          
         AW,R6    R4                POINT AT EXTENSION ENTRY (SIZE)             
         COMPSIZE                                                               
         BLE      ONE100            DONE, IF NEW SIZE LESS THAN OLD             
*        SINCE ONLY ONE ENTRY FOR BLANK COMMON IS SAVED, WITH THE               
*        LARGEST SIZE DECLARED.  OTHER DSECTS HAVE A NEW ENTRY                  
*        FOR EACH DECLARATION, WITH THE SIZE FROM THAT DECLARATION.             
ONE295   LB,R6    0,R4                                                          
         AW,R6    R4                STORE SIZE IN                               
         LI,R5    BA(R3)                            CONTINUATION ENTRY          
         LI,R8    4                                                             
         MOVBYTS                                                                
         B        ONE100            DONE.  GET NEXT OBJECT ITEM                 
ONE300   LW,R5    R2                ALLOCATE DSECT                              
         DWBOUND                                                                
         LW,R9    NBA:SECT                                                      
         LI,R8    ALLOCATD+VALUE+ADDRESS                                        
         STORCBV                                                                
         AND,R3   X:FFFFF                                                       
         AWM,R3   NBA:SECT                                                      
         LW,R9    R2                                                            
         SW,R9    FBA:VALU                                                      
         DW,R9    NBE:VALU          T:VALUE ENTRY NR IN R9                      
         AI,R9    1                                                             
         SATREF                     SATISFY ALL PRIOR REFS TO DSECT             
         B        ONE100                                                        
*                                                                               
ONE305   RES      0                 SYMBOL DECLARED AS BOTH DSECT               
         LW,R10   R9                AND DEF.  SYMBOL NR IN R10                  
         LI,R9    DSECTDEF          ERROR CODE IN R9                            
         RDIAG                      ERR MSG AND ABORT                           
         PAGE                                                                   
ONE310   LI,R2    DEF               DECLARE DEF                                 
         B        ONE335                                                        
ONE320   LI,R2    PREF              DECLARE PREF                                
         B        ONE335                                                        
ONE330   LI,R2    SREF              DECLARE SREF                                
ONE335   AW,R2    FL:LBLD                                                       
         MTW,1    V:DECLNO                                                      
         ROMBYTE                        GET NUMBER OF BYTES IN NAME             
         AI,R8    1                                                             
         LW,R3    R8                                                            
         LI,R4    BA(B:X)              *MOVE EBCDIC NAME AND INCREMENTED        
         B        ONE345                BYTE COUNT TO B:X                       
ONE340   ROMBYTE                                                                
ONE345   STB,R8   0,R4                                                          
         AI,R4    1                                                             
         BDR,R3   ONE340                                                        
         LI,R8    X'40'                *EDIT TRAILING BLANKS AND                
         LB,R3    B:X                   ADJUST BYTE COUNT                       
         B        ONE355                                                        
ONE350   CB,R8    0,R4                                                          
         BNE      ONE360                                                        
ONE355   AI,R4    -1                                                            
         BDR,R3   ONE350                                                        
         B        ONE225                PROGRAM ERROR,NAME ALL BLANKS           
ONE360   AI,R3    1                                                             
         STB,R3   B:X                                                           
         LI,R5    BA(B:X)           IF SYMBOL IS F4:COM (BLANK                  
         LI,R6    BA(COMMON)        COMMON) UNCONDITIONALLY POINT               
         COMPBS                     ITS T:DECL ENTRY AT SYMBOL                  
         BNE      %+3               TABLE ENTRY 1 (BLANK COMMON                 
         LI,R9    X'4001'           DSECT ENTRY)                                
         B        ONE400                                                        
         CI,R3    3                 ONE-BYTE REF NAME                           
         BL       ONE370            B IF YES. CANT BE DCB                       
         LI,R5    BA(B:X)+1            *IS EBCDIC NAME A SYSTEM OR              
         LI,R6    BA(B:X)+2             USER DCB                                
         LB,R0    0,R6                                                          
         CI,R0    ':'                                                           
         BNE      ONE370                    NO                                  
         LB,R0    0,R5                                                          
         CI,R0    'M'                                                           
         BE       ONE470                    YES,SYSTEM DCB                      
         CI,R0    'F'                                                           
         BNE      ONE370                    NO                                  
         CI,R3    9                         YES,USER DCB...                     
         BG       ONE474                         *BUT NAME IS TOO LONG          
         BLE      ONE475                         *LEGAL NAME                    
ONE370   LI,R6    0                    (START SEARCH AT BEGINNING)              
         B        ONE385                                                        
ONE380   LI,R6    1                    (CONTINUE SEARCH)                        
ONE385   LI,R5    BA(B:X)                                                       
         SERCHSYM                      *SEARCH T:SYMBOL FOR MATCHING            
         CI,R6    0                     ENTRY                                   
         BNE      ONE410                    MATCH FOUND                         
         LB,R8    R2                                                            
         CI,R8    DSECT                                                         
         BE       ONE416            FOUND DSECT REF BUT NOT DSECT.              
*                                   DSECT WAS IN ANOTHER PATH.                  
         LI,R6    0                    *SEARCH PUBLIB SYMBOLS FOR               
         SERCHPUB                       MATCHING ENTRY                          
         CI,R6    0                                                             
         BNE      ONE410                    MATCH FOUND                         
ONE390   LI,R1    T:SYMBOL                  MATCH NOT FOUND                     
         LI,R5    BA(B:X)               ADD EBCDIC ENTRY TO T:SYMBOL            
         ADDNXT                                                                 
         LI,R1    T:VALUE              *ADD DEF/SREF/PREF ENTRY TO              
         LI,R3    0                     T:VALUE                                 
         LI,R5    BA(R2)+3                                                      
         ADDNXT                                                                 
ONE400   LW,R2    R9                   *STORE SYMBOL TABLE,PUBLIB,OR DCB        
         LI,R1    T:DECL                POINTER IN T:DECL ENTRY                 
         LI,R5    BA(R2)+2              FOR THIS DECLARATION                    
         ADDNXT                                                                 
         B        ONE100               GO GET NEXT LOAD ITEM IN ROM             
ONE410   EQU      %                    *DEF/SREF/RREF EBCDIC NAME EQUALS        
*                                       EITHER A DEF IN THE PUBLIB OR           
*                                       AN ENTRY IN THE SYMBOL TABLE            
         LB,R0    0,R7                 *R0=OLD DECLARATION TYPE                 
         AND,R0   X:TY                  R8=NEW DECLARATION TYPE                 
         LW,R8    R2                                                            
         AND,R8   X:TY                                                          
         CI,R0    DSECT                 IS OLD DECLARATION A DSECT              
         BNE      ONE430                    NO                                  
         LB,R0    0,R7              GET OLD DECL TYPE AND FLAGS                 
         CI,R0    ALLOCATD                                                      
         BAZ      ONE415            B IF UNALLOCATED DSECT                      
         LB,R1    0,R6                                                          
         AW,R1    R6                EXTENSION ENTRY                             
         LI,R3    X'FF'                                                         
         LI,R4    3                                                             
ONE411   AI,R1    1                                                             
         CB,R3    0,R1                                                          
         BNE      ONE400            B IF NOT DSECT REFERENCE.                   
         BDR,R4   ONE411                                                        
         CI,R8    DEF                                                           
         BNE      ONE380            IF NEW DECL IS REF, IGNORE OLD              
         LI,R4    DSECT                                                         
         STB,R4   R2                FLAG THAT DSECT REFERENCE FOUND.            
*                                   SHOULD LATER BE A DSECT                     
         B        ONE380            CONTINUE SEARCH                             
*                                                                               
ONE415   RES      0                 PRIOR UNALLOCATED DSECT                     
         CI,R8    DEF               OR ALLOC IN ANOTHER PATH                    
         BNE      ONE380            B IF NEW DECL IS REF, TO IGNORE             
*                                   OLD DSECT ENTRY                             
*        NEW DECL IS DEF.  BUILD AN UNALLOC DSECT ENTRY                         
ONE416   LI,R1    T:SYMBOL                                                      
         LI,R5    BA(B:X)           SYMBOL NAME                                 
         ADDNXT                     BUILD T:SYMBOL ENTRY                        
         LI,R5    BA(Y:84)                                                      
         ADDNXT                     EXTENSION ENTRY (DSECT SIZE 0)              
         LI,R1    T:VALUE                                                       
         LI,R2    UADSECT                                                       
         LI,R3    0                                                             
         LI,R5    BA(R2)+3                                                      
         ADDNXT                     BUILD T:VALUE ENTRY                         
         B        ONE400            GO BUILD T:DECL ENTRY                       
*                                                                               
ONE420   LOADERR                        DUPLICATE DEF                           
ONE422   AI,R2    DUPLICAT                                                      
         B        ONE390                                                        
ONE430   CI,R0    DEF                   IS OLD DECLARATION A DEF                
         BNE      ONE440                    NO                                  
         CI,R8    DEF                       YES,IS NEW DECLARATION A DEF        
         BNE      ONE400                            NO,MUST BE A REF            
*                                                   YES,BOTH DEF'S              
         LW,R0    FL:LBLD               IS NEW DECLARATION FROM LIBRARY         
         BNEZ     ONE400                    YES, NOT A DUPLICATE (RADEDI        
*                                               CHECKS TO SEE THAT NO           
*                                               DUPLICATE DEF'S IN LIB)         
         LB,R0    0,R7                  IS OLD DEF A DUPLICATE                  
         CI,R0    DUPLICAT                                                      
         BAZ      ONE420                    NO,MAKE NEW DEF A DUPLICATE         
         CI,R0    LB                        YES, IS OLD A DUP. LIB DEF          
         BAZ      ONE225                            NO, PROGRAM ERROR           
         B        ONE380                            YES,IGNORE                  
ONE440   LW,R6    FBA:SEG           OLD DECLARATION MUST BE A REF               
         AW,R6    BDP:SEG                                                       
         SLS,R6   -1                                                            
         LH,R6    3,R6                  (FBD OF THIS SEGMENT'S T:VALUE          
*                                        SUBTABLE)                              
         AW,R6    FBA:VALU                                                      
         CW,R7    R6                    IS OLD REF IN THIS SEGMENT              
         BL       ONE380                    NO,CONTINUE SEARCH                  
         CI,R8    DEF                       YES,IS NEW DECLARATION A DEF        
         BNE      ONE460                            NO,MUST BE A REF            
         LB,R0    0,R7                              YES,CHECK TO SEE            
         CI,R0    SATISFYD                              IF REF SATISFIED        
         BANZ     ONE225                PROGRAM ERROR ,CANT BE A                
*                                           DUPLICATE BECAUSE REF IN            
*                                           SAME SEGMENT                        
         AND,R0   X:TYDV                IS OLD AN EXCLUDED-PREF                 
         CI,R0    EXCLPREF                                                      
         BNE      ONE450                    NO,CHANGE TO DEF                    
         LW,R0    FL:LBLD                   YES,IS NEW A LIBRARY DEF            
         BNEZ     ONE422                           YES,DUPLICATE DEF            
*                                                      BUT NOT AN ERROR         
*                                                  NO ...                       
ONE450   STB,R2   0,R7                  CHANGE REF TO A DEF                     
         B        ONE400                                                        
ONE460   CW,R0    R8                    BOTH ARE REF'S                          
         BE       ONE400                    BOTH ARE SREF'S OR PREF'S           
         CI,R0    PREF                  IS OLD DECLARATION A PREF               
         BE       ONE400                    YES,DONT CHANGE                     
         BNE      ONE450                    NO,CHANGE TO PREF                   
         PAGE                                                                   
ONE470   LI,R5    BA(B:X)          *DEF/PREF/SREF DECLARATION IS A              
         LB,R6    0,R5              SYSTEM DCB                                  
         CI,R6    5                                                             
         BLE      ONE475            DCB NAME LENGTH OK                          
ONE474   LI,R9    ILLDCB                    NO,OUTPUT WARNING ALARM AND         
         RDIAG                                 PUT EBCDIC IN T:SYMBOL           
         B        ONE370                                                        
ONE475   LW,R8    R2                                                            
         AND,R8   X:TY                                                          
         CI,R8    DEF               IS THE DCB A DEF DECLARATION                
         BNE      ONE480                NO                                      
         LW,R0    V:SEGID               YES,IS DEF IN ROOT SEGMENT              
         BEZ      ONE480                        YES                             
         LI,R9    ILLDCB2                       NO,OUTPUT WARNING AND           
         RDIAG                                     PUT DCB IN T:SYMBOL          
         B        ONE370                                                        
ONE480   LI,R5    BA(B:X)           SEARCH T:DCB FOR MATCHING ENTRY             
         SERCHDCB                                                               
         LW,R8    R2                RESTORE R8                                  
         AND,R8   X:TY              MASK TYPE                                   
         CI,R6    0                     MATCHING ENTRY LOCATED                  
         BE       ONE500                    NO                                  
         LB,R0    0,R6                      YES,GET CONTROL BYTE                
         AND,R0   X:TY                          R0=OLD TYPE                     
         CI,R0    DEF                   IS OLD DCB A DEF                        
         BNE      ONE490                                                        
         CI,R8    DEF                       YES,IS NEW DCB A DEF                
         BNE      ONE400                           NO,MUST BE A REF             
         BE       ONE420                           YES,DUPLICATE;PUT IN         
*                                                      SYMBOL TABLE             
ONE490   CI,R8    DEF                       NO,MUST BE A REF                    
*                                              IS NEW DCB A DEF                 
         BE       ONE495                          YES,CHANGE TYPE OF OLD        
         CW,R0    R8                           SAME TYPE OF REF'S               
         BE       ONE400                          YES                           
         CI,R0    PREF                         IS OLD DCB A PREF                
         BE       ONE400                          YES                           
ONE495   STB,R2   0,R6                            NO,CHANGE TYPE                
         B        ONE400                                                        
ONE500   SCS,R2   -8                PUT DEF/REF DECLARATION IN T:DCB            
         LI,R1    T:DCB                                                         
         LI,R5    BA(R2)                                                        
         ADDNXT                                                                 
         B        ONE400                                                        
         PAGE                                                                   
ONE510   GETDECL                    DEFINE DEF                                  
         TBENTRY                       *GET POINTER TO DEF EBCDIC ENTRY         
*                                       IN T:SYMBOL/T:VALUE OR T:DCB            
         CI,R1    T:CSECT                                                       
         BE       ONE225                    PROGRAM ERROR,ENTRY IN CSECT        
         CI,R1    T:PUBVAL                                                      
         BE       ONE225                    PROGRAM ERR,ENTRY IN PUBVAL         
         LW,R12   R1                   (R12=TABLE AREA INDEX)                   
         LW,R4    R9                     (R4=DEF ENTRY NO.)                     
         LW,R2    R5                     (R2=FBA OF T:VALUE/T:DCB ENTRY)        
         LB,R0    0,R2                                                          
         AND,R0   X:TY                                                          
         CI,R0    DSECT                                                         
         BE       ONE305            B IF PREVIOUSLY A DSECT                     
         CI,R0    DEF                   DOES ENTRY TYPE EQUAL 'DEF'             
         BNE      ONE225                    NO,PROGRAM ERROR                    
         LB,R0    0,R2                  IS DEF ENTRY A DUPLICATE                
         CI,R0    DUPLICAT                                                      
         BANZ     ONE515                    YES,LEAVE DEF UNDEFINED             
         CI,R0    DEFINED               HAS DEF ALREADY BEEN DEFINED            
         BAZ      ONE520                    NO                                  
*                                           YES                                 
         LI,R1    LB                   *IS DEF DECLARATION FROM SAME            
         CS,R0    FL:LBLD               ROM SOURCE (ULIB,PLIB,OR PROG.)         
         BE       ONE225                    YES,PROGRAM ERROR                   
*                                           NO,IGNORE 2ND DEFINITION            
ONE515   SKIPX                         *SKIP ROM EXPRESSION                     
         B        ONE100                                                        
ONE520   CONVROMX                      *CONVERT ROM EXPRESSION TO               
*                                       T:VALX FORMAT AND STORE IN B:X          
         SOLVEX                        *RESOLVE EXPRESSION,IF POSSIBLE          
         LW,R3    R9                    (R3=VALUE,IF RESOLVED OR 0)             
         LB,R0    0,R2                                                          
         AND,R0   X:TYFLB              *SET DEFINED BIT; SET VALUE AND          
         OR,R0    R8                    CONSTANT BITS ACCORDING TO              
         STB,R0   0,R2                  RESULTS OF SOLVEX                       
         CI,R12   T:VALUE              *IS ENTRY IN T:VALUE OR T:DCB            
         BE       ONE545                    T:VALUE                             
*                                       T:DCB,IS RESOLVED VALUE A               
         CI,R0    CONSTANT                        CONSTANT                      
         BANZ     ONE530                              YES,ERROR                 
         AND,R9   Y:FFF8            DOES ADDR OVERFLOW     /SIG7-3806/*C015732  
         BEZ      ONE540                              NO                        
*                                                     YES                       
ONE530   LI,R9    DCBADR                         *OUTPUT WARNING AND            
         LW,R10   R2                R10=BA OF T:DCB ENTRY                       
         RDIAG                                    CONTINUE                      
ONE540   STB,R0   R3                             *CONTROL BYTE AND              
*                                                 VALUE IN T:DCB FORMAT         
         AI,R2    -1                                                            
ONE545   CI,R6    0                     WAS THE EXPRESSION RESOLVED             
         BE       ONE560                    YES                                 
         LI,R1    T:VALX                    NO,ADD TO T:VALX                    
         ADDX                                                                   
         OR,R3    R6                    R3=CONTROL BYTE IN BITS 0-7,IF T        
*                                          AND T:VALX BAD IN BITS 13-31         
ONE560   LW,R9    R3                   *STORE VALUE/T:VALX POINTER              
         LW,R5    R2                    IN ENTRY (AND CONTROL BYTE,IF           
         WORD                           T:DCB ENTRY)                            
         CI,R12   T:VALUE                                                       
         BNE      ONE100                                                        
         LB,R0    0,R2                 *DID T:VALUE DEF'S EXPRESSION            
         CI,R0    VALUE                 GET RESOLVED                            
         BAZ      ONE100                    NO                                  
         LW,R9    R4                        YES,SATISFY ALL REF'S IN            
         SATREF                                 T:SYMBOL THAT CORRESPOND        
         B        ONE100                        TO DEF NAME                     
         PAGE                                                                   
ONE570   ROMBYTE                    DEFINE FORWARD (AND HOLD)                   
         STB,R8   R2                                                            
         ROMBYTE                                                                
         LI,R4    1                                                             
         STB,R8   R2,R4                (FWD NO. IN HW0 OF R2)                   
         CONVROMX                      *CONVERT ROM EXPRESSION TO               
*                                       T:FWDX FORMAT AND STORE IN B:X          
         SOLVEX                        *RESOLVE EXPRESSION,IF POSSIBLE          
         STH,R8   R2,R4                *CREATE T:FWD ENTRY IN R2,R3             
         LW,R3    R9                                                            
         CI,R6    0                     WAS THE EXPRESSION RESOLVED             
         BE       ONE580                    YES                                 
         LI,R1    T:FWDX                    NO,STORE IN T:FWDX                  
         ADDX                                                                   
         LW,R3    R6                           (R3=BDP OF EXP. IN T:FWDX        
ONE580   LI,R1    T:FWD                 ADD FORWARD ENTRY TO T:FWD              
         LI,R5    BA(R2)                                                        
         ADDNXT                                                                 
         B        ONE100                                                        
         PAGE                                                                   
ONE582   LI,R9    2                 IGNORE DEBUG EXTERNAL SYMBOL TYPE           
         LW,R10   V:DECLNO                                                      
         CI,R10   256                                                           
         BL       ONE583                                                        
         AI,R9    1                                                             
ONE583   ROMBYTES                      *SKIP TYPE AND ONE OR TWO BYTE           
         B        ONE100                DECLARATION NO.                         
         PAGE                                                                   
ONE584   ROMBYTE                    IGNORE DEBUG INTERNAL SYMBOL TYPE           
         ROMBYTE                        SKIP TYPE AND GET NO. OF EBCDIC         
         LW,R9    R8                                                            
         ROMBYTES                       SKIP EBCDIC                             
         SKIPX                          SKIP EXPRESSION                         
         B        ONE100                                                        
         PAGE                                                                   
ONE585   ROMBYTE                    IGNORE DEBUG SYMBOL LOAD ITEMS              
         LW,R9    R8                    (COUNT OF EBCDIC)                       
         AI,R9    2                     (FORWARD NO. BYTES)                     
         ROMBYTES                       SKIP EBCDIC AND FORWARD NO.             
         B        ONE100                                                        
         PAGE                                                                   
ONE590   ROMBYTE                    MODULE END                                  
         LW,R0    FL:RTYPE                                                      
         BNEZ     ONE115                NOT LAST ROM RECORD, ERROR              
         CI,R8    0                     IS SEVERITTY ERROR FLAG SET             
         BE       ONE600                    NO                                  
         ROMERR                             YES,SET FLAGS                       
ONE600   RES      0                                                             
         RAX                        RESOLVE ANY EXPRESSIONS POSSIBLE            
         CI,R10   0                         ANY EXP. LEFT TO RESOLVE       101  
         BE       ONE650                       NONE IN T:VALX              101  
         LI,R6    0                                                             
ONE610   LI,R10   DEF+DEFINED+EXP      *SEARCH T:VALUE FOR ENTRIES              
         LI,R11   TY+D+V                     WITH UNRESOLVED EXPRESSIONS        
         SERCHVAL                                                               
         CI,R6    0                        END OF T:VALUE                       
         BE       ONE650                       YES                              
         LW,R2    R6                (FBA OF MATCHING T:VALUE ENTRY)             
         LI,R5    -4                    GET BAP OF EXPRESSION IN T:VALX         
ONE620   AI,R6    1                                                             
         LB,R0    0,R6                                                          
         STB,R0   R4+1,R5                                                       
         BIR,R5   ONE620                                                        
         LW,R3    R4                (R3=FBA OF EXPRESSION)                      
ONE625   SERCHX                        *SEARCH EXPRESSION FOR 'ADD/SUBT         
*                                       VALUE OF FWD' ITEM OR 'ADD/SUBT    101  
*                                       VALUE OF T:CSECT ' ENTRY           101  
         CI,R8    1                         EXPRESSION END ITEM LOCATED         
         BE       ONE630                        YES                             
         CI,R1    T:CSECT                                                  101  
         BE       ONE627                                                   101  
         LW,R7    R4          (R4=BA OF 'ADD/SUBT VALUE OF FWD' ITEM)           
         AI,R7    1                                                             
         LB,R8    0,R7                                                          
         AI,R7    1                                                             
         LB,R9    0,R7                                                          
         SERCHFWD                   HAS THE FORWARD BEEN DEFINED                
         CI,R5    0                                                             
         BNE      ONE627                                                        
         LW,R5    R3                   *NO,ZERO EXPRESSION IN T:VALX            
         ZEROX                              AND CHANGE EXTERNAL TO              
         LW,R5    R2                       UNDEFINED                            
         LI,R8    UNDEFINE                                                      
         LI,R9    0                                                             
         STORCBV                                                                
         B        ONE630                                                        
ONE627   INCLFWDX                      *YES,INCLUDE FORWARD ITEM IN             
         B        ONE625                T:SYMBOL,T:VALUE,T:VALX                 
ONE630   LI,R6    1                                                             
         B        ONE610                CONTINUE SEARCH                         
ONE650   LW,R8    FBA:MTB                                                       
         AW,R8    BDP:MTB                                                       
         LI,R1    T:DECL                                                        
ONE660   AW,R8    T:BDP,R1             *COMPUTE LBA+1 OF MODULE TABLES          
         BOUNDRDW                       T:DECL,T:CSECT,T:FWD,T:FWDX             
         AI,R1    1                     WHEN PACKED TOGETHER DOUBLEWORD         
         CI,R1    T:DECL+4              BOUNDARIES AND MOVED TO B:MT            
         BL       ONE660                                                        
*                                      *WILL THIS SET OF MODULE TABLES          
*                                       FIT INTO THE MODULE TABLES'             
         CW,R8    LBA:MTB               BUFFER                                  
         BL       ONE680                    YES                                 
         LW,R0    BDP:MTB                   NO,IS THERE ANY DATA IN             
*                                              THE BUFFER                       
         BNEZ     ONE670                           YES                          
         MOVEMT                                    NO,MOVE DATA TO BUF          
         WRITEMT                                      AND OUTPUT ON M:X2        
         B        ONE690                                                        
ONE670   WRITEMT                       *WRITE MODULE TABLES BUF ON M:X2         
ONE680   MOVEMT                        *MOVE NEW SET OF TABLES TO BUFFER        
ONE690   EQU      %                                                             
         LW,R0    NBE:MODL          POINT TO NEXT T:MODULE ENTRY                
         AWM,R0   BDP:MODL                                                      
         B        ONE20                                                         
         PAGE                                                                   
ONE700   LI,R2    0                 SEGMENT END                                 
         STW,R2   BDP:ROMI              RESET T:ROMI POINTER                    
         STW,R2   BDP:DECL              RESET MODULE TABLES' POINTERS           
         STW,R2   BDP:CSEC                                                      
         STW,R2   BDP:FWD                                                       
         STW,R2   BDP:FWDX                                                      
         LW,R2    FBA:SEG          *HAS LBA+1 OF NON-LIBRARY PROGRAM            
         AW,R2    BDP:SEG           LENGTH BEEN SAVED                           
         SLS,R2   -2                                                            
         LW,R0    8,R2                                                          
         BNEZ     ONE705               *YES                                     
         LCW,R0   NBA:SECT             *NO,STORE COMPLEMENT IN T:SEG            
         STW,R0   8,R2                     ENTRY                                
ONE705   LW,R0    3,R2              DOES THIS SEG HAVE ANY EXTERNALS            
         LH,R0    R0                                                            
         SW,R0    BDP:VALU                                                      
         BEZ      ONE720                NO,SKIP LIB SEARCHES (IF ANY)           
         LW,R2    FL:LBPAS                                                      
         MTW,1    FL:LBPAS              BUMP LIBRARY PASS COUNTER               
         CI,R2    1                 WHICH LIBRARY SEARCH                        
         BG       ONE720                    2ND SEARCH FINISHED                 
ONE710   LB,R8    FL:LIB,R2            *GET AREA OF LIB TO SEARCH AND           
         BEZ      ONE720               (NO LIB SEARCH SPECIFIED)                
         STW,R8   FL:LBLD               STORE IN LIBRARY FILES' DCB'S           
         AI,R8    -1                                                            
         SCS,R8   8                                                             
         LI,R7    F:MODIR                                                       
         DCBTYPE                                                                
         LI,R7    F:EBCDIC                                                      
         DCBTYPE                                                                
         LI,R7    F:DEFREF                                                      
         DCBTYPE                                                                
         LI,R11   SEG:LIB               CALL 'LIB' SEGMENT                      
         LOADSEG                                                                
ONE720   LW,R2    FBA:SEG          *CALCULATE BYTE LENGTH OF LIBRARY            
         AW,R2    BDP:SEG                                                       
         SLS,R2   -2                                                            
         LW,R0    NBA:SECT                                                      
         AWM,R0   8,R2                                                          
         LI,R3    S:MA                                                          
         LH,R6    *R2,R3            LOAD DW SEGMENT ORIGIN                      
         AND,R6   X:FFFF                                                        
         SLS,R6   3                 CONVERT TO BA                               
         SW,R0    R6                SUBTRACT FROM CURRENT END OF SEG            
         STW,R0   S:LL,R2           SAVE AS BL OF SEG LOAD MODULE IMAGE         
         LI,R6    0                                                             
ONE725   LI,R10   RES                 *SEARCH FOR RES DSECT'S TO                
         LI,R11   TY+D+V               ALLOCATE                                 
         SERCHVAL                                                               
         CI,R6    0                                                             
         BE       ONE730                   *FINISHED SEARCH                     
         LW,R2    R6                    (R2=FBA OF T:VALUE ENTRY)               
         SYMFBA                        *GET FBA OF T:SYMBOL ENTRY)              
         LW,R10   R9                SAVE T:SYMBOL ENTRY NUMBER                  
         LB,R0    0,R5                  (R5=FBA OF T:SYMBOL ENTRY)              
         AW,R5    R0                   *CALCULATE FBA OF CONTINUATION           
         LB,R0    0,R5                  ENTRY                                   
         CI,R0    X'80'                                                         
         BAZ      ONE225                    NOT CONTINUATION ENTRY,ERROR        
         LI,R6    BA(R3)                                                        
         LI,R8    4                                                             
         MOVBYTS                                                                
         AND,R3   X:FFFFF              R3=DSECT SIZE                            
         DWBOUND                       *ALLOCATE DSECT ON A DW BOUNDARY         
         LI,R8    DEFINED+VALUE+ADDRESS                                         
         LW,R5    R2                                                            
         LW,R9    NBA:SECT                                                      
         AWM,R3   NBA:SECT                                                      
         STORCBV                                                                
         LW,R9    R10               RESTORE T:SYMBOL ENTRY NUMBER               
         SATREF                     SATISFY REFERENCES                          
         LI,R6    1                     (CONTINUE SEARCH)                       
         B        ONE725                                                        
ONE730   BOUNDCS                                                                
         DWBOUND                                                                
         LW,R8    NBA:SECT                                                      
         DO       #MAP~=0                                                       
         LW,R9    FL:PRIM                                                       
         CI,R9    1                                                             
         BAZ      %+4               BRANCH IF NOT SECONDARY                     
         MTW,0    FL:SMM                                                        
         BNEZ     %+2               BRANCH IF SIMPLIFIED MEM MGT                
         BOUNDRP                    EXTEND TO PAGE BOUNDARY                     
         XW,R8    NBA:SECT                                                      
         FIN      #MAP~=0                                                       
         MTW,0    BDP:SEG                                                       
         BNEZ     ONE730A           B IF NOT ROOT1                              
         STW,R8   LBA:ROO1          SAVE DW END OF SEG, IN CASE                 
*                                   ROOT2 MUST LATER BE APPENDED                
*                                   TO ROOT1                                    
         MTW,0    FLG:ROO2          WAS EXLOC COMBINE SPECIFIED                 
         BGEZ     ONE730A           NO                                          
         LW,R8    NBA:SECT          YES, R2 STARTS VIRTUALLY BEHIND R1          
         STW,R8   FBA:ROO2                                                      
         LW,R8    FL:TEMP           YES, ESTIMATE ROOT2 LENGTH                  
         AW,R8    FL:RTMP                                                       
         AI,R8    4                                                             
         AW,R8    LML:ROO2          FOR DCBTAB, DCBS, OVLOAD TABLES             
         SLS,R8   LEFT*2                                                        
         BOUNDRP                                                                
         STW,R8   EBL:ROO2          ESTIMATED BYTE LENGHT:ROOT2                 
         AWM,R8   NBA:SECT          LEAVE ROOT2 VIRTUAL GAP                     
ONE730A  RES      0                                                             
         MTW,0    FL:PUBL                                                       
         BNEZ     ONE740            B IF PUBLIB. PROGRAM LIMITS                 
*                                   MUST INCLUDE PUBLIB ROOT AND SEG            
         LW,R8    BDP:SEG                                                       
         AW,R8    FBA:SEG                                                       
         SLS,R8   RIGHT*2           BA TO WA                                    
         LW,R2    R8                                                            
         LW,R0    S:SMSK                                                        
         CW,R0    S:FLAGS,R2                                                    
         BAZ      ONE740            B IF NOT A SHARABLE SEGMENT                 
         DO       #MAP=0                                                        
         LW,R0    FL:BACK                                                       
         BEZ      ONE750            FOR FGD, PROG LIMITS                        
*                                   WILL NOT BE FORCED TO INCLUDE               
*                                   SHARED SEGMENTS                             
         ELSE     #MAP=0                                                        
         LW,R0    FL:PRIM                                                       
         CI,R0    2                                                             
         BANZ     ONE750            FOR PRIMARY, PROG LIMITS                    
*                                   WILL NOT BE FORCED TO INCLUDE               
*                                   SHARED SEGMENTS                             
         FIN      #MAP=0                                                        
ONE740   RES      0                                                             
         LW,R0    NBA:SECT         *IS THIS THE LONGEST SEGMENT                 
         CW,R0    LBA:PATH                                                      
         BLE      ONE750                    NO                                  
         STW,R0   LBA:PATH                  YES,SAVE ADDR                       
ONE750   RAX                           *RESOLVE ALL POSSIBLE EXPRESSIONS        
         LW,R2    BDP:SEG                                                       
         AW,R2    FBA:SEG                                                       
         SLS,R2   -1                    (R2=ADDR OF HW0 IN T:SEG ENTRY)         
         LW,R3    R2                                                            
         AI,R3    1                     (R3=ADDR OF HW1 IN T:SEG ENTRY)         
         LW,R8    NBA:SECT         *CALCULATE DW LENGTH OF SEGMENT AND          
         SLS,R8   -3                STORE IN T:SEG ENTRY                        
         LH,R0    6,R2                                                          
         AND,R0   X:FFFF                                                        
         SW,R8    R0                                                            
         STH,R8   6,R3                                                          
         CI,R8    X'FFFF'                                                       
        BLE      ONE751                                                         
         LI,R9    PLENGTH               ERROR,LENGTH EXCEEDS MAX                
         RDIAG                                                                  
ONE751  LW,R0    V:SEGID                                                        
        BEZ      ONE752                                                         
         CI,R8    8192                                                     101  
         BL       ONE752                                                   101  
         LI,R9    SEG16K                                                        
         RDIAG                                                                  
ONE752   EQU      %                                                             
         LW,R0    BDP:MODL             (BL OF SEGMENT'S T:MODULE TABLE)         
         STH,R0   5,R3                                                          
         LW,R0    BDP:MTB           ANY DATA IN MODULE TABLES' BUFFER           
         BEZ      ONE753               *NO                                      
         WRITEMT                       *YES,OUTPUT ON M:X2                      
ONE753   LW,R0    V:CCTYPE          ANY MODIFY COMMANDS FOR THIS SEGMENT        
         BEZ      ONE755                (MAYBE NO CC IN B:C)                    
         CI,R0    :MODIFY                                                       
         BNE      ONE770                    NO                                  
ONE755   MTW,1    FL:MODF                   YES,CALL 'CCI' TO PROCESS           
         LI,R11   SEG:CCI                                                       
         LOADSEG                                                                
         PAGE                                                                   
ONE760   MTW,-1   FL:MODF           DATA IN T:MODIFY                            
ONE765   LW,R8    BDP:MODF          ANY DATA IN T:MODIFY                        
         BEZ      ONE770                  NO                                    
         LI,R2    X'0E00'          *STORE'MODULE END' LOAD ITEM TO              
         LI,R5    BA(R2)+2          SIGNIFY END OF MODIFY TABLE                 
         LI,R8    2                                                             
         STW,R8   NBE:MODF                                                      
         LI,R1    T:MODIFY                                                      
         ADDNXT                                                                 
         LI,R8    0                                                             
         STW,R8   NBE:MODF                                                      
         LW,R8    BDP:MODF                                                      
         LW,R2    BDP:SEG                                                       
         AW,R2    FBA:SEG                                                       
         SLS,R2   -1                                                            
         STH,R8   5,R2                  (BL OF SEGMENT'S T:MODIFY TABLE)        
         BOUNDRDW                      *MOVE T:MODULE TO DW AFTER LBA+1         
         LW,R5    FBA:MODL              OF T:MODIFY                             
         LW,R6    FBA:MODF                                                      
         AW,R6    R8                                                            
         LW,R8    BDP:MODL                                                      
         MOVBYTS                                                                
         AW,R6    R8                                                            
         SW,R6    FBA:MODF                                                      
         LW,R9    R6                   (R9=BL OF DATA TO BE OUTPUT)             
         LW,R6    FBA:MODF             (R6=FBA OF OUTPUT BUFFER)                
         B        ONE780                                                        
ONE770   LW,R9    BDP:MODL             (R9=BL OF DATA TO BE OUTPUT)             
         LW,R6    FBA:MODL             (R6=FBA OF OUTPUT BUFFER)                
ONE780   LI,R5    M:X3              OUTPUT T:MODULE AND T:MODIFY ON M:X3        
         WRITEXN                                                                
         LW,R2    BDP:SEG                                                       
         AW,R2    FBA:SEG                                                       
         SLS,R2   -1                                                            
         LW,R3    R2                                                            
         AI,R3    1                                                             
         STH,R12  1,R3                 *SAVE GRANULE NO. IN T:SEG ENTRY         
         LW,R0    BDP:VALU             *CALCULATE BL OF SEGMENT'S               
         CI,R0    X'FFFF'                                                       
         BG       ONE809            B IF T:VALUE TOO BIG                        
         SH,R0    3,R2                  T:VALUE TABLE AND STORE IN T:SEG        
         STH,R0   3,R3                                                          
         LW,R0    BDP:SYM              *CALCULATE BL OF SEGMENT'S               
         CI,R0    X'FFFF'                                                       
         BG       ONE809            B IF T:SYM TOO BIG                          
         SH,R0    4,R2                  T:SYMBOL TABLE AND STORE IN             
         STH,R0   4,R3                  T:SEG ENTRY                             
         LI,R0    0                                                             
         STW,R0   BDP:MODL              RESET T:MODIFY,T:MODULE POINTERS        
         STW,R0   BDP:MODF                                                      
ONE790   LW,R0    NBE:SEG           POINT TO NEXT T:SEG ENTRY                   
         AWM,R0   BDP:SEG                                                       
         CW,R0    BDP:SEG                                                       
         BNE      ONE791            BRANCH IF NOT ROOT                          
         MTW,0    FL:PUBL                                                       
         BNEZ     ONE791            BRANCH IF PUBLIB ROOT                       
*                                   PROCEED TO RESERVE T:SEG ENTRY              
*                                   FOR ROOT2                                   
         NXTSEG                                                                 
         LI,R0    ROOT2ID                                                       
         STH,R0   *R5               SET ROOT2 SEG ID NR                         
         LW,R0    NBE:SEG                                                       
         AWM,R0   BDP:SEG           UPDATE T:SEG ENTRY POINTER                  
ONE791   RES      0                                                             
         LW,R0    V:CCTYPE         *IS THERE A :SEG CONTROL COMMAND TO          
         CI,R0    :SEG              PROCESS IN B:C                              
         BE       CC795             BRANCH IF :SEG REMAINS                      
         CI,R0    :COMMON           HOW ABOUT :COMMON                           
         BNE      ONE800                                                        
CC795    RES      0                                                             
         LI,R11   SEG:CCI               YES,CALL CCI TO PROCESS                 
         LOADSEG                                                                
ONE800   LW,R0    FL:GO                 NO,'GO,LINKS'TYPE OVERLAY               
         BGEZ     ONE810                       NO,END OF PASSONE                
*                                              YES,SET UP NEXT SEGMENT          
         MTW,1    V:SEGID          *IDENT OF NEXT SEGMENT                       
         NXTSEG                    *BUILD NEXT SEGMENT'S T:SEG ENTRY            
         LW,R0    V:SEGID                                                       
         STH,R0   *R5               SET CURRENT SEG ID NR                       
         PATHEND                   *WRITE OUT LAST SEGMENTS T:VALUE AND         
*                                   T:SYMBOL TABLES (NEW SEGMENT OVERLAY        
*                                   LAST SEGMENT)                               
         LI,R3    X'10000'+3       *BUILD T:ROMI ENTRY TO LOAD ONE              
*                                   'ROM' FROM M:GO                             
         LI,R1    T:ROMI                                                        
         LI,R5    BA(R3)                                                        
         ADDNXT                                                                 
         B        ONE05                                                         
*                                                                               
*                                                                               
*                                                                               
ONE809   RES      0                                                             
         LI,R9    SYM2BIG                                                       
         RDIAG                      REPORT SYMBOL TBL OFLOW                     
*        (THERE IS NO RETURN)                                                   
         PAGE                                                                   
ONE810   LW,R8    LBA:PATH          END OF PASSONE                              
         ALLOCOMN                      *ALLOCATE COMMON(IF NOT ALREADY)         
         RAX                           *RESOLVE ALL POSSIBLE EXPRESSIONS        
         LI,R0    -1                                                            
         STW,R0   V:LINKID                                                      
         PATHEND                       *OUTPUT ALL T:VALUE,T:SYMBOL SUB-        
*                                       TABLES FOR EACH SEGMENT                 
         LW,R0    BAP:VALX             *SET AREA POINTERS EQUAL TO              
         STW,R0   FBA:VALX              LBA+1 OF DATA IN PERMANENT              
         LW,R0    FBA:SEG               TABLES                                  
         AW,R0    BDP:SEG                                                       
         STW,R0   LBA:SEG                                                       
         LW,R0    FBA:DCBV                                                      
         AW,R0    BDP:DCBV                                                      
         STW,R0   LBA:DCBV                                                      
         LW,R0    FBA:DCB                                                       
         AW,R0    BDP:DCB                                                       
         STW,R0   LBA:DCB                                                       
         LW,R0    FBA:ROMI              SET T:ROMI AREA TO ZERO LENGTH          
         STW,R0   LBA:ROMI                                                      
         LI,R0    0                     CLEAR TABLE POINTERS                    
         STW,R0   BDP:VALU                                                      
         STW,R0   BDP:SYM                                                       
         STW,R0   BDP:SEG                                                       
         STW,R0   BDP:MODF                                                      
         STW,R0   BDP:MODL                                                      
         STW,R0   BDP:ROMI                                                      
         STW,R0   BDP:MTB                                                       
         STW,R0   BDP:DECL                                                      
         STW,R0   BDP:CSEC                                                      
         STW,R0   BDP:FWD                                                       
         STW,R0   BDP:FWDX                                                      
         LI,R9    0                                                             
         LW,R5    Y:002                                                         
         CS,R5    M:X1              IS M:X1 OPEN                                
         BNE      ONE813                NO                                      
         CAL1,1   FPT:ONE3              YES,CLOSE FILE AND WRITE EOF            
ONE813   CS,R5    M:GO              IS M:GO OPEN                                
         BNE      ONE814                NO                                      
         CAL1,1   FPT:ONE4              YES,CLOSE FILE                          
ONE814   EQU      %                                                             
         LW,R0    FL:OFLOW              DID ANY RAD FILES OVERFLOW              
         BNEZ     ONE820                                                        
         LI,R11   SEG:PAS2                  NO,CALL PASSTWO                     
         LOADSEG                                                                
ONE820   LI,R11   SEG:MAP                   YES,CALL MAP                        
         LOADSEG                                                                
         TITLE    '       **** ALLOCOMN ****'                                   
*                                                                               
*        PURPOSE: TO ALLOCATE BLANK COMMON IF NOT ALREADY ALLOCATED AND         
*                 SIZE DOES NOT EQUAL ZERO                                      
*                                                                               
*        INPUT:   R8=FBA OF COMMON (NOT NECESSARILY ON A DW BOUND)              
*                 FBA:COMN=ZERO,IF COMMON HAS NOT BEEN ALLOCATED                
*                         =NONZERO,IF COMMON HAS BEEN ALLOCATED                 
*                 F4:COM DSECT IS ENTRY ONE IN T:SYMBOL/T:VALUE                 
*                                                                               
*        CALL:    BAL,R14  ALLOCOMN                                             
*                                                                               
*        OUTPUT:  FBA:COMN=FBA OF COMMON (ON A DW BOUNDARY)                     
*                 LBA:COMN=LBA+1 OF COMMON                                      
*                                                                               
*        CALLS:   WORD,MOVBYTES,BOUNDRDW                                        
*                                                                               
*                                                                               
ALLOCOMN EQU      %                                                             
         LW,R0    FL:PUBL                                                       
         BNEZ     *R14                  PUBLIC LIBRARY,NO COMMON                
         LW,R0    FBA:COMN          HAS COMMON BEEN ALLOCATED                   
         BNEZ     *R14                  YES                                     
         BOUNDRDW                                                               
         DO       #MAP~=0                                                       
         LW,R9    FL:PRIM                                                       
         CI,R9    1                                                             
         BAZ      %+4               BRANCH IF NOT SECONDARY                     
         MTW,0    FL:SMM                                                        
         BNEZ     %+2               BRANCH IF SIMPLIFIED MEM MGT                
         BOUNDRP                                                                
         FIN      #MAP~=0                                                       
         STW,R8   FBA:COMN                                                      
         LW,R5    FBA:SYM           GET SIZE OF COMMON                          
         LB,R0    0,R5                                                          
         AW,R5    R0                                                            
         AI,R5    1                                                             
         LI,R6    BA(LBA:COMN)+1                                                
         LI,R8    3                                                             
         MOVBYTS                                                                
         LW,R9    FBA:COMN                                                      
         AWM,R9   LBA:COMN                                                      
         LW,R5    FBA:VALU                                                      
         LI,R0    DSECT+ALLOCATD+VALUE+ADDRESS+ROM+NOTDUP                       
         STB,R0   0,R5                                                          
         WORD                                                                   
         CW,R9    LBA:COMN                                                      
         BE       *R14              RETURN IF COMMON SIZE IS ZERO               
         PSW,R14  *PCBPOINT                                                     
         LI,R8    0                                                             
         STW,R8   V:SEGID           SET EXTERNAL SEG ID NR TO 0                 
         NXTSEG                                                                 
         PLW,R14  *PCBPOINT                                                     
         LI,R8    COMNID                                                        
         STH,R8   *R5                                                           
         LW,R8    FBA:COMN                                                      
         SLS,R8   RIGHT*3           CONVERT BYTES TO DW                         
         LI,R6    S:MA                                                          
         STH,R8   *R5,R6            STORE IN T:SEG                              
         LW,R8    LBA:COMN                                                      
         BOUNDRDW                                                               
         DO       #MAP~=0                                                       
         LW,R9    FL:PRIM                                                       
         CI,R9    1                                                             
         BAZ      %+4               BRANCH IF NOT SECONDARY                     
         MTW,0    FL:SMM                                                        
         BNEZ     %+2               BRANCH IF SIMPLIFIED MEM MGT                
         BOUNDRP                    PAGE-BOUND                                  
         FIN      #MAP~=0                                                       
         CW,R8    LBA:PATH                                                      
         BLE      %+2               BRANCH IF NOT THE HIGHEST ADDRESS           
*                                   USED                                        
         STW,R8   LBA:PATH          RESET THE HIGHEST ADDRESS USED              
         SW,R8    FBA:COMN          MEMORY LENGTH OF COMMON SEG                 
         SLS,R8   RIGHT*3           CONVERT BYTES TO DW                         
         LI,R6    S:ML                                                          
         STH,R8   *R5,R6            INSERT IN T:SEG                             
         LW,R8    NBE:SEG                                                       
         AWM,R8   BDP:SEG                                                       
*        LOAD MODULE LENGTH OF COMMON SEG IS ZERO                               
         B        *R14                                                          
         TITLE    '       **** BLDCSECT ****'                                   
*                                                                               
*        PURPOSE: BUILD T:CSECT ENTRY (I.E.,GET CONTROL SECTION SIZE            
*                 FROM ROM LOAD ITEM,ALLOCATE,AND ADD TO T:CSECT)               
*                                                                               
*        INPUT:   BAP:ROM=BA OF CONTROL SECTION LOAD ITEM                       
*                                                                               
*        CALL:    BAL,R13 BLDCSECT                                              
*                                                                               
*        USES:    R1,R2,R3                                                      
*                                                                               
*        OUTPUT:  R9='TB' IN BITS 16-17; 'ENTRY' IN BITS 18-31                  
*                                                                               
*        CALLS:   SIZECS,DWBOUND,ADDNXT                                         
*                                                                               
*                                                                               
BLDCSECT RES      0                                                             
         SIZECS                     R3=SIZE                                     
         DWBOUND                    START CONTROL SECTION ON A DOUBLEWOR        
         LW,R2    NBA:SECT             ADDR OF CONTROL SECTION                  
         AWM,R3   NBA:SECT             ADDR OF NEXT SECTION                     
         OR,R2    Y:DV                  (ALLOCATED,VALUE,ADDRESS)               
         LI,R5    BA(R2)                                                        
         LI,R1    T:CSECT                                                       
         ADDNXT                                                                 
         B        *R13                                                          
         TITLE    '       **** COMPSIZE ****'                                   
*                                                                               
*        PURPOSE: TO COMPARE DSECT SIZE FROM ROM WITH SIZE T:SYMBOL             
*                 CONTINUATION ENTRY                                            
*                                                                               
*        INPUT:   R3=X'84' IN BITS 0-7; SIZE IN BITS 12-31                      
*                 R5=BA OF T:SYMBOL CONTINUATION ENTRY                          
*                                                                               
*        CALL:    BAL,R14  COMPSIZE                                             
*                                                                               
*        OUTPUT:  CONDITION CODES SET ACCORDING TO NEW SIZE:OLD SIZE            
*                 R6-R8 ALTERED                                                 
*                                                                               
*        CALLS:   MOVBYTS                                                       
*                                                                               
*                                                                               
COMPSIZE EQU      %                                                             
         LI,R6    BA(CMPZ)          MOVE OLD SIZE TO 'CMPZ'                     
         LI,R8    4                                                             
         MOVBYTS                                                                
         LW,R6    R3                                                            
         LW,R7    X:FFFFF                                                       
         CS,R6    CMPZ              COMPARE NEW SIZE WITH OLD SIZE              
         B        *R14                                                          
         TITLE    '       **** INCLFWDX ****'                                   
*                                                                               
*        PURPOSE: AT MODULE END,IF AN EXTERNAL DEF IS AN UNRESOLVED             
*                 EXPRESSION INVOLVING A FWD OR CSECT,ADD THE FWD OR       101  
*                 CSECT ENTRY TO THE T:SYMBOL,T:VALUE,T:VALX TABLES        101  
*                                                                               
*        INPUT:   R4=BA OF 'ADD/SUBT FWD OR CSECT' LOAD ITEM IN THE        101  
*                    UNRESOLVED T:VALX EXPRESSION                          101  
*                 R5=FBA OF T:FWD OR T:CSECT ENTRY POINTED TO BY THE       101  
*                    EXPRESSION ITEM                                       101  
*                 R1=T:CSECT OR T:FWD                                      101  
*                                                                               
*        CALL:    BAL,R13  INCLFWDX                                             
*                                                                               
*        OUTPUT:  R4=BA OF NEXT LOAD ITEM                                       
*                                                                               
*        CALLS:   ADDX,ADDNXT,MOVBYTS                                           
*                                                                               
*        USES:    ALL REGISTERS                                                 
*                                                                               
*                                                                               
INCLFWDX EQU      %                                                             
         CI,R1    T:CSECT           IS THE ENTRY FROM T:CSECT OR T:FWD     101  
         BNE      INX05                *T:CSECT ENTRY                      101  
         LB,R2    0,R5                      R2=T:CSECT ENT CONTROL BYTE    101  
         SLS,R5   -2                                                       101  
         LW,R3    0,R5                      R3=T:CSECT ENTRY'S VALUE       101  
         AND,R3   X:7FFFF                                                  101  
         B        INX07                                                    101  
INX05    AI,R5    3                    *T:FWD ENTRY                        101  
         LI,R6    BA(R2)+3          R2=T:FWD ENTRY CONTROL BYTE                 
         LI,R8    5                 R3=T:FWD ENTRY VALUE OR EXPRESSION          
         MOVBYTS                       ADDRESS                                  
INX07    AI,R2    DEF+NOTDUP                                               101  
         AW,R2    FL:LBLD                                                       
         CI,R2    VALUE      *HAS THE FWD'S EXPRESSION BEEN RESOLVED            
         BANZ     INX10           YES                                           
         LW,R5    R3              NO,MOVE THE EXPRESSION TO T:VALX              
         AW,R5    FBA:FWDX           AND SAVE THE BYTE ADDRESS POINTER          
         LI,R1    T:VALX             TO THE EXPRESSION IN R3                    
         ADDX                                                                   
         LW,R3    R6                                                            
INX10    LI,R1    T:VALUE          *ADD THE FWD/CSECT ENTRY AS A DEF       101  
         LI,R5    BA(R2)+3          TO THE VALUE TABLE                     101  
         ADDNXT                                                                 
         LB,R0    0,R4             *CHANGE THE 'ADD/SUBT VALU FWD/CSECT'   101  
         AND,R0   X:FB              LOAD ITEM TO AN 'ADD/SUBT VALUE OF          
         LI,R5    BA(R9)+1          DECL' THAT POINTS TO THE NEW ENTRY     101  
         STB,R0   0,R5              IN T:SYMBOL/T:VALUE                         
         LW,R6    R4                                                            
         LI,R8    3                                                             
         MOVBYTS                                                                
         AI,R4    3                                                             
         LI,R1    T:SYMBOL          ADD THE 'PSEUDO-ENTRY' TO T:SYMBOL     101  
         LI,R5    BA(X:1)+3                                                     
         ADDNXT                                                                 
         B        *R13                                                          
         TITLE    '       **** MOVEMT ****'                                     
*                                                                               
*        PURPOSE: MOVE T:DECL,T:CSECT,T:FWD,T:FWDX TO B:MT AND STORE            
*                 BDP'S FOR EACH TABLE IN T:MODULE ENTRY                        
*                                                                               
*        CALL:    BAL,R14 MOVEMT                                                
*                                                                               
*        OUTPUT:  R1=T:DECL+4                                                   
*                 R2=HA OF NEXT T:MODULE ENTRY                                  
*                 BOP:MTB RESET                                                 
*                 VMODMTB=BDP OF MODULE ENTRY OF MODULE WHOSE                   
*                         TABLES ARE IN B:MT FIRST                              
*                                                                               
*        CALLS:   MOVBYTS,BOUNDRDW                                              
*                                                                               
*                                                                               
MOVEMT   EQU      %                                                             
         LW,R0    BDP:MTB           ANY DATA IN B:MT                            
         BNEZ     MT10                  YES                                     
         LW,R0    BDP:MODL              NO,SET FLAG                             
         STW,R0   VMODMTB                                                       
MT10     LW,R2    FBA:MODL          CALCULATE HA OF T:MODULE ENTRY,             
         AW,R2    BDP:MODL          WORD1(T:DECL INFO)                          
         SLS,R2   -1                                                            
         AI,R2    2                                                             
         LI,R1    T:DECL            MOVE T:DECL,T:CSECT,T:FWD,T:FWDX TO         
MT20     LW,R5    T:FBA,R1              FBA 'FROM'                              
         LW,R6    BDP:MTB                                                       
         STH,R6   0,R2                  BDP OF TABLE IN B:MT                    
         AI,R2    1                                                             
         AW,R6    FBA:MTB               FBA 'TO'                                
         LW,R8    T:BDP,R1              BYTE LENGTH OF TABLE                    
         STH,R8   0,R2                                                          
         AI,R2    1                                                             
         MOVBYTS                    MOVE TABLE TO B:MT                          
         BOUNDRDW                   BOUND BYTE LENGTH TO DW                     
         AWM,R8   BDP:MTB                                                       
         AI,R1    1                                                             
         CI,R1    T:DECL+4              NEXT TABLE INDEX                        
         BL       MT20                                                          
         B        *R14                                                          
         TITLE    '       **** RESETMTA ****'                                   
*                                                                               
*        PURPOSE: RESET AREA POINTERS FOR MODULE TABLES T:DECL,T:CSECT,         
*                 T:FWD, AND T:FWDX TO START AT END OF B:MT                     
*                                                                               
*        CALL:    BAL,R14 RESETMTA                                              
*                                                                               
*        OUTPUT:  FBA,LBA,BDP FOR EACH TABLE RESET                              
*                                                                               
*        CALLS:   BOUNDRDW,EXTEND                                               
*                                                                               
*        USES:    R1,R3,R4,R8                                                   
*                                                                               
*                                                                               
RESETMTA LI,R1    4                                                             
         LW,R8    FBA:MTB                                                       
         AW,R8    BDP:MTB                                                       
         BOUNDRDW                                                               
         LW,R3    R8                                                            
MTA10    AW,R8    BZA:MTB,R1       *CALCULATE THE NO. OF BYTES IN THE           
         BOUNDRDW                   SET OF MODULE TABLES                        
         BDR,R1   MTA10                                                         
         SW,R8    FBA:MTB+5        *DOES LBA+1 OF MT'S EXTEND PAST AREA         
         BLEZ     MTA20                                                         
         LI,R2    B:MT+4                YES,EXTEND AREA                         
         RAREABC                           *CALCULATE REMAINING BYTES           
         AW,R8    R6                        IN LAST MODULE TABLE AND            
         LI,R1    B:MT+4                    ADD TO NO. OF BYTES NEEDED          
         EXTEND                             FOR B:MT SO THAT THE BUFFER         
         B        RESETMTA                  AREA WILL GET  EXTENDED             
MTA20    LI,R1    -4                    NO,RESET FBA,LBA,AND BDP                
         LI,R4    0                        POINTERS FOR T:DECL,T:CSECT,         
MTA30    STW,R3   FBA:MTB+5,R1             T:FWD AND T:FWDX                     
         LW,R8    BZA:MTB+5,R1                                                  
         BOUNDRDW                                                               
         AW,R3    R8                                                            
         STW,R3   LBA:MTB+5,R1                                                  
         STW,R4   BDP:MTB+5,R1                                                  
         BIR,R1   MTA30                                                         
         B        *R14                                                          
         TITLE    '       **** SERCHX ****'                                     
*                                                                               
*        PURPOSE: TO SEARCH AN EXPRESSION FOR AN 'ADD/SUBT VALUE OF FWD'   101  
*                 ITEM OR AN 'ADD/SUBT VALUE OF T:CSECT ENTRY' ITEM        101  
*                                                                               
*        INPUT:   R4=BA OF EXPRESSION LOAD ITEM IN T:VALX/T:FWDX FORMAT         
*                                                                               
*        CALL:    BAL,R14  SERCHX                                               
*                                                                               
*        OUTPUT:  R4=BA OF 'ADD/SUBT VALUE OF FORWARD' ITEM, OR                 
*                   =BA OF 'EXPRESSION END' ITEM                                
*                 R8=0,R4 POINTS TO 'ADD/SUBT VALUE OF FWD' ITEM                
*                   =1,R4 POINTS TO 'EXPRESSION END' ITEM                       
*                                                                               
*                 R1=T:FWD OR T:CSECT (IF R8=0)                            101  
*                                                                          101  
*        CALLS:   RDIAG,TBENTRY                                            101  
*                                                                               
*        USES:    R7,R8                                                         
*                                                                               
*                                                                               
SERCHX   EQU      %                                                             
SX05     LB,R8    0,R4                                                          
         CI,R8    X'40'                                                         
         BGE      SX50              ILLEGAL EXP. LOAD ITEM                      
         CI,R8    X'30'                                                         
         BGE      SX40              ADDRESS RESOLUTION LOAD ITEM                
         CI,R8    X'20'                                                         
         BGE      SX10              VALUE LOAD ITEM                             
         CI,R8    X'01'                                                         
         BE       SX20              ADD CONSTANT LOAD ITEM                      
         CI,R8    X'02'                                                         
         BNE      SX50              ILLEGAL EXP. LOAD ITEM                      
         LI,R8    1                 EXPRESSION END,EXIT                         
         B        *R14                                                          
SX10     CI,R8    X'4'              IS THIS AN 'ADD/SUBT VALUE OF FWD'          
         BAZ      SX15                  NO                                 101  
         LI,R1    T:FWD                 YES,EXIT                           101  
SX12     LI,R8    0                                                        101  
         B        *R14                                                          
SX15     LW,R5    R4                IS THIS AN 'ADD/SUBT T:CSECT ENTRY'    101  
         AI,R5    1                                                        101  
         TBENTRY                                                           101  
         CI,R1    T:CSECT                                                  101  
         BNE      SX30                  NO                                 101  
         BE       SX12                  YES,EXIT                           101  
SX20     AI,R4    2                                                             
SX30     AI,R4    2                                                             
SX40     AI,R4    1                                                             
         B        SX05                                                          
SX50     LI,R9    LOADITEM          OUTPUT DIAGNOSTIC AND ABORT                 
         RDIAG                                                                  
         TITLE    '       **** SIZECS ****'                                     
*                                                                               
*        PURPOSE: TO GET SIZE OF CONTROL SECTION FROM ROM                       
*                                                                               
*        INPUT:   BAP:ROM=BA-1 OF CONTROL SECTION SIZE                          
*                                                                               
*        CALL:    BAL,R14  SIZECS                                               
*                                                                               
*        OUTPUT:  R3=SIZE OF CONTROL SECTION IN BITS 12-31                      
*                                                                               
*        CALLS:   ROMBYTE                                                       
*                                                                               
*                                                                               
SIZECS   EQU      %                                                             
         ROMBYTE                                                                
         AND,R8   X:F                                                           
         SLS,R8   16                                                            
         LW,R3    R8                                                            
         ROMBYTE                                                                
         SLS,R8   8                                                             
         OR,R3    R8                                                            
         ROMBYTE                                                                
         OR,R3    R8                                                            
         B        *R14                                                          
         TITLE    '       **** WRITEMT ****'                                    
*                                                                               
*        PURPOSE: TO WRITE: B:MT: ON M:X2 AND STORE GRANULE NO. IN              
*                 APPROPRIATE T:MODULE ENTRY                                    
*                                                                               
*        INPUT:   VMODMTB=BDP OF T:MODULE ENTRY OF FIRST MODULE WHOSE           
*                         T:DECL,T:CSECT,T:FWD,T:FWDX TABLES ARE IN B:MT        
*                                                                               
*        CALL:    BAL,R14 WRITEMT                                               
*                                                                               
*        OUTPUT:  R12=GRANULE NO. OF B:MT ON M:X2                               
*                 BDP:MTB=0                                                     
*                 VMODMTB=0                                                     
*                                                                               
*        CALLS:   WRITEXN                                                       
*                                                                               
*                                                                               
WRITEMT  EQU      %                                                             
         LI,R5    M:X2              WA OF DCB                                   
         LW,R6    FBA:MTB           BA OF I/O BUFFER                            
         LW,R9    BDP:MTB           BYTE LENGTH TO OUTPUT                       
         WRITEXN                                                                
         LW,R5    VMODMTB           STORE GRANULE NO. AND SET FLAG              
         AW,R5    FBA:MODL          IN T:MODULE ENTRY OF FIRST MODULE           
         SLS,R5   -2                WHOSE TABLES ARE IN B:MT                    
         LI,R9    G                 SET FLAG FOR B:MT WRITTEN OUT               
         STS,R9   0,R5                                                          
         AI,R5    1                                                             
         STH,R12  *R5                                                           
         LI,R0    0                                                             
         STW,R0   VMODMTB                                                       
         STW,R0   BDP:MTB                                                       
         B        *R14                                                          
         END                                                                    
