Trailing-Edge
-
PDP-10 Archives
-
decuslib10-04
-
43,50322/loader.lst
There are 2 other files named loader.lst in the archive. Click here to see a list.
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 <VCUSTOM>B2+<VLOADER>B11+<VUPDATE>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,<SPMON=0>
61 IFN SPMON,< TEN30==1
62 K==1>
63
64 IFNDEF L,<L=0>
65
66 IFNDEF TEN30,<TEN30=0>
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,<MONLOD=0>
86 IFN MONLOD,<K==1
87 ALGSW=0
88 COBSW=0
89 DIDAL=0
90 REENT=0
91 B11SW==0
92 SYMDSW==0
93 EXPAND==1>
94
95 IFNDEF K,<K=0>
96
97 IFNDEF STANSW,<STANSW=0>
98 IFN STANSW,< TEMP==0
99 REENT==0
100 FAILSW=1>
101
102 IFNDEF LNSSW,<LNSSW=0>
103 IFN LNSSW,<LDAC=1
104 PP=0>
105
106 IFNDEF FAILSW,<FAILSW==0>
107 IFN FAILSW,<B11SW==1>
108
109 IFNDEF B11SW,<B11SW==1>
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,<RPGSW==1>
112 IFN RPGSW,<PP==1> ;REQUIRE DISK FOR CCL
113 000000 IFE RPGSW,<TEMP=0>
114
115 IFNDEF PP,<PP==1>
116
117 IFNDEF TEMP,<TEMP==1>
118
119 IFNDEF NAMESW,<NAMESW==1>
120
121 IFNDEF LDAC,<LDAC=0>
122 IFN LDAC,<KUTSW=0>
123
124 IFNDEF KUTSW,<KUTSW==1>
125
126 IFNDEF EXPAND,< IFN K,<EXPAND==0>
127 IFE K,<EXPAND==1>>
128
129 IFNDEF DMNSW,<DMNSW==1>
130 IFN DMNSW!LDAC,<IFNDEF SYMPAT,<SYMPAT==100>
131 IFN LDAC,<IFG 20-SYMPAT,<SYMPAT==20>>>
132
133 IFNDEF REENT,<REENT==1>
134
135 IFNDEF PURESW,<PURESW==1>
136
137 IFNDEF WFWSW,<WFWSW==0>
138
139 IFN K,<SYMARG=0
140 SPCHN=0>
141
142 IFNDEF SYMARG,<SYMARG==0>
143
144 IFNDEF SPCHN,<SPCHN==0>
145
146 IFNDEF DIDAL,<DIDAL==1>
147
148 IFNDEF ALGSW,<ALGSW==1>
149
150 IFNDEF COBSW,<COBSW==1>
151
152 IFNDEF SAILSW,<SAILSW==0>
153
154 IFNDEF NELSW,<NELSW==0>
155
156 IFN K,<MANTIS==0>
157 IFNDEF MANTIS,<MANTIS==0>
158
159 IFE PP,<SFDSW==0>
160 IFNDEF SFDSW,<SFDSW==5>
161 IFNDEF CPUSW,<CPUSW==1>
162
163 IFNDEF FORSW,<FORSW==2> ;1=FORSE, 2=FOROTS
164
165 IFNDEF SYMDSW,<SYMDSW==0>
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,<DIDAL==0> ;BOTH USE AUX BUFFER
167 IFNDEF TENEX,<TENEX==0>
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,<DISW==10 ;DISK IMAGE LOAD IN PROGRESS
252 WOSW==20 ;WRITE OUT SWITCH, DATA IN WINDOW HAS CHANGED>
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,<TWOSEGMENTS
305 RELOC 400000>
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,<BUFN==2 ;TWO DATA BUFFERS FOR LOAD>
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,<BUFL==4*203+1>
330 IFN K,<BUFL==203+1>
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,<MOVEI F,CTLBUF-1 ;USE CCL BUFFER FOR COMMANDS
366 HRRM F,CTLIN+1 ;DUMMY UP BYTE POINTER
367 HRLI F,-200 ;MAKE IT AN IOWD
368 MOVEM F,TMPFIL+1
369 MOVSI F,'LOA'
370 MOVEM F,TMPFIL
371 MOVE N,[XWD 2,TMPFIL] ;POINTER FOR TMPCOR READ
372 TMPCOR N, ;READ AND DELETE LOA FILE
373 JRST RPGTMP ;NO SUCH FILE IN CORE, TRY DISK
374 IMULI N,5 ;GET CHAR COUNT
375 ADDI N,1
376 MOVEM N,CTLIN+2 ;STORE IN BUFFER HEADER
377 MOVEI N,700 ;BYTE POINTER FOR LOA FILE
378 HRLM N,CTLIN+1 ;BYTE POINTER NOW COMPLETE
379 SETOM TMPFLG ;MARK THAT A TMPCOR READ WAS DONE
380 JRST RPGS3C ;GET BACK IN MAIN STREAM
381 RPGTMP: ; NOT TMP>
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,<SETZM TMPFLG>
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,<IFN RPGSW,<
466 HLLZS .JBERR ;MAKE SURE ITS CLEAR.>
467 RESET ;INITIALIZE THIS JOB
468 SETZ N, ;CLEAR N
469 CTLSET: SETZB F,S ;CLEAR THESE AS WELL
470 IFN TENEX,<TLO F,SYMSW!RMSMSW ;ASSUME /S
471 TRO F,DMNFLG ;ASSUME /B
472 SETZM NLSTGL ;PERMIT LST OF UNDEF. GLOBALS>
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,<JRST [TLNN N,RPGF ;IN CCL MODE?>
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,<MOVE S,[10,,12] ;CORMAX IN NSWTBL
505 000030' 047 04 0 00 000041 GETTAB S, ;GET MAX CORE ALLOWED TO A JOB
506 000031' 205 04 0 00 000001 MOVSI S,1 ;SET TO VERY LARGE
507 IFN REENT,<HLRZ E,.JBHRL ;BUT DON'T INCLUDE HIGH SEGMENT
508 SUBI S,1(E) ;IN LOW SEGMENT MAX>
509 000032' 275 04 0 00 000001 IFE REENT,<SUBI S,1 ;ONE LESS FOR K BOUND>
510 000033' 202 04 0 00 004144' MOVEM S,ALWCOR ;SAVE IT FOR XPAND TEST>
511 IFN PURESW,<MOVE S,[XWD HICODE,LOWCOD]
512 BLT S,LOWCOD+CODLN-1>
513 IFE L,< MOVS E,X ;SET UP BLT POINTER
514 HRRI E,1(X)>
515 000034' 204 14 0 00 000003 IFN L,<MOVS E,H
516 000035' 541 14 0 03 000001 HRRI E,1(H)>
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,<MOVSI W,1
536 MOVEM W,HVAL1
537 MOVEM W,HVAL
538 MOVEM X,LOWX
539 MOVEM R,LOWR
540 HRRZI W,1
541 SETUWP W, ;SETUWP UUO.
542 TRO F,NOHI6 ;PDP-6 COMES HERE.>
543 IFN REENT!CPUSW,<
544 MOVEM F,F.C ;PDP-10 COMES HERE.>
545 IFN SAILSW,<MOVE W,[XWD -RELLEN-1,LIBFLS-1] ;SET UP POINTERS
546 MOVEM W,LIBPNT# ;IN THE FORM OF AOBJN WORDS
547 MOVE W,[XWD -RELLEN-1,PRGFLS-1]
548 MOVEM W,PRGPNT#>
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,<MOVEI W,440000 ;SET UP THE SPECIAL BITS OF HEADNUM(ADD+POLISH)
554 000052' 202 12 0 00 004047' MOVEM W,HEADNM
555 000053' 201 12 0 00 002160' MOVEI W,PDLOV ;ENABLE FOR PDL OV
556 000054' 202 12 0 00 000000* MOVEM W,.JBAPR
557 000055' 201 12 0 00 200000 MOVEI W,200000
558 000056' 047 12 0 00 000016 CALLI W,16
559 >
560 IFN DMNSW,<MOVEI W,SYMPAT
561 MOVEM W,KORSP>
562 IFN MONLOD,<IFN PURESW,<
563 MOVEI W,.RBALC ;NUMBER OF WORDS FOR ENTER
564 MOVEM W,DIOUT
565 MOVEI W,DALLOC ;NUMBER OF BLOCKS TO ALLOCATE
566 MOVEM W,DIOUT+.RBEST>>
567 000057' 047 12 0 00 000024 IFN SFDSW,<GETPPN W, ;GET USER'S PPN
568 000060' 202 12 0 00 004022' MOVEM W,MYPPN ;SAVE IT FOR [,,] ETC>
569 000061' 201 12 0 00 000001 IFN FORSW,<MOVEI W,FORSW-1 ;GET DEFAULT
570 000062' 202 12 0 00 004145' MOVEM W,FORLIB ;INCASE USER DOESN'T SET IT>
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,<SETZM ILD1 ;CLEAR INPUT DEVICE NAME>
581 000072' 205 10 0 00 446353 IFN PP,<MOVSI T,'DSK' ;ASSUME DSK.
582 000073' 202 10 0 00 003731' MOVEM T,ILD1>
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,<SETZM PPPN ;CLEAR PERMANENT PPN ON EACH NEW LINE>
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,<SETZM PPN ;DON'T REMEMBER PPN FROM ONE FILE TO NEXT.>
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,<TLNE N,RPGF ;CHECK RPG FEATURE
608 JRST RPGRD>
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,<CAIL Q,20 ;SKIP UNLESS SECOND FORM OF DISPATCH
627 JRST LD3AB ;DIFFERENT DISPATCH>
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,<TLNE N,RPGF ;IN CCL MODE
638 TRNN F,TRMFL ;YES, /G SEEN?>
639 000146' 254 00 0 00 000063' JRST LD2Q ;NO, START A NEW LINE
640 IFN RPGSW,<POPJ P, ;AND RETURN>
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 <L. ARROW>, BAD CHAR.
649 000154' 000204' 000157' XWD LD5B,LD4 ;<,>, ALPHABETIC CHAR.
650 000155' 000360' 000157' XWD LD5D,LD4 ;<CR.>, NUMERIC CHAR.
651 000156' 000370' 000734' XWD LD5E1,LD7 ;<ALT MODE>, BAD CHAR. <)>
652 IFN SYMARG,<XWD LD7,LD10 ;BAD CHAR,&>
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,<SKIPE TMPFLG ;TMPCOR UUO READ DONE?
676 JRST RPGRD3 ;YES, SO SHOULD NEVER GET HERE>
677 IN 17,0
678 JRST RPGRD+2
679 STATO 17,740000
680 JRST RPGRD3 ;END OF FILE
681 ERROR ,</ERROR WHILE READING COMMAND FILE!/>
682 EXIT ;AND GIVE UP
683
684 RPGRD3: ERROR ,</END-OF-FILE ON COMMAND FILE!/>
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,<TLZE N,PPCSW ;READING PP #?
724 JRST [
725 IFN SFDSW,< SKIPN D ;JUST A COMMA SEEN?
726 HLRZ D,MYPPN ;YES, USE OWN PROJ #>
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 <LEFT ARROW>
746 ;OR PROJ-PROG # BRACKETS <[> AND <]>
747
748 000221' LD5C:
749 IFN SPCHN,<CAIN T,"=" ;DO A /= AS SWITCH
750 TLNN F,SSW
751 SKIPA
752 JRST LD6>
753 IFN RPGSW,<CAIN T,"@" ;CHECK FOR * COMMAND.
754 JRST RPGS1>
755 000221' 306 10 0 00 000133 IFN PP,<CAIN T,"[" ;PROJ-PROG #?
756 JRST [TLO N,PPSW+PPCSW ;SET FLAGS
757 MOVEM W,PPNW ;SAVE W
758 MOVEM E,PPNE ;SAVE E
759 MOVEM V,PPNV ;SAVE V
760 IFN SFDSW,< SETZM SFD ;USED AS A FLAG>
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,<CAMN W,['XPN '] ;IS EXTENSION 'XPN'?
775 JRST DIOPEN ;YES, OPEN DISK IMAGE FILE>
776 IFN SYMDSW,<CAMN W,['SYM '] ;IF EXT IS SYM
777 JRST SYOPEN ;OPEN AUX FOR SYMBOL FILE>
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,<MOVEM W,CHNENT ;AND FOR SPECAIL CHAINING>
782 000240' 336 12 0 00 004016' IFN PP,<SKIPN W,PPN ;PROJ-PROG #
783 000241' 200 12 0 00 004015' MOVE W,PPPN ;TRY PERMANENT ONE
784 000242' 202 12 0 00 004171' MOVEM W,DTOUT+3 ;...>
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,<SKIPN CHNACB ;ARE WE DOING A SPECIAL CHAIN?
788 MOVEM W,CHNOUT+1 ;ALLOW HIM TO CHOOSE SP CHAIN DEV>
789 000245' 336 12 0 00 004014' SKIPN W,LSTDEV ;RESTORE LAST
790 000246' 205 12 0 00 446353 IFN PP,<MOVSI W,'DSK' ;RESET DEVICE TO DSK>
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,<TLZE N,AUXSWI+AUXSWE ;FLUSH CURRENT DEVICE
802 000253' 071 02 0 00 000000 RELEASE 2, ;...>
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,<JRST LD2DD ;YES, SKIP INIT>
809 IFN SYMDSW,<POPJ P,>
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,<EXCH E,.JBFF
821 SUBI E,AUX
822 IDIV C,E
823 OUTBUF 2,(C)>
824 000274' 254 00 0 00 000105' IFE SYMDSW,<JRST LD2DD ;RETURN TO CONTINUE SCAN>
825 IFN SYMDSW,<POPJ P,>
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 ,</?TOO MANY SFDS SPECIFIED@/>
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,<SKIPN SFD ;A FULL PATH SPECIFIED?
854 000327' 254 00 0 00 000340' JRST RBRA1 ;NO
855 000330' 252 02 0 00 000312' AOBJP X,SFDER ;MUST STORE LAST SFD
856 000331' 202 12 0 02 000000 MOVEM W,(X)
857 000332' 402 00 0 02 000001 SETZM 1(X) ;END WITH A ZERO
858 000333' 200 02 0 00 004025' MOVE X,SFD ;RESTORE X
859 000334' 201 12 0 00 004023' MOVEI W,SFDADD ;POINT TO SFD PATH
860 000335' 250 12 0 00 004016' EXCH W,PPN
861 000336' 202 12 0 00 004025' MOVEM W,SFD ;STORE IN BLOCK
862 000337' 254 00 0 00 000343' JRST RBRA2 ;CONTINUE
863 000340' RBRA1:>
864 000340' 542 07 0 00 004016' IFE STANSW,<HRRM D,PPN ;STASH PROG NUMBER
865 000341' 621 00 0 00 400000 TLZ F,SSW ;AND TURN OFF SWITCH MODE>
866 IFN STANSW,<PUSHJ P,RJUST ;RIGHT JUSTIFY W
867 HRRM W,PPN ;STASH PROG NAME>
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,<MOVE W,[SFD,,PSFD]
874 000350' 251 12 0 00 004043' BLT W,PSFD+SFDSW ;MOVE FULL PATH
875 000351' 201 12 0 00 004034' MOVEI W,PSFDAD ;POINT TO IT
876 000352' 332 00 0 00 004025' SKIPE SFD ;BUT NOT IF IT'S ZERO
877 000353' 202 12 0 00 004015' MOVEM W,PPPN ;AND STORE>
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,</ DOESN'T EXIST@/>
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,<PUSHJ P,[PUSHJ P,XPAND
955 TLOA F,FULLSW
956 JRST POPJM3
957 POPJ P,]>
958 IFE EXPAND,<TLO F,FULLSW>
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 <CARRIAGE RETURN>
971
972 000360' LD5D:
973 000360' 260 17 0 00 000322' IFN PP,<PUSHJ P,RBRA ;CHECK FOR UNTERMINATED 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 <ALT MODE>
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,<TRO F,TRMFL ;INDICATE TERMINATION STAGE
986 RELEASE 17,0 ;RELEASE COMMAND DEVICE>
987 IFN MANTIS,<TRNN N,MANTFL ;LOADING MANTIS?
988 JRST LD5E2 ;NO
989 IFN KUTSW,<SETOM CORSZ ;DON'T KUT BACK CORE>
990 IFN DMNSW,<TRZ F,DMNFLG ;OR MOVE SYMBOLS>
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,<MOVE W,['LOADER'] ;FINAL MESSAGE>
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,<HRRZ W,HISTRT ;IN CASE NO NAME SET, USE FIRST LOADED
998 MOVE W,-1(W)
999 SKIPN CURNAM
1000 PUSHJ P,LDNAM
1001 MOVE W,CURNAM
1002 CAME W,[SIXBIT /MAIN/] ;FORTRAN MAIN PROG, OR MACRO NO TITLE
1003 JUMPN W,.+3 ;A USEFUL NAME SEEN
1004 SKIPE PRGNAM ;NO, SO TRY BINARY FILE NAME
1005 MOVE W,PRGNAM ;USE BINARY FILE NAME IN EITHER CASE
1006 IFE L,<MOVEM W,CURNAM ;SAVE NAME FOR LATER>
1007 IFN L,<SETNAM W, ;SETNAM>>
1008 IFN MONLOD,<TLNN N,DISW ;SKIP IF LOADING TO DISK?>
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,<RELEASE 4,0 ;SPECIAL CHAINING CHANEL>
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,<HRRZ C,.JBERR ;CHECK FOR ERRORS
1024 IFE MANTIS,<TLNN N,DDSW ;ALLOW EXECUTION IF TO DDT>
1025 IFN MANTIS,<TDNN N,[DDSW,,MANTFL] ;OR MANTIS>
1026 JUMPN C,EXDLTD ;ERRORS AND NOT TO DDT>
1027 IFN MONLOD,<TLNE N,DISW ;DISK IMAGE LOAD IN PROGRESS?
1028 MOVE X,XRES ;YES, GET RESIDENT X>
1029 HRRZ W,.JBSA(X)
1030 IFN MANTIS,<TRNN N,MANTFL ;NO MESSAGE IF STARTING SPECIAL DEBUGGER>
1031 TLNN N,DDSW ;SHOULD WE START DDT??
1032 IFE TENEX,<JRST LD5E2 ;NO>
1033 IFN TENEX,<JRST LD5E2 ;NO
1034 PUSH P,1
1035 MOVEI 1,400000 ;THIS FORK
1036 DIR
1037 CIS
1038 JSYS 147 ;TENEX RESET, NOT CALLI 0. FLUSH PA1050
1039 MOVE 1,.JBSYM(X)
1040 MOVEM 1,@770001 ;GIVE SYMS TO DDT
1041 MOVE 1,.JBUSY(X)
1042 MOVEM 1,@770002 ;AND UNDEF SYMS
1043 POP P,1>
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,<TRNE N,MANTFL ;NO MESSAGE IF STARTING SPECIAL DEBUGGER
1058 CAIA>
1059 TTCALL 3,[ASCIZ /EXECUTION
1060 /]
1061 IFN TENEX,<MOVEM X,V ;SAVE AWAY RELOCATION
1062 MOVE X,.JBSA(X) ;NEW START ADDRESS
1063 HRLI X,<JRST>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,<TLNE N,DISW ;LOADING TO DISK?
1074 JRST DIOVER ;YES, CLEAN UP THE XPN FILE>
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,<SKIPGE E,CORSZ ;DO WE WANT CORE ADJUST
1080 MOVE CORAC,JFCLAC ;NO, CLEAR COREUUO>
1081 IFE LDAC,<MOVE LSTAC,W ;SET END CONDITION>
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,<MOVE W,CURNAM ;GET PROGRAM NAME
1089 SETNAM W, ;SET IT FOR VERSION WATCHING>
1090 JRST 0>
1091
1092 LODACS: PHASE 0
1093 BLT Q,(A) ;BLT CODE DOWN
1094 IFN KUTSW,<CORAC:! CORE E, ;CUT BACK CORE
1095 JFCLAC:! JFCL ;SHOULD NEVER HAVE AN ERROR SINCE REDUCING CORE>
1096 SETZB 0,7 ;CLEAR ACCS OTHERWISE USER
1097 SETZB 11,17 ;MIGHT BELIEVE GARBAGE THERE
1098 LSTAC:! IFN LDAC,<JRST .JBBLT>
1099 IFE LDAC,<EXIT>
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,<IFE K,<
1114 JUMPE W,BLTST3 ;NO MESSAGE FROM CHAIN IN CCL@>>
1115 IFN MANTIS,<TRNE N,MANTFL ;NO MESSAGES IF SPECIAL DEBUGGER
1116 JRST NOMAX>
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,<MOVSI Q,-20 ;FINISH UP LINK STUFF
1128 FREND: HLRZ V,LINKTB+1(Q)
1129 JUMPE V,NOEND
1130 HRRZ A,LINKTB+1(Q)
1131 IFN REENT,<CAMGE V,HVAL1
1132 SKIPA X,LOWX
1133 MOVE X,HIGHX>
1134 IFN L,<CAML V,RINITL>
1135 HRRM A,@X ;PUT END OF LINK CHAIN IN PROPER PLACE
1136 NOEND: AOBJN Q,FREND
1137 IFN REENT,<MOVE X,LOWX ;RESET THINGS>>
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,<MINCUT:>
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,<SKIPE .JBDDT(X) ;IF NO SYMBOL MOVING JUST CHECK DDT>
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,<IFE K,<
1167 JUMPE W,NOMAX ;NO MESSAGE IF CHAIN IN CCL@>>
1168 000415' 550 15 0 00 000047* IFN L,<HRRZ Q,.JBREL
1169 000416' 274 15 0 00 004140' SUB Q,OLDJR ;PROPER SIZE>
1170 IFE L,<HRRZ Q,.JBREL(X)>
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,<MOVE Q,HVAL
1175 SUB Q,HVAL1
1176 HRREI Q,-1(Q) ;SIZE IS ONE TOO BIG
1177 CAIG Q,.JBHDA ;IS THERE ANY CODE LOADED THERE?
1178 SETZB Q,HVAL ;NO , CLEAR ALL INDICATIONS OF IT
1179 JUMPE Q,NOHY ;NO HIGH SEGMENT
1180 MOVEI T,"+"-40 ;THERE IS A HISEG
1181 PUSHJ P,TYPE
1182 LSH Q,-12
1183 ADDI Q,1
1184 PUSHJ P,RCNUM
1185 NOHY:>
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,<TLNN N,RPGF
1190 JRST .+4 ;NOT IN CCL MODE SO GIVE ALL INFO
1191 TLZ F,FCONSW ;ONLY PUT ON MAP IF IN CCL MODE
1192 TLNN N,AUXSWI ;IS THERE AN AUX DEV?
1193 JRST NOMESS ;NO, SO SKIP REST OF THIS STUFF>
1194 MOVSI W,', ' ;SET DELIMITER CHARACTERS
1195 MOVNI Q,2 ;SET COUNT TO 2
1196 PUSHJ P,PWORD1 ;OUTPUT THEM
1197 IFN DMNSW,<TRNN F,DMNFLG>
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,</LOADER USED !/> ;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,<HLRZ A,.JBCOR(X) ;GET HIGHEST ACTUAL DATA
1237 CAIL A,.JBDA ;SEE IF GREATER THAN JOBDAT
1238 JRST NOMAX ;YES, SKIP MESSAGE
1239 ERROR 0,</[NULL LOW SEGMENT]!/>
1240 PUSHJ P,CRLF>
1241 NOMAX:
1242 IFE TENEX,<MOVE W,.JBDDT(X)
1243 SETDDT W,
1244 JUMPN W,DDTSET ;DON'T BOTHER IF DDT SET
1245 HLRE Q,.JBSYM(X) ;GET LENGTH OF SYMBOL TABLE
1246 MOVNS Q ;AS POSITIVE NUMBER
1247 HRRZ W,.JBSYM(X) ;GET START
1248 ADD W,Q ;ADDRESS OF HIGHEST LOCATION
1249 HLRZ Q,.JBSA(X) ;HIGHEST LOCATION SAVED BY MONITOR
1250 IFN MANTIS,<TRNN N,MANTFL ;DONT CHECK ADR IF SPECIAL DEBUGGER>
1251 CAIG W,(Q) ;IN BOUNDS?
1252 JRST DDTSET ;YES, ALL OK
1253 IFN REENT,<TRNE F,SEENHI ;ANY HIGH SEGMENT STUFF?
1254 CAMGE W,HVAL1 ;YES, IN HI-SEG THEN?
1255 JRST .+2 ;NO
1256 JRST DDTSET ;YES, ALL IS WELL>
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,<HRLI Q,20(X) ;SET UP BLT FOR CODE
1263 HRRI Q,20>
1264 IFN TEN30,<HRLI Q,.JBDDT(X)
1265 HRRI Q,.JBDDT>
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,<CORERR: TTCALL 3,[ASCIZ /?NOT ENOUGH CORE
1270 /]
1271 EXIT>
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,<MOVE C,[RADIX50 44,%OWN]
1287 MOVE W,%OWN ;GET VALUE
1288 TRNE N,ALGFL ;IF ALGOL PROG LOADED
1289 PUSHJ P,SYMPT ;DEFINE %OWN
1290 IFN REENT,<MOVE X,LOWX ;MAKE SURE X IS CORRECT>>
1291 IFN RPGSW,<HLRE A,S
1292 MOVNS A
1293 LSH A,-1
1294 ADD A,.JBERR
1295 HRRM A,.JBERR>
1296 IFN SYMDSW,<PUSHJ P,READSYM ;READ BACK LOCAL SYMBOLS>
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,<ADDI A,(X) ;PLUS LOADER CORE BASE
1304 HRRZS A ;CLEAR LEFT HALF OF REGISTER
1305 HRRZ W,HILOW ;GET CURRENT SPOT IN LOW SEGMENT>
1306 IFE REENT,<HRRZ W,R ;GET CURRENT SPOT IN LOW SEGMENT>
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,<TLNN N,DISW ;SKIP IF LOADING TO DISK>
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,<TLNE N,DISW ;LOADING TO DISK?
1322 MOVE X,XRES ;YES, GET RESIDENT OFFSET>
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,<MOVE C,[RADIX50 44,PAT..] ;MARK PATCH SPACE FOR RPG
1328 MOVEI W,(R)
1329 PUSHJ P,SYMPT
1330 IFN REENT,<TRNE F,HISYM ;SHOULD SYMBOLS GO IN HISEG?
1331 JRST BLTSYM ;YES>>
1332 IFN DMNSW!LDAC,< ;ONLY ASSEMBLE IF EITHER SET
1333 IFN MONLOD,<TLNE N,DISW ;LOADING TO DISK?
1334 JRST SASYM1 ;YES, NO NEED TO EXPAND CORE>
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,<JRST [PUSHJ P,XPAND>
1345 PUSHJ P,MORCOR
1346 IFN EXPAND,< JRST .-1]>
1347 IFN LDAC,<HRRM R,BOTACS ;SAVE BOTTOM OF WHERE WE PUT ACS
1348 HRRZ A,R
1349 ADDI A,(X)
1350 HRL A,X ;SET UP BLT FROM (X) TO R(X)
1351 MOVEI Q,17(A)
1352 BLT A,(Q)>>
1353 IFN DMNSW,<TRNN F,DMNFLG ;NOW THE CODE TO MOVE SYMBOLS
1354 JRST NODDT
1355 IFN MONLOD,<SASYM1:>
1356 HRRZ A,R
1357 ADD A,KORSP
1358 MOVE W,A ;SAVE POINTER TO FINAL LOC OF UNDEFS
1359 IFN MONLOD,<TLNE N,DISW ;LOADING TO DISK?
1360 PUSHJ P,DISYM ;YES, GET BREAK ADDRESS INTO CORE>
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,<HRRM R,HILOW ;SAVE THIS AS HIGHEST LOC IN LOW SEG TO SAVE>
1375 IFN MONLOD,<TLNE N,DISW ;LOADING TO DISK?
1376 MOVE X,XCUR ;GET CURRENT BUFFER OFFSET>
1377 SUBI R,(X)
1378 IFN MONLOD,<TLNE N,DISW ;LOADING TO DISK?
1379 MOVE X,XRES ;SET UP OFFSET FOR RESIDENT PORTION>
1380 HRRM R,.JBFF(X)
1381 HRLM R,.JBSA(X) ;AND SAVE AWAY NEW JOBFF
1382 IFE REENT,<HRRM R,.JBCOR(X) ;DON'T LOSE LOW SEGMENT DATA>
1383 IFN LDAC,<SKIPA> ;SKIP THE ADD TO R
1384 NODDT:>
1385 IFN LDAC,<ADDI R,20> ;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,<MOVEM A,.JBSYM(X)
1389 IFN REENT,<TRNN A,(1B0) ;SYMBOL TABLE IN HIGH SEGMENT?
1390 JRST NOHYSM ;NO
1391 EXCH X,HIGHX ;RELOCATE TO HIGH SEG.
1392 ADD X,HVAL1 ;ADD IN BASE OF HIGH SEGMENT
1393 MOVEM A,.JBHSM(X) ;SINCE MAY NOT START AT 400000
1394 SUB X,HVAL1 ;BACK AS IT WAS
1395 EXCH X,HIGHX
1396 NOHYSM: >>
1397 000446' 202 16 0 00 000022* IFN L,<MOVEM A,.JBSYM>
1398 000447' 200 16 0 00 000004 MOVE A,S
1399 000450' 271 16 0 00 000001 ADDI A,1
1400 IFE L,<MOVEM A,.JBUSY(X)
1401 MOVE A,HISTRT ;TAKE POSSIBLE REMAP INTO ACCOUNT
1402 IFN MANTIS,<TRNE N,MANTFL ;SPECIAL DEBUGGER?
1403 MOVE A,.JBREL ;YES, USE OUR SEGTOP>
1404 MOVEM A,.JBREL(X) ;SET UP FOR IMEDIATE EXECUTION>
1405 000451' 202 16 0 00 000000* IFN L,<MOVEM A,.JBUSY>
1406 IFN MONLOD,<TLNN N,DISW ;LOADING TO DSK?
1407 JRST NOTDSK ;NO
1408 MOVE A,.JBDDT(X) ;GET DDT STARTING ADDRESS
1409 MOVEM A,.JBSDD(X) ;SO GET WILL RESTORE IT
1410 MOVE A,.JB41(X) ;MAY AS WELL SET UP JOB41
1411 MOVEM A,.JBS41(X) ;ALSO
1412 NOTDSK:>
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,<TRNE F,HISYM ;SYMBOLS IN HISEG?
1423 ADDI A,1 ;YES, AT TOP OF CORE ALREADY
1424 ;BUT HVAL ONE TOO SMALL>
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,<JRST [PUSHJ P,XPAND>
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 ,</MORE CORE NEEDED#/>
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,<TLNE N,RPGF ;IF IN CCL MODE
1584 TDZA W,W ;NO MESSAGES>
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,<JRST LOSEBIG
1619 TLNE N,RPGF ;IF IN CCL MODE
1620 JRST CCLCHN ;LOAD NEXT LINK
1621 EXIT>
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,<TRO N,VFLG ;GIVE HIM REENTRANT FORSE UNLESS /-V SEEN>
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 ,</ERROR WRITING CHAIN@/>
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,<SKIPL V,1(Q) ;IF HIGH ORDER BIT IS ON
1690 TLNN V,740000 ;OR IF ALL CODE BITS 0
1691 JRST NXTCK ;THEN NOT TO BE CHECKED>
1692 MOVE V,2(Q) ;GET FIXUP WORD
1693 TLNE V,100000 ;BIT INDICATES SYMBOL TABLE FIXUP
1694 JRST SMTBFX
1695 IFN FAILSW,<TLNE V,40000 ;BIT INDICATES POLISH FIXUP
1696 JRST POLCK>
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,<CAMGE V,HVAL1>
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,<CAMGE V,HVAL1 ;GET CORRECT LINK
1708 SKIPA X,LOWX
1709 MOVE X,HIGHX>
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,<POLCK: HLRZ C,V ;FIND HEADER
1725 PUSHJ P,SREQ
1726 SKIPA
1727 JRST LOAD4A ;SHOULD BE THERE
1728 HRL C,2(A) ;NOW FIRST OPERATOR (STORE)
1729 MOVSS C
1730 PUSHJ P,SREQ
1731 SKIPA
1732 JRST LOAD4A
1733 ANDI C,37 ;GET OPERATION
1734 HRRZ V,2(A) ;DESTINATION
1735 JRST @CKSMTB-15(C) ;DISPATCH
1736 CKSMTB: EXP SMTBFX,SMTBFX,SMTBFX,CORCK,LCORCK,CORCK,NXTCK
1737 LCORCK: JSP A,CORCKL
1738 HLRZ V,@X>
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,<PUSHJ P,RESTRX ;GET PROPER X BACK>
1746 JUMPE E,NOER ;DID ANYTHING GO WRONG??
1747 ERROR ,</UNDEFINED GLOBAL(S) IN LINK@/>
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,<HRRZ W,HILOW ;AND END OF OVERLAY+1
1757 HRRZM A,HILOW ;RESET>
1758 IFE REENT,<HRRZ W,R
1759 ADDI W,(X) ;A BETTER GUESS>
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 ,</?TOO MANY LINKS@/>
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,<ADDM H,HIGHX ;AND STORE LOCATION
1855 TLNE F,HIPROG
1856 ADDM H,-1(P) ;X IS CURRENTLY IN THE STACK>
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,<SKIPE MNTSYM ;DEBUGGER DATA PRESENT?
1861 ADDM H,MNTSYM>
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 ,</MORE CORE NEEDED#/>
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,<TLNE N,DISW ;LOADING TO DISK?
1885 JRST POPJM3 ;YES, RETURN TO CALL-2>
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,<TRZ F,ARGFL ;CLEAR SPECIAL SYMBOL SWITCH >
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,<XCT LD6B-74(T) ;EXECUTE SWITCH FUNCTION>
1917 000641' 256 00 0 10 000544' IFE SPCHN,<XCT LD6B-101(T) ;EXECUTE SWITCH FUNCTION>
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,<PUSHJ P,CHNBG ;LESS THAN - BEGINNING OF OVERLAY
1928 PUSHJ P,CHNENS ;= - PUT OUT CHAIN RETAINING SYMBOLS
1929 PUSHJ P,CHNEN ;GREATER THAN - END OF OVERLAY
1930 JRST LD7B ;? - ERROR
1931 JRST LD7B ;@ - ERROR>
1932 000645' 260 17 0 00 000677' PUSHJ P,ASWTCH ;A - LIST ALL GLOBALS
1933 IFN DMNSW,<PUSHJ P,DMN2 ;B - BLOCKS DOWN SYMBOL TABLE >
1934 000646' 254 00 0 00 000745' IFE DMNSW,<JRST LD7B ;B - ERROR>
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,<PUSHJ P,HSET ;H - REENTRANT. PROGRAM>
1942 000654' 255 00 0 00 000000 IFE REENT,<JFCL ;JUST IGNORE /H>
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,<JRST LD7B ;K - ERROR>
1946 IFN KUTSW,<MOVEM C,CORSZ ;K - SET DESIRED CORE SIZE>
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,<PUSHJ P,VSWTCH ;V - LOAD REENTRANT LIB40>
1959 000672' 254 00 0 00 000745' IFE REENT,<JRST LD7B ;V - ERROR>
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,<TLO F,REWSW ;Y - REWIND BEFORE USE>
1963 IFN TENEX,<PUSHJ P,NEWPAG ;Y - ORIGIN TO NEXT PAGE BOUNDARY>
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,<TLZ F,SYMSW!RMSMSW ;DON'T>
1993 IFN MANTIS,<TLZA F,SYMSW!RMSMSW ;DON'T
1994 TRZ N,SYMFOR ;SYMBOLS LOAD EXPLICITLY SPECIFIED>
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,<ERROR ,<?/H ILLEGAL AFTER FIRST HISEG FILE IS LOADED@?>>
2025 IFN TENEX,<HRRZ C,HVAL
2026 CAIGE D,0(C)
2027 JRST HSET69
2028 HRRM D,HIGHR ;MOVE UP HIGH BREAK
2029 POPJ P,0
2030
2031 HSET69: ERROR ,<?/H ILLEGAL: ATTEMPT TO LOWER HISEG BREAK@?>
2032 POPJ P,0>
2033 >
2034
2035 IFE L,<
2036 LDRSTR: ERROR 0,</LOADER RESTARTED@/>
2037 JRST BEG ;START AGAIN (NO CCL)>
2038 IFN REENT,<
2039 HCONT: HRRZ C,D
2040 IFE TENEX,<ANDCMI C,1777
2041 CAIL C,400000>
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 ,</HISEG STARTING ADDRESS TOO LOW@/>
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,</CHAR.%/>
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,</SYNTAX%/>
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,</SWITCH%/>
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 ,<?UNCHAINABLE AS LOADED@?>
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 ,<?NO CHAIN DEVICE@?>
2108 000767' 254 00 0 00 000145' JRST LD2>
2109
2110 IFN DMNSW,<
2111 DMN2:
2112 IFN REENT,<CAIN D,1 ;SPECIAL CASE
2113 TROA F,HISYM ;YES ,BLT SYMBOLS INTO HISEG>
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,<BYTE (4)1,0,0,0,0,10,0,1,1>
2185 001013' 060040 100021 IFN PP,<BYTE (4)1,10,0,10,0,10,0,1,1>
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,<INBUF 1,1
2206 MOVEI W,BUF1
2207 EXCH W,.JBFF
2208 SUBI W,BUF1
2209 IFE K,<MOVEI C,4*203+1>
2210 IFN K,<MOVEI C,203+1>
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,<CAME W,['IMP40 '] ;IMP40? REQUESTED?>
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,<IFE TEN30,< ;PDP-6 ONLY
2237 001042' 200 12 0 00 006325' MOVE W,[SIXBIT /LIB40/]
2238 001043' 312 12 0 00 004162' CAME W,DTIN ;WAS THIS A TRY FOR LIB40?
2239 001044' 254 00 0 00 001052' JRST ILD4A ;NO
2240 001045' 620 12 0 00 002000 TRZ W,(SIXBIT / 0/) ;YES
2241 001046' 202 12 0 00 004162' MOVEM W,DTIN ;TRY LIB4
2242 001047' 260 17 0 00 001171' PUSHJ P,LDDT2 ;USE .REL EXTENSION
2243 001050' 621 00 0 00 000002 TLZ F,ESW ;...
2244 001051' 254 00 0 00 001030' JRST ILD2 ;GO TRY AGAIN
2245 001052' ILD4A:>>
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 ,</CANNOT FIND#/>
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,</UNAVAILABLE@/>
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,<SETZM PPN ;CLEAR LOCAL PPN
2271 001076' 402 00 0 00 004015' SETZM PPPN ;AND GLOBAL PPN>
2272 001077' 260 17 0 00 001105' PUSHJ P,LIBF1 ;LOAD SYS:JOBDAT.REL
2273 IFN SAILSW,<LIBAGN: PUSHJ P,SALOAD ;LOAD RELS AND SEARCH LIBS>
2274 IFN REENT,<SKIPGE W,VSW ;WAS /-V SEEN
2275 TRZ N,VFLG ;YES, DOES NOT WANT REENTRANT SYSTEM
2276 CAILE W,0 ;SKIP IF HE DOESN'T KNOW OR CARE
2277 TRO N,VFLG ;DEFINITELY WANTS REENTRANT SYSTEM
2278 TRNE F,SEENHI!HISYM ;IF ANY HISEG LOADED NO RE-ENT OP SYSTEM
2279 TRZ N,VFLG!MANTFL ;YES, SO FORCE /-V SWITCH
2280 TRNN N,VFLG
2281 JRST LIBF3
2282 IFN ALGSW,<TRNE N,ALGFL ;SPECIAL ACTION IF LOADING ALGOL
2283 PUSHJ P,SHARE>
2284 IFN FORSW,<TRNN N,FORFL ;FORTRAN-10 ALWAYS WANTS FOROTS
2285 TRNE N,F4FL ;IF F40
2286 SKIPG FORLIB ;AND WANTING FORLIB
2287 JRST LIBF3 ;NOT BOTH TRUE
2288 MOVE C,[RADIX50 04,FOROT%] ;SYMBOL
2289 MOVEI W,400000+.JBHDA ;VALUE
2290 PUSHJ P,SYMPT ;YES, DEFINE SYMBOL>
2291 LIBF3:>
2292 IFN NELSW,<TRNN N,NELFL ;LOADING NELIAC
2293 JRST .+4 ;NO
2294 PUSHJ P,NELGO ;UNDEFINED SYMBOL NELGO
2295 MOVE W,[SIXBIT /LIBNEL/]
2296 PUSHJ P,LIBF2 ;LOAD NELIAC LIBRARY>
2297 IFN ALGSW,<MOVE W,[SIXBIT /ALGLIB/]
2298 IFE NAMESW,<TRNE N,ALGFL ;LOADING ALGOL?>
2299 IFN NAMESW,<TRNN N,ALGFL ;ALGOL?
2300 JRST LIBF5+1 ;NO
2301 SKIPE CURNAM ;SEE MAIN PROG YET?
2302 JRST LIBF5 ;YES
2303 ERROR ,</ALGOL MAIN PROGRAM NOT LOADED!/>
2304 EXIT
2305 LIBF5:>
2306 PUSHJ P,LIBF2 ;YES, LOAD LIBRARY>
2307 IFN COBSW,<MOVE W,[SIXBIT /LIBOL/]
2308 TRNE N,COBFL ;LOADING COBOL?
2309 PUSHJ P,LIBF2 ;YES, SCAN LIBOL>
2310 IFN REENT,<
2311 IFE CPUSW,<MOVE W,[SIXBIT /IMP40/]>
2312 IFN CPUSW,<MOVE W,['IMP40A'] ;ASSUME KA-10
2313 TRNE F,KICPFL ;BUT IS IT?
LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 24-1
LOADER MAC 24-MAR-75 15:43 LIBRARY SEARCH CONTROL AND LOADER CONTROL
2314 HRRI W,'40I' ;NO, CHANGE TO IMP40A>
2315 IFN FORSW,<SKIPG FORLIB ;IF LOADING FORLIB WE DON'T WANT IMP40>
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,<MOVE W,[SIXBIT /LIB40/]>
2322 IFN CPUSW,<MOVE W,['LIB40A']
2323 TRNE F,KICPFL
2324 HRRI W,'40I'>
2325 001101' 333 00 0 00 004145' IFN FORSW,<SKIPLE FORLIB ;FORSE OR FOROTS
2326 001102' 200 12 0 00 006326' MOVE W,['FORLIB'] ;YOU GET WHAT YOU ASK FOR>
2327 IFN ALGSW,<TRNN N,ALGFL ;DON'T NEED LIB40 FOR ALGOL>
2328 001103' 260 17 0 00 001106' PUSHJ P,LIBF2 ;LOAD LIBRARY
2329 IFN SAILSW,<MOVE W,LIBPNT ;SEE IF ANY MORE TO DO
2330 CAME W,[XWD -RELLEN-1,LIBFLS-1]
2331 JRST LIBAGN
2332 MOVE W,PRGPNT ;IT COULD BE DANGEROUS TO LOAD PROGRAMS HERE
2333 CAME W,[XWD -RELLEN-1,PRGFLS-1]
2334 JRST LIBAGN ;MORE TO DO, TRY AGAIN>
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,<TRNE F,XFLG ;INDEX IN CORE?
2353 001116' 254 00 0 00 002670' JRST INDEX1 ;YES>
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 <SYS:DDT.REL> AND SETS SYMSW
2435 SUBTTL LDDT LOADS <SYS:DDT.REL> 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,<PUSH P,1
2440 PUSH P,3
2441 MOVEM 2,3 ; X = 2
2442 MOVSI 1,100001
2443 HRROI 2,[ASCIZ /<SUBSYS>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 <DDT>
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 <SYS:DDT.REL>
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,<SETZM PPPN ;CLEAR PERM PPN>
2484 001166' 205 12 0 00 637163 MOVSI W,'SYS' ;DEVICE IDENTIFIER <SYS>
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 <SYS:DDT.REL> 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,<TRZ F,XFLG!LSTLOD ;CLEAR DIDAL FLAGS
2502 IFN SYMDSW,<TRNE F,LSYMFL ;USING AUX BUF FOR LOCAL SYMBOLS?
2503 JRST EOF2 ;YES>
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,<TLNE N,DISW ;LOADING TO DISK?
2520 MOVE W,DIEND ;YES, GET END OF BUFFER+1>
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,</WORDS OF OVERLAP#/>
2526 001230' 254 00 0 00 000145' JRST LD2 ;ERROR RETURN
2527
2528 IFN SPCHN,<FSCN1A: TLNN F,NSW
2529 PUSHJ P,LIBF>
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,<SETZM VARLNG ;LENGTH OF VARIABLE AREA-ADDED TO RELOC>
2545 IFN ALGSW,<SETZM OWNLNG ;LENGTH OF OWN AREA-ADDED TO RELOC>
2546 IFN FAILSW,<SETZM LFTHSW ;RESET LOAD LEFT HALF FIXUP SW>
2547 IFN COBSW,<SETZM LOD37. ;CLEAR FLAG>
2548 IFN MANTIS,<TRZE N,SYMFOR ;ZERO LOAD SYMBOLS IF IT WAS FORCED
2549 TLZ F,SYMSW>
2550 IFN TENEX,<SETZM NLSTGL ;ALLOW UNDEF. GLOBALS TO LIST>
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,<SKIPN POLSW ;ERROR IF STILL DOING POLISH>
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,<POLFIX==LOAD4A>
2569 001302' IFE FAILSW,<LINK==LOAD4A>
2570 001302' IFE WFWSW,<LVARB==LOAD4A>
2571 001302' IFE ALGSW,<ALGBLK==LOAD4A>
2572 001302' IFE SAILSW,<LDPRG==LOAD4A
2573 001302' LDLIB==LOAD4A>
2574 001302' IFE COBSW,<COBSYM==LOAD4A>
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,<CAIN A,100 ;ASSIGN BLOCK?
2599 JRST ASGSYM ;YES>
2600 001300' 306 16 0 00 000400 IFE K,<CAIN A,400 ;FORTRAN FOUR BLOCK
2601 IFN MANTIS,< JRST F4LD
2602 CAIE A,401 ;MANTIS DEBUGGER DATA PRESENT IN FORTRAN FILE
2603 JRST LOAD4A ;NO
2604 TLON F,SYMSW ;YES, FORCE SYMSW SET
2605 TRO N,SYMFOR>
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 ,</ILL. FORMAT BLOCK TYPE !/>
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,<TLNN F,HIPROG
2628 JRST PROGLW ;NOT HIGH SEGMENT
2629 PROG3:
2630 IFN TENEX,<MOVE X,HIGHX>
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,<TLNN N,DISW ;LOADING TO DISK?
2641 JRST PROGLW ;NO, GO CHECK NEW BREAK
2642 CAMG H,V ;NEW BREAK?
2643 MOVE H,V ;YES, UPDATE
2644 JRST PROG2 ;NO NEED TO CHECK FOR ROOM>
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,<CAML H,HVAL1
2656 JRST COROVL ;WE HAVE OVERFLOWED THE LOW SEGMENT
2657 CAMLE T,HILOW
2658 MOVEM T,HILOW ;HIGHEST LOW CODE LOADED INTO>
2659 001324' 303 03 0 04 000001 CAILE H,1(S) ; SKIP IF SUFFICIENT CORE AVAILABLE
2660 IFN EXPAND,<JRST [PUSHJ P,XPAND>
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,<CAIN V,41 ;CHANGE FOR 10/30 JOBDAT
2668 MOVEI V,.JB41 ;JOB41 IS DIFFERENT
2669 CAIN V,74 ;SO IS JOBDAT
2670 MOVEI V,.JBDDT>
2671 001330' 311 11 0 00 004137' IFN L,<CAML V,RINITL ;CHECK FOR BAD STORE>
2672 IFN MONLOD,<PUSHJ P,DICHK ;MAKE SURE ADDRESS IS IN CORE>
2673 001331' 202 12 1 00 000002 MOVEM W,@X ;STORE DATA WORD IN PROG. AT LLC
2674 IFN MONLOD,<TLO N,WOSW ;SET SWITCH TO WRITE OUT BUFFER>
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 ,</VALUE NOT DEFINED FOR SYMBOLIC RELOCATION COUNTER !/>
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,<PUSHJ P,RESTRX>
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,<MOVE W,.JBERR ;RECORD THIS AS AN ERROR
2725 ADDI W,1
2726 HRRM W,.JBERR>
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,</MUL. DEF. GLOBAL IN PROG. !/>
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,<TRNE F,LSYMFL ;ONLY PUT SYMBOLS ON DSK IF EXT SYM>
2741 IFN MONLOD,<TLNN N,DISW ;BUT NOT IF LOADING TO DISK>
2742 JRST SYM1X ;STORE SYMBOL ON DSK>
2743
2744 SYM1B: IFN MONLOD,<TLNE N,DISW ;LOADING TO DISK?
2745 PUSHJ P,SIZCHK ;YES, CHECK FOR OVERLAP>
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,<POPJ P,>
2759 IFN SYMDSW,<
2760 SYM1X:
2761 IFN MONLOD,<SKIPL SYMEXT ;BEEN SETUP ONCE?
2762 TLNE N,DISW ;OR, IF OUTPUTTING TO DSK
2763 POPJ P, ;DON'T BOTHER>
2764 IFE MONLOD,<SKIPL SYMEXT ;BEEN SETUP ONCE?>
2765 TRNN F,LSYMFL ;OUTPUT FILE SET UP?
2766 IFN MONLOD,<PUSHJ P,INITSYM ;NO, DO IT>
2767 IFE MONLOD,<POPJ P, ;NO, DON'T OUTPUT SYMBOLS>
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,<TLZ W,040000>
2861 SYM3X2: IFN MONLOD,<TLNE N,DISW ;LOADING TO DISK?
2862 PUSHJ P,SIZCHK ;YES, CHECK FOR OVERLAP>
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,<CAMGE V,RINITL
2890 001521' 254 04 0 00 000000 HALT>
2891 IFN REENT,<CAMGE V,HVAL1
2892 SKIPA X,LOWX
2893 MOVE X,HIGHX>
2894 IFN MONLOD,<PUSHJ P,DICHK ; MAKE SURE ADDRESS IN V IS IN CORE>
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,<TLO N,WOSW ;SET FLAG TO WRITE OUT BUFFER>
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,<HRRZ T,V
2913 CAMGE T,HVAL1
2914 SKIPA X,LOWX
2915 MOVE X,HIGHX>
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,<TLNN V,100000 ;SKIP IF USING @X TO FIX SYMBOL TABLE
2922 PUSHJ P,DICHK ;MAKE SURE ADDRESS IN V IS IN CORE>
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,<TLNN V,100000 ;SKIP IF JUST FIXED SYMBOL TABLE
2927 TLO N,WOSW ;SET FLAG TO WRITE OUT BUFFER>
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,<TLNN V,100000 ;SKIP IF USING @X TO FIX SYMBOL TABLE
2932 PUSHJ P,DICHK ;MAKE SURE ADDRESS IN V IS IN CORE>
2933 001552' 272 10 1 00 000002 ADDM T,@X ;BY VALUE OF GLOBAL
2934 IFN MONLOD,<TLNN V,100000 ;SKIP IF JUST FIXED SYMBOL TABLE
2935 TLO N,WOSW ;SET FLAG TO WRITE OUT BUFFER>
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,<CAMGE V,RINITL
2976 001614' 263 17 0 00 000000 POPJ P,>
2977 IFN REENT,<CAMGE V,HVAL1
2978 SKIPA X,LOWX
2979 MOVE X,HIGHX>
2980 IFN MONLOD,<PUSHJ P,DICHK ;MAKE SURE ADDRESS IN V IS IN CORE>
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,<TLO N,WOSW ;SET FLAG TO WRITE OUT BUFFER>
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,<HISEG2==LOAD1A
3035 001666' 325 12 0 00 001242' JUMPGE W,LOAD1A ;NOT TWO SEG PROG.>
3036 IFN REENT,<JUMPE W,HISEG2 ;IGNORE ZERO
3037 IFE TENEX,<JUMPG W,HISEG3 ;NEG. IF TWOSEG PSEUDO-OP>
3038 IFN TENEX,<TLNN W,-1
3039 JRST HISEG3>
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,</TWO SEGMENTS ILLEGAL#/>
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,<MOVE R,LOWR
3119 001723' 254 00 0 00 001724' JRST HIGH2A>
3120 IFN REENT,<TRNE F,NOHI!NOHI6 ;SINGLE SEGMENT LOAD?
3121 JRST [MOVE R,LOWR ;YES,GET LARGER RELOC
3122 CAILE W,(R) ;IF FORTRAN-10
3123 SKIPA C,W ;HISEG CODE IS ON TOP
3124 SETZ C, ;OTHERWISE ZERO ABS VALUE
3125 MOVE W,HVAL ;ORIGINAL VALUE
3126 MOVEM W,HVAL1 ;RESET
3127 PUSHJ P,RWORD ;GET LOW SEG BREAK IN W
3128 CAMGE C,W ;PUT LARGER VALUE
3129 MOVE C,W ;IN C
3130 JRST HIGH2B] ;CONTINUE AS IF LOW ONLY
3131 HRR R,W ;PUT BREAK IN R
3132 CAMLE R,HVAL
3133 MOVEM R,HVAL
3134 MOVEM R,HIGHR
3135 MOVE R,LOWR ;NEXT WORD IS LOW SEG BREAK
3136 TLZ F,HIPROG ;CLEAR HIPROG
3137 PUSHJ P,PRWORD ;GET WORD PAIR
3138 HRR R,C ;GET LOW SEG BREAK
3139 MOVEM R,LOWR ;SAVE IT
3140 MOVE R,HIGHR ;GET HIGH BREAK
3141 JRST HIGHN3 ;AND JOIN COMMON CODE>
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,<ADD C,VARLNG ;IF LOW SEG THEN VARIABLES GO AT END>
3148 IFN ALGSW,<ADD C,OWNLNG ;ADD IN LENGTH OF OWN BLOCK>
3149 IFN COBSW,<ADD C,LOD37. ;ADD IN LOCAL SYMBOLS
3150 SKIPE LOD37. ;BUT WERE THERE ANY?
3151 SUBI C,3 ;YES SO REMOVE THE 3 WORDS OVERWRITTEN>
3152 001725' 315 13 0 00 000012 IFE TENEX,<CAMGE C,W ;CHECK 2ND WORD (LOC PROG BRK IF PRESENT)
3153 001726' 200 13 0 00 000012 MOVE C,W>
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,<TLNN N,DISW ;SKIP IF LOADING TO DISK>
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,<TLNE N,DISW ;LOADING TO DISK?
3161 JRST HIGH3 ;YES, DON'T WORRY ABOUT EXCEEDING CORE>
3162 001734' 303 03 0 04 000001 CAILE H,1(S) ;TEST PROGRAM BREAK
3163 IFN EXPAND,<PUSHJ P,[ PUSHJ P,XPAND
3164 POPJ P,
3165 001735' 260 17 0 00 006341' JRST POPJM2]>
3166 IFE EXPAND,<TLO F,FULLSW>
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,<TRNE F,NOHI!NOHI6 ;ONE SEGMENT PROGRAM?
3170 JRST HIGHN4 ;YES
3171 HRRZ W,LOWR ;GET LOW PROG BREAK
3172 HRL W,HIGHR ;GET HIGH PROG BREAK
3173 SETZ C, ;ZERO SYMBOL NAME
3174 PUSHJ P,SYM1B ;PUT IN SYMBOL TABLE
3175 MOVEM S,F.C+S ;SAVE NEW S AND B
3176 MOVEM B,F.C+B ;INCASE OF ERROR
3177 HIGHN4:>
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,<ADD R,VARLNG ;VARIABLES IN LOW SEG>
3211 IFN ALGSW,<ADD R,OWNLNG ;OWN BLOCK IN LOW SEGMENT>
3212 IFN COBSW,<ADD R,LOD37. ;ADD IN LOCAL SYMBOLS
3213 SKIPE LOD37. ;BUT WERE THERE ANY?
3214 SUBI R,3 ;YES SO REMOVE THE 3 WORDS OVERWRITTEN>
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 ,<?SYMBOL TABLE OVERLAP#?>
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,<PUSH P,Q>
3234 PUSH P,H
3235 PUSH P,X
3236 PUSH P,N
3237 IFE K,<HRRZ X,MLTP
3238 TLNN N,F4SW>
3239 MOVEI X,1(S)
3240 HRRZ N,X
3241 SUB N,H
3242 CAILE N,1777
3243 JRST MOVHI
3244 IFE EXPAND,<POPJ P,>
3245 IFN EXPAND,<HRRZ N,.JBREL
3246 ADDI N,2000
3247 CAMG N,ALWCOR
3248 CORE N,
3249 JRST XPAND6
3250 POP P,N
3251 JRST XPAND3>
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,<JRST XPAND8>
3259 IFE EXPAND,<ADDM H,HISTRT
3260 ADDM H,S
3261 ADDM H,B
3262 ADDM H,HIGHX
3263 TLNE F,HIPROG
3264 ADDM H,-1(P)
3265 POP P,N
3266 ADDM H,NAMPTR ;ADJUST POINTER TO NAME
3267 IFE K,< TLNN F4SW
3268 JRST HIXP1
3269 ADDM H,PLTP
3270 ADDM H,BITP
3271 ADDM H,SDSTP
3272 ADDM H,MLTP
3273 TLNE N,SYDAT
3274 ADDM H,V
3275 HIXP1:>
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,<CAMN C,[RADIX50 0,MANTIS]
3289 CAME R,[W,,.JBDA] ;YES, BUT IS IT TO LOAD AT 140?
3290 CAIA ;NO, NOT A DEBUG /MANTIS COMMAND
3291 TRO N,MANTFL ;HAVE SEEN MANTIS NOW>
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,<TLNE N,DISW ;LOADING TO DISK?
3306 PUSHJ P,SIZCHK ;YES, CHECK FOR OVERLAP>
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,<PUSH P,W ;SAVE W
3322 HRRZ W,R ;ORIGIN
3323 PUSHJ P,SYM1X ;PUT IN DSK FILE ALSO
3324 POP P,W>
3325 002016' 317 12 0 00 003737' CAMG W,COMSAV ;CHECK COMMON SIZE
3326 002017' 254 00 0 00 001130' IFE REENT,<JRST LIB3 ;COMMON OK>
3327 IFN REENT,<JRST [TRNE F,SEGFL ;LOAD LOW IN HI-SEG
3328 PUSHJ P,FAKEHI ;YES
3329 JRST LIB3]>
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 ,</ILL. COMMON !/>
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,</ PROG. !/>
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 ,</NO END BLOCK !/>
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,<ALGNAM:;PUT LABEL ON A POPJ>
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,<SKIPG FORLIB ;IF NOT SET FOR FOROTS
3378 002074' 350 00 0 00 004145' AOS FORLIB ;DO SO>
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,<SKIPL VSW ;USER DOES N'T WANT REENT OTS?
3385 TRNE F,NOHI!SEGFL!SEENHI ;USER SET SEGMENT OR HI CODE SEEN?
3386 POPJ P,> ;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,<HRRZM F,FORLIB> ;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 ,</CANNOT MIX F40 AND FORTRAN-10 COMPILED CODE@/>
3403 002127' 265 16 0 00 003577' FORERR: ERROR ,</CANNOT MIX KA10 AND KI10 FORTRAN-10 COMPILED CODE@/>
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,<TLNN N,ISAFLG ;DONT SET NAME IF IGNORING SA'S>
3429 IFN ALGSW,<TDNN N,[ISAFLG,,ALGFL] ;OR ALGOL LOADING>
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,<CAMGE V,RINITL
3444 002146' 263 17 0 00 000000 POPJ P,>
3445 IFN REENT,<CAMGE V,HVAL1
3446 SKIPA X,LOWX
3447 MOVE X,HIGHX>
3448 IFN MONLOD,<PUSHJ P,DICHK>
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,<PUSHJ P,RESTRX>
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,<PUSHJ P,RESTRX>
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,<LVLCOM: PUSHJ P,RESTRX>
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,<LIST>
3519 REPEAT 0,<IF POLISH FIXUPS CONTAIN GLOBAL REQUESTS WHICH
3520 CAN NOT BE SATISFIED WHEN THEY ARE SEEN, THEY MUST BE
3521 SAVED UNTIL THESE GLOBAL SYMBOLS BECOME DEFINED.
3522 THE POLISH FIXUP IS SAVED IN THE UNDEFINED TABLE (POINTED
3523 TO BY S). THE FIXUP IS SAVED IN TWO WORD BLOCKS THE FIRST
3524 WORD OF WHICH (THE ONE WHICH WOULD NORMALL CONTAIN THE SYMBOL)
3525 HAS SPECIAL BITS ON SO IT WILL NOT BE FOUND BY A SEARCH FOR
3526 A GLOBAL REQUEST. SINCE THE UNDEFINED TABLE MAY BE
3527 SHUFFELED INTO A RANDOM ORDER, IT IS NOT POSSIBLE TO KEEP
3528 ALL OF A POLISH FIXUP TOGETHER OR TO HAVE POINTERS IN
3529 THE USUAL SENCE FROM ONE TWO WORD BLOCK TO ANOTHER.
3530 SUFFICIENT INFORMATION IS THEREFORE GIVEN TO DETERMINE
3531 WHAT THE FIRST WORD OF THE NEXT DESIRED BLOCK IS AND THIS
3532 BLOCK IS FOUND BY SEARCHING THE UNDEFINED TABLE FOR A MATCH.
3533 EACH POLISH FIXUP WHICH IS ENTERED INTO THE UNDEFINED
3534 TABLE IS GIVEN A UNIQUE NUMBER CALLED THE "HEAD NUMBER".
3535 EACH ELEMENT OF THE FIXUP (EITHER OPERAND OR OPERATOR)
3536 IS ASSIGNED A NUMBER CALLED THE "OP NUMBER". THUS
3537 THE OP NUMBER AND HEAD NUMBER TOGETHER DETERMINE
3538 A SPECIFIC ELEMENT OF A SPECIFIC FIXUP. EACH ELEMENT
3539 (TWO WORD BLOCK) IS ARRANGED AS FOLLOWS:
3540 WORD 1:
3541 BITS 0-4 THESE ARE THE USUAL CODE BITS OF A RADIX50
3542 SYMBOL AND CONTAIN 44 TO DISTINGUISH
3543 AN ELEMENT OF A POLISH FIXUP FROM OTHER
3544 SYMBOLS IN THE UNDEFINED TABLE
3545 BITS 5-17 THE HEAD NUMBER OF THIS FIXUP
3546 BITS 18-30 THE OP NUMBER OF THIS ELEMENT
3547 BITS 31-35 THE OPERAND FOR THIS ELEMENT
3548 OPERAND 2 INDICATES A WORD OF DATA
3549 WORD 2:
3550 IF THE OPERAND IS 2 THIS WORD CONTAINS THE DATA
3551
3552 IF THIS IS NOT A DATA OPERATOR THEN THE LEFT AND
3553 RIGHT HALVES OF THIS WORD POINT TO THE TWO OPERANDS
3554 THE CONTENTS OF THE HALF WORD IS THE RIGHT HALF
3555 OF THE FIRST WORD OF THE BLOCK POINTED
3556 TO. THUS THE LEFT HALF OF THE FIRST WORD COMBINED
3557 WITH ONE OF THESE HALF WORDS IS THE FIRST WORD
3558 OF THE BLOCK POINTED TO AND CAN BE FOUND BY SEARCHING
3559
3560
LOADER V.057 MACRO %50(272) 22:26 27-MAR-75 PAGE 51
LOADER MAC 24-MAR-75 15:43 FAIL LOADER
3561 EACH FIXUP ALSO HAS A HEADER BLOCK. THIS BLOCK CONTAINS THE
3562 FOLLOWING INFORMATION:
3563 WORD 1:
3564 BITS 0-17 0
3565 BITS 18-21 44
3566 BITS 22-35 THE HEAD NUMBER OF THIS FIXUP
3567
3568 WORD 2:
3569 BITS 0-17 A COUNT OF THE NUMBER OF UNDEFINED
3570 GLOBALS REMAINING IN THIS FIXUP
3571 BITS 18-35 A HALF WORD POINTER OF THE
3572 SAME TYPE FOUND IN OTHER ELEMENTS POINTING
3573 TO THE FIRST ELEMENT OF POLISH
3574 WHICH WILL BE THE STORE OPERATOR
3575
3576 THE REQUESTS FOR THE GLOBAL SYMBOLS NEEDED BY THE FIXUP ARE
3577 ENTERED AS FOLLOWS:
3578
3579 WORD 1:
3580 BITS 0-4 04
3581 BITS 5-35 RADIX 50 FOR THE NAME OF THE SYMBOL
3582 (NOTE THIS IS JUST A STANDARD GLOBAL REQUEST)
3583
3584 WORD 2:
3585 BITS 0-4 44 (THIS IDENTIFIES IT AS "ADITIVE TYPE"
3586 AND BIT 4 INDICATES POLISH)
3587 BITS 5-17 THE HEAD NUMBER OF THE FIXUP
3588 (THIS GIVES ENOUGH INFORMATION TO FIND THE HEADER
3589 BLOCK AND UPDATE THE COUNT WHEN THE REQUEST IS
3590 SATISFIED)
3591 BITS 18-35 A HALF WORD POINTER TO THE ELEMENT OF THE
3592 FIXUP INTO WHICH THE VALUE OF
3593 THE SYMBOL SHOULD BE STORED
3594 >
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 <BLOCK TYPE 11>
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 ,</PUSHDOWN OVERFLOW#/>
3602 002166' 254 00 0 00 000145' JRST LD2
3603 002167' 265 16 0 00 003577' COMPOL: ERROR ,</POLISH TOO COMPLEX#/>
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,<CAIN W,15
3633 JRST [PUSHJ P,RDHLF ;THIS TRICK FOR VARIABLES
3634 ADD W,VARREL ;HOPE SOMEONE HAS DONE
3635 HRRZ C,W ;A BLOCK TYPE 13
3636 JRST HLFOP]>
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,<PUSHJ P,RESTRX>
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,<CAMGE V,RINITL
3787 002422' 263 17 0 00 000000 POPJ P,>
3788 IFN REENT,<CAMGE V,HVAL1
3789 SKIPA X,LOWX
3790 MOVE X,HIGHX>
3791 IFN MONLOD,<PUSHJ P,DICHK>
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,<JRST STRSAT>
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,<PUSHJ P,DICHK>
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,<PUSHJ P,RESTRX>
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,<PUSHJ P,SYMFX1
3985 JRST RESTRX>
3986 002644' 254 00 0 00 001557' IFE REENT,<JRST SYMFX1>>
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,<INDEX0:
4094 INDEX: PUSHJ P,WORD2 ;READ FIRST WORD OF NEXT BUFFER
4095 JRST LOAD1A+1>
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,<TLNE F,HIPROG ;LOADING INTO HIGH SEGMENT?
4104 EXCH X,LOWX ;YES, BUT OWN AREAS ARE IN LOW SEG>
4105 HLRZ V,W ;GET START OF OWN BLOCK
4106 IFN REENT,<TLNE F,HIPROG ;LOADING INTO HIGH SEGMENT?
4107 HRRZ V,LOWR ;YES, BUT PUT OWN AREAS IN LOW SEG>
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,<TLNE F,HIPROG ;HI-SEG?
4116 EXCH X,LOWX ;YES, RESTORE X TO POINT TO HIGH SEG>
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,<CAML H,HILOW
4125 MOVEM H,HILOW ;HIGHEST LOW CODE LOADED>
4126 CAILE H,1(S) ;SKIP IF SUFFICIENT CORE AVAILABLE
4127 IFN EXPAND,<JRST [PUSHJ P,XPAND>
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 ,</TOO MANY DEMANDED FILES#/>
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,<COMML==LOAD4A>
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,<TLNN F,HIPROG ;LOADING INTO HIGH SEGMENT?
4198 JRST .+3 ;NO
4199 EXCH R,LOWR ;YES, BUT COMMON ALWAYS GOES TO LOW SEG
4200 EXCH X,LOWX>
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,<TLNN F,HIPROG ;LOADING INTO HIGH SEGMENT?
4212 JRST COMML ;NO
4213 EXCH R,LOWR ;YES, RESTORE RELOCATION TO HIGH
4214 EXCH X,LOWX>
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,<TLNN F,HIPROG
4244 JRST SPDTLW ;NOT HIGH SEGMENT
4245 SPDT3: CAMGE W,HVAL1 ;CHECK TO SEE IF IN TOP SEG
4246 JRST LOWSPD
4247 MOVE T,.JBREL ;CHECK FOR OVERFLOW ON HIGH
4248 CAIL T,@X
4249 JRST SPDT2
4250 PUSHJ P,HIEXP
4251 JRST FULLC
4252 JRST SPDT3>
4253
4254 IFN MONLOD,<TLNN N,DISW ;LOADING TO DISK?
4255 JRST SPDTLW ;NO, GO CHECK NEW BREAK
4256 CAMG H,V ;NEW BREAK?
4257 MOVE H,V ;YES, UPDATE
4258 JRST SPDT2 ;NO NEED TO CHECK FOR ROOM>
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,<CAML H,HVAL1
4271 JRST COROVL ;WE HAVE OVERFLOWED THE LOW SEGMENT
4272 CAMLE T,HILOW
4273 MOVEM T,HILOW ;HIGHEST LOW CODE LOADED INTO>
4274 003033' 303 03 0 04 000001 CAILE H,1(S) ; SKIP IF SUFFICIENT CORE AVAILABLE
4275 IFN EXPAND,<JRST [PUSHJ P,XPAND>
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,<CAML V,RINITL ;CHECK FOR BAD STORE>
4283 IFN MONLOD,<PUSHJ P,DICHK ;MAKE SURE ADDRESS IS IN CORE>
4284 003040' 202 12 1 00 000002 MOVEM W,@X ;STORE DATA WORD IN PROG. AT LLC
4285 IFN MONLOD,<TLO N,WOSW ;SET SWITCH TO WRITE OUT BUFFER>
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,<TRZ N,MAPSUP ;SET MAP NOT SUPPRESSED
4401 SKIPE CHNACB ;TEST FOR SPECIAL CHAINING
4402 TRNN N,CHNMAP ;TEST FOR ROOT MAP ALREADY PRINTED
4403 JRST PRMP0A ; SKIP IF NO TO EITHER QUESTION
4404 PUSHJ P,CRLFLF ;SPACE TWO LINE AND FORCE TTY OUTPUT
4405 TLZ F,FCONSW ;SUPPRESS TTY OUTPUT
4406 ERROR 0,</******************** !/> ;PRINT SEPARATOR
4407 TLO F,FCONSW ;FORCE TTY OUTPUT AGAIN
4408 ERROR 0,</LINK !/> ;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,<CAIG W,.JBDA ;LOADED INTO LOW SEGMENT
4422 JRST NOLOW ;DON'T PRINT IF NOTHING THERE>
4423 003137' 260 17 0 00 003416' PUSHJ P,PRNUM0
4424 003140' 265 16 0 00 003656' IFE REENT,<ERROR 7,<?IS THE PROGRAM BREAK@?>>
4425 IFN REENT,<ERROR 7,<?IS THE LOW SEGMENT BREAK@?>
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,<?IS THE HIGH SEGMENT BREAK@?>
4433 PUSHJ P,CRLF
4434 NOHIGH:>
4435 IFN SPCHN,<SKIPE CHNACB ;TEST FOR SPECIAL CHAINING
4436 TRNN N,CHNMAP ;TEST FOR ROOT MAP ALREADY PRINTED
4437 JRST .+2 ; NO TO EITHER QUESTION, FALL THRU
4438 JRST NOADDR ; ELSE SKIP HEADING OUTPUT>
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,<TLNE N,DISW ;LOADING TO DISK?
4449 MOVE X,XRES ;YES, SETUP X >
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,<?STORAGE MAP!?>
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,</STARTING ADDRESS !/>
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,<HRL A,BEGOV ;ASSUME NON-ROOT OVERLAY
4534 SKIPE CHNACB ;TEST FOR SPECIAL CHAINING
4535 TRNN N,CHNMAP ;TEST FOR ROOT-MAP PRINTED
4536 ;ASSUMPTION CORRECT IF YES TO BOTH
4537 ; SKIP NEXT INSTRUCTION IF SO >
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,<SKIPN C,1(A) ;LOAD SYMBOL SKIP IF REAL SYMBOL
4545 003226' 254 00 0 00 003275' JRST PRMAP4 ;IGNORE ZERO NAME(TWOSEG BREAKS)>
4546 IFE REENT!L,<MOVE C,1(A) ;LOAD SYMBOL>
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,<TRZ N,MAPSUP ;SET MAP NOT SUPPRESSED
4555 SKIPE CHNACB ;TEST FOR SPECIAL CHAINING
4556 TRNN N,CHNMAP ;TEST FOR ROOT MAP PRINTED
4557 JRST PRMP0C ; NO TO EITHER TEST, SKIP AROUND
4558 HRRZ T,2(A) ;GET STARTING ADDRESS
4559 CAML T,BEGOV ;TEST FOR BELOW OVERLAY
4560 JRST PRMP0C ;NO,JUMP
4561 TRO N,MAPSUP ;SUPPRESS IF RE-PRINTING ROOT
4562 JRST PRMAP4 ; & SKIP TO NEXT SYMBOL
4563
4564 PRMP0C:>
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,<TRNE N,MAPSUP ;TEST FOR SUPPRESSED MAP
4570 JRST PRMAP4 ; YES, SKIP THIS SYMBOL>
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,<SKIPN 1(B) ;IS IT A ZERO SYMBOL
4585 JRST [MOVE C,B ;SET UP C
4586 JRST PRMAP2] ;AND GO
4587 HRRZ T,HVAL ;GET TO OF HI PART
4588 CAML W,HVAL1 ;IS PROGRAM START UP THERE??
4589 JRST PRMAP6 ;YES
4590 HRRZ T,HILOW ;GET HIGHEST LOCATION LOADED IN LOW
4591 SUBI T,(X) ;REMOVE OFFSET
4592 CAIE T,(W) ;EQUAL IF ZERO LENGTH PROG>
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,<CAMN T,SVBRKS ;ZERO LENGTH IF EQUAL
4618 JRST PRMP6A ;SEE IF LIST ALL ON>
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,<TLNN N,ALLFLG ;SKIP IF LIST ALL MODE IS ON
4628 003266' 602 12 0 00 777777 TRNE W,777777 ;SKIP IF ZERO LENGTH PROGRAM>
4629 IFN TENEX,<TLNE N,ALLFLG ;SKIP IF LIST ALL MODE IS ON>
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,<SKIPN CHNACB ;TEST FOR SPECIAL CHAINING
4640 JRST PMS ;NO, SKIP
4641 TRO N,CHNMAP ;YES, SHOW ROOT-PHASE PRINTED
4642 JRST PMS4 ; & EXIT>
4643 IFN TENEX,<JRST PMS ;GO PRINT UNDEFINED GLOBALS>
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,<SETZM NLSTGL ;ALLOW UNDEFINED GLOBALS TO LIST>
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,<SKIPE NLSTGL ;HAVE UNDEF GLOBALS BEEN LISTED?
4655 POPJ P,0 ;YES
4656 SETOM NLSTGL ;PREVENT IT FROM HAPPENING AGAIN>
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 ;<LENGTH OF LIST>/2
4661 003306' 260 17 0 00 003441' PUSHJ P,RCNUMW ;PRINT AS DECIMAL NUMBER
4662 003307' 265 16 0 00 003656' ERROR 7,</UNDEFINED GLOBAL(S)@/>
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,<?MULTIPLY DEFINED GLOBAL(S)@?>
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,<TRNE F,LSYMFL ;ALREADY USING AUX DEV FOR LOCAL SYMBOLS?
4688 POPJ P, ;YES, GIVE ERROR RETURN>
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,<MOVE A,CHNOUT+1 ;GET SP CHAIN DEV.
4712 CAMN A,LD5C1 ;IS IT SAME AS AUX. DEV.
4713 SKIPN CHNACB ;YES, ARE WE DOING SP CHAIN?
4714 JRST IAD2B ;NO, PHEW!
4715 DEVCHR A, ;IS IT REALLY A DSK?
4716 TLNE A,DSKBIT
4717 JRST IAD2B ;YES, LEAVE ALONE
4718 RELEAS 2, ;NO, CLEAR OUT ANY RESIDUAL FILE
4719 JRST IMD4 ;AWAY BEFORE SOMETHING TERRIBLE HAPPENS
4720 IAD2B:>
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 ,</ERROR WRITING FILE@/>
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 ,</NO MAP DEVICE@/>
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,<JRST [PUSHJ P,XPAND ;GET 1K OF ZEROS, WILL SAVE TIME LATER IN ANYCASE>
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,<JRST [PUSHJ P,XPAND>
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 /<MESSAGE>/
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,<?ILLEGAL -LOADER@?>
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,<DEPHASE
5287 CODLN==.-HICODE>
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,<HILOW: BLOCK 1 ;HIGHEST NON-BLOCK STMT IN LOW SEG>
5297 003734' STADDR: BLOCK 1 ;HOLDS STARTING ADDRESS
5298 IFN KUTSW,<CORSZ: BLOCK 1>
5299 IFN REENT,<VSW: BLOCK 1>
5300 IFN NAMESW,<CURNAM: BLOCK 1>
5301 003735' IFN B11SW,<POLSW: BLOCK 1>
5302 IFN FAILSW,<LINKTB: BLOCK 21>
5303 IFN SPCHN,<CHNACB: BLOCK 1>
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,<LOD37.: BLOCK 1>
5329 IFN DMNSW,<KORSP: BLOCK 1>
5330 IFN LDAC,<BOTACS: BLOCK 1>
5331 IFN WFWSW,<VARLNG: BLOCK 1
5332 VARREL: BLOCK 1>
5333 IFN SAILSW,<LIBFLS: BLOCK RELLEN*3
5334 PRGFLS: BLOCK RELLEN*3>
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,<MYPPN: BLOCK 1 ;HOLD USER'S PPN
5365 004023' SFDADD: BLOCK 2 ;DEVICE AND SCAN SWITCH
5366 004025' SFD: BLOCK SFDSW+2 ;TEMP SFD BLOCK
5367 004034' PSFDAD: BLOCK 2 ;DEV AND SCAN SWITCH
5368 004036' PSFD: BLOCK SFDSW+2 ;PERM SFD BLOCK>
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,<LSTBLK: BLOCK 1 ;POINTER TO LAST PROG LOADED>
5394 004144' IFN EXPAND,<ALWCOR: BLOCK 1 ;CORE AVAILABLE TO USER>
5395 IFN ALGSW,<%OWN: BLOCK 1 ;ADDRESS OF ALGOL OWN AREA
5396 OWNLNG: BLOCK 1 ;LENGTH OF OWN BLOCK>
5397 IFN REENT,<SVBRKS: BLOCK 1 ;XWD HIGH,LOW (PROG BREAKS)>
5398 004145' IFN FORSW,<FORLIB: BLOCK 1 ;0=LIB40,1=FOROTS>
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,<EXP .RBALC ;DISK IMAGE INPUT/OUTPUT BLOCK>
5427 IFN PURESW,<BLOCK 1>
5428 BLOCK 1
5429 DIOUT1: BLOCK .RBEST-2 ;BIG WASTE OF SPACE IN ORDER TO PRE ALLOCATE SOME DISK
5430 IFE PURESW,<EXP DALLOC ;PRE ALLOCATE SOME BLOCKS>
5431 IFN PURESW,<BLOCK 1> ;.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,<PATCH: BLOCK 20 ;STANFORD HAS SEMI-INFINITE CORE>
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,<MNTSYM: BLOCK 1 ;HOLDS MANTIS AUX SYMBOL POINTER>
5492 >
5493
5494
5495 005114' VAR ;DUMP VARIABLES
5496 005115' DATEND:! ;END OF AREA CLEARED ON INITIALIZATION
5497 IFN PURESW,<RELOC>
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,<HHIGO: PHASE BUF1 ;DON'T NEED BUF1 NOW>
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,<MOVE D,HVAL ;GET CURRENT HIGH SEG TOP
5508 CAMG D,HVAL1 ;ANYTHING LOADED IN HI-SEG
5509 JRST HIRET ;NO
5510 SUB D,HVAL1 ;SEE HOW MUCH
5511 TRNE D,1777 ;JUST CROSSED A K BOUND?
5512 JRST HIOK ;NO
5513 HRRZ V,D ;LENGTH ONLY
5514 ADD V,HISTRT ;PLUS BASE
5515 CAMGE V,.JBREL ;WE MIGHT HAVE GOT 1K EXTRA
5516 CORE V,
5517 JFCL
5518 HIOK: MOVE V,HISTRT ;NOW REMAP THE HISEG.
5519 REMAP V, ;REMAP UUO.
5520 JRST REMPFL ;FATAL ERROR.>
5521 HIRET: IFN NAMESW,<
5522 IFE TENEX,<MOVE W,CURNAM ;GET PROGRAM NAME>
5523 IFN TENEX,<SKIPA W,.+1
5524 '(PRIV)'>
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,<HIGONE: DEPHASE>
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,<IFE L,<END BEG>
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,<PUSHJ P,[PUSHJ P,XPAND
5575 POPJ P,
5576 005124' 260 17 0 00 006420' JRST POPJM3]>
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,<HRL C,MLTP
5649 SOS MLTP
5650 HRR C,MLTP>
5651 005222' 550 13 0 00 005074' IFN EXPAND,<HRRZ C,MLTP; TO ADDRESS
5652 005223' 275 13 0 00 000001 SUBI C,1
5653 005224' 307 13 0 03 000000 CAIG C,(H)
5654 PUSHJ P,[PUSHJ P,XPAND
5655 POPJ P,
5656 ADDI C,2000
5657 005225' 260 17 0 00 006425' JRST POPJM2]
5658 005226' 370 00 0 00 005074' SOS MLTP
5659 005227' 505 13 0 13 000001 HRLI C,1(C)>
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,<TLO F,FULLSW>
5671 IFN EXPAND,<PUSHJ P, [PUSHJ P,XPAND
5672 POPJ P,
5673 005237' 260 17 0 00 006420' JRST POPJM3]>
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,<MOVE W,NAMPTR ;GET POINTER
5731 MOVE W,1(W) ;SET UP NAME
5732 PUSHJ P,LDNAM
5733 MOVE W,DTIN
5734 MOVEM W,PRGNAM>
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,<MOVEM W,SAVBAS ;SAVE AS HIGHEST ADDRESS IN PROGRAM>
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,<TLNE F,HIPROG
5842 HRRZ V,H>
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,<IFN REENT,<TLNN F,HIPROG ;DON'T BOTHER IF IN HISEG, CHAIN NOT SMART ENOUGH>
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,<CAIN W,770000; SPECIAL DEBUGGER DATA
5912 JRST SPECBUG>
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,<POPJ P,>
6038 IFN REENT,<JRST RESTRX>
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,<TRNE N,MANTFL ;LOADING MANTIS DATA?
6043 SKIPA C,(C) ;YES, GET FULLWORD VALUE>
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,<TLO F,FULLSW>
6050 IFN EXPAND,<JRST [PUSHJ P,XPAND
6051 POPJ P,
6052 005672' 254 00 0 00 006443' JRST TBLCHK]>
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,<SETZ W, ;CAUSES TROUBLE OTHERWISE
6075 TLZE F,HIPROG
6076 JRST HIGHN1
6077 IFE SPCHN,<HRRZ V,GSTAB>
6078 IFN SPCHN,<HRRZ V,SAVBAS ;GET END OF PROGRAM RELATIVE ADDRESS
6079 ;THIS MEANS THAT WITH SPECIAL CHAINING THE
6080 ;ENTIRE LAST PROGRAM OF A LINK WILL BE SAVED
6081 ;BUT COMMON DECLARED FOR THE FIRST TIME
6082 ;IN THAT PROGRAM WON'T BE. THIS SHOULD NOT
6083 ;CAUSE PROBLEMS BECAUSE IF COMMON APPEARS HERE
6084 ;NOBODY ELSE CAN REFERENCE IT ANYWAY. >
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,<IFN REENT,<
6120 TLNN F,HIPROG>
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,<IFN REENT,<TLNE F,HIPROG
6144 JRST ENDTPI>
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,<IFN REENT,<
6200 ENDTPI: HRRZ V,COMBAS
6201 MOVEI V,@X
6202 CAMLE V,.JBREL
6203 JRST [PUSHJ P,HIEXP
6204 JRST ENDTPH
6205 JRST ENDTPI]
6206 JRST ENDTPH>>
6207 006054' 265 16 0 00 003577' FORCNF: ERROR ,</FORTRAN CONFUSED ABOUT DATA STATEMENTS!/>
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,<SUBI C,(X) ;CHECK FOR ROOM
6266 CAMGE C,COMBAS ;IS IT THERE
6267 TLO F,FULLSW ;NO (DONE EARLIER IF EXPAND)
6268 HRRZ C,SDS>
6269 006144' 275 13 0 00 000001 SUBI C,1 ;GET ONE LESS (TOP LOCATION TO ZERO)
6270 IFN REENT,<TLNE F,HIPROG
6271 MOVE C,.JBREL>
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,</DATA STATEMENT OVERFLOW!/>
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,<HRRZS T ;CLEAR LEFT HALF INCASE OF CARRY
6316 CAML T,HVAL1
6317 JRST [ADD T,HIGHX
6318 HRRZS T ;MUST GET RID OF LEFT HALF
6319 CAMLE T,.JBREL
6320 JRST DATAOV ;IN CASE FORTRAN GOOFS ON LIMITS
6321 JRST DWFS.1]
6322 ADD T,LOWX>
6323 006220' 553 00 0 00 000010 HRRZS T
6324 006221' 271 10 0 02 000000 IFE REENT,<ADDI T,(X)>
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,<CAMG T,.JBREL ;JUST TO MAKE SURE>
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