LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1 LOADER MAC 24-MAR-75 15:43 RP GRUEN/NGP/WFW/DMN/WJE 25-MAR-75 1 000001 L==1 ;LISP SWITCH ON FOR LISP SYSTEM VERSION 2 TITLE LOADER V.057 3 SUBTTL RP GRUEN/NGP/WFW/DMN/WJE 25-MAR-75 4 ;COPYRIGHT 1968,1969,1970,1971,1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS. 5 6 000057 VLOADER==57 7 000000 VUPDATE==0 ;DEC UPDATE LEVEL 8 000151 VEDIT==151 ;EDIT LEVEL 9 000001 VCUSTOM==1 ;NON-DEC UPDATE LEVEL 10 ;(UCI LISP MODIFICATIONS) 11 12 000137 LOC <.JBVER==137> 13 000137 105700 000151 B2+B11+B17+VEDIT 14 000000' RELOC 15 16 COMMENT * ASSEMBLY FEATURE SWITCHES (ACTION WHEN NON-ZERO) 17 18 SWITCHES ON (NON-ZERO) IN DEC VERSION 19 PURESW GIVES PURE CODE (VARIABLES IN LOW SEG) 20 REENT GIVES REENTRANT CAPABILITY PDP-10 21 (REENT=0 FOR PDP-10/30 OR PDP-6 OR EARLY PDP-10) 22 RPGSW INCLUDE CCL FEATURE 23 TEMP INCLUDE TMPCOR FEATURE 24 DMNSW SYMBOL TABLE WILL BE MOVED DOWN FROM TOP OF CORE 25 KUTSW GIVES CORE CUTBACK ON /K 26 EXPAND FOR AUTOMATIC CORE EXPANSION 27 PP ALLOW PROJ-PROG # 28 NAMESW USE SETNAM UUO TO CHANGE PROGRAM NAME 29 DIDAL GIVES DIRECT ACCESS LIBRARY SEARCH MODE 30 ALGSW WILL LOAD ALGOL OWN BLOCK (TYPE 15) 31 COBSW WILL LOAD COBAL LOCAL SYMBOLS (BLOCK TYPE 37) 32 SFDSW NUMBER OF SFDS ALLOWED IF NON-ZERO 33 CPUSW LOADER WILL TEST FOR KI/KA-10 AND LOAD CORRECT LIB40 34 FORSW DEFAULT VALUE OF FORSE/FOROTS FORTRAN OTS 35 B11SW INCLUDE POLISH FIXUP BLOCK (TYPE 11) 36 37 SWITCHES OFF (ZERO) IN DEC VERSION 38 K GIVES SMALLER LOADER - NO F4 39 L FOR LISP LOADER 40 SPMON GIVES SPMON LOADER (MONITOR LOADER) 41 MONLOD GIVES MONITOR LOADER WHICH USES DISK AS CORE IMAGE 42 TEN30 FOR 10/30 LOADER 43 STANSW GIVES STANFORD FEATURES 44 LNSSW GIVES LNS VERSION 45 FAILSW INCLUDE PROVISIONS FOR SPECIAL FAIL FIXUPS. 46 LDAC MEANS LOAD CODE INTO ACS 47 (LDAC DOES NOT WORK WITH KUTSW=1.CORE UUO CLEARS JOBBLT) 48 WFWSW GIVES BLOCK TYPE 13 (VARIABLS INTO LOW SEG) 49 SYMARG ACCEPT SYMBOLIC (GLOBAL) ARGUMENTS FOR SWITCHES 50 SPCHN WILL DO SPECIAL OVERLAYING 51 NELSW FOR NELIAC COMPILER 52 SAILSW GIVES BLOCK TYPE 16 (FORCE LOAD OF REL FILES) 53 AND 17 (FORCE SEARCH OF LIBRARIES) FOR SAIL 54 MANTIS WILL LOAD BLOCK 401 FOR F4 MANTIS DEBUGGER 55 SYMDSW LOADER WILL STORE SYMBOLS ON DSK LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-1 LOADER MAC 24-MAR-75 15:43 RP GRUEN/NGP/WFW/DMN/WJE 25-MAR-75 56 TENEX SPECIAL CODE IF RUNING UNDER TENEX 57 * 58 SUBTTL DEFAULT ASSEMBLY SWITCH SETTINGS 59 60 IFNDEF SPMON, 61 IFN SPMON,< TEN30==1 62 K==1> 63 64 IFNDEF L, 65 66 IFNDEF TEN30, 67 68 000000 IFN TEN30!L,< RPGSW=0 69 000000 PP=0 70 IFNDEF DMNSW,< DMNSW=0> 71 000000 ALGSW=0 72 000000 COBSW=0 73 000000 PURESW=0 74 000000 REENT=0 75 000000 LDAC=0 76 000000 KUTSW=0 77 000000 NAMESW=0> 78 IFN TEN30,< EXPAND=0 79 IFNDEF DIDAL,< DIDAL=0> 80 > 81 82 000000 IFN L,< CPUSW==0 83 000001 PP==1> 84 85 IFNDEF MONLOD, 86 IFN MONLOD, 94 95 IFNDEF K, 96 97 IFNDEF STANSW, 98 IFN STANSW,< TEMP==0 99 REENT==0 100 FAILSW=1> 101 102 IFNDEF LNSSW, 103 IFN LNSSW, 105 106 IFNDEF FAILSW, 107 IFN FAILSW, 108 109 IFNDEF B11SW, 110 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-2 LOADER MAC 24-MAR-75 15:43 DEFAULT ASSEMBLY SWITCH SETTINGS 111 IFNDEF RPGSW, 112 IFN RPGSW, ;REQUIRE DISK FOR CCL 113 000000 IFE RPGSW, 114 115 IFNDEF PP, 116 117 IFNDEF TEMP, 118 119 IFNDEF NAMESW, 120 121 IFNDEF LDAC, 122 IFN LDAC, 123 124 IFNDEF KUTSW, 125 126 IFNDEF EXPAND,< IFN K, 127 IFE K,> 128 129 IFNDEF DMNSW, 130 IFN DMNSW!LDAC, 131 IFN LDAC,>> 132 133 IFNDEF REENT, 134 135 IFNDEF PURESW, 136 137 IFNDEF WFWSW, 138 139 IFN K, 141 142 IFNDEF SYMARG, 143 144 IFNDEF SPCHN, 145 146 IFNDEF DIDAL, 147 148 IFNDEF ALGSW, 149 150 IFNDEF COBSW, 151 152 IFNDEF SAILSW, 153 154 IFNDEF NELSW, 155 156 IFN K, 157 IFNDEF MANTIS, 158 159 IFE PP, 160 IFNDEF SFDSW, 161 IFNDEF CPUSW, 162 163 IFNDEF FORSW, ;1=FORSE, 2=FOROTS 164 165 IFNDEF SYMDSW, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-3 LOADER MAC 24-MAR-75 15:43 DEFAULT ASSEMBLY SWITCH SETTINGS 166 IFN SYMDSW, ;BOTH USE AUX BUFFER 167 IFNDEF TENEX, 168 SUBTTL ACCUMULATOR ASSIGNMENTS 169 000000 F=0 ;FLAGS IN BOTH HALVES OF F 170 000001 N=1 ;FLAGS IN BOTH HALVES OF N 171 000002 X=2 ;LOADER OFFSET 172 000003 H=3 ;HIGHEST LOC LOADED 173 000004 S=4 ;UNDEFINED POINTER 174 000005 R=5 ;RELOCATION CONSTANT 175 000006 B=6 ;SYMBOL TABLE POINTER 176 000007 D=7 ;COMMAND ARGUMENT (OCTAL) AND WORKSPACE 177 000010 T=10 178 000011 V=T+1 179 000012 W=12 ;VALUE 180 000013 C=W+1 ;SYMBOL, DECIMAL COMMAND ARGUMENT 181 000014 E=C+1 ;DATA WORD COUNTER 182 000015 Q=15 ;RELOCATION BITS 183 000016 A=Q+1 ;SYMBOL SEARCH POINTER 184 000017 P=17 ;PUSHDOWN POINTER 185 186 187 ;MONITOR LOCATIONS IN THE USER AREA 188 189 000010 .JBHDA==10 190 000114 .JBSDD==114 ;SAVE POINTER TO JOBDDT 191 000122 .JBS41==122 ;SAVE POINTER TO JOB41 192 193 INTERN .JBVER,.JBHDA,.JBSDD,.JBS41 194 EXTERN .JBDDT,.JBFF,.JBSA,.JBREL,.JBSYM,.JBUSY,.JB41,.JBHRL,.JBCOR 195 EXTERN .JBCHN,.JBERR,.JBBLT,.JBAPR,.JBDA,.JBHSM 196 197 000400 NEGOFF==400 ;NEGATIVE OFFSET OF HIGH SEGMENT 198 199 200 000040 PDLSIZ==40 ;LENGTH OF PUSHDOWN STACK 201 000060 PPDL==60 ;LENGTH OF PUSHDOWN LIST FOR POLISH FIXUPS 202 ;FLAGS F(0 - 17) 203 000001 CSW==1 ;ON - COLON SEEN 204 000002 ESW==2 ;ON - EXPLICIT EXTENSION IDENT. 205 000004 SKIPSW==4 ;ON - DO NOT LOAD THIS PROGRAM 206 000010 FSW==10 ;ON - SCAN FORCED TO COMPLETION 207 000020 FCONSW==20 ;ON - FORCE CONSOLE OUTPUT 208 000040 HIPROG==40 ;LOADING HI PROGRAM, SET BY HISEG. CLEARED BY EOF 209 000100 ASW==100 ;ON - LEFT ARROW ILLEGAL 210 000200 FULLSW==200 ;ON - STORAGE EXCEEDED 211 000400 SLIBSW==400 ;ON - LIB SEARCH IN THIS PROG 212 001000 RMSMSW==1000 ;REMEMBER IF LOADING WITH SYMBOLS DURING LIB SEARCH 213 002000 REWSW==2000 ;ON - REWIND AFTER INIT 214 004000 LIBSW==4000 ;ON - LIBRARY SEARCH MODE 215 216 020000 ISW==20000 ;ON - DO NOT PERFORM INIT 217 040000 SYMSW==40000 ;ON - LOAD LOCAL SYMBOLS 218 100000 DSW==100000 ;ON - CHAR IN IDENTIFIER 219 200000 NSW==200000 ;ON - SUPPRESS LIBRARY SEARCH 220 400000 SSW==400000 ;ON - SWITCH MODE LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-4 LOADER MAC 24-MAR-75 15:43 ACCUMULATOR ASSIGNMENTS 221 222 223 224 ;MORE FLAGS IN F (18-35) 225 226 000001 SEENHI==1 ;HAVE SEEN HI STUFF 227 000002 NOHI==2 ;LOAD AS NON-REENTRANT 228 000004 NOTTTY==4 ;DEV "TTY" IS NOT A TTY 229 000010 NOHI6==10 ;PDP-6 TYPE SYSTEM 230 000020 HISYM==20 ;BLT SYMBOLS INTO HIGH SEGMENT 231 000040 SEGFL==40 ;LOAD INTO HI-SEG 232 000100 XFLG==100 ;INDEX IN CORE (BLOCK TYPE 14) 233 000200 LSTLOD==200 ;LAST PROG WAS LOADED 234 000400 DTAFLG==400 ;LIBRARY DEVICE IS A DTA (NEEDED FOR INDEXING) 235 001000 DMNFLG==1000 ;SYMBOL TABLE TO BE MOVED DOWN 236 002000 SFULSW==2000 ;PRINTED SYMBOL OVERLAP ONCE ALREADY 237 004000 ARGFL==4000 ;TREAT $%. AS RADIX-50 CHAR. 238 010000 TWOFL==10000 ;TWO SEGMENTS IN THIS BINARY FILE 239 020000 LOCAFL==20000 ;PRINT LOCAL SYMBOLS IN MAP 240 040000 TTYFL==40000 ;AUX. DEV. IS TTY 241 100000 TRMFL==100000 ;END OF LOADING SEEN ($ OR /G) 242 200000 KICPFL==200000 ;HOST CPU IS A KI-10 243 400000 LSYMFL==400000 ;STORE LOCAL SYMBOLS ON DSK 244 ;FLAGS N(0 - 17) 245 000001 ALLFLG==1 ;ON - LIST ALL GLOBALS 246 000002 ISAFLG==2 ;ON - IGNORE STARTING ADDRESSES 247 000004 COMFLG==4 ;ON - SIZE OF COMMON SET 248 000010 IFE K,< F4SW==10 ;F4 IN PROGRESS 249 000020 RCF==20 ;READ DATA COUNT 250 000040 SYDAT==40; SYMBOL IN DATA> 251 IFN MONLOD, 253 000100 SLASH==100 ;SLASH SEEN 254 000200 IFE K,< BLKD1==200 ;ON- FIRST BLOCK DATA SEEN 255 000400 PGM1==400 ;ON FIRST F4 PROG SEEN 256 001000 DZER==1000 ;ON - ZERO SECOND DATA WORD> 257 002000 EXEQSW==2000 ;IMMEDIATE EXECUTION 258 004000 DDSW==4000 ;GO TO DDT 259 010000 RPGF==10000 ;IN RPG MODE 260 020000 AUXSWI==20000 ;ON - AUX. DEVICE INITIALIZED 261 040000 AUXSWE==40000 ;ON - AUX. DEVICE ENTERED 262 100000 PPSW==100000 ;ON - READING PROJ-PROG # 263 200000 PPCSW==200000 ;ON - READING PROJ # 264 400000 HSW==400000 ;USED IN BLOCK 11 POLISH FIXUPS 265 266 ;MORE FLAGS IN N (18-35) 267 400000 F4FL==400000 ;FORTRAN (F40) SEEN 268 200000 COBFL==200000 ;COBOL SEEN 269 100000 ALGFL==100000 ;ALGOL SEEN 270 040000 NELFL==40000 ;NELIAC SEEN 271 020000 PL1FL==20000 ;PL/1 SEEN 272 010000 BLIFL==10000 ;BLISS-10 273 004000 SAIFL==4000 ;SAIL 274 002000 FORFL==2000 ;FORTRAN-10 275 001000 F10TFL==1000 ;FORTRAN-10 CODE FOR THIS FILE SET NOHI (TEMP) LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-5 LOADER MAC 24-MAR-75 15:43 ACCUMULATOR ASSIGNMENTS 276 000400 KI10FL==400 ;KI-10 ONLY CODE 277 000200 KA10FL==200 ;KA-10 ONLY CODE 278 000100 MANTFL==100 ;MANTIS SEEN, LOAD SPECIAL DATA 279 000040 SYMFOR==40 ;SYMSW FORCED SET 280 000020 MAPSUP==20 ;SUPRESS SYBOL TABLE OUTPUT 281 000010 CHNMAP==10 ;MAP FOR SPCHN ROOT SEGMENT PRINTED 282 000004 ATSIGN==4 ;AT SIGN - INDIRECT COMMAND 283 000002 ENDMAP==2 ;DELAY MAP TO END 284 000001 VFLG==1 ;DEFAULT LOAD REENTRANT OPERATION SYSTEM 285 286 776000 COMFLS==F4FL!COBFL!ALGFL!NELFL!PL1FL!BLIFL!SAIFL!FORFL 287 288 DEFINE ERROR (X,Y)< 289 JSP A,ERRPT'X 290 XLIST 291 SIXBIT Y 292 LIST> 293 294 IFN TENEX,< 295 OPDEF JSYS [104B8] 296 OPDEF SEVEC [JSYS 204] 297 OPDEF GEVEC [JSYS 205] 298 OPDEF GET [JSYS 200] 299 OPDEF GTJFN [JSYS 20] 300 OPDEF CIS [JSYS 141] 301 OPDEF DIR [JSYS 130] 302 > 303 304 IFN PURESW, 306 307 200000 DSKBIT==200000 ;FOR USE WITH DEVCHR 308 000100 DTABIT==100 ;DITTO 309 310 002000 DISIZE=2000 ;CORE WINDOW SIZE 311 000010 .RBEST==10 ;ESTIMATED SIZE OF BLOCK (SYMBOL) 312 000011 .RBALC==11 ;ALLOCATED SIZE OF BLOCK (SYMBOL) 313 000764 DALLOC==^D500 ;PREALLOCATE SOME SPACE 314 315 316 000200 DSKBLK==200 ;LENGTH OF DISK BLOCKS 317 000177 DTABLK==177 ;LENGTH OF DECTAPE BLOCKS (EXCLUDING LINK WORD) 318 000031 VECLEN==^D25 ;LENGTH OF VECTOR TABLE FOR OVERLAYS 319 320 000005 RELLEN==^D5 ;#NUMBER OF REL FILES OR LIBRARIES (MUST BE SAME) 321 322 ;BUFFER SIZES 323 000052 TTYL==52 ;TWO TTY BUFFERS 324 IFNDEF BUFN, 325 IFE LNSSW,< 326 000406 BUFL==BUFN*203 ;'BUFN' DTA BUFFERS FOR LOAD 327 000203 ABUFL==203 ;ONE DTA BUFFER FOR AUX DEV> 328 IFN LNSSW,< 329 IFE K, 330 IFN K, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-6 LOADER MAC 24-MAR-75 15:43 ACCUMULATOR ASSIGNMENTS 331 ABUFL==2*203+1> 332 333 ;CALLI DEFINITIONS 334 335 047000 000000 OPDEF RESET [CALLI 0] 336 047000 000002 OPDEF SETDDT [CALLI 2] 337 047000 000003 OPDEF DDTOUT [CALLI 3] 338 047000 000004 OPDEF DEVCHR [CALLI 4] 339 047000 000011 OPDEF CORE [CALLI 11] 340 047000 000012 OPDEF EXIT [CALLI 12] 341 047000 000013 OPDEF UTPCLR [CALLI 13] 342 047000 000014 OPDEF DATE [CALLI 14] 343 047000 000023 OPDEF MSTIME [CALLI 23] 344 047000 000030 OPDEF PJOB [CALLI 30] 345 047000 000036 OPDEF SETUWP [CALLI 36] 346 047000 000037 OPDEF REMAP [CALLI 37] 347 047000 000040 OPDEF GETSEG [CALLI 40] 348 047000 000043 OPDEF SETNAM [CALLI 43] 349 047000 000044 OPDEF TMPCOR [CALLI 44] 350 351 352 ASUPPRESS 353 MLON 354 SALL 355 SUBTTL INITIALIZATION 356 BEG: IFE L,< IFN RPGSW,< 357 TDZA F,F ;NORMAL START 358 SETO F, ;CCL START> 359 SETZM DATBEG ;ZERO FIRST WORD OF DATA STORAGE 360 MOVE N,[DATBEG,,DATBEG+1] 361 BLT N,DATEND-1 ;ZERO ENTIRE DATA AREA 362 IFN RPGSW,< ;IF NO CCL FALL THROUGH TO LD: 363 JUMPE F,LD ;CCL: IF NORMAL START GO TO LD 364 RESET ;RESET UUO. 365 IFN TEMP, 382 INIT 17,1 ;SET UP DSK FOR COMMAND FILE INPUT. 383 SIXBIT /DSK/ 384 XWD 0,CTLIN 385 JRST NUTS ;CAN'T INIT, GET INPUT FROM TTY. LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-7 LOADER MAC 24-MAR-75 15:43 INITIALIZATION 386 MOVEI F,3 387 PJOB N, ;GET JOB NUMBER 388 LUP: IDIVI N,12 ;STRIP OFF LAST DIGIT 389 ADDI N+1,"0"-40 ;CONVERT TO SIXBIT 390 LSHC N+1,-6 ;SAVE 391 SOJG F,LUP ;3 DIGITS YET? 392 HRRI N+2,'LOA' ;LOADER NAME PART OF FILE NAME. 393 MOVEM N+2,CTLNAM 394 MOVSI 'TMP' ;AND EXTENSION. 395 MOVEM CTLNAM+1 396 LOOKUP 17,CTLNAM ;FILE THERE? 397 JRST NUTS ;NO. 398 INIT 16,1 ;GET SET TO DELETE FILE 399 SIXBIT /DSK/ 400 0 401 JRST RPGS3A ;GIVE UP 402 SETZM CTLNAM+3 ;PUT STUFF BACK AS IT WAS 403 LOOKUP 16,CTLNAM 404 JRST RPGS3B 405 SETZM CTLNAM ;SET FOR RENAME 406 RENAME 16,CTLNAM 407 JFCL ;IGNORE FAILURE 408 RPGS3B: RELEASE 16, ;GET RID OF DEVICE 409 RPGS3A: ;WE HAVE NOT YET STARTED TO SCAN 410 ;COMMAND IN FILE. 411 RPGS3: MOVEI CTLBUF 412 MOVEM .JBFF 413 INBUF 17,1 ;SET UP BUFFER. 414 RPGS3C: TTCALL 3,[ASCIZ /LOADING/] ;PRINT MESSAGE THAT WE ARE STARTING. 415 SKIPE NONLOD ;CONTIUATION OF COMMAND? 416 JRST RPGS2 ;YES, SPECIAL SETUP. 417 CCLCHN: MOVSI N,RPGF ;@ CHAIN FILES CYCLE FROM HERE 418 JRST CTLSET ;SET UP TTY 419 420 RPGS1: PUSHJ P,[TLNE F,ESW ;HERE FROM FOO@ COMMAND, STORE NAME. 421 JRST LDDT3 ;SAVE EXTENSION. 422 TLZE F,CSW!DSW ;AS NAME 423 MOVEM W,DTIN ;STORE AS NAME 424 SETZM W,DTIN1 ;TRY BLANK EXTENSION FIRST. 425 JRST LDDT4] 426 MOVEM 0,SVRPG ;SAVE 0 JUST IN CASE 427 SETZM NONLOD ;DETERMINE IF CONTINUATION. 428 MOVEI 0,2(B) ;BY SEEING IF ANY SYMBOLS LOADED. 429 CAME 0,.JBREL 430 SETOM NONLOD ;SET TO -1 AND SKIP CALLI 431 IFN TEMP, 432 MOVE 0,ILD1 433 MOVEM 0,RPG1 434 OPEN 17,OPEN1 ;KEEP IT PURE 435 JRST [MOVE W,RPG1 436 JRST ILD5] 437 LOOKUP 17,DTIN ;THE FILE NAME. 438 JRST [MOVE 0,SVRPG ;RESTORE AC0=F 439 TLOE F,ESW ;WAS EXT EXPLICIT? 440 JRST ILD9 ;YES, DON'T TRY AGAIN. LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-8 LOADER MAC 24-MAR-75 15:43 INITIALIZATION 441 MOVEM 0,SVRPG ;SAVE AC0 AGAIN 442 MOVSI 0,(SIXBIT /TMP/) ;TRY TMP INSTEAD 443 MOVEM 0,DTIN1 444 PUSHJ P,LDDT4 ;SET UP PPN 445 JRST .-1] ;TRY AGAIN 446 JRST RPGS3 447 448 RPGS2: MOVSI 0,RPGF ;SET FLAG 449 IORM 0,F.C+N 450 TLO N,RPGF 451 MOVE 0,SVRPG 452 JRST LD2Q ;BACK TO INPUT SCANNING. 453 454 NUTS: TTCALL 3,[ASCIZ /?LOADER command file not found/] 455 EXIT 456 >;END OF IFN RPGSW 457 >;END OF IFE L 458 459 000000' LD: ;HERE AFTER INITIALIZATION IF NO CCL 460 000000' 552 00 0 00 004136' IFN L,< HRRZM 0,LSPXIT 461 000001' 552 12 0 00 005114' HRRZM W,LSPREL# ;SAVE LISP'S RELOCATION 462 000002' 201 00 0 00 000000 MOVEI 0,0 463 000003' 552 05 0 00 004137' HRRZM R,RINITL 464 000004' 047 00 0 00 000000 RESET> 465 IFE L, 467 RESET ;INITIALIZE THIS JOB 468 SETZ N, ;CLEAR N 469 CTLSET: SETZB F,S ;CLEAR THESE AS WELL 470 IFN TENEX, 473 HLRZ X,.JBSA ;TOP OF LOADER 474 HRLI X,V ;PUT IN INDEX 475 HRRZI H,.JBDA(X) ;PROGRAM BREAK 476 MOVE R,[XWD W,.JBDA] ;INITIAL RELOCATION> 477 000005' 205 14 0 00 646471 MOVSI E,'TTY' 478 000006' 047 14 0 00 000004 DEVCHR E, 479 000007' 607 14 0 00 000010 TLNN E,10 ;IS IT A REAL TTY? 480 IFN RPGSW, 481 000010' 047 00 0 00 000012 EXIT ;NO, EXIT IF NOT TTY 482 IFN RPGSW,< TRO F,NOTTTY ;SET FLAG 483 JRST LD1] ;SKIP INIT> 484 000011' 041 03 0 00 000001 INIT 3,1 ;INITIALIZE CONSOLE 485 000012' 64 64 71 00 00 00 SIXBIT /TTY/ 486 000013' 004146' 004151' XWD BUFO,BUFI 487 000014' 047 00 0 00 000012 CALLEX: EXIT ;DEVICE ERROR, FATAL TO JOB 488 000015' 201 14 0 00 004172' MOVEI E,TTY1 489 000016' 202 14 0 00 000000* MOVEM E,.JBFF 490 000017' 064 03 0 00 000001 INBUF 3,1 491 000020' 065 03 0 00 000001 OUTBUF 3,1 ;INITIALIZE OUTPUT BUFFERS 492 000021' 067 03 0 00 000000 OUTPUT 3, ;DO INITIAL REDUNDANT OUTPUT 493 000022' LD1: 494 IFE L,< HRRZ B,.JBREL ;MUST BE JOBREL FOR LOADING REENTRANT> 495 000022' 200 06 0 00 000000* IFN L,< MOVE B,.JBSYM ;USED INSTEAD OF JOBREL FOR SYMBOL TABLE FIXUPS> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-9 LOADER MAC 24-MAR-75 15:43 INITIALIZATION 496 000023' 552 06 0 00 004135' HRRZM B,HISTRT 497 000024' 274 06 0 00 003714' SUB B,SE3 ;INITIALIZE SYMBOL TABLE POINTER 498 000025' 303 03 0 06 000001 CAILE H,1(B) ;TEST CORE ALLOCATION 499 IFE L,< JRST [HRRZ B,.JBREL;TOP OF CORE 500 ADDI B,2000 ;1K MORE 501 CORE B, ;TRY TO GET IT> 502 000026' 047 00 0 00 000012 EXIT ;INSUFFICIENT CORE, FATAL TO JOB 503 IFE L,< JRST LD1] ;TRY AGAIN> 504 000027' 200 04 0 00 006271' IFN EXPAND, 509 000032' 275 04 0 00 000001 IFE REENT, 510 000033' 202 04 0 00 004144' MOVEM S,ALWCOR ;SAVE IT FOR XPAND TEST> 511 IFN PURESW, 513 IFE L,< MOVS E,X ;SET UP BLT POINTER 514 HRRI E,1(X)> 515 000034' 204 14 0 00 000003 IFN L, 517 000036' 402 00 0 14 777777 SETZM -1(E) ;ZERO FIRST WORD 518 000037' 251 14 0 06 000000 BLT E,(B) ;ZERO CORE UP TO THE SYMBOL AREA 519 000040' 550 04 0 00 000006 HRRZ S,B ;INITIALIZE UNDEF. POINTER 520 000041' 202 04 0 00 004007' MOVEM S,NAMPTR ;INITIALIZE PROGRAM NAME POINTER 521 IFE L,< HRRI R,.JBDA ;INITIALIZE THE LOAD ORIGIN 522 MOVE E,COMM ;SET .COMM. AS THE FIRST PROGRAM 523 MOVEM E,1(B) ;STORE IN SYMBOL TABLE 524 HRRZM R,2(B) ;STORE COMMON ORIGIN> 525 000042' 201 14 0 00 004000' MOVEI E,F.C ;INITIALIZE STATE OF THE LOADER 526 000043' 251 14 0 00 004006' BLT E,B.C 527 000044' 200 12 0 00 006272' MOVE W,[ZBEG,,ZBEG+1] 528 000045' 402 00 0 00 003733' SETZM ZBEG ;CLEAR START OF INITIALIZED DATA 529 000046' 251 12 0 00 003735' BLT W,ZEND ;AND THE REST 530 IFN CPUSW,< 531 MOVNI W,1 ;-1 532 AOBJN W,.+1 ;STANDARD TEST 533 JUMPN W,.+2 ;KA-10 (OR PDP-6) 534 TRO F,KICPFL ;KI-10> 535 IFN REENT, 543 IFN REENT!CPUSW,< 544 MOVEM F,F.C ;PDP-10 COMES HERE.> 545 IFN SAILSW, 549 IFE L,< MOVSI W,254200 ;STORE HALT IN .JB41 550 MOVEM W,.JB41(X) ;...> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-10 LOADER MAC 24-MAR-75 15:43 INITIALIZATION 551 000047' 200 12 0 00 000000* IFN L,< MOVE W,.JBREL 552 000050' 552 12 0 00 004140' HRRZM W,OLDJR> 553 000051' 201 12 0 00 440000 IFN B11SW, 560 IFN DMNSW, 562 IFN MONLOD,> 567 000057' 047 12 0 00 000024 IFN SFDSW, 569 000061' 201 12 0 00 000001 IFN FORSW, 571 ;LOADER SCAN FOR FILE NAMES 572 573 000063' 430 01 0 00 004001' LD2Q: XOR N,F.C+N ;HERE WE STORE THE TWO BITS FOR 574 000064' 404 01 0 00 006273' AND N,[AUXSWI!AUXSWE,,ENDMAP] ;THE AUX FILE INTO THE 575 000065' 432 01 0 00 004001' XORM N,F.C+N ;SAVED REGISTER 'N' 576 000066' 205 06 0 00 004000' MOVSI B,F.C ;RESTORE ACCUMULATORS 577 000067' 251 06 0 00 000006 BLT B,B 578 000070' 200 17 0 00 003715' MOVE P,PDLPT ;INITIALIZE PUSHDOWN LIST 579 000071' 402 00 0 00 004153' SETZM BUFI2 ;CLEAR INPUT BUFFER POINTER 580 IFE PP, 581 000072' 205 10 0 00 446353 IFN PP, 583 000074' 402 00 0 00 004013' SETZM OLDDEV ;TO MAKE IT GO BACK AFTER /D FOR LIBSR 584 585 000075' 071 01 0 00 000000 LD2B: RELEAS 1, ;RELEASE BINARY INPUT DEVICE 586 000076' 402 00 0 00 004015' IFN PP, 587 IFN RPGSW,< TLNE N,RPGF ;NOT IF DOING CCL STUFF 588 JRST LD2BA> 589 000077' 201 10 0 00 000052 MOVEI T,"*" 590 000100' 136 10 0 00 004147' IDPB T,BUFO1 ;OUTPUT ASTERISK TO START INPUT 591 000101' 067 03 0 00 000000 OUTPUT 3, 592 000102' 621 00 0 00 022707 LD2BA: TLZ F,FULLSW+ASW+ISW+CSW+ESW+SKIPSW+SLIBSW+REWSW 593 000103' 603 00 0 00 004000 LD2BP: TLNE F,LIBSW ;WAS LIBRARY MODE ON? 594 000104' 661 00 0 00 000004 TLO F,SKIPSW ;YES, NORMAL MODE IS SKIPPING 595 000105' 402 00 0 00 004162' LD2DD: SETZM DTIN ;CLEAR FILE NAME AFTER , CR-LF, ETC 596 597 000106' 332 12 0 00 004013' LD2D: SKIPE W,OLDDEV ;RESET DEVICE IF NEEDED. 598 000107' 316 12 0 00 003731' CAMN W,ILD1 ;IS IT SAME? 599 000110' 254 00 0 00 000113' JRST LD2DC ;YES, FORGET IT. 600 000111' 202 12 0 00 003731' MOVEM W,ILD1 601 000112' 621 00 0 00 122010 LD2DB: TLZ F,ISW+DSW+FSW+REWSW 602 000113' 402 00 0 00 004016' LD2DC: IFN PP, 603 000114' 403 12 0 00 004013' LD2DA: SETZB W,OLDDEV ;INITIALIZE IDENTIFIER SCAN 604 000115' 201 14 0 00 000006 MOVEI E,6 ;INITIALIZE CHARACTER COUNTER 605 000116' 200 11 0 00 003717' MOVE V,LSTPT ;INITIALIZE BYTE POINTER TO W LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-11 LOADER MAC 24-MAR-75 15:43 INITIALIZATION 606 000117' 621 00 0 00 500010 TLZ F,SSW+DSW+FSW ;LEAVE SWITCH MODE 607 LD3: IFN RPGSW, 609 000120' 375 00 0 00 004153' SOSGE BUFI2 ;DECREMENT CHARACTER COUNTER 610 JRST [INPUT 3, ;FILL TTY BUFFER 611 000121' 254 00 0 00 006274' JRST .-1] ;MAKE SURE NOT A NULL BUFFER 612 000122' 134 10 0 00 004152' ILDB T,BUFI1 ;LOAD T WITH NEXT CHARACTER 613 000123' 302 10 0 00 000175 LD3AA: CAIE T,175 ;OLD ALTMOD 614 000124' 306 10 0 00 000176 CAIN T,176 ;EVEN OLDER ONE 615 000125' 201 10 0 00 000033 MOVEI T,33 ;NEW ONE 616 000126' 301 10 0 00 000140 CAIL T,140 ;LOWER CASE? 617 000127' 620 10 0 00 000040 TRZ T,40 ;CONVERT TO UPPER CASE 618 000130' 200 15 0 00 000010 MOVE Q,T 619 000131' 506 15 0 00 004142' HRLM Q,LIMBO ;SAVE THIS CHAR. 620 000132' 207 00 0 00 004142' MOVSS LIMBO ;AND LAST ONE 621 000133' 231 15 0 00 000011 IDIVI Q,11 ;TRANSLATE TO 4 BIT CODE 622 000134' 135 15 0 16 000770' LDB Q,LD8(A) ;LOAD CLASSIFICATION CODE 623 000135' 305 15 0 00 000004 CAIGE Q,4 ;MODIFY CODE IF .GE. 4 624 000136' 607 00 0 00 400000 TLNN F,SSW ;MODIFY CODE IF SWITCH MODE OFF 625 000137' 271 15 0 00 000004 ADDI Q,4 ;MODIFY CLASS. CODE FOR DISPATCH 626 IFN SYMARG, 628 000140' 550 16 0 15 000147' HRRZ A,LD3A(Q) ;LOAD RH DISPATCH ENTRY 629 000141' 301 15 0 00 000010 CAIL Q,10 ;SKIP IF CORRECT DISPATCH ENTRY 630 000142' 554 16 0 15 000137' HLRZ A,LD3A-10(Q) ;LOAD LH DISPATCH ENTRY 631 000143' 254 00 1 00 000016 JRST @A ;JUMP TO INDICATED LOCATION 632 633 ;HERE ON ERRORS 634 635 000144' 262 17 0 17 000000 LD2C: POP P,(P) ;BACKUP ONE LEVEL 636 000145' 402 00 0 00 005055' LD2: SETZM SBRNAM ;CLEAR BLOCK TYPE 6 SEEN 637 IFN RPGSW, 639 000146' 254 00 0 00 000063' JRST LD2Q ;NO, START A NEW LINE 640 IFN RPGSW, 641 642 ;COMMAND DISPATCH TABLE 643 644 000147' 000120' 000745' LD3A: XWD LD3,LD7B ;IGNORED CHAR, BAD CHAR (SWITCH) 645 000150' 000632' 000637' XWD LD6A,LD6 ; OR <(>, LETTER (SWITCH) 646 000151' 000165' 000723' XWD LD5,LD6C ;<:>, DIGIT (SWITCH ARG.) 647 000152' 000177' 000730' XWD LD5A,LD6D ;<.>, ESCAPE SWITCH MODE <)> 648 000153' 000221' 000734' XWD LD5C,LD7 ;<=> OR , BAD CHAR. 649 000154' 000204' 000157' XWD LD5B,LD4 ;<,>, ALPHABETIC CHAR. 650 000155' 000360' 000157' XWD LD5D,LD4 ;, NUMERIC CHAR. 651 000156' 000370' 000734' XWD LD5E1,LD7 ;, BAD CHAR. <)> 652 IFN SYMARG, 653 654 IFN SYMARG,< 655 LD3AB: ROT Q,-1 ;CUT Q IN HALF 656 HRRZ A,LD3A(Q) ;PULL OFF RIGHT HALF OF TABLE ENTRY 657 JUMPGE Q,@A ;WHICH IS CORRECT FOR EVEN ENTRIES 658 HLRZ A,LD3A(Q) ;BUT USE LEFT HALF FOR ODD ENTRIES 659 JRST @A> 660 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-12 LOADER MAC 24-MAR-75 15:43 INITIALIZATION 661 IFN RPGSW,< 662 RPGRD1: MOVNI T,5 663 ADDM T,CTLIN+2 664 AOS CTLIN+1 665 RPGRD: SOSG CTLIN+2 ;CHECK CHARACTER COUNT. 666 JRST RPGRD2 667 IBP CTLIN+1 ;ADVANCE POINTER 668 MOVE T,@CTLIN+1 ;AND CHECK FOR LINE # 669 TRNE T,1 670 JRST RPGRD1 671 LDB T,CTLIN+1 ;GET CHR 672 JRST LD3AA ;PASS IT ON 673 674 RPGRD2: 675 IFN TEMP, 677 IN 17,0 678 JRST RPGRD+2 679 STATO 17,740000 680 JRST RPGRD3 ;END OF FILE 681 ERROR , 682 EXIT ;AND GIVE UP 683 684 RPGRD3: ERROR , 685 EXIT 686 > 687 688 SUBTTL CHARACTER HANDLING 689 690 ;ALPHANUMERIC CHARACTER, NORMAL MODE 691 000157' 361 14 0 00 000120' LD4: SOJL E,LD3 ;JUMP IF NO SPACE FOR CHAR IN W 692 000160' 305 10 0 00 000141 CAIGE T,141 ;WORRY ABOUT LOWER CASE LETTERS 693 000161' 275 10 0 00 000040 SUBI T,40 ;CONVERT FROM ASCII TO SIXBIT 694 000162' 136 10 0 00 000011 IDPB T,V ;DEPOSIT CHAR OF IDENTIFIER IN W 695 000163' 661 00 0 00 100000 TLO F,DSW ;SET IDENTIFIER FLAG 696 000164' 254 00 0 00 000120' JRST LD3 ;RETURN FOR NEXT CHARACTER 697 698 ;DEVICE IDENTIFIER DELIMITER <:> 699 700 000165' 261 17 0 00 000012 LD5: PUSH P,W ;SAVE W 701 000166' 663 00 0 00 000001 TLOE F,CSW ;TEST AND SET COLON FLAG 702 000167' 260 17 0 00 001235' PUSHJ P,LDF ;FORCE LOADING 703 000170' 262 17 0 00 000012 POP P,W ;RESTORE W 704 000171' 603 00 0 00 000002 TLNE F,ESW ;TEST SYNTAX 705 000172' 254 00 0 00 000741' JRST LD7A ;ERROR, MISSING COMMA ASSUMED 706 000173' 322 12 0 00 000113' JUMPE W,LD2DC ;JUMP IF NULL DEVICE IDENTIFIER 707 000174' 250 12 0 00 003731' EXCH W,ILD1 ;STORE DEVICE IDENTIFIER 708 000175' 202 12 0 00 004014' MOVEM W,LSTDEV ;SAVE LAST DEVICE SO WE CAN RESTORE IT 709 000176' 254 00 0 00 000112' JRST LD2DB ;RETURN FOR NEXT IDENTIFIER 710 711 ;FILE NAME EXTENSION IDENTIFIER DELIMITER <.> 712 LD5A: IFN SYMARG,< 713 TRNE F,ARGFL ;IS "." SPECIAL 714 JRST LD4 ;YES,RADIX-50> 715 000177' 663 00 0 00 000002 TLOE F,ESW ;TEST AND SET EXTENSION FLAG LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-13 LOADER MAC 24-MAR-75 15:43 CHARACTER HANDLING 716 000200' 254 00 0 00 000741' JRST LD7A ;ERROR, TOO MANY PERIODS 717 000201' 623 00 0 00 100001 TLZE F,CSW+DSW ;SKIP IF NULL IDENT AND NO COLON 718 000202' 202 12 0 00 004162' MOVEM W,DTIN ;STORE FILE IDENTIFIER 719 000203' 254 00 0 00 000113' JRST LD2DC ;RETURN FOR NEXT IDENTIFIER 720 721 ;INPUT SPECIFICATION DELIMITER <,> 722 000204' LD5B: 723 000204' 623 01 0 00 200000 IFN PP, 727 IFE STANSW,< HRLM D,PPN ;STORE PROJ # 728 000205' 254 00 0 00 006276' JRST LD6A1 ];GET PROG #> 729 IFN STANSW,< PUSHJ P,RJUST ;RIGHT JUSTIFY W 730 HRLM W,PPN ;STORE PROJ NAME 731 JRST LD2D ];GET PROG NAME> 732 000206' 260 17 0 00 000275' PUSHJ P,SFDCK ;CHECK FOR SFD DIRECTORY> 733 000207' 476 00 0 00 004142' SETOM LIMBO ;USED TO INDICATE COMMA SEEN 734 000210' 627 00 0 00 000010 TLZN F,FSW ;SKIP IF PREV. FORCED LOADING 735 000211' 260 17 0 00 001232' PUSHJ P,FSCN2 ;LOAD (FSW NOT SET) 736 000212' 254 00 0 00 000103' JRST LD2BP ;RETURN FOR NEXT IDENTIFIER 737 738 000213' 603 00 0 00 000002 LD5B1: TLNE F,ESW ;TEST EXTENSION FLAG 739 000214' 254 00 0 00 001172' JRST LDDT3 ;EXPLICIT EXTENSION IDENTIFIER 740 000215' 627 00 0 00 100001 TLZN F,CSW+DSW ;SKIP IF IDENT. OR COLON 741 000216' 263 17 0 00 000000 POPJ P, 742 000217' 202 12 0 00 004162' MOVEM W,DTIN ;STORE FILE IDENTIFIER 743 000220' 254 00 0 00 001171' JRST LDDT2 ;ASSUME <.REL> IN DEFAULT CASE 744 745 ;OUTPUT SPECIFICATION DELIMITER <=> OR 746 ;OR PROJ-PROG # BRACKETS <[> AND <]> 747 748 000221' LD5C: 749 IFN SPCHN, 755 000221' 306 10 0 00 000133 IFN PP, 761 000222' 254 00 0 00 006302' IFE STANSW,< JRST LD6A2]> ;READ NUMBERS AS SWITCHES 762 IFN STANSW,< JRST LD2D]> 763 000223' 306 10 0 00 000135 CAIN T,"]" ;END OF PP #? 764 JRST [PUSHJ P,RBRA ;PROCESS RIGHT BRACKET 765 000224' 254 00 0 00 006310' JRST LD3] ;READ NEXT IDENT> 766 000225' 663 00 0 00 000100 TLOE F,ASW ;TEST AND SET LEFT ARROW FLAG 767 000226' 254 00 0 00 000741' JRST LD7A ;ERROR, MISPLACED LEFT ARROW 768 000227' 260 17 0 00 000213' PUSHJ P,LD5B1 ;STORE IDENTIFIER 769 000230' 627 00 0 00 000002 TLZN F,ESW ;TEST EXTENSION FLAG 770 000231' 205 12 0 00 554160 MOVSI W,'MAP' ;ASSUME <.MAP> IN DEFAULT CASE LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-14 LOADER MAC 24-MAR-75 15:43 CHARACTER HANDLING 771 000232' 541 12 0 00 000000 HRRI W,0 ;CLEAR RIGHT HALF OF EXTENSION 772 000233' 316 12 0 00 006312' CAMN W,['CHN '] ;TEST FOR <.CHN> EXTENSION 773 000234' 205 12 0 00 554160 MOVSI W,'MAP' ;AND TURN IT BACK TO MAP 774 IFN MONLOD, 776 IFN SYMDSW, 778 000235' 202 12 0 00 004167' MOVEM W,DTOUT1 ;STORE FILE EXTENSION IDENTIFIER 779 000236' 200 12 0 00 004162' MOVE W,DTIN ;LOAD INPUT FILE IDENTIFIER 780 000237' 202 12 0 00 004166' MOVEM W,DTOUT ;USE AS OUTPUT FILE IDENTIFIER 781 IFN SPCHN, 782 000240' 336 12 0 00 004016' IFN PP, 785 000243' 200 12 0 00 003731' MOVE W,ILD1 ;LOAD INPUT DEVICE IDENTIFIER 786 000244' 202 12 0 00 003726' MOVEM W,LD5C1 ;USE AS OUTPUT DEVICE IDENTIFIER 787 IFN SPCHN, 789 000245' 336 12 0 00 004014' SKIPN W,LSTDEV ;RESTORE LAST 790 000246' 205 12 0 00 446353 IFN PP, 791 000247' 402 00 0 00 004014' SETZM LSTDEV ;BUT ONLY ONCE 792 000250' 202 12 0 00 003731' MOVEM W,ILD1 793 ;INITIALIZE AUXILIARY OUTPUT DEVICE 794 795 IFN SYMDSW,< 796 TLNN F,LSYMFL ;IGNORE IF ALREADY IN USE 797 PUSHJ P,AUXINI 798 JRST LD2DD 799 AUXINI:> 800 000251' 620 00 0 00 040000 TRZ F,TTYFL 801 000252' 623 01 0 00 060000 IFE SYMDSW, 803 000254' 200 12 0 00 003726' MOVE W,LD5C1 ;GET AUX DEVICE 804 000255' 047 12 0 00 000004 DEVCHR W, ;IS DEVICE A TTY? 805 000256' 603 12 0 00 000010 TLNE W,10 ;... 806 000257' 660 00 0 00 040000 TRO F,TTYFL ;YES SET FLAG 807 000260' 603 12 0 00 020000 TLNE W,(1B4) ;IS IT CONTROLING TTY? 808 000261' 254 00 0 00 000105' IFE SYMDSW, 809 IFN SYMDSW, 810 000262' 050 02 0 00 003725' OPEN 2,OPEN2 ;KEEP IT PURE 811 000263' 254 00 0 00 001056' JRST ILD5A 812 000264' 603 00 0 00 002000 TLNE F,REWSW ;REWIND REQUESTED? 813 000265' 047 02 0 00 000013 UTPCLR 2, ;DECTAPE REWIND 814 000266' 623 00 0 00 002000 TLZE F,REWSW ;SKIP IF NO REWIND REQUESTED 815 000267' 072 02 0 00 000001 MTAPE 2,1 ;REWIND THE AUX DEV 816 000270' 201 14 0 00 004652' MOVEI E,AUX ;SET BUFFER ORIGIN 817 000271' 202 14 0 00 000016* MOVEM E,.JBFF 818 000272' 065 02 0 00 000001 OUTBUF 2,1 ;INITIALIZE SINGLE BUFFER 819 000273' 661 01 0 00 020000 TLO N,AUXSWI ;SET INITIALIZED FLAG 820 IFN LNSSW, 824 000274' 254 00 0 00 000105' IFE SYMDSW, 825 IFN SYMDSW, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-15 LOADER MAC 24-MAR-75 15:43 CHARACTER HANDLING 826 ;RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS) 827 IFN PP,< 828 000275' SFDCK: IFN SFDSW,< 829 000275' 607 01 0 00 100000 TLNN N,PPSW ;READING PP #? 830 000276' 263 17 0 00 000000 POPJ P, ;NO 831 000277' 332 00 0 00 004025' SKIPE SFD ;READING SFD YET? 832 000300' 254 00 0 00 000307' JRST SFDCK1 ;YES 833 000301' 336 00 0 00 000007 SKIPN D ;NUMBER SEEN? 834 000302' 550 07 0 00 004022' HRRZ D,MYPPN ;NO, USE MINE 835 000303' 542 07 0 00 004016' HRRM D,PPN ;STORE IT 836 000304' 202 02 0 00 004025' MOVEM X,SFD ;NEED AN AC, SETS SFD NON-ZERO 837 000305' 200 02 0 00 006313' MOVE X,[-SFDSW,,SFD] ;INITIALIZE POINTER 838 000306' 254 00 0 00 000114' JRST LD2DA ;GET FIRST SFD 839 840 000307' 252 02 0 00 000312' SFDCK1: AOBJP X,SFDER ;ERROR IF TOO MANY SFDS 841 000310' 202 12 0 02 000000 MOVEM W,(X) ;STORE IN SLOT 842 000311' 254 00 0 00 000114' JRST LD2DA ;GET NEXT SFD 843 844 000312' 200 02 0 00 004025' SFDER: MOVE X,SFD ;RESTORE X 845 000313' 265 16 0 00 003577' ERROR , 846 000321' 254 00 0 00 000145' JRST LD2 847 848 > 849 000322' 627 01 0 00 100000 RBRA: TLZN N,PPSW ;READING PP #? 850 000323' 263 17 0 00 000000 POPJ P, ;NOPE, RETURN 851 000324' 623 01 0 00 200000 TLZE N,PPCSW ;COMMA SEEN? 852 000325' 254 00 0 00 000741' JRST LD7A ;NOPE, INDICATE ERROR 853 000326' 336 00 0 00 004025' IFN SFDSW, 864 000340' 542 07 0 00 004016' IFE STANSW, 866 IFN STANSW, 868 000342' 200 12 0 00 004016' MOVE W,PPN ;GET PPN 869 000343' 336 00 0 00 004162' RBRA2: SKIPN DTIN ;FILE NAME SEEN IN THIS SPEC? 870 000344' 332 00 0 00 004021' SKIPE PPNW ;OR SOMETHING WAITING IN W? 871 000345' 254 00 0 00 000354' JRST RBRA3 ;YES, SO WE'VE GOT A FILE NAME SOMEWHERE 872 000346' 202 12 0 00 004015' MOVEM W,PPPN ;NO , SO MAKE PERMANENT PPN 873 000347' 200 12 0 00 006314' IFN SFDSW, 878 000354' 200 12 0 00 004021' RBRA3: MOVE W,PPNW ;PICKUP OLD IDENT 879 000355' 200 14 0 00 004017' MOVE E,PPNE ;RESTORE CHAR COUNT 880 000356' 200 11 0 00 004020' MOVE V,PPNV ;RESTORE BYTE PNTR LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-16 LOADER MAC 24-MAR-75 15:43 CHARACTER HANDLING 881 000357' 263 17 0 00 000000 POPJ P, ;TRA 1,4 882 883 ;RIGHT JUSTIFY W 884 885 IFN STANSW,< 886 RJUST: JUMPE W,LD7A ;NOTHING TO RIGHT JUSTIFY 887 TRNE W,77 ;IS W RJUSTED YET? 888 POPJ P, ;YES, TRA 1,4 889 LSH W,-6 ;NOPE, TRY AGAIN 890 JRST .-3 ;...>> 891 892 IFN SYMARG,< 893 ;& SELECTS A SYMBOL RATHER THAN ANUMBER FOR A SWITCH ARGUMENT 894 ;& MUST ALSO FOLLOW THW SYMBOL; THE FORM IS /&SYMBOL&SWITHCH 895 LD10: TRC F,ARGFL ;SET OR CLEAR SPECIAL CHARS. 896 TLCE F,SSW ;IF IN SWITCH MODE, EXIT TO GET IDENTIFIER 897 JRST LD10B 898 PUSHJ P,ASCR50 ;IF NOT, REENTER IT, CONVERT IDENTIFIER TO R50 899 PUSHJ P,SDEF ;AND SEE IF IT EXISTS 900 JRST LD10A ;YES IT DOES 901 PUSHJ P,PRQ ;NO, COMPLAIN. OUTPUT ? 902 PUSHJ P,SPACE ;FOLLOWED BY A SPACE 903 PUSHJ P,PRNAME ;FOLLOWED BY THIS SYMBOL 904 ERROR 0, 905 JRST LD2 906 LD10A: MOVE D,2(A) ;SET D=VALUE OF SYMBOL AS NUMERIC ARG 907 TLZ F,DSW!FSW 908 MOVEI E,6 ;INITIALIZE NEW IDENTIFIER SCAN 909 MOVE V,LSTPT ;(W IS ALREADY 0) 910 JRST LD3 ;NOW EAT SWITCH AND CONTINUE PROCESSING COMMAND 911 LD10B: PUSHJ P,FSCN1 ;FORCE SCAN TO COMPLETION TO MAKE SURE FILE IS LOADED 912 JRST LD2DA> 913 SUBTTL CONVERT SYMBOL IN W TO RADIX-50 IN C 914 915 IFN SYMARG,< 916 ;ALSO USES A 917 ASCR50: MOVEI A,0 918 R50A: MOVEI C,0 919 ROTC W,6 ;C IS NEXT SIXBIT CHAR 920 CAIGE C,20 921 JRST R50B ;UNDER 20, MAY BE ., $, OR % 922 CAILE C,31 923 JRST R50C ;OVER 31 924 SUBI C,20-1 ;IS NUMBER 925 R50D: IMULI A,50 926 ADD A,C 927 JUMPN W,R50A ;LOOP FOR ALL CHARS 928 MOVE C,A ;WIND UP WITH CHAR IN C 929 TLO C,040000 ;MAKE IT GLOBAL DEFINITION 930 POPJ P, 931 R50B: JUMPE C,R50D ;OK IF SPACE 932 CAIE C,16 ;TEST IF . 933 JRST .+3 ;NO 934 MOVEI C,45 ;YES 935 JRST R50D LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-17 LOADER MAC 24-MAR-75 15:43 CONVERT SYMBOL IN W TO RADIX-50 IN C 936 CAIE C,4 ;SKIP IF $ 937 R50E: MOVEI C,5 ;ASSUME % IF NOTHING ELSE 938 ADDI C,42 939 JRST R50D 940 R50C: CAIGE C,41 941 JRST R50E ;BETWEEN 31 AND 41 942 CAILE C,72 943 JRST R50E ;OVER 72 944 SUBI C,41-13 ;IS LETTER 945 JRST R50D> 946 947 ;DEFINE PUTS A SYMBOL IN THE UNDEFINED SYMBOL TABLE 948 ;SO LOADER CAN SCAN LIBRARY AND LOAD PROGRAMS BEFORE THEY ARE REQUESTED 949 ;THE FORM IS /&SYMBOL# WHERE SYMBOL IS CONVERTED TO RADIX-50 950 IFN SYMARG,< 951 DEFINE: PUSHJ P,ASCR50 ;CONVRT TO R-50 952 MOVEI W,-2(S) ;WHERE SYMBOL WILL GO 953 CAIG W,(H) ;ENOUGH ROOM 954 IFN EXPAND, 958 IFE EXPAND, 959 SUB S,SE3 ;ADJUST POINTER 960 MOVEM C,1(S) ;R-50 SYMBOL 961 SETZM 2(S) ;VALUE 962 TLZ F,DSW!SSW ;TURN OFF SWITCHES 963 TRZ F,ARGFL ; DITTO 964 TLZN N,SLASH ;IF NOT /&NAME# 965 JRST LD6A2 ;MUST BE (&NAME#), GET ) 966 JRST LD2D ;CONTINUE TO SCAN 967 > 968 969 SUBTTL TERMINATION 970 ;LINE TERMINATION 971 972 000360' LD5D: 973 000360' 260 17 0 00 000322' IFN PP, 974 000361' 335 00 0 00 004142' SKIPGE LIMBO ;WAS LAST CHAR. BEFORE CR A COMMA? 975 000362' 661 00 0 00 100000 TLO F,DSW ;YES ,SO LOAD ONE MORE FILE 976 000363' 260 17 0 00 001214' PUSHJ P,FSCN ;FORCE SCAN TO COMPLETION 977 000364' 254 00 0 00 000075' JRST LD2B ;RETURN FOR NEXT LINE 978 979 ;TERMINATE LOADING 980 981 000365' 322 07 0 00 000370' LD5E: JUMPE D,LD5E1 ;ENTER FROM G COMMAND 982 000366' 661 01 0 00 000002 TLO N,ISAFLG ;AND IGNORE ANY STARTING ADDRESS TO COME 983 000367' 552 07 0 00 003734' HRRZM D,STADDR ;USE NUMERIC STARTING ADDRESS 984 000370' 260 17 0 00 003465' LD5E1: PUSHJ P,CRLF ;START A NEW LINE 985 IFN RPGSW, 987 IFN MANTIS, 990 IFN DMNSW, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-18 LOADER MAC 24-MAR-75 15:43 TERMINATION 991 LD5E2: > 992 000371' 260 17 0 00 000427' PUSHJ P,SASYM ;SETUP JOBSA,JOBFF,JOBSYM,JOBUSY 993 000372' 200 12 0 00 006315' IFE NAMESW, 994 000373' 321 04 0 00 000375' JUMPL S,.+2 ;UNDEFINED SYMBOLS 995 000374' 332 00 0 00 003733' SKIPE MDG ;OR MULTIPLY DEFINED 996 000375' 260 17 0 00 003670' PUSHJ P,PRQ ;PRINT "?" FOR BATCH 997 IFN NAMESW, 1007 IFN L,> 1008 IFN MONLOD, 1009 000376' 260 17 0 00 000404' PUSHJ P,BLTSET ;SETUP FOR FINAL BLT 1010 000377' 071 02 0 00 000000 RELEASE 2, ;RELEASE AUX. DEV. 1011 000400' 071 01 0 00 000000 RELEASE 1,0 ;INPUT DEVICE 1012 000401' 071 03 0 00 000000 RELEASE 3,0 ;TTY 1013 IFN SPCHN, 1014 1015 000402' 200 12 0 00 005114' IFN L,< MOVE W,LSPREL ;RESTORE LISP'S RELOCATION 1016 000403' 254 00 1 00 004136' JRST @LSPXIT> 1017 IFE L,< ;NONE OF THIS NEEDED FOR LISP 1018 IFN PURESW,< 1019 MOVE V,[XWD HHIGO,HIGO] 1020 BLT V,HIGONE ;MOVE DOWN CODE TO EXIT> 1021 TLNN N,EXEQSW ;DO WE WANT TO START 1022 JRST LD5E3 1023 IFN RPGSW, 1025 IFN MANTIS, 1026 JUMPN C,EXDLTD ;ERRORS AND NOT TO DDT> 1027 IFN MONLOD, 1029 HRRZ W,.JBSA(X) 1030 IFN MANTIS, 1031 TLNN N,DDSW ;SHOULD WE START DDT?? 1032 IFE TENEX, 1033 IFN TENEX, 1044 HRRZ W,.JBDDT(X) 1045 TTCALL 3,[ASCIZ /DDT /] LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-19 LOADER MAC 24-MAR-75 15:43 TERMINATION 1046 LD5E2: IFN MANTIS,< 1047 SKIPE V,MNTSYM ;SHOULD WE START SPECIAL DEBUGGER? 1048 TRNN N,MANTFL 1049 JRST .+3 ;NO 1050 HRRZ W,.JBREN##(X) ;YES 1051 MOVEM V,.JBCN6##(X) ;SETUP AUXILARY SYMBOL POINTER> 1052 IFN RPGSW,< TLNE N,RPGF ;IF IN RPG MODE 1053 JUMPE W,NOSTAD ;ERROR IF NO STARTING ADDRESS> 1054 JUMPE W,LD5E3 ;ANYTHING THERE? 1055 TLOA W,(JRST) ;SET UP A JRST 1056 LD5E3: SKIPA W,CALLEX ;NO OR NO EXECUTE, SET CALLI 12 1057 IFN MANTIS, 1059 TTCALL 3,[ASCIZ /EXECUTION 1060 /] 1061 IFN TENEX,B53 ;JRST IN LH 1064 MOVEI N,400000 ;THIS FORK 1065 SEVEC ;SET ENTRY VECTOR 1066 MOVE X,V ;UNSAVE RELOCATION> 1067 IFN LDAC,< HRLZ P,BOTACS ;SET UP FOR ACBLT 1068 MOVEM W,.JBBLT+1(X) ;SET JOBBLT 1069 MOVE W,[BLT P,P] 1070 MOVEM W,.JBBLT(X)> 1071 MOVE V,.JBVER(X) ;GET VERSION NUMBER 1072 MOVEM V,.JBVER ;SET IT UP BEFORE SETNAM UUO 1073 IFN MONLOD, 1075 TLNE F,FULLSW ;DID WE RUN OUT OF CORE? 1076 HRRZ A,Q ;YES, NULIFY BLT 1077 MOVSI LSTAC,LODACS ;SET UP TO BLT BLT CODE INTO ACS 1078 BLT LSTAC,LSTAC 1079 IFN KUTSW, 1081 IFE LDAC, 1082 IFN PURESW,< 1083 MOVSI V,LD ;DOES IT HAVE HISEG 1084 JUMPG V,HINOGO ;NO,DON'T DO CORE UUO 1085 MOVSI V,1 ;SET HISEG CORE NONE ZERO 1086 JRST HIGO ;AND GO> 1087 IFE PURESW,< 1088 IFN NAMESW, 1090 JRST 0> 1091 1092 LODACS: PHASE 0 1093 BLT Q,(A) ;BLT CODE DOWN 1094 IFN KUTSW, 1096 SETZB 0,7 ;CLEAR ACCS OTHERWISE USER 1097 SETZB 11,17 ;MIGHT BELIEVE GARBAGE THERE 1098 LSTAC:! IFN LDAC, 1099 IFE LDAC, 1100 DEPHASE LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 1-20 LOADER MAC 24-MAR-75 15:43 TERMINATION 1101 1102 IFN RPGSW,< 1103 NOSTAD: TTCALL 3,[ASCIZ /NO STARTING ADDRESS 1104 /] 1105 EXDLTD: TTCALL 3,[ASCIZ /?EXECUTION DELETED 1106 /] 1107 JRST LD5E3> 1108 > ;END OF IFE L AT BEGINNING OF THIS PAGE 1109 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 2 LOADER MAC 24-MAR-75 15:43 PRINT FINAL MESSAGE 1110 SUBTTL PRINT FINAL MESSAGE 1111 ; SET UP BLT AC'S, SETDDT, RELEAS 1112 1113 BLTSET: IFN RPGSW,> 1115 IFN MANTIS, 1117 000404' 260 17 0 00 003464' PUSHJ P,FCRLF ;A RETURN 1118 000405' 211 15 0 00 000006 MOVNI Q,6 ;SET CHARACTER COUNT TO 6 1119 000406' 201 07 0 00 000077 MOVEI D,77 ;CHARACTER MASK 1120 000407' 612 12 0 00 000007 BLTST1: TDNE W,D ;TEST FOR SIXBIT BLANK 1121 000410' 254 00 0 00 000413' JRST BLTST2 ;NO, SO PRINT THE NAME 1122 000411' 242 07 0 00 000006 LSH D,6 ;SHIFT MASK LEFT ONE CHAR 1123 000412' 341 15 0 00 000407' AOJL Q,BLTST1 ;INCR COUNTER & REPEAT 1124 000413' 260 17 0 00 003456' BLTST2: PUSHJ P,PWORD1 ;OUTPUT PROGRAM NAME 1125 000414' 260 17 0 00 003453' PUSHJ P,SPACE 1126 000415' BLTST3: 1127 IFN FAILSW, 1134 IFN L, 1135 HRRM A,@X ;PUT END OF LINK CHAIN IN PROPER PLACE 1136 NOEND: AOBJN Q,FREND 1137 IFN REENT,> 1138 IFN KUTSW,< 1139 SKIPGE C,CORSZ ;NEG MEANS DO NOT KUT BACK CORE 1140 JRST NOCUT 1141 JUMPE C,MINCUT ;0 IS KUT TO MIN. POSSIBLE 1142 LSH C,12 ;GET AS A NUMBER OF WORDS 1143 SUBI C,1 1144 CAMG C,.JBREL ;DO WE NEED MORE THAN WE HAVE?? 1145 JRST TRYSML ;NO, SEE IF NUMBER REQUESTED IS TOO SMALL 1146 MOVEI Q,0 1147 CORE Q, 1148 JFCL ;WE JUST WANT TO KNOW HOW MUCH 1149 HRRZS Q 1150 CAMGE Q,CORSZ 1151 JRST CORERR 1152 JRST NOCUT1 ;SET FOR DO NOT CHANGE SIZE 1153 TRYSML: CAIG C,-1(R) ;IS DESIRED AMOUNT BIGGER THAN NEEDED 1154 IFE TENEX, 1155 MOVEI C,-1(R) ;GET MIN AMOUNT 1156 IORI C,1777 ;CONVERT TO A 1K MULTIPLE 1157 IFN DMNSW,< TRNN F,DMNFLG ;DID WE MOVE SYMBOLS?? 1158 SKIPN .JBDDT(X) ;IF NOT IS DDT THERE?? 1159 JRST .+2> 1160 IFE DMNSW, 1161 JRST NOCUT ;DO NOT CUT IF SYMBOLS AT TOP AND DDT 1162 NOCUT1: MOVEM C,.JBREL(X) ;SAVE FOR CORE UUO 1163 MOVEM C,CORSZ ;SAVE AWAY FOR LATER 1164 JRST .+2 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 2-1 LOADER MAC 24-MAR-75 15:43 PRINT FINAL MESSAGE 1165 NOCUT: SETOM CORSZ ;SET FOR NO CUT BACK> 1166 IFN RPGSW,> 1168 000415' 550 15 0 00 000047* IFN L, 1170 IFE L, 1171 000417' 242 15 0 00 777766 LSH Q,-12 ;GET CORE SIZE TO PRINT 1172 000420' 271 15 0 00 000001 ADDI Q,1 1173 000421' 260 17 0 00 003442' PUSHJ P,RCNUM 1174 IFN REENT, 1186 000422' 200 12 0 00 006316' MOVE W,[SIXBIT /K CORE/] 1187 000423' 260 17 0 00 003455' PUSHJ P,PWORD 1188 IFE L,< 1189 IFN RPGSW, 1194 MOVSI W,', ' ;SET DELIMITER CHARACTERS 1195 MOVNI Q,2 ;SET COUNT TO 2 1196 PUSHJ P,PWORD1 ;OUTPUT THEM 1197 IFN DMNSW, 1198 SKIPN .JBDDT(X) 1199 SKIPA Q,.JBREL(X) 1200 MOVEI Q,1(S) ;FIND THE AMOUNT OF SPACE LEFT OVER 1201 SUB Q,.JBFF(X) 1202 ADDI Q,1 ;ONE TWO SMALL 1203 PUSHJ P,RCNUM 1204 IFN REENT,< 1205 SKIPN HVAL ;CREATING A HIGH SEGMENT? 1206 JRST NOHIFR ;NO 1207 MOVEI T,'+' ;YES, TYPE + 1208 PUSHJ P,TYPE 1209 HLRZ Q,.JBHRL(X) ;GET HISEG BREAK 1210 SUBI Q,1 ;1 TOO HIGH (R=NEXT TO LOAD INTO) 1211 ANDI Q,1777 ;CUT TO WORDS FREE 1212 XORI Q,1777 1213 PUSHJ P,RCNUM ;TYPE 1214 NOHIFR:> 1215 MOVE W,[SIXBIT / WORDS/] 1216 PUSHJ P,PWORD 1217 MOVE W,[SIXBIT / FREE/] 1218 PUSHJ P,PWORD 1219 PUSHJ P,CRLF LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 2-2 LOADER MAC 24-MAR-75 15:43 PRINT FINAL MESSAGE 1220 ERROR 0, ;GIVE EXPLANATION 1221 MOVE Q,.JBREL 1222 LSH Q,-12 1223 ADDI Q,1 1224 PUSHJ P,RCNUM ;PRINT MAX LOW CORE SIZE 1225 IFN REENT,< SKIPE Q,.JBHRL ;GET SIZE OF HIGH SEGMENT 1226 PUSHJ P,[MOVEI Q,400001(Q) ;CLEAR HIGH ORDER BIT 1227 MOVEI T,"+"-40 ;PRINT A HIGH CORE PART 1228 PUSHJ P,TYPE 1229 LSH Q,-12 1230 JRST RCNUM]> 1231 MOVE W,[SIXBIT /K CORE/] 1232 PUSHJ P,PWORD 1233 NOMESS: TLO F,FCONSW ;FORCE PRINTING OF CRLF> 1234 000424' 260 17 0 00 003465' PUSHJ P,CRLF 1235 IFE L,< 1236 IFN REENT, 1240 PUSHJ P,CRLF> 1241 NOMAX: 1242 IFE TENEX, 1251 CAIG W,(Q) ;IN BOUNDS? 1252 JRST DDTSET ;YES, ALL OK 1253 IFN REENT, 1257 SETZM .JBSYM(X) ;JOBSYM IS OUT OF BOUNDS 1258 CAIA ;JOBUSY ALSO, SO CLEAR THEM> 1259 DDTSET: SKIPLE .JBUSY(X) ;IF ITS NOT A POINTER 1260 SETZM .JBUSY(X) ;DON'T KEEP ADDRESS 1261 1262 IFE TEN30, 1264 IFN TEN30, 1266 >;END OF IFE L 1267 000425' 550 16 0 00 000005 HRRZ A,R 1268 000426' 263 17 0 00 000000 POPJ P, ;WE HAVE SET R UP BY CLEVER CODE IN SASYM 1269 IFN KUTSW, 1272 1273 IFN TENEX,< 1274 ;SETUP TO CUT BACK CORE TO MINIMUM LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 2-3 LOADER MAC 24-MAR-75 15:43 PRINT FINAL MESSAGE 1275 ;THIS IS MIN OF R AND TOP OF SYMTAB 1276 MINCUT: HLRE C,.JBSYM(X) 1277 MOVNS C 1278 ADD C,.JBSYM(X) 1279 HRRZS C 1280 JRST TRYSML ;GO COMPARE WITH R 1281 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 3 LOADER MAC 24-MAR-75 15:43 SET UP JOBDAT 1282 SUBTTL SET UP JOBDAT 1283 000427' 607 00 0 00 200000 SASYM: TLNN F,NSW 1284 000430' 260 17 0 00 001073' PUSHJ P,LIBF ;SEARCH LIBRARY IF REQUIRED 1285 000431' 260 17 0 00 001214' PUSHJ P,FSCN ;FORCE END OF SCAN 1286 IFN ALGSW,> 1291 IFN RPGSW, 1296 IFN SYMDSW, 1297 IFN SPCHN,< 1298 SKIPE CHNACB ;TEST FOR SPECIAL CHAINING 1299 TRNN N,CHNMAP ;TEST FOR ROOT SEGMENT PRINTED 1300 JRST NOCHMP ;JUMP IF NO TO EITHER CONDITION 1301 SETZM LINKNR ;CLEAR OVERLAY LINK NUMBER 1302 MOVE A,BEGOV ;GET START OF OVERLAY POINT 1303 IFN REENT, 1306 IFE REENT, 1307 CAMN W,R ;TEST FOR ADDED MODULES 1308 TRZ N,ENDMAP ;NO, THEN SUPRESS MAP AT END 1309 NOCHMP: > ;END OF IFN SPCHN 1310 000432' 602 01 0 00 000002 TRNE N,ENDMAP ;WANT MAP AT END? 1311 000433' 260 17 0 00 003134' PUSHJ P,PRTMAP ;YES 1312 000434' 607 01 0 00 040000 TLNN N,AUXSWE ;TEST FOR MAP PRINTED YET 1313 000435' 621 01 0 00 020000 TLZ N,AUXSWI ; NO, THEN DON'T START NOW 1314 000436' 606 01 0 00 000002 TRNN N,ENDMAP ;DON'T PRINT UNDEFS TWICE 1315 000437' 260 17 0 00 003300' PUSHJ P,PMS ;PRINT UNDEFS 1316 000440' 550 16 0 00 000003 HRRZ A,H ;DO NOT CLOBBER H IF STILL INSERTING SYMBOLS 1317 IFN MONLOD, 1318 000441' 275 16 0 02 000000 SUBI A,(X) ;HIGHEST LOC LOADED INCLUDES LOC STMTS 1319 000442' 303 16 0 05 000000 CAILE A,(R) ;CHECK AGAINST R 1320 000443' 540 05 0 00 000016 HRR R,A ;AND USE LARGER 1321 IFN MONLOD, 1323 IFE L,< HRRZ A,STADDR ;GET STARTING ADDRESS 1324 HRRM A,.JBSA(X) ;STORE STARTING ADDRESS 1325 HRRZM R,.JBFF(X) ;AND CURRENT END OF PROG 1326 HRLM R,.JBSA(X)> 1327 IFN DMNSW,> 1332 IFN DMNSW!LDAC,< ;ONLY ASSEMBLE IF EITHER SET 1333 IFN MONLOD, 1335 IFE LDAC,< TRNN F,DMNFLG ;GET EXTRA SPACE IF SYMBOLS 1336 JRST NODDT ;MOVED OR IF LOADING ACS> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 3-1 LOADER MAC 24-MAR-75 15:43 SET UP JOBDAT 1337 IFE DMNSW,< MOVEI A,20 ;FOR LOADING ACS> 1338 IFN DMNSW,< MOVE A,KORSP 1339 IFN LDAC,< TRNN F,DMNFLG ;ONLY 20 IF SYMBOLS NOT MOVED 1340 MOVEI A,20>> 1341 ADDI A,(R) ;GET ACTUAL PLACE TO PUT END OF SPACE 1342 ADDI A,(X) 1343 CAIL A,(S) ;DO NOT OVERWRITE SYMBOLS 1344 IFN EXPAND, 1345 PUSHJ P,MORCOR 1346 IFN EXPAND,< JRST .-1]> 1347 IFN LDAC,> 1353 IFN DMNSW, 1356 HRRZ A,R 1357 ADD A,KORSP 1358 MOVE W,A ;SAVE POINTER TO FINAL LOC OF UNDEFS 1359 IFN MONLOD, 1361 ADDI A,(X) 1362 HLLZ Q,S ;COMPUTE LENGTH OF SYMBOL TABLE 1363 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 4 LOADER MAC 24-MAR-75 15:43 SET UP JOBDAT 1364 ADD Q,B 1365 HLROS Q 1366 MOVNS Q 1367 ADDI Q,-1(A) ;GET PLACE TO STOP BLT 1368 HRLI A,1(S) ;WHERE TO BLT FROM 1369 SUBI W,1(S) ;GET AMOUNT TO CHANGE S AND B BY 1370 BLT A,(Q) ;MOVE SYMBOL TABLE 1371 ADD S,W 1372 ADD B,W ;CORRECT S AND B FOR MOVE 1373 HRRI R,1(Q) ;SET R TO POINT TO END OF SYMBOLS 1374 IFN REENT, 1375 IFN MONLOD, 1377 SUBI R,(X) 1378 IFN MONLOD, 1380 HRRM R,.JBFF(X) 1381 HRLM R,.JBSA(X) ;AND SAVE AWAY NEW JOBFF 1382 IFE REENT, 1383 IFN LDAC, ;SKIP THE ADD TO R 1384 NODDT:> 1385 IFN LDAC, ;MAKE SURE R IS CORRECT FOR BLT 1386 000444' 200 16 0 00 000006 MOVE A,B 1387 000445' 271 16 0 00 000001 ADDI A,1 ;SET UP JOBSYM, JOBUSY 1388 IFE L,> 1397 000446' 202 16 0 00 000022* IFN L, 1398 000447' 200 16 0 00 000004 MOVE A,S 1399 000450' 271 16 0 00 000001 ADDI A,1 1400 IFE L, 1404 MOVEM A,.JBREL(X) ;SET UP FOR IMEDIATE EXECUTION> 1405 000451' 202 16 0 00 000000* IFN L, 1406 IFN MONLOD, 1413 IFN REENT,< 1414 SKIPE A,HILOW ;SET UP TOP LOC OF LOW CORE EXCLUDING BLOCKS 1415 SUBI A,1(X) ;IF NON-ZERO THEN IT NEEDS RELOCATION 1416 HRLM A,.JBCOR(X) 1417 TRNN F,SEENHI 1418 POPJ P, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 4-1 LOADER MAC 24-MAR-75 15:43 SET UP JOBDAT 1419 HRRZ A,HVAL 1420 HRRM A,.JBHRL(X) 1421 SUB A,HVAL1 1422 IFN DMNSW, 1425 HRLM A,.JBHRL(X)> 1426 000452' 263 17 0 00 000000 POPJ P, 1427 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 5 LOADER MAC 24-MAR-75 15:43 BLT SYMBOL TABLE INTO HIGH SEGMENT 1428 SUBTTL BLT SYMBOL TABLE INTO HIGH SEGMENT 1429 IFN DMNSW&REENT,< 1430 BLTSYM: MOVE Q,HVAL ;GET ORIGIN OF HISEG 1431 CAMN Q,HVAL1 ;HAS IT CHANGED? 1432 JRST NOBLT ;NO 1433 HLLZ Q,S ;COMPUTE LENGTH OF SYMBOL TABLE 1434 HLRS S ;PUT NEG COUNT IN BOTH HALVES 1435 JUMPE S,.+2 ;SKIP IF S IS ZERO 1436 HRLI S,-1(S) ;SUB 1 FROM LEFT TO FIX CARRY PROBLEM 1437 ADD Q,B 1438 HLROS Q 1439 MOVNS Q 1440 ADD Q,HVAL ;ADD LENGTH OF HISEG 1441 SUB Q,HVAL1 ;BUT REMOVE ORIGIN 1442 ADD Q,HISTRT ;START OF HISEG IN CORE 1443 HRRZS Q ;CLEAR INDEX FROM Q 1444 ADD Q,KORSP ;SAVE SPACE FOR SYMBOL PATCHES 1445 CORE Q, ;EXPAND IF NEEDED 1446 PUSHJ P,MORCOR 1447 PUSH P,B ;SAVE B 1448 SOJ B, ;REMOVE CARRY FROM ADD TO FOLLOW 1449 MOVSS B ;SWAP SYMBOL POINTER 1450 ADD B,.JBREL 1451 HRRM B,(P) ;SAVE NEW B 1452 MOVE Q,.JBREL 1453 ADD B,S ;INCASE ANY UNDEFS. 1454 BLT B,(Q) ;MOVE SYMBOLS 1455 POP P,B ;GET NEW B 1456 SUB B,HISTRT 1457 ADD B,HVAL1 1458 SOJ B, ;REMOVE CARRY 1459 ADDI S,(B) ;SET UP .JBUSY 1460 BLTSY1: MOVE Q,.JBREL 1461 SUB Q,HISTRT 1462 ADD Q,HVAL1 1463 SUBI Q,1 ;ONE TOO HIGH 1464 MOVEM Q,HVAL 1465 JRST NODDT 1466 1467 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 6 LOADER MAC 24-MAR-75 15:43 BLT SYMBOL TABLE INTO HIGH SEGMENT 1468 NOBLT: HRRZ Q,H ;GET HIGHEST LOC LOADED 1469 IORI Q,1777 ;MAKE INTO A K BOUND 1470 MOVEI A,-.JBHDA(S) ;GET BOTTOM OF UNDF SYMBOLS 1471 SUB A,KORSP ;DON'T FORGET PATCH SPACE 1472 CAIG A,(Q) ;ARE THEY IN SAME K 1473 IFN EXPAND, 1474 PUSHJ P,MORCOR 1475 IFN EXPAND,< JRST NOBLT]> 1476 MOVEM Q,HISTRT ;SAVE AS START OF HIGH 1477 MOVEI A,400000 ;HISEG ORIGIN 1478 MOVEM A,HVAL1 ;SAVE AS ORIGIN 1479 SUB S,HISTRT ;GET POSITION OF UNDF POINTER 1480 ADDI S,377777 ;RELATIVE TO ORG 1481 SUB B,HISTRT ;SAME FOR SYM POINTER 1482 ADDI B,377777 1483 SUBI Q,377777 1484 MOVEM Q,HIGHX ;SO WE CAN SET HIGH JOB DATA AREA 1485 TRO F,SEENHI ;SO JOBHRL WILL BE SET UP 1486 JRST BLTSY1 ;AND USE COMMON CODE 1487 > 1488 1489 IFN DMNSW!LDAC!MANTIS!SYMDSW,< 1490 MORCOR: ERROR , 1491 EXIT> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 7 LOADER MAC 24-MAR-75 15:43 READ BACK LOCAL SYMBOLS 1492 SUBTTL READ BACK LOCAL SYMBOLS 1493 IFN SYMDSW,< 1494 READSYM: 1495 TRZN F,LSYMFL ;DID WE WRITE A SYMBOL FILE? 1496 POPJ P, ;NO 1497 RELEASE 2, ;CLOSE IT OUT 1498 MOVE W,SYMNAM ;GET NAME 1499 MOVEM W,DTIN 1500 TRNE N,ENDMAP ;MAP STILL REQUIRED? 1501 PUSHJ P,AUXINI ;YES, RE-INIT AUX DEV 1502 MOVE W,SYMEXT ;SEE IF EXTENSION SPECIFIED 1503 HRLZM W,DTIN1 1504 TLZ F,ISW 1505 TLO F,ESW 1506 MOVSI W,'DSK' 1507 MOVEM W,ILD1 1508 PUSHJ P,ILD 1509 PUSH P,S ;SAVE NUMBER OF UNDEFINED SYMBOLS FOR LATER 1510 HLRE V,S ;GET COUNT 1511 MOVMS V ;AND CONVERT TO POSITIVE 1512 HRLI B,V ;PUT V IN INDEX FIELD 1513 HRRZ S,HISTRT ;TOP OF CORE 1514 SUB S,V ;MINUS SIZE 1515 HRLI S,V ;V IN INDEX FIELD 1516 ;MOW MOVE FROM S TO B 1517 MOVE W,@B 1518 MOVEM W,@S 1519 SOJG V,.-2 ;FOR ALL ITEMS 1520 HRRM S,(P) ;S IS NOW BOTTOM OF UNDEFINED 1521 POP P,S ;SO PUT COUNT BACK INTO S 1522 HRRZ B,HISTRT ;POINT B TO TOP OF CORE FOR EXPAND 1523 MOVE V,SYMCNT# ;GET NUMBER OF SYMBOLS 1524 LSH V,1 ;2 WORDS PER SYMBOL 1525 SUBI V,(S) ;BOTTOM OF SYMBOL TABLE 1526 ADDI V,(H) ;-TOP OF CODE 1527 JUMPL V,.+3 1528 PUSHJ P,XPAND9 1529 JRST MORCOR 1530 MOVE V,SYMCNT ;GET COUNT AGAIN 1531 LSH V,1 1532 MOVNS V ;NEGATE 1533 HRRZ C,S 1534 ADD C,V ;TO 1535 HRL C,S ;FROM 1536 HLRE W,S ;LENGTH 1537 MOVMS W ;POSITIVE 1538 ADDI W,(C) ;END OF BLT 1539 BLT C,(W) ;MOVE UNDEFS AGAIN 1540 ADD S,V ;FIXUP POINTER 1541 SETZM NAMPTR ;HAVE NOT SEEN A PROG YET 1542 MOVE T,SYMCNT ;NUMBER OF SYMBOL PAIRS TO READ 1543 READS1: PUSHJ P,WORDPR 1544 MOVEM W,(B) 1545 MOVEM C,-1(B) 1546 SUB B,SE3 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 7-1 LOADER MAC 24-MAR-75 15:43 READ BACK LOCAL SYMBOLS 1547 TLNN C,740000 ;NAME HAS NO CODE BITS SET 1548 JRST READS2 ;YES, HANDLE IT 1549 SOJG T,READS1 ;READ NEXT SYMBOL 1550 JRST READS4 ;ALL DONE 1551 1552 READS2: MOVE W,NAMPTR ;POINT TO PREVIOUS NAME 1553 HRRZM B,NAMPTR ;POINT TO THIS ONE 1554 JUMPE W,READS3 ;FIRST TIME? 1555 MOVE C,W ;GET COPY 1556 SUBM B,W ;COMPUTE RELATIVE POSITION 1557 HRLM W,2(C) ;STORE BACK 1558 READS3: SOJG T,READS1 1559 1560 READS4: MOVEI T,'SYM' 1561 CAMN T,SYMEXT ;IF EXT IS SYM 1562 JRST READS5 ;DON'T DELETE FILE 1563 SETZM DTIN 1564 SETZM DTIN+3 1565 RENAME 1,DTIN 1566 JFCL 1567 READS5: SETOM SYMEXT ;SIGNAL NOT TO INIT SYMBOL FILE AGAIN 1568 POPJ P, 1569 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 8 LOADER MAC 24-MAR-75 15:43 WRITE CHAIN FILES 1570 SUBTTL WRITE CHAIN FILES 1571 IFE K,< ;DONT INCLUDE IN 1KLOAD 1572 000453' 334 16 0 02 000000* CHNC: SKIPA A,.JBCHN(X) ;CHAIN FROM BREAK OF FIRST BLOCK DATA 1573 000454' 544 16 0 02 000453* CHNR: HLR A,.JBCHN(X) ;CHAIN FROM BREAK OF FIRST F4 PROG 1574 000455' 553 00 0 00 000016 HRRZS A ;ONLY RIGHT HALF IS SIGNIFICANT 1575 000456' 322 16 0 00 000755' JUMPE A,LD7C ;DON'T CHAIN IF ZERO 1576 000457' 627 01 0 00 060000 TLZN N,AUXSWI!AUXSWE ;IS THERE AN AUX DEV? 1577 000460' 254 00 0 00 000763' JRST LD7D ;NO, DON'T CHAIN 1578 000461' 261 17 0 00 000016 PUSH P,A ;SAVE WHEREFROM TO CHAIN 1579 000462' 322 07 0 00 000464' JUMPE D,.+2 ;STARTING ADDR SPECIFIED? 1580 000463' 552 07 0 00 003734' HRRZM D,STADDR ;USE IT 1581 000464' 070 02 0 00 000000 CLOSE 2, ;INSURE END OF MAP FILE 1582 000465' 260 17 0 00 000427' PUSHJ P,SASYM ;DO LIB SEARCH, SETUP JOBSA, ETC. 1583 IFN RPGSW, 1585 000466' 200 12 0 00 006317' MOVE W,[SIXBIT ?CHAIN?] ;FINAL MESSAGE 1586 000467' 260 17 0 00 000404' PUSHJ P,BLTSET ;SETUP BLT PNTR, SETDDT, RELEAS 1587 000470' 262 17 0 00 000016 POP P,A ;GET WHEREFROM 1588 000471' 550 12 0 00 000005 HRRZ W,R ;CALCULATE MIN IOWD NECESSARY 1589 000472' 332 00 0 02 000000* SKIPE .JBDDT(X) ;IF JOBDDT KEEP SYMBOLS 1590 000473' 303 12 0 04 000001 CAILE W,1(S) 1591 000474' 254 00 0 00 000501' JRST CHNLW1 1592 000475' 550 12 0 00 000415* HRRZ W,.JBREL ;NEED SYMBOLS AND THEY HAVE NOT MOVED DOWN 1593 000476' 275 12 0 02 000000 SUBI W,(X) ;BECAUSE WE WILL NOT HAVE BLITTED 1594 000477' 275 06 0 02 777777 SUBI B,-1(X) ;SYMBOL TABLE WILL COME OUT IN A 1595 000500' 202 06 0 02 000446* MOVEM B,.JBSYM(X) ;DIFFERENT PLACE 1596 000501' 213 00 0 00 000012 CHNLW1: MOVNS W 1597 000502' 271 12 0 16 777771 ADDI W,-7(A) 1598 000503' 271 16 0 02 777771 ADDI A,-7(X) 1599 000504' 261 16 0 00 000012 PUSH A,W ;SAVE LENGTH 1600 000505' 505 12 0 16 777777 HRLI W,-1(A) 1601 000506' 206 12 0 00 005102' MOVSM W,IOWDPP ;... 1602 000507' 402 00 0 00 005103' SETZM IOWDPP+1 ;JUST IN CASE 1603 000510' 261 16 0 02 000454* PUSH A,.JBCHN(X) 1604 000511' 261 16 0 02 000000* PUSH A,.JBSA(X) ;SETUP SIX WORD TABLE 1605 000512' 261 16 0 02 000500* PUSH A,.JBSYM(X) ;... 1606 000513' 261 16 0 02 000000* PUSH A,.JB41(X) 1607 000514' 261 16 0 02 000472* PUSH A,.JBDDT(X) 1608 000515' 060 02 0 00 000017 SETSTS 2,17 ;SET AUX DEV TO DUMP MODE 1609 000516' 205 12 0 00 435056 MOVSI W,'CHN' ;USE .CHN AS EXTENSION 1610 000517' 202 12 0 00 004167' MOVEM W,DTOUT1 ;... 1611 000520' 260 17 0 00 003342' PUSHJ P,IAD2 ;DO THE ENTER 1612 000521' 254 00 0 00 000145' JRST LD2 ;ENTER FAILURE 1613 000522' 067 02 0 00 005102' OUTPUT 2,IOWDPP ;WRITE THE CHAIN FILE 1614 000523' 063 02 0 00 760000 STATZ 2,IOBAD!IODEND 1615 000524' 254 00 0 00 000527' JRST LOSEBIG 1616 000525' 070 02 0 00 000000 CLOSE 2, 1617 000526' 063 02 0 00 760000 STATZ 2,IOBAD!IODEND 1618 IFN RPGSW, 1622 000527' 051 03 0 00 006320' LOSEBI: TTCALL 3,[ASCIZ /?DEVICE ERROR/] 1623 000530' 047 00 0 00 000012 EXIT> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 9 LOADER MAC 24-MAR-75 15:43 SPECIAL CHAINB 1624 SUBTTL SPECIAL CHAINB 1625 IFN SPCHN,< 1626 CHNBG: PUSHJ P,FSCN1A ;FORCE SCAN TO COMPLETION FOR CURRENT FILE 1627 TLNN N,AUXSWI ;IS THERE AN AUX DEV?? 1628 JRST CHNBG1 ;NO, SKIP THIS CODE 1629 PUSH P,W ;PRESERVE W 1630 MOVE W,CHNOUT+1 ;GET AUX DEV 1631 DEVCHR W, ;GET ITS CHARACTERISTICS 1632 TLNN W,DSKBIT ;IS IT A REAL DSK? 1633 TLZA N,AUXSWI!AUXSWE ;NO, RELEASE MAP DEVICE 1634 TLNN N,AUXSWE!AUXSWI ;SHOULD AUX DEVICE BE RELEASED? 1635 RELEAS 2, ;YES, RELEAS IT SO ENTER WILL NOT FAIL 1636 POP P,W ;RESTORE W 1637 CHNBG1: ;LABEL TO SKIP AUX DEV. CHECKING 1638 IFN REENT, 1639 HRLZI W,-1(R) ;CHNTAB-L = ADDRESS OF VECTOR TABLE 1640 HRRI W,1 ;CHNTAB-R = NEXT DISK BLOCK TO RITE INTO 1641 MOVEM W,CHNTAB 1642 MOVE C,[RADIX50 4,OVTAB] ;DEFINE GLOBAL SYMBOL OVTAB 1643 MOVEI W,(R) ;TO HAVE VALUE THE BEGINNING OF THE VECTOR TABLE 1644 PUSHJ P,SYMPT 1645 ADDI R,VECLEN ;RESERVE SPACE FOR VECTOR TABLE 1646 MOVE C,[RADIX50 4,OVBEG] ;OVBEG IS BEGINNING OF OVERLAY AREA 1647 MOVEI W,(R) 1648 PUSHJ P,SYMPT 1649 HRRZM R,BEGOV ;AND SAVE IN OVBEG 1650 SETZM LINKNR ;SET CURRENT LINK # TO ZERO 1651 TRZ N,CHNMAP ;SHOW ROOT NOT PRINTED 1652 OPEN 4,CHNOUT ;OPEN FILE FOR CHAIN 1653 JRST ILD5 ;CANT OPEN CHAIN FILE 1654 SKIPE CHNENT ;TEST FOR DEFINED CHAIN-FILE NAME 1655 JRST CHNBG2 ;YES, SKIP 1656 PUSH P,W ;SAVE W 1657 IFN NAMESW,< 1658 SKIPN W,CURNAM ;GET CURRENT NAME & TEST FOR DEFINED > 1659 MOVE W,['CHAIN '] ;SET NAME = 'CHAIN' 1660 MOVEM W,CHNENT ;AND STORE AS FILE NAME 1661 POP P,W ;RESTORE W 1662 CHNBG2: ENTER 4,CHNENT ;ENTER CHAIN FILE 1663 JRST CHNBG3 ;ERROR 1664 HRRZ W,NAMPTR 1665 SUB W,HISTRT ;KEEP N RIGHT HALF AS RELATIVE TO HISTRT 1666 HRRZM W,CHNACN ;SAVE FOR RESTORING 1667 MOVEM B,CHNACB ;ALSO B R IS SAVED IN BEGOV 1668 TRNE N,ENDMAP ;TEST FOR DEFERED MAP REQUEST 1669 PUSHJ P,PRTMAP ;YES, PRINT IT NOW 1670 AOS LINKNR ;SET LINE NUMBER TO 1 1671 POPJ P, 1672 1673 CHNBG3: ERROR , 1674 POPJ P, 1675 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 10 LOADER MAC 24-MAR-75 15:43 SPECIAL CHAINB 1676 1677 CHNENS: TLOA N,PPCSW ;THIS FLAG UNUSED AT THIS POINT 1678 CHNEN: TLZ N,PPCSW ;ON TO NOT DELETE NEW SYMBOLS 1679 SKIPN CHNACB ;WILL BE NON-ZERO IF WE SAW A /< (> TO KEEP MACRO HAPPY) 1680 JRST LD7D ;ERROR MESSAGE 1681 PUSHJ P,FSCN1A ;LOAD LIB (IF DESIRED) AND FORCE SCAN 1682 TRNE N,ENDMAP ;TEST FOR DEFERED MAP REQUEST 1683 PUSHJ P,PRTMAP ;YES, PRINT IT 1684 AOS LINKNR ;INCR TO NEXT LINK NUMBER 1685 SKIPL Q,S ;CHECK SYMBOL TABLE FOR MISSED UNDEFS 1686 JRST NOER ;NONE THERE 1687 MOVEI E,0 ;COUNT OF ERRORS 1688 ONCK: 1689 IFN FAILSW, 1692 MOVE V,2(Q) ;GET FIXUP WORD 1693 TLNE V,100000 ;BIT INDICATES SYMBOL TABLE FIXUP 1694 JRST SMTBFX 1695 IFN FAILSW, 1697 TLZE V,740000 ;THESE BITS WOULD MEAN ADDITIVE 1698 JRST [JSP A,CORCKL 1699 JRST NXTCK] ;ONLY TRY FIRST LOCATION 1700 CORCK: JSP A,CORCKL 1701 HRRZ V,@X ;THE WAY TO LINK 1702 CORCKL: IFN REENT, 1703 CAMGE V,BEGOV 1704 SKIPA ;NOT IN BAD RANGE 1705 JRST ERCK ;BAD, GIVE ERROR 1706 JUMPE V,NXTCK ;CHAIN HAS RUN OUT 1707 IFN REENT, 1710 XCT (A) ;TELLS US WHAT TO DO 1711 JRST CORCKL ;GO ON WITH NEXT LINK 1712 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 11 LOADER MAC 24-MAR-75 15:43 SPECIAL CHAINB 1713 SMTBFX: TLNE N,PPCSW ;IF NOT CUTTING BACK SYMBOL TABLE 1714 JRST NXTCK ;THE ALL OK 1715 ADD V,HISTRT ;GET PLACE TO POINT TO 1716 HRRZS V 1717 HLRE D,CHNACB ;OLD LENGTH OF TABLE (NEGATIVE) 1718 HLRE T,B ;NEW LENGTH 1719 SUB D,T ;-OLD LEN+NEW LEN 1720 ADDI D,(B) ;OLD BOTTOM=NEW BOTTOM+NEW LEN-OLD LEN 1721 CAIG V,(D) ;IS IT IN THE PART WE ARE KEEPING 1722 JRST ERCK 1723 JRST NXTCK ;YES 1724 IFN FAILSW, 1739 ERCK: MOVE C,1(Q) ;GET SYMBOL NAME 1740 PUSHJ P,FCRLF ;FORCE CRLF AND OUTPUT ON TTY 1741 PUSHJ P,PRNAME ;PRINT IT 1742 ADDI E,1 ;MARK ERROR 1743 NXTCK: ADD Q,SE3 ;TRY ANOTHER 1744 JUMPL Q,ONCK 1745 IFN REENT, 1746 JUMPE E,NOER ;DID ANYTHING GO WRONG?? 1747 ERROR , 1748 TRZE N,ENDMAP ;DELAYED MAP IN PIPELINE 1749 PUSHJ P,PRTMAP ;YES, GO DO IT 1750 JRST LD2 ;GIVE UP 1751 1752 NOER: TRZE N,ENDMAP ;DELAYED MAP IN PIPELINE 1753 PUSHJ P,PRTMAP ;YES, GO DO IT 1754 MOVE A,BEGOV ;GET START OF OVERLAY 1755 ADDI A,(X) ;GET ACTUAL CURRENT LOCATION 1756 IFN REENT, 1758 IFE REENT, 1760 SUBM A,W ;W=-LENGTH 1761 SUBI A,1 ;SET TO BASE-1 (FOR IOWD) 1762 HRL A,W ;GET COUNT 1763 MOVEM A,IOWDPP 1764 SETZM IOWDPP+1 1765 HRR A,CHNTAB ;BLOCK WE ARE WRITING ON 1766 HLRZ V,CHNTAB ;POINTER TO SEGMENT TABLE 1767 ADDI V,1 ;NEXT LOCATION LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 11-1 LOADER MAC 24-MAR-75 15:43 SPECIAL CHAINB 1768 HRLM V,CHNTAB ;REMEMBER IT 1769 CAML V,BEGOV ;CHECK FOR OVERRUN 1770 JRST [ERROR , 1771 JRST LD2];GIVE UP 1772 MOVEM A,@X ;PUT INTO TABLE 1773 MOVN W,W ;GET POSITIVE LENGTH 1774 MOVE C,CHNOUT+1 ;GET CHAIN DEV. 1775 DEVCHR C, ;WHAT IS IT? 1776 MOVEI A,DSKBLK ;ASSUME DSK 1777 TRNE C,DTABIT ;BUT IF DTA 1778 MOVEI A,DTABLK ;BLOCK IS 177 1779 ADDI W,-1(A) 1780 IDIV W,A ;GET NUMBER OF BLOCKS 1781 ADDM W,CHNTAB ;AND UPDATE 1782 TLZE N,PPCSW 1783 JRST NOMVB ;DO NOT ADJUST SYMBOLS 1784 HLRE W,CHNACB ;GET OLD LENGTH OF DEF SYMBOLS 1785 HLRE C,B ;AND NEW LENGTH 1786 SUB W,C ;-OLD LEN+NEW LEN 1787 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 12 LOADER MAC 24-MAR-75 15:43 SPECIAL CHAINB 1788 HRRZ C,B ;SAVE POINTER TO CURRENT S 1789 ADD S,W 1790 HRL W,W 1791 ADD B,W ;UPDATE B (COUNT AND LOC) 1792 JUMPGE S,UNLNKD ;JUST IN CASE NOTHING TO MOVE 1793 HRRZ A,B ;PLACE TO PUT UNDEFS 1794 UNLNK: MOVE W,(C) 1795 MOVEM W,(A) ;TRANSFER 1796 SUBI A,1 1797 CAIE A,(S) ;HAVE WE MOVED LAST WORD?? 1798 SOJA C,UNLNK ;NO, CONTINUE 1799 UNLNKD: HRRZ W,CHNACN ;GET SAVED N 1800 ADD W,HISTRT 1801 HRRZM W,NAMPTR ;AND RESET IT 1802 NOMVB: HRR R,BEGOV ;PICK UP BASE OF AREA 1803 SETSTS 4,16 ;SET DUMP MODE IN CASE OF INTERACTION WITH OTHER CHANNELS 1804 OUTPUT 4,IOWDPP ;DUMP IT 1805 STATZ 4,IOBAD!IODEND ;AND ERROR CHECK 1806 JRST LOSEBI 1807 HRRZ V,R ;GET AREA TO ZERO 1808 MOVEI W,@X 1809 CAIL W,1(S) ;MUST MAKE SURE SOME THERE 1810 POPJ P, ;DONE 1811 SETZM (W) 1812 CAIL W,(S) 1813 POPJ P, 1814 HRLS W 1815 ADDI W,1 1816 BLT W,(S) ;ZERO WORLD 1817 POPJ P, 1818 > 1819 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 13 LOADER MAC 24-MAR-75 15:43 EXPAND CORE 1820 SUBTTL EXPAND CORE 1821 1822 IFN EXPAND,< 1823 000531' 603 00 0 00 000200 XPAND: TLNE F,FULLSW ;IF CORE EXCEEDED 1824 000532' 263 17 0 00 000000 POPJ P, ;DON'T WASTE TIME ON CORE UUO 1825 000533' 261 17 0 00 000015 PUSH P,Q 1826 000534' 550 15 0 00 000475* HRRZ Q,.JBREL 1827 000535' 271 15 0 00 002000 ADDI Q,2000 1828 000536' 261 17 0 00 000003 XPAND1: PUSH P,H ;GET SOME REGISTERS TO USE 1829 000537' 261 17 0 00 000002 PUSH P,X 1830 000540' 261 17 0 00 000001 PUSH P,N 1831 000541' 261 17 0 00 000534* PUSH P,.JBREL ;SAVE PREVIOUS SIZE 1832 000542' 317 15 0 00 004144' CAMG Q,ALWCOR ;CHECK TO SEE IF RUNNING OVER 1833 000543' 047 15 0 00 000011 CORE Q, 1834 000544' 254 00 0 00 000610' JRST XPANDE 1835 000545' 550 03 0 00 005074' IFE K,< HRRZ H,MLTP ;GET LOWEST LOCATION 1836 000546' 607 01 0 00 000010 TLNN N,F4SW ;IS FORTRAN LOADING> 1837 000547' 201 03 0 04 000001 MOVEI H,1(S) ;NO, USE S 1838 000550' 262 17 0 00 000002 POP P,X ;LAST .JBREL 1839 000551' 550 15 0 00 000541* HRRZ Q,.JBREL;NEW JOBREL 1840 000552' 275 15 0 02 000000 SUBI Q,(X) ;GET DIFFERENCE 1841 000553' 505 15 0 00 000002 HRLI Q,X ;PUT X IN INDEX FIELD 1842 000554' 200 01 0 02 000000 XPAND2: MOVE N,(X) 1843 000555' 202 01 1 00 000015 MOVEM N,@Q 1844 000556' 313 02 0 00 000003 CAMLE X,H ;TEST FOR END 1845 000557' 364 02 0 00 000554' SOJA X,XPAND2 1846 000560' 505 03 0 15 777777 HRLI H,-1(Q) 1847 000561' 641 03 0 00 777777 TLC H,-1 ;MAKE IT NEGATIVE 1848 000562' 402 00 0 03 000000 SETZM (H) ;ZERO NEW CORE 1849 000563' 253 03 0 00 000562' AOBJN H,.-1 1850 000564' 201 03 0 15 000000 MOVEI H,(Q) 1851 000565' 270 04 0 00 000003 XPAND8: ADD S,H 1852 000566' 270 06 0 00 000003 ADD B,H 1853 000567' 272 03 0 00 004135' ADDM H,HISTRT ;UPDATE START OF HISEG 1854 IFN REENT, 1857 000570' 262 17 0 00 000001 POP P,N 1858 000571' 272 03 0 00 004007' ADDM H,NAMPTR 1859 IFE K,< 1860 IFN MANTIS, 1862 000572' 607 01 0 00 000010 TLNN N,F4SW ;F4? 1863 000573' 254 00 0 00 000602' JRST XPAND3 1864 000574' 272 03 0 00 005073' ADDM H,PLTP 1865 000575' 272 03 0 00 005071' ADDM H,BITP 1866 000576' 272 03 0 00 005076' ADDM H,SDSTP 1867 000577' 272 03 0 00 005074' ADDM H,MLTP 1868 000600' 603 01 0 00 000040 TLNE N,SYDAT 1869 000601' 272 03 0 00 000011 ADDM H,V> 1870 000602' 354 00 0 17 777775 XPAND3: AOSA -3(P) 1871 000603' 262 17 0 00 000001 XPAND5: POP P,N 1872 000604' 262 17 0 00 000002 POP P,X 1873 000605' 262 17 0 00 000003 POP P,H 1874 000606' 262 17 0 00 000015 POP P,Q LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 13-1 LOADER MAC 24-MAR-75 15:43 EXPAND CORE 1875 000607' 263 17 0 00 000000 POPJ P, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 14 LOADER MAC 24-MAR-75 15:43 EXPAND CORE 1876 1877 000610' 262 17 0 00 000016 XPANDE: POP P,A ;CLEAR JOBREL OUT OF STACK 1878 000611' 265 16 0 00 003577' XPAND6: ERROR , 1879 000615' 661 00 0 00 000200 TLO F,FULLSW ;ONLY ONCE 1880 000616' 254 00 0 00 000603' JRST XPAND5 1881 1882 000617' 260 17 0 00 000531' XPAND7: PUSHJ P,XPAND 1883 000620' 254 00 0 00 001746' JRST SFULLC 1884 IFN MONLOD, 1886 000621' 254 00 0 00 000627' JRST POPJM2 1887 1888 000622' 261 17 0 00 000015 XPAND9: PUSH P,Q ;SAVE Q 1889 000623' 550 15 0 00 000551* HRRZ Q,.JBREL ;GET CORE SIZE 1890 000624' 271 15 0 11 000000 ADDI Q,(V) ;ADD XTRA NEEDED 1891 000625' 254 00 0 00 000536' JRST XPAND1 ;AND JOIN COMMON CODE 1892 1893 000626' 370 00 0 17 000000 POPJM3: SOS (P) ;POPJ TO CALL-2 1894 000627' 370 00 0 17 000000 POPJM2: SOS (P) ;POPJ TO CALL-1 1895 000630' 370 00 0 17 000000 SOS (P) ;SAME AS POPJ TO 1896 000631' 263 17 0 00 000000 POPJ P, ;NORMAL POPJ MINUS TWO 1897 > 1898 1899 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 15 LOADER MAC 24-MAR-75 15:43 SWITCH HANDLING 1900 SUBTTL SWITCH HANDLING 1901 1902 ;ENTER SWITCH MODE 1903 1904 000632' 306 10 0 00 000057 LD6A: CAIN T,57 ;WAS CHAR A SLASH? 1905 000633' 661 01 0 00 000100 TLO N,SLASH ;REMEBER THAT 1906 000634' 661 00 0 00 400000 LD6A2: TLO F,SSW ;ENTER SWITCH MODE 1907 000635' 403 07 0 00 000013 LD6A1: SETZB D,C ;ZERO TWO REGS FOR DECIMAL AND OCTAL 1908 IFN SYMARG, 1909 000636' 254 00 0 00 000120' JRST LD3 ;EAT A SWITCH 1910 1911 ;ALPHABETIC CHARACTER, SWITCH MODE 1912 1913 000637' LD6: 1914 000637' 301 10 0 00 000141 CAIL T,141 ;ACCEPT LOWER CASE SWITCHES 1915 000640' 275 10 0 00 000040 SUBI T,40 1916 IFN SPCHN, 1917 000641' 256 00 0 10 000544' IFE SPCHN, 1918 000642' 623 01 0 00 000100 TLZE N,SLASH ;SWITCH MODE ENTERED W/ SLASH? 1919 000643' 254 00 0 00 000730' JRST LD6D ;LEAVE SWITCH MODE 1920 000644' 254 00 0 00 000635' JRST LD6A1 ;STAY IN SWITCH MODE 1921 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 16 LOADER MAC 24-MAR-75 15:43 SWITCH HANDLING 1922 ;DISPATCH TABLE FOR SWITCHES 1923 1924 ; THE INSTRUCTION AT THE CHARACTER LOCATION IS EXECUTED 1925 1926 000645' LD6B: 1927 IFN SPCHN, 1932 000645' 260 17 0 00 000677' PUSHJ P,ASWTCH ;A - LIST ALL GLOBALS 1933 IFN DMNSW, 1934 000646' 254 00 0 00 000745' IFE DMNSW, 1935 000647' 260 17 0 00 000453' IFE K,< PUSHJ P,CHNC ;C - CHAIN, START W/ COMMON> 1936 IFN K,< JRST LD7B ;C - ILLEGAL IN 1KLOAD> 1937 000650' 260 17 0 00 001153' PUSHJ P,LDDT ;D - DEBUG OPTION, LOAD DDT 1938 000651' 661 01 0 00 002000 TLO N,EXEQSW ;E - LOAD AND GO 1939 000652' 260 17 0 00 001066' PUSHJ P,LIBF0 ;F - LIBRARY SEARCH 1940 000653' 260 17 0 00 000365' PUSHJ P,LD5E ;G - GO INTO EXECUTION 1941 IFN REENT, 1942 000654' 255 00 0 00 000000 IFE REENT, 1943 000655' 260 17 0 00 000703' PUSHJ P,ISWTCH ;I - IGNORE STARTING ADDRESSES 1944 000656' 621 01 0 00 000002 TLZ N,ISAFLG ;J - USE STARTING ADDRESSES 1945 000657' 254 00 0 00 000745' IFE KUTSW, 1946 IFN KUTSW, 1947 000660' 260 17 0 00 000707' PUSHJ P,LSWTCH ;L - ENTER LIBRARY SEARCH 1948 000661' 260 17 0 00 003124' PUSHJ P,PRMAP ;M - PRINT STORAGE MAP 1949 000662' 621 00 0 00 004004 TLZ F,LIBSW+SKIPSW ;N - LEAVE LIBRARY SEARCH 1950 000663' 540 05 0 00 000007 HRR R,D ;O - NEW PROGRAM ORIGIN 1951 000664' 260 17 0 00 000713' PUSHJ P,PSWTCH ;P - PREVENT AUTO. LIB. SEARCH 1952 000665' 621 00 0 00 200000 TLZ F,NSW ;Q - ALLOW AUTO. LIB. SEARCH 1953 000666' 260 17 0 00 000454' IFE K,< PUSHJ P,CHNR ;R - CHAIN, START W/ RESIDENT> 1954 IFN K,< JRST LD7B ;R - ILLEGAL IN 1KLOAD> 1955 000667' 260 17 0 00 000717' PUSHJ P,SSWTCH ;S - LOAD WITH SYMBOLS 1956 000670' 260 17 0 00 001152' PUSHJ P,LDDTX ;T - LOAD AND GO TO DDT 1957 000671' 260 17 0 00 003300' PUSHJ P,PMSQ ;U - PRINT UNDEFINED LIST 1958 IFN REENT, 1959 000672' 254 00 0 00 000745' IFE REENT, 1960 000673' 621 00 0 00 041000 TLZ F,SYMSW+RMSMSW ;W - LOAD WITHOUT SYMBOLS 1961 000674' 621 01 0 00 000001 TLZ N,ALLFLG ;X - DO NOT LIST ALL GLOBALS 1962 000675' 661 00 0 00 002000 IFE TENEX, 1963 IFN TENEX, 1964 IFE L,< JRST LDRSTR ;Z - RESTART LOADER> 1965 000676' 254 00 0 00 000745' IFN L,< JRST LD7B ;Z -- ILLEGAL IN LISP LOADER> 1966 1967 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 17 LOADER MAC 24-MAR-75 15:43 SWITCH HANDLING 1968 ; PAIRED SWITCHES ( +,-) 1969 1970 000677' 321 07 0 00 000701' ASWTCH: JUMPL D,.+2 ;SKIP IF /-A 1971 000700' 665 01 0 00 000001 TLOA N,ALLFLG ;LIST ALL GLOBALS 1972 000701' 621 01 0 00 000001 TLZ N,ALLFLG ;DON'T 1973 000702' 263 17 0 00 000000 POPJ P, 1974 1975 000703' 321 07 0 00 000705' ISWTCH: JUMPL D,.+2 ;SKIP IF /-I 1976 000704' 665 01 0 00 000002 TLOA N,ISAFLG ;IGNORE STARTING ADDRESSES 1977 000705' 621 01 0 00 000002 TLZ N,ISAFLG ;DON'T 1978 000706' 263 17 0 00 000000 POPJ P, 1979 1980 000707' 321 07 0 00 000711' LSWTCH: JUMPL D,.+2 ;SKIP IF /-L 1981 000710' 665 00 0 00 004004 TLOA F,LIBSW!SKIPSW ;ENTER LIBRARY SEARCH 1982 000711' 621 00 0 00 004004 TLZ F,LIBSW!SKIPSW ;DON'T 1983 000712' 263 17 0 00 000000 POPJ P, 1984 1985 000713' 321 07 0 00 000715' PSWTCH: JUMPL D,.+2 ;SKIP IF /-P 1986 000714' 665 00 0 00 200000 TLOA F,NSW ;PREVENT AUTO. LIB SEARCH 1987 000715' 621 00 0 00 200000 TLZ F,NSW ;ALLOW 1988 000716' 263 17 0 00 000000 POPJ P, 1989 1990 000717' 321 07 0 00 000721' SSWTCH: JUMPL D,.+2 ;SKIP IF /-S 1991 000720' 665 00 0 00 041000 TLOA F,SYMSW!RMSMSW ;LOAD WITH SYMBOLS 1992 000721' 621 00 0 00 041000 IFE MANTIS, 1993 IFN MANTIS, 1995 000722' 263 17 0 00 000000 POPJ P, 1996 1997 IFN REENT,< 1998 VSWTCH: JUMPL D,.+2 ;SKIP IF /-V 1999 MOVEI D,1 ;SET VSW = +1 FOR /V 2000 MOVEM D,VSW ; = -1 FOR /-V 2001 POPJ P,> 2002 2003 IFN TENEX,< 2004 ;Y SWITCH - START LOADING AT NEXT PAGE BOUNDARY 2005 NEWPAG: JUMPL C,NEWLPG ;/-Y BUMPS LOWSEG LOC 2006 ADDI R,777 ;/Y BUMPS HISEG LOC 2007 ANDCMI R,777 2008 POPJ P,0 2009 2010 NEWLPG: MOVE D,LOWR 2011 ADDI D,777 2012 ANDCMI D,777 2013 MOVEM D,LOWR 2014 POPJ P,0 2015 2016 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 18 LOADER MAC 24-MAR-75 15:43 SWITCH HANDLING 2017 IFN REENT,< 2018 ; H SWITCH --- EITHER /H OR /NH 2019 HSET: JUMPE D,SETNUM ;/H ALWAYS LEGAL 2020 CAIGE D,2 ;WANT TO CHANGE SEGMENTS 2021 JRST SETSEG ;YES,GO DO IT 2022 TRNN F,SEENHI ;STARTED TO LOAD YET? 2023 JRST HCONT ;NO, CONTINUE. 2024 IFE TENEX,> 2025 IFN TENEX, 2032 POPJ P,0> 2033 > 2034 2035 IFE L,< 2036 LDRSTR: ERROR 0, 2037 JRST BEG ;START AGAIN (NO CCL)> 2038 IFN REENT,< 2039 HCONT: HRRZ C,D 2040 IFE TENEX, 2042 CAIG C,(H) 2043 JRST COROVL ;BEING SET LOWER THAN 400000 OR MORE THAN TOP OF LOW SEG 2044 HRRZM C,HVAL1 ;WE HAVE REMOVED THE ODD BITS TO MAKE A 1K MULT 2045 ADDI C,.JBHDA 2046 CAILE C,(D) ;MAKE SURE OF ENOUGH ROOM 2047 MOVE D,C 2048 HRLI D,W ;SET UP W IN LEFT HALF 2049 MOVEM D,HVAL 2050 POPJ P, ;RETURN. 2051 2052 COROVL: ERROR , 2053 JRST LDRSTR 2054 SETNUM: TRO F,NOHI ;SET NO-HIGH-SEG SWITCH. 2055 POPJ P,> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 19 LOADER MAC 24-MAR-75 15:43 SWITCH HANDLING 2056 ;SWITCH MODE NUMERIC ARGUMENT 2057 2058 000723' 242 07 0 00 000003 LD6C: LSH D,3 ;BUILD OCTAL NUMERIC ARGUMENT 2059 000724' 271 07 0 10 777720 ADDI D,-60(T) 2060 000725' 221 13 0 00 000012 IMULI C,^D10 2061 000726' 271 13 0 10 777720 ADDI C,-"0"(T) ;ACCUMULATE DEC AND OCTAL 2062 000727' 254 00 0 00 000120' JRST LD3 2063 2064 ;EXIT FROM SWITCH MODE 2065 2066 000730' 621 00 0 00 400000 LD6D: TLZ F,SSW ;CLEAR SWITCH MODE FLAG 2067 000731' 603 00 0 00 000010 TLNE F,FSW ;TEST FORCED SCAN FLAG 2068 000732' 254 00 0 00 000106' JRST LD2D ;SCAN FORCED, START NEW IDENT. 2069 000733' 254 00 0 00 000120' JRST LD3 ;SCAN NOT FORCED, USE PREV IDENT 2070 ;ILLEGAL CHARACTER, NORMAL MODE 2071 2072 LD7: IFN SYMARG,< 2073 CAIN T,"#" ;DEFINING THIS SYMBOL 2074 JRST DEFINE ;YES 2075 TRNN F,ARGFL ;TREAT AS SPECIAL 2076 JRST .+4 ;NO 2077 CAIE T,"$" 2078 CAIN T,"%" 2079 JRST LD4 ;YES> 2080 000734' 306 10 0 00 000032 CAIN T,"Z"-100 ;TEST FOR ^Z 2081 000735' 254 00 0 00 000370' JRST LD5E1 ;TREAT AS ALTMODE FOR BATCH 2082 000736' 265 16 0 00 003644' ERROR 8, 2083 000740' 254 00 0 00 000145' JRST LD2 ;TRY TO CONTINUE 2084 2085 ;SYNTAX ERROR, NORMAL MODE 2086 2087 000741' 265 16 0 00 003644' LD7A: ERROR 8, 2088 000744' 254 00 0 00 000145' JRST LD2 2089 2090 ;ILLEGAL CHARACTER, SWITCH MODE 2091 2092 000745' 306 10 0 00 000055 LD7B: CAIN T,"-" ;SPECIAL CHECK FOR - 2093 JRST [SETOB C,D 2094 000746' 254 00 0 00 006323' JRST LD3] 2095 000747' 306 10 0 00 000032 CAIN T,"Z"-100 ;CHECK FOR /^Z 2096 000750' 254 00 0 00 000370' JRST LD5E1 ;SAME AS ^Z 2097 000751' 265 16 0 00 003644' ERROR 8, 2098 000754' 254 00 0 00 000145' JRST LD2 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 20 LOADER MAC 24-MAR-75 15:43 SWITCH HANDLING 2099 ;ATTEMPT TO CHAIN WITH SPECIFIED HALF OF JOBCHN = 0 2100 2101 IFE K,< 2102 000755' 265 16 0 00 003577' LD7C: ERROR , 2103 000762' 254 00 0 00 000145' JRST LD2 2104 2105 ;ATTEMP TO CHAIN WITHOUT SPECIFYING DEVICE 2106 2107 000763' 265 16 0 00 003577' LD7D: ERROR , 2108 000767' 254 00 0 00 000145' JRST LD2> 2109 2110 IFN DMNSW,< 2111 DMN2: 2112 IFN REENT, 2114 JUMPL D,.+2 2115 TROA F,DMNFLG ;TURN ON /B 2116 TRZ F,DMNFLG ;TURN OFF IF /-B 2117 CAMLE D,KORSP 2118 MOVEM D,KORSP 2119 POPJ P, ;RETURN> 2120 2121 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 21 LOADER MAC 24-MAR-75 15:43 CHARACTER CLASSIFICATION TABLE DESCRIPTION: 2122 SUBTTL CHARACTER CLASSIFICATION TABLE DESCRIPTION: 2123 2124 ; EACH CHARACTER HAS ASSOCIATED WITH IT A FOUR BIT BYTE 2125 ; PACKED IN THE CHARACTER CLASSIFICATION TABLE. THE CHARACTER 2126 ; CLASSIFICATION CODES ARE ORDERED IN SUCH A WAY AS TO GIVE 2127 ; DELIMITERS OF HIGHER PRECEDENCE LOWER CLASSIFICATION NUMBERS. 2128 ; CERTAIN CHARACTERS HAVE NO EFFECT ON THE COMMAND STRING, AND 2129 ; THEREFORE DO NOT EFFECT ORDERING OF DELIMITERS. FOUR CODES 2130 ; ARE RESERVED FOR ALTERNATE DISPATCHES WHILE THE SWITCH MODE IS 2131 ; IN EFFECT. 2132 2133 2134 ;CLASSIFICATION BYTE CODES: 2135 2136 ; BYTE DISP CLASSIFICATION 2137 2138 ; 00 - 00 ILLEGAL CHARACTER, SWITCH MODE 2139 ; 01 - 01 ALPHABETIC CHARACTER, SWITCH MODE 2140 ; 02 - 02 NUMERIC CHARACTER, SWITCH MODE 2141 ; 03 - 03 SWITCH MODE ESCAPE, SWITCH MODE 2142 2143 ; 00 - 04 ILLEGAL CHARACTER, NORMAL MODE 2144 ; 01 - 05 ALPHABETIC CHARACTER, NORMAL MODE 2145 ; 02 - 06 NUMERIC CHARACTER, NORMAL MODE 2146 ; 03 - 07 SWITCH MODE ESCAPE, NORMAL MODE 2147 2148 ; 04 - 10 IGNORED CHARACTER 2149 ; 05 - 11 ENTER SWITCH MODE CHARACTER 2150 ; 06 - 12 DEVICE IDENTIFIER DELIMITER 2151 ; 07 - 13 FILE EXTENSION DELIMITER 2152 ; 10 - 14 OUTPUT SPECIFICATION DELIMITER 2153 ; 11 - 15 INPUT SPECIFICATION DELIMITER 2154 ; 12 - 16 LINE TERMINATION 2155 ; 13 - 17 JOB TERMINATION 2156 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 22 LOADER MAC 24-MAR-75 15:43 CHARACTER CLASSIFICATION TABLE DESCRIPTION: 2157 ;BYTE POINTERS TO CHARACTER CLASSIFICATION TABLE 2158 2159 000770' 40 04 0 15 001001' LD8: POINT 4,LD9(Q),3 2160 000771' 34 04 0 15 001001' POINT 4,LD9(Q),7 2161 000772' 30 04 0 15 001001' POINT 4,LD9(Q),11 2162 000773' 24 04 0 15 001001' POINT 4,LD9(Q),15 2163 000774' 20 04 0 15 001001' POINT 4,LD9(Q),19 2164 000775' 14 04 0 15 001001' POINT 4,LD9(Q),23 2165 000776' 10 04 0 15 001001' POINT 4,LD9(Q),27 2166 000777' 04 04 0 15 001001' POINT 4,LD9(Q),31 2167 001000' 00 04 0 15 001001' POINT 4,LD9(Q),35 2168 2169 ;CHARACTER CLASSIFICATION TABLE 2170 2171 001001' 200000 000000 LD9: BYTE (4)4,0,0,0,0,0,0,0,0 2172 001002' 210422 400000 BYTE (4)4,4,4,4,12,0,0,0,0 2173 001003' 000000 000000 BYTE (4)0,0,0,0,0,0,0,0,0 2174 001004' 540000 040100 BYTE (4)13,0,0,0,0,4,0,4,0 2175 001005' 000001 230011 IFE SYMARG,< BYTE (4)0,0,0,0,5,3,0,0,11> 2176 IFN SYMARG,< BYTE (4)0,0,14,0,5,3,0,0,11> 2177 001006' 016510 421042 BYTE (4)0,7,5,2,2,2,2,2,2 2178 001007' 104211 400200 IFE SPCHN,< BYTE (4)2,2,2,2,6,0,0,10,0> 2179 IFN SPCHN,< BYTE (4)2,2,2,2,6,0,1,10,1> 2180 001010' 000104 210421 IFE RPGSW,< BYTE (4)0,0,1,1,1,1,1,1,1> 2181 IFN RPGSW,< BYTE (4) 0,10,1,1,1,1,1,1,1> 2182 001011' 042104 210421 BYTE (4)1,1,1,1,1,1,1,1,1 2183 001012' 042104 210421 BYTE (4)1,1,1,1,1,1,1,1,1 2184 IFE PP, 2185 001013' 060040 100021 IFN PP, 2186 001014' 042104 210421 BYTE (4)1,1,1,1,1,1,1,1,1 2187 001015' 042104 210421 BYTE (4)1,1,1,1,1,1,1,1,1 2188 001016' 042104 210013 BYTE (4)1,1,1,1,1,1,0,0,13 2189 001017' 13 04 0000000000 BYTE (4)13,4 2190 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 23 LOADER MAC 24-MAR-75 15:43 INITIALIZE LOADING OF A FILE 2191 SUBTTL INITIALIZE LOADING OF A FILE 2192 2193 001020' 201 12 0 00 004244' ILD: MOVEI W,BUF1 ;LOAD BUFFER ORIGIN 2194 001021' 202 12 0 00 000271* MOVEM W,.JBFF 2195 001022' 663 00 0 00 020000 TLOE F,ISW ;SKIP IF INIT REQUIRED 2196 001023' 254 00 0 00 001026' JRST ILD6 ;DONT DO INIT 2197 001024' 050 01 0 00 003730' ILD7: OPEN 1,OPEN3 ;KEEP IT PURE 2198 001025' 254 00 0 00 001057' JRST ILD5B 2199 001026' 623 00 0 00 002000 ILD6: TLZE F,REWSW ;SKIP IF NO REWIND 2200 001027' 072 01 0 00 000001 MTAPE 1,1 ;REWIND 2201 001030' 076 01 0 00 004162' ILD2: LOOKUP 1,DTIN ;LOOK UP FILE FROM DIRECTORY 2202 001031' 254 00 0 00 001036' JRST ILD3 ;FILE NOT IN DIRECTORY 2203 IFE LNSSW,< 2204 001032' 064 01 0 00 000002 INBUF 1,BUFN ;SET UP BUFFERS> 2205 IFN LNSSW, 2210 IFN K, 2211 IDIV C,W 2212 INBUF 1,(C)> 2213 001033' 661 00 0 00 000100 TLO F,ASW ;SET LEFT ARROW ILLEGAL FLAG 2214 001034' 621 00 0 00 000002 TLZ F,ESW ;CLEAR EXTENSION FLAG 2215 001035' 263 17 0 00 000000 POPJ P, 2216 2217 ; LOOKUP FAILURE 2218 2219 001036' 663 00 0 00 000002 ILD3: TLOE F,ESW ;SKIP IF .REL WAS ASSUMED 2220 001037' 254 00 0 00 001042' JRST ILD4 ;FATAL LOOKUP FAILURE 2221 001040' 402 00 0 00 004163' SETZM DTIN1 ;ZERO FILE EXTENSION 2222 001041' 254 00 0 00 001030' JRST ILD2 ;TRY AGAIN WITH NULL EXTENSION 2223 2224 001042' ILD4: 2225 IFN CPUSW,< ;ALLOW LIB40I OR LIB40A TO FIND LIB40 2226 MOVE W,DTIN ;GET NAME WE TRIED FOR 2227 TRZN W,77 ;DELETE 6TH CHARACTER 2228 JRST ILD4B ;TRIED ALL CASES IF NULL 2229 IFN REENT, 2230 CAMN W,['LIB40 '] ;WAS IT SOME FLAVOUR OF LIB40? 2231 JRST [MOVEM W,DTIN ;YES, SALT NEW NAME 2232 PUSHJ P,LDDT2 ;SET .REL AGAIN 2233 TLZ F,ESW 2234 JRST ILD2] 2235 ILD4B:> 2236 IFE REENT,> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 23-1 LOADER MAC 24-MAR-75 15:43 INITIALIZE LOADING OF A FILE 2246 2247 001052' 265 16 0 00 003577' ILD9: ERROR , 2248 001055' 254 00 0 00 000144' JRST LD2C 2249 2250 ; DEVICE SELECTION ERROR 2251 2252 001056' 334 12 0 00 003726' ILD5A: SKIPA W,LD5C1 2253 001057' 200 12 0 00 003731' ILD5B: MOVE W,ILD1 2254 001060' 260 17 0 00 003670' ILD5: PUSHJ P,PRQ ;START W/ ? 2255 001061' 260 17 0 00 003455' PUSHJ P,PWORD ;PRINT DEVICE NAME 2256 001062' 265 16 0 00 003656' ERROR 7, 2257 001065' 254 00 0 00 000145' JRST LD2 2258 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 24 LOADER MAC 24-MAR-75 15:43 LIBRARY SEARCH CONTROL AND LOADER CONTROL 2259 SUBTTL LIBRARY SEARCH CONTROL AND LOADER CONTROL 2260 2261 001066' LIBF0: IFN FORSW,< 2262 001066' 322 07 0 00 001073' JUMPE D,LIBF ;MAKE /F WORK SAME WAY 2263 001067' 375 00 0 00 000007 SOSGE D ;USER SUPPLIED VALUE? 2264 001070' 201 07 0 00 000001 MOVEI D,FORSW-1 ;NO, SUPPLY DEFAULT 2265 001071' 202 07 0 00 004145' MOVEM D,FORLIB ;STORE VALUE 2266 001072' 263 17 0 00 000000 POPJ P, ;RETURN HAVING SETUP FOR /0F> 2267 2268 001073' 260 17 0 00 001231' LIBF: PUSHJ P,FSCN1 ;FORCE SCAN TO COMPLETION 2269 001074' 261 17 0 00 003731' PUSH P,ILD1 ;SAVE DEVICE NAME 2270 001075' 402 00 0 00 004016' IFN PP, 2272 001077' 260 17 0 00 001105' PUSHJ P,LIBF1 ;LOAD SYS:JOBDAT.REL 2273 IFN SAILSW, 2274 IFN REENT, 2284 IFN FORSW, 2291 LIBF3:> 2292 IFN NELSW, 2297 IFN ALGSW, 2299 IFN NAMESW, 2304 EXIT 2305 LIBF5:> 2306 PUSHJ P,LIBF2 ;YES, LOAD LIBRARY> 2307 IFN COBSW, 2310 IFN REENT,< 2311 IFE CPUSW, 2312 IFN CPUSW, 2315 IFN FORSW, 2316 TRNE N,COMFLS-F4FL ;ANY OTHER COMPILER ? 2317 JRST LIBF4 ;YES, THEN WE DON'T WANT IMP40 2318 TRNE N,VFLG ;WANT REENTRANT OP SYSTEM? 2319 PUSHJ P,LIBF2 ;YES, TRY REENTRANT FORSE> 2320 001100' LIBF4: 2321 001100' 200 12 0 00 006325' IFE CPUSW, 2322 IFN CPUSW, 2325 001101' 333 00 0 00 004145' IFN FORSW, 2327 IFN ALGSW, 2328 001103' 260 17 0 00 001106' PUSHJ P,LIBF2 ;LOAD LIBRARY 2329 IFN SAILSW, 2335 001104' 262 17 0 00 003731' POP P,ILD1 ;CALL TO LDDT1 WILL PUT IT IN OLDDEV 2336 001105' 200 12 0 00 006327' LIBF1: MOVE W,[SIXBIT /JOBDAT/] ;LOAD SYS:JOBDAT.REL 2337 001106' 260 17 0 00 001162' LIBF2: PUSHJ P,LDDT1 2338 001107' 325 04 0 00 001211' LIBGO: JUMPGE S,EOF2 ;JUMP IF NO UNDEFINED GLOBALS 2339 001110' 661 00 0 00 000404 TLO F,SLIBSW+SKIPSW ;ENABLE LIBRARY SEARCH 2340 001111' 621 00 0 00 040000 TLZ F,SYMSW ;DISABLE LOADING WITH SYMBOLS 2341 001112' 254 00 0 00 001235' JRST LDF ;INITIALIZE LOADING LIB4 2342 IFN ALGSW!NELSW,< 2343 IFN NELSW,< 2344 NELGO: SKIPA C,[RADIX50 60,%NELGO]> 2345 SHARE: MOVE C,[RADIX50 60,%SHARE] 2346 MOVEI W,0 2347 JRST SYMPT ;DEFINE IT > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 25 LOADER MAC 24-MAR-75 15:43 LIBRARY SEARCH CONTROL AND LOADER CONTROL 2348 ; LIB CONTROLS THE LIBRARY SEARCH OF ONE FILE 2349 2350 001113' 325 04 0 00 001202' LIB: JUMPGE S,EOF1 ;JUMP IF NO UNDEFINED GLOBALS 2351 001114' 661 00 0 00 000004 TLO F,SKIPSW ;SET SKIPSW TO IGNORE MODE 2352 001115' 602 00 0 00 000100 IFN DIDAL, 2354 001117' 254 00 0 00 001240' JRST LOAD ;CONTINUE LIB. SEARCH 2355 2356 001120' 302 16 0 00 000004 LIB1: CAIE A,4 ;TEST FOR ENTRY BLOCK 2357 001121' 254 00 0 00 001132' JRST LIB29 ;NOT AN ENTRY BLOCK, IGNORE IT 2358 001122' 260 17 0 00 003067' LIB2: PUSHJ P,RWORD ;READ ONE DATA WORD 2359 001123' 200 13 0 00 000012 MOVE C,W 2360 001124' 661 13 0 00 040000 TLO C,040000 ;SET CODE BITS FOR SEARCH 2361 001125' 260 17 0 00 003043' PUSHJ P,SREQ 2362 001126' 625 00 0 00 000004 TLZA F,SKIPSW ;REQUEST MATCHES ENTRY, LOAD 2363 001127' 254 00 0 00 001122' JRST LIB2 ;NOT FOUND 2364 001130' 260 17 0 00 003067' LIB3: PUSHJ P,RWORD ;READ AND IGNORE ONE DATA WORD 2365 001131' 254 00 0 00 001130' JRST LIB3 ;LOOP TO IGNORE INPUT 2366 2367 001132' 306 16 0 00 000014 LIB29: CAIN A,14 ;INDEX BLOCK? 2368 001133' 254 00 0 00 002653' JRST INDEX0 ;YES 2369 001134' 550 13 0 00 000012 LIB30: HRRZ C,W ;GET WORD COUNT 2370 001135' 322 13 0 00 001241' JUMPE C,LOAD1 ;IF NUL BLOCK RETURN 2371 001136' 303 13 0 00 000022 CAILE C,^D18 ;ONLY ONE SUB-BLOCK 2372 001137' 254 00 0 00 001130' JRST LIB3 ;NO,SO USE OLD SLOW METHOD 2373 001140' 271 13 0 00 000001 ADDI C,1 ;ONE FOR RELOCATION WORD 2374 2375 001141' 311 13 0 00 004161' LIB31: CAML C,BUFR2 ;DOES BLOCK OVERLAP BUFFERS? 2376 001142' 364 13 0 00 001147' SOJA C,LIB32 ;YES,ALLOW FOR INITIAL ILDB 2377 001143' 272 13 0 00 004160' ADDM C,BUFR1 ;ADD TO BYTE POINTER 2378 001144' 213 00 0 00 000013 MOVNS C ;NEGATE 2379 001145' 272 13 0 00 004161' ADDM C,BUFR2 ;TO SUBTRACT C FROM WORD COUNT 2380 001146' 254 00 0 00 001241' JRST LOAD1 ;GET NEXT BLOCK 2381 2382 001147' 274 13 0 00 004161' LIB32: SUB C,BUFR2 ;ACCOUNT FOR REST OF THIS BUFFER 2383 001150' 260 17 0 00 003701' PUSHJ P,WORD+1 ;GET ANOTHER BUFFERFUL 2384 001151' 254 00 0 00 001141' JRST LIB31 ;TRY AGAIN 2385 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 26 LOADER MAC 24-MAR-75 15:43 LIBRARY SEARCH CONTROL AND LOADER CONTROL 2386 IFN SAILSW,< 2387 2388 COMMENT * BLOCK TYPE 16 AND 17 USED TO SPECIFY PROGRAMS AND 2389 LIBRARIES WHICH MUST BE LOADED (SEARCHED) IF THE PROGRAM 2390 IN WHICH THE BLOCK APPEARS IS LOADED. IT IS NOW TIME TO 2391 LOAD AND SEARCH THESE FILES. IF ANY MAKE REQUESTS, THEY ARE ADDED 2392 TO THE END. WE WILL COME BACK AND LOOK AGAIN IN CASE A 2393 LIBRARY PROGRAM LOAD A REL PROGRAM. ORIGINAL CODE BY DCS* 2394 2395 SALOAD: MOVE T,[XWD -RELLEN-1,PRGFLS-1] ;TO RESET WITH AT END 2396 MOVEI D,PRGPNT ;OINTER TO UPPER LIMIT 2397 PUSHJ P,PRGPRG ;LOAD THEM IF ANY 2398 2399 ;NOW FOR LIBRARY SEARCH 2400 2401 MOVE T,[XWD -RELLEN-1,LIBFLS-1] 2402 MOVEI D,LIBPNT 2403 2404 PRGPRG: MOVEM D,LODLIM# ;SAVE POINTER TO LIMIT 2405 MOVEM T,LODSTP# ;START FOR RESETTING 2406 PRGBAK: MOVEM T,LODPNT# ;AND START 2407 CAMN T,@LODLIM ;GOTTEN TO END YET? 2408 JRST PRGDON ;YES, DUMP IT 2409 SKIPN W,PRGDEV(T) ;IS DEVICE SPECIFIED? 2410 MOVSI W,(SIXBIT /DSK/) ;NO, DSK 2411 MOVEM W,ILD1 ;WHERE WE INIT FROM 2412 MOVSI W,(SIXBIT /REL/) ;EXTENSION 2413 MOVEM W,DTIN1 2414 MOVE W,PRGFIL(T) 2415 MOVEM W,DTIN ;FILE NAME 2416 MOVE W,PRGPPN(T) ;THE PROJECT PROG 2417 MOVEM W,DTIN+3 2418 PUSH P,JRPRG ;A RETURN ADDRESS 2419 TLZ F,ISW ;FORCE NEW INIT 2420 HRRZ T,LODLIM 2421 CAIN T,LIBPNT ;WHICH ONE 2422 JRST LIBGO 2423 JRST LDF 2424 PRGRET: MOVE T,LODPNT ;RETURNS HERE, GET NEXT ONE 2425 AOBJN T,PRGBAK 2426 2427 PRGDON: MOVE T,LODSTP ;RESTE POINTER IN CASE MORE ON OTHER LIBS 2428 MOVEM T,@LODLIM 2429 JRPRG: POPJ P,PRGRET ;PUSHED TO GET A RETURN ADDRESS 2430 2431 PRGFIL==1 ;REL INDEX FOR FILE NAMES 2432 PRGPPN==RELLEN+1 ;AND FOR PPNS 2433 PRGDEV==2*RELLEN+1 ;AND FOR DEVICES 2434 > ;END OF IFN SAILSW LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 27 LOADER MAC 24-MAR-75 15:43 LDDT LOADS AND SETS SYMSW 2435 SUBTTL LDDT LOADS AND SETS SYMSW 2436 2437 001152' 661 01 0 00 006000 LDDTX: TLO N,DDSW+EXEQSW ;T - LOAD AND GO TO DDT 2438 001153' LDDT: ;/D - LOAD DDT 2439 IFN TENEX,UDDT.SAV/] 2444 GTJFN 2445 JRST LDDTQ 2446 PUSH P,1 ;DDT JFN 2447 MOVEI 1,400000 2448 GEVEC ;LOADER'S EV 2449 POP P,1 2450 PUSH P,2 2451 HRLI 1,400000 ;THIS FORK 2452 GET 2453 MOVEI 1,400000 2454 GEVEC ;DDT'S EV 2455 MOVEM 2,.JBDDT(3) ;3 HAS X IN IT 2456 POP P,2 2457 SEVEC ;RESTORE LOADER'S EVEC 2458 TLO F,SYMSW!RMSMSW ;DO /S PROBABLY ON BY DEFAULT 2459 MOVE 2,3 2460 POP P,3 2461 POP P,1 2462 JRST DMN2 2463 2464 LDDTQ: TTCALL 3,[ASCIZ / 2465 DDT10X NOT AVAILABLE. USING DEC DDT./] 2466 MOVE 2,3 2467 POP P,3 2468 POP P,1> 2469 IFN DMNSW,< PUSH P,D ;SAVE INCASE /NNND > 2470 001153' 260 17 0 00 001231' PUSHJ P,FSCN1 ;FORCE SCAN TO COMPLETION 2471 001154' 205 12 0 00 444464 MOVSI W,'DDT' ;FILE IDENTIFIER 2472 001155' 621 00 0 00 041000 TLZ F,SYMSW!RMSMSW ;DON'T LOAD DDT WITH LOCAL SYMBOLS 2473 001156' 260 17 0 00 001162' PUSHJ P,LDDT1 2474 001157' 260 17 0 00 001235' PUSHJ P,LDF ;LOAD 2475 001160' 661 00 0 00 041000 TLO F,SYMSW!RMSMSW ;ENABLE LOADING WITH SYMBOLS 2476 IFN DMNSW,< POP P,D ;RESTORE D 2477 JRST DMN2 ;MOVE SYMBOL TABLE > 2478 001161' 263 17 0 00 000000 IFE DMNSW,< POPJ P,> 2479 2480 001162' 202 12 0 00 004162' LDDT1: MOVEM W,DTIN ;STORE FILE IDENTIFIER 2481 001163' 200 12 0 00 003731' MOVE W,ILD1 ;SAVE OLD DEV 2482 001164' 202 12 0 00 004013' MOVEM W,OLDDEV 2483 001165' 402 00 0 00 004015' IFN PP, 2484 001166' 205 12 0 00 637163 MOVSI W,'SYS' ;DEVICE IDENTIFIER 2485 001167' 202 12 0 00 003731' MOVEM W,ILD1 ;STORE DEVICE IDENTIFIER 2486 001170' 621 00 0 00 026004 TLZ F,ISW+LIBSW+SKIPSW+REWSW ;CLEAR OLD FLAGS 2487 001171' 205 12 0 00 624554 LDDT2: MOVSI W,'REL' ;EXTENSION IDENTIFIER <.REL> 2488 001172' 202 12 0 00 004163' LDDT3: MOVEM W,DTIN1 ;STORE EXTENSION IDENTIFIER 2489 001173' LDDT4: IFN PP,< LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 27-1 LOADER MAC 24-MAR-75 15:43 LDDT LOADS AND SETS SYMSW 2490 001173' 261 17 0 00 000012 PUSH P,W ;SAVE W 2491 001174' 336 12 0 00 004016' SKIPN W,PPN ;GET TEMP PPN 2492 001175' 200 12 0 00 004015' MOVE W,PPPN ;TRY PERM 2493 001176' 202 12 0 00 004165' MOVEM W,DTIN+3 ;SET PPN 2494 001177' 262 17 0 00 000012 POP P,W ;RESTORE W> 2495 001200' 263 17 0 00 000000 POPJ P, 2496 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 28 LOADER MAC 24-MAR-75 15:43 EOF TERMINATES LOADING OF A FILE 2497 SUBTTL EOF TERMINATES LOADING OF A FILE 2498 2499 001201' 200 17 0 00 003736' EOF: MOVE P,PDSAV ;RESTORE PUSHDOWN POINTER 2500 001202' 621 00 0 00 000404 EOF1: TLZ F,SLIBSW!SKIPSW ;CLEAR ONE FILE LIB. SEARCH FLAG 2501 001203' 620 00 0 00 000300 IFN DIDAL, 2504 001204' 205 12 0 00 400000 MOVSI W,(1B0) ;FOOL MONITOR THAT WE HAVE NOT USED THIS BUFFER 2505 001205' 502 12 0 00 004154' HLLM W,ABUF ;THEN NEXT OUTPUT WILL BE A "DUMMY OUTPUT" 2506 001206' 205 12 0 00 000700 MOVSI W,700 ;RESET BYTE POINTER TO ASCII 2507 001207' 202 12 0 00 004155' MOVEM W,ABUF1 ;AND HOPE DUMMY OUTPUT WILL CLEAR DIDAL STUFF 2508 001210' 402 00 0 00 004156' SETZM ABUF2 ;ZERO BYTE COUNT TO FORCE DUMMY OUTPUT> 2509 001211' 603 00 0 00 001000 EOF2: TLNE F,RMSMSW ;IF REMEMBER LOADING WITH SYMBOLS IS ON 2510 001212' 661 00 0 00 040000 TLO F,SYMSW ;THEN RESTORE SYMBOL LOADING STATE 2511 001213' 263 17 0 00 000000 POPJ P, 2512 2513 ; FORCE SCAN TO COMPLETION, LOAD IF NECESSARY 2514 2515 001214' 260 17 0 00 001231' FSCN: PUSHJ P,FSCN1 ;FORCED LOAD BEFORE TEST 2516 001215' 607 00 0 00 000200 TLNN F,FULLSW ;TEST FOR OVERLAP 2517 001216' 263 17 0 00 000000 POPJ P, ;NO OVERLAP, RETURN 2518 001217' 200 12 0 00 000003 MOVE W,H ;FETCH CORE SIZE REQUIRED 2519 IFN MONLOD, 2521 001220' 275 12 0 04 000001 SUBI W,1(S) ; COMPUT DEFICIENCY 2522 001221' 321 12 0 00 001211' JUMPL W,EOF2 ;JUMP IF NO OVERLAP 2523 001222' 260 17 0 00 003670' PUSHJ P,PRQ ;START WITH ? 2524 001223' 260 17 0 00 003416' PUSHJ P,PRNUM0 ;INFORM USER 2525 001224' 265 16 0 00 003656' ERROR 7, 2526 001230' 254 00 0 00 000145' JRST LD2 ;ERROR RETURN 2527 2528 IFN SPCHN, 2530 001231' 667 00 0 00 000010 FSCN1: TLON F,FSW ;SKIP IF NOT FIRST CALL TO FSCN 2531 001232' 607 00 0 00 100003 FSCN2: TLNN F,CSW+DSW+ESW ;TEST SCAN FOR COMPLETION 2532 001233' 263 17 0 00 000000 POPJ P, 2533 001234' 260 17 0 00 000213' PUSHJ P,LD5B1 ;STORE FILE OR EXTENSION IDENT. 2534 2535 ; LOADER CONTROL, NORMAL MODE 2536 2537 001235' 260 17 0 00 001020' LDF: PUSHJ P,ILD ;INITIALIZE LOADING 2538 001236' 603 00 0 00 004000 TLNE F,LIBSW ;IN LIBRARY SEARCH MODE? 2539 001237' 254 00 0 00 001113' JRST LIB ;CHECK IF NO UNDFS. 2540 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 29 LOADER MAC 24-MAR-75 15:43 LOAD SUBROUTINE 2541 SUBTTL LOAD SUBROUTINE 2542 2543 001240' 202 17 0 00 003736' LOAD: MOVEM P,PDSAV ;SAVE PUSHDOWN POINTER 2544 IFN WFWSW, 2545 IFN ALGSW, 2546 IFN FAILSW, 2547 IFN COBSW, 2548 IFN MANTIS, 2550 IFN TENEX, 2551 001241' 200 17 0 00 003736' LOAD1: MOVE P,PDSAV ;RESTORE PUSHDOWN POINTER 2552 001242' 260 17 0 00 003700' LOAD1A: PUSHJ P,WORD ;INPUT BLOCK HEADER WORD 2553 001243' 211 14 0 12 400000 MOVNI E,400000(W) ;WORD COUNT - FROM RH OF HEADER 2554 001244' 554 16 0 00 000012 HLRZ A,W ;BLOCK TYPE - FROM LH OF HEADER 2555 001245' 336 00 0 00 003735' IFN B11SW, 2556 001246' 301 16 0 00 000040 CAIL A,DISPL*2 ;TEST BLOCK TYPE NUMBER 2557 001247' 254 00 0 00 001300' JRST LOAD4 ;ERROR, ILLEGAL BLOCK TYPE 2558 001250' 603 00 0 00 000004 TLNE F,SKIPSW ;BLOCK OK - TEST LOAD STATUS 2559 001251' 254 00 0 00 001120' JRST LIB1 ;RETURN TO LIB. SEARCH CONTROL 2560 001252' 550 10 0 16 001260' HRRZ T,LOAD2(A) ;LOAD RH DISPATCH ENTRY 2561 001253' 301 16 0 00 000020 CAIL A,DISPL ;SKIP IF CORRECT 2562 001254' 554 10 0 16 001240' HLRZ T,LOAD2-DISPL(A);LOAD LH DISPATCH ENTRY 2563 001255' 603 00 0 00 000200 TLNE F,FULLSW ;TEST CORE OVERLAP INDICATOR 2564 001256' 367 16 0 00 001714' SOJG A,HIGH0 ;IGNORE BLOCK IF NOT TYPE 1 2565 001257' 254 00 1 00 000010 JRST @T ;DISPATCH TO BLOCK SUBROUTINE 2566 2567 ;DISPATCH TABLE - BLOCK TYPES 2568 IFE B11SW, 2569 001302' IFE FAILSW, 2570 001302' IFE WFWSW, 2571 001302' IFE ALGSW, 2572 001302' IFE SAILSW, 2574 001302' IFE COBSW, 2575 2576 001260' 002771' 001134' LOAD2: COMML,,LIB30 ;20,,0 2577 001261' 003017' 001312' SPDATA,,PROG ;21,,1 2578 001262' 001302' 001362' LOAD4A,,SYM ;22,,2 2579 001263' 001302' 001657' LOAD4A,,HISEG ;23,,3 2580 001264' 001302' 001134' LOAD4A,,LIB30 ;24,,4 2581 001265' 001302' 001716' LOAD4A,,HIGH ;25,,5 2582 001266' 001302' 001760' LOAD4A,,NAME ;26,,6 2583 001267' 001302' 002141' LOAD4A,,START ;27,,7 2584 001270' 001302' 002154' LOAD4A,,LOCD ;30,,10 2585 001271' 001302' 002206' LOAD4A,,POLFIX ;31,,11 2586 001272' 001302' 001302' LOAD4A,,LINK ;32,,12 2587 001273' 001302' 001302' LOAD4A,,LVARB ;33,,13 2588 001274' 001302' 002765' LOAD4A,,INDEX ;34,,14 2589 001275' 001302' 001302' LOAD4A,,ALGBLK ;35,,15 2590 001276' 001302' 001302' LOAD4A,,LDPRG ;36,,16 2591 001277' 001302' 001302' COBSYM,,LDLIB ;37,,17 2592 2593 000020 DISPL==.-LOAD2 2594 2595 ;ERROR EXIT FOR BAD HEADER WORDS LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 29-1 LOADER MAC 24-MAR-75 15:43 LOAD SUBROUTINE 2596 2597 001300' LOAD4: 2598 IFN TENEX, 2600 001300' 306 16 0 00 000400 IFE K, 2606 001301' 254 00 0 00 005120' JRST F4LD> 2607 2608 001302' 200 12 0 00 000016 LOAD4A: MOVE W,A ;GET BLOCK TYPE 2609 001303' 265 16 0 00 003577' ERROR , 2610 001310' 260 17 0 00 003413' PUSHJ P,PRNUM ;PRINT BLOCK TYPE 2611 001311' 254 00 0 00 002031' JRST ILC1 ;PRINT SUBROUTINE NAME 2612 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 30 LOADER MAC 24-MAR-75 15:43 LOAD PROGRAMS AND DATA (BLOCK TYPE 1) 2613 SUBTTL LOAD PROGRAMS AND DATA (BLOCK TYPE 1) 2614 ;(BLOCK TYPE 37) TREAT AS BLOCK TYPE 1, BUT ONLY LOAD 2615 ;IF IN LOCAL SYMBOLS MODE 2616 IFN COBSW,< 2617 COBSYM: TLNN F,SYMSW ;LOCAL SYMBOLS? 2618 JRST LIB30 ;NO, SKIP OVER THIS BLOCK 2619 MOVEI V,-1(W) ;GET BLOCK LENGTH 2620 ADDM V,LOD37. ;COUNT EXTRA CODE> 2621 2622 001312' 201 11 0 12 777777 PROG: MOVEI V,-1(W) ;LOAD BLOCK LENGTH 2623 001313' 260 17 0 00 003067' PUSHJ P,RWORD ;READ BLOCK ORIGIN 2624 001314' 335 00 0 00 000012 SKIPGE W 2625 001315' 260 17 0 00 001333' PUSHJ P,PROGS ;SYMBOLIC IF 36 BITS 2626 001316' 270 11 0 00 000012 ADD V,W ;COMPUTE NEW PROG. BREAK 2627 IFN REENT, 2631 CAMGE W,HVAL1 ;CHECK TO SEE IF IN TOP SEG 2632 JRST LOWCOR 2633 MOVE T,.JBREL ;CHECK FOR OVERFLOW ON HIGH 2634 CAIL T,@X 2635 JRST PROG2 2636 PUSHJ P,HIEXP 2637 JRST FULLC 2638 JRST PROG3> 2639 2640 IFN MONLOD, 2645 IFN REENT,< 2646 LOWCOR: SUB V,HIGHX ;RELOC FOR PROPER 2647 ADD V,LOWX ;LOADING OF LOW SEQMENT 2648 SUB W,HIGHX 2649 ADD W,LOWX> 2650 001317' 201 10 1 00 000002 PROGLW: MOVEI T,@X 2651 001320' 317 03 0 00 000010 CAMG H,T ;COMPARE WITH PREV. PROG. BREAK 2652 001321' 200 03 0 00 000010 MOVE H,T 2653 001322' 603 00 0 00 000200 TLNE F,FULLSW 2654 001323' 254 00 0 00 001755' JRST FULLC ;NO ERROR MESSAGE 2655 IFN REENT, 2659 001324' 303 03 0 04 000001 CAILE H,1(S) ; SKIP IF SUFFICIENT CORE AVAILABLE 2660 IFN EXPAND, 2661 JRST FULLC 2662 IFN REENT,< TLNE F,HIPROG 2663 SUBI W,2000 ;HISEG LOADING LOW SEG> 2664 001325' 254 00 0 00 006330' IFN EXPAND,< JRST .-1]> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 31 LOADER MAC 24-MAR-75 15:43 LOAD PROGRAMS AND DATA (BLOCK TYPE 1) 2665 001326' 200 11 0 00 000012 PROG2: MOVE V,W 2666 001327' 260 17 0 00 003067' PROG1: PUSHJ P,RWORD ;READ DATA WORD 2667 IFN TEN30, 2671 001330' 311 11 0 00 004137' IFN L, 2672 IFN MONLOD, 2673 001331' 202 12 1 00 000002 MOVEM W,@X ;STORE DATA WORD IN PROG. AT LLC 2674 IFN MONLOD, 2675 001332' 344 11 0 00 001327' AOJA V,PROG1 ;ADD ONE TO LOADER LOC. COUNTER 2676 2677 ;HERE TO FIND SYMBOLIC ORIGIN 2678 ;W CONTAINS RADIX50 60,ORIGIN 2679 ;NEXT WORD CONTAINS OFFSET 2680 ;NOTE SYMBOL MUST BE GLOBAL AND DEFINED 2681 2682 001333' 200 13 0 00 000012 PROGS: MOVE C,W ;PUT SYMBOL IN CORRECT SEARCH AC 2683 001334' 641 13 0 00 640000 TLC C,640000 ;PERMUTE FROM 60 TO 04 2684 001335' 260 17 0 00 003045' PUSHJ P,SDEF ;SEE IF DEFINED 2685 001336' 334 13 0 16 000002 SKIPA C,2(A) ;YES, GET VALUE 2686 001337' 254 00 0 00 001344' JRST PROGER ;NO, GIVE WARNING 2687 001340' 550 13 0 00 000013 HRRZ C,C ;CLEAR LEFT HALF IN CASE COMMON 2688 001341' 260 17 0 00 003067' PUSHJ P,RWORD ;GET NEXT WORD 2689 001342' 270 12 0 00 000013 ADD W,C ;FORM ORIGIN 2690 001343' 364 11 0 00 003341' SOJA V,CPOPJ ;BUT NOT SO MANY DATA WORDS 2691 2692 001344' 202 13 0 17 000000 PROGER: MOVEM C,(P) ;REMOVE RETURN, SAVE C 2693 001345' 265 16 0 00 003577' ERROR , 2694 001357' 262 17 0 00 000013 POP P,C 2695 001360' 260 17 0 00 003513' PUSHJ P,PRNAME 2696 001361' 254 00 0 00 001130' JRST LIB3 ;IGNORE THIS BLOCK 2697 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 32 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2698 SUBTTL LOAD SYMBOLS (BLOCK TYPE 2) 2699 2700 001362' 260 17 0 00 003061' SYM: PUSHJ P,PRWORD ;READ TWO DATA WORDS 2701 001363' 260 17 0 00 001365' PUSHJ P,SYMPT; PUT INTO TABLE 2702 IFN REENT, 2703 001364' 254 00 0 00 001362' JRST SYM 2704 2705 001365' 603 13 0 00 200000 SYMPT: TLNE C,200000 ;GLOBAL REQUEST? WFW 2706 001366' 321 13 0 00 001453' JUMPL C,SYM3 ;CHECK FOR 60 NOT JUST HIGH BIT WFW 2707 001367' 607 13 0 00 040000 TLNN C,40000 2708 001370' 254 00 0 00 001422' JRST SYM1A ;LOCAL SYMBOL 2709 001371' 603 13 0 00 100000 TLNE C,100000 2710 001372' 254 00 0 00 001424' JRST SYM1B 2711 001373' 260 17 0 00 003043' SYMPTQ: PUSHJ P,SREQ ;GLOBAL DEF., SEARCH FOR REQUEST 2712 001374' 254 00 0 00 001437' JRST SYM2 ;REQUEST MATCHES 2713 001375' 260 17 0 00 003045' PUSHJ P,SDEF ;SEARCH FOR MULTIPLE DEFINITIONS 2714 001376' 254 00 0 00 001400' JRST SYM1 ;MULTIPLY DEFINED GLOBAL 2715 001377' 254 00 0 00 001424' JRST SYM1B 2716 2717 ; PROCESS MULTIPLY DEFINED GLOBAL 2718 2719 001400' 316 12 0 16 000002 SYM1: CAMN W,2(A) ;COMPARE NEW AND OLD VALUE 2720 001401' 263 17 0 00 000000 POPJ P,; 2721 001402' 350 00 0 00 003733' AOS MDG ;COUNT MULTIPLY DEFINED GLOBALS 2722 001403' 260 17 0 00 003670' PUSHJ P,PRQ ;START W/ ? 2723 001404' 260 17 0 00 003412' PUSHJ P,PRNAM ;PRINT SYMBOL AND VALUE 2724 IFN RPGSW, 2727 001405' 200 12 0 16 000002 MOVE W,2(A) ;LOAD OLD VALUE 2728 001406' 260 17 0 00 003413' PUSHJ P,PRNUM ;PRINT OLD VALUE 2729 001407' 265 16 0 00 003656' ERROR 7, 2730 001415' 200 13 0 00 005055' MOVE C,SBRNAM ;GET PROGRAM NAME 2731 001416' 260 17 0 00 003513' PUSHJ P,PRNAME ;PRINT R-50 NAME 2732 001417' 265 16 0 00 003601' ERROR 0, 2733 001421' 263 17 0 00 000000 POPJ P, ;IGNORE MUL. DEF. GLOBAL SYM 2734 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 33 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2735 ; LOCAL SYMBOL 2736 2737 001422' 607 00 0 00 040000 SYM1A: TLNN F,SYMSW ;SKIP IF LOAD LOCALS SWITCH ON 2738 001423' 263 17 0 00 000000 POPJ P,; IGNORE LOCAL SYMBOLS 2739 IFN SYMDSW,< 2740 IFE MONLOD, 2741 IFN MONLOD, 2742 JRST SYM1X ;STORE SYMBOL ON DSK> 2743 2744 SYM1B: IFN MONLOD, 2746 001424' 301 03 0 04 000000 CAIL H,(S) ;STORE DEFINED SYMBOL 2747 001425' 260 17 0 00 000617' IFN EXPAND,< PUSHJ P,XPAND7> 2748 IFE EXPAND,< JRST SFULLC> 2749 001426' SYM1C: IFE K,< 2750 001426' 603 01 0 00 000010 TLNE N,F4SW; FORTRAN FOUR REQUIRES A BLT 2751 001427' 260 17 0 00 001622' PUSHJ P,MVDWN; OF THE TABLES> 2752 001430' 201 16 0 04 777776 SYM1D: MOVEI A,-2(S) ;LOAD A TO SAVE INST. AT SYM2 2753 001431' 275 04 0 00 000002 SUBI S,2 ;UPDATE UNDEFINED POINTER 2754 001432' 262 06 0 16 000002 POP B,2(A) ;MOVE UNDEFINED VALUE POINTER 2755 001433' 262 06 0 16 000001 POP B,1(A) ;MOVE UNDEFINED SYMBOL 2756 001434' 202 12 0 06 000002 MOVEM W,2(B) ;STORE VALUE 2757 001435' 202 13 0 06 000001 MOVEM C,1(B) ;STORE SYMBOL 2758 001436' 263 17 0 00 000000 IFE SYMDSW, 2759 IFN SYMDSW,< 2760 SYM1X: 2761 IFN MONLOD, 2764 IFE MONLOD, 2765 TRNN F,LSYMFL ;OUTPUT FILE SET UP? 2766 IFN MONLOD, 2767 IFE MONLOD, 2768 SOSG ABUF2 2769 OUTPUT 2, 2770 IDPB C,ABUF1 2771 SOSG ABUF2 2772 OUTPUT 2, 2773 IDPB W,ABUF1 2774 AOS SYMCNT# 2775 POPJ P,> 2776 2777 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 34 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2778 IFN SYMDSW,< 2779 SYOPEN: HLRZM W,SYMEXT# 2780 MOVE W,DTIN ;GET FILE NAME 2781 MOVEM W,SYMNAM ;SAVE IT 2782 PUSHJ P,INITSYM ;OPEN FILE 2783 JRST LD2DD ;AND RETURN TO SCAN 2784 2785 INITSYM: 2786 TLZ N,AUXSWI!AUXSWE 2787 INIT 2,14 2788 SIXBIT /DSK/ 2789 ABUF,,0 2790 HALT 2791 PUSH P,0 2792 PUSH P,1 2793 PUSH P,2 2794 PUSH P,3 2795 MOVEI 0,AUX 2796 MOVEM 0,.JBFF 2797 OUTBUF 2,1 2798 PJOB 0, 2799 MOVEI 3,3 2800 IDIVI 0,^D10 2801 ADDI 1,"0"-40 2802 LSHC 1,-6 2803 SOJG 3,.-3 2804 HRRI 2,'SYM' 2805 MOVE 0,SYMNAM# ;GET NAME 2806 JUMPN 0,.+3 ;WAS IT SET 2807 MOVS 0,2 ;NO 2808 MOVEM 0,SYMNAM ;STORE IT 2809 SKIPN 1,SYMEXT ;ALREADY SET 2810 MOVEI 1,'TMP' 2811 HRRZM 1,SYMEXT ;STORE FILE EXTENSION 2812 HRLZS 1 2813 SETZB 2,3 2814 ENTER 2,0 2815 HALT 2816 POP P,3 2817 POP P,2 2818 POP P,1 2819 POP P,0 2820 IORI F,LSYMFL ;SYMBOL FILE SETUP NOW 2821 POPJ P, 2822 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 35 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2823 ; GLOBAL DEFINITION MATCHES REQUEST 2824 2825 001437' 261 17 0 00 001446' SYM2: PUSH P,SYM2C ;NEXT MUST BE A SUBROUTINE FOR LATER, SET RETURN 2826 001440' 200 11 0 16 000002 SYM2B: MOVE V,2(A) ;LOAD REQUEST POINTER 2827 001441' 260 17 0 00 001645' PUSHJ P,REMSYM 2828 001442' 321 11 0 00 001601' JUMPL V,SYM2W ;ADDITIVE REQUEST? WFW 2829 001443' 260 17 0 00 001620' PUSHJ P,SYM4A ;REPLACE CHAIN WITH DEFINITION 2830 001444' 260 17 0 00 003043' SYM2W1: PUSHJ P,SREQ ;LOOK FOR MORE REQUESTS FOR THIS SYMBOL 2831 001445' 254 00 0 00 001440' JRST SYM2B ;FOUND MORE 2832 001446' 263 17 0 00 001430' SYM2C: POPJ P,SYM1D ;RETURN, SEE SYM2 FOR USE OF ADDRESS 2833 2834 ; REQUEST MATCHES GLOBAL DEFINITION 2835 2836 001447' 200 11 0 00 000012 SYM2A: MOVE V,W ;LOAD POINTER TO CHAIN 2837 001450' 200 12 0 16 000002 MOVE W,2(A) ;LOAD VALUE 2838 001451' 321 11 0 00 001526' JUMPL V,FIXWP ;HANDLE ATTITIVE REQUEST WFW 2839 001452' 254 00 0 00 001620' JRST SYM4A 2840 2841 ; PROCESS GLOBAL REQUEST 2842 2843 001453' 603 13 0 00 040000 SYM3: TLNE C,040000; COMMON NAME 2844 001454' 254 00 0 00 001424' JRST SYM1B 2845 001455' 641 13 0 00 640000 TLC C,640000; PERMUTE BITS FROM 60 TO 04 2846 001456' 260 17 0 00 003045' PUSHJ P,SDEF ;SEARCH FOR GLOBAL DEFINITION 2847 001457' 254 00 0 00 001447' JRST SYM2A ;MATCHING GLOBAL DEFINITION 2848 001460' 321 12 0 00 001463' JUMPL W,SYM3X1 ;ADDITIVE FIXUP WFW 2849 001461' 260 17 0 00 003043' PUSHJ P,SREQ ;SEARCH FOR EXISTING REQUEST WFW 2850 001462' 254 00 0 00 001505' JRST SYM3A ;EXISTING REQUEST FOUND WFW 2851 001463' 607 12 0 00 100000 SYM3X1: TLNN W,100000 ;CHECK SYMBOL TABLE FIXUP 2852 001464' 254 00 0 00 001475' JRST SYM3X2 ;NO 2853 001465' 200 11 0 06 000001 MOVE V,1(B) ;MUST BE LAST SYMBOL DEFINED. GET SYMBOL 2854 001466' 430 11 0 00 000012 XOR V,W ;CHECK FOR IDENTITY 2855 001467' 612 11 0 00 006333' TDNE V,[XWD 77777,-1] ;BUT IGNORE HIGH 3 BITS 2856 001470' 263 17 0 00 000000 POPJ P, ;NOT SAME, ASSUME NOT LOADED LOCAL 2857 001471' 541 12 0 06 000002 HRRI W,2(B) ;GET LOCATION IN RIGHT HALF 2858 001472' 661 12 0 00 000001 TLO W,1 2859 001473' 274 12 0 00 004135' SUB W,HISTRT ;AND MAKE RELATIVE 2860 001474' 621 12 0 00 040000 IFN B11SW, 2861 SYM3X2: IFN MONLOD, 2863 001475' 301 03 0 04 000000 CAIL H,(S) ;STORE REQUEST IN UNDEF. TABLE WFW 2864 001476' 260 17 0 00 000617' IFN EXPAND,< PUSHJ P,XPAND7> 2865 IFE EXPAND,< JRST SFULLC> 2866 001477' SYM3X: IFE K,< 2867 001477' 603 01 0 00 000010 TLNE N,F4SW; FORTRAN FOUR 2868 001500' 260 17 0 00 001622' PUSHJ P,MVDWN; ADJUST TABLES IF F4> 2869 001501' 274 04 0 00 003714' SUB S,SE3 ;ADVANCE UNDEFINED POINTER 2870 001502' 202 12 0 04 000002 MOVEM W,2(S) ;STORE UNDEFINED VALUE POINTER 2871 001503' 202 13 0 04 000001 MOVEM C,1(S) ;STORE UNDEFINED SYMBOL 2872 001504' 263 17 0 00 000000 POPJ P,; 2873 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 36 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2874 2875 ; COMBINE TWO REQUEST CHAINS 2876 2877 001505' 331 00 0 16 000002 SYM3A: SKIPL 2(A) ;IS IT ADDITIVE WFW 2878 001506' 254 00 0 00 001512' JRST SYM3A1 ;NO, PROCESS WFW 2879 001507' 260 17 0 00 003056' SYM3A4: PUSHJ P,SDEF2 ;YES, CONTINUE WFW 2880 001510' 254 00 0 00 001505' JRST SYM3A ;FOUND ANOTHER WFW 2881 001511' 254 00 0 00 001475' JRST SYM3X2 ;REALLY NO CHAIN THERE WFW 2882 001512' 332 11 0 16 000002 SYM3A1: SKIPE V,2(A) ;IF ADDRESS OF CHAIN IS 0, THROW IT AWAY 2883 001513' 254 00 0 00 001516' JRST SYM3A2 ;AND USE THE NEW ONE, ELSE ADD THE CHAINS 2884 001514' 202 12 0 16 000002 MOVEM W,2(A) ;W IS ADDRESS OF NEW CHAIN,STORE ON TOP OF OLD 0 2885 001515' 263 17 0 00 000000 POPJ P, 2886 001516' SYM3A2: 2887 001516' 200 16 0 16 000002 SYM3A3: MOVE A,2(A) 2888 001517' 550 11 0 00 000016 SYM3B: HRRZ V,A 2889 001520' 315 11 0 00 004137' IFN L, 2891 IFN REENT, 2894 IFN MONLOD, 2895 001522' 550 16 1 00 000002 HRRZ A,@X ; LOAD NEXT ADDRESS IN CHAIN 2896 001523' 326 16 0 00 001517' JUMPN A,SYM3B ; JUMP IF NOT THE LAST ADDR. IN CHAIN 2897 001524' 542 12 1 00 000002 HRRM W,@X ;COMBINE CHAINS 2898 IFN MONLOD, 2899 001525' 263 17 0 00 000000 POPJ P,; 2900 2901 ;WFW PATCH FOR ADDITIVE GLOBAL REQUESTS 2902 2903 001526' 607 11 0 00 100000 FIXWP: TLNN V,100000 ;CHECK FOR SYMBOL TABLE FIXUP 2904 001527' 254 00 0 00 001537' JRST FIXW 2905 001530' 200 10 0 06 000001 MOVE T,1(B) ;SYMBOL FIXUP, MUST BE LAST SYMBOL DEFINED 2906 001531' 430 10 0 00 000011 XOR T,V ;CHECK FO SAME 2907 001532' 612 10 0 00 006333' TDNE T,[XWD 77777,-1] ;EXCEPT FOR HIGH CODE BITS 2908 001533' 263 17 0 00 000000 POPJ P, ;ASSUME NON-LOADED LOCAL 2909 001534' 541 11 0 06 000002 HRRI V,2(B) ;GET LOCATION 2910 001535' 275 11 0 02 000000 SUBI V,(X) ;SO WE CAN USE @X 2911 001536' 254 00 0 00 001542' JRST FIXW1 2912 FIXW: IFN REENT, 2916 001537' 550 10 0 00 000011 IFN L,< HRRZ T,V 2917 001540' 315 05 0 00 004137' CAMGE R,RINITL 2918 001541' 263 17 0 00 000000 POPJ P,> 2919 001542' 603 11 0 00 200000 FIXW1: TLNE V,200000 ;IS IT LEFT HALF 2920 001543' 254 00 0 00 001551' JRST FIXWL 2921 IFN MONLOD, 2923 001544' 200 10 1 00 000002 MOVE T,@X ;GET WORD 2924 001545' 270 10 0 00 000012 ADD T,W ;VALUE OF GLOBAL 2925 001546' 542 10 1 00 000002 HRRM T,@X ;FIX WITHOUT CARRY 2926 IFN MONLOD, 2928 001547' 205 07 0 00 200000 MOVSI D,200000 ;SET UP TO REMOVE DEFERED INTERNAL IF THERE LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 36-1 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2929 001550' 254 00 0 00 001554' JRST SYMFIX LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 37 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2930 001551' 514 10 0 00 000012 FIXWL: HRLZ T,W ;UPDATE VALUE OF LEFT HALF 2931 IFN MONLOD, 2933 001552' 272 10 1 00 000002 ADDM T,@X ;BY VALUE OF GLOBAL 2934 IFN MONLOD, 2936 001553' 205 07 0 00 400000 MOVSI D,400000 ;LEFT DEFERED INTERNAL 2937 001554' 607 11 0 00 100000 SYMFIX: TLNN V,100000 ;CHECK FOR SYMBOL TABLE FIXUP 2938 001555' 263 17 0 00 000000 POPJ P, ;NO, RETURN 2939 001556' 271 11 0 02 000000 ADDI V,(X) ;GET THE LOCATION 2940 001557' 200 10 0 11 777777 SYMFX1: MOVE T,-1(V) ;GET THE SYMBOL NAME 2941 001560' 607 10 0 00 040000 TLNN T,40000 ;CHECK TO SEE IF INTERNAL 2942 001561' 263 17 0 00 000000 POPJ P, ;NO, LEAVE 2943 001562' 413 07 0 11 777777 ANDCAB D,-1(V) ;REMOVE PROPER BIT 2944 001563' 603 07 0 00 600000 TLNE D,600000 ;IS IT STILL DEFERED? 2945 001564' 263 17 0 00 000000 POPJ P, ;YES, ALL DONE 2946 001565' 250 13 0 00 000007 EXCH C,D ;NO, CHECK FOR A REQUEST FOR IT 2947 001566' 260 17 0 00 003043' PUSHJ P,SREQ 2948 001567' 254 00 0 00 001572' JRST CHNSYM ;YES, WILL HAVE TO CALL THE FIXUP ROUTINE 2949 001570' 200 13 0 00 000007 MOVE C,D ;GET C BACK 2950 001571' 263 17 0 00 000000 POPJ P, 2951 001572' 261 17 0 00 000007 CHNSYM: PUSH P,D ;HAS THE OLD C IN IT 2952 001573' 261 17 0 00 000012 PUSH P,W ;WE MAY NEED IT LATER 2953 001574' 200 12 0 11 000000 MOVE W,(V) ;GET VALUE 2954 001575' 260 17 0 00 001440' PUSHJ P,SYM2B ;CALL THE FOUND GLOBAL TO MATCH REQUEST ROUTINE 2955 001576' 262 17 0 00 000012 POP P,W 2956 001577' 262 17 0 00 000013 POP P,C ;RESTORE FOR CALLER 2957 001600' 263 17 0 00 000000 POPJ P, ;AND GO AWAY 2958 2959 001601' SYM2W: IFN B11SW,< 2960 001601' 603 11 0 00 040000 TLNE V,40000 ;CHECK FOR POLISH 2961 001602' 254 00 0 00 002531' JRST POLSAT> 2962 001603' 607 11 0 00 100000 TLNN V,100000 ;SYMBOL TABLE? 2963 001604' 254 00 0 00 001611' JRST SYM2WA 2964 001605' 270 11 0 00 004135' ADD V,HISTRT ;MAKE ABSOLUTE 2965 001606' 275 11 0 02 000000 SUBI V,(X) ;GET READY TO ADD X 2966 001607' 260 17 0 00 001542' PUSHJ P,FIXW1 2967 001610' 254 00 0 00 001444' JRST SYM2W1 2968 001611' 260 17 0 00 001537' SYM2WA: PUSHJ P,FIXW ;DO FIXUP 2969 001612' 254 00 0 00 001444' JRST SYM2W1 ;AND LOOK FOR MORE REQUESTS 2970 2971 ;END WFW PATCH 2972 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 38 LOADER MAC 24-MAR-75 15:43 LOAD SYMBOLS (BLOCK TYPE 2) 2973 ;PATCH VALUES INTO CHAINED REQUEST 2974 2975 001613' 315 11 0 00 004137' SYM4: IFN L, 2977 IFN REENT, 2980 IFN MONLOD, 2981 001615' 550 10 1 00 000002 HRRZ T,@X ;LOAD NEXT ADDRESS IN CHAIN 2982 001616' 542 12 1 00 000002 HRRM W,@X ;INSERT VALUE INTO PROGRAM 2983 IFN MONLOD, 2984 001617' 200 11 0 00 000010 MOVE V,T 2985 001620' 326 11 0 00 001613' SYM4A: JUMPN V,SYM4 ;JUMP IF NOT LAST ADDR. IN CHAIN 2986 001621' 263 17 0 00 000000 POPJ P, 2987 2988 IFE K,< 2989 001622' 550 10 0 00 005074' MVDWN: HRRZ T,MLTP 2990 001623' 275 10 0 00 000002 IFN EXPAND,< SUBI T,2> 2991 001624' 307 10 0 03 000000 CAIG T,(H); ANY ROOM LEFT? 2992 IFN EXPAND,< JRST [PUSHJ P,XPAND> 2993 TLOA F,FULLSW 2994 IFN EXPAND,< JRST MVDWN 2995 001625' 254 00 0 00 006334' POPJ P,]> 2996 001626' 603 00 0 00 000204 TLNE F,SKIPSW+FULLSW 2997 001627' 263 17 0 00 000000 POPJ P, ; ABORT BLT 2998 001630' 571 10 0 00 777776 HRREI T,-2 2999 001631' 272 10 0 00 005073' ADDM T,PLTP; ADJUST PROGRAMMER LABEL POINTER 3000 001632' 272 10 0 00 005071' ADDM T,BITP; AND BIT TABLE POINTER 3001 001633' 272 10 0 00 005076' ADDM T,SDSTP; FIRST DATA STATEMENT 3002 001634' 272 10 0 00 005105' ADDM T,LTC 3003 001635' 272 10 0 00 005106' ADDM T,ITC 3004 001636' 603 01 0 00 000040 TLNE N,SYDAT 3005 001637' 272 10 0 00 000011 ADDM T,V 3006 001640' 273 10 0 00 005074' ADDB T,MLTP; AND FINALLY TO MADE LABEL TABLE 3007 001641' 507 00 0 00 000010 HRLS T; SET UP BLT POINTER 3008 001642' 270 10 0 00 006340' ADD T,[XWD 2,0] 3009 001643' 251 10 0 04 000000 BLT T,(S) 3010 001644' 263 17 0 00 000000 POPJ P, 3011 > 3012 001645' 200 10 0 04 000001 REMSYM: MOVE T,1(S) 3013 001646' 202 10 0 16 000001 MOVEM T,1(A) 3014 001647' 200 10 0 04 000002 MOVE T,2(S) 3015 001650' 202 10 0 16 000002 MOVEM T,2(A) 3016 001651' 306 04 0 00 000016 CAIN S,A ;MOVING TO SELF? 3017 001652' 254 00 0 00 001655' JRST REMSY1 ;YES, DON'T CLEAR 3018 001653' 402 00 0 04 000001 SETZM 1(S) ;CLEAR NAME 3019 001654' 402 00 0 04 000002 SETZM 2(S) ;CLEAR POINTER 3020 001655' 270 04 0 00 003714' REMSY1: ADD S,SE3 3021 001656' 263 17 0 00 000000 POPJ P, 3022 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 39 LOADER MAC 24-MAR-75 15:43 HIGH-SEGMENT (BLOCK TYPE 3) 3023 SUBTTL HIGH-SEGMENT (BLOCK TYPE 3) 3024 ;THIS PROGRAM IS INTENDED FOR HI SEGMENT IF RUNNING ON A PDP-10. 3025 ; THIS BLOCK TYPE OCCURS AFTER ENTRY AND NAME BLOCKS. 3026 3027 001657' 550 13 0 00 000012 HISEG: HRRZ C,W ;GET WORD COUNT 3028 001660' 260 17 0 00 003700' PUSHJ P,WORD ;GOBBLE UP BYTE WORD. 3029 001661' 260 17 0 00 003700' PUSHJ P,WORD ;GET THE HIGH SEG OFSET 3030 001662' 362 13 0 00 001666' SOJE C,.+4 ;FINISHED IF NOT FORTRAN-10 3031 001663' 200 13 0 00 000012 MOVE C,W ;SAVE HIGH INFO 3032 001664' 260 17 0 00 003700' PUSHJ P,WORD ;GET LOW BREAK 3033 001665' 250 12 0 00 000013 EXCH W,C ;SWAP BACK 3034 001242' IFE REENT, 3036 IFN REENT, 3038 IFN TENEX, 3040 >;END OF IFN REENT 3041 001667' 660 00 0 00 010000 TRO F,TWOFL ;SET FLAG 3042 IFN REENT,< 3043 TRNE F,NOHI!NOHI6 ;TWO SEGMENTS LEGAL? 3044 JRST ONESEG ;LOAD AS ONE SEGMENT 3045 HISEG3: HRRZ D,W ;GET START OF HISEG 3046 JUMPE D,.+2 ;NOT SPECIFIED 3047 PUSHJ P,HCONT ;AS IF /H 3048 HISEG2: PUSHJ P,HISEG1 3049 JRST LOAD1 ;GET NEXT BLOCK 3050 FAKEHI: ;AS IF BLOCK TYPE 3 3051 HISEG1: TRNE F,NOHI!NOHI6 ;LOAD REENT? 3052 POPJ P, 3053 TLOE F,HIPROG ;LOADING HI PROG 3054 POPJ P, ;IGNORE 2'ND HISEG 3055 TRON F,SEENHI ;HAVE WE LOADED ANY OTHER HI STUFF? 3056 PUSHJ P,SETUPH ;NO,SET UP HI SEG. 3057 MOVEM R,LOWR 3058 MOVE R,HIGHR 3059 MOVE X,NAMPTR ;GET THE POINTER TO PROGRAM NAME 3060 HRRM R,2(X) ;CALL THIS THE START OF THE PROGRAM 3061 MOVE X,HIGHX 3062 POPJ P, 3063 3064 SETUPH: MOVE X,HVAL1 3065 CAIGE X,-1 ;SEE IF IT HAS BEEN CHANGED FROM ORIG 3066 JRST SEENHS ;YES, MUST HAVE SEEN /H 3067 MOVEI X,400000 3068 MOVEM X,HVAL1 3069 CAIG X,(H) ;HAVE WE RUN OVER WITH THE LOW SEG 3070 JRST COROVL 3071 ADDI X,.JBHDA 3072 HRLI X,W 3073 MOVEM X,HVAL 3074 SEENHS: MOVE X,HVAL 3075 MOVEM X,HIGHR 3076 HRRZ X,.JBREL 3077 SUB X,HVAL1 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 39-1 LOADER MAC 24-MAR-75 15:43 HIGH-SEGMENT (BLOCK TYPE 3) 3078 ADDI X,1 3079 HRLI X,V 3080 MOVEM X,HIGHX 3081 POPJ P, 3082 3083 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 40 LOADER MAC 24-MAR-75 15:43 HIGH-SEGMENT (BLOCK TYPE 3) 3084 SETSEG: TRZ F,NOHI!SEGFL ;ALLOW HI-SEG 3085 JUMPL D,.+2 ;/-H TURNS OFF NOHI ONLY 3086 TRO F,SEGFL ;/1H FORCES HI 3087 POPJ P, 3088 > 3089 3090 001670' 554 07 0 00 000012 ONESEG: HLRZ D,W ;GET LENGTH OF HISEG 3091 001671' 275 07 0 12 000000 SUBI D,(W) ;REMOVE OFSET 3092 001672' 323 07 0 00 001677' JUMPLE D,ONELOW ;LENGTH NOT AVAILABLE 3093 001673' 202 05 0 00 004011' MOVEM R,LOWR ;SAVE LOW SEGMENT RELOCATION 3094 001674' 272 07 0 00 004011' ADDM D,LOWR ;ADD TO LOW SEG RELOCATION 3095 001675' 552 12 0 00 004010' HRRZM W,HVAL1 ;SO RELOC WILL WORK 3096 001676' 254 00 0 00 001241' JRST LOAD1 ;GET NEXT BLOCK 3097 3098 001677' 554 07 0 00 000013 ONELOW: HLRZ D,C ;TRY LOW SEG BREAK 3099 001700' 275 07 0 13 000000 SUBI D,(C) 3100 001701' 323 07 0 00 001706' JUMPLE D,TWOERR ;NOT AVAILABLE 3101 001702' 202 05 0 00 004011' MOVEM R,LOWR ;SAVE CURRENT BREAK 3102 001703' 270 05 0 00 000007 ADD R,D ;ADD LOW LENGTH 3103 001704' 552 12 0 00 004010' HRRZM W,HVAL1 ;SO RELOC WILL WORK 3104 001705' 254 00 0 00 001241' JRST LOAD1 3105 3106 001706' 265 16 0 00 003656' TWOERR: ERROR 7, 3107 IFE L,< JRST LDRSTR> 3108 001713' 254 00 0 00 001241' IFN L,< JRST LOAD1> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 41 LOADER MAC 24-MAR-75 15:43 HIGHEST RELOCATABLE POINT (BLOCK TYPE 5) 3109 SUBTTL HIGHEST RELOCATABLE POINT (BLOCK TYPE 5) 3110 3111 001714' 302 16 0 00 000004 HIGH0: CAIE A,4 ; TEST FOR END BLOCK (OVERLAP) 3112 001715' 254 00 0 00 001134' JRST LIB30 3113 3114 001716' 606 00 0 00 010000 HIGH: TRNN F,TWOFL ;IS THIS A TWO SEGMENT PROGRAM? 3115 001717' 254 00 0 00 001724' JRST HIGH2A ;NO 3116 001720' 260 17 0 00 003067' HIGH2: PUSHJ P,RWORD ;GET HISEG BREAK 3117 001721' 620 00 0 00 010000 TRZ F,TWOFL ;CLEAR FLAG NOW 3118 001722' 200 05 0 00 004011' IFE REENT, 3120 IFN REENT, 3142 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 42 LOADER MAC 24-MAR-75 15:43 HIGHEST RELOCATABLE POINT (BLOCK TYPE 5) 3143 001724' 260 17 0 00 003061' HIGH2A: PUSHJ P,PRWORD ;READ TWO DATA WORDS. 3144 HIGH2B: IFN REENT,< 3145 TLZE F,HIPROG 3146 JRST HIGHNP> 3147 IFN WFWSW, 3148 IFN ALGSW, 3149 IFN COBSW, 3152 001725' 315 13 0 00 000012 IFE TENEX, 3154 001727' 540 05 0 00 000013 HRR R,C ;SET NEW PROGRAM BREAK 3155 001730' 202 05 0 00 004011' HIGH31: MOVEM R,LOWR ;SAVE NEW VALUE OF R 3156 IFN MONLOD, 3157 001731' 271 13 0 02 000000 ADDI C,(X) 3158 001732' 307 03 0 13 000000 CAIG H,(C) 3159 001733' 201 03 0 13 000000 MOVEI H,(C) ;SET UP H 3160 IFN MONLOD, 3162 001734' 303 03 0 04 000001 CAILE H,1(S) ;TEST PROGRAM BREAK 3163 IFN EXPAND, 3166 IFE EXPAND, 3167 001736' 201 16 0 00 004000' HIGH3: MOVEI A,F.C 3168 001737' 251 16 0 00 004006' BLT A,B.C 3169 IFN REENT, 3178 001740' 622 01 0 00 001000 TRZE N,F10TFL ;FORTRAN-10 SET NOHI? 3179 001741' 620 00 0 00 000002 TRZ F,NOHI ;YES, CLEAR IT 3180 001742' 402 00 0 00 005055' SETZM SBRNAM ;RELAX, RELOCATION BLOCK FOUND 3181 001743' 603 00 0 00 004400 TLNE F,SLIBSW+LIBSW ;NORMAL MODE EXIT THROUGH LOAD1 3182 001744' 254 00 0 00 001113' JRST LIB ;LIBRARY SEARCH EXIT 3183 001745' 254 00 0 00 001241' JRST LOAD1 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 43 LOADER MAC 24-MAR-75 15:43 HIGHEST RELOCATABLE POINT (BLOCK TYPE 5) 3184 IFN REENT,< 3185 HIGHNP: HRR R,C 3186 CAMG W,HVAL1 ;ABS. ADDRESS IN HIGH SEGMENT? 3187 JRST HIGHN1 ;NO 3188 CAIG C,(W) ;YES, GREATER THAN CURRENT HISEG RELOC? 3189 HRR R,W ;YES, USE IT 3190 SETZ W, ;DON'T USE IT AGAIN 3191 HIGHN1: CAMLE R,HVAL 3192 MOVEM R,HVAL 3193 MOVEM R,HIGHR 3194 HIGHN3: PUSH P,W ;SAVE W,CONTAIN HIGHEST ABSOLUTE ADDRESS 3195 ADD W,LOWX ;LOC PROG BRK 3196 CAIGE H,(W) ;CHECK FOR TOP OF LOW CORE 3197 MOVEI H,(W) 3198 POP P,W ;RESTORE 3199 CAML H,HVAL1 3200 JRST COROVL ;OVERFLOW OF LOW SEGMENT 3201 HIGHN2: HRRZ R,HVAL 3202 SUB R,HVAL1 3203 ADD R,HISTRT 3204 CAMLE R,.JBREL 3205 JRST [PUSHJ P,HIEXP 3206 JRST FULLC 3207 JRST HIGHN2] 3208 MOVE R,LOWR 3209 MOVE X,LOWX 3210 IFN WFWSW, 3211 IFN ALGSW, 3212 IFN COBSW, 3215 HRRZ C,R 3216 CAIGE C,(W) ;IS ABSOLUTE LOCATION GREATER 3217 HRR R,W ;YES USE IT 3218 HRRZ C,R ;SET UP C AGAIN 3219 JRST HIGH31 ;GO CHECK PROGRAM BREAK 3220 > 3221 001746' 662 00 0 00 002000 SFULLC: TROE F,SFULSW ;PREVIOUS OVERFLOW? 3222 001747' 254 00 0 00 001755' JRST FULLC ;YES, DON'T PRINT MESSAGE 3223 001750' 265 16 0 00 003577' ERROR , 3224 001755' FULLC: 3225 001755' 603 01 0 00 000010 IFE K,< TLNE N,F4SW 3226 001756' 263 17 0 00 000000 POPJ P,> 3227 001757' 254 00 0 00 001130' JRST LIB3 ;LOOK FOR MORE LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 44 LOADER MAC 24-MAR-75 15:43 EXPAND HIGH SEGMENT 3228 SUBTTL EXPAND HIGH SEGMENT 3229 3230 IFN REENT,< 3231 HIEXP: TLNE F,FULLSW 3232 POPJ P, 3233 IFN EXPAND, 3234 PUSH P,H 3235 PUSH P,X 3236 PUSH P,N 3237 IFE K, 3239 MOVEI X,1(S) 3240 HRRZ N,X 3241 SUB N,H 3242 CAILE N,1777 3243 JRST MOVHI 3244 IFE EXPAND, 3245 IFN EXPAND, 3252 3253 MOVHI: MOVEI N,-2000(X) 3254 HRL N,X 3255 HRRZ X,.JBREL 3256 BLT N,-2000(X) 3257 MOVNI H,2000 3258 IFN EXPAND, 3259 IFE EXPAND, 3276 POP P,X 3277 POP P,H 3278 AOS (P) 3279 POPJ P,> 3280 > 3281 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 45 LOADER MAC 24-MAR-75 15:43 PROGRAM NAME (BLOCK TYPE 6) 3282 SUBTTL PROGRAM NAME (BLOCK TYPE 6) 3283 3284 001760' 332 00 0 00 005055' NAME: SKIPE SBRNAM ;HAVE WE SEEN TWO IN A ROW? 3285 001761' 254 00 0 00 002043' JRST NAMERR ;YES, NO END BLOCK SEEN 3286 001762' 260 17 0 00 003061' NAME0: PUSHJ P,PRWORD ;READ TWO DATA WORDS 3287 001763' 202 13 0 00 005055' MOVEM C,SBRNAM ;SAVE SUBROUTINE NAME 3288 IFN MANTIS, 3292 001764' 554 11 0 00 000012 NCONT: HLRZ V,W ;GET COMPILER TYPE 3293 001765' 405 11 0 00 007777 ANDI V,7777 ;BITS 6-17 3294 001766' 303 11 0 00 000011 CAILE V,CMPLEN ;ONLY IF LEGAL TYPE 3295 001767' 400 11 0 00 000000 SETZ V, ;MAKE DEFAULT 3296 001770' 500 11 0 00 000012 HLL V,W ;GET CPU TYPE ALSO 3297 001771' 621 11 0 00 007777 TLZ V,7777 ;BITS 0-5 3298 001772' 553 00 0 00 000012 HRRZS W ;CLEAR TYPE 3299 001773' 256 00 0 11 002053' XCT CMPLER(V) ;DO SPECIAL FUNCTION 3300 001774' 663 01 0 00 000004 TLOE N,COMFLG ;SKIP IF COMMON NOT PREV. SET 3301 001775' 254 00 0 00 002001' JRST NAME1 ;SIZE OF COMMON PREV. SET 3302 001776' 202 12 0 00 003737' MOVEM W,COMSAV ;STORE LENGTH OF COMMON 3303 001777' 322 12 0 00 002014' JUMPE W,NAME2 ;JUMP IF NO COMMON IN THIS JOB 3304 002000' 541 05 1 00 000005 HRRI R,@R ;FIRST PROGRAM SET LOAD ORIGIN 3305 NAME1: IFN MONLOD, 3307 002001' 303 03 0 04 777777 CAILE H,-1(S) ;TEST FOR AVAIL. SYMBOL SPACE 3308 002002' 260 17 0 00 000617' IFN EXPAND,< PUSHJ P,XPAND7> 3309 IFE EXPAND,< JRST SFULLC> 3310 002003' 275 04 0 00 000002 SUBI S,2 ;UPDATE UNDEF. TABLE POINTER 3311 002004' 262 06 0 04 000002 POP B,2(S) 3312 002005' 262 06 0 04 000001 POP B,1(S) 3313 002006' 250 01 0 00 004007' EXCH N,NAMPTR ;GET NAME POINTER, SAVE N 3314 002007' 550 11 0 00 000001 HRRZ V,N ;POINTER TO PREVIOUS NAME 3315 002010' 276 06 0 00 000011 SUBM B,V ;COMPUTE RELATIVE POSITIONS 3316 002011' 506 11 0 01 000002 HRLM V,2(N) ;STORE FORWARD POINTER 3317 002012' 550 01 0 00 000006 HRRZ N,B ;UPDATE NAME POINTER 3318 002013' 250 01 0 00 004007' EXCH N,NAMPTR ;SWAP BACK 3319 002014' 202 13 0 06 000001 NAME2: MOVEM C,1(B) ;STORE PROGRAM NAME 3320 002015' 552 05 0 06 000002 HRRZM R,2(B) ;STORE PROGRAM ORIGIN 3321 IFN SYMDSW, 3325 002016' 317 12 0 00 003737' CAMG W,COMSAV ;CHECK COMMON SIZE 3326 002017' 254 00 0 00 001130' IFE REENT, 3327 IFN REENT, 3330 002020' 334 13 0 00 003716' SKIPA C,COMM 3331 002021' 200 13 0 16 000001 ILC: MOVE C,1(A) ;NAME 3332 002022' 261 17 0 00 000013 PUSH P,C ;SAVE COMMON NAME 3333 002023' 265 16 0 00 003577' ERROR , 3334 002027' 262 17 0 00 000013 POP P,C 3335 002030' 260 17 0 00 003513' PUSHJ P,PRNAME 3336 002031' 336 00 0 00 005055' ILC1: SKIPN SBRNAM LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 45-1 LOADER MAC 24-MAR-75 15:43 PROGRAM NAME (BLOCK TYPE 6) 3337 002032' 254 00 0 00 002040' JRST ILC2 3338 002033' 265 16 0 00 003601' ERROR 0, 3339 002036' 200 13 0 00 005055' MOVE C,SBRNAM ;RECOVER SUBROUTINE NAME 3340 002037' 260 17 0 00 003513' PUSHJ P,PRNAME 3341 002040' 265 16 0 00 003601' ILC2: ERROR 0, 3342 002042' 254 00 0 00 000145' JRST LD2 3343 3344 002043' 603 00 0 00 000200 NAMERR: TLNE F,FULLSW ;IF NOT ENUF CORE 3345 002044' 254 00 0 00 001762' JRST NAME0 ;END BLOCK IS NEVER SEEN 3346 002045' 402 00 0 00 004162' SETZM DTIN ;CLEAR WRONG FILE NAME FOR MESSAGE 3347 002046' 265 16 0 00 003577' ERROR , 3348 002052' 254 00 0 00 002031' JRST ILC1 3349 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 46 LOADER MAC 24-MAR-75 15:43 PROGRAM NAME (BLOCK TYPE 6) 3350 ;COMPILER TYPE - DO SPECIAL FUNCTION FOR IT 3351 3352 002053' CMPLER: 3353 002053' 255 00 0 00 000000 JFCL ; 0 UNKNOWN 3354 002054' 260 17 0 00 002064' PUSHJ P,F40NAM ; 1 FORTRAN (F40) 3355 002055' 660 01 0 00 200001 TRO N,COBFL!VFLG ; 2 COBOL 3356 002056' 260 17 0 00 002067' PUSHJ P,ALGNAM ; 3 ALGOL-60 3357 002057' 660 01 0 00 040000 TRO N,NELFL ; 4 NELIAC 3358 002060' 660 01 0 00 020000 TRO N,PL1FL ; 5 PL/1 3359 002061' 660 01 0 00 010000 TRO N,BLIFL ; 6 BLISS-10 3360 002062' 660 01 0 00 004000 TRO N,SAIFL ; 7 SAIL 3361 002063' 260 17 0 00 002070' PUSHJ P,FORNAM ;10 FORTRAN-10 3362 ;11 MACRO 3363 ;12 FAIL 3364 000011 CMPLEN==.-CMPLER 3365 3366 3367 3368 002064' 602 01 0 00 002000 F40NAM: TRNE N,FORFL ;CANNOT MIX OLD & NEW 3369 002065' 254 00 0 00 002116' JRST F40ERR 3370 002066' 660 01 0 00 400001 TRO N,F4FL!VFLG ;SET FLAGS 3371 002067' IFE ALGSW, 3372 002067' 263 17 0 00 000000 POPJ P, 3373 3374 002070' 602 01 0 00 400000 FORNAM: TRNE N,F4FL ;CANNOT MIX OLD & NEW 3375 002071' 254 00 0 00 002116' JRST F40ERR 3376 002072' 660 01 0 00 002001 TRO N,FORFL!VFLG 3377 002073' 337 00 0 00 004145' IFN FORSW, 3379 002075' 510 11 0 00 000011 HLLZ V,V ;SEE IF ANY CPU BITS 3380 002076' 241 11 0 00 000006 ROT V,6 ;PUT IN BITS 30-35 3381 002077' 303 11 0 00 000002 CAILE V,2 ;ONLY 0, 1, 2 VALID 3382 002100' 400 11 0 00 000000 SETZ V, ;DEFAULT 3383 002101' 260 17 1 11 006344' PUSHJ P,@[EXP CPOPJ,FORNMA,FORNMI](V) 3384 IFN REENT, ;YES 3387 002102' 660 00 0 00 000002 TRO F,NOHI ;DEFAULT IS ONE SEG 3388 002103' 660 01 0 00 001000 TRO N,F10TFL ;BUT ONLY FOR THIS FILE 3389 002104' 552 00 0 00 004145' IFN FORSW, ;SET FOROTS BY DEFAULT (FORLIB .GT. 0) 3390 002105' 263 17 0 00 000000 POPJ P, 3391 3392 002106' 602 01 0 00 000200 FORNMI: TRNE N,KA10FL ;CANNOT MIX KA & KI 3393 002107' 254 00 0 00 002127' JRST FORERR 3394 002110' 660 01 0 00 000400 TRO N,KI10FL ;SET FLAGS 3395 002111' 263 17 0 00 000000 POPJ P, 3396 3397 002112' 602 01 0 00 000200 FORNMA: TRNE N,KA10FL ;CANNOT MIX KA & KI 3398 002113' 254 00 0 00 002127' JRST FORERR 3399 002114' 661 01 0 00 000200 TLO N,KA10FL 3400 002115' 263 17 0 00 000000 POPJ P, 3401 3402 002116' 265 16 0 00 003577' F40ERR: ERROR , 3403 002127' 265 16 0 00 003577' FORERR: ERROR , 3404 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 46-1 LOADER MAC 24-MAR-75 15:43 PROGRAM NAME (BLOCK TYPE 6) 3405 IFN ALGSW,< 3406 ALGNAM: TRO N,ALGFL!VFLG ;SET ALGOL SEEN, AND DEFAULT REENT OPSYS 3407 JUMPE W,CPOPJ ;NOT ALGOL MAIN PROGRAM 3408 IFN NAMESW,< 3409 PUSH P,C ;SAVE NAME 3410 MOVE W,C ;EXPECTS NAME IN W 3411 PUSHJ P,LDNAM ;USE THIS A PROGRAM NAME 3412 POP P,C ;RESTORE C> 3413 SETZ W, ;CLEAR COMMON SIZE, ONLY A MARKER 3414 POPJ P, ;RETURN 3415 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 47 LOADER MAC 24-MAR-75 15:43 STARTING ADDRESS (BLOCK TYPE 7) 3416 SUBTTL STARTING ADDRESS (BLOCK TYPE 7) 3417 3418 3419 002141' 260 17 0 00 003061' START: PUSHJ P,PRWORD ;READ TWO DATA WORDS 3420 002142' 607 01 0 00 000002 TLNN N,ISAFLG ;SKIP IF IGNORE SA FLAG ON 3421 002143' 552 13 0 00 003734' HRRZM C,STADDR ;SET STARTING ADDRESS 3422 IFN NAMESW,< 3423 MOVE W,DTIN ;PICK UP BINARY FILE NAME 3424 TLNN N,ISAFLG 3425 MOVEM W,PRGNAM ;SAVE IT 3426 MOVE W,NAMPTR ;GET NAME POINTER 3427 MOVE W,1(W) ;SET UP NAME OF THIS PROGRAM 3428 IFE ALGSW, 3429 IFN ALGSW, 3430 PUSHJ P,LDNAM> 3431 002144' 260 17 0 00 003061' PUSHJ P,PRWORD ;**OBSCURE RETURN TO LOAD1** 3432 3433 IFN REENT,< 3434 RESTRX: TLNE F,HIPROG 3435 SKIPA X,HIGHX 3436 MOVE X,LOWX 3437 POPJ P,> 3438 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 48 LOADER MAC 24-MAR-75 15:43 ONE PASS LOCAL DEFINITION (BLOCK TYPE 10) 3439 SUBTTL ONE PASS LOCAL DEFINITION (BLOCK TYPE 10) 3440 3441 ;PMP PATCH FOR LEFT HALF FIXUPS 3442 IFN FAILSW!B11SW!WFWSW,< 3443 002145' 315 11 0 00 004137' LOCDLH: IFN L, 3445 IFN REENT, 3448 IFN MONLOD, 3449 002147' 554 10 1 00 000002 HLRZ T,@X ;LOAD NEXT ADDRESS IN CHAIN 3450 002150' 506 12 1 00 000002 HRLM W,@X ;INSERT VALUE INTO PROGRAM 3451 002151' 200 11 0 00 000010 MOVE V,T 3452 002152' 326 11 0 00 002145' LOCDLF: JUMPN V,LOCDLH ;JUMP IF NOT LAST ADDR. IN CHAIN 3453 002153' 263 17 0 00 000000 POPJ P,> 3454 IFN FAILSW,< 3455 LOCDLI: PUSHJ P,LOCDLF 3456 IFN REENT, 3457 AOSA LFTHSW ;TURN OFF LEFT HALF FIX SW (WAS -1) AND SKIP 3458 LOCDLG: SETOM LFTHSW ;TURN ON LEFT HALF FIX SW> 3459 ;END PMP PATCH 3460 002154' 260 17 0 00 003067' LOCD: PUSHJ P,RWORD ;READ ONE DATA WORD 3461 002155' 554 11 0 00 000012 HLRZ V,W ;STORAGE POINTER IN LEFT HALF 3462 IFN FAILSW,< 3463 SKIPE LFTHSW ;LEFT HALF CHAINED? PMP 3464 JRST LOCDLI ;YES PMP 3465 CAMN W,[-1] ;LEFT HALF NEXT? PMP 3466 JRST LOCDLG ;YES, SET SWITCH PMP> 3467 002156' 260 17 0 00 001620' PUSHJ P,SYM4A ;LINK BACK REFERENCES 3468 IFN REENT, 3469 002157' 254 00 0 00 002154' JRST LOCD 3470 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 49 LOADER MAC 24-MAR-75 15:43 LVAR FIX-UP (BLOCK TYPE 13) 3471 SUBTTL LVAR FIX-UP (BLOCK TYPE 13) 3472 IFN WFWSW,< 3473 LVARB: PUSHJ P,PRWORD ;THE FIRST TWO WORDS IN THE BLOCK 3474 MOVEM W,VARLNG ;AR SPECIAL. SECOND IS LENGTH OF VARIABLES 3475 IFN REENT,< TLNE F,HIPROG 3476 MOVE C,LOWR ;USE LOW RELOC IF LOADING HI SEG> 3477 ;ELSE C HAS RELOC FOR THIS PROGRAM, USE IT 3478 HRRZM C,VARREL ;THIS IS LOCATION 0 OF VARIABLE AREA 3479 LVLP: PUSHJ P,PRWORD ;THINGS COME IN PAIRS 3480 TLNE C,200000 ;BIT ON IF SYMBOL TABLE FIXUP 3481 JRST LVSYM 3482 HLRZ V,W ;NO GET LOC FROM LEFTH HALF OF SECOND 3483 ADD W,VARREL ;AND RELOCATE VARIABLE 3484 TLNE C,400000 ;ON FOR LEFT HALF 3485 JRST [PUSHJ P,LOCDLF ;TAKE CARE OF IT 3486 IFN REENT,< JRST LVLCOM] ;RESET X> 3487 IFE REENT,< JRST LVLP] ;MUST BE LOW SEG X OK> 3488 PUSHJ P,SYM4A ;RIGHT HALF CHAIN 3489 IFN REENT, 3490 JRST LVLP 3491 LVSYM: MOVE V,B ;GET SYMBOL TABLE POINTER 3492 ADD C,VARREL ;VALUE IS IN FIRST WORD FOR THESE 3493 TLZ W,740000 ;MAKE SURE NO BITS ON 3494 ADDI V,2 ;CORRECT POINTER TO SYMBOL TABLE 3495 SRSYM: MOVE A,-1(V) ;GET A NAME 3496 TLZN A,740000 ;CHECK FOR PROGRAM NAME 3497 JRST LVLP ;LEAVE (PROBABLY A NON-LOADED LOCAL) 3498 CAMN A,W ;IS IT THE RIGHT ONE?? 3499 JRST LVSYMD ;YES 3500 ADD V,SE3 ;CHECK NEXT ONE 3501 JUMPL V,SRSYM ;BUT ONLY IF SOME ARE THERE 3502 JRST LVLP ;GIVE UP 3503 LVSYMD: TLNE C,400000 ;WHICH HALF?? 3504 JRST LVSYML ;LEFT 3505 ADD C,(V) ;ADDITIVE FIXUP 3506 HRRM C,(V) 3507 MOVSI D,200000 ;DEFERED BITS 3508 LVSM1: PUSHJ P,COMSFX ;GO TAKE CARE OF IT 3509 JRST LVLP ;NEXT PLEASE 3510 LVSYML: HRLZS C 3511 ADDM C,(V) ;WE DON'T HAVE TO WORRY ABOUT OVERFLOW HERE 3512 MOVSI D,400000 ;LEFT DEFERED BITS 3513 JRST LVSM1 ;GO WORRY ABOUT DEFERED INTERNALS> 3514 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 50 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3515 SUBTTL FAIL LOADER 3516 ;ONLY LIST IF POLISH FIXUPS REQUIRED 3517 XLIST 3518 IFN FAILSW!B11SW, 3519 REPEAT 0, 3595 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 52 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3596 IFN FAILSW!B11SW,< 3597 ;POLISH FIXUPS 3598 3599 002160' 332 00 0 00 003735' PDLOV: SKIPE POLSW ;PDL OV ARE WE DOING POLISH? 3600 002161' 254 00 0 00 002167' JRST COMPOL ;YES 3601 002162' 265 16 0 00 003577' ERROR , 3602 002166' 254 00 0 00 000145' JRST LD2 3603 002167' 265 16 0 00 003577' COMPOL: ERROR , 3604 002174' 254 00 0 00 000145' JRST LD2 3605 3606 3607 ;READ A HALF WORD AT A TIME 3608 3609 002175' 667 01 0 00 400000 RDHLF: TLON N,HSW ;WHICH HALF 3610 002176' 254 00 0 00 002204' JRST NORD 3611 002177' 260 17 0 00 003067' PUSHJ P,RWORD ;GET A NEW ONE 3612 002200' 621 01 0 00 400000 TLZ N,HSW ;SET TO READ OTEHR HALF 3613 002201' 202 12 0 00 004052' MOVEM W,SVHWD ;SAVE IT 3614 002202' 557 00 0 00 000012 HLRZS W ;GET LEFT HALF 3615 002203' 263 17 0 00 000000 POPJ P, ;AND RETURN 3616 002204' 550 12 0 00 004052' NORD: HRRZ W,SVHWD ;GET RIGHT HALF 3617 002205' 263 17 0 00 000000 POPJ P, ;AND RETURN 3618 3619 3620 002206' 200 07 0 00 006347' POLFIX: MOVE D,[IOWD PPDL,PPDB] ;SET UP THE POLISH PUSHDOWN LIST 3621 002207' 201 11 0 00 000100 MOVEI V,100 ;IN CASE OF ON OPERATORS 3622 002210' 202 11 0 00 004053' MOVEM V,SVSAT 3623 002211' 476 00 0 00 003735' SETOM POLSW ;WE ARE DOING POLISH 3624 002212' 661 01 0 00 400000 TLO N,HSW ;FIX TO READ A WORD THE FIRST TIME 3625 002213' 476 00 0 00 004045' SETOM GLBCNT ;NUMBER OF GLOBALS IN THIS FIXUP 3626 002214' 476 00 0 00 004051' SETOM OPNUM ;NUMBER OF OPERANDS AND OPERATORS THIS FIXUP 3627 002215' 261 07 0 00 006350' PUSH D,[15] ;FAKE OPERATOR SO STORE WILL NOT HACK 3628 3629 002216' 260 17 0 00 002175' RPOL: PUSHJ P,RDHLF ;GET A HLAF WORD 3630 002217' 602 12 0 00 400000 TRNE W,400000 ;IS IT A STORE OP? 3631 002220' 254 00 0 00 002342' JRST STOROP ;YES, DO IT 3632 IFN WFWSW, 3637 002221' 305 12 0 00 000003 CAIGE W,3 ;0,1,2 ARE OPERANDS 3638 002222' 254 00 0 00 002231' JRST OPND 3639 002223' 303 12 0 00 000014 CAILE W,14 ;14 IS HIGHEST OPERATOR 3640 002224' 254 00 0 00 001302' JRST LOAD4A ;ILL FORMAT 3641 002225' 261 07 0 00 000012 PUSH D,W ;SAVE OPERATOR IN STACK 3642 002226' 200 11 0 12 002425' MOVE V,DESTB-3(W) ;GET NUMBER OF OPERANDS NEEDED 3643 002227' 202 11 0 00 004053' MOVEM V,SVSAT ;ALSO SAVE IT 3644 002230' 254 00 0 00 002216' JRST RPOL ;BACK FOR MORE 3645 3646 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 53 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3647 ;HANDLE OPERANDS. THIS GETS COMPLICATED BECAUSE OF THE PRESENCE OF 3648 ;GLOBAL REQUESTS 3649 3650 002231' 200 16 0 00 000012 OPND: MOVE A,W ;GET THE OPERAND TYPE HERE 3651 002232' 260 17 0 00 002175' PUSHJ P,RDHLF ;THIS IS AT LEAST PART OF THE OPERAND 3652 002233' 200 13 0 00 000012 MOVE C,W ;GET IT INTO C 3653 002234' 322 16 0 00 002255' JUMPE A,HLFOP ;0 IS HALF-WORD OPERAND 3654 002235' 260 17 0 00 002175' PUSHJ P,RDHLF ;NEED FULL WORD, GET SECOND HALF 3655 002236' 504 13 0 00 000012 HRL C,W ;GET HALF IN RIGHT PLACE 3656 002237' 207 00 0 00 000013 MOVSS C ;WELL ALMOST RIGHT 3657 002240' 362 16 0 00 002255' SOJE A,HLFOP ;1 IS FULL WORD, 2 IS GLOBAL REQUEST 3658 002241' 260 17 0 00 003045' PUSHJ P,SDEF ;SEE IF IT IS ALREADY DEFINED 3659 JRST [MOVE C,2(A) ;YES, WE WIN 3660 002242' 254 00 0 00 006351' JRST HLFOP] 3661 002243' 356 00 0 00 004045' AOSN GLBCNT ;NO, INCREMENT NUMBER OF GLOBALS THIS FIXUP 3662 002244' 350 00 0 00 004047' AOS HEADNM ;INCREMENT FIXUP NUMBER IF FIRST GLOBAL 3663 002245' 350 12 0 00 004051' AOS W,OPNUM ;GET AN OPERAND NUMBER 3664 002246' 242 12 0 00 000005 LSH W,5 ;SPACE FOR TYPE 3665 002247' 435 12 0 00 000002 IORI W,2 ;TYPE 2 IS GLOBAL 3666 002250' 504 12 0 00 004047' HRL W,HEADNM ;GET FIXUP NUMBER 3667 002251' 260 17 0 00 001475' PUSHJ P,SYM3X2 ;AND PUT INTO UDEFINED AREA ALONG WITH NAME 3668 002252' 200 13 0 00 000012 MOVE C,W ;ALSO PUT THAT PART OF THE FIXUP IN 3669 002253' 260 17 0 00 001475' PUSHJ P,SYM3X2 3670 002254' 334 16 0 00 006353' SKIPA A,[400000] ;SET UP GLOBAL FLAG 3671 002255' 201 16 0 00 000000 HLFOP: MOVEI A,0 ;VALUE OPERAND FLAG 3672 002256' 361 11 0 00 002263' HLFOP1: SOJL V,CSAT ;ENOUGH OPERANDS SEEN? 3673 002257' 261 07 0 00 000013 PUSH D,C ;NO, SAVE VALUE(OR GLOBAL NAME) 3674 002260' 505 16 0 00 400000 HRLI A,400000 ;PUT IN A VALUE MARKER 3675 002261' 261 07 0 00 000016 PUSH D,A ;TO THE STACK 3676 002262' 254 00 0 00 002216' JRST RPOL ;GET MORE POLISH 3677 3678 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 54 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3679 ;HAVE ENOUGH OPERANDS FOR THE CURRENT OPERATOR 3680 3681 002263' 553 00 0 00 000016 CSAT: HRRZS A ;KEEP ONLY THE GLOBAL-VALUE HALF 3682 002264' 336 00 0 00 004053' SKIPN SVSAT ;IS IT UNARY 3683 002265' 254 00 0 00 002271' JRST UNOP ;YES, NO NEED TO GET 2ND OPERAND 3684 002266' 504 16 0 07 000000 HRL A,(D) ;GET GLOBAL VALUE MARKER FOR 2ND OP 3685 002267' 262 07 0 00 000012 POP D,W 3686 002270' 262 07 0 00 000012 POP D,W ;VALUE OR GLOBAL NAME 3687 002271' 262 07 0 00 000011 UNOP: POP D,V ;OPERATOR 3688 002272' 326 16 0 00 002304' JUMPN A,GLOB ;IF EITHER IS A GLOBAL HANDLE SPECIALLY 3689 002273' 256 00 0 11 002440' XCT OPTAB-3(V) ;IF BOTH VALUES JUST XCT 3690 002274' 200 13 0 00 000012 MOVE C,W ;GET THE CURRENT VALUE 3691 002275' 337 11 0 07 000000 SETSAT: SKIPG V,(D) ;IS THERE A VALUE IN THE STACK 3692 002276' 200 11 0 07 777776 MOVE V,-2(D) ;YES, THIS MUST BE THE OPERATOR 3693 002277' 200 11 0 11 002425' MOVE V,DESTB-3(V) ;GET NUMBER OF OPERANDS NEEDED 3694 002300' 202 11 0 00 004053' MOVEM V,SVSAT ;SAVE IT HERE 3695 002301' 337 00 0 07 000000 SKIPG (D) ;WAS THERE AN OPERAND 3696 002302' 275 11 0 00 000001 SUBI V,1 ;HAVE 1 OPERAND ALREADY 3697 002303' 254 00 0 00 002256' JRST HLFOP1 ;GO SEE WHAT WE SHOULD DO NOW 3698 3699 ;HANDLE GLOBALS 3700 002304' 602 16 0 00 777777 GLOB: TRNE A,-1 ;IS IT IN RIGHT HALF 3701 002305' 254 00 0 00 002316' JRST TLHG ;NO, NEED TO PUT THIS VALUE INTO THE FIXUP LIST 3702 002306' 261 17 0 00 000012 PUSH P,W ;SAVE FOR A WHILE 3703 002307' 200 12 0 00 000013 MOVE W,C ;THE VALUE 3704 002310' 350 13 0 00 004051' AOS C,OPNUM ;GET AN OPERAND NUMBER 3705 002311' 242 13 0 00 000005 LSH C,5 ;AND PUT IN TYPE 3706 002312' 435 13 0 00 000002 IORI C,2 ;VALUE TYPE 3707 002313' 504 13 0 00 004047' HRL C,HEADNM ;THE FIXUP NUMBER 3708 002314' 260 17 0 00 001475' PUSHJ P,SYM3X2 3709 002315' 262 17 0 00 000012 POP P,W ;RETRIEVE THE OTHER VALUE 3710 002316' 332 00 0 00 004053' TLHG: SKIPE SVSAT ;WAS THIS A UNARY OPERATOR 3711 002317' 603 16 0 00 777777 TLNE A,-1 ;WAS THERE A GLOBAL IN LEFT HALF 3712 002320' 254 00 0 00 002331' JRST GLSET 3713 002321' 261 17 0 00 000013 PUSH P,C ;SAVE THE FIRST OPERAND 3714 002322' 350 13 0 00 004051' AOS C,OPNUM ;SEE ABOVE 3715 002323' 242 13 0 00 000005 LSH C,5 3716 002324' 435 13 0 00 000002 IORI C,2 3717 002325' 504 13 0 00 004047' HRL C,HEADNM 3718 002326' 260 17 0 00 001475' PUSHJ P,SYM3X2 3719 002327' 200 12 0 00 000013 MOVE W,C 3720 002330' 262 17 0 00 000013 POP P,C 3721 3722 002331' 250 13 0 00 000012 GLSET: EXCH C,W ;GET THEM IN THE OTHER ORDER 3723 002332' 504 12 0 00 000013 HRL W,C ;SET UP THE OPERATOR LINK 3724 002333' 350 13 0 00 004051' AOS C,OPNUM 3725 002334' 242 13 0 00 000005 LSH C,5 ;SPACE FOR THYPE 3726 002335' 434 13 0 00 000011 IOR C,V ;THE OPERATOR 3727 002336' 504 13 0 00 004047' HRL C,HEADNM 3728 002337' 260 17 0 00 001475' PUSHJ P,SYM3X2 ;INTO THE UNDEF LIST 3729 002340' 201 16 0 00 400000 MOVEI A,400000 ;SET UP AS A GLOBAL VALUE 3730 002341' 254 00 0 00 002275' JRST SETSAT ;AND SET UP FOR NEXT OPERATOR 3731 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 55 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3732 ;FINALLY WE GET TO STORE THIS MESS 3733 3734 002342' 200 10 0 07 777776 STOROP: MOVE T,-2(D) ;THIS SHOULD BE THE FAKE OPERATOR 3735 002343' 302 10 0 00 000015 CAIE T,15 ;IS IT 3736 002344' 254 00 0 00 001302' JRST LOAD4A ;NO, ILL FORMAT 3737 002345' 550 10 0 07 000000 HRRZ T,(D) ;GET THE VALUE TYPE 3738 002346' 326 10 0 00 002376' JUMPN T,GLSTR ;AND TREAT GLOBALS SPECIAL 3739 002347' 200 16 0 00 000012 MOVE A,W ;THE TYPE OF STORE OPERATOR 3740 002350' 305 16 0 00 777775 CAIGE A,-3 3741 002351' 260 17 0 00 002464' PUSHJ P,FSYMT 3742 002352' 260 17 0 00 002175' PUSHJ P,RDHLF ;GET THE ADDRESS 3743 002353' 200 11 0 00 000012 MOVE V,W ;SET UP FOR FIXUPS 3744 002354' 262 07 0 00 000012 POP D,W ;GET THE VALUE 3745 002355' 262 07 0 00 000012 POP D,W ;AFTER IGNORING THE FLAG 3746 002356' 260 17 1 16 002375' PUSHJ P,@STRTAB+6(A) ;CALL THE CORRECT FIXUP ROUTINE 3747 002357' 402 00 0 00 003735' COMSTR: SETZM POLSW ;ALL DONE WITH POLISH 3748 IFN REENT, 3749 002360' 200 10 0 00 004051' MOVE T,OPNUM ;CHECK ON SIZES 3750 002361' 200 11 0 00 004047' MOVE V,HEADNM 3751 002362' 307 11 0 00 477777 CAIG V,477777 3752 002363' 303 10 0 00 017777 CAILE T,17777 3753 002364' 254 00 0 00 002167' JRST COMPOL ;TOO BIG, GIVE ERROR 3754 002365' 260 17 0 00 003067' PUSHJ P,RWORD ;THIS SHOULD GET US OUT (I.E RUN OUT COUNT) 3755 002366' 254 00 0 00 001302' JRST LOAD4A ;IF NOT, SOMETHING IS WRONG 3756 3757 002367' 000000 002641' STRTAB: EXP ALSYM,LFSYM,RHSYM,ALSTR,LOCDLF,SYM4A,FAKESY 3758 002370' 000000 002520' 3759 002371' 000000 002524' 3760 002372' 000000 002426' 3761 002373' 000000 002152' 3762 002374' 000000 001620' 3763 002375' 000000 002530' 3764 3765 002376' 200 16 0 00 000012 GLSTR: MOVE A,W 3766 002377' 305 16 0 00 777775 CAIGE A,-3 3767 002400' 260 17 0 00 002464' PUSHJ P,FSYMT 3768 002401' 260 17 0 00 002175' PUSHJ P,RDHLF ;GET THE STORE LOCATION 3769 002402' 201 16 0 16 000023 MOVEI A,23(A) 3770 002403' 262 07 0 00 000011 POP D,V ;GET VALUE 3771 002404' 262 07 0 00 000011 POP D,V 3772 002405' 506 11 0 00 000012 HRLM V,W ;SET UP STORAGE ELEMENT 3773 002406' 350 13 0 00 004051' AOS C,OPNUM 3774 002407' 242 13 0 00 000005 LSH C,5 3775 002410' 434 13 0 00 000016 IOR C,A 3776 002411' 504 13 0 00 004047' HRL C,HEADNM 3777 002412' 260 17 0 00 001475' PUSHJ P,SYM3X2 3778 002413' 200 12 0 00 000013 MOVE W,C ;NOW SET UP THE HEADER 3779 002414' 350 11 0 00 004045' AOS V,GLBCNT ;WHICH HAS NUMBER OF GLOBALS 3780 002415' 506 11 0 00 000012 HRLM V,W 3781 002416' 550 13 0 00 004047' HRRZ C,HEADNM 3782 002417' 260 17 0 00 001475' PUSHJ P,SYM3X2 3783 002420' 254 00 0 00 002357' JRST COMSTR ;AND FINISH 3784 3785 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 56 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3786 002421' 315 11 0 00 004137' ALSTR1: IFN L, 3788 IFN REENT, 3791 IFN MONLOD, 3792 002423' 550 10 1 00 000002 HRRZ T,@X 3793 002424' 202 12 1 00 000002 MOVEM W,@X ;FULL WORD FIXUPS 3794 002425' 200 11 0 00 000010 MOVE V,T 3795 002426' 326 11 0 00 002421' ALSTR: JUMPN V,ALSTR1 3796 002427' 263 17 0 00 000000 POPJ P, 3797 002430' 000000 000001 DESTB: EXP 1,1,1,1,1,1,1,1,0,0,100 3798 002431' 000000 000001 3799 002432' 000000 000001 3800 002433' 000000 000001 3801 002434' 000000 000001 3802 002435' 000000 000001 3803 002436' 000000 000001 3804 002437' 000000 000001 3805 002440' 000000 000000 3806 002441' 000000 000000 3807 002442' 000000 000100 3808 3809 002443' 270 12 0 00 000013 OPTAB: ADD W,C 3810 002444' 274 12 0 00 000013 SUB W,C 3811 002445' 220 12 0 00 000013 IMUL W,C 3812 002446' 230 12 0 00 000013 IDIV W,C 3813 002447' 404 12 0 00 000013 AND W,C 3814 002450' 434 12 0 00 000013 IOR W,C 3815 002451' 242 12 0 13 000000 LSH W,(C) 3816 002452' 430 12 0 00 000013 XOR W,C 3817 002453' 460 12 0 00 000013 SETCM W,C 3818 002454' 210 12 0 00 000013 MOVN W,C 3819 REPEAT 7, 3820 002455' 254 00 0 00 002631' 3821 002456' 254 00 0 00 002631' 3822 002457' 254 00 0 00 002631' 3823 002460' 254 00 0 00 002631' 3824 002461' 254 00 0 00 002631' 3825 002462' 254 00 0 00 002631' 3826 002463' 254 00 0 00 002631' 3827 3828 3829 002464' 260 17 0 00 002175' FSYMT: PUSHJ P,RDHLF ;FIRST HALF OF SYMBOL 3830 002465' 504 11 0 00 000012 HRL V,W 3831 002466' 260 17 0 00 002175' PUSHJ P,RDHLF 3832 002467' 540 11 0 00 000012 HRR V,W 3833 002470' 261 07 0 00 000016 PUSH D,A ;SAVE STORE TYPE 3834 002471' 260 17 0 00 002175' PUSHJ P,RDHLF ;GET BLOCK NAME 3835 002472' 504 13 0 00 000012 HRL C,W 3836 002473' 260 17 0 00 002175' PUSHJ P,RDHLF 3837 002474' 540 13 0 00 000012 HRR C,W 3838 002475' 661 13 0 00 140000 TLO C,140000 ;MAKE BLOCK NAME 3839 002476' 260 17 0 00 003045' PUSHJ P,SDEF ;FIND IT 3840 002477' 316 16 0 00 000006 CAMN A,B LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 56-1 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3841 002500' 254 00 0 00 002507' JRST FNOLOC ;MUST NOT BE LOADING LOCALS 3842 002501' 135 13 0 00 006354' FSLP: LDB C,[POINT 32,-1(A),35] ;GET NAME 3843 002502' 316 13 0 00 000011 CAMN C,V 3844 002503' 254 00 0 00 002513' JRST FNDSYM 3845 002504' 274 16 0 00 003714' SUB A,SE3 3846 002505' 312 16 0 00 000006 CAME A,B ;ALL DONE? 3847 002506' 254 00 0 00 002501' JRST FSLP ;NO 3848 002507' 262 07 0 00 000016 FNOLOC: POP D,A 3849 002510' 201 16 0 00 000000 MOVEI A,0 ;SET FOR A FAKE FIXUP 3850 002511' 350 00 0 17 000000 AOS (P) 3851 002512' 263 17 0 00 000000 POPJ P, 3852 002513' 201 12 0 16 000000 FNDSYM: MOVEI W,(A) ;LOC OF SYMBOL 3853 002514' 274 12 0 00 004135' SUB W,HISTRT 3854 002515' 262 07 0 00 000016 POP D,A 3855 002516' 350 00 0 17 000000 AOS (P) 3856 002517' 263 17 0 00 000000 POPJ P, 3857 3858 002520' 270 11 0 00 004135' LFSYM: ADD V,HISTRT 3859 002521' 506 12 0 11 000000 HRLM W,(V) 3860 002522' 205 07 0 00 400000 MOVSI D,400000 ;LEFT HALF 3861 002523' 254 00 0 00 002644' JRST COMSFX 3862 002524' 270 11 0 00 004135' RHSYM: ADD V,HISTRT 3863 002525' 542 12 0 11 000000 HRRM W,(V) 3864 002526' 205 07 0 00 200000 MOVSI D,200000 3865 002527' 254 00 0 00 002644' JRST COMSFX 3866 002530' 263 17 0 00 000000 FAKESY: POPJ P, ;IGNORE 3867 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 57 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3868 002531' 261 17 0 00 000013 POLSAT: PUSH P,C ;SAVE SYMBOL 3869 002532' 200 13 0 00 000011 MOVE C,V ;POINTER 3870 002533' 260 17 0 00 003043' PUSHJ P,SREQ ;GO FIND IT 3871 002534' 334 00 0 00 000000 SKIPA 3872 002535' 254 00 0 00 001302' JRST LOAD4A ;SOMETHING IS ROTTEN IN DENMARK 3873 002536' 202 12 0 16 000002 MOVEM W,2(A) ;STORE VALUE 3874 002537' 557 00 0 00 000013 HLRZS C ;NOW FIND HEADER 3875 002540' 260 17 0 00 003043' PUSHJ P,SREQ 3876 002541' 334 00 0 00 000000 SKIPA 3877 002542' 254 00 0 00 001302' JRST LOAD4A 3878 002543' 515 11 0 00 777777 HRLZI V,-1 ;AND DECREMENT COUNT 3879 002544' 273 11 0 16 000002 ADDB V,2(A) 3880 002545' 607 11 0 00 777777 TLNN V,-1 ;IS IT NOW 0 3881 002546' 254 00 0 00 002551' JRST PALSAT ;YES, GO DO POLISH 3882 002547' 262 17 0 00 000013 POP P,C ;RESTORE SYMBOL 3883 002550' 254 00 0 00 001444' JRST SYM2W1 ;AND RETURN 3884 3885 002551' 261 17 0 00 000012 PALSAT: PUSH P,W ;SAVE VALUE 3886 002552' 202 13 0 00 004046' MOVEM C,HDSAV ;SAVE THE HEADER NUMBER 3887 002553' 200 07 0 00 006347' MOVE D,[IOWD PPDL,PPDB] ;SET UP A PDL 3888 002554' 200 13 0 00 000011 MOVE C,V ;GET THE POINTER 3889 002555' 504 13 0 00 004046' HRL C,HDSAV ;AND THE FIXUP NUMBER 3890 002556' 260 17 0 00 001645' PUSHJ P,REMSYM ;REMOVE THE HEADER FORM EXISTANCE 3891 002557' 260 17 0 00 003043' PUSHJ P,SREQ ;GO FINE THE NEXT LINK 3892 002560' 334 00 0 00 000000 SKIPA 3893 002561' 254 00 0 00 001302' JRST LOAD4A ;LOSE 3894 002562' 405 13 0 00 000037 ANDI C,37 ;GET OPERATOR TYPE 3895 002563' 550 11 0 16 000002 HRRZ V,2(A) ;PLACE TO STORE 3896 002564' 261 07 0 00 000011 PUSH D,V 3897 002565' 261 07 0 00 006355' PUSH D,[XWD 400000,0] 3898 002566' 261 07 0 00 000013 PUSH D,C ;THIS HAD BETTER BE A STORE OR WE ARE IN TROUBLE 3899 002567' 554 13 0 16 000002 HLRZ C,2(A) ;GET POINTER TO POLISH CHAIN 3900 002570' 260 17 0 00 001645' PSAT1: PUSHJ P,REMSYM ;REMOVE SYMBOL 3901 3902 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 58 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3903 002571' 504 13 0 00 004046' PSAT2: HRL C,HDSAV ;GET FIXUP NUMBER 3904 002572' 260 17 0 00 003043' PUSHJ P,SREQ ;LOOK FOR IT 3905 002573' 334 00 0 00 000000 SKIPA 3906 002574' 254 00 0 00 001302' JRST LOAD4A 3907 002575' 405 13 0 00 000037 ANDI C,37 ;THE OPERATOR NUMBER 3908 002576' 306 13 0 00 000002 CAIN C,2 ;IS IT AN OPERAND? 3909 002577' 254 00 0 00 002610' JRST PSOPD ;YES, GO PROCESS 3910 002600' 261 07 0 00 000013 PUSH D,C ;YES STORE IT 3911 002601' 336 00 0 13 002425' SKIPN DESTB-3(C) ;IS IT UNARY 3912 002602' 254 00 0 00 002606' JRST PSUNOP ;YES 3913 002603' 554 13 0 16 000002 HLRZ C,2(A) ;GET FIRST OPERAND 3914 002604' 505 13 0 00 600000 HRLI C,600000 ;AND MARK AS VALUE 3915 002605' 261 07 0 00 000013 PUSH D,C 3916 002606' 550 13 0 16 000002 PSUNOP: HRRZ C,2(A) ;OTHER OPERAND 3917 002607' 254 00 0 00 002570' JRST PSAT1 ;AND AWAY WE GO 3918 3919 002610' 200 13 0 16 000002 PSOPD: MOVE C,2(A) ;THIS IS A VALUE 3920 002611' 260 17 0 00 001645' PUSHJ P,REMSYM ;GET RID OF THAT PART OF THE CHAIN 3921 002612' 337 11 0 07 000000 PSOPD1: SKIPG V,(D) ;IS THERE A VALUE IN THE STACK 3922 002613' 254 00 0 00 002620' JRST PSOPD2 ;YES, TAKE GOOD CARE OF IT 3923 002614' 262 07 0 00 000011 COMOP: POP D,V ;NO, GET THAT OPERATOR OUT OF THERE 3924 002615' 256 00 0 11 002440' XCT OPTAB-3(V) ;AND DO IT 3925 002616' 200 13 0 00 000012 MOVE C,W ;GET RESULT IN RIGHT PLACE 3926 002617' 254 00 0 00 002612' JRST PSOPD1 ;AND TRY FOR MORE 3927 002620' 603 11 0 00 200000 PSOPD2: TLNE V,200000 ;IS IT A POINTER 3928 002621' 254 00 0 00 002626' JRST DBLOP ;YES, NEEDS MORE WORK 3929 002622' 200 12 0 00 000013 MOVE W,C ;NO, ONE WE HAVE IS FIRST OPND, GET IT INTO W 3930 002623' 262 07 0 00 000013 POP D,C ;VALUE POINTER 3931 002624' 262 07 0 00 000013 POP D,C ;2ND OPERAND INTO C 3932 002625' 254 00 0 00 002614' JRST COMOP ;GO PROCESS OPERATOR 3933 3934 002626' 250 13 0 07 000000 DBLOP: EXCH C,(D) ;PUT VALUE IN STACK AND RETRIEV POINTER 3935 002627' 261 07 0 00 006355' PUSH D,[XWD 400000,0] ;MARK AS VALUE 3936 002630' 254 00 0 00 002571' JRST PSAT2 ;AND GO LOOK FOR MORE TROUBLE 3937 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 59 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3938 IFN FAILSW,< 3939 ;BLOCK TYPE 12 LINK 3940 LINK: PUSHJ P,PRWORD ;GET TWO WORDS 3941 JUMPLE C,ENDLNK ;THIS IS AN END OF LINK WORD 3942 CAILE C,20 ;IS IT IN RANGE? 3943 JRST LOAD4A 3944 HRRZ V,W ;GET THE ADDRESS 3945 IFN REENT,< 3946 CAMGE V,HVAL1 ;CHECK HISEG ADDRESS 3947 SKIPA X,LOWX ;LOW SEGMENT 3948 MOVE X,HIGHX ;HIGH SEGMENT BASE 3949 >;IF REENT 3950 IFN MONLOD, 3951 HRRZ W,LINKTB(C) ;GET CURRENT LINK 3952 IFN L,< CAML V,RINITL ;LOSE> 3953 HRRM W,@X ;PUT INTO CORE 3954 HRRM V,LINKTB(C) ;SAVE LINK FOR NEXT ONE 3955 IFN REENT,< 3956 PUSHJ P,RESTRX ;RESTORE X 3957 >;IF REENT 3958 JRST LINK ;GO BACK FOR MORE 3959 ENDLNK: MOVNS C ;GET ENTRY NUMBER 3960 JUMPE C,LOAD4A ;0 IS A LOSER 3961 CAILE C,20 ;CHECK RANGE 3962 JRST LOAD4A 3963 HRLM W,LINKTB(C) ;SAVE END OF LINK INFO 3964 JRST LINK ;MORE 3965 3966 > ;END OF IFN FAILSW 3967 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 60 LOADER MAC 24-MAR-75 15:43 FAIL LOADER 3968 002631' 200 12 0 00 000013 STRSAT: MOVE W,C ;GET VALUE TO STORE IN W 3969 002632' 200 13 0 00 000011 MOVE C,V ;GET OPERATOR HERE 3970 002633' 262 07 0 00 000011 POP D,V 3971 002634' 262 07 0 00 000011 POP D,V ;GET ADDRESS TO STORE 3972 002635' 260 17 1 13 002352' PUSHJ P,@STRTAB-15(C) 3973 IFN REENT, 3974 002636' 262 17 0 00 000012 POP P,W ;RESTORE THINGS 3975 002637' 262 17 0 00 000013 POP P,C 3976 002640' 254 00 0 00 001444' JRST SYM2W1 3977 3978 002641' 270 11 0 00 004135' ALSYM: ADD V,HISTRT 3979 002642' 202 12 0 11 000000 MOVEM W,(V) 3980 002643' 205 07 0 00 600000 MOVSI D,600000 3981 > 3982 LIST ;END OF FAILSW CODE 3983 IFN FAILSW!B11SW!WFWSW,< 3984 COMSFX: IFN REENT, 3986 002644' 254 00 0 00 001557' IFE REENT,> 3987 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 61 LOADER MAC 24-MAR-75 15:43 LIBRARY INDEX (BLOCK TYPE 14) 3988 SUBTTL LIBRARY INDEX (BLOCK TYPE 14) 3989 3990 COMMENT * DIRECT ACCESS LIBRARY SEARCH MODE 3991 INDEX WRITTEN BY FUDGE2.SEE DIDAL DOC (100-540-001-00) 3992 DESIGN AND CODING BY D.M.NIXON JUL-AUG 1970 3993 * 3994 3995 IFN DIDAL,< 3996 3997 002645' 262 17 0 00 004143' INDEX8: POP P,LSTBLK ;SET UP LSTBLK FOR NEXT PROG 3998 002646' 260 17 0 00 003700' PUSHJ P,WORD ;READ FIRST WORD 3999 002647' 554 16 0 00 000012 HLRZ A,W ;BLOCK TYPE ONLY 4000 002650' 302 16 0 00 000014 CAIE A,14 ;IS IT AN INDEX? 4001 002651' 254 00 0 00 002766' JRST INDEXE ;NO, ERROR 4002 002652' 254 00 0 00 002662' JRST INDEX9 ;DON'T SET FLAG AGAIN 4003 4004 002653' 660 00 0 00 000100 INDEX0: TRO F,XFLG ;SIGNAL INDEX IN CORE 4005 002654' 201 16 0 00 000001 MOVEI A,1 ;START ON BLOCK 1 (DSK) 4006 002655' 562 16 0 00 004143' HRROM A,LSTBLK ;BUT INDICATE AN INDEX 4007 002656' 200 16 0 00 003731' MOVE A,ILD1 ;INPUT DEVICE 4008 002657' 047 16 0 00 000004 DEVCHR A, 4009 002660' 603 16 0 00 000100 TLNE A,DTABIT ;IS IT A DTA? 4010 002661' 660 00 0 00 000400 TRO F,DTAFLG ;YES 4011 002662' 201 16 0 00 004654' INDEX9: MOVEI A,AUX+2 ;AUX BUFFER 4012 002663' 505 16 0 00 004400 HRLI A,4400 ;MAKE BYTE POINTER 4013 002664' 202 16 0 00 004155' MOVEM A,ABUF1 ;AND SAVE IT 4014 002665' 504 16 0 00 004160' HRL A,BUFR1 ;INPUT BUFFER 4015 002666' 251 16 0 00 005053' BLT A,AUX+201 ;STORE BLOCK 4016 002667' 660 00 0 00 000200 TRO F,LSTLOD ;AND FAKE LAST PROG READ 4017 002670' 134 10 0 00 004155' INDEX1: ILDB T,ABUF1 4018 002671' 321 10 0 00 002760' JUMPL T,INDEX3 ;END OF BLOCK IF NEGATIVE 4019 002672' 553 00 0 00 000010 HRRZS T ;WORD COUNT ONLY 4020 002673' 134 13 0 00 004155' INDEX2: ILDB C,ABUF1 ;GET NEXT SYMBOL 4021 002674' 661 13 0 00 040000 TLO C,040000 ; 4022 002675' 260 17 0 00 003043' PUSHJ P,SREQ ;SEARCH FOR IT 4023 002676' 364 10 0 00 002707' SOJA T,INDEX4 ;REQUEST MATCHES 4024 002677' 367 10 0 00 002673' SOJG T,INDEX2 ;KEEP TRYING 4025 002700' 134 10 0 00 004155' ILDB T,ABUF1 ;GET POINTER WORD 4026 002701' 626 00 0 00 000200 TRZN F,LSTLOD ;WAS LAST PROG LOADED? 4027 002702' 254 00 0 00 002670' JRST INDEX1 ;NO 4028 002703' 606 00 0 00 000400 TRNN F,DTAFLG ;ALWAYS SAVE IF DTA??? 4029 002704' 331 00 0 00 004143' SKIPL LSTBLK ;SKIP IF LAST BLOCK WAS AN INDEX 4030 002705' 202 10 0 00 004143' MOVEM T,LSTBLK ;SAVE POINTER FOR CALCULATIONS 4031 002706' 254 00 0 00 002670' JRST INDEX1 ;GET NEXT PROG LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 62 LOADER MAC 24-MAR-75 15:43 LIBRARY INDEX (BLOCK TYPE 14) 4032 002707' 272 10 0 00 004155' INDEX4: ADDM T,ABUF1 4033 002710' 134 16 0 00 004155' ILDB A,ABUF1 4034 002711' 261 17 0 00 000016 PUSH P,A ;SAVE THIS BLOCK 4035 002712' 662 00 0 00 000200 TROE F,LSTLOD ;DID WE LOAD LAST PROG? 4036 JRST [SKIPGE LSTBLK ;WAS LAST BLOCK AN INDEX? 4037 JRST NXTBLK ;YES, SO GET NEXT ONE 4038 MOVEM A,LSTBLK 4039 002713' 254 00 0 00 006356' JRST LOAD1] ;NEXT PROG IS ADJACENT 4040 002714' 550 10 0 00 004143' HRRZ T,LSTBLK ;GET LAST BLOCK NUMBER 4041 002715' 306 10 0 16 000000 CAIN T,(A) ;IN THIS BLOCK? 4042 002716' 254 00 0 00 002751' JRST THSBLK ;YES 4043 002717' 602 00 0 00 000400 NXTNDX: TRNE F,DTAFLG ;DIFFERENT TEST FOR DTA 4044 002720' 254 00 0 00 002735' JRST NXTDTA ;CHECK IF NEXT BUFFER IN CORE 4045 002721' 306 10 0 16 777777 CAIN T,-1(A) ;NEXT BLOCK? 4046 002722' 254 00 0 00 002742' JRST NXTBLK ;YES,JUST DO INPUT 4047 002723' 074 01 0 16 000000 INDEX5: USETI 1,(A) ;SET ON BLOCK 4048 002724' 047 01 0 00 000010 WAIT 1, ;LET I/O FINISH 4049 002725' 205 13 0 00 400000 MOVSI C,(1B0) ;CLEAR RING USE BIT IF ON 4050 002726' 550 10 0 00 004157' HRRZ T,BUFR 4051 002727' 436 13 0 00 004157' IORM C,BUFR ;SET UNUSED RING BIT (HELP OUT MONITOR) 4052 002730' 331 00 0 10 000000 SKIPL (T) 4053 002731' 254 00 0 00 002742' JRST NXTBLK ;ALL DONE NOW 4054 002732' 412 13 0 10 000000 ANDCAM C,(T) ;CLEAR USE BIT 4055 002733' 550 10 0 10 000000 HRRZ T,(T) ;GET NEXT BUFFER 4056 002734' 254 00 0 00 002730' JRST .-4 ;LOOP 4057 4058 002735' 047 01 0 00 000010 NXTDTA: WAIT 1, ;LET I/O RUN TO COMPLETION 4059 002736' 550 10 0 00 004157' HRRZ T,BUFR ;GET POINTER TO CURRENT BUFFER 4060 002737' 554 10 0 10 000001 HLRZ T,1(T) ;FIRST DATA WORD IS LINK 4061 002740' 302 10 0 16 000000 CAIE T,(A) ;IS IT BLOCK WE WANT? 4062 002741' 254 00 0 00 002723' JRST INDEX5 ;NO 4063 002742' 056 01 0 00 000000 NXTBLK: IN 1, 4064 002743' 254 00 0 00 002745' JRST NEWBLK ;IT IS NOW 4065 002744' 254 00 0 00 003706' JRST WORD3 ;EOF OR ERROR 4066 4067 002745' 200 16 0 17 000000 NEWBLK: MOVE A,(P) ;GET CURRENT BLOCK 4068 002746' 321 16 0 00 002645' JUMPL A,INDEX8 ;JUST READ AN INDEX 4069 002747' 557 00 0 00 000016 HLRZS A ;GET WORD COUNT 4070 002750' 254 00 0 00 002753' JRST INDEX6 ;WORD COUNT WILL BE CORRECT 4071 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 63 LOADER MAC 24-MAR-75 15:43 LIBRARY INDEX (BLOCK TYPE 14) 4072 002751' 274 16 0 00 004143' THSBLK: SUB A,LSTBLK ;GET WORD DIFFERENCE 4073 002752' 207 00 0 00 000016 MOVSS A ;INTO RIGHT HALF 4074 002753' 272 16 0 00 004160' INDEX6: ADDM A,BUFR1 4075 002754' 213 00 0 00 000016 MOVNS A 4076 002755' 272 16 0 00 004161' ADDM A,BUFR2 4077 002756' 262 17 0 00 004143' INDEX7: POP P,LSTBLK ;STORE THIS AS LAST BLOCK READ 4078 002757' 254 00 0 00 001241' JRST LOAD1 4079 4080 002760' 570 16 0 00 000010 INDEX3: HRRE A,T ;GET BLOCK # OF NEXT INDEX 4081 002761' 321 16 0 00 001201' JUMPL A,EOF ;FINISHED IF -1 4082 002762' 261 17 0 00 000010 PUSH P,T ;STACK THIS BLOCK 4083 002763' 550 10 0 00 004143' HRRZ T,LSTBLK ;GET LAST BLOCK 4084 002764' 254 00 0 00 002717' JRST NXTNDX ;CHECK IF NEXT BUFFER IN CORE 4085 4086 002765' 260 17 0 00 003704' INDEX: PUSHJ P,WORD2 ;READ FIRST WORD OF NEXT BUFFER 4087 002766' 622 00 0 00 000100 INDEXE: TRZE F,XFLG ;INDEX IN CORE? 4088 TTCALL 3,[ASCIZ /LIBRARY INDEX INCONSISTENT - CONTINUING 4089 002767' 051 03 0 00 006362' /] ;WARNING MESSAGE 4090 002770' 254 00 0 00 001243' JRST LOAD1A+1 ;AND CONTINUE 4091 > 4092 4093 IFE DIDAL, 4096 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 64 LOADER MAC 24-MAR-75 15:43 ALGOL OWN BLOCK (TYPE 15) 4097 SUBTTL ALGOL OWN BLOCK (TYPE 15) 4098 4099 IFN ALGSW,< 4100 ALGBLK: SKIPE OWNLNG ;FIRST TIME THIS PROG? 4101 JRST ALGB1 ;NO, JUST CHAINED SYMBOL INFO 4102 PUSHJ P,RWORD ;READ 3RD WORD 4103 IFN REENT, 4105 HLRZ V,W ;GET START OF OWN BLOCK 4106 IFN REENT, 4108 MOVEI C,(W) ;GET LENGTH OF OWN BLOCK 4109 MOVEM C,OWNLNG ;SAVE IT TO FIX RELOC AT END 4110 PUSHJ P,ALGB2 ;FIX AND CHECK PROG BREAK 4111 MOVEI W,(V) ;GET CURRENT OWN ADDRESS 4112 EXCH W,%OWN ;SAVE FOR NEXT TIME 4113 MOVEM W,@X ;STORE LAST OWN ADDRESS IN LEFT HALF 4114 HRLM C,@X ;LENGTH IN LEFT HALF 4115 IFN REENT, 4117 ALGB1: PUSHJ P,RWORD ;GET DATA WORD 4118 HLRZ V,W ;GET ADDRESS TO FIX UP 4119 ADD W,%OWN ;ADD IN ADDRESS OF OWN BLOCK 4120 PUSHJ P,SYM4A ;FIX UP CHAINED REQUEST 4121 JRST ALGB1 ;LOOP TIL DONE 4122 4123 ALGB2: ADDI H,(W) ;FIX PROG BREAK 4124 IFN REENT, 4126 CAILE H,1(S) ;SKIP IF SUFFICIENT CORE AVAILABLE 4127 IFN EXPAND, 4128 JRST FULLC 4129 IFN EXPAND,< JRST .+1]> 4130 POPJ P, 4131 4132 4133 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 65 LOADER MAC 24-MAR-75 15:43 SAIL BLOCK TYPES 16 AND 17 4134 SUBTTL SAIL BLOCK TYPES 16 AND 17 4135 4136 COMMENT * BLOCK TYPE 16 AND 17. SIXBIT FOR FIL,PPN,DEV 4137 IN THE BLOCK. SEARCH TABLE FOR ALREADY REQUESTED. IF NOT 4138 ENTER REQUEST. ORIGINAL CODE BY DCS REWRITTEN BY WFW* 4139 4140 IFN SAILSW,< 4141 LDPRG: MOVEI D,PRGFLS-1 ;SET UP SOMETHING WE CAN SEARCH WITH 4142 MOVE W,PRGPNT ;AND CURRENT POINTER 4143 PUSHJ P,LDSAV ;GO ENTER (WILL NOT RETURN IF RUNS OUT) 4144 MOVEM D,PRGPNT 4145 JRST LDPRG ;BACK FOR MORE 4146 LDLIB: MOVEI D,LIBFLS-1 4147 MOVE W,LIBPNT 4148 PUSHJ P,LDSAV 4149 MOVEM D,LIBPNT 4150 JRST LDLIB ;LOOKS JUST LIKE THE LAST ONE, DOESN'T IT 4151 4152 LDSAV: HRLI D,-RELLEN-1 ;GET AOBJN SET UP 4153 MOVEM W,LODPN2# ;SAV IT 4154 PUSHJ P,PRWORD ;GET FILE,PPN 4155 MOVE A,W ;SAVE ONE 4156 PUSHJ P,RWORD ;AND DEVICE 4157 FILSR: CAMN D,LODPN2 4158 JRST FENT ;HAVE GOTTEN THERE, ENTER FILE 4159 CAME C,PRGFIL(D) ;CHECK FOR MATCH 4160 JRST NOMT ;NOT FILE 4161 CAME A,PRGPPN(D) 4162 JRST NOMT ;NO PPN 4163 CAME W,PRGDEV(D) 4164 NOMT: AOBJN D,FILSR ;AND NOT DEVICE SHOULD ALWAYS JUMP 4165 MOVE D,LODPN2 4166 POPJ P, ;JUST RETURN CURRENT POINTER 4167 FENT: MOVE D,LODPN2 ;ENTER IT 4168 AOBJP D,WRONG ;THAT IS IF NOT TOO MANY 4169 MOVEM C,PRGFIL-1(D) ;HAVE ALREADY INDEXED 4170 MOVEM A,PRGPPN-1(D) ;HENCE THE -1 4171 MOVEM W,PRGDEV-1(D) 4172 POPJ P, 4173 WRONG: ERROR , 4174 JRST LD2 4175 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 66 LOADER MAC 24-MAR-75 15:43 COMMON ALLOCATION (BLOCK TYPE 20) 4176 SUBTTL COMMON ALLOCATION (BLOCK TYPE 20) 4177 4178 COMMENT * THIS BLOCK CONSISTS OF WORD PAIRS (SAME AS TYPE 2) 4179 FIRST WORD IS RADIX50 04,SYMBOL 4180 SECOND WORD IS 0,,COMMON LENGTH 4181 COMMON NAME MUST BE GLOBAL AND UNIQUE 4182 IF NOT ALREADY DEFINED LOADER DEFINES SYMBOL AND ALLOCATES 4183 SPACE. IF DEFINED LOADER CHECK FOR TRYING TO INCREASE COMMON 4184 SIZE, AND GIVES ERROR IF SO 4185 NOTE... COMMON BLOCKS MUST COME DEFORE ANY DATA BLOCKS 4186 IE. AFTER BLOCKS 4,6,3 BUT BEFORE 1,2,37,..5 4187 * 4188 4189 IFN K, 4190 IFE K,< 4191 002771' 260 17 0 00 003061' COMML: PUSHJ P,PRWORD ;GET WORD PAIR 4192 002772' 661 13 0 00 400000 TLO C,400000 ;TURN IT INTO 44,SYMBOL (FOR FORTRAN) 4193 002773' 661 01 0 00 000010 TLO N,F4SW ;INHIBITS MATCH WITH 04,SYMBOL 4194 002774' 260 17 0 00 003045' PUSHJ P,SDEF ;SEE IF ALREADY DEFINED 4195 002775' 254 00 0 00 003012' JRST COMMLD ;YES, JUST CHECK SIZE 4196 002776' 621 01 0 00 000010 TLZ N,F4SW ;CLEAR AGAIN 4197 IFN REENT, 4201 002777' 504 12 0 00 000005 HRL W,R ;CURRENT RELOCATION 4202 003000' 271 05 0 12 000000 ADDI R,(W) ;BUMP RELOCATION 4203 003001' 204 12 0 00 000012 MOVS W,W ;LENGTH,,START 4204 003002' 261 17 0 00 000012 PUSH P,W ;STORE COMMON VALUE 4205 003003' 553 00 0 00 000012 HRRZS W ;NORMAL SYMBOL ADDRESS 4206 003004' 621 13 0 00 400000 TLZ C,400000 ;BACK TO 04,SYMBOL 4207 003005' 260 17 0 00 001424' PUSHJ P,SYM1B ;DEFINE IT 4208 003006' 262 17 0 00 000012 POP P,W ;RESTORE VALUE 4209 003007' 661 13 0 00 400000 TLO C,400000 ;AND COMMON SYMBOL 4210 003010' 260 17 0 00 001424' PUSHJ P,SYM1B ;AND STORE IT ALSO 4211 IFN REENT, 4215 003011' 254 00 0 00 002771' JRST COMML ;GET NEXT SYMBOL 4216 4217 003012' 621 01 0 00 000010 COMMLD: TLZ N,F4SW ;CLEAR AGAIN 4218 003013' 554 13 0 16 000002 HLRZ C,2(A) ;PICK UP DEFINITION 4219 003014' 313 12 0 00 000013 CAMLE W,C ;CHECK SIZE 4220 003015' 254 00 0 00 002021' JRST ILC ;ILLEGAL 4221 003016' 254 00 0 00 002771' JRST COMML ;TRY NEXT 4222 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 67 LOADER MAC 24-MAR-75 15:43 SPARSE DATA (BLOCK TYPE 21) 4223 SUBTTL SPARSE DATA (BLOCK TYPE 21) 4224 4225 COMMENT * 4226 THIS BLOCK IS SIMILAR TO TYPE 1 DATA 4227 THE DATA WORDS ARE 4228 COUNT,,LOCATION 4229 DATA WORDS (COUNT NUMBER OF TIMES) 4230 COUNT,,LOCATION 4231 DATA WORDS 4232 ETC. 4233 4234 * 4235 4236 003017' 260 17 0 00 003067' SPDATA: PUSHJ P,RWORD ;READ BLOCK ORIGIN 4237 003020' 335 00 0 00 000012 SKIPGE W 4238 003021' 260 17 0 00 001333' PUSHJ P,PROGS ;SYMBOLIC IF 36 BITS 4239 003022' 554 13 0 00 000012 HLRZ C,W ;GET SUB BLOCK COUNT IN C 4240 003023' 553 00 0 00 000012 HRRZS W ;CLEAR IT 4241 003024' 550 11 0 00 000013 HRRZ V,C ;AND IN V (LENGTH WE NEED) 4242 003025' 270 11 0 00 000012 SPDTO: ADD V,W ;COMPUTE NEW PROG. BREAK 4243 IFN REENT, 4253 4254 IFN MONLOD, 4259 IFN REENT,< 4260 LOWSPD: SUB V,HIGHX ;RELOC FOR PROPER 4261 ADD V,LOWX ;LOADING OF LOW SEQMENT 4262 SUB W,HIGHX 4263 ADD W,LOWX 4264 > 4265 003026' 201 10 1 00 000002 SPDTLW: MOVEI T,@X 4266 003027' 317 03 0 00 000010 CAMG H,T ;COMPARE WITH PREV. PROG. BREAK 4267 003030' 200 03 0 00 000010 MOVE H,T 4268 003031' 603 00 0 00 000200 TLNE F,FULLSW 4269 003032' 254 00 0 00 001755' JRST FULLC ;NO ERROR MESSAGE 4270 IFN REENT, 4274 003033' 303 03 0 04 000001 CAILE H,1(S) ; SKIP IF SUFFICIENT CORE AVAILABLE 4275 IFN EXPAND, 4276 JRST FULLC 4277 IFN REENT,< TLNE F,HIPROG LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 67-1 LOADER MAC 24-MAR-75 15:43 SPARSE DATA (BLOCK TYPE 21) 4278 SUBI W,2000 ;HISEG LOADING LOW SEG> 4279 003034' 254 00 0 00 006373' IFN EXPAND,< JRST .-1]> 4280 003035' 200 11 0 00 000012 SPDT2: MOVE V,W 4281 003036' 260 17 0 00 003067' SPDT1: PUSHJ P,RWORD ;READ DATA WORD 4282 003037' 311 11 0 00 004137' IFN L, 4283 IFN MONLOD, 4284 003040' 202 12 1 00 000002 MOVEM W,@X ;STORE DATA WORD IN PROG. AT LLC 4285 IFN MONLOD, 4286 003041' 363 13 0 00 003017' SOJLE C,SPDATA ;SUB-BLOCK RUN OUT, REFILL IT 4287 003042' 344 11 0 00 003036' AOJA V,SPDT1 ;ADD ONE TO LOADER LOC. COUNTER 4288 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 68 LOADER MAC 24-MAR-75 15:43 TENEX ASSIGNMENT (BLOCK TYPE 100) 4289 SUBTTL TENEX ASSIGNMENT (BLOCK TYPE 100) 4290 4291 IFN TENEX,< 4292 ;IMPLEMENT THE SPECIAL BLOCK 100 REQUEST FOR ASSIGNING 4293 ; AND INCREMENTING OF EXTERNALS 4294 4295 ASGSYM: PUSHJ P,RWORD ;GET FIRST WORD 4296 MOVE V,W ;SAVE SYM2 4297 PUSHJ P,PRWORD ;GET SECOND AND THIRD WORDS 4298 TLO C,040000 ;MAKE INTO GLOBAL 4299 PUSHJ P,SDEF ;SEE IF DEFINED 4300 JRST ASGSY1 ;OK. IT IS 4301 PUSH P,PRQ ;IT'S NOT, GENERATE ERROR COMMENT 4302 PUSHJ P,PRNAME 4303 JSP A,ERRPT7 4304 SIXBIT /UNDEFINED ASSIGN IN #/ 4305 4306 ASGSY0: PUSHJ P,RWORD ;SHOULD RETURN TO LOAD1 4307 JRST ASGSY0 ;LOOP UNTIL IT DOES 4308 4309 ASGSY1: ADD W,2(A) ;INCREMENT VALUE 4310 EXCH W,2(A) ;SAVE NEW, GET OLD 4311 MOVE C,V ;GET SYM2 4312 TLO C,040000 ;MAKE INTO GLOBAL 4313 PUSHJ P,SYMPTQ ;AND CONTINUE AS FOR GLOBAL DEF 4314 JRST ASGSY0 ;AND RETURN 4315 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 69 LOADER MAC 24-MAR-75 15:43 SYMBOL TABLE SEARCH SUBROUTINES 4316 SUBTTL SYMBOL TABLE SEARCH SUBROUTINES 4317 4318 ; ENTERED WITH SYMBOL IN C 4319 ; RETURN IS WITH POINTER IN A IF MATCHING SYMBOL FOUND 4320 ; OTHERWISE, A SKIP ON RETURN OCCURS 4321 4322 003043' 325 04 0 00 005546' SREQ: JUMPGE S,CPOPJ1 ;JUMP IF NO UNDEF. SYMBOLS 4323 003044' 334 16 0 00 000004 SKIPA A,S ;LOAD REQUEST SEARCH POINTER 4324 003045' 200 16 0 00 000006 SDEF: MOVE A,B ;LOAD DEF. SYMBOL SEARCH POINTER 4325 003046' 316 13 0 16 000001 SDEF1: CAMN C,1(A) 4326 003047' 263 17 0 00 000000 POPJ P, ;SYMBOLS MATCH, RETURN 4327 003050' 603 01 0 00 000010 IFE K,< TLNE N,F4SW ;ARE WE IN FORTRAN? 4328 003051' 254 00 0 00 003056' JRST SDEF2 ;YES,JUST TRY NEXT SYMBOL> 4329 003052' 641 13 0 00 400000 TLC C,400000 ;MIGHT BE SUPPRESSED INTERNAL 4330 003053' 316 13 0 16 000001 CAMN C,1(A) ;WAS IT? 4331 JRST [TLC C,400000 ;BACK AS IT WAS 4332 IORM C,1(A) ;YES, SO ENSURE IT'S SUPPRESSED 4333 003054' 254 00 0 00 006376' POPJ P,] ;EXIT WITH SYMBOL FOUND 4334 003055' 641 13 0 00 400000 TLC C,400000 ;NO, TRY NEXT SYMBOL 4335 003056' 270 16 0 00 003714' SDEF2: ADD A,SE3 4336 003057' 321 16 0 00 003046' JUMPL A,SDEF1 4337 003060' 254 00 0 00 005546' IFE K,< JRST CPOPJ1 ;SYMBOL NOT FOUND SKIPS ON RETURN> 4338 IFN K,< 4339 CPOPJ1: AOS (P) 4340 POPJ P,> 4341 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 70 LOADER MAC 24-MAR-75 15:43 RELOCATION AND BLOCK INPUT 4342 SUBTTL RELOCATION AND BLOCK INPUT 4343 4344 003061' 260 17 0 00 003067' PRWORD: PUSHJ P,RWORD ;READ A WORD PAIR 4345 003062' 200 13 0 00 000012 MOVE C,W ;LOAD C WITH FIRST DATA WORD 4346 003063' 602 14 0 00 377777 TRNE E,377777 ;TEST FOR END OF BLOCK 4347 003064' 254 00 0 00 003071' JRST RWORD1 ;INPUT SECOND WORD OF PAIR 4348 003065' 201 12 0 00 000000 MOVEI W,0 ;NO SECOND WORD, ASSUME ZERO 4349 003066' 263 17 0 00 000000 POPJ P, 4350 4351 003067' 606 14 0 00 377777 RWORD: TRNN E,377777 ;TEST FOR END OF BLOCK 4352 003070' 254 00 0 00 001241' JRST LOAD1 ;RETURN TO LOAD THE NEXT BLOCK 4353 003071' 253 14 0 00 003075' RWORD1: AOBJN E,RWORD2 ;JUMP IF DATA WORD NEXT 4354 003072' 260 17 0 00 003700' PUSHJ P,WORD ;READ CONTROL WORD 4355 003073' 200 15 0 00 000012 MOVE Q,W ;DON'T COUNT RELOCATION WORDS 4356 003074' 505 14 0 00 777756 HRLI E,-22 ;SET RELOCATION WORD BYTE COUNT 4357 003075' 260 17 0 00 003700' RWORD2: PUSHJ P,WORD ;READ INPUT WORD 4358 003076' 325 15 0 00 003110' JUMPGE Q,RWORD3 ;TEST LH RELOCATION BIT 4359 003077' 606 00 0 00 010000 TRNN F,TWOFL ;POSSIBLE TWO SEGMENTS? 4360 003100' 254 00 0 00 003106' JRST RWORD5 ;NO 4361 003101' 207 00 0 00 000012 MOVSS W 4362 003102' 260 17 0 00 003117' PUSHJ P,CHECK ;USE CORRECT RELOCATION 4363 003103' 541 12 1 00 000005 HRRI W,@R 4364 003104' 207 00 0 00 000012 MOVSS W 4365 003105' 254 00 0 00 003110' JRST RWORD3 ;AND TEST RIGHT HALF 4366 003106' 514 10 0 00 000005 RWORD5: HRLZ T,R 4367 003107' 270 12 0 00 000010 ADD W,T ;LH RELOCATION 4368 003110' 607 15 0 00 200000 RWORD3: TLNN Q,200000 ;TEST RH RELOCATION BIT 4369 003111' 254 00 0 00 003115' JRST RWORD4 ;NOT RELOCATABLE 4370 003112' 602 00 0 00 010000 TRNE F,TWOFL ;POSSIBLE TWO SEGMENTS? 4371 003113' 260 17 0 00 003117' PUSHJ P,CHECK ;USE CORRECT RELOCATION 4372 003114' 541 12 1 00 000005 HRRI W,@R ;RH RELOCATION 4373 003115' 242 15 0 00 000002 RWORD4: LSH Q,2 4374 003116' 263 17 0 00 000000 POPJ P, 4375 4376 003117' 200 10 0 00 004010' CHECK: MOVE T,HVAL1 ;START OF HISEGMENT 4377 003120' 307 10 0 12 000400 CAIG T,NEGOFF(W) ;IN HISEG? 4378 JRST [CAILE W,(W) ;IS ADDRESS BELOW HISEG START? 4379 JRST [MOVNS T ;YES 4380 ADDI T,(W) ;THEREFORE WORRY ABOUT CARRY 4381 HRR W,T ;INTO LEFT HALF 4382 POPJ P,] 4383 SUBI W,(T) ;IN HISEG, REMOVE OFSET 4384 003121' 254 00 0 00 006405' POPJ P,] 4385 003122' 541 12 1 00 004011' HRRI W,@LOWR ;USE LOW SEG RELOC 4386 003123' 254 00 0 00 005546' JRST CPOPJ1 ;SKIP RETURN 4387 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 71 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4388 SUBTTL PRINT STORAGE MAP SUBROUTINE 4389 4390 003124' 620 00 0 00 020000 PRMAP: TRZ F,LOCAFL ;ASSUME LOCAL SYMBOLS SUPPRESSED 4391 003125' 302 07 0 00 000001 CAIE D,1 ;IF /1M PRINT LOCAL SYMBOLS 4392 003126' 316 07 0 00 006411' CAMN D,[-7] ;TEST FOR /-1M ALSO 4393 003127' 660 00 0 00 020000 TRO F,LOCAFL ;YES,TURN ON FLAG 4394 003130' 321 07 0 00 003133' JUMPL D,PRTMAP-1 ;JUMP IF /-M OR /-1M 4395 003131' 660 01 0 00 000002 TRO N,ENDMAP ;ELSE SET DEFERRED MAP FLAG 4396 003132' 263 17 0 00 000000 POPJ P, 4397 4398 003133' 620 01 0 00 000002 TRZ N,ENDMAP ;CLEAR DELAYED MAP FLAG 4399 003134' 260 17 0 00 001231' PRTMAP: PUSHJ P,FSCN1 ;LOAD OTHER FILES FIRST 4400 IFN SPCHN, ;PRINT SEPARATOR 4407 TLO F,FCONSW ;FORCE TTY OUTPUT AGAIN 4408 ERROR 0, ;PRINT LINK NUMBER 4409 MOVE W,LINKNR ;GET CURRENT LINK NUMBER 4410 PUSHJ P,RCNUMW ;PRINT IT IN DECIMAL 4411 TLZ F,FCONSW ;SUPPRESS TTY OUTPUT 4412 ERROR 0, ;PRINT SEPARATOR 4413 PUSHJ P,CRLF ;PUT BLANK LINE ON MAP FILE ONLY 4414 PUSHJ P,CRLF ; DITTO 4415 TLO F,FCONSW ;FORCE TTY OUTPUT AGAIN 4416 PUSHJ P,CRLF 4417 JRST .+2 ;SKIP NEXT CRLF CALL 4418 PRMP0A: > 4419 003135' 260 17 0 00 003463' PUSHJ P,CRLFLF ;START NEW PAGE 4420 003136' 550 12 0 00 000005 HRRZ W,R 4421 IFN REENT, 4423 003137' 260 17 0 00 003416' PUSHJ P,PRNUM0 4424 003140' 265 16 0 00 003656' IFE REENT,> 4425 IFN REENT, 4426 PUSHJ P,CRLF ;CR-LF ON ALL BUT TTY 4427 NOLOW: MOVE W,HVAL ;HISEG BREAK 4428 CAMG W,HVAL1 ;HAS IT CHANGED 4429 JRST NOHIGH ;NO HI-SEGMENT 4430 TLO F,FCONSW ;FORCE OUT HI-SEG BREAK ALSO 4431 PUSHJ P,PRNUM0 4432 ERROR 7, 4433 PUSHJ P,CRLF 4434 NOHIGH:> 4435 IFN SPCHN, 4439 003145' 200 12 0 00 004166' IFE NAMESW,< MOVE W,DTOUT ;OUTPUT NAME > 4440 IFN NAMESW,< SKIPN W,DTOUT 4441 MOVE W,CURNAM ;USE PROGRAM NAME> 4442 003146' 322 12 0 00 003151' JUMPE W,.+3 ;DON'T PRINT IF NOT THERE LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 71-1 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4443 003147' 260 17 0 00 003455' PUSHJ P,PWORD 4444 003150' 260 17 0 00 003451' PUSHJ P,SPACES ;SOME SPACES 4445 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 72 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4446 ;HERE TO DECODE AND PRINT VERSION NUMBER IN .JBVER 4447 ;USES T,V,D,Q 4448 IFN MONLOD, 4450 IFE L,< 4451 SKIPN V,.JBVER(X) ;GET VERSION NUMBER 4452 JRST NOVER ;WASN'T ONE 4453 ROT V,3 ;PUT USER BITS LAST 4454 MOVEI T,"%" ;TO INDICATE VERSION 4455 PUSHJ P,TYPE2 ;OUTPUT CHARACTER 4456 MOVEI Q,3 ;3 BYTES IN MAJOR FIELD 4457 PUSHJ P,SHFTL ;SHIFT LEFT, SKIP 0 BYTES 4458 JRST .+3 ;NO MAJOR FIELD 4459 MOVEI D,"0" ;CONVERT TO ASCII 0-8 4460 PUSHJ P,OUTVER ;OUTPUT IT 4461 MOVEI Q,2 ;2 DIGITS IN MINOR FIELD 4462 PUSHJ P,SHFTL 4463 JRST .+3 ;NO MINOR FIELD 4464 MOVEI D,"@" ;ALPHABETICAL 4465 PUSHJ P,OUTVER 4466 MOVEI T,"(" ;EDIT NUMBER IN PARENS 4467 TLNN V,-1 ;SEE IF GIVEN 4468 JRST NOEDIT ;NO 4469 PUSHJ P,TYPE2 ;YES 4470 MOVEI Q,6 4471 PUSHJ P,SHFTL ;LEFT JUSTIFY 4472 JRST .+3 ;NEVER GETS HERE 4473 MOVEI D,"0" ;0-7 AGAIN 4474 PUSHJ P,OUTVER 4475 MOVEI T,")" ;CLOSE VERSION 4476 PUSHJ P,TYPE2 4477 NOEDIT: MOVEI T,"-" ;USER FIELD? 4478 JUMPE V,.+4 ;NO 4479 PUSHJ P,TYPE2 ;YES 4480 MOVEI Q,1 ;ONLY ONE DIGIT 4481 PUSHJ P,OUTVER ;OUTPUT IT 4482 PUSHJ P,SPACES ;SOME SPACES 4483 NOVER:>;END OF IFE L LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 73 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4484 003151' 265 16 0 00 003601' ERROR 0, 4485 003154' 260 17 0 00 003451' PUSHJ P,SPACES ;SOME SPACES 4486 003155' 261 17 0 00 000001 PUSH P,N 4487 003156' 261 17 0 00 000014 PUSH P,E 4488 003157' 200 01 0 00 006412' MOVE N,[POINT 6,DBUF] ;INITIALIZE DATE POINTER 4489 003160' 047 15 0 00 000023 MSTIME Q, ;GET THE TIME 4490 003161' 231 15 0 00 165140 IDIVI Q,^D60*^D1000 4491 003162' 231 15 0 00 000074 IDIVI Q,^D60 4492 003163' 261 17 0 00 000016 PUSH P,A ;SAVE MINUTES 4493 003164' 260 17 0 00 003563' PUSHJ P,OTOD1 ;STORE HOURS 4494 003165' 262 17 0 00 000015 POP P,Q ;GET MINUTES 4495 003166' 260 17 0 00 003562' PUSHJ P,OTOD ;STORE MINUTES 4496 003167' 047 14 0 00 000014 DATE E, ;GET DATE 4497 003170' 231 14 0 00 000037 IDIVI E,^D31 ;GET DAY 4498 003171' 271 15 0 00 000001 ADDI Q,1 4499 003172' 260 17 0 00 003562' PUSHJ P,OTOD ;STORE DAY 4500 003173' 231 14 0 00 000014 IDIVI E,^D12 ;GET MONTH 4501 003174' 241 15 0 00 777777 ROT Q,-1 ;DIV BY 2 4502 003175' 540 16 0 15 003571' HRR A,DTAB(Q) ;GET MNEMONIC 4503 003176' 607 15 0 00 400000 TLNN Q,400000 4504 003177' 544 16 0 15 003571' HLR A,DTAB(Q) ;OTHER SIDE 4505 003200' 542 16 0 00 003722' HRRM A,DBUF+1 ;STORE IT 4506 003201' 201 15 0 14 000100 MOVEI Q,^D64(E) ;GET YEAR 4507 003202' 200 01 0 00 006413' MOVE N,[POINT 6,DBUF+2] 4508 003203' 260 17 0 00 003562' PUSHJ P,OTOD ;STORE IT 4509 003204' 262 17 0 00 000014 POP P,E 4510 003205' 262 17 0 00 000001 POP P,N 4511 003206' 260 17 0 00 003720' PUSHJ P,DBUF1 4512 003207' 260 17 0 00 003465' PUSHJ P,CRLF 4513 003210' 336 00 0 00 003734' SKIPN STADDR ;PRINT STARTING ADDRESS 4514 003211' 254 00 0 00 003221' JRST NOADDR ;NO ADDRESS SEEN 4515 003212' 265 16 0 00 003601' ERROR 0, 4516 003216' 260 17 0 00 003452' PUSHJ P,SP1 4517 003217' 200 12 0 00 003734' MOVE W,STADDR ;GET ST. ADDR. 4518 003220' 260 17 0 00 003416' PUSHJ P,PRNUM0 ;PRINT IT 4519 IFN NAMESW,< 4520 PUSHJ P,SP1 4521 MOVE W,[SIXBIT / PROG /] 4522 PUSHJ P,PWORD 4523 MOVE W,CURNAM ;PROG NAME 4524 PUSHJ P,PWORD 4525 PUSHJ P,SP1 4526 MOVE W,ERRPT6 ;SIXBIT / FILE / 4527 PUSHJ P,PWORD 4528 MOVE W,PRGNAM ;FILE NAME 4529 PUSHJ P,PWORD> 4530 NOADDR: IFN REENT,< 4531 HRRZ A,HVAL1 ;GET INITIAL HIGH START 4532 ADDI A,.JBHDA ;ADD IN OFFSET 4533 IFN SPCHN, 4538 HRLI A,.JBDA ;LOW START LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 73-1 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4539 MOVSM A,SVBRKS ;INITIAL BREAKS> 4540 003221' 574 16 0 00 000006 HLRE A,B 4541 003222' 213 00 0 00 000016 MOVNS A 4542 003223' 271 16 0 06 000000 ADDI A,(B) 4543 003224' 275 16 0 00 000002 PRMAP1: SUBI A,2 4544 003225' 336 13 0 16 000001 IFN REENT!L, 4546 IFE REENT!L, 4547 003227' 607 13 0 00 300000 TLNN C,300000 ;TEST FOR LOCAL SYMBOL 4548 003230' 254 00 0 00 003234' JRST .+4 ;GLOBAL (NOT LOCAL ANYWAY) 4549 003231' 606 00 0 00 020000 TRNN F,LOCAFL ;PRINT LOCAL SYMBOLS? 4550 003232' 254 00 0 00 003275' JRST PRMAP4 ;IGNORE LOCAL SYMBOLS 4551 003233' 641 13 0 00 040000 TLC C,040000 ;MAKE IT LOOK LIKE INTERN 4552 003234' 603 13 0 00 040000 TLNE C,040000 4553 003235' 254 00 0 00 003241' JRST PRMP1A 4554 IFN SPCHN, 4565 003236' 260 17 0 00 003465' PUSHJ P,CRLF 4566 003237' 260 17 0 00 003465' PUSHJ P,CRLF 4567 003240' 254 00 0 00 003250' JRST PRMP1B LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 74 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4568 003241' PRMP1A: 4569 IFN SPCHN, 4571 003241' 260 17 0 00 003552' PUSHJ P,TAB 4572 003242' 201 10 0 00 000040 MOVEI T,40 ;SPACE FOR OPEN GLOBAL 4573 003243' 603 13 0 00 100000 TLNE C,100000 ;LOCAL? 4574 003244' 201 10 0 00 000047 MOVEI T,47 ;YES, TYPE ' 4575 003245' 603 13 0 00 400000 TLNE C,400000 ;HALF KILLED TO DDT? 4576 003246' 271 10 0 00 000003 ADDI T,3 ;YES, TYPE # FOR GLOBAL, * FOR LOCAL 4577 003247' 260 17 0 00 003472' PUSHJ P,TYPE2 ;PRINT CHARACTER 4578 003250' 260 17 0 00 003411' PRMP1B: PUSHJ P,PRNAM1 ;PRINT SYMBOL AND VALUE 4579 003251' 603 13 0 00 040000 TLNE C,040000 4580 003252' 254 00 0 00 003275' JRST PRMAP4 ;GLOBAL SYMBOL 4581 003253' 574 13 0 00 000012 HLRE C,W ;POINTER TO NEXT PROG. NAME 4582 003254' 553 00 0 00 000012 HRRZS W ;SO WE ONLY HAVE THE HALF WE WANT 4583 003255' 321 13 0 00 003260' PRMAP7: JUMPL C,PRMP7A 4584 IFN REENT, 4593 003256' 550 10 0 00 000005 HRRZ T,R ;GET LOW, HERE ON LAST PROG 4594 003257' 254 00 0 00 003262' JRST PRMAP6 ;GO 4595 4596 003260' 271 13 0 16 000002 PRMP7A: ADDI C,2(A) ;POINTER TO NEXT PROGRAM NAME 4597 PRMAP2: IFN REENT,< 4598 SKIPE 1(C) ;THIS IS A TWO SEG FILE 4599 JRST PRMP2A ;NO 4600 MOVE T,2(C) ;GET PROG BREAKS 4601 TLNN T,-1 ;IF NO HIGH STUFF YET 4602 HLL T,SVBRKS ;FAKE IT 4603 SUB T,SVBRKS ;SUBTRACT LAST BREAKS 4604 HRRZ W,T ;LOW BREAK 4605 PUSH P,T ;SAVE T 4606 PUSHJ P,PRNUM ;PRINT IT 4607 POP P,T ;RESTORE 4608 HLRZ W,T ;GET HIGH BREAK 4609 JUMPE W,.+3 ;SKIP IF NO HIGH CODE 4610 PUSHJ P,TAB ;AND TAB 4611 PUSHJ P,PRNUM 4612 MOVE T,2(C) 4613 CAMN C,B ;EQUAL IF LAST PROG 4614 SETZ C, ;SIGNAL END 4615 TLNN T,-1 4616 HLL T,SVBRKS 4617 IFE TENEX, 4619 MOVEM T,SVBRKS ;SAVE FOR NEXT TIME 4620 JRST PRMAP3 ;AND CONTINUE 4621 PRMP2A:> 4622 003261' 550 10 0 13 000000 HRRZ T,(C) ;GET ITS STARTING ADRESS LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 74-1 LOADER MAC 24-MAR-75 15:43 PRINT STORAGE MAP SUBROUTINE 4623 003262' 276 10 0 00 000012 PRMAP6: SUBM T,W ;SUBTRACT ORIGIN TO GET LENGTH 4624 003263' 260 17 0 00 003413' PUSHJ P,PRNUM ;PRINT PROGRAM LENGTH 4625 003264' 260 17 0 00 003465' PUSHJ P,CRLF 4626 003265' PRMP6A: 4627 003265' 607 01 0 00 000001 IFE TENEX, 4629 IFN TENEX, 4630 003267' 254 00 0 00 003274' JRST PRMAP3 4631 003270' 574 13 0 16 000002 HLRE C,2(A) ;GET BACK CORRECT LOCATION IF 0 LENGTH 4632 003271' 322 13 0 00 003277' JUMPE C,PRMAP5 ;JUMP IF LAST PROGRAM 4633 003272' 271 13 0 16 000002 ADDI C,2(A) ;IN CASE WE SKIPPED SOME PROGRAMS 4634 003273' 334 16 0 00 000013 SKIPA A,C ;SKIP GLOBALS, ZERO LENGTH PROG. 4635 003274' 260 17 0 00 003465' PRMAP3: PUSHJ P,CRLF 4636 003275' 303 16 0 06 000000 PRMAP4: CAILE A,(B) ;TEST FOR END OF SYMBOL TABLE 4637 003276' 254 00 0 00 003224' JRST PRMAP1 4638 003277' 260 17 0 00 003465' PRMAP5: PUSHJ P,CRLF ;GIVE AN XTRA CR-LF 4639 IFN SPCHN, 4643 IFN TENEX, 4644 4645 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 75 LOADER MAC 24-MAR-75 15:43 LIST UNDEFINED AND MULTIPLY DEFINED GLOBALS 4646 SUBTTL LIST UNDEFINED AND MULTIPLY DEFINED GLOBALS 4647 4648 ;LIST UNDEFINED GLOBALS 4649 4650 003300' PMSQ: 4651 IFN TENEX, 4652 003300' 260 17 0 00 001231' PMS: PUSHJ P,FSCN1 ;LOAD FILES FIRST 4653 003301' 325 04 0 00 003337' JUMPGE S,PMS4 ;JUMP IF NO UNDEFINED GLOBALS 4654 IFN TENEX, 4657 003302' 260 17 0 00 003464' PUSHJ P,FCRLF ;START THE MESSAGE 4658 003303' 574 12 0 00 000004 HLRE W,S ;COMPUTE NO. OF UNDEF. GLOBALS 4659 003304' 217 00 0 00 000012 MOVMS W 4660 003305' 242 12 0 00 777777 LSH W,-1 ;/2 4661 003306' 260 17 0 00 003441' PUSHJ P,RCNUMW ;PRINT AS DECIMAL NUMBER 4662 003307' 265 16 0 00 003656' ERROR 7, 4663 003314' 200 16 0 00 000004 MOVE A,S ;LOAD UNDEF. POINTER 4664 003315' 331 12 0 16 000001 PMS2: SKIPL W,1(A) 4665 003316' 607 12 0 00 040000 TLNN W,40000 4666 003317' 254 00 0 00 003322' JRST PMS2A 4667 003320' 260 17 0 00 003464' PUSHJ P,FCRLF 4668 003321' 260 17 0 00 003410' PUSHJ P,PRNAM0 ;PRINT SYMBOL AND POINTER 4669 003322' 270 16 0 00 003714' PMS2A: ADD A,SE3 4670 003323' 321 16 0 00 003315' JUMPL A,PMS2 4671 003324' 260 17 0 00 003465' PUSHJ P,CRLF ;NEW LINE 4672 4673 ;LIST NUMBER OF MULTIPLY DEFINED GLOBALS 4674 4675 003325' 336 12 0 00 003733' PMS3: SKIPN W,MDG ;ANY MULTIPLY DEFINED GLOBALS 4676 003326' 254 00 0 00 003337' JRST PMS4 ;NO, EXCELSIOR 4677 003327' 260 17 0 00 003464' PUSHJ P,FCRLF ;ROOM AT THE TOP 4678 003330' 260 17 0 00 003441' PUSHJ P,RCNUMW ;NUMBER OF MULTIPLES IN DECIMAL 4679 003331' 265 16 0 00 003656' ERROR 7, 4680 003337' 603 01 0 00 040000 PMS4: TLNE N,AUXSWE ;AUXILIARY OUTPUT DEVICE? 4681 003340' 067 02 0 00 000000 OUTPUT 2, ;INSURE A COMPLETE BUFFER 4682 003341' 263 17 0 00 000000 CPOPJ: POPJ P, ;RETURN 4683 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 76 LOADER MAC 24-MAR-75 15:43 ENTER FILE ON AUXILIARY OUTPUT DEVICE 4684 SUBTTL ENTER FILE ON AUXILIARY OUTPUT DEVICE 4685 4686 003342' IAD2: 4687 IFN SYMDSW, 4689 003342' 261 17 0 00 000016 PUSH P,A ;SAVE A FOR RETURN 4690 003343' 200 16 0 00 003726' MOVE A,LD5C1 ;GET AUX. DEV. 4691 003344' 047 16 0 00 000004 DEVCHR A, ;GET DEVCHR 4692 003345' 607 16 0 00 000004 TLNN A,4 ;DOES IT HAVE A DIRECTORY 4693 JRST [SKIPN A,DTOUT ;USE OUTPUT NAME IF GIVEN 4694 JRST IAD2C ;FIND A DEFAULT 4695 003346' 254 00 0 00 006414' JRST IAD2A] ;JUST DO ENTER 4696 003347' 200 16 0 00 004166' MOVE A,DTOUT ;GET OUTPUT NAME 4697 003350' 312 16 0 00 006327' CAME A,[SIXBIT /JOBDAT/] ;DON'T USE JOBDAT 4698 003351' 326 16 0 00 003363' JUMPN A,IAD2A ;USE ANYTHING NON-ZERO 4699 003352' 205 16 0 00 446353 MOVSI A,(SIXBIT /DSK/) ;DEFAULT DEVICE 4700 003353' 316 16 0 00 003726' CAMN A,LD5C1 ;IS IT AUX. DEV. 4701 003354' 254 00 0 00 003361' JRST IAD2C ;YES LEAVE WELL ALONE 4702 003355' 070 02 0 00 000000 CLOSE 2, ;CLOSE OLD AUX. DEV. 4703 003356' 202 16 0 00 003726' MOVEM A,LD5C1 ;SET IT TO DSK 4704 003357' 050 02 0 00 003725' OPEN 2,OPEN2 ;OPEN IT FOR DSK 4705 003360' 254 00 0 00 003400' JRST IMD4 ;FAILED 4706 IAD2C: IFN NAMESW,< 4707 SKIPN A,CURNAM ;USE PROG NAME> 4708 003361' 205 16 0 00 554160 MOVSI A,(SIXBIT /MAP/) ;AN UNLIKELY NAME 4709 003362' 202 16 0 00 004166' MOVEM A,DTOUT ;SO ENTER WILL NOT FAIL 4710 003363' IAD2A: 4711 IFN SPCHN, 4721 003363' 262 17 0 00 000016 POP P,A ;RECOVER A 4722 003364' 402 00 0 00 004170' SETZM DTOUT+2 ;CLEAR PROTECTION (LEVEL D) 4723 003365' 077 02 0 00 004166' ENTER 2,DTOUT ;WRITE FILE NAME IN DIRECTORY 4724 003366' 254 00 0 00 003371' JRST IMD3 ;NO MORE DIRECTORY SPACE 4725 003367' 350 00 0 17 000000 AOS (P) ;SKIP RETURN IF SUCCESSFUL 4726 003370' 263 17 0 00 000000 POPJ P, 4727 4728 003371' 265 16 0 00 003577' IMD3: ERROR , 4729 003376' 621 01 0 00 060000 TLZ N,AUXSWE!AUXSWI ;CLEAR AUX DEVICE SWITCHES 4730 003377' 254 00 0 00 000145' JRST LD2 4731 4732 003400' 200 17 0 00 003715' IMD4: MOVE P,PDLPT ;RESTORE STACK 4733 003401' 253 17 0 00 003402' AOBJN P,.+1 ;BUT SAVE RETURN ADDRESS 4734 003402' 621 01 0 00 060000 TLZ N,AUXSWE!AUXSWI ;NO AUX.DEV.NOW 4735 003403' 265 16 0 00 003577' ERROR , 4736 003407' 254 00 0 00 003277' JRST PRMAP5 ;CONTINUE TO LOAD 4737 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 77 LOADER MAC 24-MAR-75 15:43 MONLOD - DISK IMAGE MONITOR LOADER CODE 4738 SUBTTL MONLOD - DISK IMAGE MONITOR LOADER CODE 4739 4740 IFN MONLOD,< 4741 4742 DIOPEN: PUSH P,A ;SAVE AC A 4743 PUSH P,H ;SAVE AC H 4744 PUSH P,N ;SAVE 3 ACC'S 4745 PUSH P,X ;IN A BLOCK 4746 MOVE A,ILD1 ;GET DEVICE 4747 MOVE N,A ;SPARE COPY 4748 DEVCHR A, ;SEE WHAT IT IS 4749 TLNN A,DSKBIT ;IS IT SOME SORT OF DSK? 4750 SKIPA N,DIN1 ;NO, GET THE DEFAULT DEVICE (DSK) 4751 MOVEM N,DIN1 ;YES, OBEY USER AND USE IT 4752 MOVE A,[3,,N] ;SET UP BLOCK 4753 DSKCHR A, ;WAS DSK, BUT SEE IF GENERIC "DSK" 4754 JRST USEDSK ;NO POINT GOING THROUGH WITH THIS 4755 TLNE A,(7B17) ;IS IT GENERIC DSK? 4756 JRST USEDSK ;NO USE WHATS IN DIN1 4757 SETOB N,H ;REQUEST FIRST F/S 4758 MOVE A,[3,,N] ;SET UP A AGAIN 4759 JOBSTR A, ;GET FIRST F/S IN SEARCH LIST 4760 JRST USEDSK ;LEVEL C 4761 JUMPL H,USEDSK ;SWP BIT SET 4762 TLNN H,200000 ;IS NO CREATE BIT SET? 4763 JRST USEDSK ;NO, GENERIC 'DSK' WILL USE THIS F/S 4764 DSKCHR A, ;GET FIRST 3 ARGS 4765 JRST USEDSK ;SHOULD NEVER HAPPEN BUT !! 4766 TLNN A,740200 ;RHB!OFL!HWP!SWP!NNA SET? 4767 CAIGE X,DALLOC ;ENOUGH SPACE? 4768 JRST USEDSK ;CANNOT USE FASTEST F/S 4769 MOVEM N,DIN1 ;USE F/S RATHER THAN 'DSK' 4770 MOVEM N,GENERI ;SAVE F/S INCASE ENTER FAILS 4771 USEDSK: POP P,X ;RESTORE ACC'S 4772 POP P,N 4773 MOVE H,(P) ;RESET H 4774 USDSK2: OPEN 4,OPEN4 ;OPEN DEVICE 'DSK', MODE 16 4775 HALT .-1 ;ERROR, NON-INTELIGENT INDICATION 4776 MOVEM W,DIOUT1+1 ;STORE EXTENSION 'XPN' 4777 MOVE A,DTIN ;GET FILE NAME 4778 MOVEM A,DIOUT1 ;STORE IN 'LOOKUP-ENTER' BLOCK 4779 SETZM DIOUT1+2 ;CLEAR PARAMETERS TO BE SUPPLIED BY MONITOR 4780 SETZM DIOUT1+3 ;ALWAYS USE THIS JOB'S PROJ-PROG NUMBER 4781 SETZM DIOUT+1 ;SAME AGAIN 4782 MOVE A,[17,,11] ;STATES WORD 4783 GETTAB A, ;GET IT 4784 JRST .+3 ;FAILED, NOT LEVEL D FOR SURE 4785 TLNE A,(7B9) ;TEST FOR LEVEL D 4786 TDZA A,A ;YES, THIS IS LEVEL D 4787 MOVEI A,2 ;NOT LEVEL D 4788 ENTER 4,DIOUT(A) ;CREATE OR SUPERCEDE SAVE FILE 4789 JRST ENTFAI ;ERROR, TRY DSK 4790 JUMPE A,LEVELD ;JUMP IF LEVEL D 4791 HRRZ A,.JBREL ;GET CURRENT SIZE 4792 CAIL A,2000 ;NEED AT LEAST 2K LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 77-1 LOADER MAC 24-MAR-75 15:43 MONLOD - DISK IMAGE MONITOR LOADER CODE 4793 CAILE H,-2000(S) ;CHECK FOR 1K FREE 4794 IFN EXPAND, 4795 JRST FULLC ;NO MORE CORE 4796 IFN EXPAND,< JRST .-1]> ;OK, TRY AGAIN 4797 MOVSI A,-2000 ;FORM IOWD 4798 HRRI A,(H) ;TO 1K OF BLANK 4799 MOVEM A,LOLIST ;STORE IOWD 4800 SETZM LOLIST+1 ;TERMINATE LIST 4801 MOVEI A,DALLOC/10 ;PREALLOCATE THE HARD WAY 4802 OUTPUT 4,LOLIST ;BY DOING OUTPUTS 4803 SOJG A,.-1 4804 MOVEI A,2 ;STILL NOT LEVEL D 4805 LEVELD: CLOSE 4,4 ;WIPE OUT THE OLD FILE IF ONE EXISTS 4806 LOOKUP 4,DIOUT(A) ;LOOKUP FOLLOWED BY ENTER ENABLES UPDATING 4807 HALT .-1 ;ERROR 4808 JUMPN A,ALLOK ;NOT LEVEL D 4809 MOVE A,DIOUT+.RBALC ;SEE WHAT WE GOT 4810 SKIPE GENERI ;IF NOT GENERIC DSK FIRST F/S 4811 CAIL A,DALLOC ;WAS IT ENOUGH 4812 TDZA A,A ;YES, BUT STILL LEVEL D 4813 JRST TRYAGN ;NO JUST USE DSK 4814 ALLOK: ENTER 4,DIOUT(A) ;FILE CAN BE BOTH READ AND WRITTEN 4815 HALT .-1 ;ERROR 4816 MOVE A,H ;GET HIGHEST ADDRESS LOADED SO FAR 4817 SUBI A,-177(X) ;SIZE OF LOW BUFFER MUST BE AN 4818 ANDI A,777600 ;INTEGRAL MULTIPLE OF BLOCK SIZE 4819 MOVEM A,HIRES ;SET UP POINTER FOR LOCATION CHECKING 4820 ADDI A,(X) ;GET ADDRESS OF START OF IMAGE BUFFER 4821 HRRM A,HILIST ;HILIST IS IOWD FOR FILE WINDOW BUFFER 4822 SUBI A,(X) ;A=SIZE OF LOW IMAGE BUFFER (RESIDENT) 4823 MOVN A,A ;GET MINUS BUFFER SIZE 4824 HRLM A,LOLIST ;SET UP WORD COUNT IN LOW IOWD 4825 HRRM X,LOLIST ;ADDRESS FIELD OF IOWD 4826 MOVEM X,XRES ;SAVE OFFSET OF RESIDENT PORTION 4827 MOVE H,HILIST ;GET HIGH BUFFER ADDRESS 4828 MOVNI A,DISIZE ;NEGATIVE SIZE OF FILE WINDOW 4829 HRLM A,HILIST ;SET UP WORD COUNT OF HIGH IOWD 4830 MOVE A,HIRES ;GET HIGHEST ADDRESS IN RESIDENT PORTION+1 4831 LSH A,-7 ;CONVERT TO BLOCK NUMBER 4832 MOVEM A,RESBLK ;STORE NUMBER OF BLOCKS IN RESIDENT PORTION 4833 ADDI H,DISIZE ;H=TOP OF DISK WINDOW BUFFER 4834 MOVEM H,DIEND ;LAST LOCATION IN WINDOW BUFFER+1 4835 CAILE H,1(S) ;SKIP IF SUFFICIENT CORE AVAILABLE 4836 IFN EXPAND, 4837 JRST FULLC 4838 IFN EXPAND,< JRST .-1]> 4839 SOS HILIST ;IOWD POINTS TO BUFFER-1 4840 SOS LOLIST ; " 4841 SETZM HILIST+1 ;TERMINATOR SHOULD BE ZERO 4842 SETZM LOLIST+1 ; " 4843 TLO N,DISW ;SET DISK IMAGE IN USE FLAG 4844 PUSH P,V ;SAVE CURRENT LOADER LOCATION COUNTER 4845 MOVE V,HIRES ;GET FIRST ADDRESS NOT IN RESIDENT BUFFER 4846 PUSHJ P,DICHK2 ;CALL TO INITIALIZE THE BUFFER HANDLER 4847 POP P,V ;RESTORE V LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 77-2 LOADER MAC 24-MAR-75 15:43 MONLOD - DISK IMAGE MONITOR LOADER CODE 4848 POP P,H ;RESTORE H 4849 SUBI H,(X) ;CONVERT TO ABSOLUTE FOR DISK IMAGE LOAD 4850 POP P,A ;RESTORE AC A 4851 JRST LD2D ;RETURN TO CONTINUE SCAN 4852 DICHK: TLNN N,DISW ;ARE WE DOING A DISK IMAGE LOAD? 4853 POPJ P, ;NO, ALL IS OK 4854 HRRZ X,V ;LEFT HALF OF AC 'V' MAY CONTAIN FLAGS 4855 CAMGE X,HIRES ;SKIP IF ADDRESS NOT IN RESIDENT PORTION 4856 JRST DICHK1 ;ADDRESS IN AC X IS IN RESIDENT PORTION 4857 CAMGE X,DILADD ;SKIP IF ADDRESS ABOVE CORRENT LOWEST WINDOW ADDRESS 4858 JRST DICHK2 ;ADDRESS IS NOT RESIDENT 4859 CAML X,DIHADD ;SKIP IF ADDRESS IS RESIDENT 4860 JRST DICHK2 ;NOT RESIDENT 4861 SKIPA X,XCUR ;GET OFFSET OF CURRENT WINDOW 4862 DICHK1: MOVE X,XRES ;GET OFFSET OF RESIDENT LOW PORTION 4863 POPJ P, 4864 4865 DICHK2: PUSH P,A ;GET ADDRESS IN AC 'V' INTO CORE 4866 PUSH P,Q ;GET SOME AC'S TO WORK WITH 4867 TLZE N,WOSW ;CURRENT BUFFER TO BE WRITTEN OUT? 4868 PUSHJ P,DICHK3 ;YES, GO DO SO 4869 MOVE A,HILIST ;GET ADDRESS-1 OF DISK IMAGE BUFFER 4870 ADDI A,1 ;A NOW POINTS TO START OF BUFFER 4871 SETZM (A) ;CLEAR THE FIRST WORD OF THE BUFFER 4872 MOVS Q,A ;MOVE ADDRESS TO SOURCE FOR BLT 4873 HRRI Q,1(A) ;SOURCE+1 TO DESTINATION 4874 ADDI A,DISIZE ;SET A TO TOP OF BUFFER+1 4875 BLT Q,-1(A) ;CLEAR THE BUFFER 4876 HRRZ Q,V ;GET THE ADDRESS WE'RE LOOKING FOR 4877 SUB Q,HIRES ;ACCOUNT FOR RESIDENT PART 4878 IDIVI Q,DISIZE ;A=Q+1 4879 IMULI Q,DISIZE ;FIRST ADDRESS IN WINDOW 4880 IDIVI Q,^D128 ;GET BLOCK NUMBER (-NUMBER IN RESIDENT PORTION) 4881 ADD Q,RESBLK ;NUMBER OF RESIDENT BLOCKS 4882 USETI 4,1(Q) ;BLOCK 0 DOES NOT EXIST 4883 STATZ 4,20000 ;END OF FILE? 4884 JRST DICHK4 ;YES, NO SENSE READING 4885 INPUT 4,HILIST ;TRY TO FILL THE DISK IMAGE BUFFER 4886 STATZ 4,740000 ;CHECK FOR ERRORS, DON'T CARE ABOUT EOF 4887 HALT .-3 ;TRY AGAIN ON CONTINUE 4888 DICHK4: MOVEM Q,CURSET ;LEAVE BLOCK NUMBER AROUND FOR LATER USETO 4889 IMULI Q,^D128 ;GET ADDRESS OF FIRST WORD IN CURRENT BUFFER 4890 MOVEM Q,DILADD ;STORE FOR FUTURE COMPARES 4891 ADDI Q,DISIZE ;ADD SIZE OF DISK IMAGE BUFFER 4892 MOVEM Q,DIHADD ;STORE HIGH CURRENT ADDRESS+1 4893 HRRZ Q,HILIST ;GET WINDOW ADDRESS-1 4894 ADDI Q,1 ;NOW EQUAL TO ADDRESS 4895 SUB Q,DILADD ;COMPUTE LOADER CURRENT WINDOW OFFSET 4896 HRLI Q,V ;SET UP INDEX REGISTER FOR STORED X 4897 MOVEM Q,XCUR ;STORE CURRENT OFFSET 4898 POP P,Q ;RESTORE 4899 POP P,A ;RESTORE 4900 MOVE X,XCUR ;SET UP LOADER OFFSET REGISTER 4901 POPJ P, ;RETURN, ADDRESS IN 'V' NOW RESIDENT 4902 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 77-3 LOADER MAC 24-MAR-75 15:43 MONLOD - DISK IMAGE MONITOR LOADER CODE 4903 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 78 LOADER MAC 24-MAR-75 15:43 MONLOD - DISK IMAGE MONITOR LOADER CODE 4904 DICHK3: MOVE Q,CURSET ;GET BLOCK NUMBER FOR USETO 4905 USETO 4,1(Q) ;THERE IS NO BLOCK 0 4906 OUTPUT 4,HILIST ;WRITE OUT HE IMAGE 4907 STATZ 4,740000 ;ERROR? 4908 HALT .-3 ;YES, TRY AGAIN ON CONTINUE 4909 POPJ P, ;RETURN 4910 4911 SIZCHK: EXCH A,DIEND ;SAVE A, GET END OF BUFFER ADDRESS 4912 AOS (P) ;DEFAULT IS SKIP RETURN 4913 CAIGE A,(S) ;IS SYMBOL TABLE ENCROACHING ON BUFFER? 4914 AOS (P) ;NO,DON'T EXPAND CORE 4915 EXCH A,DIEND ;RESTORE BOTH A AND DIEND 4916 POPJ P, ;RETURN 4917 4918 DISYM: PUSH P,V ;SAVE CURRENT ADDRESS 4919 MOVE V,A ;GET ADDRESS WERE LOOGING FOR 4920 PUSHJ P,DICHK ;MAKE SURE IT IS IN CORE 4921 POP P,V ;RESTORE V 4922 POPJ P, ;RETURN 4923 4924 DIOVER: MOVE X,XRES ;CLEAN UP XPN FILE AND EXIT 4925 MOVE A,.JBFF(X) ;GET LAST ADDRESS LOADER 4926 SUB A,DILADD ;SUBTRACT CURRENT LOW ADDRESS 4927 ADDI A,^D128 ;ROUND OFF TO NEAREST BLOCK SIZE 4928 ANDI A,777600 ;FOR IOWD 4929 MOVNS A ;NEGATE 4930 HRLM A,HILIST ;PUT IN WINDOW IOWD 4931 PUSHJ P,DICHK3 ;OUTPUT THE SYMBOL TABLE 4932 USETO 4,1 ;SET UP TO OUTPUT RESIDENT PART 4933 OUTPUT 4,LOLIST ;AND DO SO 4934 STATZ 4,740000 ;ERROR CHECK 4935 HALT .-3 ;IF ERROR TRY AGAIN 4936 CLOSE 4, 4937 EXIT 4938 4939 TRYAGN: PUSH P,DIOUT1 ;SAVE NAME 4940 SETZM DIOUT1 4941 RENAME 4,DIOUT(A) ;GET RID OF FILE 4942 POP P,DIOUT1 ;RESTORE NAME 4943 ENTFAI: SKIPN GENERI ;GENERIC DSK? 4944 HALT . ;NO, JUST GIVE UP 4945 MOVSI A,'DSK' ;TRY WITH JUST DSK 4946 MOVEM A,DIN1 4947 SETZM GENERI 4948 SETZM DIOUT+.RBALC 4949 JRST USDSK2 ;TRY AGAIN 4950 4951 4952 > LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 79 LOADER MAC 24-MAR-75 15:43 PRINT SUBROUTINES 4953 SUBTTL PRINT SUBROUTINES 4954 4955 ;PRINT THE 6 DIGIT OCTAL ADDRESS IN W 4956 4957 ; ACCUMULATORS USED: D,T,V 4958 4959 003410' 200 13 0 16 000001 PRNAM0: MOVE C,1(A) ;LOAD SYMBOL 4960 003411' 200 12 0 16 000002 PRNAM1: MOVE W,2(A) ;LOAD VALUE 4961 003412' 260 17 0 00 003513' PRNAM: PUSHJ P,PRNAME 4962 003413' PRNUM: 4963 003413' 606 00 0 00 040000 TRNN F,TTYFL 4964 003414' 260 17 0 00 003452' PUSHJ P,SP1 4965 003415' 260 17 0 00 003452' PUSHJ P,SP1 4966 003416' 200 11 0 00 003425' PRNUM0: MOVE V,PRNUM2 ;LOAD BYTE POINTER TO RH. OF W 4967 003417' 211 07 0 00 000006 MOVNI D,6 ;LOAD CHAR. COUNT 4968 003420' 134 10 0 00 000011 PRNUM1: ILDB T,V ;LOAD DIGIT TO BE OUTPUT 4969 003421' 271 10 0 00 000060 ADDI T,60 ;CONVERT FROM BINARY TO ASCII 4970 003422' 260 17 0 00 003472' PUSHJ P,TYPE2 4971 003423' 341 07 0 00 003420' AOJL D,PRNUM1 ;JUMP IF MORE DIGITS REMAIN 4972 003424' 263 17 0 00 000000 POPJ P, 4973 4974 003425' 22 03 0 00 000012 PRNUM2: POINT 3,W,17 ;BYTE POINTER FOR OCTAL CONVERSION OF W 4975 4976 ;HERE TO LEFT JUSTIFY V, COUNT IN IN Q 4977 003426' 242 11 0 00 000003 LSH V,3 ;STEP LEFT ONE 4978 003427' 607 11 0 00 700000 SHFTL: TLNN V,700000 ;LEFT JUSTIFIED? 4979 003430' 365 15 0 00 003426' SOJGE Q,.-2 ;NO SHIFT IF STILL IN FIELD 4980 003431' 323 15 0 00 003341' JUMPLE Q,CPOPJ ;NOTHING IN THIS FIELD 4981 003432' 254 00 0 00 005546' JRST CPOPJ1 ;SKIP RTETURN, AT LEAST ONE CHAR 4982 4983 ;HERE TO OUTPUT CHARACTERS LEFT AFTER SHIFTING LEFT 4984 003433' 400 10 0 00 000000 OUTVER: SETZ T, ;CLEAR T TO REMOVE JUNK 4985 003434' 246 10 0 00 000003 LSHC T,3 ;SHIFT IN FROM T 4986 003435' 271 10 0 07 000000 ADDI T,(D) ;EITHER "0" OR "A" 4987 003436' 260 17 0 00 003472' PUSHJ P,TYPE2 ;PRINT 4988 003437' 367 15 0 00 003433' SOJG Q,OUTVER ;MORE? 4989 003440' 263 17 0 00 000000 POPJ P, ;NO 4990 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 80 LOADER MAC 24-MAR-75 15:43 PRINT SUBROUTINES 4991 4992 IFN NAMESW,< 4993 LDNAM: MOVE T,[POINT 6,CURNAM] ;POINTER 4994 SETZM CURNAM ;CLEAR OLD NAME INCASE FEWER CHARS. IN NEW 4995 MOVNI D,6 ;SET COUNT 4996 TLZ W,740000 ;REMOVE CODE BITS 4997 SETNAM: IDIVI W,50 ;CONVERT FROM RAD 50 4998 HRLM C,(P) 4999 AOJGE D,.+2 5000 PUSHJ P,SETNAM 5001 HLRZ C,(P) 5002 JUMPE C,INAM 5003 ADDI C,17 5004 CAILE C,31 5005 ADDI C,7 5006 CAIG C,72 ;REMOVE SPECIAL CHARS. (. $ %) 5007 IDPB C,T 5008 INAM: POPJ P, > 5009 5010 5011 ;SPECIAL ENTRY POINT WITH NUMBER IN REGISTER W, FALLS THRU TO RCNUM 5012 003441' 200 15 0 00 000012 RCNUMW: MOVE Q,W ;COPY NUMBER INTO PROPER REGISTER 5013 5014 ;YE OLDE RECURSIVE NUMBER PRINTER 5015 ;PRINTS Q, WITH LEADING ZEROES SUPPRESSED; USES A AND T 5016 5017 003442' 231 15 0 00 000012 RCNUM: IDIVI Q,12 ;RADIX DECIMAL 5018 003443' 271 16 0 00 000060 ADDI A,"0" 5019 003444' 506 16 0 17 000000 HRLM A,(P) 5020 003445' 322 15 0 00 003447' JUMPE Q,.+2 5021 003446' 260 17 0 00 003442' PUSHJ P,RCNUM 5022 003447' 554 10 0 17 000000 HLRZ T,(P) 5023 003450' 254 00 0 00 003472' JRST TYPE2 5024 5025 5026 003451' 260 17 0 00 003452' SPACES: PUSHJ P,SP1 5027 003452' 260 17 0 00 003453' SP1: PUSHJ P,SPACE 5028 003453' 201 10 0 00 000040 SPACE: MOVEI T,40 5029 003454' 254 00 0 00 003472' JRST TYPE2 5030 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 81 LOADER MAC 24-MAR-75 15:43 PRINT SUBROUTINES 5031 ; ACCUMULATORS USED: Q,T,D 5032 5033 003455' 211 15 0 00 000006 PWORD: MOVNI Q,6 ;SET CHARACTER COUNT TO SIX 5034 003456' 200 07 0 00 003717' PWORD1: MOVE D,LSTPT ;ENTER HERE WITH Q PRESET 5035 003457' 134 10 0 00 000007 PWORD2: ILDB T,D ;LOAD NEXT CHAR. TO BE OUTPUT 5036 003460' 260 17 0 00 003471' PUSHJ P,TYPE ;OUTPUT CHARACTER 5037 003461' 341 15 0 00 003457' AOJL Q,PWORD2 5038 003462' 263 17 0 00 000000 POPJ P, 5039 5040 5041 ;TYPEOUT SUBROUTINE - THE CHARACTER SUPPLIED IN T IS CONVERTED TO ASCII 5042 ;AND IS OUTPUT ON THE CONSOLE AND/OR THE SPECIFIED LOADER MAP OUTPUT 5043 ;DEVICE 5044 5045 003463' 260 17 0 00 003465' CRLFLF: PUSHJ P,CRLF 5046 003464' 661 00 0 00 000020 FCRLF: TLO F,FCONSW ;INSURE TTY OUTPUT 5047 003465' 402 00 0 00 004141' CRLF: SETZM TABCNT ;RESET TAB COUNT ON NEW LINE 5048 003466' 201 10 0 00 000015 MOVEI T,15 ;CARRIAGE RETURN LINE FEED 5049 003467' 260 17 0 00 003472' PUSHJ P,TYPE2 5050 003470' 644 10 0 00 000007 TRCA T,7 ;CR.XOR.7=LF 5051 003471' 201 10 0 10 000040 TYPE: MOVEI T,40(T) ;CONVERT SIXBIT TO ASCII 5052 003472' 607 01 0 00 020000 TYPE2: TLNN N,AUXSWI ;IS THER AN AUXILIARY DEVICE? 5053 003473' 254 00 0 00 003505' JRST TYPE3 ;NO, DONT OUTPUT TO IT 5054 003474' 663 01 0 00 040000 TLOE N,AUXSWE ;IS AUX. DEV. ENTERED? 5055 003475' 254 00 0 00 003500' JRST TYPE2A ; YES, SKIP 5056 003476' 260 17 0 00 003342' PUSHJ P,IAD2 ;NOPE, DO SO! 5057 003477' 254 00 0 00 003505' JRST TYPE3 ;ERROR RETURN 5058 003500' 377 00 0 00 004156' TYPE2A: SOSG ABUF2 ;SPACE LEFT IN BUFFER? 5059 003501' 067 02 0 00 000000 OUTPUT 2, ;CREATE A NEW BUFFER 5060 003502' 136 10 0 00 004155' IDPB T,ABUF1 ;DEPOSIT CHARACTER 5061 IFN RPGSW,< 5062 TRNN F,NOTTTY ;IF TTY IS ANOTHER DEVICE 5063 ;DON'T OUTPUT TO IT> 5064 003503' 607 00 0 00 000020 TLNN F,FCONSW ;FORCE OUTPUT TO CONSOLE TOO? 5065 003504' 263 17 0 00 000000 POPJ P, ;NOPE 5066 003505' 336 00 0 00 004150' TYPE3: SKIPN BUFO2 ;END OF BUFFER 5067 003506' 067 03 0 00 000000 OUTPUT 3, ;FORCE OUTPUT NOW 5068 003507' 136 10 0 00 004147' IDPB T,BUFO1 ;DEPOSIT CHARACTER 5069 003510' 306 10 0 00 000012 CAIN T,12 ;END OF LINE 5070 003511' 067 03 0 00 000000 OUTPUT 3, ;FORCE AN OUTPUT 5071 003512' 263 17 0 00 000000 POPJ P, 5072 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 82 LOADER MAC 24-MAR-75 15:43 SYMBOL PRINT - RADIX 50 5073 SUBTTL SYMBOL PRINT - RADIX 50 5074 5075 ; ACCUMULATORS USED: D,T 5076 5077 003513' 200 10 0 00 000013 PRNAME: MOVE T,C ;LOAD SYMBOL 5078 003514' 621 10 0 00 740000 TLZ T,740000 ;ZERO CODE BITS 5079 003515' 311 10 0 00 006417' CAML T,[50*50*50*50*50] ;SYMBOL LEFT JUSTIFIED 5080 003516' 254 00 0 00 003532' JRST SPT0 ;YES 5081 003517' 261 17 0 00 000010 PUSH P,T 5082 003520' 261 17 0 00 000013 PUSH P,C 5083 003521' 201 13 0 00 000006 MOVEI C,6 5084 003522' 201 07 0 00 000001 MOVEI D,1 5085 003523' 231 10 0 00 000050 IDIVI T,50 5086 003524' 326 11 0 00 003526' JUMPN V,.+2 5087 003525' 221 07 0 00 000050 IMULI D,50 5088 003526' 366 13 0 00 003523' SOJN C,.-3 5089 003527' 262 17 0 00 000013 POP P,C 5090 003530' 262 17 0 00 000010 POP P,T 5091 003531' 220 10 0 00 000007 IMUL T,D 5092 003532' 211 07 0 00 000006 SPT0: MOVNI D,6 ;LOAD CHAR. COUNT 5093 003533' 231 10 0 00 000050 SPT: IDIVI T,50 ;THE REMAINDER IS THE NEXT CHAR. 5094 003534' 506 11 0 17 000000 HRLM V,(P) ;STORE IN LH. OF PUSHDOWN LIST 5095 003535' 345 07 0 00 003537' AOJGE D,.+2 ;SKIP IF NO CHARS. REMAIN 5096 003536' 260 17 0 00 003533' PUSHJ P,SPT ;RECURSIVE CALL FOR NEXT CHAR. 5097 003537' 554 10 0 17 000000 HLRZ T,(P) ;LOAD FROM LH. OF PUSHDOWN LIST 5098 003540' 322 10 0 00 003471' JUMPE T,TYPE ;BLANK 5099 003541' 271 10 0 00 000057 ADDI T,60-1 5100 003542' 303 10 0 00 000071 CAILE T,71 5101 003543' 271 10 0 00 000007 ADDI T,101-72 5102 003544' 303 10 0 00 000132 CAILE T,132 5103 003545' 275 10 0 00 000070 SUBI T,134-44 5104 003546' 306 10 0 00 000043 CAIN T,43 5105 003547' 201 10 0 00 000056 MOVEI T,56 5106 003550' 254 00 0 00 003472' JRST TYPE2 5107 5108 003551' 260 17 0 00 003465' TAB1: PUSHJ P,CRLF 5109 003552' 350 10 0 00 004141' TAB: AOS T,TABCNT 5110 003553' 306 10 0 00 000005 CAIN T,5 5111 003554' 254 00 0 00 003551' JRST TAB1 5112 003555' 603 01 0 00 020000 TLNE N,AUXSWI ;TTY BY DEFAULT? 5113 003556' 602 00 0 00 040000 TRNE F,TTYFL 5114 003557' 254 00 0 00 003452' JRST SP1 5115 003560' 201 10 0 00 000011 MOVEI T,11 5116 003561' 254 00 0 00 003472' JRST TYPE2 5117 5118 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 83 LOADER MAC 24-MAR-75 15:43 SYMBOL PRINT - RADIX 50 5119 5120 003562' 133 00 0 00 000001 OTOD: IBP N 5121 003563' 231 15 0 00 000012 OTOD1: IDIVI Q,^D10 5122 003564' 271 15 0 00 000020 ADDI Q,20 ;FORM SIXBIT 5123 003565' 136 15 0 00 000001 IDPB Q,N 5124 003566' 271 16 0 00 000020 ADDI A,20 5125 003567' 136 16 0 00 000001 IDPB A,N 5126 003570' 263 17 0 00 000000 POPJ P, 5127 5128 003571' 52 41 56 46 45 42 DTAB: SIXBIT /JANFEB/ 5129 003572' 55 41 62 41 60 62 SIXBIT /MARAPR/ 5130 003573' 55 41 71 52 65 56 SIXBIT /MAYJUN/ 5131 003574' 52 65 54 41 65 47 SIXBIT /JULAUG/ 5132 003575' 63 45 60 57 43 64 SIXBIT /SEPOCT/ 5133 003576' 56 57 66 44 45 43 SIXBIT /NOVDEC/ 5134 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 84 LOADER MAC 24-MAR-75 15:43 ERROR MESSAGE PRINT SUBROUTINE 5135 SUBTTL ERROR MESSAGE PRINT SUBROUTINE 5136 5137 ; FORM OF CALL: 5138 5139 ; JSP A,ERRPT 5140 ; SIXBIT // 5141 5142 ; ACCUMULATORS USED: T,V,C,W 5143 5144 003577' 260 17 0 00 003464' ERRPT: PUSHJ P,FCRLF ;ROOM AT THE TOP 5145 003600' 260 17 0 00 003670' PUSHJ P,PRQ ;START OFF WITH ? 5146 003601' 261 17 0 00 000015 ERRPT0: PUSH P,Q ;SAVE Q 5147 003602' 334 11 0 00 003642' SKIPA V,ERRPT5 5148 003603' 260 17 0 00 003471' ERRPT1: PUSHJ P,TYPE 5149 003604' 134 10 0 00 000011 ILDB T,V 5150 003605' 306 10 0 00 000040 CAIN T,'@' 5151 003606' 254 00 0 00 003635' JRST ERRPT4 5152 003607' 306 10 0 00 000005 CAIN T,'%' 5153 003610' 254 00 0 00 003660' JRST ERRPT9 5154 003611' 306 10 0 00 000001 CAIN T,'!' 5155 003612' 254 00 0 00 003637' JRST ERRP42 ;JUST RETURN,LEAVE FCONSW ON 5156 003613' 302 10 0 00 000003 CAIE T,'#' 5157 003614' 254 00 0 00 003603' JRST ERRPT1 5158 003615' 336 13 0 00 004162' SKIPN C,DTIN 5159 003616' 254 00 0 00 003635' JRST ERRPT4 5160 003617' 211 15 0 00 000014 MOVNI Q,14 5161 003620' 201 12 0 00 000077 MOVEI W,77 5162 003621' 612 13 0 00 000012 ERRPT2: TDNE C,W 5163 003622' 254 00 0 00 003625' JRST ERRPT3 5164 003623' 242 12 0 00 000006 LSH W,6 5165 003624' 341 15 0 00 003621' AOJL Q,ERRPT2 5166 003625' 200 12 0 00 003643' ERRPT3: MOVE W,ERRPT6 5167 003626' 260 17 0 00 003456' PUSHJ P,PWORD1 5168 003627' 336 12 0 00 004163' SKIPN W,DTIN1 5169 003630' 254 00 0 00 003635' JRST ERRPT4 5170 003631' 242 12 0 00 777772 LSH W,-6 5171 003632' 661 12 0 00 160000 TLO W,160000 5172 003633' 211 15 0 00 000004 MOVNI Q,4 5173 003634' 260 17 0 00 003456' PUSHJ P,PWORD1 5174 003635' 260 17 0 00 003465' ERRPT4: PUSHJ P,CRLF 5175 003636' 621 00 0 00 000020 ERRP41: TLZ F,FCONSW ;ONE ERROR PER CONSOLE 5176 003637' 262 17 0 00 000015 ERRP42: POP P,Q ;***DMN*** FIX FOR ILC MESSAGE 5177 003640' 340 11 0 00 000000 AOJ V, ;PROGRAM BUMMERS BEWARE: 5178 003641' 254 00 1 00 000011 JRST @V ;V HAS AN INDEX OF A 5179 5180 003642' 44 06 0 16 000000 ERRPT5: POINT 6,0(A) 5181 003643' 00 46 51 54 45 00 ERRPT6: SIXBIT / FILE / 5182 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 85 LOADER MAC 24-MAR-75 15:43 ERROR MESSAGE PRINT SUBROUTINE 5183 003644' 260 17 0 00 003670' ERRPT8: PUSHJ P,PRQ ;START WITH ? 5184 003645' 305 10 0 00 000140 CAIGE T,140 ;IS IT A NON-PRINTING CHAR? 5185 003646' 301 10 0 00 000040 CAIL T,40 5186 003647' 254 00 0 00 003655' JRST ERRP8 5187 003650' 261 17 0 00 000010 PUSH P,T 5188 003651' 201 10 0 00 000136 MOVEI T,136 ;UP ARROW 5189 003652' 260 17 0 00 003472' PUSHJ P,TYPE2 5190 003653' 262 17 0 00 000010 POP P,T 5191 003654' 640 10 0 00 000100 TRC T,100 ;CONVERT TO PRINTING CHAR. 5192 003655' 260 17 0 00 003472' ERRP8: PUSHJ P,TYPE2 5193 003656' 260 17 0 00 003453' ERRPT7: PUSHJ P,SPACE 5194 003657' 254 00 0 00 003601' JRST ERRPT0 5195 5196 003660' 201 11 1 00 000011 ERRPT9: MOVEI V,@V 5197 003661' 261 17 0 00 000011 PUSH P,V 5198 003662' 265 16 0 00 003656' ERROR 7, 5199 003666' 262 17 0 00 000011 POP P,V 5200 003667' 254 00 0 00 003636' JRST ERRP41 5201 5202 ;PRINT QUESTION MARK 5203 5204 003670' 261 17 0 00 000010 PRQ: PUSH P,T ;SAVE 5205 003671' 661 00 0 00 000020 TLO F,FCONSW ;FORCE TTY OUTPUT ON ANY ERROR 5206 003672' 201 10 0 00 000077 MOVEI T,"?" ;PRINT ? 5207 003673' 260 17 0 00 003472' PUSHJ P,TYPE2 ;... 5208 003674' 262 17 0 00 000010 POP P,T ;RESTORE 5209 003675' 263 17 0 00 000000 POPJ P, ;RETURN 5210 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 86 LOADER MAC 24-MAR-75 15:43 INPUT - OUTPUT INTERFACE 5211 SUBTTL INPUT - OUTPUT INTERFACE 5212 5213 ;BINARY INPUT SUBROUTINE - RETURNS A WORD IN W 5214 003676' 260 17 0 00 003700' WORDPR: PUSHJ P,WORD ;GET FIRST WORD OF PAIR 5215 003677' 200 13 0 00 000012 MOVE C,W ;KEEP IT HANDY 5216 003700' 375 00 0 00 004161' WORD: SOSGE BUFR2 ;SKIP IF BUFFER NOT EMPTY 5217 003701' 254 00 0 00 003704' JRST WORD2 5218 003702' 134 12 0 00 004160' WORD1: ILDB W,BUFR1 ;PICK UP 36 BIT WORD 5219 003703' 263 17 0 00 000000 POPJ P, 5220 5221 003704' 056 01 0 00 000000 WORD2: IN 1, ;GET NEXT BUFFER LOAD 5222 003705' 254 00 0 00 003700' JRST WORD ;DATA OK - CONTINUE LOADING 5223 003706' 063 01 0 00 020000 WORD3: STATZ 1,IODEND ;TEST FOR EOF 5224 003707' 254 00 0 00 001201' JRST EOF ;END OF FILE EXIT 5225 003710' 265 16 0 00 003577' ERROR ,< /INPUT ERROR#/> 5226 003713' 254 00 0 00 000145' JRST LD2 ;GO TO ERROR RETURN 5227 5228 5229 003714' 000002 000002 SE3: XWD 2,2 ;SYMBOL POINTER INCREMENT 5230 003715' 777740 003737' PDLPT: IOWD PDLSIZ,PDLST ;INITIAL PUSHDOWN STACK 5231 003716' 034372 246575 COMM: SQUOZE 0,.COMM. 5232 003717' 44 06 0 00 000012 LSTPT: POINT 6,W ;CHARACTER POINTER TO W 5233 5234 040000 IOBKTL==40000 5235 400000 IOIMPM==400000 5236 200000 IODERR==200000 5237 100000 IODTER==100000 5238 020000 IODEND==20000 5239 5240 740000 IOBAD==IODERR!IODTER!IOBKTL!IOIMPM 5241 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 87 LOADER MAC 24-MAR-75 15:43 IMPURE CODE 5242 SUBTTL IMPURE CODE 5243 IFN PURESW,< RELOC 5244 LOWCOD: RELOC 5245 HICODE: 5246 PHASE LOWCOD> 5247 5248 5249 003720' 265 16 0 00 003656' DBUF1: JSP A,ERRPT7 5250 003721' 64 51 32 55 45 00 DBUF: SIXBIT /TI:ME DY-MON-YR @/ 5251 003722' 44 71 15 55 57 56 5252 003723' 15 71 62 00 40 00 5253 003724' 263 17 0 00 000000 POPJ P, 5254 5255 ;DATA FOR PURE OPEN UUO'S 5256 5257 IFN SPCHN,< 5258 CHNENT: 0 5259 SIXBIT .CHN. 5260 0 5261 0 5262 CHNOUT: EXP 16 5263 SIXBIT /DSK/ 5264 0 5265 > 5266 IFN RPGSW,< 5267 OPEN1: EXP 1 5268 RPG1: Z 5269 XWD 0,CTLIN 5270 > 5271 5272 003725' 000000 000001 OPEN2: EXP 1 5273 003726' 000 00 0 00 000000 LD5C1: Z 5274 003727' 004154' 000000 XWD ABUF,0 5275 5276 003730' 000000 000014 OPEN3: EXP 14 5277 003731' 000 00 0 00 000000 ILD1: Z 5278 003732' 000000 004157' XWD 0,BUFR 5279 5280 IFN MONLOD,< 5281 OPEN4: EXP 16 5282 DIN1: SIXBIT /DSK/ 5283 Z 5284 > 5285 5286 IFN PURESW, 5288 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 88 LOADER MAC 24-MAR-75 15:43 DATA STORAGE 5289 SUBTTL DATA STORAGE 5290 5291 IFN PURESW,< RELOC 5292 LOWCOD: BLOCK CODLN> 5293 003733' DATBEG:! ;STORAGE AREA CLEARED FROM HERE ON INITIALIZATION 5294 003733' ZBEG:! ;CLEARED FROM HERE TO ZEND ON REINITIALIZATION 5295 003733' MDG: BLOCK 1 ;COUNTER FOR MUL DEF GLOBALS 5296 IFN REENT, 5297 003734' STADDR: BLOCK 1 ;HOLDS STARTING ADDRESS 5298 IFN KUTSW, 5299 IFN REENT, 5300 IFN NAMESW, 5301 003735' IFN B11SW, 5302 IFN FAILSW, 5303 IFN SPCHN, 5304 003735' ZEND==.-1 5305 003736' PDSAV: BLOCK 1 ;SAVED PUSHDOWN POINTER 5306 003737' COMSAV: BLOCK 1 ;LENGTH OF COMMON 5307 003740' PDLST: BLOCK PDLSIZ 5308 5309 004000' F.C: BLOCK 1 5310 004001' BLOCK 1 ;STORE N HERE 5311 004002' BLOCK 1 ;STORE X HERE 5312 004003' BLOCK 1 ;STORE H HERE 5313 004004' BLOCK 1 ;STORE S HERE 5314 004005' BLOCK 1 ;STORE R HERE 5315 004006' B.C: BLOCK 1 5316 5317 004007' NAMPTR: BLOCK 1 ;POINTER TO PROGRAM NAME 5318 IFN NAMESW,< 5319 PRGNAM: BLOCK 1 ;STORE BINARY FILE NAME-USED TO MAKE SYSTAT MORE MEANINGFUL 5320 > 5321 IFN REENT,< 5322 HIGHX: BLOCK 1 5323 HIGHR: BLOCK 1 ;HOLD X AND R WHILE LOADING LOW SEG PIECES 5324 LOWX: BLOCK 1 5325 HVAL: BLOCK 1 ;ORG OF HIGH SEG> 5326 004010' HVAL1: BLOCK 1 ;ACTUAL ORG OF HIGH SEG 5327 004011' LOWR: BLOCK 1 ;HOLD X AND R WHILE LOADING HISEG PIECES 5328 IFN COBSW, 5329 IFN DMNSW, 5330 IFN LDAC, 5331 IFN WFWSW, 5333 IFN SAILSW, 5335 IFN MONLOD,< 5336 HIRES: BLOCK 1 ;HIGHEST RESIDENT LOADED ADDRESS+1 5337 XRES: BLOCK 1 ;DISPLACEMENT OF RESIDENT PORTION OF LOADED IMAGE 5338 XCUR: BLOCK 1 ;DISPLACEMENT OF CURRENT PORTION OF LOADED IMAGE (WINDOW) 5339 DILADD: BLOCK 1 ;LOWEST ADDRESS IN CURRENT WINDOW 5340 DIHADD: BLOCK 1 ;HIGHEST ADDRESS IN CURRENT WINDOW+1 5341 DIEND: BLOCK 1 ;ADDRESS+1 OF TOP OF WINDOW BUFFER 5342 CURSET: BLOCK 1 ;CURRENT USETI/USETO NUMBER 5343 RESBLK: BLOCK 1 ;NUMBER OF BLOCKS IN RESIDENT PORTION LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 88-1 LOADER MAC 24-MAR-75 15:43 DATA STORAGE 5344 GENERI: BLOCK 1 ;NAME OF CURRENT F/S 5345 > 5346 IFN TENEX,< 5347 NLSTGL: BLOCK 1 ;FLAG INHIBITS MULT. LIST OF UNDEF. GLOBALS> 5348 004012' PT1: BLOCK 1 5349 IFN RPGSW,< 5350 NONLOD: BLOCK 1 5351 SVRPG: BLOCK 1 5352 IFN TEMP,< 5353 TMPFIL: BLOCK 2 5354 TMPFLG: BLOCK 1> 5355 > 5356 004013' OLDDEV: BLOCK 1 ;OLD DEVICE ON LIBRARY SEARCH 5357 004014' LSTDEV: BLOCK 1 ;LAST DEVICE BEFORE THIS ONE 5358 IFN PP,< 5359 004015' PPPN: BLOCK 1 ;PERM PPN 5360 004016' PPN: BLOCK 1 ;TEMP PPN 5361 004017' PPNE: BLOCK 1 5362 004020' PPNV: BLOCK 1 5363 004021' PPNW: BLOCK 1 5364 004022' IFN SFDSW, 5369 > 5370 IFN B11SW,< 5371 004045' GLBCNT: BLOCK 1 5372 004046' HDSAV: BLOCK 1 5373 004047' HEADNM: BLOCK 1 5374 004050' LFTHSW: BLOCK 1 5375 004051' OPNUM: BLOCK 1 5376 004052' SVHWD: BLOCK 1 5377 004053' SVSAT: BLOCK 1 5378 004054' PPDB: BLOCK PPDL+1 5379 > 5380 004135' HISTRT: BLOCK 1 ;JOBREL AT START OF LOADING 5381 IFN L,< 5382 004136' LSPXIT: BLOCK 1 5383 004137' RINITL: BLOCK 1 5384 004140' OLDJR: BLOCK 1> 5385 IFN SPCHN,< 5386 LINKNR: BLOCK 1 ;CURRENT OVERLAY LINK NUMBER 5387 CHNTAB: BLOCK 1 ;CHAIN VECTOR TABLE,, NEXT BLOCK 5388 BEGOV: BLOCK 1 ;RELATIVE ADDRESS OF BEGINNING OF OVERLAY 5389 CHNACN: BLOCK 1 ;RELATIVE POINTER FOR SAVED NAMPTR 5390 > 5391 004141' TABCNT: BLOCK 1 5392 004142' LIMBO: BLOCK 1 ;WHERE OLD CHARS. ARE STORED 5393 004143' IFN DIDAL, 5394 004144' IFN EXPAND, 5395 IFN ALGSW,<%OWN: BLOCK 1 ;ADDRESS OF ALGOL OWN AREA 5396 OWNLNG: BLOCK 1 ;LENGTH OF OWN BLOCK> 5397 IFN REENT, 5398 004145' IFN FORSW, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 88-2 LOADER MAC 24-MAR-75 15:43 DATA STORAGE 5399 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 89 LOADER MAC 24-MAR-75 15:43 BUFFER HEADERS AND HEADER HEADERS 5400 SUBTTL BUFFER HEADERS AND HEADER HEADERS 5401 5402 004146' BUFO: BLOCK 1 ;CONSOLE INPUT HEADER HEADER 5403 004147' BUFO1: BLOCK 1 5404 004150' BUFO2: BLOCK 1 5405 5406 004151' BUFI: BLOCK 1 ;CONSOLE OUTPUT HEADER HEADER 5407 004152' BUFI1: BLOCK 1 5408 004153' BUFI2: BLOCK 1 5409 5410 004154' ABUF: BLOCK 1 ;AUXILIARY OUTPUT HEADER HEADER 5411 004155' ABUF1: BLOCK 1 5412 004156' ABUF2: BLOCK 1 5413 5414 004157' BUFR: BLOCK 1 ;BINARY INPUT HEADER HEADER 5415 004160' BUFR1: BLOCK 1 5416 004161' BUFR2: BLOCK 1 5417 5418 004162' DTIN: BLOCK 1 ;DECTAPE INPUT BLOCK 5419 004163' DTIN1: BLOCK 3 5420 5421 004166' DTOUT: BLOCK 1 ;DECTAPE OUTPUT BLOCK 5422 004167' DTOUT1: BLOCK 3 5423 5424 IFN MONLOD,< 5425 DIOUT: 5426 IFE PURESW, 5427 IFN PURESW, 5428 BLOCK 1 5429 DIOUT1: BLOCK .RBEST-2 ;BIG WASTE OF SPACE IN ORDER TO PRE ALLOCATE SOME DISK 5430 IFE PURESW, 5431 IFN PURESW, ;.RBEST 5432 BLOCK 1 ;.RBALC 5433 > 5434 5435 004172' TTY1: BLOCK TTYL ;TTY BUFFER AREA 5436 004244' BUF1: BLOCK BUFL ;LOAD BUFFER AREA 5437 004652' AUX: BLOCK ABUFL ;AUX BUFFER AREA 5438 5439 IFN MONLOD,< 5440 LOLIST: BLOCK 2 ;IOLIST FOR LOW PART OF IMAGE 5441 HILIST: BLOCK 2 ;IOLIST FOR HIGH (VIRTUAL) PART OF LOADED IMAGE 5442 > 5443 5444 IFN RPGSW,< 5445 CTLIN: BLOCK 3 5446 CTLNAM: BLOCK 3 5447 CTLBUF: BLOCK 203+1 5448 > 5449 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 90 LOADER MAC 24-MAR-75 15:43 FORTRAN DATA STORAGE 5450 SUBTTL FORTRAN DATA STORAGE 5451 5452 IFN STANSW, 5453 005055' SBRNAM: BLOCK 1 5454 5455 5456 IFE K,< 5457 005056' TOPTAB: BLOCK 1 ;TOP OF TABLES 5458 005057' CTAB: BLOCK 1; COMMON 5459 005060' ATAB: BLOCK 1; ARRAYS 5460 005061' STAB: BLOCK 1; SCALARS 5461 005062' GSTAB: BLOCK 1; GLOBAL SUBPROGS 5462 005063' AOTAB: BLOCK 1; OFFSET ARRAYS 5463 005064' CCON: BLOCK 1; CONSTANTS 5464 005065' PTEMP: BLOCK 1; PERMANENT TEMPS 5465 005066' TTEMP: BLOCK 1; TEMPORARY TEMPS 5466 IFN SPCHN,< 5467 SAVBAS: BLOCK 1 ;HIGHEST RELATIVE ADDRESS IN PROGRAM> 5468 005067' COMBAS: BLOCK 1; BASE OF COMMON 5469 005070' LLC: BLOCK 1; PROGRAM ORIGIN 5470 005071' BITP: BLOCK 1; BIT POINTER 5471 005072' BITC: BLOCK 1; BIT COUNT 5472 005073' PLTP: BLOCK 1; PROGRAMMER LABEL TABLE 5473 005074' MLTP: BLOCK 1; MADE LABEL TABLE 5474 005075' SDS: BLOCK 1 ;START OF DATA STATEMENTS 5475 005076' SDSTP: BLOCK 1 ;START OF DATA STATEMENTS POINTER 5476 005077' BLKSIZ: BLOCK 1; BLOCK SIZE 5477 005100' MODIF: BLOCK 1; ADDRESS MODIFICATION +1 5478 005101' SVFORH: BLOCK 1 ;SAVE H WHILE LOADING F4 PROGRAMS 5479 5480 5481 005102' IOWDPP: BLOCK 2 5482 005104' CT1: BLOCK 1 ;TEMP FOR C 5483 005105' LTC: BLOCK 1 5484 005106' ITC: BLOCK 1 5485 005107' ENC: BLOCK 1 5486 005110' WCNT: BLOCK 1 ;DATA WORD COUNT 5487 005111' RCNT: BLOCK 1 ;DATA REPEAT COUNT 5488 5489 005112' LTCTEM: BLOCK 1 ;TEMP FOR LTC 5490 005113' DWCT: BLOCK 1 ;DATA WORD COUNT 5491 IFN MANTIS, 5492 > 5493 5494 5495 005114' VAR ;DUMP VARIABLES 5496 005115' DATEND:! ;END OF AREA CLEARED ON INITIALIZATION 5497 IFN PURESW, 5498 5499 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 91 LOADER MAC 24-MAR-75 15:43 REMAP UUO 5500 SUBTTL REMAP UUO 5501 5502 IFN PURESW, 5503 5504 005115' 047 11 0 00 000011 HIGO: CORE V, ;CORE UUO 5505 005116' 255 00 0 00 000000 JFCL ;NEVER FAILS 5506 005117' HINOGO: 5507 IFN REENT, 5521 HIRET: IFN NAMESW,< 5522 IFE TENEX, 5523 IFN TENEX, 5525 SETNAM W, ;SET IT FOR VERSION WATCHING> 5526 005117' 254 00 0 00 000000 JRST 0 ;EXECUTE CODE IN ACC'S 5527 5528 IFN REENT,< 5529 REMPFL: TTCALL 3,SEGMES ;PRINT SEGMES 5530 EXIT ;AND DIE 5531 SEGMES: ASCIZ /?REMAP FAILURE/ 5532 5533 5534 > 5535 IFN PURESW, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 92 LOADER MAC 24-MAR-75 15:43 LISP LOADER 5536 SUBTTL LISP LOADER 5537 5538 ;END HERE IF 1K LOADER REQUESTED. 5539 IFN K, 5540 5541 IFN L,< XLIST ;THE LITERALS 5542 LIT ;MUST DUMP NOW SO THEY GET OUTPUT 5543 LIST 5544 5545 LODMAK: MOVEI A,LODMAK 5546 MOVEM A,137 ;SET UP TO SAVE THE LISP LOADER 5547 INIT 17 5548 SIXBIT /DSK/ 5549 0 5550 HALT 5551 ENTER LMFILE 5552 HALT 5553 OUTPUT LMLST 5554 STATZ 740000 5555 HALT 5556 RELEASE 5557 EXIT 5558 LMFILE: SIXBIT /LISP/ 5559 SIXBIT /LOD/ 5560 0 5561 0 5562 LMLST: IOWD 1,.+1 ;IOWD 5563 IOWD LODMAK-LD+1,137 ;AND CORE IMAGE 5564 0 5565 END LODMAK>> 5566 5567 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 93 LOADER MAC 24-MAR-75 15:43 FORTRAN FOUR LOADER 5568 SUBTTL FORTRAN FOUR LOADER 5569 5570 005120' 603 00 0 00 000204 F4LD: TLNE F,SKIPSW!FULLSW ;ARE WE IN SKIP MODE 5571 005121' 254 00 0 00 006240' JRST REJECT ;YES,DON'T LOAD ANY OF THIS 5572 005122' 201 12 0 04 777776 MOVEI W,-2(S); GENERATE TABLES 5573 005123' 307 12 0 03 000000 CAIG W,(H) ;NEED TO EXPAND? 5574 IFN EXPAND, 5577 IFE EXPAND,< TLO F,FULLSW> 5578 005125' 661 01 0 00 000010 TLO N,F4SW; SET FORTRAN FOUR FLAG 5579 005126' 550 11 0 00 000005 HRRZ V,R; SET PROG BREAK INTO V 5580 005127' 202 11 0 00 005070' MOVEM V,LLC; SAVE FIRST WORD ADDRESS 5581 005130' 552 12 0 00 005074' HRRZM W,MLTP; MADE LABELS 5582 005131' 552 12 0 00 005073' HRRZM W,PLTP; PROGRAMMER LABELS 5583 005132' 270 12 0 00 006423' ADD W,[POINT 1,1]; GENERATE BIT-BYTE POINTER 5584 005133' 202 12 0 00 005071' MOVEM W,BITP 5585 005134' 202 12 0 00 005076' MOVEM W,SDSTP; FIRST DATA STATEMENT 5586 005135' 350 00 0 00 005076' AOS SDSTP; 5587 005136' 571 12 0 00 777734 HRREI W,-^D36; BITS PER WORDUM 5588 005137' 202 12 0 00 005072' MOVEM W,BITC; BIT COUNT 5589 005140' 260 17 0 00 005233' PUSHJ P,BITWX ;MAKE SURE OF ENOUGH SPACE 5590 005141' 200 12 0 00 006424' MOVE W,[JRST ALLOVE] ;LAST DATA STATEMENT 5591 005142' 202 12 0 04 000000 MOVEM W,(S) 5592 5593 005143' 260 17 0 00 003700' TEXTR: PUSHJ P,WORD; TEXT BY DEFAULT 5594 005144' 554 13 0 00 000012 HLRZ C,W 5595 005145' 306 13 0 00 777777 CAIN C,-1 5596 005146' 254 00 0 00 005513' JRST HEADER; HEADER 5597 005147' 201 13 0 00 000001 MOVEI C,1; RELOCATABLE 5598 005150' 607 00 0 00 000204 TLNN F,FULLSW!SKIPSW ;DON'T LOAD IF EITHER SET 5599 005151' 260 17 0 00 005212' PUSHJ P,BITW; SHOVE AND STORE 5600 005152' 254 00 0 00 005143' JRST TEXTR; LOOP FOR NEXT WORD 5601 5602 005153' 377 00 0 00 005077' ABS: SOSG BLKSIZ; MORE TO GET 5603 005154' 254 00 0 00 005143' JRST TEXTR; NOPE 5604 005155' 260 17 0 00 003700' ABSI: PUSHJ P,WORD; 5605 005156' 201 13 0 00 000000 MOVEI C,0; NON-RELOCATABLE 5606 005157' 607 00 0 00 000204 TLNN F,FULLSW!SKIPSW ;DON'T LOAD IF EITHER SET 5607 005160' 260 17 0 00 005212' PUSHJ P,BITW; TYPE 0 5608 005161' 254 00 0 00 005153' JRST ABS 5609 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 94 LOADER MAC 24-MAR-75 15:43 PROCESS TABLE ENTRIES 5610 SUBTTL PROCESS TABLE ENTRIES 5611 5612 005162' 603 00 0 00 000204 MDLB: TLNE F,FULLSW+SKIPSW; MADE LABEL PROC 5613 005163' 254 00 0 00 005173' JRST GLOBDF; NO ROOM AT THE IN 5614 005164' 554 13 0 00 005074' HLRZ C,MLTP; GET PRESENT SIZE 5615 005165' 315 13 0 00 005077' CAMGE C,BLKSIZ; IF NEW SIZE BIGGER, STR-R-RETCH 5616 005166' 260 17 0 00 005241' PUSHJ P,SMLT 5617 005167' 550 13 0 00 005074' HRRZ C,MLTP; GET BASE 5618 005170' 270 13 0 00 005077' MLPLC: ADD C,BLKSIZ; MAKE INDEX 5619 005171' 607 00 0 00 000204 TLNN F,FULLSW+SKIPSW; DONT LOAD 5620 005172' 552 11 0 13 000000 HRRZM V,(C); PUT AWAY DEFINITION 5621 005173' 260 17 0 00 003700' GLOBDF: PUSHJ P,WORD 5622 005174' 603 00 0 00 000204 TLNE F,FULLSW+SKIPSW ;SKIPPING THIS PROG? 5623 005175' 254 00 0 00 005143' JRST TEXTR ;YES, DON'T DEFINE 5624 005176' 201 13 0 11 000000 MOVEI C,(V); AND LOC 5625 005177' 250 12 0 00 000013 EXCH W,C 5626 005200' 260 17 0 00 005657' PUSHJ P,SYMXX; PUT IN DDT-SYMBOL TABLE 5627 005201' 260 17 0 00 005233' PUSHJ P,BITWX 5628 005202' 254 00 0 00 005143' JRST TEXTR 5629 5630 005203' 603 00 0 00 000204 PLB: TLNE F,FULLSW+SKIPSW 5631 005204' 254 00 0 00 005173' JRST GLOBDF 5632 005205' 554 13 0 00 005073' HLRZ C,PLTP; PRESENT SIZE 5633 005206' 315 13 0 00 005077' CAMGE C,BLKSIZ 5634 005207' 260 17 0 00 005256' PUSHJ P,SPLT 5635 005210' 550 13 0 00 005073' HRRZ C,PLTP 5636 005211' 254 00 0 00 005170' JRST MLPLC 5637 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 95 LOADER MAC 24-MAR-75 15:43 STORE WORD AND SET BIT TABLE 5638 SUBTTL STORE WORD AND SET BIT TABLE 5639 5640 005212' 202 12 1 00 000002 BITW: MOVEM W,@X; STORE AWAY OFFSET 5641 005213' 136 13 0 00 005071' IDPB C,BITP; STORE BIT 5642 005214' 355 00 0 00 005072' AOSGE BITC; STEP BIT COUNT 5643 005215' 344 11 0 00 005233' AOJA V,BITWX; SOME MORE ROOM LEFT 5644 005216' 571 13 0 00 777734 HRREI C,-^D36; RESET COUNT 5645 005217' 202 13 0 00 005072' MOVEM C,BITC 5646 005220' 370 00 0 00 005073' SOS PLTP 5647 005221' 370 00 0 00 005071' SOS BITP; ALL UPDATED 5648 IFE EXPAND, 5651 005222' 550 13 0 00 005074' IFN EXPAND, 5660 005230' 550 10 0 00 005076' HRRZ T,SDSTP; GET DATA POINTER 5661 005231' 251 13 0 10 777777 BLT C,-1(T); MOVE DOWN LISTS 5662 005232' 340 11 0 00 000000 AOJ V,; STEP LOADER LOCATION 5663 BITWX: IFN REENT,< 5664 TLNE F,HIPROG 5665 JRST FORTHI> 5666 005233' 305 03 1 00 000002 CAIGE H,@X 5667 005234' 201 03 1 00 000002 MOVEI H,@X ;KEEP H SET RIGHT FOR HISEG STUFF 5668 005235' 550 10 0 00 005074' BITWX2: HRRZ T,MLTP 5669 005236' 307 10 0 03 000000 CAIG T,(H); OVERFLOW CHECK 5670 IFE EXPAND, 5671 IFN EXPAND, 5674 005240' 263 17 0 00 000000 POPJ P,; 5675 5676 005241' 274 13 0 00 005077' SMLT: SUB C,BLKSIZ; STRETCH 5677 005242' 204 12 0 00 005074' MOVS W,MLTP ;LEFT HALF HAS OLD BASE 5678 005243' 270 13 0 00 005074' ADD C,MLTP ;RIGHT HALF HAS NEW BASE 5679 005244' 553 00 0 00 000013 IFN EXPAND,< HRRZS C ;GET RID OF COUNT 5680 005245' 307 13 0 03 000000 CAIG C,(H) 5681 PUSHJ P,[PUSHJ P,XPAND 5682 POPJ P, 5683 ADD W,[XWD 2000,0] 5684 ADDI C,2000 5685 005246' 260 17 0 00 006432' JRST POPJM2]> 5686 005247' 542 13 0 00 005074' HRRM C,MLTP ;PUT IN NEW MLTP 5687 005250' 500 13 0 00 000012 HLL C,W ;FORM BLT POINTER 5688 005251' 271 12 0 13 000000 ADDI W,(C) ;LAST ENTRY OF MLTP 5689 005252' 504 12 0 00 005077' HRL W,BLKSIZ ;NEW SIZE OF MLTP 5690 005253' 502 12 0 00 005074' HLLM W,MLTP ;... 5691 005254' 251 13 0 12 000000 SLTC: BLT C,0(W); MOVE DOWN (UP?) 5692 005255' 263 17 0 00 000000 POPJ P,; LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 95-1 LOADER MAC 24-MAR-75 15:43 STORE WORD AND SET BIT TABLE 5693 5694 005256' 274 13 0 00 005077' SPLT: SUB C,BLKSIZ 5695 005257' 204 12 0 00 005074' MOVS W,MLTP; 5696 005260' 272 13 0 00 005073' ADDM C,PLTP 5697 005261' 270 13 0 00 005074' ADD C,MLTP 5698 005262' 553 00 0 00 000013 IFN EXPAND,< HRRZS C 5699 005263' 307 13 0 03 000000 CAIG C,(H) 5700 PUSHJ P,[PUSHJ P,XPAND 5701 POPJ P, 5702 ADD W,[XWD 2000,0] 5703 ADDI C,2000 5704 005264' 260 17 0 00 006432' JRST POPJM2]> 5705 005265' 542 13 0 00 005074' HRRM C,MLTP ;PUT IN NEW MLTP 5706 005266' 500 13 0 00 000012 HLL C,W 5707 005267' 554 12 0 00 005073' HLRZ W,PLTP ;OLD SIZE OF PL TABLE 5708 005270' 270 12 0 00 005073' ADD W,PLTP ;NEW BASE OF PL TABLE 5709 005271' 504 12 0 00 005077' HRL W,BLKSIZ ;NEW SIZE OF PL TABLE 5710 005272' 502 12 0 00 005073' HLLM W,PLTP ;INTO POINTER 5711 005273' 254 00 0 00 005254' JRST SLTC 5712 5713 5714 IFN REENT,< 5715 FORTHI: HRRZ T,.JBREL ;CHECK FOR CORE OVERFLOW 5716 CAIGE T,@X 5717 PUSHJ P,[PUSHJ P,HIEXP 5718 POPJ P, 5719 JRST POPJM3] ;CHECK AGAIN 5720 JRST BITWX2> 5721 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 96 LOADER MAC 24-MAR-75 15:43 PROCESS END CODE WORD 5722 SUBTTL PROCESS END CODE WORD 5723 5724 005274' 260 17 0 00 003700' ENDS: PUSHJ P,WORD; GET STARTING ADDRESS 5725 005275' 322 12 0 00 005302' JUMPE W,ENDS1; NOT MAIN 5726 005276' 271 12 0 05 000000 ADDI W,(R); RELOCATION OFFSET 5727 005277' 603 01 0 00 000002 TLNE N,ISAFLG; IGNORE STARTING ADDRESS 5728 005300' 254 00 0 00 005302' JRST ENDS1 5729 005301' 552 12 0 00 003734' HRRZM W,STADDR ;STORE STARTING ADDRESS 5730 IFN NAMESW, 5735 005302' 260 17 0 00 003676' ENDS1: PUSHJ P,WORDPR ;DATA STORE SIZE 5736 005303' 552 13 0 00 005065' HRRZM C,PTEMP ;NUMBER OF PERMANENT TEMPS 5737 005304' 202 11 0 00 005064' MOVEM V,CCON; START OF CONSTANTS AREA 5738 005305' 322 12 0 00 005314' JUMPE W,E1; NULL 5739 005306' 202 12 0 00 005077' MOVEM W,BLKSIZ ;SAVE COUNT 5740 005307' 201 12 0 11 000000 MOVEI W,0(V) ;DEFINE CONST. 5741 005310' 200 13 0 00 005534' MOVE C,CNR50 ;... 5742 005311' 607 00 0 00 000204 TLNN F,SKIPSW!FULLSW 5743 005312' 260 17 0 00 001365' PUSHJ P,SYMPT ;... 5744 005313' 260 17 0 00 005426' PUSHJ P,GSWD ;STORE CONSTANT TABLE 5745 005314' 201 12 0 11 000000 E1: MOVEI W,0(V); GET LOADER LOC 5746 005315' 250 12 0 00 005065' EXCH W,PTEMP; STORE INTO PERM TEMP POINTER 5747 005316' 270 12 0 00 005065' ADD W,PTEMP; FORM TEMP TEMP ADDRESS 5748 005317' 202 12 0 00 005066' MOVEM W,TTEMP; POINTER 5749 005320' 202 11 0 00 005062' MOVEM V,GSTAB; STORE LOADER LOC IN GLOBSUB 5750 005321' 202 03 0 00 005101' MOVEM H,SVFORH 5751 005322' 200 13 0 00 005532' MOVE C,TTR50 ;DEFINE %TEMP. 5752 005323' 603 00 0 00 000204 TLNE F,SKIPSW!FULLSW 5753 005324' 254 00 0 00 005332' JRST E1A 5754 005325' 260 17 0 00 001365' PUSHJ P,SYMPT ;... 5755 005326' 200 13 0 00 005533' MOVE C,PTR50 ;DEFINE (IF EXTANT) TEMP. 5756 005327' 201 12 0 11 000000 MOVEI W,0(V) ;... 5757 005330' 312 12 0 00 005066' CAME W,TTEMP ;ANY PERM TEMPS? 5758 005331' 260 17 0 00 001365' PUSHJ P,SYMPT ;YES, DEFINE 5759 005332' 260 17 0 00 003700' E1A: PUSHJ P,WORD; NUMBER OF GLOBSUBS 5760 005333' 322 12 0 00 005336' JUMPE W,E11 5761 005334' 202 12 0 00 005077' MOVEM W,BLKSIZ ;SIZE OF GLOBSUB 5762 005335' 260 17 0 00 005426' PUSHJ P,GSWD ;STORE GLOBSUB TABLE 5763 005336' 202 11 0 00 005061' E11: MOVEM V,STAB; SCALARS 5764 005337' 260 17 0 00 003700' PUSHJ P,WORD; HOW MANY? 5765 005340' 322 12 0 00 005342' JUMPE W,E21; NONE 5766 005341' 260 17 0 00 005433' PUSHJ P,GSWDPR ;STORE SCALAR TABLE 5767 005342' 202 11 0 00 005060' E21: MOVEM V,ATAB; ARRAY POINTER 5768 005343' 260 17 0 00 003700' PUSHJ P,WORD; COMMENTS FOR SCALARS APPLY 5769 005344' 322 12 0 00 005346' JUMPE W,E31 5770 005345' 260 17 0 00 005433' PUSHJ P,GSWDPR ;STORE ARRAY TABLE 5771 005346' 202 11 0 00 005063' E31: MOVEM V,AOTAB; ARRAYS OFFSET 5772 005347' 260 17 0 00 003700' PUSHJ P,WORD; SAME COMMENTS AS ABOVE 5773 005350' 322 12 0 00 005352' JUMPE W,E41 5774 005351' 260 17 0 00 005433' PUSHJ P,GSWDPR ;STORE ARRAY OFFSET TABLE 5775 005352' 260 17 0 00 003700' E41: PUSHJ P,WORD; TEMP, SCALAR, ARRAY SIZE 5776 005353' 603 00 0 00 000204 TLNE F,FULLSW!SKIPSW ;SKIPPING THIS PROG? LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 96-1 LOADER MAC 24-MAR-75 15:43 PROCESS END CODE WORD 5777 005354' 201 12 0 00 000000 MOVEI W,0 ;DON'T ACCEPT GLOB SUBPROG REQUESTS 5778 005355' 202 11 0 00 005057' MOVEM V,CTAB; SETUP COMMON TABLE POINTER 5779 005356' 270 12 0 00 005062' ADD W,GSTAB; GLOBAL SUBPROG BASE 5780 005357' 202 12 0 00 005067' MOVEM W,COMBAS; START OF COMMON 5781 IFN SPCHN, 5782 005360' 260 17 0 00 003700' PUSHJ P,WORD; COMMON BLOCK SIZE 5783 005361' 552 12 0 00 005077' HRRZM W,BLKSIZ 5784 005362' 322 12 0 00 005441' JUMPE W,PASS2; NO COMMON 5785 005363' 260 17 0 00 003676' COMTOP: PUSHJ P,WORDPR ;GET A COMMON PAIR 5786 005364' 603 00 0 00 000204 TLNE F,SKIPSW!FULLSW ;IF SKIPPING 5787 005365' 254 00 0 00 005404' JRST COMCO1 ;DON'T USE 5788 005366' 260 17 0 00 003045' PUSHJ P,SDEF; SEARCH 5789 005367' 254 00 0 00 005410' JRST COMYES; ALREADY THERE 5790 005370' 507 00 0 00 000012 HRLS W 5791 005371' 540 12 0 00 005067' HRR W,COMBAS; PICK UP THIS COMMON LOC 5792 005372' 607 00 0 00 000204 TLNN F,SKIPSW!FULLSW 5793 005373' 260 17 0 00 005657' PUSHJ P,SYMXX; DEFINE IT 5794 005374' 204 12 0 00 000012 MOVS W,W; SWAP HALFS 5795 005375' 270 12 0 00 005067' ADD W,COMBAS; UPDATE COMMON LOC 5796 005376' 542 12 0 00 005067' HRRM W,COMBAS; OLD BASE PLUS NEW SIZE 5797 005377' 557 00 0 00 000012 HLRZS W; RETURN ADDRESS 5798 005400' 621 13 0 00 400000 TLZ C,400000 5799 005401' 607 00 0 00 000204 TLNN F,SKIPSW!FULLSW 5800 005402' 260 17 0 00 005657' PUSHJ P,SYMXX 5801 005403' 260 17 0 00 005417' COMCOM: PUSHJ P,CWSTWX ;STORE A WORD PAIR 5802 005404' 370 00 0 00 005077' COMCO1: SOS BLKSIZ 5803 005405' 373 00 0 00 005077' SOSLE BLKSIZ 5804 005406' 254 00 0 00 005363' JRST COMTOP 5805 005407' 254 00 0 00 005441' JRST PASS2 5806 5807 005410' 554 13 0 16 000002 COMYES: HLRZ C,2(A); PICK UP DEFINITION 5808 005411' 313 12 0 00 000013 CAMLE W,C; CHECK SIZE 5809 005412' 254 00 0 00 002021' JRST ILC; ILLEGAL COMMON 5810 005413' 200 13 0 16 000001 MOVE C,1(A); NAME 5811 005414' 550 12 0 16 000002 HRRZ W,2(A); BASE 5812 005415' 254 00 0 00 005403' JRST COMCOM 5813 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 97 LOADER MAC 24-MAR-75 15:43 PROCESS END CODE WORD 5814 5815 005416' 260 17 0 00 003676' PRSTWX: PUSHJ P,WORDPR ;GET A WORD PAIR 5816 005417' 250 13 0 00 000012 CWSTWX: EXCH C,W ;SPACE TO STORE FIRST WORD OF PAIR? 5817 005420' 260 17 0 00 005422' PUSHJ P,WSTWX ;... 5818 005421' 250 13 0 00 000012 EXCH C,W ;THERE WAS; IT'S STORED 5819 005422' 603 00 0 00 000204 WSTWX: TLNE F,FULLSW!SKIPSW ;SPACE FOR ANOTHER WORD? 5820 005423' 263 17 0 00 000000 POPJ P, ;NOPE, RETURN 5821 005424' 202 12 1 00 000002 MOVEM W,@X ;YES, STORE IT. 5822 005425' 344 11 0 00 005233' AOJA V,BITWX ;TELL THE TABLES ABOUT IT; THEN RETURN 5823 5824 5825 005426' 260 17 0 00 003700' GSWD: PUSHJ P,WORD ;GET WORD FROM TABLE 5826 005427' 260 17 0 00 005422' PUSHJ P,WSTWX ;STASH IT 5827 005430' 372 00 0 00 005077' SOSE BLKSIZ ;FINISHED? 5828 005431' 254 00 0 00 005426' JRST GSWD ;NOPE, LOOP 5829 005432' 263 17 0 00 000000 POPJ P, ;TRA 1,4 5830 5831 005433' 202 12 0 00 005077' GSWDPR: MOVEM W,BLKSIZ ;KEEP COUNT 5832 005434' 260 17 0 00 005416' GSWDP1: PUSHJ P,PRSTWX ;GET AND STASH A PAIR 5833 005435' 370 00 0 00 005077' SOS BLKSIZ ;FINISHED? 5834 005436' 373 00 0 00 005077' SOSLE BLKSIZ ;... 5835 005437' 254 00 0 00 005434' JRST GSWDP1 ;NOPE, LOOP 5836 005440' 263 17 0 00 000000 POPJ P, ;TRA 1,4 5837 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 98 LOADER MAC 24-MAR-75 15:43 BEGIN HERE PASS2 TEXT PROCESSING 5838 SUBTTL BEGIN HERE PASS2 TEXT PROCESSING 5839 5840 005441' 271 11 0 02 000000 PASS2: ADDI V,(X) 5841 IFN REENT, 5843 005442' 202 11 0 00 005056' MOVEM V,TOPTAB ;SAVE FOR OVERLAP CHECKING 5844 005443' 603 00 0 00 000204 TLNE F,FULLSW+SKIPSW; ABORT? 5845 005444' 254 00 0 00 005674' JRST ALLOVE; YES 5846 005445' 200 11 0 00 005070' MOVE V,LLC ;PICK UP PROGRAM ORIGIN 5847 005446' 311 11 0 00 005064' CAML V,CCON ;IS THIS A PROGRAM? 5848 005447' 254 00 0 00 005746' JRST FBLKD ;NO, GO LOOK FOR FIRST BLK DATA 5849 IFE L, 5850 TLOE N,PGM1 ;YES, IS THIS FIRST F4 PROG? 5851 JRST NOPRG ;NO 5852 HRR W,COMBAS ;YES, PLACE PROG BREAK IN LH 5853 HRLM W,.JBCHN(X) ;FOR CHAIN> 5854 005450' 550 12 0 00 005073' NOPRG: HRRZ W,PLTP; GET PROG TABLE BASE 5855 005451' 554 13 0 00 005073' HLRZ C,PLTP; AND SIZE 5856 005452' 270 12 0 00 000013 ADD W,C; COMPUTE END OF PROG TABLE 5857 005453' 270 12 0 00 006423' ADD W,[POINT 1,1]; AND BEGINNING OF BIT TABLE 5858 005454' 250 12 0 00 005071' EXCH W,BITP; SWAP POINTERS 5859 005455' 134 13 0 00 005071' PASS2B: ILDB C,BITP; GET A BIT 5860 005456' 322 13 0 00 005477' JUMPE C,PASS2C; NO PASS2 PROCESSING 5861 005457' 260 17 0 00 005462' PUSHJ P,PROC; PROCESS A TAG 5862 005460' 254 00 0 00 005455' JRST PASS2B; MORE TO COME 5863 005461' 254 00 0 00 005746' JRST ENDTP; 5864 5865 005462' 135 13 0 00 006437' PROC: LDB C,[POINT 6,@X,23]; TAG 5866 005463' 402 00 0 00 005100' SETZM MODIF; ZERO TO ADDRESS MODIFIER 5867 005464' 622 13 0 00 000040 TRZE C,40 5868 005465' 350 00 0 00 005100' AOS MODIF 5869 005466' 201 12 0 00 005502' MOVEI W,TABDIS; HEAD OF TABLE 5870 005467' 505 12 0 00 777767 HRLI W,-TABLNG ;SET UP FOR AOBJN 5871 005470' 554 10 0 12 000000 HLRZ T,(W); GET ENTRY 5872 005471' 312 10 0 00 000013 CAME T,C; CHECK 5873 005472' 253 12 0 00 005470' AOBJN W,.-2 5874 005473' 325 12 0 00 001302' JUMPGE W,LOAD4A ;RAN OUT OF ENTRIES 5875 005474' 550 12 0 12 000000 HRRZ W,(W); GET DISPATCH 5876 005475' 135 13 0 00 006440' LDB C,[POINT 12,@X,35] 5877 005476' 254 00 0 12 000000 JRST (W); DISPATCH 5878 5879 5880 005477' 260 17 0 00 005544' PASS2C: PUSHJ P,PASS2A 5881 005500' 254 00 0 00 005455' JRST PASS2B 5882 005501' 254 00 0 00 005746' JRST ENDTP LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 99 LOADER MAC 24-MAR-75 15:43 BEGIN HERE PASS2 TEXT PROCESSING 5883 5884 005502' 000011 005535' TABDIS: XWD 11,PCONS; CONSTANTS 5885 005503' 000006 005626' XWD 06,PGS; GLOBAL SUBPROGRAMS 5886 005504' 000020 005551' XWD 20,PST; SCALARS 5887 005505' 000022 005550' XWD 22,PAT; ARRAYS 5888 005506' 000001 005571' XWD 01,PATO; ARRAYS OFFSET 5889 005507' 000000 005654' XWD 00,PPLT; PROGRAMMER LABELS 5890 005510' 000031 005652' XWD 31,PMLT; MADE LABESL 5891 005511' 000026 005624' XWD 26,PPT; PERMANENT TEMPORARYS 5892 005512' 000027 005622' XWD 27,PTT; TEMPORARY TEMPORARYS 5893 000011 TABLNG==.-TABDIS 5894 5895 ;DISPATCH ON A HEADER 5896 5897 005513' 316 12 0 00 006441' HEADER: CAMN W,[EXP -2]; END OF PASS ONE 5898 005514' 254 00 0 00 005274' JRST ENDS 5899 005515' 135 13 0 00 006442' LDB C,[POINT 12,W,35]; GET SIZE 5900 005516' 202 13 0 00 005077' MOVEM C,BLKSIZ 5901 005517' 405 12 0 00 770000 ANDI W,770000 5902 005520' 322 12 0 00 005203' JUMPE W,PLB; PROGRAMMER LABEL 5903 005521' 306 12 0 00 500000 CAIN W,500000; ABSOLUTE BLOCK 5904 005522' 254 00 0 00 005155' JRST ABSI; 5905 005523' 306 12 0 00 310000 CAIN W,310000; MADE LABEL 5906 005524' 254 00 0 00 005162' JRST MDLB; MADE LABEL 5907 005525' 306 12 0 00 600000 CAIN W,600000 5908 005526' 254 00 0 00 005173' JRST GLOBDF 5909 005527' 306 12 0 00 700000 CAIN W,700000; DATA STATEMENT 5910 005530' 254 00 0 00 005717' JRST DATAS 5911 IFN MANTIS, 5913 005531' 254 00 0 00 001302' JRST LOAD4A; DATA STATEMENTS WILL GO HERE 5914 5915 005532' 136253 114765 TTR50: RADIX50 10,%TEMP. 5916 005533' 100450 614765 PTR50: RADIX50 10,TEMP. 5917 005534' 112320 235025 CNR50: RADIX50 10,CONST. 5918 5919 5920 IFN MANTIS,< 5921 SPECB: CAML W,.JBREL ;ROOM? 5922 AOJA W,[CORE W, ;NO, GET IT 5923 JRST MORCOR 5924 JRST .+1] ;GOT IT 5925 PUSHJ P,WORD ;GET SPECIAL DATA 5926 MOVEM W,@MNTSYM ;DEPOSIT IT 5927 SOSG BLKSIZ ;MORE? 5928 JRST TEXTR ;NO 5929 SPECBUG:TRNN N,MANTFL ;ARE WE LOADING MANTIS DATA? 5930 JRST [PUSHJ P,WORD ;NO, READ A WORD 5931 SOSG BLKSIZ ;AND IGNORE IT 5932 JRST TEXTR ;BLOCK EXHAUSTED? 5933 JRST @.] ;NO, LOOP 5934 AOS W,MNTSYM ;STEP SPECIAL POINTER 5935 SOJG W,SPECB ;LOOP IF SETUP ALREADY 5936 HRRZ W,.JBREL ;SET IT UP NOW 5937 MOVEM W,MNTSYM LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 99-1 LOADER MAC 24-MAR-75 15:43 BEGIN HERE PASS2 TEXT PROCESSING 5938 JRST SPECBUG ;AND STEP IT> LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 100 LOADER MAC 24-MAR-75 15:43 ROUTINES TO PROCESS POINTERS 5939 SUBTTL ROUTINES TO PROCESS POINTERS 5940 5941 005535' 270 13 0 00 005064' PCONS: ADD C,CCON; GENERATE CONSTANT ADDRESS 5942 005536' 364 13 0 00 005542' SOJA C,PCOMX ;ADJUST FOR 1 AS FIRST ENTRY 5943 5944 005537' 260 17 0 00 005663' PSTA: PUSHJ P,SWAPSY ;NON-COMMON SCALARS AND ARRAYS 5945 005540' 271 13 0 05 000000 ADDI C,(R); RELOCATE 5946 005541' 260 17 0 00 005637' PCOM1: PUSHJ P,SYDEF ;... 5947 005542' 270 13 0 00 005100' PCOMX: ADD C,MODIF ;ADDR RELOC FOR DP 5948 005543' 542 13 1 00 000002 HRRM C,@X; REPLACE ADDRESS 5949 005544' 340 11 0 00 000000 PASS2A: AOJ V,; STEP READOUT POINTER 5950 005545' 311 11 0 00 005064' CAML V,CCON ;END OF PROCESSABLES? 5951 005546' 350 00 0 17 000000 CPOPJ1: AOS (P); SKIP 5952 005547' 263 17 0 00 000000 POPJ P,; 5953 5954 005550' 334 12 0 00 005060' PAT: SKIPA W,ATAB ;ARRAY TABLE BASE 5955 005551' 200 12 0 00 005061' PST: MOVE W,STAB ;SCALAR TABLE BASE 5956 005552' 241 13 0 00 000001 ROT C,1 ;SCALE BY 2 5957 005553' 270 13 0 00 000012 ADD C,W ;ADD IN TABLE BASE 5958 005554' 271 13 0 02 777776 ADDI C,-2(X); TABLE ENTRY 5959 005555' 554 12 0 13 000000 HLRZ W,(C); CHECK FOR COMMON 5960 005556' 606 12 0 00 007777 TRNN W,7777 ;IGNORE SIX BITS ;U/O-LKS 5961 005557' 254 00 0 00 005537' JRST PSTA ;NO COMMON ;U/O-LKS 5962 005560' 260 17 0 00 005562' PUSHJ P,COMDID ;PROCESS COMMON 5963 005561' 254 00 0 00 005541' JRST PCOM1 5964 5965 005562' 405 12 0 00 007777 COMDID: ANDI W,7777 ;IGNORE SIX BITS ;U/O-LKS 5966 005563' 242 12 0 00 000001 LSH W,1 ;PROCESS COMMON TABLE ENTRIES 5967 005564' 270 12 0 00 005057' ADD W,CTAB; COMMON TAG 5968 005565' 271 12 0 02 777776 ADDI W,-2(X); OFFSET 5969 005566' 260 17 0 00 005663' PUSHJ P,SWAPSY; GET SYMBOL AND SET TO DEFINED 5970 005567' 270 13 0 12 000001 ADD C,1(W); BASE OF COMMON 5971 005570' 263 17 0 00 000000 POPJ P, ;RETURN 5972 5973 005571' 241 13 0 00 000001 PATO: ROT C,1 5974 005572' 270 13 0 00 005063' ADD C,AOTAB; ARRAY OFFSET 5975 005573' 271 13 0 02 777776 ADDI C,-2(X); LOADER OFFSET 5976 005574' 202 13 0 00 005104' MOVEM C,CT1; SAVE CURRENT POINTER 5977 005575' 550 13 0 13 000001 HRRZ C,1(C); PICK UP REFERENCE POINTER 5978 005576' 405 13 0 00 007777 ANDI C,7777; MASK TO ADDRESS 5979 005577' 241 13 0 00 000001 ROT C,1; ALWAYS A ARRAY 5980 005600' 271 13 0 02 777776 ADDI C,-2(X) 5981 005601' 270 13 0 00 005060' ADD C,ATAB 5982 005602' 554 12 0 13 000000 HLRZ W,(C); COMMON CHECK 5983 005603' 606 12 0 00 007777 TRNN W,7777 ;IGNORE SIX BITS ;U/O-LKS 5984 005604' 254 00 0 00 005613' JRST NCO ;U/O-LKS 5985 005605' 260 17 0 00 005562' PUSHJ P,COMDID ;PROCESS COMMON 5986 005606' 260 17 0 00 005637' PUSHJ P,SYDEF 5987 005607' 200 13 0 00 005104' MOVE C,CT1 5988 005610' 570 13 0 13 000000 HRRE C,(C) 5989 005611' 270 13 0 12 000001 ADD C,1(W) 5990 005612' 254 00 0 00 005542' JRST PCOMX 5991 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 101 LOADER MAC 24-MAR-75 15:43 ROUTINES TO PROCESS POINTERS 5992 005613' 260 17 0 00 005663' NCO: PUSHJ P,SWAPSY; 5993 005614' 271 13 0 05 000000 ADDI C,(R) ;DEFINE SYMBOL IN TRUE LOC 5994 005615' 260 17 0 00 005637' PUSHJ P,SYDEF ;... 5995 005616' 200 13 0 00 005104' MOVE C,CT1 5996 005617' 550 13 0 13 000000 HRRZ C,(C) ;OFFSET ADDRESS PICKUP 5997 005620' 271 13 0 05 000000 ADDI C,(R) ;WHERE IT WILL BE 5998 005621' 254 00 0 00 005542' JRST PCOMX ;STASH ADDR AWAY 5999 6000 005622' 270 13 0 00 005066' PTT: ADD C,TTEMP; TEMPORARY TEMPS 6001 005623' 364 13 0 00 005542' SOJA C,PCOMX ;ADJUST FOR 1 AS FIRST ENTRY 6002 6003 005624' 270 13 0 00 005065' PPT: ADD C,PTEMP; PERMANENT TEMPS 6004 005625' 364 13 0 00 005542' SOJA C,PCOMX ;ADJUST FOR 1 AS FIRST ENTRY 6005 6006 005626' 270 13 0 00 005062' PGS: ADD C,GSTAB; GLOBSUBS 6007 005627' 271 13 0 02 777777 ADDI C,-1(X); OFFSET 6008 005630' 200 13 0 13 000000 MOVE C,(C) 6009 005631' 641 13 0 00 640000 TLC C,640000; MAKE A REQUEST 6010 005632' 260 17 0 00 005667' PUSHJ P,TBLCHK ;CHECK FOR OVERLAP 6011 005633' 201 12 0 11 000000 MOVEI W,(V); THIS LOC 6012 005634' 546 12 1 00 000002 HLRM W,@X; ZERO RIGHT HALF 6013 005635' 260 17 0 00 005657' PUSHJ P,SYMXX 6014 005636' 254 00 0 00 005544' JRST PASS2A 6015 6016 005637' 603 01 0 00 000040 SYDEF: TLNE N,SYDAT ;SYMBOL WANTS DEFININITION? 6017 005640' 263 17 0 00 000000 POPJ P, ;NO, GO AWAY 6018 005641' 261 17 0 00 000013 PUSH P,C ;SAVE THE WORLD 6019 005642' 261 17 0 00 000012 PUSH P,W 6020 005643' 260 17 0 00 005667' PUSHJ P,TBLCHK ;CHECK FOR OVERLAP 6021 005644' 200 12 0 00 000013 MOVE W,C 6022 005645' 332 13 0 00 000010 SKIPE C,T ;PICKUP VALUE 6023 005646' 260 17 0 00 005657' PUSHJ P,SYMXX 6024 005647' 262 17 0 00 000012 POP P,W 6025 005650' 262 17 0 00 000013 POP P,C 6026 005651' 263 17 0 00 000000 POPJ P,; 6027 6028 005652' 270 13 0 00 005074' PMLT: ADD C,MLTP 6029 005653' 254 00 0 00 005655' JRST .+2 6030 005654' 270 13 0 00 005073' PPLT: ADD C,PLTP 6031 005655' 550 13 0 13 000000 HRRZ C,(C) 6032 005656' 254 00 0 00 005542' JRST PCOMX 6033 6034 005657' 261 17 0 00 000011 SYMXX: PUSH P,V 6035 005660' 260 17 0 00 001365' PUSHJ P,SYMPT 6036 005661' 262 17 0 00 000011 POP P,V 6037 005662' 263 17 0 00 000000 IFE REENT, 6038 IFN REENT, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 102 LOADER MAC 24-MAR-75 15:43 ROUTINES TO PROCESS POINTERS 6039 6040 005663' 201 10 0 00 000000 SWAPSY: MOVEI T,0; SET TO EXCHANGE DEFS 6041 005664' 250 10 0 13 000001 EXCH T,1(C); GET NAME 6042 IFN MANTIS, 6044 005665' 550 13 0 13 000000 HRRZ C,(C) ;GET HALFWORD VALUE 6045 005666' 263 17 0 00 000000 POPJ P, 6046 005667' 550 12 0 00 005074' TBLCHK: HRRZ W,MLTP ;GETT TOP OV TABLES 6047 005670' 275 12 0 00 000002 SUBI W,2 6048 005671' 317 12 0 00 005056' CAMG W,TOPTAB ;WILL IT OVERLAP 6049 IFE EXPAND, 6050 IFN EXPAND, 6053 005673' 263 17 0 00 000000 POPJ P, 6054 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 103 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6055 SUBTTL END OF PASS2 6056 6057 005674' 621 01 0 00 000010 ALLOVE: TLZ N,F4SW ;END OF F4 PROG 6058 005675' 550 11 0 00 005076' HRRZ V,SDSTP ;GET READY TO ZERO OUT DATA STMTS 6059 005676' 402 00 0 11 000000 SETZM (V) ;AT LEAST ONE THERE 6060 005677' 301 11 0 04 000000 CAIL V,(S) ;IS THERE MORE THAN ONE?? 6061 005700' 254 00 0 00 005704' JRST NOMODS ;NO 6062 005701' 507 00 0 00 000011 HRLS V 6063 005702' 271 11 0 00 000001 ADDI V,1 ;SET UP BLT 6064 005703' 251 11 0 04 000000 BLT V,(S) ;ZERO OUT ALL OF IT 6065 005704' 200 03 0 00 005101' NOMODS: MOVE H,SVFORH 6066 005705' 603 00 0 00 000204 TLNE F,FULLSW!SKIPSW 6067 005706' 254 00 0 00 005715' JRST HIGH3A 6068 005707' 540 05 0 00 005067' HRR R,COMBAS ;TOP OF THE DATA 6069 005710' 317 03 0 00 005075' CAMG H,SDS ;HIGHEST LOC GREATER THAN DATA STATEMENTS? 6070 005711' 254 00 0 00 005715' JRST HIGH3A ;NO, RETURN 6071 005712' 271 03 0 04 000001 ADDI H,1(S) ;YES, SET UP MEANINGFUL ERROR COMMENT 6072 005713' 274 03 0 00 005075' SUB H,SDS ;... 6073 005714' 661 00 0 00 000200 TLO F,FULLSW ;INDICATE OVERFLO 6074 HIGH3A: IFN REENT, 6078 IFN SPCHN, 6085 MOVEI V,@X 6086 CAMLE V,HILOW 6087 MOVEM V,HILOW> 6088 005715' 550 13 0 00 000005 HRRZ C,R 6089 005716' 254 00 0 00 001730' JRST HIGH31 ;RETURN 6090 6091 005717' 603 00 0 00 000204 DATAS: TLNE F,FULLSW+SKIPSW 6092 005720' 254 00 0 00 005740' JRST DAX 6093 005721' 201 13 0 04 000000 MOVEI C,(S) ;ADDR OF WORD UNDER SYMBOL TABLE 6094 005722' 210 12 0 00 005077' MOVN W,BLKSIZ ;HOW FAR DOWN TO BLT 6095 005723' 272 12 0 00 005073' ADDM W,PLTP ;UPDATE TABLE POINTERS 6096 005724' 272 12 0 00 005071' ADDM W,BITP ;... 6097 005725' 272 12 0 00 005076' ADDM W,SDSTP ;... 6098 005726' 270 13 0 00 000012 ADD C,W ;RH(C):= WHEN TO STOP BLT 6099 005727' 504 13 0 00 005074' HRL C,MLTP ;SOURCE OF BLTED DATA 6100 005730' 270 12 0 00 005074' ADD W,MLTP ;UPDATE, GET DESTINATION OF BLT DATA 6101 005731' 553 00 0 00 000012 IFN EXPAND,< HRRZS W ;GET RID OF LEFT HALF 6102 005732' 307 12 0 03 000000 CAIG W,(H) 6103 PUSHJ P,[PUSHJ P,XPAND 6104 POPJ P, 6105 ADDI W,2000 6106 ADD C,[XWD 2000,2000] 6107 005733' 260 17 0 00 006447' JRST POPJM2]> 6108 005734' 542 12 0 00 005074' HRRM W,MLTP ;NO SET THIS SO EXTRA CORE NOT ZEROED 6109 005735' 500 12 0 00 000013 HLL W,C ;FORM BLT POINTER LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 103-1 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6110 005736' 251 12 0 13 777777 BLT W,-1(C) ;MOVE TABLES DOWN (BUT NOT JRST ALLOVE) 6111 005737' 260 17 0 00 005233' PUSHJ P,BITWX 6112 005740' 260 17 0 00 003700' DAX: PUSHJ P,WORD; READ ONE WORD 6113 005741' 607 00 0 00 000204 TLNN F,FULLSW+SKIPSW 6114 005742' 202 12 0 13 000000 MOVEM W,(C) 6115 005743' 373 00 0 00 005077' SOSLE BLKSIZ ;COUNT OF DATA SEQUENCE SIZE 6116 005744' 344 13 0 00 005740' AOJA C,DAX ;INCREMENT DATA SEQUENCE DEPOSIT LOC 6117 005745' 254 00 0 00 005143' JRST TEXTR; DONE 6118 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 104 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6119 FBLKD: IFE L, 6121 TLOE N,BLKD1 ;IS THIS FIRST BLOCK DATA? 6122 JRST ENDTP ;NO 6123 HRR V,COMBAS ;PLACE PROG BREAK IN RH FOR 6124 HRRM V,.JBCHN(X) ;CHAIN> 6125 005746' 603 00 0 00 000204 ENDTP: TLNE F,FULLSW+SKIPSW 6126 005747' 254 00 0 00 005674' JRST ALLOVE 6127 005750' 540 11 0 00 005062' HRR V,GSTAB 6128 005751' 311 11 0 00 005061' ENDTP0: CAML V,STAB; ANY MORE GLOBSUBS 6129 005752' 254 00 0 00 005766' JRST ENDTP2; NO 6130 005753' 200 13 1 00 000002 MOVE C,@X; GET SUBPROG NAME 6131 005754' 260 17 0 00 003043' PUSHJ P,SREQ; IS IT ALLREADY REQUESTED 6132 005755' 344 11 0 00 005751' AOJA V,ENDTP0; YES 6133 005756' 260 17 0 00 003045' PUSHJ P,SDEF; OR DEFINED 6134 005757' 344 11 0 00 005751' AOJA V,ENDTP0; YES 6135 005760' 260 17 0 00 005667' PUSHJ P,TBLCHK 6136 005761' 201 12 0 00 000000 MOVEI W,0 ;PREPARE DUMMY LINK 6137 005762' 607 00 0 00 000204 TLNN F,FULLSW+SKIPSW ;ABORT 6138 005763' 260 17 0 00 001477' PUSHJ P,SYM3X; PUT IN DUMMY REQUEST 6139 005764' 260 17 0 00 005233' PUSHJ P,BITWX; OVERLAP CHECK 6140 005765' 344 11 0 00 005751' AOJA V,ENDTP0 6141 005766' 402 00 0 00 004012' ENDTP2: SETZM PT1 6142 005767' 550 11 0 00 005076' ENDTPW: HRRZ V,SDSTP 6143 IFN EXPAND, 6145 005770' 275 11 0 02 000000 SUBI V,(X) 6146 005771' 317 11 0 00 005067' CAMG V,COMBAS 6147 PUSHJ P,[SUB V,COMBAS 6148 MOVNS V 6149 005772' 260 17 0 00 006454' JRST XPAND9] 6150 005773' 255 00 0 00 000000 JFCL ;FOR ERROR RETURN FROM XPAND 6151 005774' 540 11 0 00 005076' ENDTPH: HRR V,SDSTP> 6152 005775' 552 11 0 00 005075' HRRZM V,SDS ;DATA STATEMENT LOC 6153 005776' 275 11 0 02 000000 ENDTP1: SUBI V,(X); COMPENSATE FOR OFFSET 6154 005777' 200 12 1 00 000002 MOVE W,@X; GET WORD 6155 006000' 603 12 0 00 777777 TLNE W,-1; NO LEFT HALF IMPLIES COUNT 6156 006001' 254 00 0 00 006140' JRST DODON; DATA DONE 6157 006002' 270 12 0 00 006457' ADD W,[MOVEI W,3] 6158 006003' 271 12 1 00 000002 ADDI W,@X 6159 006004' 250 12 1 00 000002 EXCH W,@X 6160 006005' 340 11 0 00 000000 AOJ V, 6161 006006' 270 12 1 00 000002 ADD W,@X; ITEMS COUNT 6162 006007' 202 12 0 00 005106' MOVEM W,ITC 6163 006010' 200 12 0 00 006460' MOVE W,[MOVEM W,LTC] 6164 006011' 202 12 1 00 000002 MOVEM W,@X; SETUP FOR DATA EXECUTION 6165 006012' 340 11 0 00 000000 AOJ V, 6166 006013' 205 12 0 00 201500 MOVSI W,(MOVEI W,0) 6167 006014' 250 12 1 00 000002 EXCH W,@X 6168 006015' 202 12 0 00 005107' MOVEM W,ENC; END COUNT 6169 006016' 340 11 0 00 000000 AOJ V, 6170 006017' 201 12 1 00 000002 MOVEI W,@X 6171 006020' 272 12 0 00 005106' ADDM W,ITC 6172 006021' 200 12 1 00 000002 LOOP: MOVE W,@X 6173 006022' 554 10 0 00 000012 HLRZ T,W; LEFT HALF INST. LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 104-1 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6174 006023' 405 10 0 00 777000 ANDI T,777000 6175 006024' 306 10 0 00 254000 CAIN T,254000 ;JRST? 6176 006025' 254 00 0 00 006132' JRST WRAP ;END OF DATA 6177 006026' 306 10 0 00 260000 CAIN T,260000 ;PUSHJ? 6178 006027' 254 00 0 12 006074' JRST PJTABL(W) ;DISPATCH VIA TABLE 6179 006030' 306 10 0 00 200000 CAIN T,200000; MOVE? 6180 006031' 344 11 0 00 006040' AOJA V,INNER 6181 006032' 306 10 0 00 270000 CAIN T,270000; ADD? 6182 006033' 254 00 0 00 006070' JRST ADDOP 6183 006034' 306 10 0 00 221000 CAIN T,221000; IMULI? 6184 006035' 344 11 0 00 006021' AOJA V,LOOP 6185 006036' 302 10 0 00 220000 CAIE T,220000; IMUL? 6186 006037' 254 00 0 00 001302' JRST LOAD4A; NOTA 6187 006040' 550 10 1 00 000002 INNER: HRRZ T,@X; GET ADDRESS 6188 006041' 622 10 0 00 770000 TRZE T,770000; ZERO TAG? 6189 006042' 364 10 0 00 006065' SOJA T,CONPOL; NO, CONSTANT POOL 6190 006043' 322 10 0 00 006054' JUMPE T,FORCNF 6191 006044' 274 10 0 00 004012' SUB T,PT1; SUBTRACT INDUCTION NUMBER 6192 006045' 240 10 0 00 000001 ASH T,1 6193 006046' 275 10 0 00 000001 SUBI T,1 6194 006047' 542 10 1 00 000002 HRRM T,@X 6195 006050' 554 10 1 00 000002 HLRZ T,@X 6196 006051' 271 10 0 00 000017 ADDI T,P 6197 006052' 506 10 1 00 000002 HRLM T,@X 6198 006053' 344 11 0 00 006021' AOJA V,LOOP 6199 IFN EXPAND,> 6207 006054' 265 16 0 00 003577' FORCNF: ERROR , 6208 006064' 254 00 0 00 002031' JRST ILC1 6209 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 105 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6210 006065' 270 10 0 00 005106' CONPOL: ADD T,ITC; CONSTANT BASE 6211 006066' 542 10 1 00 000002 HRRM T,@X 6212 006067' 344 11 0 00 006021' AOJA V,LOOP 6213 6214 006070' 550 10 1 00 000002 ADDOP: HRRZ T,@X 6215 006071' 622 10 0 00 770000 TRZE T,770000 6216 006072' 364 10 0 00 006065' SOJA T,CONPOL 6217 006073' 344 11 0 00 006021' SKIPIN: AOJA V,LOOP 6218 6219 006074' 254 00 0 00 006103' PJTABL: JRST DWFS ;PUSHJ 17,0 6220 006075' 354 00 0 00 004012' AOSA PT1 ;INCREMENT DO COUNT 6221 006076' 374 00 0 00 004012' SOSA PT1; DECREMENT DO COUNT 6222 006077' 334 12 0 00 006461' SKIPA W,[EXP DOINT.] 6223 006100' 201 12 0 00 006117' MOVEI W,DOEND. 6224 006101' 542 12 1 00 000002 HRRM W,@X 6225 006102' 344 11 0 00 006073' AOJA V,SKIPIN ;SKIP A WORD 6226 6227 006103' 201 12 0 00 006212' DWFS: MOVEI W,DWFS. 6228 006104' 542 12 1 00 000002 HRRM W,@X 6229 006105' 340 11 0 00 000000 AOJ V, 6230 006106' 661 01 0 00 000040 TLO N,SYDAT 6231 006107' 260 17 0 00 005462' PUSHJ P,PROC; PROCESS THE TAG 6232 006110' 325 11 0 00 006157' JUMPGE V,DATAOV ;DATA STATEMENT BELOW CODE TOP 6233 006111' 254 00 0 00 006021' JRST LOOP ;PROPER RETURN 6234 6235 006112' 262 17 0 00 000011 DOINT.: POP P,V; GET ADDRESS OF INITIAL VALUE 6236 006113' 261 17 0 11 000000 PUSH P,(V); STORE INDUCTION VARIABLE 6237 006114' 340 11 0 00 000000 AOJ V, 6238 006115' 261 17 0 00 000011 PUSH P,V; INITIAL ADDRESS 6239 006116' 254 00 0 11 000000 JRST (V) 6240 6241 006117' 574 10 1 17 000000 DOEND.: HLRE T,@(P) ;RETAIN SIGN OF INCREMENT 6242 006120' 272 10 0 17 777776 ADDM T,-2(P); INCREMENT 6243 006121' 570 10 1 17 000000 HRRE T,@(P); GET FINAL VALUE 6244 006122' 274 10 0 17 777776 SUB T,-2(P) ;FINAL - CURRENT 6245 006123' 220 10 1 17 000000 IMUL T,@(P) ;INCLUDE SIGN OF INCREMENT 6246 006124' 321 10 0 00 006127' JUMPL T,DODONE ;SIGN IS ONLY IMPORTANT THING 6247 006125' 262 17 0 17 000000 POP P,(P); BACK UP POINTER 6248 006126' 254 00 1 17 000000 JRST @(P) 6249 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 106 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6250 006127' 262 17 0 17 777777 DODONE: POP P,-1(P); BACK UP ADDRESS 6251 006130' 262 17 0 17 777777 POP P,-1(P) 6252 006131' 254 00 0 00 005546' JRST CPOPJ1 ;RETURN 6253 6254 006132' 200 12 0 00 005107' WRAP: MOVE W,ENC; NUMBER OF CONSTANTS 6255 006133' 270 12 0 00 005106' ADD W,ITC; CONSTANT BASE 6256 006134' 201 13 0 12 000000 MOVEI C,(W); CHAIN 6257 006135' 542 13 1 00 000002 HRRM C,@X 6258 006136' 201 11 0 12 000000 MOVEI V,(W); READY TO GO 6259 006137' 254 00 0 00 005776' JRST ENDTP1 6260 6261 006140' 621 01 0 00 001060 DODON: TLZ N,RCF!SYDAT!DZER ;DATA STATEMENT FLAGS 6262 006141' 200 12 0 00 005065' MOVE W,PTEMP ;TOP OF PROG 6263 006142' 271 12 0 02 000000 ADDI W,(X) ;+OFFSET 6264 006143' 550 13 0 00 005075' HRRZ C,SDS 6265 IFE EXPAND, 6269 006144' 275 13 0 00 000001 SUBI C,1 ;GET ONE LESS (TOP LOCATION TO ZERO) 6270 IFN REENT, 6272 006145' 313 12 0 00 000013 SECZER: CAMLE W,C ;ANY DATA TO ZERO? 6273 006146' 254 00 1 00 005075' JRST @SDS ;NO, DO DATA STATEMENTS 6274 ;FULLSW IS ON IF COMBAS GT. SDS 6275 006147' 607 00 0 00 000204 TLNN F,FULLSW+SKIPSW ;SHOULD WE ZERO? 6276 006150' 402 00 0 12 000000 SETZM (W) ;YES, DO SO 6277 006151' 667 01 0 00 001000 TLON N,DZER ;GO BACK FOR MORE? 6278 006152' 344 12 0 00 006145' AOJA W,SECZER ;YES, PLEASE 6279 006153' 505 12 0 12 777777 HRLI W,-1(W) ;SET UP BLT POINTER TO ZERO DATA 6280 006154' 607 00 0 00 000204 TLNN F,FULLSW+SKIPSW ;SHOULD WE ZERO? 6281 006155' 251 12 0 13 000000 BLT W,(C) ;YES, DO SO 6282 006156' 254 00 1 00 005075' JRST @SDS ;GO DO DATA STATEMENTS 6283 6284 006157' 265 16 0 00 003601' DATAOV: ERROR 0, 6285 006164' 254 00 0 00 002031' JRST ILC1 6286 LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 107 LOADER MAC 24-MAR-75 15:43 END OF PASS2 6287 006165' 603 01 0 00 000020 DREAD: TLNE N,RCF; NEW REPEAT COUNT NEEDED 6288 006166' 254 00 0 00 006200' JRST FETCH; NO 6289 006167' 200 12 0 00 005105' MOVE W,LTC 6290 006170' 202 12 0 00 005112' MOVEM W,LTCTEM 6291 006171' 200 12 1 00 005105' MOVE W,@LTC; GET A WORD 6292 006172' 556 12 0 00 005111' HLRZM W,RCNT; SET REPEAT COUNT 6293 006173' 552 12 0 00 005110' HRRZM W,WCNT; SET WORD COUNT 6294 006174' 262 12 0 12 000000 POP W,(W); SUBTRACT ONE FROM BOTH HALFS 6295 006175' 502 12 1 00 005105' HLLM W,@LTC; DECREMENT REPEAT COUNT 6296 006176' 350 12 0 00 005105' AOS W,LTC; STEP READOUT 6297 006177' 661 01 0 00 000020 TLO N,RCF 6298 006200' 200 12 1 00 005105' FETCH: MOVE W,@LTC 6299 006201' 350 00 0 00 005105' AOS LTC 6300 006202' 372 00 0 00 005110' SOSE WCNT 6301 006203' 263 17 0 00 000000 POPJ P,; 6302 006204' 376 00 0 00 005111' SOSN RCNT 6303 006205' 254 00 0 00 006210' JRST DOFF. 6304 006206' 200 11 0 00 005112' MOVE V,LTCTEM; RESTORE READOUT 6305 006207' 202 11 0 00 005105' MOVEM V,LTC 6306 006210' 621 01 0 00 000020 DOFF.: TLZ N,RCF; RESET DATA REPEAT FLAG 6307 006211' 263 17 0 00 000000 POPJ P,; 6308 6309 006212' 200 10 0 17 000000 DWFS.: MOVE T,(P) 6310 006213' 350 00 0 17 000000 AOS (P) 6311 006214' 200 10 0 10 000000 MOVE T,(T); GET ADDRESS 6312 006215' 556 10 0 00 005113' HLRZM T,DWCT; DATA WORD COUNT 6313 006216' 553 00 0 00 000010 HRRZS T 6314 006217' 271 10 0 12 000000 ADDI T,(W); OFFSET 6315 IFN REENT, 6323 006220' 553 00 0 00 000010 HRRZS T 6324 006221' 271 10 0 02 000000 IFE REENT, 6325 006222' 311 10 0 00 005075' CAML T,SDS 6326 006223' 254 00 0 00 006157' JRST DATAOV 6327 006224' 260 17 0 00 006165' DWFS.1: PUSHJ P,DREAD ;GET A DATA WORD 6328 006225' 553 00 0 00 000010 HRRZS T 6329 IFN REENT, 6330 006226' 316 10 0 00 005075' CAMN T,SDS 6331 006227' 254 00 0 00 006157' JRST DATAOV 6332 006230' 607 00 0 00 000204 TLNN F,FULLSW+SKIPSW ;LOAD THE NEXT DATA ITEM? 6333 006231' 202 12 0 10 000000 MOVEM W,(T) ;YES, STORE IT 6334 006232' 372 12 0 00 005113' SOSE W,DWCT; STEP DOWN AND TEST 6335 006233' 344 10 0 00 006224' AOJA T,DWFS.1 ;ONE MORE TIME, MOZART BABY! 6336 006234' 263 17 0 00 000000 POPJ P, LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 108 LOADER MAC 24-MAR-75 15:43 ROUTINE TO SKIP FORTRAN OUTPUT 6337 SUBTTL ROUTINE TO SKIP FORTRAN OUTPUT 6338 6339 ;SUBSECTION OF THE ROUTINE TO HANDLE OUTPUT FROM THE 6340 ;FORTRAN IV COMPILER. THE MAIN OBJECT OF THE ROUTINE IS TO 6341 ;LOOK FOR THE END BLOCK. CODE TAKEN FROM FUDGE2. 6342 6343 006235' 550 13 0 00 000012 MACHCD: HRRZ C,W ;GET THE WORD COUNT 6344 006236' 260 17 0 00 003700' PUSHJ P,WORD ;INPUT A WORD 6345 006237' 367 13 0 00 006236' SOJG C,.-1 ;LOOP BACK FOR REST OF THE BLOCK 6346 ;GO LOOK FOR NEXT BLOCK 6347 6348 006240' 260 17 0 00 003700' REJECT: PUSHJ P,WORD ;READ A FORTRAN BLOCK HEADER 6349 006241' 641 12 0 00 777777 TLC W,-1 ;TURN ONES TO ZEROES IN LEFT HALF 6350 006242' 603 12 0 00 777777 TLNE W,-1 ;WAS LEFT HALF ALL ONES? 6351 006243' 254 00 0 00 006240' JRST REJECT ;NO, IT WAS CALCULATED MACHINE CODE 6352 006244' 306 12 0 00 777776 CAIN W,-2 ;YES, IS RIGHT HALF = 777776? 6353 006245' 254 00 0 00 006257' JRST ENDST ;YES, PROCESS F4 END BLOCK 6354 006246' 135 13 0 00 006462' LDB C,[POINT 6,W,23];GET CODE BITS FROM BITS 18-23 6355 006247' 620 12 0 00 770000 TRZ W,770000 ;THEN WIPE THEM OUT 6356 006250' 306 13 0 00 000077 CAIN C,77 ;IS IT SPECIAL DEBUGGER DATA? 6357 006251' 254 00 0 00 006235' JRST MACHCD ;YES, TREAT IT LIKE DATA 6358 006252' 302 13 0 00 000070 CAIE C,70 ;IS IT A DATA STATEMENT? 6359 006253' 306 13 0 00 000050 CAIN C,50 ;IS IT ABSOLUTE MACHINE CODE? 6360 006254' 254 00 0 00 006235' JRST MACHCD ;YES, TREAT IT LIKE DATA STATEMENTS 6361 006255' 260 17 0 00 003700' PUSHJ P,WORD ;NO, ITS A LABEL OF SOME SORT 6362 006256' 254 00 0 00 006240' JRST REJECT ;WHICH CONSISTS OF ONE WORD 6363 ;LOOK FOR NEXT BLOCK HEADER 6364 6365 006257' 201 13 0 00 000001 ENDST: MOVEI C,1 ;TWO WORDS, FIVE TABLES, ONE WORD, ONE TABLE 6366 006260' 201 10 0 00 000006 MOVEI T,6 ;TO GO 6367 006261' 260 17 0 00 003700' F4LUP1: PUSHJ P,WORD ;GET TABLE MEMBER 6368 006262' 365 13 0 00 006261' F4LUP3: SOJGE C,F4LUP1 ;LOOP WITHIN A TABLE 6369 006263' 321 10 0 00 001241' JUMPL T,LOAD1 ;LAST TABLE - RETURN 6370 006264' 367 10 0 00 006266' SOJG T,F4LUP2 ;FIRST TWO WORDS AND FIVE TABLES 6371 006265' 322 10 0 00 006261' JUMPE T,F4LUP1 ;COMMON LENGTH WORD 6372 006266' 260 17 0 00 003700' F4LUP2: PUSHJ P,WORD ;READ HEADER WORD 6373 006267' 200 13 0 00 000012 MOVE C,W ;COUNT TO COUNTER 6374 006270' 254 00 0 00 006262' JRST F4LUP3 ;STASH LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 109 LOADER MAC 24-MAR-75 15:43 LISP LOADER 6375 SUBTTL LISP LOADER 6376 6377 IFE L,< END BEG> 6378 IFN L,< XLIST 6379 LIST 6380 6381 006471' 201 16 0 00 006471' LODMAK: MOVEI A,LODMAK 6382 006472' 202 16 0 00 000137 MOVEM A,137 ;SET UP TO SAVE THE LISP LOADER 6383 006473' 041 00 0 00 000017 INIT 17 6384 006474' 44 63 53 00 00 00 SIXBIT /DSK/ 6385 006475' 000000 000000 0 6386 006476' 254 04 0 00 000000 HALT 6387 006477' 077 00 0 00 006506' ENTER LMFILE 6388 006500' 254 04 0 00 000000 HALT 6389 006501' 067 00 0 00 006512' OUTPUT LMLST 6390 006502' 063 00 0 00 740000 STATZ 740000 6391 006503' 254 04 0 00 000000 HALT 6392 006504' 071 00 0 00 000000 RELEASE 6393 006505' 047 00 0 00 000012 EXIT 6394 006506' 54 51 63 60 00 00 LMFILE: SIXBIT /LISP/ 6395 006507' 54 57 44 00 00 00 SIXBIT /LOD/ 6396 006510' 000000 000000 0 6397 006511' 000000 000000 0 6398 006512' 777777 006512' LMLST: IOWD 1,.+1 ;IOWD 6399 006513' 771306 000136 IOWD LODMAK-LD+1,137 ;AND CORE IMAGE 6400 006514' 000000 000000 0 6401 006471' END LODMAK> NO ERRORS DETECTED PROGRAM BREAK IS 006515 CPU TIME USED 00:58.472 5K CORE USED LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE S-1 LOADER MAC 24-MAR-75 15:43 SYMBOL TABLE A 000016 CHNC 000453' DOEND. 006117' EXPAND 000001 SPD ABS 005153' CHNLW1 000501' DOFF. 006210' F 000000 ABSI 005155' CHNR 000454' DOINT. 006112' F.C 004000' ABUF 004154' CHNSYM 001572' DREAD 006165' F10TFL 001000 SPD ABUF1 004155' CMPLEN 000011 SPD DSW 100000 SPD F40ERR 002116' ABUF2 004156' CMPLER 002053' DTAB 003571' F40NAM 002064' ABUFL 000203 SPD CNR50 005534' DTABIT 000100 SPD F4FL 400000 SPD ADDOP 006070' COBFL 200000 SPD DTAFLG 000400 SPD F4LD 005120' ALGBLK 001302' SPD COBSW 000000 DTIN 004162' F4LUP1 006261' ALGNAM 002067' COBSYM 001302' SPD DTIN1 004163' F4LUP2 006266' ALGSW 000000 COMBAS 005067' DTOUT 004166' F4LUP3 006262' ALLFLG 000001 SPD COMCO1 005404' DTOUT1 004167' F4SW 000010 SPD ALLOVE 005674' COMCOM 005403' DWCT 005113' FAILSW 000000 SPD ALSTR 002426' COMDID 005562' DWFS 006103' FAKESY 002530' ALSTR1 002421' COMFLG 000004 SPD DWFS. 006212' FBLKD 005746' ALSYM 002641' COMM 003716' DWFS.1 006224' FCONSW 000020 SPD ALWCOR 004144' COMML 002771' DZER 001000 SPD FCRLF 003464' AOTAB 005063' COMMLD 003012' E 000014 FETCH 006200' ASW 000100 SPD COMOP 002614' E1 005314' FIXW 001537' ASWTCH 000677' COMPOL 002167' E11 005336' FIXW1 001542' ATAB 005060' COMSAV 003737' E1A 005332' FIXWL 001551' AUX 004652' COMSFX 002644' E21 005342' FIXWP 001526' AUXSWE 040000 SPD COMSTR 002357' E31 005346' FNDSYM 002513' AUXSWI 020000 SPD COMTOP 005363' E41 005352' FNOLOC 002507' B 000006 COMYES 005410' ENC 005107' FORCNF 006054' B.C 004006' CONPOL 006065' ENDMAP 000002 SPD FORERR 002127' B11SW 000001 SPD CORE 047000 000011 ENDS 005274' FORFL 002000 SPD BEG 000000' CPOPJ 003341' ENDS1 005302' FORLIB 004145' BITC 005072' CPOPJ1 005546' ENDST 006257' FORNAM 002070' BITP 005071' CPUSW 000000 SPD ENDTP 005746' FORNMA 002112' BITW 005212' CRLF 003465' ENDTP0 005751' FORNMI 002106' BITWX 005233' CRLFLF 003463' ENDTP1 005776' FORSW 000002 SPD BITWX2 005235' CSAT 002263' ENDTP2 005766' FSCN 001214' BLIFL 010000 SPD CSW 000001 SPD ENDTPH 005774' FSCN1 001231' BLKSIZ 005077' CT1 005104' ENDTPW 005767' FSCN2 001232' BLTSET 000404' CTAB 005057' EOF 001201' FSLP 002501' BLTST1 000407' CWSTWX 005417' EOF1 001202' FSW 000010 SPD BLTST2 000413' D 000007 EOF2 001211' FSYMT 002464' BLTST3 000415' DATAOV 006157' ERRP41 003636' FULLC 001755' BUF1 004244' DATAS 005717' ERRP42 003637' FULLSW 000200 SPD BUFI 004151' DATBEG 003733' SPD ERRP8 003655' GETPPN 047000 000024 BUFI1 004152' DATE 047000 000014 ERRPT 003577' GETTAB 047000 000041 BUFI2 004153' DATEND 005115' SPD ERRPT0 003601' GLBCNT 004045' BUFL 000406 SPD DAX 005740' ERRPT1 003603' GLOB 002304' BUFN 000002 SPD DBLOP 002626' ERRPT2 003621' GLOBDF 005173' BUFO 004146' DBUF 003721' ERRPT3 003625' GLSET 002331' BUFO1 004147' DBUF1 003720' ERRPT4 003635' GLSTR 002376' BUFO2 004150' DDSW 004000 SPD ERRPT5 003642' GSTAB 005062' BUFR 004157' DESTB 002430' ERRPT6 003643' GSWD 005426' BUFR1 004160' DEVCHR 047000 000004 ERRPT7 003656' GSWDP1 005434' BUFR2 004161' DIDAL 000001 SPD ERRPT8 003644' GSWDPR 005433' C 000013 DISPL 000020 SPD ERRPT9 003660' H 000003 CALLEX 000014' DMNSW 000000 ESW 000002 SPD HDSAV 004046' CCON 005064' DODON 006140' EXEQSW 002000 SPD HEADER 005513' CHECK 003117' DODONE 006127' EXIT 047000 000012 HEADNM 004047' LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE S-2 LOADER MAC 24-MAR-75 15:43 SYMBOL TABLE HIGH 001716' IODTER 100000 SPD LDDT2 001171' MANTIS 000000 SPD HIGH0 001714' IOIMPM 400000 SPD LDDT3 001172' MDG 003733' HIGH2 001720' IOWDPP 005102' LDDT4 001173' MDLB 005162' HIGH2A 001724' ISAFLG 000002 SPD LDDTX 001152' MLPLC 005170' HIGH2B 001725' ISW 020000 SPD LDF 001235' MLTP 005074' HIGH3 001736' ISWTCH 000703' LDLIB 001302' SPD MODIF 005100' HIGH31 001730' ITC 005106' LDPRG 001302' SPD MONLOD 000000 HIGH3A 005715' K 000000 LFSYM 002520' MSTIME 047000 000023 HIGO 005115' KA10FL 000200 SPD LFTHSW 004050' MVDWN 001622' HINOGO 005117' KI10FL 000400 SPD LIB 001113' MYPPN 004022' HIRET 005117' KUTSW 000000 LIB1 001120' N 000001 HISEG 001657' L 000001 SPD LIB2 001122' NAME 001760' HISEG2 001242' SPD LD 000000' LIB29 001132' NAME0 001762' HISTRT 004135' LD1 000022' LIB3 001130' NAME1 002001' HLFOP 002255' LD2 000145' LIB30 001134' NAME2 002014' HLFOP1 002256' LD2B 000075' LIB31 001141' NAMERR 002043' HSW 400000 SPD LD2BA 000102' LIB32 001147' NAMESW 000000 HVAL1 004010' LD2BP 000103' LIBF 001073' NAMPTR 004007' IAD2 003342' LD2C 000144' LIBF0 001066' NCO 005613' IAD2A 003363' LD2D 000106' LIBF1 001105' NCONT 001764' IAD2C 003361' LD2DA 000114' LIBF2 001106' NEGOFF 000400 SPD ILC 002021' LD2DB 000112' LIBF4 001100' NELFL 040000 SPD ILC1 002031' LD2DC 000113' LIBGO 001107' NELSW 000000 SPD ILC2 002040' LD2DD 000105' LIBSW 004000 SPD NEWBLK 002745' ILD 001020' LD2Q 000063' LIMBO 004142' NOADDR 003221' ILD1 003731' LD3 000120' LINK 001302' SPD NOHI 000002 SPD ILD2 001030' LD3A 000147' LLC 005070' NOMODS 005704' ILD3 001036' LD3AA 000123' LMFILE 006506' NOPRG 005450' ILD4 001042' LD4 000157' LMLST 006512' NORD 002204' ILD4A 001052' LD5 000165' LNSSW 000000 NSW 200000 SPD ILD5 001060' LD5A 000177' LOAD 001240' NXTBLK 002742' ILD5A 001056' LD5B 000204' LOAD1 001241' NXTDTA 002735' ILD5B 001057' LD5B1 000213' LOAD1A 001242' NXTNDX 002717' ILD6 001026' LD5C 000221' LOAD2 001260' OLDDEV 004013' ILD7 001024' LD5C1 003726' LOAD4 001300' OLDJR 004140' ILD9 001052' LD5D 000360' LOAD4A 001302' ONELOW 001677' IMD3 003371' LD5E 000365' LOCAFL 020000 SPD ONESEG 001670' IMD4 003400' LD5E1 000370' LOCD 002154' OPEN2 003725' INDEX 002765' LD6 000637' LOCDLF 002152' OPEN3 003730' INDEX0 002653' LD6A 000632' LOCDLH 002145' OPND 002231' INDEX1 002670' LD6A1 000635' LODMAK 006471' OPNUM 004051' INDEX2 002673' LD6A2 000634' LOOP 006021' OPTAB 002443' INDEX3 002760' LD6B 000645' LOSEBI 000527' OTOD 003562' INDEX4 002707' LD6C 000723' LOWR 004011' OTOD1 003563' INDEX5 002723' LD6D 000730' LSPREL 005114' OUTVER 003433' INDEX6 002753' LD7 000734' LSPXIT 004136' P 000017 INDEX7 002756' LD7A 000741' LSTBLK 004143' PALSAT 002551' INDEX8 002645' LD7B 000745' LSTDEV 004014' PASS2 005441' INDEX9 002662' LD7C 000755' LSTLOD 000200 SPD PASS2A 005544' INDEXE 002766' LD7D 000763' LSTPT 003717' PASS2B 005455' INNER 006040' LD8 000770' LSWTCH 000707' PASS2C 005477' IOBAD 740000 SPD LD9 001001' LTC 005105' PAT 005550' IOBKTL 040000 SPD LDAC 000000 LTCTEM 005112' PATO 005571' IODEND 020000 SPD LDDT 001153' LVARB 001302' SPD PCOM1 005541' IODERR 200000 SPD LDDT1 001162' MACHCD 006235' PCOMX 005542' LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE S-3 LOADER MAC 24-MAR-75 15:43 SYMBOL TABLE PCONS 005535' PROC 005462' RWORD3 003110' SVSAT 004053' PDLOV 002160' PROG 001312' RWORD4 003115' SWAPSY 005663' PDLPT 003715' PROG1 001327' RWORD5 003106' SYDAT 000040 SPD PDLSIZ 000040 SPD PROG2 001326' S 000004 SYDEF 005637' PDLST 003740' PROGER 001344' SAIFL 004000 SPD SYM 001362' PDSAV 003736' PROGLW 001317' SAILSW 000000 SPD SYM1 001400' PGS 005626' PROGS 001333' SASYM 000427' SYM1A 001422' PJTABL 006074' PRQ 003670' SBRNAM 005055' SYM1B 001424' PL1FL 020000 SPD PRSTWX 005416' SDEF 003045' SYM1C 001426' PLB 005203' PRTMAP 003134' SDEF1 003046' SYM1D 001430' PLTP 005073' PRWORD 003061' SDEF2 003056' SYM2 001437' PMLT 005652' PSAT1 002570' SDS 005075' SYM2A 001447' PMS 003300' PSAT2 002571' SDSTP 005076' SYM2B 001440' PMS2 003315' PSFD 004036' SE3 003714' SYM2C 001446' PMS2A 003322' PSFDAD 004034' SECZER 006145' SYM2W 001601' PMS3 003325' PSOPD 002610' SETSAT 002275' SYM2W1 001444' PMS4 003337' PSOPD1 002612' SFD 004025' SYM2WA 001611' PMSQ 003300' PSOPD2 002620' SFDADD 004023' SYM3 001453' POLFIX 002206' PST 005551' SFDCK 000275' SYM3A 001505' POLSAT 002531' PSTA 005537' SFDCK1 000307' SYM3A1 001512' POLSW 003735' PSUNOP 002606' SFDER 000312' SYM3A2 001516' POPJM2 000627' PSWTCH 000713' SFDSW 000005 SPD SYM3A3 001516' POPJM3 000626' PT1 004012' SFULLC 001746' SYM3A4 001507' PP 000001 SPD PTEMP 005065' SFULSW 002000 SPD SYM3B 001517' PPCSW 200000 SPD PTR50 005533' SHFTL 003427' SYM3X 001477' PPDB 004054' PTT 005622' SKIPIN 006073' SYM3X1 001463' PPDL 000060 SPD PURESW 000000 SKIPSW 000004 SPD SYM3X2 001475' PPLT 005654' PWORD 003455' SLASH 000100 SPD SYM4 001613' PPN 004016' PWORD1 003456' SLIBSW 000400 SPD SYM4A 001620' PPNE 004017' PWORD2 003457' SLTC 005254' SYMARG 000000 SPD PPNV 004020' Q 000015 SMLT 005241' SYMDSW 000000 SPD PPNW 004021' R 000005 SP1 003452' SYMFIX 001554' PPPN 004015' RBRA 000322' SPACE 003453' SYMFX1 001557' PPSW 100000 SPD RBRA1 000340' SPACES 003451' SYMPT 001365' PPT 005624' RBRA2 000343' SPCHN 000000 SPD SYMPTQ 001373' PRMAP 003124' RBRA3 000354' SPDATA 003017' SYMSW 040000 SPD PRMAP1 003224' RCF 000020 SPD SPDT1 003036' SYMXX 005657' PRMAP2 003261' RCNT 005111' SPDT2 003035' T 000010 PRMAP3 003274' RCNUM 003442' SPDTLW 003026' TAB 003552' PRMAP4 003275' RCNUMW 003441' SPDTO 003025' TAB1 003551' PRMAP5 003277' RDHLF 002175' SPLT 005256' TABCNT 004141' PRMAP6 003262' REENT 000000 SPT 003533' TABDIS 005502' PRMAP7 003255' REJECT 006240' SPT0 003532' TABLNG 000011 SPD PRMP1A 003241' REMSY1 001655' SREQ 003043' TBLCHK 005667' PRMP1B 003250' REMSYM 001645' SSW 400000 SPD TEN30 000000 PRMP6A 003265' RESET 047000 000000 SSWTCH 000717' TENEX 000000 SPD PRMP7A 003260' REWSW 002000 SPD STAB 005061' TEXTR 005143' PRNAM 003412' RHSYM 002524' STADDR 003734' THSBLK 002751' PRNAM0 003410' RINITL 004137' STANSW 000000 TLHG 002316' PRNAM1 003411' RMSMSW 001000 SPD START 002141' TOPTAB 005056' PRNAME 003513' RPGSW 000000 STOROP 002342' TTEMP 005066' PRNUM 003413' RPOL 002216' STRSAT 002631' TTR50 005532' PRNUM0 003416' RWORD 003067' STRTAB 002367' TTY1 004172' PRNUM1 003420' RWORD1 003071' SVFORH 005101' TTYFL 040000 SPD PRNUM2 003425' RWORD2 003075' SVHWD 004052' TTYL 000052 SPD LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE S-4 LOADER MAC 24-MAR-75 15:43 SYMBOL TABLE TWOERR 001706' TWOFL 010000 SPD TYPE 003471' TYPE2 003472' TYPE2A 003500' TYPE3 003505' UNOP 002271' UTPCLR 047000 000013 V 000011 VFLG 000001 SPD W 000012 WAIT 047000 000010 WCNT 005110' WFWSW 000000 SPD WORD 003700' WORD1 003702' WORD2 003704' WORD3 003706' WORDPR 003676' WRAP 006132' WSTWX 005422' X 000002 XFLG 000100 SPD XPAND 000531' XPAND1 000536' XPAND2 000554' XPAND3 000602' XPAND5 000603' XPAND6 000611' XPAND7 000617' XPAND8 000565' XPAND9 000622' XPANDE 000610' ZBEG 003733' SPD ZEND 003735' SPD .JB41 000513' EXT .JBAPR 000054' EXT .JBCHN 000510' EXT .JBDDT 000514' EXT .JBFF 001021' EXT .JBREL 000623' EXT .JBSA 000511' EXT .JBSYM 000512' EXT .JBUSY 000451' EXT A 183# 622 628 630 631 845 1267 1316 1318 1319 1320 1386 1387 1397 1398 1399 1405 1572 1573 1574 1575 1578 1587 1597 1598 1599 1600 1603 1604 1605 1606 1607 1877 1878 2082 2087 2097 2102 2107 2247 2256 2356 2367 2525 2554 2556 2560 2561 2562 2564 2600 2608 2609 2685 2693 2719 2727 2729 2732 2752 2754 2755 2826 2837 2877 2882 2884 2887 2888 2895 2896 3013 3015 3016 3106 3111 3167 3168 3223 3331 3333 3338 3341 3347 3402 3403 3601 3603 3650 3653 3657 3659 3670 3671 3674 3675 3681 3684 3688 3700 3711 3729 3739 3740 3746 3765 3766 3769 3775 3833 3840 3842 3845 3846 3848 3849 3852 3854 3873 3879 3895 3899 3913 3916 3919 3999 4000 4005 4006 4007 4008 4009 4011 4012 4013 4014 4015 4033 4034 4038 4041 4045 4047 4061 4067 4068 4069 4072 4073 4074 4075 4076 4080 4081 4218 4323 4324 4325 4330 4332 4335 4336 4424 4484 4492 4502 4504 4505 4515 4540 4541 4542 4543 4544 4596 4631 4633 4634 4636 4662 4663 4664 4669 4670 4679 4689 4690 4691 4692 4693 4696 4697 4698 4699 4700 4703 4708 4709 4721 4728 4735 4959 4960 5018 5019 5124 5125 5180 5198 5225 5249 5807 5810 5811 6207 6284 6381 6382 ABS 5602# 5608 ABSI 5604# 5904 ABUF 2505 5274 5410# ABUF1 2507 4013 4017 4020 4025 4032 4033 5060 5411# ABUF2 2508 5058 5412# ABUFL 327# 5437 ADDOP 6182 6214# ALGBLK 2571# 2589 ALGFL 269# 286 ALGNAM 3356 3371# ALGSW 71# 148 1286 2297 2327 2342 2545 2571 3148 3371 3405 4099 5395 ALLFLG 245# 1961 1971 1972 4627 ALLOVE 5590 5845 6057# 6126 ALSTR 3757 3795# ALSTR1 3786# 3795 ALSYM 3757 3978# ALWCOR 510 1832 5394# AOTAB 5462# 5771 5974 ARGFL 237# ASW 209# 592 766 2213 ASWTCH 1932 1970# ATAB 5459# 5767 5954 5981 ATSIGN 282# AUX 816 4011 4015 5437# AUXSWE 261# 574 801 1312 1576 4680 4729 4734 5054 AUXSWI 260# 574 801 819 1313 1576 4729 4734 5052 5112 B 175# 495 496 497 498 518 519 576 577 1386 1594 1595 1852 2754 2755 2756 2757 2853 2857 2905 2909 3311 3312 3315 3317 3319 3320 3840 3846 4324 4540 4542 4636 B.C 526 3168 5315# B11SW 109 553 2555 2568 2860 2959 3442 3518 3596 3983 5301 5370 BEG 356# BITC 5471# 5588 5642 5645 BITP 1865 3000 5470# 5584 5641 5647 5858 5859 6096 BITW 5599 5607 5640# BITWX 5589 5627 5643 5663# 5822 6111 6139 BITWX2 5668# BLIFL 272# 286 3359 BLKD1 254# BLKSIZ 5476# 5602 5615 5618 5633 5676 5689 5694 5709 5739 5761 5783 5802 5803 5827 5831 5833 5834 5900 6094 6115 BLTSET 1009 1113# 1586 BLTST1 1120# 1123 BLTST2 1121 1124# BLTST3 1126# BUF1 2193 5436# BUFI 486 5406# BUFI1 612 5407# BUFI2 579 609 5408# BUFL 326# 5436 BUFN 324 326 2204 BUFO 486 5402# BUFO1 590 5068 5403# BUFO2 5066 5404# BUFR 4050 4051 4059 5278 5414# BUFR1 2377 4014 4074 5218 5415# BUFR2 2375 2379 2382 4076 5216 5416# C 180# 181 1907 2060 2061 2093 2359 2360 2369 2370 2371 2373 2375 2376 2377 2378 2379 2382 2682 2683 2685 2687 2689 2692 2694 2705 2706 2707 2709 2730 2757 2843 2845 2871 2946 2949 2956 3027 3030 3031 3033 3098 3099 3152 3153 3154 3157 3158 3159 3287 3319 3330 3331 3332 3334 3339 3421 3652 3655 3656 3659 3668 3673 3690 3703 3704 3705 3706 3707 3713 3714 3715 3716 3717 3719 3720 3722 3723 3724 3725 3726 3727 3773 3774 3775 3776 3778 3781 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3835 3837 3838 3842 3843 3868 3869 3874 3882 3886 3888 3889 3894 3898 3899 3903 3907 3908 3910 3911 3913 3914 3915 3916 3919 3925 3929 3930 3931 3934 3968 3969 3972 3975 4020 4021 4049 4051 4054 4192 4206 4209 4218 4219 4239 4241 4286 4325 4329 4330 4331 4332 4334 4345 4544 4547 4551 4552 4573 4575 4579 4581 4583 4596 4622 4631 4632 4633 4634 4959 5077 5082 5083 5088 5089 5158 5162 5215 5594 5595 5597 5605 5614 5615 5617 5618 5620 5624 5625 5632 5633 5635 5641 5644 5645 5651 5652 5653 5656 5659 5661 5676 5678 5679 5680 5684 5686 5687 5688 5691 5694 5696 5697 5698 5699 5703 5705 5706 5736 5741 5751 5755 5798 5807 5808 5810 5816 5818 5855 5856 5859 5860 5865 5867 5872 5876 5899 5900 5941 5942 5945 5947 5948 5956 5957 5958 5959 5970 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5987 5988 5989 5993 5995 5996 5997 6000 6001 6003 6004 6006 6007 6008 6009 6018 6021 6022 6025 6028 6030 6031 6041 6044 6088 6093 6098 6099 6106 6109 6110 6114 6116 6130 6256 6257 6264 6269 6272 6281 6343 6345 6354 6356 6358 6359 6365 6368 6373 CALLEX 487# CCON 5463# 5737 5847 5941 5950 CHECK 4362 4371 4376# CHNC 1572# 1935 CHNLW1 1591 1596# CHNMAP 281# CHNR 1573# 1953 CHNSYM 2948 2951# CMPLEN 3294 3364# CMPLER 3299 3352# 3364 CNR50 5741 5917# COBFL 268# 286 3355 COBSW 72# 150 2307 2547 2574 2616 3149 5328 COBSYM 2574# 2591 COMBAS 5468# 5780 5791 5795 5796 6068 6146 6147 COMCO1 5787 5802# COMCOM 5801# 5812 COMDID 5962 5965# 5985 COMFLG 247# 3300 COMFLS 286# COMM 3330 5231# COMML 2576 4191# 4215 4221 COMMLD 4195 4217# COMOP 3923# 3932 COMPOL 3600 3603# 3753 COMSAV 3302 3325 5306# COMSFX 3861 3865 3984# COMSTR 3747# 3783 COMTOP 5785# 5804 COMYES 5789 5807# CONPOL 6189 6210# 6216 CPOPJ 2690 3383 4682# 4980 CPOPJ1 4322 4337 4386 4981 5951# 6252 CPUSW 82# 161 530 543 2225 2321 2322 CRLF 984 1234 4512 4565 4566 4625 4635 4638 4671 5045 5047# 5108 5174 CRLFLF 4419 5045# CSAT 3672 3681# CSW 203# 592 701 717 740 2531 CT1 5482# 5976 5987 5995 CTAB 5458# 5778 5967 CWSTWX 5801 5816# D 176# 725 726 727 833 834 835 864 981 983 1119 1120 1122 1579 1580 1907 1950 1970 1975 1980 1985 1990 2058 2059 2093 2262 2263 2264 2265 2928 2936 2943 2944 2946 2949 2951 3090 3091 3092 3094 3098 3099 3100 3102 3620 3627 3641 3673 3675 3684 3685 3686 3687 3691 3692 3695 3734 3737 3744 3745 3770 3771 3833 3848 3854 3860 3864 3887 3896 3897 3898 3910 3915 3921 3923 3930 3931 3934 3935 3970 3971 3980 4391 4392 4394 4967 4971 4986 5034 5035 5084 5087 5091 5092 5095 DALLOC 313# DATAOV 6232 6284# 6326 6331 DATAS 5910 6091# DATBEG 5293# DATEND 5496# DAX 6092 6112# 6116 DBLOP 3928 3934# DBUF 4488 4505 4507 5250# DBUF1 4511 5249# DDSW 258# 2437 DESTB 3642 3693 3797# 3911 DIDAL 146 2352 2501 3995 4093 5393 DISIZE 310# DISPL 2556 2561 2562 2593# DMNFLG 235# DMNSW 70 129 130 560 1327 1332 1353 1429 1489 1933 1934 2110 2469 2476 2478 5329 DODON 6156 6261# DODONE 6246 6250# DOEND. 6223 6241# DOFF. 6303 6306# DOINT. 6222 6235# DREAD 6287# 6327 DSKBIT 307# DSKBLK 316# DSW 218# 601 606 695 717 740 975 2531 DTAB 4502 4504 5128# DTABIT 308# 4009 DTABLK 317# DTAFLG 234# 4010 4028 4043 DTIN 595 718 742 779 869 2201 2238 2241 2480 2493 3346 5158 5418# DTIN1 2221 2488 5168 5419# DTOUT 780 784 4439 4693 4696 4709 4722 4723 5421# DTOUT1 778 1610 5422# DWCT 5490# 6312 6334 DWFS 6219 6227# DWFS. 6227 6309# DWFS.1 6327# 6335 DZER 256# 6261 6277 E 181# 477 478 479 488 489 515 516 517 518 525 526 604 691 758 816 817 879 2553 4346 4351 4353 4356 4487 4496 4497 4500 4506 4509 E1 5738 5745# E11 5760 5763# E1A 5753 5759# E21 5765 5767# E31 5769 5771# E41 5773 5775# ENC 5485# 6168 6254 ENDMAP 283# 574 1310 1314 4395 4398 ENDS 5724# 5898 ENDS1 5725 5728 5735# ENDST 6353 6365# ENDTP 5863 5882 6125# ENDTP0 6128# 6132 6134 6140 ENDTP1 6153# 6259 ENDTP2 6129 6141# ENDTPH 6151# ENDTPW 6142# EOF 2499# 4081 5224 EOF1 2350 2500# EOF2 2338 2509# 2522 ERRP41 5175# 5200 ERRP42 5155 5176# ERRP8 5186 5192# ERRPT 845 1878 2102 2107 2247 2609 2693 3223 3333 3347 3402 3403 3601 3603 4728 4735 5144# 5225 6207 ERRPT0 2732 3338 3341 4484 4515 5146# 5194 6284 ERRPT1 5148# 5157 ERRPT2 5162# 5165 ERRPT3 5163 5166# ERRPT4 5151 5159 5169 5174# ERRPT5 5147 5180# ERRPT6 5166 5181# ERRPT7 2256 2525 2729 3106 4424 4662 4679 5193# 5198 5249 ERRPT8 2082 2087 2097 5183# ERRPT9 5153 5196# ESW 204# 592 704 715 738 769 2214 2219 2243 2531 EXEQSW 257# 1938 2437 EXPAND 126 504 1822 2660 2664 2747 2748 2864 2865 2990 2992 2994 3163 3166 3308 3309 4275 4279 5394 5574 5577 5648 5651 5670 5671 5679 5698 6049 6050 6101 6143 6199 6265 F 169# 592 593 594 601 606 624 695 701 704 715 717 734 738 740 766 769 800 806 812 814 865 975 1283 1823 1879 1906 1949 1952 1960 1962 1981 1982 1986 1987 1991 1992 2066 2067 2195 2199 2213 2214 2219 2243 2339 2340 2351 2352 2362 2472 2475 2486 2500 2501 2509 2510 2516 2530 2531 2538 2558 2563 2653 2737 2993 2996 3041 3114 3117 3179 3181 3221 3344 3387 3389 4004 4010 4016 4026 4028 4035 4043 4087 4268 4359 4370 4390 4393 4549 4963 5046 5064 5113 5175 5205 5570 5598 5606 5612 5619 5622 5630 5742 5752 5776 5786 5792 5799 5819 5844 6066 6073 6091 6113 6125 6137 6275 6280 6332 F.C 525 573 575 576 3167 5309# F10TFL 275# 3178 3388 F40ERR 3369 3375 3402# F40NAM 3354 3368# F4FL 267# 286 3370 3374 F4LD 2606 5570# F4LUP1 6367# 6368 6371 F4LUP2 6370 6372# F4LUP3 6368# 6374 F4SW 248# 1836 1862 2750 2867 3225 4193 4196 4217 4327 5578 6057 FAILSW 106 107 1127 2546 2569 3442 3454 3462 3518 3596 3938 3983 5302 FAKESY 3757 3866# FBLKD 5848 6119# FCONSW 207# 5046 5064 5175 5205 FCRLF 1117 4657 4667 4677 5046# 5144 FETCH 6288 6298# FIXW 2904 2912# 2968 FIXW1 2911 2919# 2966 FIXWL 2920 2930# FIXWP 2838 2903# FNDSYM 3844 3852# FNOLOC 3841 3848# FORCNF 6190 6207# FORERR 3393 3398 3403# FORFL 274# 286 3368 3376 FORLIB 570 2265 2325 3377 3378 3389 5398# FORNAM 3361 3374# FORNMA 3383 3397# FORNMI 3383 3392# FORSW 163 569 2261 2264 2325 3377 3389 5398 FSCN 976 1285 2515# FSCN1 2268 2470 2515 2530# 4399 4652 FSCN2 735 2531# FSLP 3842# 3847 FSW 206# 601 606 734 2067 2530 FSYMT 3741 3767 3829# FULLC 2654 2661 3222 3224# 4269 4276 FULLSW 210# 592 1823 1879 2516 2563 2653 2993 2996 3344 4268 5570 5598 5606 5612 5619 5622 5630 5742 5752 5776 5786 5792 5799 5819 5844 6066 6073 6091 6113 6125 6137 6275 6280 6332 GLBCNT 3625 3661 3779 5371# GLOB 3688 3700# GLOBDF 5613 5621# 5631 5908 GLSET 3712 3722# GLSTR 3738 3765# GSTAB 5461# 5749 5779 6006 6127 GSWD 5744 5762 5825# 5828 GSWDP1 5832# 5835 GSWDPR 5766 5770 5774 5831# H 172# 498 515 516 1316 1828 1835 1837 1844 1846 1847 1848 1849 1850 1851 1852 1853 1858 1864 1865 1866 1867 1869 1873 2518 2651 2652 2659 2746 2863 2991 3158 3159 3162 3307 4266 4267 4274 5573 5653 5666 5667 5669 5680 5699 5750 6065 6069 6071 6072 6102 HDSAV 3886 3889 3903 5372# HEADER 5596 5897# HEADNM 554 3662 3666 3707 3717 3727 3750 3776 3781 5373# HIGH 2581 3114# HIGH0 2564 3111# HIGH2 3116# HIGH2A 3115 3119 3143# HIGH2B 3144# HIGH3 3167# HIGH31 3155# 6089 HIGH3A 6067 6070 6074# HIGO 5504# HINOGO 5506# HIPROG 208# HIRET 5521# HISEG 2579 3027# HISEG2 3034# HISTRT 496 1853 2859 2964 3853 3858 3862 3978 5380# HISYM 230# HLFOP 3653 3657 3660 3671# HLFOP1 3672# 3697 HSW 264# 3609 3612 3624 HVAL1 3095 3103 4376 5326# IAD2 1611 4686# 5056 IAD2A 4695 4698 4710# IAD2C 4694 4701 4706# ILC 3331# 4220 5809 ILC1 2611 3336# 3348 6208 6285 ILC2 3337 3341# ILD 2193# 2537 ILD1 582 598 600 707 785 792 2253 2269 2335 2481 2485 4007 5277# ILD2 2201# 2222 2244 ILD3 2202 2219# ILD4 2220 2224# ILD4A 2239 2245# ILD5 2254# ILD5A 811 2252# ILD5B 2198 2253# ILD6 2196 2199# ILD7 2197# ILD9 2247# IMD3 4724 4728# IMD4 4705 4732# INDEX 2588 4086# INDEX0 2368 4004# INDEX1 2353 4017# 4027 4031 INDEX2 4020# 4024 INDEX3 4018 4080# INDEX4 4023 4032# INDEX5 4047# 4062 INDEX6 4070 4074# INDEX7 4077# INDEX8 3997# 4068 INDEX9 4002 4011# INDEXE 4001 4087# INNER 6180 6187# IOBAD 1614 1617 5240# IOBKTL 5234# 5240 IODEND 1614 1617 5223 5238# IODERR 5236# 5240 IODTER 5237# 5240 IOIMPM 5235# 5240 IOWDPP 1601 1602 1613 5481# ISAFLG 246# 982 1944 1976 1977 3420 5727 ISW 216# 592 601 2195 2486 ISWTCH 1943 1975# ITC 3003 5484# 6162 6171 6210 6255 K 95 139 156 248 254 1571 1835 1859 1935 1936 1953 1954 2101 2600 2749 2866 2988 3225 4189 4190 4327 4337 4338 5456 5539 KA10FL 277# 3392 3397 3399 KI10FL 276# 3394 KICPFL 242# KUTSW 76# 124 1138 1269 1945 1946 5298 L 1# 64 68 82 356 460 465 494 495 499 503 513 515 521 549 551 1015 1017 1168 1170 1188 1235 1323 1388 1397 1400 1405 1964 1965 2035 2671 2889 2916 2975 3107 3108 3443 3786 4282 4450 4544 4546 5381 5849 6119 6377 6378 LD 459# 6399 LD1 493# LD2 636# 846 1612 2083 2088 2098 2103 2108 2257 2526 3342 3602 3604 4730 5226 LD2B 585# 977 LD2BA 592# LD2BP 593# 736 LD2C 635# 2248 LD2D 597# 2068 LD2DA 603# 838 842 LD2DB 601# 709 LD2DC 599 602# 706 719 LD2DD 595# 808 824 LD2Q 573# 639 LD3 607# 644 691 696 765 1909 2062 2069 2094 LD3A 628 630 644# LD3AA 613# LD4 649 650 691# LD5 646 700# LD5A 647 712# LD5B 649 722# LD5B1 738# 768 2533 LD5C 648 748# LD5C1 786 803 2252 4690 4700 4703 5273# LD5D 650 972# LD5E 981# 1940 LD5E1 651 981 984# 2081 2096 LD6 645 1913# LD6A 645 1904# LD6A1 728 1907# 1920 LD6A2 761 1906# LD6B 1917 1926# LD6C 646 2058# LD6D 647 1919 2066# LD7 648 651 2072# LD7A 705 716 767 852 2087# LD7B 644 1934 1945 1959 1965 2092# LD7C 1575 2102# LD7D 1577 2107# LD8 622 2159# LD9 2159 2160 2161 2162 2163 2164 2165 2166 2167 2171# LDAC 75# 121 122 130 1332 1385 1489 5330 LDDT 1937 2438# LDDT1 2337 2473 2480# LDDT2 743 2242 2487# LDDT3 739 2488# LDDT4 2489# LDDTX 1956 2437# LDF 702 2341 2474 2537# LDLIB 2573# 2591 LDPRG 2572# 2590 LFSYM 3757 3858# LFTHSW 5374# LIB 2350# 2539 3182 LIB1 2356# 2559 LIB2 2358# 2363 LIB29 2357 2367# LIB3 2364# 2365 2372 2696 3227 3326 LIB30 2369# 2576 2580 3112 LIB31 2375# 2384 LIB32 2376 2382# LIBF 1284 2262 2268# LIBF0 1939 2261# LIBF1 2272 2336# LIBF2 2328 2337# LIBF4 2320# LIBGO 2338# LIBSW 214# 593 1949 1981 1982 2486 2538 3181 LIMBO 619 620 733 974 5392# LINK 2569# 2586 LLC 5469# 5580 5846 LMFILE 6387 6394# LMLST 6389 6398# LNSSW 102 103 325 328 820 2203 2205 LOAD 2354 2543# LOAD1 2370 2380 2551# 3096 3104 3108 3183 4039 4078 4352 6369 LOAD1A 2552# 3034 3035 4090 LOAD2 2560 2562 2576# 2593 LOAD4 2557 2597# LOAD4A 2569 2570 2571 2572 2573 2574 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2608# 3640 3736 3755 3872 3877 3893 3906 5874 5913 6186 LOCAFL 239# 4390 4393 4549 LOCD 2584 3460# 3469 LOCDLF 3452# 3757 LOCDLH 3443# 3452 LODMAK 6381# 6381 6399 6401 LOOP 6172# 6184 6198 6212 6217 6233 LOSEBI 1615 1622# LOWR 3093 3094 3101 3118 3155 4385 5327# LSPREL 461# 461 1015 LSPXIT 460 1016 5382# LSTBLK 3997 4006 4029 4030 4036 4038 4040 4072 4077 4083 5393# LSTDEV 708 789 791 5357# LSTLOD 233# 2501 4016 4026 4035 LSTPT 605 5034 5232# LSWTCH 1947 1980# LSYMFL 243# LTC 3002 5483# 6163 6289 6291 6295 6296 6298 6299 6305 LTCTEM 5489# 6290 6304 LVARB 2570# 2587 MACHCD 6343# 6357 6360 MANTFL 278# MANTIS 157 987 1115 1489 1860 1992 1993 2548 2601 3288 5491 5911 5920 6042 MAPSUP 280# MDG 995 2721 4675 5295# MDLB 5612# 5906 MLPLC 5618# 5636 MLTP 1835 1867 2989 3006 5473# 5581 5614 5617 5651 5658 5668 5677 5678 5686 5690 5695 5697 5705 6028 6046 6099 6100 6108 MODIF 5477# 5866 5868 5947 MONLOD 85 86 251 562 774 1008 1317 1321 1406 1884 2519 2640 2672 2674 2744 2861 2894 2898 2921 2926 2931 2934 2980 2983 3156 3160 3305 3448 3791 4254 4283 4285 4448 4740 5280 5335 5424 5439 MVDWN 2751 2868 2989# 2994 MYPPN 568 726 834 5364# N 170# 573 574 575 723 756 801 819 829 849 851 982 1310 1312 1313 1314 1576 1830 1836 1842 1843 1857 1862 1868 1871 1905 1918 1938 1944 1961 1971 1972 1976 1977 2437 2750 2867 3004 3178 3225 3300 3313 3314 3316 3317 3318 3355 3357 3358 3359 3360 3368 3370 3374 3376 3388 3392 3394 3397 3399 3420 3609 3612 3624 4193 4196 4217 4327 4395 4398 4486 4488 4507 4510 4627 4680 4729 4734 5052 5054 5112 5120 5123 5125 5578 5727 6016 6057 6230 6261 6277 6287 6297 6306 NAME 2582 3284# NAME0 3286# 3345 NAME1 3301 3305# NAME2 3303 3319# NAMERR 3285 3344# NAMESW 77# 119 993 997 3422 4439 4440 4519 4706 4992 5300 5318 5521 5730 NAMPTR 520 1858 3313 3318 5317# NCO 5984 5992# NCONT 3292# NEGOFF 197# 4377 NELFL 270# 286 3357 NELSW 154 2292 2342 NEWBLK 4064 4067# NOADDR 4514 4530# NOHI 227# 3179 3387 NOHI6 229# NOMODS 6061 6065# NOPRG 5854# NORD 3610 3616# NOTTTY 228# NSW 219# 1283 1952 1986 1987 NXTBLK 4037 4046 4053 4063# NXTDTA 4044 4058# NXTNDX 4043# 4084 OLDDEV 583 597 603 2482 5356# OLDJR 552 1169 5384# ONELOW 3092 3098# ONESEG 3090# OPEN2 810 4704 5272# OPEN3 2197 5276# OPND 3638 3650# OPNUM 3626 3663 3704 3714 3724 3749 3773 5375# OPTAB 3689 3809# 3924 OTOD 4495 4499 4508 5120# OTOD1 4493 5121# OUTVER 4984# 4988 P 184# 578 635 700 702 703 732 735 741 764 768 830 850 881 973 976 984 992 996 1009 1117 1124 1125 1173 1187 1234 1268 1284 1285 1311 1315 1426 1578 1582 1586 1587 1611 1824 1825 1828 1829 1830 1831 1838 1857 1870 1871 1872 1873 1874 1875 1877 1882 1888 1893 1894 1895 1896 1932 1935 1937 1939 1940 1943 1947 1948 1951 1953 1955 1956 1957 1973 1978 1983 1988 1995 2215 2242 2254 2255 2266 2268 2269 2272 2328 2335 2337 2358 2361 2364 2383 2470 2473 2474 2478 2490 2494 2495 2499 2511 2515 2517 2523 2524 2532 2533 2537 2543 2551 2552 2610 2623 2625 2660 2666 2684 2688 2692 2694 2695 2700 2701 2711 2713 2720 2722 2723 2728 2731 2733 2738 2747 2751 2758 2825 2827 2829 2830 2832 2846 2849 2856 2864 2868 2872 2879 2885 2899 2908 2918 2938 2942 2945 2947 2950 2951 2952 2954 2955 2956 2957 2966 2968 2976 2986 2992 2995 2997 3010 3021 3028 3029 3032 3116 3143 3163 3164 3226 3286 3308 3332 3334 3335 3340 3354 3356 3361 3372 3383 3390 3395 3400 3419 3431 3444 3453 3460 3467 3611 3615 3617 3629 3651 3654 3658 3667 3669 3702 3708 3709 3713 3718 3720 3728 3741 3742 3746 3754 3767 3768 3777 3782 3787 3796 3829 3831 3834 3836 3839 3850 3851 3855 3856 3866 3868 3870 3875 3882 3885 3890 3891 3900 3904 3920 3972 3974 3975 3997 3998 4022 4034 4067 4077 4082 4086 4191 4194 4204 4207 4208 4210 4236 4238 4275 4281 4326 4333 4344 4349 4354 4357 4362 4371 4374 4382 4384 4396 4399 4419 4423 4443 4444 4485 4486 4487 4492 4493 4494 4495 4499 4508 4509 4510 4511 4512 4516 4518 4565 4566 4571 4577 4578 4624 4625 4635 4638 4652 4657 4661 4667 4668 4671 4677 4678 4682 4689 4721 4725 4726 4732 4733 4961 4964 4965 4970 4972 4987 4989 5019 5021 5022 5026 5027 5036 5038 5045 5049 5056 5065 5071 5081 5082 5089 5090 5094 5096 5097 5108 5126 5144 5145 5146 5148 5167 5173 5174 5176 5183 5187 5189 5190 5192 5193 5197 5199 5204 5207 5208 5209 5214 5219 5253 5574 5575 5589 5593 5599 5604 5607 5616 5621 5626 5627 5634 5654 5655 5671 5672 5674 5681 5682 5692 5700 5701 5724 5735 5743 5744 5754 5758 5759 5762 5764 5766 5768 5770 5772 5774 5775 5782 5785 5788 5793 5800 5801 5815 5817 5820 5825 5826 5829 5832 5836 5861 5880 5944 5946 5951 5952 5962 5969 5971 5985 5986 5992 5994 6010 6013 6017 6018 6019 6020 6023 6024 6025 6026 6034 6035 6036 6037 6045 6050 6051 6053 6103 6104 6111 6112 6131 6133 6135 6138 6139 6147 6196 6231 6235 6236 6238 6241 6242 6243 6244 6245 6247 6248 6250 6251 6301 6307 6309 6310 6327 6336 6344 6348 6361 6367 6372 PALSAT 3881 3885# PASS2 5784 5805 5840# PASS2A 5880 5949# 6014 PASS2B 5859# 5862 5881 PASS2C 5860 5880# PAT 5887 5954# PATO 5888 5973# PCOM1 5946# 5963 PCOMX 5942 5947# 5990 5998 6001 6004 6032 PCONS 5884 5941# PDLOV 555 3599# PDLPT 578 4732 5230# PDLSIZ 200# 5230 5307 PDLST 5230 5307# PDSAV 2499 2543 2551 5305# PGM1 255# PGS 5885 6006# PJTABL 6178 6219# PL1FL 271# 286 3358 PLB 5630# 5902 PLTP 1864 2999 5472# 5582 5632 5635 5646 5696 5707 5708 5710 5854 5855 6030 6095 PMLT 5890 6028# PMS 1315 4652# PMS2 4664# 4670 PMS2A 4666 4669# PMS3 4675# PMS4 4653 4676 4680# PMSQ 1957 4650# POLFIX 2585 3620# POLSAT 2961 3868# POLSW 2555 3599 3623 3747 5301# POPJM2 1886 1894# 3165 5657 5685 5704 6107 POPJM3 1893# 5576 5673 PP 69# 83# 115 159 580 581 586 602 723 755 782 790 827 973 2184 2185 2270 2483 2489 5358 PPCSW 263# 723 756 851 PPDB 3620 3887 5378# PPDL 201# 3620 3887 5378 PPLT 5889 6030# PPN 602 727 782 835 860 864 868 2270 2491 5360# PPNE 758 879 5361# PPNV 759 880 5362# PPNW 757 870 878 5363# PPPN 586 783 872 877 2271 2483 2492 5359# PPSW 262# 756 829 849 PPT 5891 6003# PRMAP 1948 4390# PRMAP1 4543# 4637 PRMAP2 4597# PRMAP3 4630 4635# PRMAP4 4545 4550 4580 4636# PRMAP5 4632 4638# 4736 PRMAP6 4594 4623# PRMAP7 4583# PRMP1A 4553 4568# PRMP1B 4567 4578# PRMP6A 4626# PRMP7A 4583 4596# PRNAM 2723 4961# PRNAM0 4668 4959# PRNAM1 4578 4960# PRNAME 2695 2731 3335 3340 4961 5077# PRNUM 2610 2728 4624 4962# PRNUM0 2524 4423 4518 4966# PRNUM1 4968# 4971 PRNUM2 4966 4974# PROC 5861 5865# 6231 PROG 2577 2622# PROG1 2666# 2675 PROG2 2665# PROGER 2686 2692# PROGLW 2650# PROGS 2625 2682# 4238 PRQ 996 2254 2523 2722 5145 5183 5204# PRSTWX 5815# 5832 PRTMAP 1311 4394 4399# PRWORD 2700 3143 3286 3419 3431 4191 4344# PSAT1 3900# 3917 PSAT2 3903# 3936 PSFD 873 874 5368# PSFDAD 875 5367# PSOPD 3909 3919# PSOPD1 3921# 3926 PSOPD2 3922 3927# PST 5886 5955# PSTA 5944# 5961 PSUNOP 3912 3916# PSWTCH 1951 1985# PT1 5348# 6141 6191 6220 6221 PTEMP 5464# 5736 5746 5747 6003 6262 PTR50 5755 5916# PTT 5892 6000# PURESW 73# 135 304 511 5243 5286 5291 5497 5502 5535 PWORD 1187 2255 4443 5033# PWORD1 1124 5034# 5167 5173 PWORD2 5035# 5037 Q 182# 183 618 619 621 622 623 625 628 629 630 1118 1123 1168 1169 1171 1172 1825 1826 1827 1832 1833 1839 1840 1841 1843 1846 1850 1874 1888 1889 1890 2159 2160 2161 2162 2163 2164 2165 2166 2167 4355 4358 4368 4373 4489 4490 4491 4494 4498 4501 4502 4503 4504 4506 4979 4980 4988 5012 5017 5020 5033 5037 5121 5122 5123 5146 5160 5165 5172 5176 R 174# 463 1267 1319 1320 1588 1950 2917 3093 3101 3102 3118 3154 3155 3304 3320 4201 4202 4363 4366 4372 4420 4593 5579 5726 5945 5993 5997 6068 6088 RBRA 764 849# 973 RBRA1 854 863# RBRA2 862 869# RBRA3 871 878# RCF 249# 6261 6287 6297 6306 RCNT 5487# 6292 6302 RCNUM 1173 5017# 5021 RCNUMW 4661 4678 5012# RDHLF 3609# 3629 3651 3654 3742 3768 3829 3831 3834 3836 REENT 74# 133 507 509 535 543 1174 1413 1429 1854 1941 1942 1958 1959 1997 2017 2038 2236 2274 2310 2627 2645 2655 2662 2702 2891 2912 2977 3034 3036 3042 3118 3120 3144 3169 3184 3230 3326 3327 3384 3433 3445 3468 3748 3788 3973 3984 3986 4197 4211 4243 4259 4270 4277 4421 4424 4425 4530 4544 4546 4584 4597 5296 5299 5321 5397 5507 5528 5663 5714 5841 6037 6038 6074 6143 6199 6270 6315 6324 6329 REJECT 5571 6348# 6351 6362 RELLEN 320# REMSY1 3017 3020# REMSYM 2827 3012# 3890 3900 3920 REWSW 213# 592 601 812 814 1962 2199 2486 RHSYM 3757 3862# RINITL 463 2671 2889 2917 2975 3443 3786 4282 5383# RMSMSW 212# 1960 1991 1992 2472 2475 2509 RPGF 259# RPGSW 68# 111 112 113 480 482 587 607 637 640 661 753 985 1113 1166 1291 1583 1618 2180 2181 2724 5061 5266 5349 5444 RPOL 3629# 3644 3676 RWORD 2358 2364 2623 2666 2688 3116 3460 3611 3754 4236 4281 4344 4351# RWORD1 4347 4353# RWORD2 4353 4357# RWORD3 4358 4365 4368# RWORD4 4369 4373# RWORD5 4360 4366# S 173# 504 505 506 509 510 519 520 994 1398 1590 1837 1851 2338 2350 2521 2659 2746 2752 2753 2863 2869 2870 2871 3009 3012 3014 3016 3018 3019 3020 3162 3307 3310 3311 3312 4274 4322 4323 4653 4658 4663 5572 5591 6060 6064 6071 6093 SAIFL 273# 286 3360 SAILSW 152 545 2273 2329 2386 2572 4140 5333 SASYM 992 1283# 1582 SBRNAM 636 2730 3180 3284 3287 3336 3339 5453# SDEF 2684 2713 2846 3658 3839 4194 4324# 5788 6133 SDEF1 4325# 4336 SDEF2 2879 4328 4335# SDS 5474# 6069 6072 6152 6264 6273 6282 6325 6330 SDSTP 1866 3001 5475# 5585 5586 5660 6058 6097 6142 6151 SE3 497 2869 3020 3845 4335 4669 5229# SECZER 6272# 6278 SEENHI 226# SEGFL 231# SETSAT 3691# 3730 SFD 760 831 836 837 844 853 858 861 873 876 5366# SFDADD 859 5365# SFDCK 732 828# SFDCK1 832 840# SFDER 840 844# 855 SFDSW 160 567 725 760 828 837 853 873 874 5364 5366 5368 SFULLC 1883 3221# SFULSW 236# 3221 SHFTL 4978# SKIPIN 6217# 6225 SKIPSW 205# 592 594 1949 1981 1982 2339 2351 2362 2486 2500 2558 2996 5570 5598 5606 5612 5619 5622 5630 5742 5752 5776 5786 5792 5799 5819 5844 6066 6091 6113 6125 6137 6275 6280 6332 SLASH 253# 1905 1918 SLIBSW 211# 592 2339 2500 3181 SLTC 5691# 5711 SMLT 5616 5676# SP1 4516 4964 4965 5026 5027# 5114 SPACE 1125 5027 5028# 5193 SPACES 4444 4485 5026# SPCHN 144 749 781 787 1013 1297 1625 1916 1917 1927 2178 2179 2528 4400 4435 4554 4569 4639 4711 5257 5303 5385 5466 5781 SPDATA 2577 4236# 4286 SPDT1 4281# 4287 SPDT2 4280# SPDTLW 4265# SPDTO 4242# SPLT 5634 5694# SPMON 60 61 SPT 5093# 5096 SPT0 5080 5092# SREQ 2361 2711 2830 2849 2947 3870 3875 3891 3904 4022 4322# 6131 SSW 220# 606 624 865 1906 2066 SSWTCH 1955 1990# STAB 5460# 5763 5955 6128 STADDR 983 1580 3421 4513 4517 5297# 5729 STANSW 97 98 727 729 761 762 864 866 885 5452 START 2583 3419# STOROP 3631 3734# STRSAT 3820 3821 3822 3823 3824 3825 3826 3968# STRTAB 3746 3757# 3972 SVFORH 5478# 5750 6065 SVHWD 3613 3616 5376# SVSAT 3622 3643 3682 3694 3710 5377# SWAPSY 5944 5969 5992 6040# SYDAT 250# 1868 3004 6016 6230 6261 SYDEF 5946 5986 5994 6016# SYM 2578 2700# 2703 SYM1 2714 2719# SYM1A 2708 2737# SYM1B 2710 2715 2744# 2844 4207 4210 SYM1C 2749# SYM1D 2752# 2832 SYM2 2712 2825# SYM2A 2836# 2847 SYM2B 2826# 2831 2954 SYM2C 2825 2832# SYM2W 2828 2959# SYM2W1 2830# 2967 2969 3883 3976 SYM2WA 2963 2968# SYM3 2706 2843# SYM3A 2850 2877# 2880 SYM3A1 2878 2882# SYM3A2 2883 2886# SYM3A3 2887# SYM3A4 2879# SYM3B 2888# 2896 SYM3X 2866# 6138 SYM3X1 2848 2851# SYM3X2 2852 2861# 2881 3667 3669 3708 3718 3728 3777 3782 SYM4 2975# 2985 SYM4A 2829 2839 2985# 3467 3757 SYMARG 142 626 652 654 712 892 915 950 1908 2072 2175 2176 SYMDSW 165 166 776 795 801 808 809 824 825 1296 1489 1493 2502 2739 2758 2759 2778 3321 4687 SYMFIX 2929 2937# SYMFOR 279# SYMFX1 2940# 3986 SYMPT 2701 2705# 5743 5754 5758 6035 SYMPTQ 2711# SYMSW 217# 1960 1991 1992 2340 2472 2475 2510 2737 SYMXX 5626 5793 5800 6013 6023 6034# T 177# 178 581 582 589 590 612 613 614 615 616 617 618 692 693 694 755 763 1904 1914 1915 1917 2059 2061 2080 2092 2095 2560 2562 2565 2650 2651 2652 2905 2906 2907 2916 2923 2924 2925 2930 2933 2940 2941 2981 2984 2989 2990 2991 2998 2999 3000 3001 3002 3003 3005 3006 3007 3008 3009 3012 3013 3014 3015 3449 3451 3734 3735 3737 3738 3749 3752 3792 3794 4017 4018 4019 4023 4024 4025 4030 4032 4040 4041 4045 4050 4052 4054 4055 4059 4060 4061 4080 4082 4083 4265 4266 4267 4366 4367 4376 4377 4379 4380 4381 4383 4572 4574 4576 4593 4622 4623 4968 4969 4984 4985 4986 5022 5028 5035 5048 5050 5051 5060 5068 5069 5077 5078 5079 5081 5085 5090 5091 5093 5097 5098 5099 5100 5101 5102 5103 5104 5105 5109 5110 5115 5149 5150 5152 5154 5156 5184 5185 5187 5188 5190 5191 5204 5206 5208 5660 5661 5668 5669 5871 5872 6022 6040 6041 6173 6174 6175 6177 6179 6181 6183 6185 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6210 6211 6214 6215 6216 6241 6242 6243 6244 6245 6246 6309 6311 6312 6313 6314 6323 6324 6325 6328 6330 6333 6335 6366 6369 6370 6371 TAB 4571 5109# TAB1 5108# 5111 TABCNT 5047 5109 5391# TABDIS 5869 5884# 5893 TABLNG 5870 5893# TBLCHK 6010 6020 6046# 6052 6135 TEMP 113# 117 TEN30 66 68 78 2236 2667 TENEX 167 294 1273 1962 1963 2003 2439 2550 2598 3152 4291 4627 4629 4643 4651 4654 5346 TEXTR 5593# 5600 5603 5623 5628 6117 THSBLK 4042 4072# TLHG 3701 3710# TOPTAB 5457# 5843 6048 TRMFL 241# TTEMP 5465# 5748 5757 6000 TTR50 5751 5915# TTY1 488 5435# TTYFL 240# 800 806 4963 5113 TTYL 323# 5435 TWOERR 3100 3106# TWOFL 238# 3041 3114 3117 4359 4370 TYPE 5036 5051# 5098 5148 TYPE2 4577 4970 4987 5023 5029 5049 5052# 5106 5116 5189 5192 5207 TYPE2A 5055 5058# TYPE3 5053 5057 5066# UNOP 3683 3687# V 178# 605 694 759 880 1869 1890 2622 2626 2665 2671 2675 2690 2826 2828 2836 2838 2853 2854 2855 2882 2888 2889 2903 2906 2909 2910 2916 2919 2937 2939 2940 2943 2953 2960 2962 2964 2965 2975 2984 2985 3005 3292 3293 3294 3295 3296 3297 3299 3314 3315 3316 3379 3380 3381 3382 3383 3443 3451 3452 3461 3621 3622 3642 3643 3672 3687 3689 3691 3692 3693 3694 3696 3726 3743 3750 3751 3770 3771 3772 3779 3780 3786 3794 3795 3830 3832 3843 3858 3859 3862 3863 3869 3878 3879 3880 3888 3895 3896 3921 3923 3924 3927 3969 3970 3971 3978 3979 4241 4242 4280 4282 4287 4966 4968 4977 4978 5086 5094 5147 5149 5177 5178 5196 5197 5199 5504 5579 5580 5620 5624 5643 5662 5737 5740 5745 5749 5756 5763 5767 5771 5778 5822 5840 5843 5846 5847 5949 5950 6011 6034 6036 6058 6059 6060 6062 6063 6064 6127 6128 6132 6134 6140 6142 6145 6146 6147 6148 6151 6152 6153 6160 6165 6169 6180 6184 6198 6212 6217 6225 6229 6232 6235 6236 6237 6238 6239 6258 6304 6305 VCUSTO 9# 13 VECLEN 318# VEDIT 8# 13 VFLG 284# 3355 3370 3376 VLOADE 6# 13 VUPDAT 7# 13 W 179# 180 461 527 529 551 552 553 554 555 556 557 558 567 568 569 570 597 598 600 603 700 703 706 707 708 718 742 757 770 771 772 773 778 779 780 782 783 784 785 786 789 790 792 803 804 805 807 841 856 859 860 861 868 872 873 874 875 877 878 993 1015 1120 1186 1585 1588 1590 1592 1593 1596 1597 1599 1600 1601 1609 1610 2193 2194 2237 2238 2240 2241 2252 2253 2321 2326 2336 2359 2369 2471 2480 2481 2482 2484 2485 2487 2488 2490 2491 2492 2493 2494 2504 2505 2506 2507 2518 2521 2522 2553 2554 2608 2622 2624 2626 2665 2673 2682 2689 2719 2727 2756 2836 2837 2848 2851 2854 2857 2858 2859 2860 2870 2884 2897 2924 2930 2952 2953 2955 2982 3027 3031 3033 3035 3090 3091 3095 3103 3152 3153 3292 3296 3298 3302 3303 3325 3450 3461 3613 3614 3616 3630 3637 3639 3641 3642 3650 3652 3655 3663 3664 3665 3666 3668 3685 3686 3690 3702 3703 3709 3719 3722 3723 3739 3743 3744 3745 3765 3772 3778 3780 3793 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3830 3832 3835 3837 3852 3853 3859 3863 3873 3885 3925 3929 3968 3974 3979 3999 4201 4202 4203 4204 4205 4208 4219 4237 4239 4240 4242 4280 4284 4345 4348 4355 4361 4363 4364 4367 4372 4377 4378 4380 4381 4383 4385 4420 4439 4442 4517 4581 4582 4623 4628 4658 4659 4660 4664 4665 4675 4960 4974 5012 5161 5162 5164 5166 5168 5170 5171 5215 5218 5232 5572 5573 5581 5582 5583 5584 5585 5587 5588 5590 5591 5594 5625 5640 5677 5683 5687 5688 5689 5690 5691 5695 5702 5706 5707 5708 5709 5710 5725 5726 5729 5738 5739 5740 5745 5746 5747 5748 5756 5757 5760 5761 5765 5769 5773 5777 5779 5780 5783 5784 5790 5791 5794 5795 5796 5797 5808 5811 5816 5818 5821 5831 5854 5856 5857 5858 5869 5870 5871 5873 5874 5875 5877 5897 5899 5901 5902 5903 5905 5907 5909 5954 5955 5957 5959 5960 5965 5966 5967 5968 5970 5982 5983 5989 6011 6012 6019 6021 6024 6046 6047 6048 6094 6095 6096 6097 6098 6100 6101 6102 6105 6108 6109 6110 6114 6136 6154 6155 6157 6158 6159 6161 6162 6163 6164 6166 6167 6168 6170 6171 6172 6173 6178 6222 6223 6224 6227 6228 6254 6255 6256 6258 6262 6263 6272 6276 6278 6279 6281 6289 6290 6291 6292 6293 6294 6295 6296 6298 6314 6333 6334 6343 6349 6350 6352 6354 6355 6373 WCNT 5486# 6293 6300 WFWSW 137 2544 2570 3147 3442 3472 3632 3983 5331 WORD 2383 2552 3028 3029 3032 3998 4354 4357 5214 5216# 5222 5593 5604 5621 5724 5759 5764 5768 5772 5775 5782 5825 6112 6344 6348 6361 6367 6372 WORD1 5218# WORD2 4086 5217 5221# WORD3 4065 5223# WORDPR 5214# 5735 5785 5815 WRAP 6176 6254# WSTWX 5817 5819# 5826 X 171# 836 837 840 841 844 855 856 857 858 1318 1572 1573 1589 1593 1594 1595 1598 1603 1604 1605 1606 1607 1829 1838 1840 1841 1842 1844 1845 1872 2650 2673 2895 2897 2910 2923 2925 2933 2939 2965 2981 2982 3157 3449 3450 3792 3793 4265 4284 5640 5666 5667 5821 5840 5865 5876 5948 5958 5968 5975 5980 6007 6012 6130 6145 6153 6154 6158 6159 6161 6164 6167 6170 6172 6187 6194 6195 6197 6211 6214 6224 6228 6257 6263 6324 XFLG 232# 2352 2501 4004 4087 XPAND 1823# 1882 2660 2992 3163 4275 5574 5654 5671 5681 5700 6050 6103 XPAND1 1828# 1891 XPAND2 1842# 1845 XPAND3 1863 1870# XPAND5 1871# 1880 XPAND6 1878# XPAND7 1882# 2747 2864 3308 XPAND8 1851# XPAND9 1888# 6149 XPANDE 1834 1877# ZBEG 527 528 5294# ZEND 529 5304# .JB41 194# 1606 .JBAPR 195# 556 .JBBLT 195# .JBCHN 195# 1572 1573 1603 .JBCOR 194# .JBDA 195# .JBDDT 194# 1589 1607 .JBERR 195# .JBFF 194# 489 817 2194 .JBHDA 189# 193 .JBHRL 194# .JBHSM 195# .JBREL 194# 551 1168 1592 1826 1831 1839 1889 .JBS41 191# 193 .JBSA 194# 1604 .JBSDD 190# 193 .JBSYM 194# 495 1397 1595 1605 .JBUSY 194# 1405 .JBVER 12# 193 .RBALC 312# .RBEST 311# CORE 339# 1833 5504 DATE 342# 4496 DDTOUT 337# DEVCHR 338# 478 804 4008 4691 ERROR 288# 845 1878 2082 2087 2097 2102 2107 2247 2256 2525 2609 2693 2729 2732 3106 3223 3333 3338 3341 3347 3402 3403 3601 3603 4424 4484 4515 4662 4679 4728 4735 5198 5225 6207 6284 EXIT 340# 481 487 502 1623 6393 GETPPN 567 GETSEG 347# GETTAB 505 MSTIME 343# 4489 PJOB 344# REMAP 346# RESET 335# 464 SETDDT 336# SETNAM 348# SETUWP 345# TMPCOR 349# UTPCLR 341# 813 WAIT 4048 4058 ADD 1851 1852 2626 2689 2924 2964 3008 3020 3102 3809 3858 3862 3978 4242 4335 4367 4669 5583 5618 5678 5683 5697 5702 5708 5747 5779 5795 5856 5857 5941 5947 5957 5967 5970 5974 5981 5989 6000 6003 6006 6028 6030 6098 6100 6106 6157 6161 6210 6255 ADDB 3006 3879 ADDI 625 1172 1387 1399 1597 1598 1827 1890 2059 2061 2373 2939 3157 4202 4380 4498 4542 4576 4596 4633 4969 4986 5018 5099 5101 5122 5124 5656 5684 5688 5703 5726 5840 5945 5958 5968 5975 5980 5993 5997 6007 6063 6071 6105 6158 6196 6263 6314 6324 ADDM 1853 1858 1864 1865 1866 1867 1869 2377 2379 2933 2999 3000 3001 3002 3003 3005 3094 4032 4074 4076 5696 6095 6096 6097 6171 6242 AND 574 3813 ANDCAB 2943 ANDCAM 4054 ANDI 3293 3894 3907 5901 5965 5978 6174 AOBJN 1849 4353 4733 5873 AOBJP 840 855 AOJ 5177 5662 5949 6160 6165 6169 6229 6237 AOJA 2675 4287 5643 5822 6116 6132 6134 6140 6180 6184 6198 6212 6217 6225 6278 6335 AOJGE 5095 AOJL 1123 4971 5037 5165 AOS 2721 3378 3662 3663 3704 3714 3724 3773 3779 3850 3855 4725 5109 5586 5868 5951 6296 6299 6310 AOSA 1870 6220 AOSGE 5642 AOSN 3661 ASCIZ 1622 4088 ASH 6192 ASUPPR 352 BLOCK 5295 5297 5301 5305 5306 5307 5309 5310 5311 5312 5313 5314 5315 5317 5326 5327 5348 5356 5357 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5371 5372 5373 5374 5375 5376 5377 5378 5380 5382 5383 5384 5391 5392 5393 5394 5398 5402 5403 5404 5406 5407 5408 5410 5411 5412 5414 5415 5416 5418 5419 5421 5422 5435 5436 5437 5453 5457 5458 5459 5460 5461 5462 5463 5464 5465 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5481 5482 5483 5484 5485 5486 5487 5489 5490 BLT 518 526 529 577 874 3009 3168 4015 5661 5691 6064 6110 6281 BYTE 2171 2172 2173 2174 2175 2177 2178 2180 2182 2183 2185 2186 2187 2188 2189 CAIE 613 2356 3111 3735 4000 4061 4391 5156 6185 6358 CAIG 2991 3158 3751 4377 5573 5653 5669 5680 5699 6102 CAIGE 623 692 3637 3740 3766 5184 5666 CAIL 616 629 1914 2556 2561 2746 2863 5185 6060 CAILE 498 1319 1590 2371 2659 3162 3294 3307 3381 3639 3752 4274 4378 4636 5100 5102 CAIN 614 755 763 1904 2080 2092 2095 2367 2600 3016 3908 4041 4045 5069 5104 5110 5150 5152 5154 5595 5903 5905 5907 5909 6175 6177 6179 6181 6183 6352 6356 6359 CALLI 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 558 CAME 2238 3846 4697 5757 5872 CAMG 1832 2651 3325 4266 6048 6069 6146 CAMGE 2889 2917 2975 3152 3443 3786 5615 5633 CAML 2375 2671 4282 5079 5847 5950 6128 6325 CAMLE 1844 4219 5808 6272 CAMN 598 772 2719 3840 3843 4325 4330 4392 4700 5897 6330 CLOSE 1581 1616 4702 COMMEN 16 3990 4136 4178 4225 DEFINE 288 END 6401 ENTER 4723 6387 EXCH 707 860 2946 3033 3313 3318 3722 3934 5625 5746 5816 5818 5858 6041 6159 6167 EXP 3383 3757 3797 5272 5276 5897 6222 EXTERN 194 195 HALT 2890 6386 6388 6391 HLL 3296 5687 5706 6109 HLLM 2505 5690 5710 6295 HLLZ 3379 HLR 1573 4504 HLRE 4540 4581 4631 4658 6241 HLRM 6012 HLRZ 630 726 2554 2562 3090 3098 3292 3449 3461 3899 3913 3999 4060 4218 4239 5022 5097 5594 5614 5632 5707 5807 5855 5871 5959 5982 6173 6195 HLRZM 6292 6312 HLRZS 3614 3874 4069 5797 HRL 3655 3666 3684 3707 3717 3723 3727 3776 3830 3835 3889 3903 4014 4201 5689 5709 6099 HRLI 1600 1841 1846 3674 3914 4012 4356 5659 5870 6279 HRLM 619 727 3316 3450 3772 3780 3859 5019 5094 6197 HRLS 3007 5790 6062 HRLZ 2930 4366 HRLZI 3878 HRR 1320 1950 3154 3832 3837 4381 4502 5791 6068 6127 6151 HRRE 4080 5988 6243 HRREI 2998 5587 5644 HRRI 516 771 2857 2909 3304 4363 4372 4385 HRRM 835 864 2897 2925 2982 3863 4505 5686 5705 5796 5948 6108 6194 6211 6224 6228 6257 HRROM 4006 HRRZ 519 628 834 1168 1267 1316 1588 1592 1826 1835 1839 1889 2369 2560 2687 2888 2895 2916 2981 2989 3027 3314 3317 3616 3737 3781 3792 3895 3916 4040 4050 4055 4059 4083 4241 4420 4593 4622 5579 5617 5635 5651 5660 5668 5811 5854 5875 5977 5996 6031 6044 6046 6058 6088 6142 6187 6214 6264 6343 HRRZM 460 461 463 496 552 983 1580 3095 3103 3320 3389 3421 5581 5582 5620 5729 5736 5783 6152 6293 HRRZS 1574 3298 3681 4019 4205 4240 4582 5679 5698 6101 6313 6323 6328 IBP 5120 IDIV 3812 IDIVI 621 4490 4491 4497 4500 5017 5085 5093 5121 IDPB 590 694 5060 5068 5123 5125 5641 IFE 113 159 248 254 325 356 465 494 499 503 509 513 521 549 580 727 761 801 808 824 864 993 1017 1170 1188 1235 1323 1388 1400 1571 1835 1859 1917 1934 1935 1942 1945 1953 1959 1962 1964 1992 2035 2101 2175 2178 2180 2184 2203 2236 2321 2478 2568 2569 2570 2571 2572 2574 2600 2748 2749 2758 2865 2866 2988 3034 3107 3118 3152 3166 3225 3309 3326 3371 3986 4093 4190 4327 4337 4424 4439 4450 4546 4627 5456 5577 5648 5670 5849 6037 6049 6119 6265 6324 6377 IFN 61 68 78 82 86 98 103 107 112 122 130 139 156 166 251 294 304 328 460 480 482 495 504 507 511 515 530 535 543 545 551 553 560 562 567 569 581 586 587 602 607 626 637 640 652 654 661 712 723 725 729 749 753 755 760 762 774 776 781 782 787 790 795 809 820 825 827 828 853 866 873 885 892 915 950 973 985 987 997 1008 1013 1015 1113 1115 1127 1138 1166 1168 1174 1269 1273 1286 1291 1296 1297 1317 1321 1327 1332 1353 1385 1397 1405 1406 1413 1429 1489 1493 1583 1618 1625 1822 1854 1860 1884 1908 1916 1927 1933 1936 1941 1946 1954 1958 1963 1965 1993 1997 2003 2017 2038 2072 2110 2176 2179 2181 2185 2205 2225 2261 2270 2273 2274 2292 2297 2307 2310 2322 2325 2327 2329 2342 2352 2386 2439 2469 2476 2483 2489 2501 2502 2519 2528 2544 2545 2546 2547 2548 2550 2555 2598 2601 2616 2627 2640 2645 2655 2660 2662 2664 2667 2671 2672 2674 2702 2724 2739 2744 2747 2759 2778 2860 2861 2864 2889 2891 2894 2898 2912 2916 2921 2926 2931 2934 2959 2975 2977 2980 2983 2990 2992 2994 3036 3042 3108 3120 3144 3147 3148 3149 3156 3160 3163 3169 3184 3230 3288 3305 3308 3321 3327 3377 3384 3389 3405 3422 3433 3442 3443 3445 3448 3454 3462 3468 3472 3518 3596 3632 3748 3786 3788 3791 3938 3973 3983 3984 3995 4099 4140 4189 4197 4211 4243 4254 4259 4270 4275 4277 4279 4282 4283 4285 4291 4338 4400 4421 4425 4435 4440 4448 4519 4530 4544 4554 4569 4584 4597 4629 4639 4643 4651 4654 4687 4706 4711 4740 4992 5061 5243 5257 5266 5280 5286 5291 5296 5298 5299 5300 5301 5302 5303 5318 5321 5328 5329 5330 5331 5333 5335 5346 5349 5358 5364 5370 5381 5385 5393 5394 5395 5397 5398 5424 5439 5444 5452 5466 5491 5497 5502 5507 5521 5528 5535 5539 5574 5651 5663 5671 5679 5698 5714 5730 5781 5841 5911 5920 6038 6042 6050 6074 6101 6143 6199 6270 6315 6329 6378 IFNDEF 60 64 66 70 85 95 97 102 106 109 111 115 117 119 121 124 126 129 133 135 137 142 144 146 148 150 152 154 157 160 161 163 165 167 324 ILDB 612 4017 4020 4025 4033 4968 5035 5149 5218 5859 IMUL 3811 5091 6245 IMULI 2060 5087 IN 4063 5221 INBUF 490 2204 INIT 484 6383 INPUT 610 INTERN 193 IOR 3726 3775 3814 IORI 3665 3706 3716 IORM 4051 4332 IOWD 3620 3887 5230 6398 6399 JFCL 1942 3353 5505 6150 JRST 599 610 611 631 639 696 705 709 716 719 724 728 736 739 743 756 761 764 765 767 808 811 824 832 838 842 846 852 854 862 871 977 1016 1121 1577 1591 1612 1615 1834 1863 1880 1883 1886 1891 1909 1919 1920 1934 1945 1959 1965 2062 2068 2069 2081 2083 2088 2093 2094 2096 2098 2103 2108 2196 2198 2202 2220 2222 2239 2244 2248 2257 2341 2353 2354 2357 2363 2365 2368 2372 2380 2384 2526 2539 2557 2559 2565 2606 2611 2654 2660 2661 2664 2686 2696 2703 2708 2710 2712 2714 2715 2831 2839 2844 2847 2850 2852 2878 2880 2881 2883 2904 2911 2920 2929 2948 2961 2963 2967 2969 2992 2994 3017 3096 3104 3108 3112 3115 3119 3165 3182 3183 3222 3227 3285 3301 3326 3337 3342 3345 3348 3369 3375 3393 3398 3469 3600 3602 3604 3610 3631 3638 3640 3644 3659 3660 3676 3683 3697 3701 3712 3730 3736 3753 3755 3783 3820 3821 3822 3823 3824 3825 3826 3841 3844 3847 3861 3865 3872 3877 3881 3883 3893 3906 3909 3912 3917 3922 3926 3928 3932 3936 3976 3986 4001 4002 4027 4031 4036 4037 4039 4042 4044 4046 4053 4056 4062 4064 4065 4070 4078 4084 4090 4195 4215 4220 4221 4269 4275 4276 4279 4328 4331 4337 4347 4352 4360 4365 4369 4378 4379 4386 4514 4545 4548 4550 4553 4567 4580 4594 4630 4637 4666 4676 4693 4694 4695 4701 4705 4724 4730 4736 4981 5023 5029 5053 5055 5057 5080 5106 5111 5114 5116 5151 5153 5155 5157 5159 5163 5169 5178 5186 5194 5200 5217 5222 5224 5226 5526 5571 5576 5590 5596 5600 5603 5608 5613 5623 5628 5631 5636 5657 5673 5685 5704 5711 5728 5753 5787 5789 5804 5805 5809 5812 5828 5835 5845 5848 5862 5863 5877 5881 5882 5898 5904 5906 5908 5910 5913 5961 5963 5984 5990 5998 6014 6029 6032 6050 6052 6061 6067 6070 6089 6092 6107 6117 6126 6129 6149 6156 6176 6178 6182 6186 6208 6219 6233 6239 6248 6252 6259 6273 6282 6285 6288 6303 6326 6331 6351 6353 6357 6360 6362 6374 JSP 845 1878 2082 2087 2097 2102 2107 2247 2256 2525 2609 2693 2729 2732 3106 3223 3333 3338 3341 3347 3402 3403 3601 3603 4424 4484 4515 4662 4679 4728 4735 5198 5225 5249 6207 6284 JUMPE 706 981 1575 1579 2262 2370 3303 3653 4442 4632 5020 5098 5725 5738 5760 5765 5769 5773 5784 5860 5902 6190 6371 JUMPGE 2338 2350 3035 4322 4358 4653 5874 6232 JUMPL 994 1970 1975 1980 1985 1990 2522 2706 2828 2838 2848 4018 4068 4081 4336 4394 4583 4670 6246 6369 JUMPLE 3092 3100 4980 JUMPN 2896 2985 3452 3688 3738 3795 4698 5086 LDB 622 3842 5865 5876 5899 6354 LIST 846 1879 2083 2088 2098 2103 2108 2248 2257 2526 2610 2694 2730 2733 3107 3224 3334 3339 3342 3348 3403 3404 3518 3602 3604 3982 4425 4485 4516 4663 4680 4729 4736 5199 5226 6208 6285 6379 LIT 6379 LOC 12 LOOKUP 2201 LSH 1122 1171 2058 3664 3705 3715 3725 3774 3815 4373 4660 4977 5164 5170 5966 LSHC 4985 MLON 353 MOVE 495 504 527 551 578 605 618 779 783 785 803 837 844 858 868 873 878 879 880 993 1015 1186 1386 1398 1585 1842 2237 2253 2321 2326 2336 2359 2481 2492 2499 2518 2551 2608 2652 2665 2682 2727 2730 2826 2836 2837 2853 2887 2905 2923 2940 2949 2953 2984 3012 3014 3031 3118 3153 3331 3339 3451 3620 3642 3650 3652 3659 3668 3690 3692 3693 3703 3719 3734 3739 3743 3749 3750 3765 3778 3794 3869 3887 3888 3919 3925 3929 3968 3969 4007 4067 4267 4280 4324 4345 4355 4376 4439 4488 4507 4517 4663 4690 4696 4732 4959 4960 4966 5012 5034 5077 5166 5215 5590 5741 5751 5755 5810 5846 5955 5987 5995 6008 6021 6065 6130 6154 6163 6172 6254 6262 6289 6291 6298 6304 6309 6311 6373 MOVEI 462 488 525 553 555 557 569 589 604 615 816 859 875 1119 1837 1850 2193 2264 2622 2650 2752 3159 3167 3621 3671 3729 3769 3849 3852 4005 4011 4265 4348 4506 4572 4574 5028 5048 5051 5083 5084 5105 5115 5161 5188 5196 5206 5572 5597 5605 5624 5667 5740 5745 5756 5777 5869 6011 6040 6093 6136 6157 6166 6170 6223 6227 6256 6258 6365 6366 6381 MOVEM 489 510 520 554 556 568 570 582 600 708 718 742 757 758 759 778 780 784 786 792 817 836 841 856 861 872 877 1397 1405 1595 1610 1843 2194 2241 2265 2480 2482 2485 2488 2493 2507 2543 2673 2692 2756 2757 2870 2871 2884 3013 3015 3093 3101 3155 3287 3302 3319 3613 3622 3643 3694 3793 3873 3886 3979 4013 4030 4038 4284 4703 4709 5580 5584 5585 5588 5591 5640 5645 5737 5739 5748 5749 5750 5761 5763 5767 5771 5778 5780 5821 5831 5843 5900 5976 6114 6162 6163 6164 6168 6290 6305 6333 6382 MOVMS 4659 MOVN 3818 6094 MOVNI 1118 2553 4967 5033 5092 5160 5172 MOVNS 1596 2378 4075 4379 4541 6148 MOVS 515 4203 5677 5695 5794 MOVSI 477 506 576 581 770 773 790 1609 2471 2484 2487 2504 2506 2928 2936 3860 3864 3980 4049 4699 4708 6166 MOVSM 1601 MOVSS 620 3656 4073 4361 4364 MTAPE 815 2200 OPDEF 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 OPEN 810 2197 4704 OUTBUF 491 818 OUTPUT 492 591 1613 4681 5059 5067 5070 6389 POINT 2159 2160 2161 2162 2163 2164 2165 2166 2167 3842 4488 4507 4974 5180 5232 5583 5857 5865 5876 5899 6354 POP 635 703 1587 1838 1857 1871 1872 1873 1874 1877 2335 2494 2694 2754 2755 2955 2956 3311 3312 3334 3685 3686 3687 3709 3720 3744 3745 3770 3771 3848 3854 3882 3923 3930 3931 3970 3971 3974 3975 3997 4077 4208 4494 4509 4510 4721 5089 5090 5176 5190 5199 5208 6024 6025 6036 6235 6247 6250 6251 6294 POPJ 741 830 850 881 1268 1426 1824 1875 1896 1973 1978 1983 1988 1995 2215 2266 2478 2495 2511 2517 2532 2720 2733 2738 2758 2832 2856 2872 2885 2899 2908 2918 2938 2942 2945 2950 2957 2976 2986 2995 2997 3010 3021 3164 3226 3372 3390 3395 3400 3444 3453 3615 3617 3787 3796 3851 3856 3866 4326 4333 4349 4374 4382 4384 4396 4682 4726 4972 4989 5038 5065 5071 5126 5209 5219 5253 5575 5655 5672 5674 5682 5692 5701 5820 5829 5836 5952 5971 6017 6026 6037 6045 6051 6053 6104 6301 6307 6336 PUSH 700 1578 1599 1603 1604 1605 1606 1607 1825 1828 1829 1830 1831 1888 2269 2490 2825 2951 2952 3332 3627 3641 3673 3675 3702 3713 3833 3868 3885 3896 3897 3898 3910 3915 3935 4034 4082 4204 4486 4487 4492 4689 5081 5082 5146 5187 5197 5204 6018 6019 6034 6236 6238 PUSHJ 702 732 735 764 768 973 976 984 992 996 1009 1117 1124 1125 1173 1187 1234 1284 1285 1311 1315 1582 1586 1611 1882 1932 1935 1937 1939 1940 1943 1947 1948 1951 1953 1955 1956 1957 2242 2254 2255 2268 2272 2328 2337 2358 2361 2364 2383 2470 2473 2474 2515 2523 2524 2533 2537 2552 2610 2623 2625 2660 2666 2684 2688 2695 2700 2701 2711 2713 2722 2723 2728 2731 2747 2751 2827 2829 2830 2846 2849 2864 2868 2879 2947 2954 2966 2968 2992 3028 3029 3032 3116 3143 3163 3286 3308 3335 3340 3354 3356 3361 3383 3419 3431 3460 3467 3611 3629 3651 3654 3658 3667 3669 3708 3718 3728 3741 3742 3746 3754 3767 3768 3777 3782 3829 3831 3834 3836 3839 3870 3875 3890 3891 3900 3904 3920 3972 3998 4022 4086 4191 4194 4207 4210 4236 4238 4275 4281 4344 4354 4357 4362 4371 4399 4419 4423 4443 4444 4485 4493 4495 4499 4508 4511 4512 4516 4518 4565 4566 4571 4577 4578 4624 4625 4635 4638 4652 4657 4661 4667 4668 4671 4677 4678 4961 4964 4965 4970 4987 5021 5026 5027 5036 5045 5049 5056 5096 5108 5144 5145 5148 5167 5173 5174 5183 5189 5192 5193 5207 5214 5574 5589 5593 5599 5604 5607 5616 5621 5626 5627 5634 5654 5671 5681 5700 5724 5735 5743 5744 5754 5758 5759 5762 5764 5766 5768 5770 5772 5774 5775 5782 5785 5788 5793 5800 5801 5815 5817 5825 5826 5832 5861 5880 5944 5946 5962 5969 5985 5986 5992 5994 6010 6013 6020 6023 6035 6050 6103 6111 6112 6131 6133 6135 6138 6139 6147 6231 6327 6344 6348 6361 6367 6372 RADIX5 5915 5916 5917 RELEAS 585 802 1010 1011 1012 6392 RELOC 14 REPEAT 3519 3819 ROT 3380 4501 5956 5973 5979 SALL 354 SETCM 3817 SETOB 2093 SETOM 733 3623 3625 3626 SETSTS 1608 SETZ 3295 3382 4984 SETZB 603 1907 SETZM 517 528 579 583 586 595 602 636 760 791 857 1602 1848 2221 2270 2271 2483 2508 3018 3019 3180 3346 3747 4722 5047 5866 6059 6141 6276 SIXBIT 485 846 1186 1585 1879 2083 2088 2098 2103 2108 2237 2240 2248 2257 2321 2336 2526 2610 2694 2730 2733 3107 3224 3334 3339 3342 3348 3403 3404 3602 3604 4425 4485 4516 4663 4680 4697 4699 4708 4729 4736 5128 5129 5130 5131 5132 5133 5181 5199 5226 5250 6208 6285 6384 6394 6395 SKIPA 1572 2252 2685 3330 3670 3871 3876 3892 3905 4323 4634 5147 5954 6222 SKIPE 597 831 870 876 995 1589 2882 3284 3599 3710 6022 SKIPG 3377 3691 3695 3921 SKIPGE 974 2624 4036 4237 SKIPL 2877 4029 4052 4664 SKIPLE 2325 SKIPN 725 782 789 833 853 869 2491 2555 3336 3682 3911 4513 4544 4675 4693 5066 5158 5168 SOJA 1845 2376 2690 4023 5942 6001 6004 6189 6216 SOJE 3030 3657 SOJG 2564 4024 4988 6345 6370 SOJGE 4979 6368 SOJL 691 3672 SOJLE 4286 SOJN 5088 SOS 1893 1894 1895 5646 5647 5658 5802 5833 SOSA 6221 SOSE 5827 6300 6334 SOSG 5058 5602 SOSGE 609 2263 5216 SOSLE 5803 5834 6115 SOSN 6302 SQUOZE 5231 STATZ 1614 1617 5223 6390 SUB 497 1169 2382 2859 2869 3810 3845 3853 4072 5676 5694 6072 6147 6191 6244 SUBI 509 693 1318 1593 1594 1840 1915 2521 2753 2910 2965 2990 3091 3099 3310 3696 4383 4543 5103 5652 6047 6145 6153 6193 6269 SUBM 3315 4623 SUBTTL 3 58 168 355 688 913 969 1110 1282 1428 1492 1570 1624 1820 1900 2122 2191 2259 2435 2497 2541 2613 2698 3023 3109 3228 3282 3416 3439 3471 3515 3988 4097 4134 4176 4223 4289 4316 4342 4388 4646 4684 4738 4953 5073 5135 5211 5242 5289 5400 5450 5500 5536 5568 5610 5638 5722 5838 5939 6055 6337 6375 TDNE 1120 2855 2907 5162 TITLE 2 TLC 1847 2683 2845 4329 4331 4334 4551 6009 6349 TLNE 593 704 738 805 807 812 1823 1868 2067 2509 2538 2558 2563 2653 2705 2709 2750 2843 2867 2919 2944 2960 2996 3004 3181 3225 3344 3711 3927 4009 4268 4327 4552 4573 4575 4579 4680 5112 5570 5612 5622 5630 5727 5752 5776 5786 5819 5844 6016 6066 6091 6125 6155 6287 6350 TLNN 479 624 829 1283 1312 1836 1862 2516 2531 2707 2737 2851 2903 2937 2941 2962 3420 3880 4368 4503 4547 4627 4665 4692 4978 5052 5064 5598 5606 5619 5742 5792 5799 6113 6137 6275 6280 6332 TLO 594 695 756 819 975 982 1879 1905 1906 1938 1962 2213 2339 2351 2360 2437 2475 2510 2858 3399 3624 3838 4021 4192 4193 4209 5046 5171 5205 5578 6073 6230 6297 TLOA 1971 1976 1981 1986 1991 2993 TLOE 701 715 766 2195 2219 3300 5054 TLON 2530 3609 6277 TLZ 592 601 606 865 1313 1944 1949 1952 1960 1961 1972 1977 1982 1987 1992 2066 2214 2243 2340 2472 2486 2500 2860 3297 3612 4196 4206 4217 4729 4734 5078 5175 5798 6057 6261 6306 TLZA 2362 TLZE 717 723 801 814 851 1918 2199 TLZN 734 740 769 849 1576 TRC 5191 TRCA 5050 TRNE 1310 2352 3368 3374 3392 3397 3630 3700 4043 4346 4370 4628 5113 TRNN 1314 3114 4028 4351 4359 4549 4963 5960 5983 TRO 806 3041 3355 3357 3358 3359 3360 3370 3376 3387 3388 3394 4004 4010 4016 4393 4395 TROE 3221 4035 TRZ 617 800 2240 2501 3117 3179 4390 4398 6355 TRZE 3178 4087 5867 6188 6215 TRZN 4026 TTCALL 1622 4088 USETI 4047 VAR 5495 XCT 1917 3299 3689 3924 XLIST 846 1879 2083 2088 2098 2103 2108 2248 2257 2526 2610 2694 2730 2733 3107 3224 3334 3339 3342 3348 3403 3404 3517 3602 3604 4425 4485 4516 4663 4680 4729 4736 5199 5226 6208 6285 6378 XOR 573 2854 2906 3816 XORM 575 XWD 486 644 645 646 647 648 649 650 651 2855 2907 3008 3897 3935 5229 5274 5278 5683 5702 5884 5885 5886 5887 5888 5889 5890 5891 5892 6106 Z 5273 5277