XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 1 XGLOB MAC 19-MAR-76 13:24 B. SCHREIBER 1 TITLE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 2 SUBTTL B. SCHREIBER 3 SEARCH JOBDAT,UUOSYM,MACTEN,SCNMAC 4 .DIREC .XTABM 5 SALL 6 7 000000 AC= 0 ;TMP 8 000001 T1= 1 ;ALSO 9 000002 T2= 2 ; 10 000003 T3= 3 11 000004 T4= 4 12 000005 P1= 5 13 000006 P2= 6 14 000007 P3= ;NAME SCANNED 15 000010 P4= ;LAST CHARACTER 16 000011 F= 11 ;FLAGS 17 000012 B= 12 ;CURRENT TITLE BLOCK POINTER 18 000017 P= 17 ;PUSHDOWN AC 19 20 ;FLAGS IN LH OF F 21 22 400000 FL.NAM==(1B0) ;ON WHEN BLOCK TYPE 6 (NAME) SEEN 23 200000 FL.SKP==(1B1) ;ON WHEN SKIPING A MULT DEFINED BLOCK 24 100000 FL.TTO==(1B2) ;ON IF TTY IS OUTPUT DEVICE 25 040000 FL.PP== (1B3) ;ON FOR PRETTY PRINT (FFEED EVERY 60 LINES) 26 020000 FL.FSA==(1B4) ;ON IF FILE SPACE ALLOCATED 27 ; FL.NAR==(1B5) ;ON IF /NARROW (SET BY SCAN) 28 004000 FL.HSE==(1B6) ;ON IF BLOCK 3 (HISEG) SEEN 29 30 260740 000000 OPDEF CALL [PUSHJ P,] 31 263740 000000 OPDEF RETURN [POPJ P,] 32 33 400000 SW.LIB==1B18 ;THIS IS A LIBRARY 34 010000 000000 SW.NAR==1B5 ;THIS OUTPUT IS IN NARROW FORMAT 35 010000 000000 FL.NAR==SW.NAR ;THE VALUE IN THE FLAG WORD 36 000032 .FXLIB==.FXLEN ;-1 IF A LIBRARY FILE 37 ND FTDDT,1 ;1 FOR DEBUG FEATURES (SLIM) 38 ND FTCPU,0 ;1 TO PRINT CPU PGM WILL RUN ON 39 ND FT2SEG,0 ;1 FOR TWOSEGMENT VERSION 40 ND PDSIZ,^D50 ;PUSHDOWN LIST LENGTH 41 ND FBLKSZ,.FXLEN+1 ;LENGTH OF SCAN FILE BLOCK 42 ;LAST WORD IS FLAGS 43 ND NIBUF,6 ;INPUT BUFFER COUNT 44 ND NOBUF,2 ;OUTPUT BUFFER COUNT 45 46 EXT <.ISCAN,.TSCAN,.TSTRG,.TCHAR,.STOPN,.LKWLD,.MNRET,.TCRLF,^_ 47 .SAVE1,.SAVE2,.SAVE3,.SAVE4,.TSPAC,^_ 48 .POPJ,.POPJ1,.TSIXN,.TTABC,.TOLEB,.TOCTW,.TYOCH,.TTIME,^_ 49 .TTIMN,.TDATE,.TDATN,.FMSG,.FMSGN,.FMSGD,.FMSGO,.FMSGF,^_ 50 E.DFL,F.NAM,.TDECW> 51 52 000001 ICH== 1 ;INPUT CHANNEL 53 000002 OCH== 2 ;OUTPUT CHANNEL 54 000003 TTY== 3 ;CHANNEL FOR BUFFERED TTY OUTPUT 55 XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 1-1 XGLOB MAC 19-MAR-76 13:24 B. SCHREIBER 56 ;VERSION INFORMATION 57 58 000000 XGBWHO==0 ;LOCAL UPDATE 59 000002 XGBVER==2 ;MAJOR VERSION 60 000000 XGBMIN==0 ;MINOR VERSION 61 000004 XGBEDT==4 ;EDIT LEVEL 62 63 COMMENT \ REVISION HISTORY 64 1 CREATION 65 2 FIX UP F40 SO IT HANDLES MAIN PGMS OK 66 3 FIX LISTING--GRQ'S MISSING CALL TO INIEGO 67 2(4) ADD CODE TO SUPPORT COMMON INFORMATION 68 \ 69 70 IFN FT2SEG,< 71 TWOSEG 72 RELOC 400000 73 > 74 IFE FT2SEG,< 75 000000' RELOC 0 76 > 77 78 000137 LOC .JBVER 79 000137 0 002 00 000004 VRSN. XGB 80 000000' RELOC 81 82 DEFINE SAVE ($X)< 83 XLIST 84 IRP $X, 85 LIST 86 > 87 88 DEFINE RESTOR ($X)< 89 XLIST 90 IRP $X, 91 LIST 92 > XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 2 XGLOB MAC 19-MAR-76 13:24 DEFINE THE DATA STRUCTURE 93 SUBTTL DEFINE THE DATA STRUCTURE 94 95 COMMENT \THERE ARE TWO TYPES OF DATA STRUCTURES: 1) THE TITLE BLOCK, 96 WHICH CONTAINS LINKS TO THE GLOBAL REQUEST LIST AND THE ENTRY 97 LIST, AS WELL AS THE FILE SPECIFICATION FOR THE SOURCE OF THIS 98 MODULE. 2) ENTRY, GLOBAL REQUEST, LOCAL SYMBOL BLOCK. THESE BLOCKS ARE IN A 99 LIST OFF OF THE TITLE BLOCK. EACH LINK CONTAINS NAME, FLAGS, AND 100 A FEW POINTERS. 101 102 \ 103 104 ;DEFINE THE TITLE BLOCK 105 106 000000 PHASE 0 107 108 000000 TL$BAK:! ;LH LINK BACKWARDS 109 000000 TL$NXT:!BLOCK 1 ;RH LINK FORWARDS 110 000001 TL$FLG:!BLOCK 1 ;LH COMPILER TYPE AND PROCESSOR CODE 111 ;RH FLAGS 112 000002 TL$NAM:!BLOCK 1 ;SIXBIT TITLE NAME 113 000003 TL$ENT:!BLOCK 1 ;LH 0, R PTR TO ENTRY LIST 114 000004 TL$GRQ:!BLOCK 1 ;LH 0, RH PTR TO GLBL REQ LIST 115 000005 TL$SIZ:!BLOCK 1 ;LH=HISEG SIZE,RH=LOWSEG SIZE 116 000006 TL$COM:!BLOCK 1 ;LH TOTAL COMMON SIZE, RH PTR TO LIST 117 000007 TL$DEV:!BLOCK 1 ;SIXBIT DEVICE 118 000010 TL$PPN:!BLOCK 1 ;PPN 119 000011 TL$FIL:!BLOCK 1 ;SIXBIT FILENAME 120 000012 TL$EXT:! ;SIXBIT EXTENSION 121 000012 TL$END:! 122 000013 TTLSIZ==TL$END+1 ;SIZE OF A TITLE BLOCK 123 000012' DEPHASE 124 125 ;NOW DEFINE THE ENTRY, GLOBAL REQUEST, AND COMMON LISTS 126 127 000000 PHASE 0 128 129 000000 EG$BAK:! ;LH LINK BACKWARDS 130 000000 EG$NXT:!BLOCK 1 ;RH LINK FORWARDS 131 000001 EG$FLG:!BLOCK 1 ;FLAGS 132 000002 EG$NAM:!BLOCK 1 ;SIXBIT NAME 133 000003 EG$TTL:! ;RH LINK TO TITLE BLOCK 134 000003 EG$ORD:!EG$END:! ;LH LINK TO NEXT ENTRY OR GRQ IN ALPHA ORDER 135 000004 EGLSIZ==EG$END+1 ;SIZE OF AN EGR BLOCK 136 000015' DEPHASE 137 138 ;DEFINE THE FLAGS USED IN THESE BLOCKS 139 140 400000 FT$LIB==1B18 ;ON IF THIS IS FROM A LIBRARY 141 200000 FT$REF==1B19 ;ON IF THIS LIB MODULE HAS BEEN REFERENCED 142 100000 FT$SCN==1B20 ;THIS LIBRARY MODULE HAS BEEN SCANED XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 3 XGLOB MAC 19-MAR-76 13:24 MAIN PROGRAM 143 SUBTTL MAIN PROGRAM 144 145 000015' 634 01 0 00 000001 XGLOB: TDZA T1,T1 ;NORML ENTRY 146 000016' 201 01 0 00 000001 MOVEI T1,1 ;CCL ENTRY 147 000017' 047 00 0 00 000000 RESET ;STOP THE WORLD 148 000020' 202 01 0 00 002013' MOVEM T1,OFFSET ;SAVE START OFFSET FOR SCAN 149 000021' 202 00 0 00 001724' MOVEM .SGNAM,SGNAM ;SAVE INITIAL SPECS 150 000022' 202 07 0 00 001725' MOVEM .SGPPN,SGPPN 151 000023' 202 11 0 00 001726' MOVEM .SGDEV,SGDEV 152 000024' 202 17 0 00 001727' MOVEM .SGLOW,SGLOW 153 000025' 201 01 0 00 000047' MOVEI T1,XGLOB2 ;RESET START ADDR 154 000026' 542 01 0 00 000120 HRRM T1,.JBSA ;SO ^C START WILL WORK 155 000027' 200 17 0 00 004143' XGLOB1: MOVE P,[IOWD PDSIZ,PDLIST] ;INIT PUSHDOWN LIST 156 000030' 402 00 0 00 002014' STORE T1,F.ZER,L.ZER,0 ;CLEAR CORE 157 000031' 200 01 0 00 004144' 158 000032' 251 01 0 00 004142' 159 160 000033' 041 03 0 00 000000 INIT TTY,.IOASC ;GET THE TTY FOR OUTPUT 161 000034' 64 64 71 00 00 00 SIXBIT /TTY/ 162 000035' 004140' 000000 XWD TOBHR,0 163 000036' 254 04 0 00 000000 HALT ;CAN'T HAPPEN!! 164 000037' 065 03 0 00 000002 OUTBUF TTY,2 ;SETUP BUFFERS NOW 165 000040' 067 03 0 00 000000 OUTPUT TTY, ;DUMMY OUTPUT 166 MOVE T1,[3,,[0 ;ARGBLOCK FOR SCAN -- NO RESCAN 167 XWD OFFSET,'XGB';STARTING OFFSET, CCL NAME 168 XWD 0,TOCHAR ;DEFAULT INPUT, BUFFERED OUTPUT ROUTINE 169 ] 170 000041' 200 01 0 00 004150' ] 171 000042' 260 17 0 00 000000* CALL .ISCAN ;INITIALIZE THE SCANNER 172 000043' 200 01 0 00 000121 MOVE T1,.JBFF ;SAVE INITIAL CORE END 173 000044' 504 01 0 00 000044 HRL T1,.JBREL ;AND END OF CORE 174 000045' 202 01 0 00 002012' MOVEM T1,SAVJFF ;... 175 000046' 254 00 0 00 000051' JRST GBXSCN 176 177 000047' 047 00 0 00 000000 XGLOB2: RESET ;HERE ON ^C START 178 000050' 254 00 0 00 000027' JRST XGLOB1 XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 4 XGLOB MAC 19-MAR-76 13:24 MAIN PROGRAM 179 000051' 400 11 0 00 000000 GBXSCN: SETZ F, ;CLEAR THE FLAGS 180 000052' 260 17 0 00 000364' CALL UPSCN ;MAKE SURE HISEG IS THERE 181 000053' 201 12 0 00 004134' MOVEI B,LSTHED ;INITIALIZE THE POINTER 182 MOVE T1,[11,[IOWD GBXSWL,GBXSWN ;ARGBLOCK FOR .TSCAN 183 XWD GBXSWD,GBXSWM 184 EXP GBXSWP ;POINTER TO SWITCH POINTERS 185 EXP -1 ;USE JOB TABLE FOR NAME 186 XWD CLRANS,CLRFIL 187 XWD ALCIN,ALCOUT 188 XWD 0,0 ;MEMSTK,APLSTK 189 0 190 EXP SWTSTO ;STORE SWITCHES 191 ] 192 000054' 200 01 0 00 004162' ] 193 000055' 260 17 0 00 000000* CALL .TSCAN ;PARSE A LINE 194 000056' 434 11 0 00 004073' IOR F,FLAGS ;GET THE FLAGS 195 000057' 260 17 0 00 000144' CALL SCNCHK ;LEGALIZE THE SCAN BLOCKS 196 000060' 402 00 0 00 002030' SETZM WLDTMP ;CLEAR TEMP STORE FOR WILD 197 000061' 201 01 0 00 004075' MOVEI T1,O.AREA ;BEGINNING OF OUTPUT SPEC 198 000062' 201 02 0 00 002031' MOVEI T2,OPNBLK ;ADDRESS OF 3 WORD OPEN BLOCK 199 000063' 200 03 0 00 004163' MOVE T3,[.RBSIZ+1,,LKPBLK] ;SIZE,,ADDRESS OF LOOKUP BLOCK 200 000064' 556 03 0 00 002022' HLRZM T3,LKPBLK ;SET SIZE INTO LOOKUP BLOCK 201 000065' 260 17 0 00 000000* CALL .STOPN ;CONVERT SCAN BLOCK TO OPEN/ENTER BLOCK 202 JRST [MOVE T1,OPNBLK+.OPDEV ;GET DEVICE 203 DEVCHR T1, ;FIND WHAT SORT IT IS 204 TXNE T1,DV.DIR ;HAVE A DIRECTORY? 205 JRST E.WOI ;YES, ERROR THEM 206 000066' 254 00 0 00 004164' JRST DOXGLB] ;NO, FORGE AHEAD 207 208 000067' 554 01 0 00 002032' DOXGLB: HLRZ T1,OPNBLK+.OPDEV;GET THE DEVICE NAME 209 000070' 306 01 0 00 646471 CAIN T1,'TTY' ;TTY IS DIFFERENT 210 JRST [TLO F,FL.TTO;YES, OUTPUT TO TTY 211 000071' 254 00 0 00 004171' JRST DOXGL1] ;BUT INPUT IS THE SAME 212 000072' 201 01 0 00 000000 MOVEI T1,.IOASC ;OPEN OUTPUT IN ASCII 213 000073' 436 01 0 00 002031' IORM T1,OPNBLK+.OPMOD 214 000074' 205 01 0 00 002014' MOVSI T1,OUTBHR ;BUFFER HEADER 215 000075' 202 01 0 00 002033' MOVEM T1,OPNBLK+.OPBUF 216 000076' 050 02 0 00 002031' OPEN OCH,OPNBLK ;GET THE DEVICE 217 000077' 254 00 0 00 000234' JRST E.OPN ;CAN'T 218 000100' 077 02 0 00 002022' ENTER OCH,LKPBLK ;WRITE THE FILE 219 000101' 254 00 0 00 000243' JRST E.ENT ;CAN'T 220 000102' 201 01 0 00 002034' MOVEI T1,OUTBUF ;SET UP BUFFERS 221 000103' 250 01 0 00 000121 EXCH T1,.JBFF 222 000104' 065 02 0 00 000002 OUTBUF OCH,NOBUF 223 000105' 202 01 0 00 000121 MOVEM T1,.JBFF ;RESTORE JOBFF 224 ; SETZ T1, ;GET MY RUNTIME 225 ; RUNTIM T1, 226 ; MOVEM T1,TIMEON 227 228 ;HERE TO GET NEXT INPUT FILE 229 230 000106' 260 17 0 00 000364' DOXGL1: CALL UPSCN ;MAKE SURE SCAN IS THERE 231 MOVE T1,[4,,[INBEG,,INEND ;INPUT START,INPUT END 232 OPNBLK,,LKPBLK ; 233 FBLKSZ,,.RBSIZ+1;INPUT SIZE,,OUTPUT SIZE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 4-1 XGLOB MAC 19-MAR-76 13:24 MAIN PROGRAM 234 EXP 1B0+WLDTMP 235 ] 236 000107' 200 01 0 00 004177' ] 237 000110' 260 17 0 00 000000* CALL .LKWLD ;FIND A FILE 238 000111' 254 00 0 00 000132' JRST DOXGLF ;FINISH UP, NO MORE FILES 239 000112' 540 11 0 00 002030' HRR F,WLDTMP ;GET ADDRESS OF CURRENT SCAN BLOCK 240 000113' 201 01 0 00 000014 MOVEI T1,.IOBIN ;DO THE INPUT IN BINARY 241 000114' 436 01 0 00 002031' IORM T1,OPNBLK+.OPMOD 242 000115' 201 01 0 00 002017' MOVEI T1,INPBHR ;INPUT HEADER 243 000116' 202 01 0 00 002033' MOVEM T1,OPNBLK+.OPBUF 244 000117' 050 01 0 00 002031' OPEN ICH,OPNBLK ;OPEN THE DEVICE 245 000120' 254 00 0 00 000234' JRST E.OPN ;CAN'T 246 000121' 076 01 0 00 002022' LOOKUP ICH,LKPBLK 247 000122' 254 00 0 00 000251' JRST E.LKP 248 000123' 201 01 0 00 002442' MOVEI T1,INPBUF ;SETUP BUFFERS 249 000124' 250 01 0 00 000121 EXCH T1,.JBFF 250 000125' 064 01 0 00 000006 INBUF ICH,NIBUF 251 000126' 202 01 0 00 000121 MOVEM T1,.JBFF 252 253 000127' 260 17 0 00 000355' CALL DWNSCN ;DOWN WITH HISEG 254 000130' 260 17 0 00 000440' CALL DOFILE ;PROCESS THE FILE 255 000131' 254 00 0 00 000106' JRST DOXGL1 ;DO NEXT FILE 256 257 000132' 260 17 0 00 000355' DOXGLF: CALL DWNSCN ;.TOUTS IS IN THE LOWSEG 258 000133' 260 17 0 00 001223' CALL LISTIT ;OUTPUT THE LISTING 259 000134' 603 11 0 00 100000 TLNE F,FL.TTO ;IF TTY OUTPUT 260 000135' 254 00 0 00 000142' JRST XGLF1 ;SKIP AHEAD 261 000136' 201 01 0 00 000014 MOVEI T1,.CHFFD ;BOOT TO NEW PAGE AT END 262 000137' 260 17 0 00 001650' CALL OBYTE ;... 263 000140' 070 02 0 00 000000 CLOSE OCH, 264 000141' 071 02 0 00 000000 RELEASE OCH, 265 000142' 071 01 0 00 000000 XGLF1: RELEASE ICH, 266 ; SETZ T1, 267 ; RUNTIM T1, ;SEE HOW LONG IT TOOK 268 ; SUB T1,TIMEON ;IN MILLISECS 269 ; CALL .TTIME ;TYPE THE TIME 270 ; MOVEI T1,[ASCIZ\ CPU TIME 271 ;\] 272 ; CALL .TSTRG ;OUTPUT IT 273 000143' 254 00 0 00 000051' JRST GBXSCN ;NEXT COMMAND XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 5 XGLOB MAC 19-MAR-76 13:24 SCNCHK VERIFIES SCANNED COMMAND 274 SUBTTL SCNCHK VERIFIES SCANNED COMMAND 275 276 000144' 260 17 0 00 000000* SCNCHK: CALL .SAVE1 ; 277 000145' 201 02 0 00 004075' MOVEI T2,O.AREA ;GET POINTER TO OUTPUT SPEC 278 000146' 205 01 0 00 546064 MOVSI T1,'LPT' ;YES, GET DEFAULT DEVICE 279 000147' 336 00 0 02 000000 SKIPN .FXDEV(T2) ;DID USER SPECIFY ONE? 280 000150' 202 01 0 02 000000 MOVEM T1,.FXDEV(T2) ;NO, USE DEFAULT 281 000151' 336 05 0 00 004131' SKIPN P1,INBEG ;GET ADDRESS OF INPUT SPEC 282 000152' 254 00 0 00 000220' JRST E.NIS ;WASN'T ANY? 283 000153' 336 01 0 05 000001 SKIPN T1,.FXNAM(P1) ;WAS THERE A NAME? 284 000154' 254 00 0 00 000203' JRST E.NFI ;NO 285 000155' 336 00 0 02 000001 SKIPN .FXNAM(T2) ;WAS THERE AN OUTPUT NAME? 286 000156' 202 01 0 02 000001 MOVEM T1,.FXNAM(T2) ;NO, USE FIRST INPUT NAME 287 000157' 205 01 0 00 777777 MOVSI T1,-1 ;SET TO CHECK NAME 288 000160' 612 01 0 02 000003 TDNE T1,.FXEXT(T2) ;WAS EXTENSION GIVEN? 289 000161' 254 00 0 00 000166' JRST SCNCK1 ;YES, DON'T DIDDLE 290 000162' 200 04 0 02 000004 MOVE T4,.FXMOD(T2) ;NO, GET FLAG 291 000163' 525 01 0 00 546364 HRLOI T1,'LST' ;INCASE DEFAULT NEEDED 292 000164' 603 04 0 00 200000 TXNE T4,FX.NUL ;EXPLICITLY NULL? 293 000165' 202 01 0 02 000003 MOVEM T1,.FXEXT(T2) ;NO, STORE DEFAULT 294 295 000166' 336 00 0 05 000001 SCNCK1: SKIPN .FXNAM(P1) ;INPUT NAME SPECIFIED? 296 000167' 254 00 0 00 000203' JRST E.NFI 297 000170' 205 01 0 00 777777 MOVSI T1,-1 ; 298 000171' 612 01 0 05 000003 TDNE T1,.FXEXT(P1) ;GIVEN? 299 000172' 254 00 0 00 000177' JRST SCNCK2 ;YES, CHECK NEXT BLOCK 300 000173' 200 02 0 05 000004 MOVE T2,.FXMOD(P1) ;GET FLAGS 301 000174' 525 01 0 00 624554 HRLOI T1,'REL' ;INCASE NEEDED 302 000175' 603 02 0 00 200000 TXNE T2,FX.NUL ;SPECIFICALLY NULL? 303 000176' 202 01 0 05 000003 MOVEM T1,.FXEXT(P1) ;NO, STORE DEFAULT 304 000177' 316 05 0 00 004132' SCNCK2: CAMN P1,INEND ;DONE SCANNING INPUT BLOCKS? 305 000200' 263 17 0 00 000000 RETURN ;YES 306 000201' 271 05 0 00 000033 ADDI P1,FBLKSZ ;NO, MOVE TO NEXT ONE 307 000202' 254 00 0 00 000166' JRST SCNCK1 ;CHECK IT OUT 308 309 000203' 265 01 0 00 000000* E.NFI: M.FAIL (NULL FILENAME ILLEGAL) 310 000211' 265 01 0 00 000203* E.WOI: M.FAIL (WILD CARD ON OUTPUT ILLEGAL) 311 000220' 265 01 0 00 000211* E.NIS: M.FAIL (NULL INPUT SPEC ILLEGAL) 312 000226' 265 01 0 00 000220* E.TMO: M.FAIL (TOO MANY OUTPUT SPECS) 313 000234' 200 07 0 00 002032' E.OPN: MOVE N,OPNBLK+.OPDEV ;GET DEVICE NAME 314 000235' 265 01 0 00 000000* M.FAIN (OPEN ERROR FOR DEVICE ) 315 000243' 201 07 0 00 004075' E.ENT: MOVEI N,O.AREA ;POINT AT THE SPEC 316 000244' 265 01 0 00 000000* M.FAIF (ENTER ERROR FOR ) 317 000251' 260 17 0 00 000000* E.LKP: CALL E.DFL 318 000252' 200 17 0 00 004143' SCNERR: MOVE P,[IOWD PDSIZ,PDLIST] ;RESET PDLIST 319 000253' 260 17 0 00 000000* CALL .CLRBF## ;CLEAR THE INPUT TYPE AHEAD 320 000254' 254 00 0 00 000051' JRST GBXSCN ;FORGE ONWARD XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 6 XGLOB MAC 19-MAR-76 13:24 CLRANS/ALCOUT/ALCINP 321 SUBTTL CLRANS/ALCOUT/ALCINP 322 323 000255' 331 01 0 00 004133' CLRFIL: SKIPL T1,INXTZ ;BLOCK ALLOC? 324 000256' 254 00 0 00 000265' JRST CLRFL1 ;NO 325 000257' 553 00 0 00 000001 HRRZS T1 ;YES, CLEAR LH 326 000260' 550 02 0 00 002012' HRRZ T2,SAVJFF ;START OF LIST 327 000261' 316 01 0 00 000002 CAMN T1,T2 ;THIS THE FIRST? 328 000262' 402 00 0 00 004131' SETZM INBEG ;YES, START OVER 329 000263' 275 01 0 00 000033 SUBI T1,FBLKSZ ;COMPUTE END OF CORE 330 000264' 202 01 0 00 000121 MOVEM T1,.JBFF 331 000265' 402 00 0 00 004133' CLRFL1: SETZM INXTZ 332 000266' 263 17 0 00 000000 RETURN 333 334 000267' CLRANS: 335 000267' 402 00 0 00 004073' STORE T1,SCN.F,SCN.Z,0 ;CLEAR SCANNER INFO 336 000270' 200 01 0 00 004200' 337 000271' 251 01 0 00 004137' 338 000272' 200 01 0 00 002012' MOVE T1,SAVJFF ;RESTORE JOBFF 339 000273' 552 01 0 00 000121 HRRZM T1,.JBFF 340 000274' 557 00 0 00 000001 HLRZS T1 ;GET JOBREL BACK 341 000275' 312 01 0 00 000044 CAME T1,.JBREL ;IS IT THE SAME? 342 000276' 047 01 0 00 000011 CORE T1, ;NO, SHRINK IT BACK 343 000277' 255 00 0 00 000000 JFCL ;IGNORE THE ERROR 344 000300' 263 17 0 00 000000 RETURN ;BACK TO SCAN 345 346 000301' 201 01 0 00 004075' ALCOUT: MOVEI T1,O.AREA ;GET ADDRESS 347 000302' 201 02 0 00 000032 MOVEI T2,O.SIZE ;AND SIZE 348 000303' 476 00 0 00 004137' SETOM OUTDON ;FLAG OUTPUT SIDE DONE 349 000304' 263 17 0 00 000000 RETURN 350 351 000305' 335 00 0 00 004133' ALCIN: SKIPGE INXTZ ;FUNNY IN PROGRESS? 352 000306' 254 00 0 00 000317' JRST ALCIN1 ;YES 353 000307' 201 01 0 00 000033 MOVEI T1,FBLKSZ ;SIZE OF BLOCK 354 000310' 260 17 0 00 000340' CALL GETCOR ;GET SOME SPACE 355 000311' 336 00 0 00 004131' SKIPN INBEG ;FIRST ONE? 356 000312' 202 01 0 00 004131' MOVEM T1,INBEG ;YES, REMEMBER WHERE IT IS 357 000313' 202 01 0 00 004132' MOVEM T1,INEND ;SAVE ADDRESS OF LAST 358 000314' 540 11 0 00 000001 ALCIN2: HRR F,T1 ;BLOCK ADDRESS INTO F 359 000315' 201 02 0 00 000032 MOVEI T2,.FXLEN ;RETURN SIZE 360 000316' 263 17 0 00 000000 RETURN 361 000317' 553 01 0 00 004133' ALCIN1: HRRZS T1,INXTZ ;CLEAR FUNNY FLAG 362 000320' 254 00 0 00 000314' JRST ALCIN2 ;BLOCK IS ALREADY ALLOCATED 363 364 000321' 331 00 0 00 004137' SWTSTO: SKIPL OUTDON ;GOT OUTPUT? 365 000322' 263 17 0 00 000000 RETURN ;NO,IGNORE 366 000323' 332 00 0 00 000000* SKIPE F.NAM ;GLOBAL SWTCHES? 367 000324' 254 00 0 00 000331' JRST SWTLOC ;NO 368 000325' 201 01 0 00 400000 MOVX T1,SW.LIB ;YES, GET LIB SWITCH 369 000326' 436 01 0 00 004073' IORM T1,FLAGS 370 000327' 436 01 0 00 004074' IORM T1,FLAGS+1 371 000330' 263 17 0 00 000000 RETURN 372 000331' 336 01 0 00 004133' SWTLOC: SKIPN T1,INXTZ ;BLOCK SET UP? 373 000332' 254 00 0 00 000335' JRST SWTLC1 ;NO 374 000333' 476 00 0 01 000032 SWTLC2: SETOM .FXLIB(T1) ;STORE FLAG ON 375 000334' 263 17 0 00 000000 RETURN XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 6-1 XGLOB MAC 19-MAR-76 13:24 CLRANS/ALCOUT/ALCINP 376 000335' 260 17 0 00 000305' SWTLC1: CALL ALCIN ;GET A BLOCK 377 000336' 562 01 0 00 004133' HRROM T1,INXTZ ;FLAG FUNNY 378 000337' 254 00 0 00 000333' JRST SWTLC2 ;GO STORE 379 380 ;GETCOR 381 ;CALL: MOVEI T1,WORDS 382 ; CALL GETCOR 383 ; *RETURN T1=ADDR OF CORE* 384 385 000340' 200 02 0 00 000001 GETCOR: MOVE T2,T1 ;COPY # WORDS 386 000341' 200 01 0 00 000121 MOVE T1,.JBFF ;GET ADDRESS OF BLOCK 387 000342' 273 02 0 00 000121 ADDB T2,.JBFF ;UPDATE NEW END OF CORE 388 000343' 317 02 0 00 000044 CAMG T2,.JBREL ;OK? 389 000344' 263 17 0 00 000000 RETURN ;YES, IN MY MEMORY 390 000345' 047 02 0 00 000011 CORE T2, ;NO, GET SOME MORE 391 000346' 334 00 0 00 000000 SKIPA ;???CAN'T 392 000347' 263 17 0 00 000000 RETURN 393 000350' 260 17 0 00 000364' CALL UPSCN ;SEE ABOUT THE HISEG 394 MOVEI T1,[ASCIZ\?GBXNEC NOT ENOUGH CORE 395 000351' 201 01 0 00 004201' \] 396 000352' 260 17 0 00 000000* CALL .TSTRG 397 000353' 260 17 0 00 000000* CALL .MNRET 398 000354' 254 00 0 00 000353' JRST .-1 ;NO HOPE 399 XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 7 XGLOB MAC 19-MAR-76 13:24 CLRANS/ALCOUT/ALCINP 400 IFN FT2SEG,< 401 DWNSCN= .POPJ ;WE'RE UP THERE TOO! 402 UPSCN= .POPJ 403 > 404 IFE FT2SEG,< ;ARE WE IN THE LOWSEGMENT? 405 000355' 335 00 0 00 000437' DWNSCN: SKIPGE SCNDWN ;WHERE IS THE LITTLE RASCAL? 406 000356' 263 17 0 00 000000 RETURN ;HE WENT AWAY 407 000357' 205 01 0 00 000001 MOVSI T1,1 ;STILL HERE, 408 000360' 047 01 0 00 000011 CORE T1, ;BUT THIS SHOULD GET HIM 409 000361' 263 17 0 00 000000 RETURN ;DIDN'T? SNH 410 000362' 476 00 0 00 000437' SETOM SCNDWN ;SAY SCAN HAS GONE AWAY 411 000363' 263 17 0 00 000000 RETURN ;AND GO AWAY 412 413 000364' 331 00 0 00 000437' UPSCN: SKIPL SCNDWN ;IS SCAN MISSING? 414 000365' 263 17 0 00 000000 RETURN ;NO, HE'S RIGHT ABOVE ME 415 000366' 202 17 0 00 000436' MOVEM 17,SAV17 ;SAVE ACS OVER GETSEG UUO 416 000367' 201 17 0 00 000417' MOVEI 17,SAV0 ;STASH THEM AWAY 417 000370' 251 17 0 00 000435' BLT 17,SAV0+16 ;... 418 000371' 200 01 0 00 001726' MOVE T1,SGDEV ;GET DEVICE 419 000372' 202 01 0 00 000411' MOVEM T1,SEGBLK ;PUT IN SEG BLOCK 420 000373' 200 01 0 00 001724' MOVE T1,SGNAM ;DITTO FOR THE REST 421 000374' 202 01 0 00 000412' MOVEM T1,SEGBLK+1 422 000375' 402 00 0 00 000413' SETZM SEGBLK+2 423 000376' 402 00 0 00 000414' SETZM SEGBLK+3 424 000377' 200 01 0 00 001725' MOVE T1,SGPPN 425 000400' 202 01 0 00 000415' MOVEM T1,SEGBLK+4 426 000401' 402 00 0 00 000416' SETZM SEGBLK+5 427 000402' 201 01 0 00 000411' SEGAGN: MOVEI T1,SEGBLK 428 000403' 047 01 0 00 000040 GETSEG T1, 429 000404' 334 00 0 00 000000 SKIPA 430 JRST [SETZM SCNDWN 431 MOVSI 17,SAV0 432 BLT 17,17 433 000405' 254 00 0 00 004207' RETURN] 434 OUTSTR [ASCIZ\?XGBNGS CANNOT GET HISEG BACK 435 000406' 051 03 0 00 004213' \] 436 000407' 047 01 0 00 000012 EXIT 1, 437 000410' 254 00 0 00 000402' JRST SEGAGN 438 000411' SEGBLK: BLOCK 6 ;ARGLIST FOR GETSEG UUUO 439 000417' SAV0: BLOCK 20 ;SAVE ACS OVER GETSEG UUO 440 000436' SAV17=.-1 441 000437' SCNDWN: BLOCK 1 ;-1 WHEN SCAN HAS TAKEN A VACATION 442 >;END IFE FT2SEG XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 8 XGLOB MAC 19-MAR-76 13:24 DO ONE FILE 443 SUBTTL DO ONE FILE 444 445 000440' 260 17 0 00 000000* DOFILE: CALL .SAVE2 ;NEED P1,P2 446 000441' 402 00 0 00 004072' SETZM HSEGOR ;CLEAR ORIGINS 447 000442' 402 00 0 00 004071' SETZM LSEGOR ;... 448 000443' 621 11 0 00 604000 TLZ F,FL.NAM!FL.SKP!FL.HSE ;CLEAR VITAL FLAGS 449 000444' 265 02 0 00 000530' FILREAD:JSP T2,IBYTEJ ;GET NEXT BLOCK TYPE 450 000445' 554 05 0 00 000001 HLRZ P1,T1 ;GET BLOCK CODE 451 000446' 550 06 0 00 000001 HRRZ P2,T1 ;AND SIZE 452 000447' 306 05 0 00 000014 CAIN P1,14 ;IF INDEX BLOCK 453 000450' 254 00 0 00 000533' JRST RDNDXB ;DO SPECIAL 454 000451' 302 05 0 00 000400 CAIE P1,400 ;CHECK FOR F40 455 000452' 306 05 0 00 000401 CAIN P1,401 ;OR MANTIS 456 000453' 254 00 0 00 000675' JRST RDF40 ;YES 457 000454' 205 03 0 00 777766 MOVSI T3,-NBLKTY ;AOBJN 458 000455' 312 05 0 03 000504' CAME P1,BLKTYP(T3) ;THIS IT/ 459 000456' 253 03 0 00 000455' AOBJN T3,.-1 ;NO, LOOP FOR ALL 460 000457' 325 03 0 00 000465' JUMPGE T3,FILRD4 ;JUMP IF NOT FOUND YET 461 000460' 265 02 0 00 000530' JSP T2,IBYTEJ ;SKIP RELOC WORD 462 000461' 305 05 0 00 000100 CAIGE P1,100 ;LEGAL BLOCK TYPE (OLDSTYLE) 463 000462' 260 17 0 00 001066' CALL COUNT ;YES, GET CORRECT COUNT 464 000463' 367 06 1 03 000516' SOJG P2,@BLKDIS(T3) ;COUNT RELOC WORD AND JUMP OFF 465 000464' 254 00 0 00 000444' JRST FILREAD ;NULL BLOCK (RELOC WORD ONLY) 466 000465' 301 05 0 00 000100 FILRD4: CAIL P1,100 ;OLD TYPE LEGAL? 467 000466' 254 00 0 00 000473' JRST FILRD2 ;NO, MUST CHECK SOME MORE 468 000467' 260 17 0 00 001066' FILRD1: CALL COUNT ;COMPUTE CORRECT SIZE 469 000470' 361 06 0 00 000444' FILRD3: SOJL P2,FILREAD ;JUMP IF DONE 470 000471' 265 02 0 00 000530' JSP T2,IBYTEJ 471 000472' 254 00 0 00 000470' JRST FILRD3 ;MORE 472 473 000473' 301 05 0 00 001000 FILRD2: CAIL P1,1000 ;IS IT A NEW BLOCK TYPE? 474 000474' 301 05 0 00 001777 CAIL P1,1777 ;... 475 000475' 334 00 0 00 000000 SKIPA ;NO, SEE IF ASCII 476 000476' 254 00 0 00 000470' JRST FILRD3 ;YES, SKIP IT 477 000477' 307 05 0 00 003777 CAIG P1,3777 ;IS IT ASCII? 478 000500' 254 00 0 00 000751' JRST E.BLKT ;NO, ILLEGAL TYPE 479 000501' 265 02 0 00 000530' JSP T2,IBYTEJ 480 000502' 326 01 0 00 000500' JUMPN T1,.-2 ;WATCH FOR THE 'Z' IN ASCIZ 481 000503' 254 00 0 00 000444' JRST FILREAD ;GET NEXT BLOCK 482 483 000504' 000000 000004 BLKTYP: EXP 4 ;ENTRY BLOCK 484 000505' 000000 001001 EXP 1001 ;ENTRY BLOCK 485 000506' 000000 001002 EXP 1002 ;LONG ENTRY BLOCK 486 000507' 000000 000003 EXP 3 ;HISEG BLOCK 487 000510' 000000 000006 EXP 6 ;NAME BLOCK 488 000511' 000000 001003 EXP 1003 ;NAME BLOCK 489 000512' 000000 000002 EXP 2 ;SYMBOL 490 000513' 000000 000020 EXP 20 ;COMMON ALLOCATION 491 000514' 000000 000005 EXP 5 ;END BLOCK 492 000515' 000000 001040 EXP 1040 ;END BLOCK 493 000012 NBLKTY==.-BLKTYP 494 495 000516' 000000 000622' BLKDIS: EXP RDNTRY 496 000517' 000000 000622' EXP RDNTRY 497 000520' 000000 000622' EXP RDNTRY XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 8-1 XGLOB MAC 19-MAR-76 13:24 DO ONE FILE 498 000521' 000000 000537' EXP RDHSEG 499 000522' 000000 000641' EXP RDNAME 500 000523' 000000 000641' EXP RDNAME 501 000524' 000000 000565' EXP RDSYMB 502 000525' 000000 000550' EXP RDCOMM 503 000526' 000000 000577' EXP RDEND 504 000527' 000000 000577' EXP RDEND 505 506 000530' 260 17 0 00 001667' IBYTEJ: CALL IBYTE ;GET A BYTE 507 000531' 263 17 0 00 000000 RETURN ;EOF 508 000532' 254 00 0 02 000000 JRST (T2) ;OK, RETURN 509 510 000533' 550 03 0 00 000001 RDNDXB: HRRZ T3,T1 ;GET SIZE OF BLOCK 511 000534' 265 02 0 00 000530' JSP T2,IBYTEJ ;SKIP ONE 512 000535' 367 03 0 00 000534' SOJG T3,.-1 ;SKIP THEM ALL 513 000536' 254 00 0 00 000444' JRST FILREAD ;CONTINUE 514 515 000537' 661 11 0 00 004000 RDHSEG: TLO F,FL.HSE ;FLAG HISEG SEEN 516 000540' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET HIGH SEG ORIGIN 517 000541' 370 00 0 00 000006 SOS P2 ;COUNT HISEG ORIGIN 518 000542' 402 00 0 00 004071' SETZM LSEGOR ;CLEAR IN CASE NONE 519 000543' 552 01 0 00 004072' HRRZM T1,HSEGOR ;SAVE HISEG ORIGIN 520 000544' 361 06 0 00 000444' SOJL P2,FILREAD ;JUMP IF NO 2ND WORD 521 000545' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET LOWSEG ORIGIN 522 000546' 552 01 0 00 004071' HRRZM T1,LSEGOR ;... 523 000547' 254 00 0 00 000470' JRST FILRD3 ;CONTINUE 524 525 ;HERE TO READ COMMON ALLOCATION BLOCK 526 527 000550' 265 02 0 00 000530' RDCOMM: JSP T2,IBYTEJ ;GET NAME 528 000551' 370 00 0 00 000006 SOS P2 529 000552' 260 17 0 00 000760' CALL R50T6 ;CONVERT TO SIXBIT 530 000553' 260 17 0 00 001152' CALL NTRCOM ;ENDTER IN THE LIST 531 JRST [JSP T2,IBYTEJ ;ALREADY DEFINED IN THIS MODULE 532 000554' 254 00 0 00 004222' JRST RDCOM1] ;IGNORE IT 533 000555' 200 05 0 00 000001 MOVE P1,T1 ;REMEMBER WHERE BLOCK IS 534 000556' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET SIZE 535 000557' 554 02 0 12 000006 HLRZ T2,TL$COM(B) ;GET TOTAL COMMON ALLOC SO FAR 536 000560' 271 02 0 01 000000 ADDI T2,(T1) ;TOTAL NEW 537 000561' 506 02 0 12 000006 HRLM T2,TL$COM(B) ;SAVE 538 000562' 506 01 0 05 000001 HRLM T1,EG$FLG(P1) ;STORE COMMON ALLOCATION IN COMMON BLOC 539 000563' 363 06 0 00 000444' RDCOM1: SOJLE P2,FILREAD ;EXIT IF ENOUGH 540 000564' 254 00 0 00 000550' JRST RDCOMM ;THERE IS MORE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 9 XGLOB MAC 19-MAR-76 13:24 DO ONE FILE 541 000565' 265 02 0 00 000530' RDSYMB: JSP T2,IBYTEJ ;GET THE SYMBOL 542 000566' 135 02 0 00 004224' LDB T2,[POINT 4,T1,3] ;GET CODE 543 000567' 302 02 0 00 000014 CAIE T2,14 ;GLOBAL REQUEST? 544 000570' 254 00 0 00 000573' JRST RDSYM1 ;***NO, IGNORE THIS SYMBOL 545 000571' 260 17 0 00 000760' CALL R50T6 ;CONVER TO SIXBIT IN T1 546 000572' 260 17 0 00 001143' CALL NTRGRQ ;ENTER THIS REQUEST INTO THE CHAIN 547 548 000573' 361 06 0 00 000444' RDSYM1: SOJL P2,FILREAD ;COUNT SYMBOL AND JUMP IF AT END OF BLOCK 549 000574' 265 02 0 00 000530' JSP T2,IBYTEJ ;SKIP VALUE 550 000575' 367 06 0 00 000565' SOJG P2,RDSYMB ;JUMP IF MORE SYMBOLS 551 000576' 254 00 0 00 000444' JRST FILREAD ;NO, READ NEXT BLOCK TYPE 552 553 000577' 621 11 0 00 200000 RDEND: TLZ F,FL.SKP ;CLEAR SKIP FLAG 554 000600' 627 11 0 00 400000 TLZN F,FL.NAM ;HAVE A NAME BLOCK? 555 000601' 254 00 0 00 000614' JRST RDEND1 ;NO NOT TODAY 556 000602' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET FIRST DATA WORD 557 000603' 370 00 0 00 000006 SOS P2 ;COUNT IT 558 000604' 627 11 0 00 004000 TLZN F,FL.HSE ;YES, HAVE A HISEG BLOCK? 559 000605' 254 00 0 00 000617' JRST RDEND2 ;NO, LOWSEG ONLY 560 000606' 274 01 0 00 004072' SUB T1,HSEGOR ;YES, COMPUTE HISEG SIZE 561 000607' 506 01 0 12 000005 HRLM T1,TL$SIZ(B) ;SAVE IN TITLE BLOCK 562 000610' 361 06 0 00 000444' SOJL P2,FILREAD ;JUMP IF DONE 563 000611' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET LOWSEG BREAK 564 000612' 274 01 0 00 004071' SUB T1,LSEGOR ;COMPUTE SIZE 565 000613' 542 01 0 12 000005 HRRM T1,TL$SIZ(B) 566 000614' 361 06 0 00 000444' RDEND1: SOJL P2,FILREAD 567 000615' 265 02 0 00 000530' JSP T2,IBYTEJ ;SKIP ANY LEFT 568 000616' 254 00 0 00 000614' JRST RDEND1 569 570 000617' 274 01 0 00 004071' RDEND2: SUB T1,LSEGOR ;COMPUTE LOWSEG SIZE 571 000620' 552 01 0 12 000005 HRRZM T1,TL$SIZ(B) ;SAVE 572 000621' 254 00 0 00 000614' JRST RDEND1 ;CONTINUE 573 574 000622' 603 11 0 00 400000 RDNTRY: TLNE F,FL.NAM ;HAVE A TITLE BLOCK? 575 000623' 254 00 0 00 000630' JRST RDNT1 ;YES 576 000624' 400 01 0 00 000000 SETZ T1, ;NO, REQUEST ONE 577 000625' 260 17 0 00 001074' CALL NTRTTL ;WITH NULL NAME 578 000626' 254 04 0 00 000626' HALT . ;DIAGNOSTIC 579 000627' 661 11 0 00 400000 TLO F,FL.NAM ;WE HAVE ONE NOW 580 000630' 205 05 0 00 777756 RDNT1: MOVSI P1,-22 ;RELOC WORD EVERY 18 581 000631' 265 02 0 00 000530' RDNT2: JSP T2,IBYTEJ ;GET ENTRY NAME 582 000632' 260 17 0 00 000760' CALL R50T6 ;CONVERT TO SIXBIT 583 000633' 260 17 0 00 001134' CALL NTRENT ;PUT IT IN THE LIST OF ENTRIES 584 000634' 363 06 0 00 000444' SOJLE P2,FILREAD ;JUMP IF END OF BLOCK 585 000635' 253 05 0 00 000631' AOBJN P1,RDNT2 ;JUMP IF NOT RELOC TIME 586 000636' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET RELOC WORD 587 000637' 367 06 0 00 000630' SOJG P2,RDNT1 ;JUMP IF MORE ENTRIES 588 000640' 254 00 0 00 000444' JRST FILREAD ;NO, GET NEXT BLOCK XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 10 XGLOB MAC 19-MAR-76 13:24 DO ONE FILE 589 000641' 265 02 0 00 000530' RDNAME: JSP T2,IBYTEJ ;GET THE NAME 590 000642' 370 00 0 00 000006 SOS P2 ;COUNT THE NAME 591 000643' 260 17 0 00 000760' CALL R50T6 ;CONVERT TO SIXBIT 592 000644' 607 11 0 00 400000 TLNN F,FL.NAM ;ALREADY HAVE TITLE BLOCK? 593 000645' 254 00 0 00 000652' JRST RDNAM1 ;NO, CONTINUE 594 000646' 332 00 0 12 000002 SKIPE TL$NAM(B) ;YES, IS THERE A NAME? 595 000647' 254 04 0 00 000000 HALT ;DIAGNOSTIC 596 000650' 202 01 0 12 000002 MOVEM T1,TL$NAM(B) ;NO, STORE IT 597 000651' 254 00 0 00 000655' JRST RDNAM2 ;CONTINUE 598 000652' 260 17 0 00 001074' RDNAM1: CALL NTRTTL ;ENTER IT 599 000653' 661 11 0 00 200000 TLO F,FL.SKP ;ALREADY DEFINED 600 000654' 661 11 0 00 400000 TLO F,FL.NAM ;WE HAVE NAME BLOCK 601 000655' 361 06 0 00 000444' RDNAM2: SOJL P2,FILREAD ;JUMP IS NO FLAG WORD 602 000656' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET FLAG WORD 603 000657' 502 01 0 12 000001 HLLM T1,TL$FLG(B) ;STORE CPU/XLATR FLAGS 604 000660' 135 02 0 00 004225' LDB T2,[POINT 12,T1,17] ;GET XLATOR TYPE 605 000661' 306 02 0 00 000002 CAIN T2,CBLXLT ;IS IT COBOL? 606 000662' 254 00 0 00 000470' JRST FILRD3 ;YES--RH IS SIZE OF STATIC LOW SEG 607 000663' 550 05 0 00 000001 HRRZ P1,T1 ;GET POSSIBLE BLANK COMMON ALLOC 608 000664' 322 05 0 00 000470' JUMPE P1,FILRD3 ;JUMP IF NONE 609 000665' 200 01 0 00 004226' MOVE T1,[SIXBIT/.COMM./] ;BLANK COMMON NAME 610 000666' 260 17 0 00 001152' PUSHJ P,NTRCOM ;ENTER IT 611 000667' 254 00 0 00 000470' JRST FILRD3 ;??ALREADY DEFINED?? 612 000670' 506 05 0 01 000001 HRLM P1,EG$FLG(T1) ;STORE BLANK COMMON SIZE 613 000671' 554 02 0 12 000006 HLRZ T2,TL$COM(B) ;CURRENT SIZE THIS MODULE 614 000672' 271 02 0 05 000000 ADDI T2,(P1) ;ADD NEW 615 000673' 506 02 0 12 000006 HRLM T2,TL$COM(B) ;STORE 616 000674' 254 00 0 00 000470' JRST FILRD3 ;CONTINUE 617 618 000675' 265 02 0 00 000530' RDF40: JSP T2,IBYTEJ ;SKIP OVER CODE 619 000676' 554 02 0 00 000001 HLRZ T2,T1 ;[2] GET CODE BITS 620 000677' 405 02 0 00 770000 ANDI T2,770000 ;[2] TRIM TO TYPE 621 000700' 306 02 0 00 040000 CAIN T2,40000 ;[2] GLOBAL DEFINITION? 622 JRST [ ;[2] YES--ENTER IT 623 CALL R50T6 ;[2] CONVERT TO SIXBIT 624 CALL NTRENT ;[2] ENTER THE ENTRY 625 JRST RDF40 ;[2] CONTINUE THE SCAN 626 000701' 254 00 0 00 004227' ] 627 000702' 312 01 0 00 004232' CAME T1,[-2] ; 628 000703' 254 00 0 00 000675' JRST RDF40 ;NOT YYET 629 000704' 201 03 0 00 000003 MOVEI T3,3 ;SKIP TWO WORDS 630 000705' 265 02 0 00 000530' JSP T2,IBYTEJ 631 000706' 367 03 0 00 000705' SOJG T3,.-1 632 000707' 200 03 0 00 000001 MOVE T3,T1 ;GET LAST WORD 633 000710' 322 03 0 00 000713' JUMPE T3,RDF40A ;JUMP IS NULL SECTION 634 000711' 265 02 0 00 000530' JSP T2,IBYTEJ 635 000712' 367 03 0 00 000711' SOJG T3,.-1 636 637 000713' 265 02 0 00 000530' RDF40A: JSP T2,IBYTEJ ;GET # GLOBAL REQUESTS 638 000714' 322 01 0 00 000722' JUMPE T1,RDF40C ;JUMP IF NONE 639 000715' 200 06 0 00 000001 MOVE P2,T1 ;COPY IT 640 000716' 265 02 0 00 000530' RDF40B: JSP T2,IBYTEJ ;GET SYMBOL 641 000717' 260 17 0 00 000760' CALL R50T6 ;CONVERT TO SIXBIT 642 000720' 260 17 0 00 001143' CALL NTRGRQ ;PUT IN GLOBAL REQUEST LIST 643 000721' 367 06 0 00 000716' SOJG P2,RDF40B ;GET ALL OF THEM XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 10-1 XGLOB MAC 19-MAR-76 13:24 DO ONE FILE 644 645 000722' 265 02 0 00 000530' RDF40C: JSP T2,IBYTEJ ;# WORDS IN SCLAR SECTION 646 000723' 322 01 0 00 000727' JUMPE T1,RDF40D ;JUMP IF NONE 647 000724' 200 03 0 00 000001 MOVE T3,T1 ;COPY IT 648 000725' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET ONE 649 000726' 367 03 0 00 000725' SOJG T3,.-1 ;SKIP THEM ALL 650 651 000727' 265 02 0 00 000530' RDF40D: JSP T2,IBYTEJ ;GET # WORDS IN ARRAY SECTION 652 000730' 322 01 0 00 000734' JUMPE T1,RDF40E ;JUMP IF NONE 653 000731' 200 03 0 00 000001 MOVE T3,T1 654 000732' 265 02 0 00 000530' JSP T2,IBYTEJ 655 000733' 367 03 0 00 000732' SOJG T3,.-1 656 657 000734' 265 02 0 00 000530' RDF40E: JSP T2,IBYTEJ ;NUMBER WORDS IN NEXT SECTION 658 000735' 322 01 0 00 000741' JUMPE T1,RDF40F ;JUMP IF EMPTY 659 000736' 200 03 0 00 000001 MOVE T3,T1 660 000737' 265 02 0 00 000530' JSP T2,IBYTEJ 661 000740' 367 03 0 00 000737' SOJG T3,.-1 662 663 000741' 265 02 0 00 000530' RDF40F: JSP T2,IBYTEJ ;SKIP A WORD 664 000742' 265 02 0 00 000530' JSP T2,IBYTEJ ;GET # WORDS IN COMMON SECTION 665 000743' 322 01 0 00 000747' JUMPE T1,RDF40G ;JUMP IF NONE 666 000744' 200 03 0 00 000001 MOVE T3,T1 667 000745' 265 02 0 00 000530' JSP T2,IBYTEJ 668 000746' 367 03 0 00 000745' SOJG T3,.-1 669 670 000747' 621 11 0 00 400000 RDF40G: TLZ F,FL.NAM ;THIS IS THE END 671 000750' 254 00 0 00 000444' JRST FILREAD ;READ NEXT BLOCK 672 673 ;E.BLKT: CALL UPSCN ;PUT SCAN BACK 674 000751' 201 01 0 00 004233' E.BLKT: MOVEI T1,[ASCIZ\%GBXUBA UNKNOWN BLOCK TYPE \] 675 000752' 260 17 0 00 000352* CALL .TSTRG 676 000753' 200 01 0 00 000005 MOVE T1,P1 677 000754' 260 17 0 00 000000* CALL .TOCTW ;TELL WHAT SORT IT IS 678 MOVEI T1,[ASCIZ\, ATTEMPTING RECOVERY 679 000755' 201 01 0 00 004241' \] 680 000756' 260 17 0 00 000752* CALL .TSTRG 681 ; CALL DWNSCN ;MAKE SCAN DISAPPEAR 682 000757' 254 00 0 00 000470' JRST FILRD3 ;IGNORE ILLEGAL BLOCK TYPES XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 11 XGLOB MAC 19-MAR-76 13:24 DO ONE FILE 683 ;CALL WITH SYMBOL IN T1 IN RADIX 50 684 ;RETURN WITH SIXBIT SYMBOL IN T1 685 ;USES T1-3 686 687 000760' 621 01 0 00 740000 R50T6: TLZ T1,740000 ;CLEAR CODE BITS 688 000761' 400 03 0 00 000000 SETZ T3, ;CLEAR RESULT 689 ;CODED INLINE FOR SPEED 690 REPEAT 4,< 691 XLIST 692 IDIVI T1,50 ;PEEL OFF A DIGIT 693 SKIPE T2,R50TAB(T2) ;LOAD UP SIXBIT 694 LSHC T2,-6 ;ADD INTO T3 695 CAIG T1,50 ;DOWN TO LAST DIGIT? 696 JRST R50T6X ;YES 697 LIST 698 >;END REPEAT 4 699 700 701 001006' 231 01 0 00 000050 IDIVI T1,50 ;GET NEXT TO LAST DIGIT 702 001007' 332 02 0 02 001015' SKIPE T2,R50TAB(T2) ;GET FIFTH CHAR 703 001010' 246 02 0 00 777772 LSHC T2,-6 ;STORE IT 704 001011' 332 02 0 01 001015' R50T6X: SKIPE T2,R50TAB(T1) ;ONCE MORE 705 001012' 246 02 0 00 777772 LSHC T2,-6 706 001013' 200 01 0 00 000003 MOVE T1,T3 ;POSITION 707 001014' 263 17 0 00 000000 RETURN 708 709 DEFINE R50 (C)< 710 XLIST 711 IRPC C,< 712 ''C'' 713 > 714 LIST 715 > 716 717 001015' R50TAB: R50 ( 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.$% ) 718 719 ;CALL WITH COUNT IN P2 720 ;RETURN WITH CORRECT COUNT (INCLUDING RELOC WORDS IN P2) 721 722 001066' 550 01 0 00 000006 COUNT: HRRZ T1,P2 ;GET COUNT 723 001067' 231 01 0 00 000022 IDIVI T1,22 ;COUNT #18 GROUUPS 724 001070' 271 06 0 01 000000 ADDI P2,(T1) ;ONE RELOC WORD FOR EACH 725 001071' 332 00 0 00 000002 SKIPE T2 ;ANY STRAGGLERS? 726 001072' 350 00 0 00 000006 AOS P2 ;YES, ONE MORE RELOC WORD 727 001073' 263 17 0 00 000000 RETURN ;BACK XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 12 XGLOB MAC 19-MAR-76 13:24 NTRTTL/NTRGRQ/NTRENT 728 SUBTTL NTRTTL/NTRGRQ/NTRENT 729 730 ;NTRTTL 731 ;CALL: MOVE T1,SIXBIT NAME 732 ; CALL NTRTTL 733 ; *RETURN IF ALREADY DEFINED* 734 ; *RETURN THIS DEFINES IT* 735 736 001074' 260 17 0 00 001126' NTRTTL: CALL IFDFIN ;SEE IF MODULE DEFINED 737 001075' 354 00 0 17 000000 AOSA (P) ;NO, ENTER IT 738 001076' 263 17 0 00 000000 RETURN ;YES, RETURN CPOPJ 739 SAVE T1 ;SAVE THE SYMBOL 740 001100' 201 01 0 00 000013 MOVEI T1,TTLSIZ ;GET CORE FOR IT 741 001101' 260 17 0 00 000340' CALL GETCOR ;... 742 001102' 250 12 0 00 000001 EXCH B,T1 ;SAVE LAST, GET NEW 743 001103' 402 00 0 12 000000 SETZM (B) ;CLEAR THE BLOCK 744 001104' 205 02 0 12 000000 MOVSI T2,(B) 745 001105' 541 02 0 12 000001 HRRI T2,1(B) ;FORM BLT WORD 746 001106' 251 02 0 12 000012 BLT T2,TTLSIZ-1(B) ;CLEAR THE BLOCK 747 RESTOR TL$NAM(B) ;ENTER THE NAME 748 001110' 200 02 0 00 002032' MOVE T2,OPNBLK+.OPDEV;GET THE DEVICE 749 001111' 202 02 0 12 000007 MOVEM T2,TL$DEV(B) ;STORE 750 001112' 200 02 0 00 002024' MOVE T2,LKPBLK+.RBNAM;FILENAME 751 001113' 202 02 0 12 000011 MOVEM T2,TL$FIL(B) ; 752 001114' 200 02 0 00 002025' MOVE T2,LKPBLK+.RBEXT;EXTENSION 753 001115' 512 02 0 12 000012 HLLZM T2,TL$EXT(B) 754 001116' 200 02 0 00 002023' MOVE T2,LKPBLK+.RBPPN;AND THE PPN 755 001117' 202 02 0 12 000010 MOVEM T2,TL$PPN(B) 756 001120' 201 02 0 00 400000 MOVX T2,FT$LIB ;GET BIT FOR LIBRARY 757 001121' 332 00 0 11 000032 SKIPE .FXLIB(F) ;LIBRARY? 758 001122' 436 02 0 12 000001 IORM T2,TL$FLG(B) ;YES, INDICATE IT 759 001123' 542 12 0 01 000000 HRRM B,(T1) ;STORE LINK TO THIS ONE 760 001124' 506 01 0 12 000000 HRLM T1,(B) ;STORE BACK LINK 761 001125' 263 17 0 00 000000 RETURN ;SKIP BACK 762 763 ;CALL WITH T1 SIXBIT NAME 764 ;SKIP IF TITLE BLOCK DEFINED, NO SKIP IF NOT 765 766 001126' 201 02 0 00 004134' IFDFIN: MOVEI T2,LSTHED ;START THE SEARCH 767 001127' 550 02 0 02 000000 IFDF1: HRRZ T2,(T2) ;MOVE ALONG THE LIST 768 001130' 322 02 0 00 000000* JUMPE T2,.POPJ ;JUMP IF NOT FOUND 769 001131' 312 01 0 02 000002 CAME T1,TL$NAM(T2) ;IS THIS ME? 770 001132' 254 00 0 00 001127' JRST IFDF1 ;NO, KEEP SEARCHING 771 001133' 254 00 0 00 000000* JRST .POPJ1 ;YES, SKIP BACK XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 13 XGLOB MAC 19-MAR-76 13:24 NTRTTL/NTRGRQ/NTRENT 772 ;NTRENT TO ENTER AN ENTRY 773 ;NTRGRQ TO ENTER A GLOBAL REQUEST 774 ;NTRLOC TO ENTER A LOCAL SYMBOL (FUTURE) 775 776 001134' 603 11 0 00 200000 NTRENT: TLNE F,FL.SKP ;IGNORING THIS BLOCK? 777 001135' 263 17 0 00 000000 RETURN 778 001136' 201 02 0 12 000003 MOVEI T2,TL$ENT(B) ;INIT THE POINTER 779 001137' 260 17 0 00 001161' CALL ENTRIT ;PUT IT ON THE LIST 780 001140' 263 17 0 00 000000 RETURN ;ALREADY DEFINED 781 001141' 201 02 0 00 004132' MOVEI T2,ENTLST-EG$ORD;POINT AT LIST MINUS OFFSET 782 001142' 254 00 0 00 001212' PJRST ENTSRT ;PUT THIS ENTRY IN THE SORTED LIST NOW 783 784 001143' 603 11 0 00 200000 NTRGRQ: TLNE F,FL.SKP 785 001144' 263 17 0 00 000000 RETURN 786 001145' 201 02 0 12 000004 MOVEI T2,TL$GRQ(B) 787 001146' 260 17 0 00 001161' CALL ENTRIT ;PUT IN THE TABLE 788 001147' 263 17 0 00 000000 RETURN ;ALREADY THERE 789 001150' 201 02 0 00 004133' MOVEI T2,GLBLST-EG$ORD;PUT THIS ENTRY IN ALPHA LIST 790 001151' 254 00 0 00 001212' PJRST ENTSRT ;... 791 792 001152' 603 11 0 00 200000 NTRCOM: TLNE F,FL.SKP ;SKIPPING? 793 001153' 263 17 0 00 000000 RETURN ;YES 794 001154' 201 02 0 12 000006 MOVEI T2,TL$COM(B) ;GET THE LIST 795 001155' 260 17 0 00 001161' CALL ENTRIT ;ENTER COMMON IN THE LIST 796 001156' 263 17 0 00 000000 RETURN ;ALREADY DEFINED 797 001157' 350 00 0 17 000000 AOS (P) 798 001160' 263 17 0 00 000000 RETURN ;RETURN WITH ADDR IN T1 799 800 ;CALL HERE TO PUT ITEM IN THE LIST 801 ;RETURN CPOPJ IF ALREADY IN 802 ;RETURN CPOPJ1 IN JUST INSERTED WITH PTR IN T1 803 804 001161' 200 03 0 00 000002 ENTRIT: MOVE T3,T2 ;REMEMBER WHERE WE CAME FROM 805 001162' 550 02 0 02 000000 HRRZ T2,(T2) ;GET NEXT 806 001163' 322 02 0 00 001177' JUMPE T2,ENTRT2 ;JUMP IF AT END OF LIST 807 001164' 316 01 0 02 000002 CAMN T1,EG$NAM(T2) ;IS THIS IT? 808 001165' 263 17 0 00 000000 RETURN ;YES, RETURN 809 001166' 313 01 0 02 000002 CAMLE T1,EG$NAM(T2) ;NO, SHOULD IT GO IN HERE ALPHABETICALY? 810 001167' 254 00 0 00 001161' JRST ENTRIT ;NO, KEEP LOOKING 811 812 001170' 260 17 0 00 001205' ENTRT3: CALL ENTRT5 ;PUT NAME IN THE CORE WE WILL GET 813 001171' 200 02 0 03 000000 MOVE T2,(T3) ;GET PTR TO NEXT LINK 814 001172' 542 02 0 01 000000 HRRM T2,(T1) ;MAKE THIS ONE POINT AT IT 815 001173' 506 03 0 01 000000 HRLM T3,(T1) ;SET IN THE BACK LINK 816 001174' 506 01 0 02 000000 HRLM T1,(T2) ;SET IN BACK LINK ON NEXT LINK 817 001175' 542 01 0 03 000000 HRRM T1,(T3) ;MAKE PREDECESSOR POINT AT ME 818 001176' 254 00 0 00 001202' JRST ENTRTX ;GO FINISH UP 819 820 821 001177' 260 17 0 00 001205' ENTRT2: CALL ENTRT5 ;GET CORE AND INSERT NAME 822 001200' 542 01 0 03 000000 HRRM T1,(T3) ;SET THIS LINK INTO TH CHAIN 823 001201' 516 03 0 01 000000 HRLZM T3,(T1) ;SET IN BACK LINK,,CLEAR FORWARD LINK 824 001202' 402 00 0 01 000001 ENTRTX: SETZM EG$FLG(T1) ;CLEAR THE FLAGS 825 001203' 552 12 0 01 000003 HRRZM B,EG$TTL(T1) ;AND POINT TO TITLE BLOCK 826 001204' 254 00 0 00 001133* JRST .POPJ1 ;SKIP BACK--WE JUST INSERTED IT XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 13-1 XGLOB MAC 19-MAR-76 13:24 NTRTTL/NTRGRQ/NTRENT 827 828 001205' ENTRT5: SAVE T1 ;SAVE NAME 829 001206' 201 01 0 00 000004 MOVEI T1,EGLSIZ ;GET BLOCK SIZE 830 001207' 260 17 0 00 000340' CALL GETCOR ;GET NEEDED CORE 831 RESTORE EG$NAM(T1) ;PUT THE NAMEIN THE TABLE 832 001211' 263 17 0 00 000000 RETURN 833 834 ;CALL HERE TO ENTER ENTRY OR GLOBAL REF INTO LINKED ALPHABETICAL TABLE 835 ;T1=PTR TO THIS ENTRY 836 ;T2=PTR TO ENTLST OR GLBLST 837 838 001212' ENTSRT: 839 001212' 200 03 0 00 000002 ENTSR2: MOVE T3,T2 ;SAVE LAST 840 001213' 554 02 0 02 000003 HLRZ T2,EG$ORD(T2) ;GET NEXT 841 001214' 322 02 0 00 001220' JUMPE T2,ENTSR1 ;JUMP IF AT END 842 001215' 200 04 0 01 000002 MOVE T4,EG$NAM(T1) ;GET NAME WE ARE AT 843 001216' 313 04 0 02 000002 CAMLE T4,EG$NAM(T2) ;DOES IT GO IN HERE? 844 001217' 254 00 0 00 001212' JRST ENTSR2 ;NO, SEARCH SOME MORE 845 846 001220' 506 02 0 01 000003 ENTSR1: HRLM T2,EG$ORD(T1) ;SAVE LINK 847 001221' 506 01 0 03 000003 HRLM T1,EG$ORD(T3) ;PUT THIS ONE IN THE LIST 848 001222' 263 17 0 00 000000 RETURN XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 14 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 849 SUBTTL LISTING ROUTINES 850 851 001223' 260 17 0 00 000000* LISTIT: CALL .SAVE4 ;MIGHT AS WELL... 852 001224' 260 17 0 00 001271' CALL LINKER ;GO LINK EVERYTHING UP 853 001225' 201 12 0 00 004132' MOVEI B,ENTLST-EG$ORD ;INIT THE PERM POINTER 854 001226' 603 11 0 00 100000 TLNE F,FL.TTO ;OUTPUTTING TO TTY? 855 001227' 254 00 0 00 001236' JRST LSTIT1 ;YES, SKIP AHEAD 856 001230' 201 01 0 00 001650' MOVEI T1,OBYTE ;SET UP OUTPUT ROUTINE 857 001231' 260 17 0 00 000000* CALL .TYOCH ;WITH SCAN 858 SAVE T1 ;BUT REMEMBER WHAT IT WAS 859 001233' 201 01 0 00 000074 MOVEI T1,^D60 ;SET UP LINES/PAGE 860 001234' 202 01 0 00 004065' MOVEM T1,LINKNT 861 001235' 661 11 0 00 040000 TLO F,FL.PP ;PRETTY PRINT 862 863 001236' 201 01 0 00 004246' LSTIT1: MOVEI T1,[ASCIZ\XGLOB %\] 864 001237' 260 17 0 00 000756* CALL .TSTRG 865 001240' 200 01 0 00 000137 MOVE T1,.JBVER ;MY VERSION 866 001241' 260 17 0 00 000000* CALL .TVERW## ;TYPE IT 867 001242' 201 01 0 00 001424' MOVEI T1,HEDMSG ;OUTPUT FIRST MESSAGE 868 001243' 260 17 0 00 001237* CALL .TSTRG ;OUTPUT THE HEADER 869 870 001244' 554 12 0 12 000003 LSTNXT: HLRZ B,EG$ORD(B) ;GET THE NEXT IN THE LIST 871 001245' 322 12 0 00 001265' JUMPE B,LSTDUN ;QUIT AT THE END (AS USUAL) 872 001246' 550 06 0 12 000003 HRRZ P2,EG$TTL(B) ;LINK TO TITLE BLOCK 873 001247' 200 01 0 06 000001 MOVE T1,TL$FLG(P2) ;GET FLAGS 874 001250' 606 01 0 00 400000 TRNN T1,FT$LIB ;IS THIS A LIBRARY 875 001251' 254 00 0 00 001257' JRST LSTNX1 ;NO 876 001252' 606 01 0 00 200000 TRNN T1,FT$REF ;YES, WAS IT REF? 877 001253' 254 00 0 00 001244' JRST LSTNXT ;NO 878 001254' 200 01 0 12 000001 MOVE T1,EG$FLG(B) ;GET FLAGS FOR THIS ENTRY 879 001255' 606 01 0 00 200000 TRNN T1,FT$REF ;HAS IT BEEN REFERENCED? 880 001256' 254 00 0 00 001244' JRST LSTNXT ;NO, DON'T PRINT IT 881 001257' 400 10 0 00 000000 LSTNX1: SETZ P4, ;CLEAR COUNT OF REFERENCES TO THIS ENTRY 882 001260' 200 07 0 00 000121 MOVE P3,.JBFF ;REMEMBER THE START OF THE LIST 883 001261' 260 17 0 00 001510' CALL FNDREF ;FIND ALL REFERENCES, MAKE LIST AT END OF CORE 884 ;POINTING TO TITLE BLOCKS OF REFERENCING MODULS 885 001262' 202 07 0 00 000121 MOVEM P3,.JBFF ;***RESTORE .JBFF NOW, WHILE WE THINK OF IT 886 ; HRRZ P2,EG$TTL(B) ;GET LINK TO TITLE BLOCK 887 ; MOVE T1,TL$FLG(P2) ;GET THE FLAGS 888 ; TRNE T1,FT$LIB ;IS THIS A LIBRARY? 889 ; JUMPE P4,LSTNXT ;YES, AND IF WE JUMP IT WAS NEVER REFERENCED 890 001263' 260 17 0 00 001350' CALL LSTENT ;NO, LIST THIS ENTRY 891 001264' 254 00 0 00 001244' JRST LSTNXT ;AND GO ON TO THE NEXT ONE 892 001265' 603 11 0 00 100000 LSTDUN: TLNE F,FL.TTO ;TTY OUTPUT? 893 001266' 263 17 0 00 000000 RETURN ;YES, ALLDONE 894 RESTOR T1 ;GET TYPEOUT ADDRESS BACK 895 001270' 254 00 0 00 001231* PJRST .TYOCH ;RESTORE AND RETURN XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 15 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 896 001271' 201 12 0 00 004134' LINKER: MOVEI B,LSTHED ;POINT AT TITLE LIST 897 001272' 550 12 0 12 000000 LINK1: HRRZ B,(B) ;LINK TO NEXT 898 001273' 322 12 0 00 001302' JUMPE B,LINK2 ;JUMP IF DONE WITH PHASE ONE 899 001274' 200 01 0 12 000001 MOVE T1,TL$FLG(B) ;NO, GET FLAGS 900 001275' 602 01 0 00 400000 TRNE T1,FT$LIB ;LIBRARY? 901 001276' 254 00 0 00 001272' JRST LINK1 ;YES, IGNORE IT 902 001277' 201 05 0 12 000004 MOVEI P1,TL$GRQ(B) ;NO, POINT AT GLOBAL REQUEST LIST 903 001300' 260 17 0 00 001322' CALL LNKSAT ;FLAG ALL MODULES THAT SATISFY GLB REQ 904 001301' 254 00 0 00 001272' JRST LINK1 ;DO ALL NON-LIB MODULES 905 906 001302' 201 12 0 00 004134' LINK2: MOVEI B,LSTHED ;NOW DO ALL LIBRARY MODULES 907 001303' 402 00 0 00 004070' SETZM FOUND1 ;CLEAR THE FLAG TO GO AGAIN 908 001304' 550 12 0 12 000000 LINK3: HRRZ B,(B) ;CHAIN TO NEXT 909 001305' 322 12 0 00 001317' JUMPE B,LINK4 ;JUMP AT THE END 910 001306' 200 01 0 12 000001 MOVE T1,TL$FLG(B) ;GET THE FLAGS 911 001307' 602 01 0 00 400000 TRNE T1,FT$LIB ;IS IT A LIBRARY? 912 001310' 606 01 0 00 200000 TRNN T1,FT$REF ;YES, HAS IT BEEN REFERENCED? 913 001311' 254 00 0 00 001304' JRST LINK3 ;NO TO ONE OF ABOVE 914 001312' 602 01 0 00 100000 TRNE T1,FT$SCN ;BEEN SCANED YET/ 915 001313' 254 00 0 00 001304' JRST LINK3 ;YES, ONLY DO IT ONCE 916 001314' 201 05 0 12 000004 MOVEI P1,TL$GRQ(B) ;NO, GET GRQ LIST 917 001315' 260 17 0 00 001322' CALL LNKSAT ;FIND SATISFYING MODULES 918 001316' 254 00 0 00 001304' JRST LINK3 919 920 001317' 332 00 0 00 004070' LINK4: SKIPE FOUND1 ;DO ANYTHING? 921 001320' 254 00 0 00 001302' JRST LINK2 ;YES, GO AGAIN 922 001321' 263 17 0 00 000000 RETURN ;NO, RETURN 923 924 001322' LNKSAT: 925 001322' 550 05 0 05 000000 LSAT1: HRRZ P1,(P1) ;MOVE ALONG GRQ LIST 926 001323' 322 05 0 00 001130* JUMPE P1,.POPJ ;RETURN ON NULL 927 001324' 200 04 0 05 000002 MOVE T4,EG$NAM(P1) ;GET THE NAME 928 001325' 201 03 0 00 004134' MOVEI T3,LSTHED ;POINT AT THE LIST 929 001326' 550 03 0 03 000000 LSAT2: HRRZ T3,(T3) ;CHAIN TO NEXT 930 001327' 322 03 0 00 001322' JUMPE T3,LSAT1 ;FINISED? 931 001330' 200 02 0 03 000001 MOVE T2,TL$FLG(T3) ;NO, GET FLAGS 932 001331' 602 02 0 00 400000 TRNE T2,FT$LIB ;LIBRARY? 933 001332' 602 02 0 00 200000 TRNE T2,FT$REF ;YES, REFERENCED? 934 001333' 254 00 0 00 001326' JRST LSAT2 ;NOT LIB OR ALREADY REF 935 001334' 201 02 0 03 000003 MOVEI T2,TL$ENT(T3) ;POINT AT ENTRY LST 936 001335' 550 02 0 02 000000 LSAT3: HRRZ T2,(T2) ;LINK TO NEXT 937 001336' 322 02 0 00 001326' JUMPE T2,LSAT2 ;JUMP ON END 938 001337' 312 04 0 02 000002 CAME T4,EG$NAM(T2) ;ENTRY SATISFY GRQ? 939 001340' 254 00 0 00 001335' JRST LSAT3 ;NO 940 001341' 201 01 0 00 200000 MOVEI T1,FT$REF ;YES, GET FLAG BIT 941 001342' 436 01 0 03 000001 IORM T1,TL$FLG(T3) ;FLAG IN TITLE BLOCK 942 001343' 436 01 0 02 000001 IORM T1,EG$FLG(T2) ;SET ENTRY ENTRY REFERENCED 943 001344' 201 02 0 00 100000 MOVEI T2,FT$SCN ;GET SCANNED FLAG 944 001345' 436 02 0 05 000001 IORM T2,TL$FLG(P1) ;FLAG THIS BLOCK SCANNED 945 001346' 476 00 0 00 004070' SETOM FOUND1 ;FLAG TO GO AGAIN 946 001347' 254 00 0 00 001326' JRST LSAT2 ;FIND MORE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 16 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 947 ;CALL HERE TO LIST ONE ENTRY 948 949 001350' 260 17 0 00 000000* LSTENT: CALL .TCRLF ;START WITH NEW LINE 950 001351' 201 01 0 00 001423' MOVEI T1,STARS ;START OUT WITH SOME STARS 951 001352' 260 17 0 00 001243* CALL .TSTRG 952 001353' 200 01 0 12 000002 MOVE T1,EG$NAM(B) ;GET THE NAME 953 001354' 260 17 0 00 000000* CALL .TSIXN ;OUTPUT IT 954 001355' 201 01 0 00 001423' MOVEI T1,STARS ;MORE STARS 955 001356' 260 17 0 00 001352* CALL .TSTRG 956 MOVEI T1,[ASCIZ\ 957 001357' 201 01 0 00 004250' FOUND IN \] 958 001360' 260 17 0 00 001356* CALL .TSTRG 959 001361' 260 17 0 00 001505' CALL LISFLS ;OUTPUT THE FILE SPEC 960 001362' 201 01 0 00 004253' MOVEI T1,[ASCIZ\, MODULE \] 961 001363' 260 17 0 00 001360* CALL .TSTRG 962 001364' 200 01 0 06 000002 MOVE T1,TL$NAM(P2) ;THE MODULE NAME 963 001365' 260 17 0 00 001354* CALL .TSIXN 964 001366' 201 01 0 00 004255' MOVEI T1,[ASCIZ\, COMPILED BY \] 965 001367' 260 17 0 00 001363* CALL .TSTRG 966 001370' 135 01 0 00 004260' LDB T1,[POINT 12,TL$FLG(P2),17] ;COMPILER VALUE 967 001371' 303 01 0 00 000013 CAILE T1,MXLATR ;CHECK FOR ONE WE KNOW 968 001372' 201 01 0 00 000000 MOVEI T1,0 ;NO, USE ??? 969 001373' 200 01 0 01 001472' MOVE T1,XLATOR(T1) ;GET STRING ADDRESS 970 001374' 260 17 0 00 001367* CALL .TSTRG 971 IFN FTCPU,< 972 MOVEI T1,[ASCIZ\ FOR \] 973 CALL .TSTRG 974 LDB T1,[POINT 6,TL$FLG(P2),5] ;CPU IT WILL RUN ON 975 CAILE T1,MAXCPU 976 MOVEI T1,0 ;MUST BE KL 977 MOVE T1,CPUTYP(T1) 978 CALL .TSTRG 979 >;END IFN FTCPU 980 001375' 260 17 0 00 001350* CALL .TCRLF ;NEXT LINE 981 001376' 201 01 0 00 004261' MOVEI T1,[ASCIZ\MODULE SIZE IS \] 982 001377' 260 17 0 00 001374* CALL .TSTRG ;TELL THE SIZZE 983 001400' 554 01 0 06 000005 HLRZ T1,TL$SIZ(P2) ;GET HISEG SIZE 984 001401' 322 01 0 00 001405' JUMPE T1,LSTEN1 ;JUMP IF NO HISEG 985 001402' 260 17 0 00 001603' CALL TOCDEC ;TYPE OCTAL AND DECIMAL 986 001403' 201 01 0 00 004265' MOVEI T1,[ASCIZ\ [HISEG] \] 987 001404' 260 17 0 00 001377* CALL .TSTRG 988 001405' 550 01 0 06 000005 LSTEN1: HRRZ T1,TL$SIZ(P2) 989 001406' 260 17 0 00 001603' CALL TOCDEC 990 001407' 201 01 0 00 004267' MOVEI T1,[ASCIZ\ [LOWSEG] \] 991 001410' 260 17 0 00 001404* CALL .TSTRG 992 001411' 554 01 0 06 000006 HLRZ T1,TL$COM(P2) ;GET COMMON ALLOCATION 993 JUMPE T1,[CALL .TCRLF ;JUMP IF NONE 994 001412' 322 01 0 00 004272' JRST LSTEN2] ;AND CONTINUE 995 001413' 260 17 0 00 001603' CALL TOCDEC ;TYPE THE SIZE 996 MOVEI T1,[ASCIZ\ [COMMON] 997 001414' 201 01 0 00 004274' \] 998 001415' 260 17 0 00 001410* CALL .TSTRG ; 999 001416' 260 17 0 00 001540' LSTEN2: CALL LSENTR ;LIST ENTRY POINTS 1000 001417' 260 17 0 00 001554' CALL LSGRQ ;LIST GLOBAL REQUESTS 1001 001420' 260 17 0 00 001625' CALL LSTCOM ;LIST COMMON ALLOCATION THIS MODULE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 16-1 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 1002 001421' 260 17 0 00 001560' CALL LISREF ;LIST REFERENCES TO THIS ENTRY POINT 1003 001422' 263 17 0 00 000000 RETURN ;***END LIST ONE ENTRY 1004 1005 001423' 052 052 052 000 000 STARS: ASCIZ \***\ ;PRETTY! 1006 001424' HEDMSG: ASCIZ \ 1007 1008 001424' 015 012 015 012 105 E - ENTRY POINTS INTO THE MODULE 1009 001425' 040 055 040 105 116 1010 001426' 124 122 131 040 120 1011 001427' 117 111 116 124 123 1012 001430' 040 111 116 124 117 1013 001431' 040 124 110 105 040 1014 001432' 115 117 104 125 114 1015 001433' 105 015 012 107 040 G - GLOBAL REFERENCES 1016 001434' 055 040 107 114 117 1017 001435' 102 101 114 040 122 1018 001436' 105 106 105 122 105 1019 001437' 116 103 105 123 015 1020 001440' 012 103 040 055 040 C - COMMON DECLARED IN THIS MODULE 1021 001441' 103 117 115 115 117 1022 001442' 116 040 104 105 103 1023 001443' 114 101 122 105 104 1024 001444' 040 111 116 040 124 1025 001445' 110 111 123 040 115 1026 001446' 117 104 125 114 105 1027 001447' 015 012 040 040 040 NOTE: COMMON LENGTH NOT INCLUDED IN MODULE SIZE 1028 001450' 040 116 117 124 105 1029 001451' 072 040 103 117 115 1030 001452' 115 117 116 040 114 1031 001453' 105 116 107 124 110 1032 001454' 040 116 117 124 040 1033 001455' 111 116 103 114 125 1034 001456' 104 105 104 040 111 1035 001457' 116 040 115 117 104 1036 001460' 125 114 105 040 123 1037 001461' 111 132 105 015 012 R - MODULES THAT REFERENCE THIS ONE 1038 001462' 122 040 055 040 115 1039 001463' 117 104 125 114 105 1040 001464' 123 040 124 110 101 1041 001465' 124 040 122 105 106 1042 001466' 105 122 105 116 103 1043 001467' 105 040 124 110 111 1044 001470' 123 040 117 116 105 1045 1046 001471' 015 012 015 012 000 \ XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 17 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 1047 DEFINE P(A)<[ASCIZ\'A\]> 1048 1049 001472' 000000 004277' XLATOR: P UNKNOWN 1050 001473' 000000 004301' P F40 1051 001474' 000000 004302' P COBOL 1052 000002 CBLXLT==.-XLATOR-1 ;COBOL COMPILER TYPE 1053 001475' 000000 004304' P ALGOL-60 1054 001476' 000000 004306' P NELIAC 1055 001477' 000000 004310' P PL/1 1056 001500' 000000 004311' P BLISS-10 1057 001501' 000000 004313' P SAIL 1058 001502' 000000 004314' P FORTRAN-10 1059 001503' 000000 004317' P MACRO 1060 001504' 000000 004321' P FAIL 1061 000013 MXLATR==.-XLATOR 1062 1063 IFN FTCPU,< 1064 CPUTYP: P 1065 P 1066 P 1067 MAXCPU==.-CPUTYP 1068 >;END IFN FTCPU 1069 1070 001505' 201 02 0 06 000007 LISFLS: MOVEI T2,TL$PPN-.RBPPN(P2) ;FAKE OUT .TOLEB A BIT 1071 001506' 201 01 0 06 000006 MOVEI T1,TL$DEV-.OPDEV(P2) ;AND SOME MORE TRICKERY 1072 001507' 254 00 0 00 000000* PJRST .TOLEB ;GO TYPE THE FILE SPEC 1073 1074 001510' 201 03 0 00 004133' FNDREF: MOVEI T3,GLBLST-EG$ORD ;INIT THE POINTER 1075 001511' 200 04 0 12 000002 FNDRF1: MOVE T4,EG$NAM(B) ;GET NAME WE ARE LOOKING FOR 1076 001512' 554 03 0 03 000003 FNDNXT: HLRZ T3,EG$ORD(T3) ;NEXT LINK 1077 001513' 322 03 0 00 001323* JUMPE T3,.POPJ ;EXIT ON NULL LINK 1078 001514' 312 04 0 03 000002 CAME T4,EG$NAM(T3) ;FIND IT? 1079 001515' 254 00 0 00 001512' JRST FNDNXT ;NO, KEEP LOOKING 1080 001516' 550 05 0 03 000003 HRRZ P1,EG$TTL(T3) ;GET LINK TO TITLE BLOCK 1081 001517' 200 01 0 05 000001 MOVE T1,TL$FLG(P1) ;GET THE FLAGS 1082 001520' 606 01 0 00 400000 TRNN T1,FT$LIB ;IS THIS A LIBRARY? 1083 001521' 254 00 0 00 001524' JRST FNDRF3 ;NO, GO AHEAD 1084 001522' 606 01 0 00 200000 TRNN T1,FT$REF ;YES, HAS IT BEEN REFERENCED ? 1085 001523' 254 00 0 00 001512' JRST FNDNXT ;NO, MOVE ALONG 1086 001524' 322 10 0 00 001534' FNDRF3: JUMPE P4,FNDRF2 ;JUMP IF THIS IS THE FIRST 1087 001525' 210 04 0 00 000010 MOVN T4,P4 ;NO, GET - COUNT OF REFERENCES 1088 001526' 517 00 0 00 000004 HRLZS T4 ;POSITION IN LH 1089 001527' 540 04 0 00 000007 HRR T4,P3 ;POINT AT THE LIST ON THE END OF CORE 1090 001530' 312 05 0 04 000000 CAME P1,(T4) ;IS THIS IT (ALREADY REQUESTED?) 1091 001531' 253 04 0 00 001530' AOBJN T4,.-1 ;NO, LOOP FOR ALL 1092 001532' 321 04 0 00 001511' JUMPL T4,FNDRF1 ;JUMP IF WE FOUND ONE 1093 001533' 200 04 0 12 000002 MOVE T4,EG$NAM(B) ;NO, RESTORE THE NAME 1094 001534' 201 01 0 00 000001 FNDRF2: MOVEI T1,1 ;ADD 1 TO THE LIST 1095 001535' 260 17 0 00 000340' CALL GETCOR ;WHICH ALSO DESTROYS T2 1096 001536' 202 05 0 01 000000 MOVEM P1,(T1) ;STORE ON LIST AT END OF CORE 1097 001537' 344 10 0 00 001512' AOJA P4,FNDNXT ;COUNT AND GO FOR MORE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 18 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 1098 001540' 201 01 0 00 004322' LSENTR: MOVEI T1,[ASCIZ\E \] ;START THE LINE 1099 001541' 260 17 0 00 001415* CALL .TSTRG 1100 001542' 201 05 0 06 000003 MOVEI P1,TL$ENT(P2) ;LINK TO ENTRYS 1101 001543' 260 17 0 00 001613' LSEGGO: CALL INIEGO ;INITIALIZE THE FORMATTER 1102 1103 001544' 550 05 0 05 000000 LSENXT: HRRZ P1,(P1) ;GET THE NEXT ONE 1104 001545' 322 05 0 00 001375* JUMPE P1,.TCRLF ;QUIT ON NULL 1105 001546' 200 01 0 05 000002 MOVE T1,EG$NAM(P1) ;GET THE NAME 1106 001547' 260 17 0 00 001365* CALL .TSIXN ;TYPE IT 1107 001550' 377 00 0 00 004066' SOSG MODKNT ;CHECK IF TIME FOR NEW LINE 1108 JRST [CALL .TCRLF ;YES, FORCE ONE 1109 CALL INIEGO ;INIT THE NEW LINE 1110 HRRZ T1,(P1) ;GET LINK TO NEXT 1111 JUMPE T1,.POPJ;JUMP IF NO MORE TO PRINT 1112 001551' 254 00 0 00 004323' JRST .+1] ;YES, TAB OVER AND CONTINUE 1113 001552' 260 17 0 00 000000* CALL .TTABC ;MOVE TO NEXT TAB STOP 1114 001553' 254 00 0 00 001544' JRST LSENXT ;LIST NEXT ENTRY 1115 1116 001554' 201 01 0 00 004330' LSGRQ: MOVEI T1,[ASCIZ\G \] ;START FOR GLOBAL REQUESTS 1117 001555' 260 17 0 00 001541* CALL .TSTRG 1118 001556' 201 05 0 06 000004 MOVEI P1,TL$GRQ(P2) ;LINK TO GLOBAL REQUESTS 1119 001557' 254 00 0 00 001543' JRST LSEGGO ;[3] GO DO IT 1120 1121 001560' 326 10 0 00 001563' LISREF: JUMPN P4,LISRF1 ;CHECK FOR NEVER REFERENCED 1122 MOVEI T1,[ASCIZ\NEVER REFERENCED 1123 001561' 201 01 0 00 004331' \] 1124 001562' 254 00 0 00 001555* PJRST .TSTRG ;OUTPUT AND RETURN 1125 001563' 201 01 0 00 004335' LISRF1: MOVEI T1,[ASCIZ\R \] ;START THE LINE 1126 001564' 260 17 0 00 001562* CALL .TSTRG 1127 001565' 260 17 0 00 001620' CALL INIRFL ;INIT FOR TYPEOUT 1128 001566' 200 06 0 07 000000 LISRF2: MOVE P2,(P3) ;GET THE POINTER TO TITLE BLOCK 1129 001567' 260 17 0 00 001505' CALL LISFLS ;OUTPUT THE NAME 1130 001570' 260 17 0 00 001601' CALL .TSLSH ;AND A SLASH 1131 001571' 200 01 0 06 000002 MOVE T1,EG$NAM(P2) ;GET THE MODULE NAME 1132 001572' 260 17 0 00 001547* CALL .TSIXN ;OUTPUT IT 1133 001573' 260 17 0 00 001601' CALL .TSLSH ;ANOTHER SLASH 1134 001574' 377 00 0 00 004066' SOSG MODKNT ;CHEK IF END OF LINE 1135 JRST [CALL .TCRLF ;YES, NEW LINE 1136 SOJLE P4,.POPJ;RETURN IF DONE 1137 CALL INIRFL ;INIT FOR A NEW LINE 1138 CALL .TTABC ;ELSE, SPACE OVER 1139 001575' 254 00 0 00 004336' AOJA P3,LISRF2] ;AND CONTINUE 1140 001576' 260 17 0 00 001552* CALL .TTABC ;SPACE OVER 1141 001577' 363 10 0 00 001545* SOJLE P4,.TCRLF ;QUIT WHEN DONE 1142 001600' 344 07 0 00 001566' AOJA P3,LISRF2 ;NO, BUMP POINTER AND GET NEXT 1143 1144 001601' 201 01 0 00 000057 .TSLSH: MOVEI T1,"/" 1145 001602' 254 00 0 00 000000* PJRST .TCHAR 1146 1147 001603' TOCDEC: SAVE T1 ;SAVE THE NUMBER 1148 001604' 260 17 0 00 000754* CALL .TOCTW ;TYPE OCTAL 1149 001605' 201 01 0 00 004343' MOVEI T1,[ASCIZ\ (\] 1150 001606' 260 17 0 00 001564* CALL .TSTRG 1151 RESTORE T1 ;GET NUMBER BACK 1152 001610' 260 17 0 00 000000* CALL .TDECW ;TYPE DECIMAL XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 18-1 XGLOB MAC 19-MAR-76 13:24 LISTING ROUTINES 1153 001611' 201 01 0 00 004344' MOVEI T1,[ASCIZ\.) \] 1154 001612' 254 00 0 00 001606* PJRST .TSTRG ;OUTPUT AND RETURN 1155 1156 001613' 201 01 0 00 000017 INIEGO: MOVEI T1,^D15 ;PUT 15 ENTRIES AND GLBREQ / LINE 1157 001614' 603 11 0 00 010000 TXNE F,FL.NAR ;/NARROW? 1158 001615' 201 01 0 00 000010 MOVEI T1,^D8 ;THEN ONLY 8 1159 001616' 202 01 0 00 004066' MOVEM T1,MODKNT ;STORE 1160 001617' 263 17 0 00 000000 RETURN 1161 1162 001620' 201 01 0 00 000003 INIRFL: MOVEI T1,3 ;THREE ACROSS 1163 001621' 603 11 0 00 010000 TXNE F,FL.NAR ;IF /NAROW 1164 001622' 201 01 0 00 000002 MOVEI T1,2 ;THEN ONLY 2 1165 001623' 202 01 0 00 004066' MOVEM T1,MODKNT 1166 001624' 263 17 0 00 000000 RETURN 1167 1168 ;HERE TO LIST COMMON DECLARED HERE 1169 1170 001625' 554 01 0 06 000006 LSTCOM: HLRZ T1,TL$COM(P2) ;SEE IF ANY 1171 001626' 322 01 0 00 001513* JUMPE T1,.POPJ ;JUMP IF NOT 1172 001627' 201 01 0 00 004345' MOVEI T1,[ASCIZ\C \] ;START THE LINE 1173 001630' 260 17 0 00 001612* CALL .TSTRG 1174 001631' 201 05 0 06 000006 MOVEI P1,TL$COM(P2) ;INIT THE PTR 1175 001632' 260 17 0 00 001620' CALL INIRFL ;INIT THE FORMATTER 1176 001633' 550 05 0 05 000000 COMNXT: HRRZ P1,(P1) ;GET NEXT 1177 001634' 322 05 0 00 001577* JUMPE P1,.TCRLF ;QUIT ON NULL 1178 001635' 260 17 0 00 001601' CALL .TSLSH ;SLASH 1179 001636' 200 01 0 05 000002 MOVE T1,EG$NAM(P1) ;THE NAME 1180 001637' 260 17 0 00 001572* CALL .TSIXN ;OUTPUT IT 1181 001640' 260 17 0 00 001601' CALL .TSLSH ;SLASH 1182 001641' 260 17 0 00 000000* CALL .TSPAC ;SPACE 1183 001642' 554 01 0 05 000001 HLRZ T1,EG$FLG(P1) ;SIZE 1184 001643' 260 17 0 00 001603' CALL TOCDEC ;LIST IT 1185 001644' 377 00 0 00 004066' SOSG MODKNT ;CHECK FOR NEW LINE 1186 JRST [CALL .TCRLF ;YES 1187 CALL INIRFL 1188 HRRZ T1,(P1) ;SEE IF ANOTHER 1189 JUMPE T1,.POPJ;JUMP IF AT END 1190 CALL .TTABC ;TAB OVER 1191 001645' 254 00 0 00 004346' JRST .+1] ;NO--FORGE ON 1192 001646' 260 17 0 00 001641* CALL .TSPAC ;SPACE OVER 1193 001647' 254 00 0 00 001633' JRST COMNXT ;CONTINUE XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 19 XGLOB MAC 19-MAR-76 13:24 I/O ROUTINES 1194 SUBTTL I/O ROUTINES 1195 1196 ;CALL WITH T1 ASCII BYTE FOR OUTPUT 1197 1198 001650' 377 00 0 00 002016' OBYTE: SOSG OUTBHR+2 ;ROOM? 1199 001651' 254 00 0 00 001664' JRST OBYBUF ;NO 1200 001652' 136 01 0 00 002015' OBYTE1: IDPB T1,OUTBHR+1 1201 001653' 603 11 0 00 040000 TLNE F,FL.PP ;PRETTY PRINT? 1202 001654' 306 01 0 00 000012 CAIN T1,.CHLFD ;YES--IS THIS A LINEFFEED? 1203 001655' 373 00 0 00 004065' SOSLE LINKNT ;YES--TIME TO FORMFEED? 1204 001656' 263 17 0 00 000000 RETURN ;NOT A LINEFEED OR NOT TIME 1205 001657' 201 01 0 00 000074 MOVEI T1,^D60 ;YES, RESET THE COUNTER 1206 001660' 202 01 0 00 004065' MOVEM T1,LINKNT ;... 1207 001661' 201 01 0 00 000014 MOVEI T1,.CHFFD ;GET A FORMFEED 1208 001662' 254 00 0 00 001650' JRST OBYTE ;AND SEND IT 1209 ; AOS BYTCNT ;COUNT FOR FORMATTING 1210 001663' 263 17 0 00 000000 RETURN 1211 001664' 057 02 0 00 000000 OBYBUF: OUT OCH, 1212 001665' 254 00 0 00 001652' JRST OBYTE1 ;NO ERRORS 1213 001666' 254 00 0 00 001652' JRST OBYTE1 ;***FIXUP LATER 1214 1215 ;CALL HERE TO GET 36-BIT BYTE INTO T1 1216 ;SKIP RETURN WITH THE BYTE, OR CPOPJ IF EOF 1217 1218 001667' 375 00 0 00 002021' IBYTE: SOSGE INPBHR+2 ;ANYTHING THERE/ 1219 001670' 254 00 0 00 001674' JRST IBYTEN ;NO 1220 001671' 134 01 0 00 002020' ILDB T1,INPBHR+1 1221 001672' 350 00 0 17 000000 AOS (P) 1222 001673' 263 17 0 00 000000 RETURN 1223 001674' 056 01 0 00 000000 IBYTEN: IN ICH, ;GET NEW BUFFER 1224 001675' 254 00 0 00 001667' JRST IBYTE ;OK, GO GET DATA 1225 001676' 062 01 0 00 000001 GETSTS ICH,T1 ;OOPS, GET STATUS BITS 1226 SAVE T1 ;REMEMBER THEM 1227 001700' 620 01 0 00 740000 TXZ T1,IO.ERR ;CLEAR ERROR BITS 1228 001701' 060 01 0 01 000000 SETSTS ICH,(T1) ;CLEAR WITH MON 1229 RESTOR T1 ;GET BITS BACK 1230 001703' 606 01 0 00 020000 TXNN T1,IO.EOF ;END OF FILE? 1231 001704' 254 00 0 00 001667' JRST IBYTE ;NO, GO PROCESS DATA 1232 001705' 263 17 0 00 000000 RETURN ;YES, POPJ BACK 1233 1234 ;CALL WITH CHAR FOR TTY OUTPUT IN T1 1235 1236 001706' 377 00 0 00 004142' TOCHAR: SOSG TOBHR+2 ;ROOM? 1237 001707' 067 03 0 00 000000 OUTPUT TTY, ;NO, BOOT THE BUFFER 1238 001710' 136 01 0 00 004141' IDPB T1,TOBHR+1 ;STORE IN THE BUFFER 1239 ; AOS BYTCNT ;COUNT FOR FORMATTING 1240 001711' 306 01 0 00 000012 CAIN T1,.CHLFD ;IF A LINEFEED 1241 001712' 067 03 0 00 000000 OUTPUT TTY, ;OUTPUT IT ANYWAY 1242 001713' 263 17 0 00 000000 RETURN XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 20 XGLOB MAC 19-MAR-76 13:24 SCAN SWITCH TABLES 1243 SUBTTL SCAN SWITCH TABLES 1244 1245 DEFINE SWTCHS,< 1246 SS *LIBRAR,.FXLIB,1 1247 SN *NARROW,,FS.NUE 1248 > 1249 1250 DOSCAN (GBXSW) 1251 001714' 125451 426241 EXP SIXBIT /*LIBRAR/ 1252 001715' 125641 626257 EXP SIXBIT /*NARROW/ 1253 001716' 000000 000032 EXP <.FXLIB> ;*LIBRAR 1254 001717' 360100 004073' ARROW 1255 001720' 000000 000000 XWD 0,0 ;*LIBRAR 1256 001721' 000000 000000 XWD 0,0 ;*NARROW 1257 001722' 000000 000001 XWD ..TEMR,1 ;*LIBRAR 1258 001723' 110000 000000 XWD ..TEMR,0 ;*NARROW 1259 XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE 21 XGLOB MAC 19-MAR-76 13:24 STORAGE 1260 SUBTTL STORAGE 1261 1262 IFN FT2SEG, 1263 1264 001724' SGNAM: BLOCK 1 ;SAVE-GET ARGS 1265 001725' SGPPN: BLOCK 1 1266 001726' SGDEV: BLOCK 1 1267 001727' SGLOW: BLOCK 1 1268 001730' PDLIST: BLOCK PDSIZ ;PUSHDOWN LIST 1269 002012' SAVJFF: BLOCK 1 ;ORIG. .JBFF 1270 002013' OFFSET: BLOCK 1 ;START OFFSET FOR CCL 1271 002014' F.ZER==. 1272 002014' OUTBHR: BLOCK 3 ;OUTPUT BUFFER HEADER 1273 002017' INPBHR: BLOCK 3 ;INPUT BUFFER HEADER 1274 002022' LKPBLK: BLOCK .RBSIZ+1 ;EXTENDED LOOKUP BLOCK 1275 002030' WLDTMP: BLOCK 1 ;WILD STORES CURRENT BLOCK ADR HERE 1276 002031' OPNBLK: BLOCK 3 ;DEVICE OPEN BLOCK 1277 002034' OUTBUF: BLOCK 203*NOBUF ;OUTPUT BUFFERS 1278 002442' INPBUF: BLOCK 203*NIBUF ;INPUT BUFFERS 1279 004064' BYTCNT: BLOCK 1 ;REGISTER FOR FORMATTING OUTPUT 1280 004065' LINKNT: BLOCK 1 ;COUNTER FOR LINES/PAGE 1281 004066' MODKNT: BLOCK 1 ;NO. MODULES /LINE 1282 004067' TIMEON: BLOCK 1 ;FOR COUNTING CPU USAGE 1283 004070' FOUND1: BLOCK 1 ;-1 IF NEED ANOTHER PASS IN LINKER 1284 004071' LSEGOR: BLOCK 1 ;LOWSEG ORIGIN 1285 004072' HSEGOR: BLOCK 1 ;HISEG ORIGIN 1286 1287 004073' SCN.F==. ;START OF SCAN INFO AREA 1288 004073' FLAGS: BLOCK 2 ;PERMANENT FLAGS DURING SCAN 1289 004075' O.AREA: BLOCK .FXLEN ;OUTPUT SPEC SIZE 1290 000032 O.SIZE==.FXLEN 1291 004127' SWTWRD: BLOCK 2 ;SWITCH STORE AREA 1292 004131' INBEG: BLOCK 1 ;ADDRESS OF START OF INPUT SPECS 1293 004132' INEND: BLOCK 1 ;ADDRESS OF LAST INPUT SPEC 1294 004133' INXTZ: BLOCK 1 ;CURRENT BLOCK 1295 004134' LSTHED: BLOCK 1 ;POINTER TO FIRST TITLE BLOCK 1296 004135' ENTLST: BLOCK 1 ;POINTER TO SORTED ENTRY LIST 1297 004136' GLBLST: BLOCK 1 ;POINTER TO SORTED GLOBAL LIST 1298 004137' OUTDON: BLOCK 1 ;OUTPUT HAS BEEN SETUP 1299 004137' SCN.Z==.-1 ;END OF SCANINFO AREA 1300 1301 004140' TOBHR: BLOCK 3 ;TTY OUTPUT BUFFER HEADER 1302 004142' L.ZER==.-1 1303 1304 000015' END XGLOB NO ERRORS DETECTED PROGRAM BREAK IS 004354 CPU TIME USED 00:30.974 13K CORE USED XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE S-1 XGLOB MAC 19-MAR-76 13:24 SYMBOL TABLE AC 000000 F.NAM 000323' EXT INIEGO 001613' OBYTE1 001652' ALCIN 000305' F.ZER 002014' SPD INIRFL 001620' OCH 000002 SPD ALCIN1 000317' FBLKSZ 000033 SPD INIT 041000 000000 OFFSET 002013' ALCIN2 000314' FILRD1 000467' INPBHR 002017' OPEN 050000 000000 ALCOUT 000301' FILRD2 000473' INPBUF 002442' OPNBLK 002031' B 000012 FILRD3 000470' INXTZ 004133' OUT 057000 000000 BLKDIS 000516' FILRD4 000465' IO.EOF 020000 SPD OUTBHR 002014' BLKTYP 000504' FILREA 000444' IO.ERR 740000 SPD OUTBUF 002034' BYTCNT 004064' FL.FSA 020000 SPD L.ZER 004142' SPD OUTBUF 065000 000000 C 000010 FL.HSE 004000 SPD LINK1 001272' OUTDON 004137' CALL 260740 000000 FL.NAM 400000 SPD LINK2 001302' OUTPUT 067000 000000 CBLXLT 000002 SPD FL.NAR 010000 000000 SPD LINK3 001304' OUTSTR 051140 000000 CLOSE 070000 000000 FL.PP 040000 SPD LINK4 001317' P 000017 CLRANS 000267' FL.SKP 200000 SPD LINKER 001271' P1 000005 CLRFIL 000255' FL.TTO 100000 SPD LINKNT 004065' P2 000006 CLRFL1 000265' FLAGS 004073' LISFLS 001505' P3 000007 COMNXT 001633' FNDNXT 001512' LISREF 001560' P4 000010 CORE 047000 000011 FNDREF 001510' LISRF1 001563' PD. 000000 SPD COUNT 001066' FNDRF1 001511' LISRF2 001566' PDLIST 001730' DEVCHR 047000 000004 FNDRF2 001534' LISTIT 001223' PDSIZ 000062 SPD DOFILE 000440' FNDRF3 001524' LKPBLK 002022' PJRST 254000 000000 DOXGL1 000106' FOUND1 004070' LNKSAT 001322' PJSP 265000 000000 DOXGLB 000067' FS.LRG 200000 000000 SPD LOOKUP 076000 000000 R50T6 000760' DOXGLF 000132' FS.NOS 010000 000000 SPD LSAT1 001322' R50T6X 001011' DV.DIR 000004 000000 SPD FS.NUE 100000 000000 SPD LSAT2 001326' R50TAB 001015' DWNSCN 000355' FT$LIB 400000 SPD LSAT3 001335' RDCOM1 000563' E.BLKT 000751' FT$REF 200000 SPD LSEGGO 001543' RDCOMM 000550' E.DFL 000251' EXT FT$SCN 100000 SPD LSEGOR 004071' RDEND 000577' E.ENT 000243' FT2SEG 000000 SPD LSENTR 001540' RDEND1 000614' E.LKP 000251' FTCPU 000000 SPD LSENXT 001544' RDEND2 000617' E.NFI 000203' FTDDT 000001 SPD LSGRQ 001554' RDF40 000675' E.NIS 000220' FX.NUL 200000 000000 SPD LSTCOM 001625' RDF40A 000713' E.OPN 000234' GBXSCN 000051' LSTDUN 001265' RDF40B 000716' E.TMO 000226' GBXSWD 001722' LSTEN1 001405' RDF40C 000722' E.WOI 000211' GBXSWL 000002 SPD LSTEN2 001416' RDF40D 000727' EG$BAK 000000 SPD GBXSWM 001720' LSTENT 001350' RDF40E 000734' EG$END 000003 SPD GBXSWN 001714' LSTHED 004134' RDF40F 000741' EG$FLG 000001 SPD GBXSWP 001716' LSTIT1 001236' RDF40G 000747' EG$NAM 000002 SPD GETCOR 000340' LSTNX1 001257' RDHSEG 000537' EG$NXT 000000 SPD GETSEG 047000 000040 LSTNXT 001244' RDNAM1 000652' EG$ORD 000003 SPD GETSTS 062000 000000 MODKNT 004066' RDNAM2 000655' EG$TTL 000003 SPD GLBLST 004136' MX. 000000 SPD RDNAME 000641' EGLSIZ 000004 SPD HALT 254200 000000 MXLATR 000013 SPD RDNDXB 000533' ENTER 077000 000000 HEDMSG 001424' N 000007 RDNT1 000630' ENTLST 004135' HSEGOR 004072' NBLKTY 000012 SPD RDNT2 000631' ENTRIT 001161' IBYTE 001667' NIBUF 000006 SPD RDNTRY 000622' ENTRT2 001177' IBYTEJ 000530' NOBUF 000002 SPD RDSYM1 000573' ENTRT3 001170' IBYTEN 001674' NTRCOM 001152' RDSYMB 000565' ENTRT5 001205' ICH 000001 SPD NTRENT 001134' RELEAS 071000 000000 ENTRTX 001202' IFDF1 001127' NTRGRQ 001143' RESET 047000 000000 ENTSR1 001220' IFDFIN 001126' NTRTTL 001074' RETURN 263740 000000 ENTSR2 001212' IN 056000 000000 O.AREA 004075' SAV0 000417' ENTSRT 001212' INBEG 004131' O.SIZE 000032 SPD SAV17 000436' EXIT 047000 000012 INBUF 064000 000000 OBYBUF 001664' SAVJFF 002012' F 000011 INEND 004132' OBYTE 001650' SCN.F 004073' SPD XGLOB GENERATE REVERSE GLOBS FOR OVERLAY SETUP %1 MACRO %50A(441)-2 14:03 23-FEB-77 PAGE S-2 XGLOB MAC 19-MAR-76 13:24 SYMBOL TABLE SCN.Z 004137' SPD .CHFFD 000014 SPD .TTIMN 000000 EXT SCNCHK 000144' .CHLFD 000012 SPD .TVERW 001241' EXT SCNCK1 000166' .CLRBF 000253' EXT .TYOCH 001270' EXT SCNCK2 000177' .FMSG 000226' EXT SCNDWN 000437' .FMSGD 000000 EXT SCNERR 000252' .FMSGF 000244' EXT SEGAGN 000402' .FMSGN 000235' EXT SEGBLK 000411' .FMSGO 000000 EXT SETSTS 060000 000000 .FXDEV 000000 SPD SGDEV 001726' .FXEXT 000003 SPD SGLOW 001727' .FXLEN 000032 SPD SGNAM 001724' .FXLIB 000032 SPD SGPPN 001725' .FXMOD 000004 SPD STARS 001423' .FXNAM 000001 SPD SW.LIB 400000 SPD .IOASC 000000 SPD SW.NAR 010000 000000 SPD .IOBIN 000014 SPD SWTLC1 000335' .ISCAN 000042' EXT SWTLC2 000333' .JBFF 000121 SWTLOC 000331' .JBREL 000044 SWTSTO 000321' .JBSA 000120 SWTWRD 004127' .JBVER 000137 T1 000001 .LKWLD 000110' EXT T2 000002 .MNRET 000353' EXT T3 000003 .OPBUF 000002 SPD T4 000004 .OPDEV 000001 SPD TIMEON 004067' .OPMOD 000000 SPD TL$BAK 000000 SPD .POPJ 004351' EXT TL$COM 000006 SPD .POPJ1 001204' EXT TL$DEV 000007 SPD .RBEXT 000003 SPD TL$END 000012 SPD .RBNAM 000002 SPD TL$ENT 000003 SPD .RBPPN 000001 SPD TL$EXT 000012 SPD .RBSIZ 000005 SPD TL$FIL 000011 SPD .SAVE1 000144' EXT TL$FLG 000001 SPD .SAVE2 000440' EXT TL$GRQ 000004 SPD .SAVE3 000000 EXT TL$NAM 000002 SPD .SAVE4 001223' EXT TL$NXT 000000 SPD .SGDEV 000011 SPD TL$PPN 000010 SPD .SGLOW 000017 SPD TL$SIZ 000005 SPD .SGNAM 000000 SPD TOBHR 004140' .SGPPN 000007 SPD TOCDEC 001603' .STOPN 000065' EXT TOCHAR 001706' .TCHAR 001602' EXT TTLSIZ 000013 SPD .TCRLF 004346' EXT TTY 000003 SPD .TDATE 000000 EXT UPSCN 000364' .TDATN 000000 EXT WLDTMP 002030' .TDECW 001610' EXT XGBEDT 000004 SPD .TOCTW 001604' EXT XGBMIN 000000 SPD .TOLEB 001507' EXT XGBVER 000002 SPD .TSCAN 000055' EXT XGBWHO 000000 SPD .TSIXN 001637' EXT XGLF1 000142' .TSLSH 001601' XGLOB 000015' .TSPAC 001646' EXT XGLOB1 000027' .TSTRG 001630' EXT XGLOB2 000047' .TTABC 004352' EXT XLATOR 001472' .TTIME 000000 EXT AC 7# ALCIN 187 351# 376 ALCIN1 352 361# ALCIN2 358# 362 ALCOUT 187 346# B 17# 181 535 537 561 565 571 594 596 603 613 615 742 743 744 745 746 748 749 751 753 755 758 759 760 778 786 794 825 853 870 871 872 878 896 897 898 899 902 906 908 909 910 916 952 1075 1093 BLKDIS 464 495# BLKTYP 458 483# 493 BYTCNT 1279# C 15# CBLXLT 605 1052# CLRANS 186 334# CLRFIL 186 323# CLRFL1 324 331# COMNXT 1176# 1193 COUNT 463 468 722# DOFILE 254 445# DOXGL1 211 230# 255 DOXGLB 206 208# DOXGLF 238 257# DV.DIR 204 DWNSCN 253 257 405# E.BLKT 478 674# E.DFL 50 50# 317 E.ENT 219 315# E.LKP 247 317# E.NFI 284 296 309# E.NIS 282 311# E.OPN 217 245 313# E.TMO 312# E.WOI 205 310# EG$BAK 129# EG$END 134# 135 EG$FLG 131# 538 612 824 878 942 1183 EG$NAM 132# 807 809 832 842 843 927 938 952 1075 1078 1093 1105 1131 1179 EG$NXT 130# EG$ORD 134# 781 789 840 846 847 853 870 1074 1076 EG$TTL 133# 825 872 1080 EGLSIZ 135# 829 ENTLST 781 853 1296# ENTRIT 779 787 795 804# 810 ENTRT2 806 821# ENTRT3 812# ENTRT5 812 821 828# ENTRTX 818 824# ENTSR1 841 846# ENTSR2 839# 844 ENTSRT 782 790 838# F 16# 179 194 210 239 259 358 448 515 553 554 558 574 579 592 599 600 670 757 776 784 792 854 861 892 1157 1163 1201 F.NAM 50 50# 366 F.ZER 156 157 1271# FBLKSZ 41 233 306 329 353 FILRD1 468# FILRD2 467 473# FILRD3 469# 471 476 523 606 608 611 616 682 FILRD4 460 466# FILREA 449# 465 469 481 513 520 539 548 551 562 566 584 588 601 671 FL.FSA 26# FL.HSE 28# 448 515 558 FL.NAM 22# 448 554 574 579 592 600 670 FL.NAR 35# 1157 1163 FL.PP 25# 861 1201 FL.SKP 23# 448 553 599 776 784 792 FL.TTO 24# 210 259 854 892 FLAGS 194 369 370 1254 1288# FNDNXT 1076# 1079 1085 1097 FNDREF 883 1074# FNDRF1 1075# 1092 FNDRF2 1086 1094# FNDRF3 1083 1086# FOUND1 907 920 945 1283# FS.LRG 1255 1256 1257 1258 FS.NOS 1256 1258 FS.NUE 1256 1258 FT$LIB 140# 756 874 900 911 932 1082 FT$REF 141# 876 879 912 933 940 1084 FT$SCN 142# 914 943 FT2SEG 39 70 74 400 404 1262 FTCPU 38 971 1063 FTDDT 37 FX.NUL 292 302 GBXSCN 175 179# 273 320 GBXSWD 183 1257# GBXSWL 182 1253# GBXSWM 183 1255# GBXSWN 182 1251# 1253 GBXSWP 184 1253# GETCOR 354 385# 741 830 1095 GLBLST 789 1074 1297# HEDMSG 867 1006# HSEGOR 446 519 560 1285# IBYTE 506 1218# 1224 1231 IBYTEJ 449 461 470 479 506# 511 516 521 527 531 534 541 549 556 563 567 581 586 589 602 618 630 634 637 640 645 648 651 654 657 660 663 664 667 IBYTEN 1219 1223# ICH 52# 244 246 250 265 1223 1225 1228 IFDF1 767# 770 IFDFIN 736 766# INBEG 231 281 328 355 356 1292# INEND 231 304 357 1293# INIEGO 1101 1109 1156# INIRFL 1127 1137 1162# 1175 1187 INPBHR 242 1218 1220 1273# INPBUF 248 1278# INXTZ 323 331 351 361 372 377 1294# IO.EOF 1230 IO.ERR 1227 L.ZER 158 1302# LINK1 897# 901 904 LINK2 898 906# 921 LINK3 908# 913 915 918 LINK4 909 920# LINKER 852 896# LINKNT 860 1203 1206 1280# LISFLS 959 1070# 1129 LISREF 1002 1121# LISRF1 1121 1125# LISRF2 1128# 1139 1142 LISTIT 258 851# LKPBLK 199 200 218 232 246 750 752 754 1274# LNKSAT 903 917 924# LSAT1 925# 930 LSAT2 929# 934 937 946 LSAT3 936# 939 LSEGGO 1101# 1119 LSEGOR 447 518 522 564 570 1284# LSENTR 999 1098# LSENXT 1103# 1114 LSGRQ 1000 1116# LSTCOM 1001 1170# LSTDUN 871 892# LSTEN1 984 988# LSTEN2 994 999# LSTENT 890 949# LSTHED 181 766 896 906 928 1295# LSTIT1 855 863# LSTNX1 875 881# LSTNXT 870# 877 880 891 MODKNT 1107 1134 1159 1165 1185 1281# MX. 1255# MXLATR 967 1061# N 14# 313 315 NBLKTY 457 493# NIBUF 43 250 1278 NOBUF 44 222 1277 NTRCOM 530 610 792# NTRENT 583 624 776# NTRGRQ 546 642 784# NTRTTL 577 598 736# O.AREA 197 277 315 346 1289# O.SIZE 347 1290# OBYBUF 1199 1211# OBYTE 262 856 1198# 1208 OBYTE1 1200# 1212 1213 OCH 53# 216 218 222 263 264 1211 OFFSET 148 167 1270# OPNBLK 198 202 208 213 215 216 232 241 243 244 313 748 1276# OUTBHR 214 1198 1200 1272# OUTBUF 220 1277# OUTDON 348 364 1298# P 18# 30 31 155 318 610 737 740 748 797 829 832 859 895 1148 1152 1221 1227 1230 P1 12# 281 283 295 298 300 303 304 306 450 452 454 455 458 462 466 473 474 477 533 538 580 585 607 608 612 614 676 902 916 925 926 927 944 1080 1081 1090 1096 1100 1103 1104 1105 1110 1118 1174 1176 1177 1179 1183 1188 P2 13# 451 464 469 517 520 528 539 548 550 557 562 566 584 587 590 601 639 643 722 724 726 872 873 962 966 983 988 992 1070 1071 1100 1118 1128 1131 1170 1174 P3 14# 882 885 1089 1128 1139 1142 P4 15# 881 1086 1087 1097 1121 1136 1141 PD. 1257# PDLIST 155 318 1268# PDSIZ 40 155 318 1268 R50T6 529 545 582 591 623 641 687# R50T6X 700 704# R50TAB 700 702 704 717# RDCOM1 532 539# RDCOMM 502 527# 540 RDEND 503 504 553# RDEND1 555 566# 568 572 RDEND2 559 570# RDF40 456 618# 625 628 RDF40A 633 637# RDF40B 640# 643 RDF40C 638 645# RDF40D 646 651# RDF40E 652 657# RDF40F 658 663# RDF40G 665 670# RDHSEG 498 515# RDNAM1 593 598# RDNAM2 597 601# RDNAME 499 500 589# RDNDXB 453 510# RDNT1 575 580# 587 RDNT2 581# 585 RDNTRY 495 496 497 574# RDSYM1 544 548# RDSYMB 501 541# 550 SAV0 416 417 431 439# SAV17 415 440# SAVJFF 174 326 338 1269# SCN.F 335 336 1287# SCN.Z 337 1299# SCNCHK 195 276# SCNCK1 289 295# 307 SCNCK2 299 304# SCNDWN 405 410 413 430 441# SCNERR 318# SEGAGN 427# 437 SEGBLK 419 421 422 423 425 426 427 438# SGDEV 151 418 1266# SGLOW 152 1267# SGNAM 149 420 1264# SGPPN 150 424 1265# STARS 950 954 1005# SW.LIB 33# 368 SW.NAR 34# 35 1254 SWTLC1 373 376# SWTLC2 374# 378 SWTLOC 367 372# SWTSTO 190 364# SWTWRD 1291# T1 8# 145 146 148 153 154 157 158 166 172 173 174 182 197 202 203 204 208 209 212 213 214 215 220 221 223 231 240 241 242 243 248 249 251 261 278 280 283 286 287 288 291 293 297 298 301 303 309 310 311 312 314 316 323 325 327 329 330 336 337 338 339 340 341 342 346 353 356 357 358 361 368 369 370 372 374 377 385 386 394 407 408 418 419 420 421 424 425 427 428 450 451 480 510 519 522 533 536 538 542 560 561 564 565 570 571 576 596 603 604 607 609 612 619 627 632 638 639 646 647 652 653 658 659 665 666 674 676 678 687 700 701 704 706 722 723 724 740 742 759 760 769 807 809 814 815 816 817 822 823 824 825 829 832 842 846 847 856 859 860 863 865 867 873 874 876 878 879 895 899 900 910 911 912 914 940 941 942 950 952 954 956 960 962 964 966 967 968 969 981 983 984 986 988 990 992 993 996 1071 1081 1082 1084 1094 1096 1098 1105 1110 1111 1116 1122 1125 1131 1144 1148 1149 1152 1153 1156 1158 1159 1162 1164 1165 1170 1171 1172 1179 1183 1188 1189 1200 1202 1205 1206 1207 1220 1225 1227 1228 1230 1238 1240 T2 9# 198 277 279 280 285 286 288 290 293 300 302 326 327 347 359 385 387 388 390 449 461 470 479 508 511 516 521 527 531 534 535 536 537 541 542 543 549 556 563 567 581 586 589 602 604 605 613 614 615 618 619 620 621 630 634 637 640 645 648 651 654 657 660 663 664 667 700 702 703 704 705 725 744 745 746 748 749 750 751 752 753 754 755 756 758 766 767 768 769 778 781 786 789 794 804 805 806 807 809 813 814 816 839 840 841 843 846 931 932 933 935 936 937 938 942 943 944 1070 T3 10# 199 200 457 458 459 460 464 510 512 629 631 632 633 635 647 649 653 655 659 661 666 668 688 706 804 813 815 817 822 823 839 847 928 929 930 931 935 941 1074 1076 1077 1078 1080 T4 11# 290 292 842 843 927 938 1075 1078 1087 1088 1089 1090 1091 1092 1093 TEMP%% 204# 204 TIMEON 1282# TL$BAK 108# TL$COM 116# 535 537 613 615 794 992 1170 1174 TL$DEV 117# 749 1071 TL$END 121# 122 TL$ENT 113# 778 935 1100 TL$EXT 120# 753 TL$FIL 119# 751 TL$FLG 110# 603 758 873 899 910 931 941 944 966 1081 TL$GRQ 114# 786 902 916 1118 TL$NAM 112# 594 596 748 769 962 TL$NXT 109# TL$PPN 118# 755 1070 TL$SIZ 115# 561 565 571 983 988 TOBHR 162 1236 1238 1301# TOCDEC 985 989 995 1147# 1184 TOCHAR 168 1236# TTLSIZ 122# 740 746 TTY 54# 160 164 165 1237 1241 UPSCN 180 230 393 413# WLDTMP 196 234 239 1275# XGBEDT 61# 79 XGBMIN 60# 79 XGBVER 59# 79 XGBWHO 58# 79 XGLF1 260 265# XGLOB 145# 1304 XGLOB1 155# 178 XGLOB2 153 177# XLATOR 969 1049# 1052 1061 ..TEMP 1253# 1253 1254# 1254 1255# 1255 1256 1256# 1257 1257# 1258 1258# 1259 ..TEMR 1257# 1257 1258# 1258 1259 .CHFFD 261 1207 .CHLFD 1202 1240 .CLRBF 319 .FMSG 50 50# 309 310 311 312 .FMSGD 50 50# .FMSGF 50 50# 316 .FMSGN 50 50# 314 .FMSGO 50 50# .FXDEV 279 280 .FXEXT 288 293 298 303 .FXLEN 36 359 1289 1290 .FXLIB 36# 374 757 1253 .FXMOD 290 300 .FXNAM 283 285 286 295 .IOASC 160 212 .IOBIN 240 .ISCAN 50 50# 171 .JBFF 172 221 223 249 251 330 339 386 387 882 885 .JBREL 173 341 388 .JBSA 154 .JBVER 78 865 .LKWLD 50 50# 237 .MNRET 50 50# 397 .OPBUF 215 243 .OPDEV 202 208 313 748 1071 .OPMOD 213 241 .POPJ 50 50# 768 926 1077 1111 1136 1171 1189 .POPJ1 50 50# 771 826 .RBEXT 752 .RBNAM 750 .RBPPN 754 1070 .RBSIZ 199 233 1274 .SAVE1 50 50# 276 .SAVE2 50 50# 445 .SAVE3 50 50# .SAVE4 50 50# 851 .SGDEV 151 .SGLOW 152 .SGNAM 149 .SGPPN 150 .STOPN 50 50# 201 .TCHAR 50 50# 1145 .TCRLF 50 50# 949 980 993 1104 1108 1135 1141 1177 1186 .TDATE 50 50# .TDATN 50 50# .TDECW 50 50# 1152 .TOCTW 50 50# 677 1148 .TOLEB 50 50# 1072 .TSCAN 50 50# 193 .TSIXN 50 50# 953 963 1106 1132 1180 .TSLSH 1130 1133 1144# 1178 1181 .TSPAC 50 50# 1182 1192 .TSTRG 50 50# 396 675 680 864 868 951 955 958 961 965 970 982 987 991 998 1099 1117 1124 1126 1150 1154 1173 .TTABC 50 50# 1113 1138 1140 1190 .TTIME 50 50# .TTIMN 50 50# .TVERW 866 .TYOCH 50 50# 857 895 CALL 30# 171 180 193 195 201 230 237 253 254 257 258 262 276 317 319 354 376 393 396 397 445 463 468 506 529 530 545 546 577 582 583 591 598 623 624 641 642 675 677 680 736 741 779 787 795 812 821 830 851 852 857 864 866 868 883 890 903 917 949 951 953 955 958 959 961 963 965 970 980 982 985 987 989 991 993 995 998 999 1000 1001 1002 1095 1099 1101 1106 1108 1109 1113 1117 1126 1127 1129 1130 1132 1133 1135 1137 1138 1140 1148 1150 1152 1173 1175 1178 1180 1181 1182 1184 1186 1187 1190 1192 CLOSE 263 CORE 342 390 408 DEVCHR 203 DOSCAN 1250 ENTER 218 EXIT 436 EXT 46 309 310 311 312 314 316 GETSEG 428 GETSTS 1225 HALT 163 578 595 IN 1223 INBUF 250 INIT 160 LOOKUP 246 M.FAIF 316 M.FAIL 309 310 311 312 M.FAIN 314 MOVX 368 756 ND 37 38 39 40 41 43 44 OP%%TX 204 OPEN 216 244 OUT 1211 OUTBUF 164 222 OUTPUT 165 1237 1241 OUTSTR 434 P 1047# 1049 1050 1051 1053 1054 1055 1056 1057 1058 1059 1060 PJRST 782 790 895 1072 1124 1145 1154 PJSP 309 310 311 312 314 316 POINTR 1254 POS 1254 R50 709# 717 RELEAS 264 265 RESET 147 177 RESTOR 88# 747 831 894 1151 1229 RETURN 31# 305 332 344 349 360 365 371 375 389 392 406 409 411 414 433 507 707 727 738 761 777 780 785 788 793 796 798 808 832 848 893 922 1003 1160 1166 1204 1210 1222 1232 1242 SAVE 82# 739 828 858 1147 1226 SETSTS 1228 SN 1252 1254 1256 1258 SS 1251 1253 1255 1257 STORE 156 335 SWTCHS 1245# 1251 1253 1255 1257 TXNE 204 292 302 1157 1163 TXNN 1230 TXZ 1227 VRSN. 79 WID 1254 X 1251# 1251 1252 1253# 1253 1254 1255# 1255 1256 1257# 1257 1258