Google
 

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