File: LOAD5.LS of Disk: V50/Source/Source-Listing-PAL-3
(Source file text) 


/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 1

		/ OS/8 F4 LOADER, V50A
		/
		/
		/
		/
		/ 	 FIXES FOR V23	J.K.	1975
		/
		/	.CORE ROUTINE- RECOGNIZE CORE RESTRICTION
		/
		/
		/
		/	 CHAMGES FOR OS/8 V3D AND OS/78 BY P.T.
		/	.CHANGED VERSION NUMBER TO 24A
		/	.PUT IN NEW DATE ALGORITHM
		/
		/
	0050	VERNUM=50
	0302	PATCH="B
	7757	MREAD=7757
	7776	SBLOCK=7776

	7400	ESDPG=	7400		/START OF ESD REFERENCE PG IN FIELD 1
	7200	LHDR=	7200		/WD0 IN CORE OF LDR HDR IN FIELD 1
	7643	OS8SWS=	7643
	7746	OSJSWD=	7746
	7760	OS8DCB=	7760
	7666	OSDATE=	7666
	7344	AC7776=	CLL STA RAL
	7346	AC7775=	CLL STA RTL
	7330	AC4000=	CLA STL RAR
	7332	AC2000=	CLA STL RTR
	7326	AC0002=	CLA STL RTL

		/	PASS0 DEFINITIONS
		/	----- -----------

	6000	MCTTBL=	6000		/MODULE COUNT TABLE BASE
	0343	OVTLEN=	2^20^7+2+1	/2 WORDS/OVERLAY, 2 FOR MAIN & 1 FGL
	5435	OVLTBL=	MCTTBL-OVTLEN	/(FGL = FOR GOOD LUCK)
	6172	MODTBL=	21^7+MCTTBL+3	/START OF MODULE TABLE
	0254	NUMMOD=	7200-MODTBL%3	/NUMBER OF ENTRIES IN MODULE TABLE
	0016	PTRIO=	NDX6		/FLD1;INIT SET TO 7617-1
	7000	RALFBF=	7000		/FLD1;BLK TO READ"ESD"FOR FILE CHK

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 2



		/LOADER IMAGE HEADER BLOCK DUMMY SECTION

			NOPUNCH
	7200		*LHDR
007200  0002		2		/LOADER IMAGE FILE ID
007201  0000	QRTSWP,	ZBLOCK	2	/SWAPPER ARGS TO LOAD AND START USER MAIN
007203  0000	QHGHAD,	ZBLOCK	2	/HIGHEST ADDRESS USED BY THIS PROGRAM
007205  0000	QVERNO,	0		/LOADER VERSION NUMBER
007206  0000	QDPFLG,	0		/"D.P. HARDWARE REQUIRED" FLAG
007207  0000	QUSRLV,	ZBLOCK	40	/USER OVERLAY LEVEL DSRN INFO
007247  0000	LDBUFS,	ZBLOCK	50	/PASS2 BUFFER POINTERS
			ENPUNCH


			/RTS ENTRY POINTS
			/** SOME OF THESE MAY CHANGE IN FUTURE VERSIONS OF RTS **
			/**	(I HOPE NOT)

	0204	JARGER=	204
	0210	JBAK=	210
	0203	JDATE=	203
	0213	JDEF=	213
	0412	JDISMS=	412
	0211	JENDF=	211
	0016	JEOFSW=	16
	0223	JEXIT=	223
	0524	JHANG=	524
	0227	JIDLE=	227
	0403	JINT=	403
	0217	JRDAO=	217
	0221	JREADO=	221
	0206	JRENDO=	206
	0235	JRETRN=	235
	0212	JREW=	212
	0207	JRSVO=	207
	0215	JRUO=	215
	0222	JSWAP=	222
	0225	JT812=	225
	0204	JUERR=	204
	0216	JWDAO=	216
	0220	JWRITO=	220
	0214	JWUO=	214

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 3



	0000		*0
000000  0000	TMP0,	0		/TMP0-TMP4 FOR GEN. USE
000001  0000	TMP1,	0
000002  0000	TMP2,	0
000003  0000	TMP3,	0

	0010		*10		/INDEX REGISTERS
000010  0000	NDX0,	0
000011  0000	NDX1,	0
000012  0000	NDX2,	0
000013  0000	NDX3,	0
000014  0000	NDX4,	0
000015  0000	NDX5,	0
000016  0000	NDX6,	0
000017  5434	NDX7,	OVLTBL-1	/POINTER INTO OVERLAY LENGTH TABLE

000020  0200	USR,	200		/USR CALL: COULD BE 200 OR 7700
000021  1600	PPACK,	PACK		/CHANGED TO TTYO BY ERROR ROUTINE
000022  0000	IOFLG,	0
000023  2437	SYMTM3,	SYMTBL-3
000024  0000	ORGFLG,	0
000025  0000	RFPTR1,	0
000026  0000	GPTR,	0
000027  0000	LBPTR,	0
000030  0000	TRPCNT,	0
000031  0000	P2FLG,	0
000032  0000	CZFLG,	0
000033  0000	F1FLG,	0
000034  0000	S8FLG,	0
000035  7777	OVRFLO,	-1
000036  7777	SWITZ,	-1
000037  7774	SVMAIN,	-4		/0 IF /S SPECIFIED
000040  0000	DPFLG,	0
			 

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 4



		/MORE PAGE ZERO LOCATIONS
000041  0000	GTYP,	0
000042  0000	EPTR,	0
000043  0000	EPT2,	0
000044  0000	ETYP,	0
000045  0000	BPTR,	0
000046  0000	BPT2,	0
000047  0000	REFPTR,	0
000050  0000	RLEN,	0
000051  0000	FTMP0,	0;0
000052  0000
000053  0000	RBLK,	0
000054  0000	FATAL,	0
000055  7247	BP,	LDBUFS	/POINTER INTO PASS2 BUFFER ARRAY
000056  0001	A1,	1;0	/CURRENT ADDRESS IN FIELDS 1-7
000057  0000
000060  0000	LNONUM,	0
000061  0000	LBCNT,	0
000062  0000	BLKCNT,	0
000063  0000	TRAPV,	0;0
000064  0000
000065  0000	BLKSIZ,	0
000066  0000	BSECTP,	0	/POINTER INTO BINARY SECTION TABLE (PASS 2)
000067  0000	OUTINH,	0
000070  0000	BLKBEG,	0
000071  0000	NEWBLK,	0
000072  0000	NEWLEN,	0
000073  0000	MCNT,	0
000074  0000	MBGCNT,	0
000075  0000	TMP4,	0
000076  0000	TMP5,	0
	0200		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 5



		/LOADER STARTS AT 200

000200  2202		ISZ	.+2	/NON-CHAIN ENTRY
000201  5602		JMP I	.+1	/CHAIN ENTRY
000202  4600		START

		/COME HERE TO READ/WRITE THE LOADER IMAGE.
			 
000203  0000	LDRIO,	0		/AC=4000 FOR WRITE, 0 FOR READ
000204  3237		DCA	LDRIOC	/STORE READ/WRITE
000205  4777		JMS I	(NEWBUF
000206  1055		TAD	BP
000207  3240		DCA	LDRIOA
000210  2240		ISZ	LDRIOA
000211  1640		TAD I	LDRIOA
000212  3241		DCA	LDRIOB	/BLOCK #
000213  2240		ISZ	LDRIOA
000214  1640		TAD I	LDRIOA	/NUMBER OF BLOCKS LEFT IN SECTION
000215  7550		SPA SNA
000216  5243		JMP	LDRIOR	/NULL BUFFER - JUST IN CASE
000217  1177		TAD	[-4
000220  7500		SMA
000221  7200		CLA		/IF >4 BLOCKS LEFT ONLY DO 4
000222  1176		TAD	[4
000223  7112		CLL RTR
000224  7012		RTR
000225  7012		RTR
000226  1237		TAD	LDRIOC	/ADD READ/WRITE
000227  6201		CDF 0
000230  1776		TAD I	(OUTFLD
000231  1375		TAD	(-CDF
000232  3237		DCA	LDRIOC	/STORE R/W + BLOCK COUNT + FLD BITS
000233  1070		TAD	BLKBEG
000234  3240		DCA	LDRIOA
000235  4575		JMS I	[IOHAN	/DF MUST BE 0 HERE!
000236  2144		LIMGU		/LOADER IMAGE FILE
000237  0000	LDRIOC,	0
000240  0000	LDRIOA,	0
000241  0000	LDRIOB,	0
000242  6211		CDF 10
000243  7200	LDRIOR,	CLA
000244  5603		JMP I LDRIO

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 6



000245  0000	SETBGX,	0
000246  7201		CLA IAC
000247  1026		TAD	GPTR
000250  4252		JMS	SETBPT	/EXTREMELY COMMON SEQUENCE
000251  5645		JMP I	SETBGX

000252  0000	SETBPT,	0
000253  3045		DCA	BPTR	/STORE BPTR
000254  7201		CLA IAC
000255  1045		TAD	BPTR
000256  3046		DCA	BPT2	/AND PTR TO NEXT WD
000257  5652		JMP I	SETBPT
000260  1114	ORGMSG,	TEXT	/ILLEGAL ORIGIN/
000261  1405
000262  0701
000263  1440
000264  1722
000265  1107
000266  1116
000267  0000
000270  1726	SYMMSG,	TEXT	/OVER SYMB/
000271  0522
000272  4023
000273  3115
000274  0200
000275  1417	IOMSG,	TEXT	%LOADER I/O ERROR%
000276  0104
000277  0522
000300  4011
000301  5717
000302  4005
000303  2222
000304  1722
000305  0000
000306  1723	ENTMSG,	TEXT	%OS/8 ENTER ERROR%
000307  5770
000310  4005
000311  1624
000312  0522
000313  4005
000314  2222
000315  1722
000316  0000
000375  1577
000376  2721
000377  2666
	0400		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 7



		/TTYHAN- TTY HANDLER FOR OUTPUT OF ANY MESSAGE IN ANY FIELD.
		/	MESSAGE MUST BE FIELD CONTAINED & TERMINATE WITH 0
		/	HANDLER CAN BE CALLED ACROSS FLDS WITH AC CLR.
		/	RTN WITH"IF & DF" SET TO CALLING FLD.
		/
		/	CALL	CDF X	/X=FLD OF CALLER*10
		/		CIF Y	/Y=FLD OF TTYHAN*10
		/		JMS  TTYHAN
		/		CDF Z	/Z=FLD OF MESS.BUF
		/		BUFADR	/MESS BUF. ADDR.
		/
000400  0000	TTYHAN,	0
000401  1377		TAD	(6203	/SETUP MICRO INSTR
000402  6214		RDF		/CDF & CIF FOR RTN
000403  3242		DCA	CRLFF+1
000404  1600		TAD I	TTYHAN	/SET UP FLD OF
000405  3214		DCA	TTYCDF	/MESS BUF
000406  2200		ISZ	TTYHAN
000407  7040		CMA
000410  1600		TAD I	TTYHAN	/SET UP MESS BUFF ADDR-1
000411  3244		DCA	MESADR
000412  2200		ISZ	TTYHAN
000413  3245		DCA	MESADR+1
000414  0000	TTYCDF,	0
000415  4321		JMS	CRLF
000416  2245	TTYLP,	ISZ	MESADR+1
000417  5222		JMP	.+3
000420  1644		TAD I	MESADR
000421  5231		JMP	HAF
000422  2244		ISZ	MESADR
000423  7240		CLA CMA
000424  3245		DCA	MESADR+1
000425  1644		TAD I	MESADR
000426  7012		RTR
000427  7012		RTR
000430  7012		RTR
000431  0174	HAF,	AND	[77
000432  7450		SNA
000433  5241		JMP	CRLFF
000434  1173		TAD	[240
000435  0174		AND	[77
000436  1173		TAD	[240
000437  4313		JMS	TTYO
000440  5216		JMP	TTYLP
000441  4321	CRLFF,	JMS	CRLF
000442  0000		0
000443  5600		JMP I	TTYHAN
000444  0000	MESADR,	0
000445  0000		0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 8



000446  0000	RTNOS8,	0		/HERE ON PASS1 FATAL ERROR
000447  7240		STA
000450  6211		CDF 10
000451  3776		DCA I	(OVLTBL	/PRINT SYMBOL MAP W/O OVERLAY LENGTH TABLE
000452  4775	DOMAP,	JMS I (SYMMAP
000453  6201		CDF
000454  1646		TAD I RTNOS8	/ADDR OF TTY
000455  3260		DCA .+3		/MSG
000456  4572		JMS I [TTYHAN
000457  6201		CDF
000460  0000		0
000461  1374		TAD	(TTYO
000462  3021		DCA	PPACK	/FAKE OUT SYMBOL PRINTER
000463  1060		TAD	LNONUM
000464  3041		DCA	GTYP	/PUT LEVEL AND OVERLAY IN GTYP
000465  4773		JMS I	(CVLOVL	/OUTPUT LEVEL AND OVERLAY
000466  7346		AC7775
000467  3076		DCA	TMP5	/PRINT 3 DIGIT FILE-WITHIN-OVERLAY
000470  1073		TAD	MCNT
000471  1074		TAD	MBGCNT
000472  7001		IAC
000473  7106		CLL RTL
000474  7004		RAL
000475  4772		JMS I	(CVRT
000476  4321		JMS	CRLF	/OUTPUT CRLF AFTERWARDS
000477  5700		JMP I .+1	/RTN TO
000500  7605		7605		/OS8

000501  0001	LDRNAM,	1;0617;2224;2216;1404	/SYS:FORTRN.LD
000502  0617
000503  2224
000504  2216
000505  1404
000506  0000		ZBLOCK	5		/NO DEFAULT SYMBOL MAP DEVICE

000513  0000	TTYO,	0
000514  6046		TLS
000515  6041		TSF
000516  5315		JMP	.-1
000517  7200		CLA
000520  5713		JMP I	TTYO
		/
000521  0000	CRLF,	0
000522  1371		TAD	(215
000523  4313		JMS	TTYO
000524  1370		TAD	(212
000525  4313		JMS	TTYO
000526  5721		JMP I	CRLF

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 9



		/OS8ER- USED WHEN AN OS/8 ERROR OCCURS WHICH IS FATAL

000527  0000	OS8ER,	0
000530  6201		CDF 0
000531  4572		JMS I	[TTYHAN
000532  6201		CDF 0		/FLD OF MESS BUF
000533  0535		SYSERR		/ADR OFMESS BUF
000534  5571		JMP I	[7605	/RTN TO OS8

000535  2331	SYSERR,	TEXT	/SYSTEM ERROR/
000536  2324
000537  0515
000540  4005
000541  2222
000542  1722
000543  0000
000544  4040	TYTBL,	4040		/CHARS FOR SMAP
000545  0530		0530		/EX (EXTERN)
000546  4040		4040		/GOOD TYPES ARE
000547  4040		4040		/SPACES
000550  1505		1505		/ME (MUL ENTRY)
000551  1523		1523		/MS (MUL SECTN)
000552  4040		4040		/GEN 8MOD SECT
000553  4040		4040		/8MOD COM SECT
000554  4040		4040		/8MOD F1 SECT
000570  0212
000571  0215
000572  1651
000573  1727
000574  0513
000575  1400
000576  5435
000577  6203
	0600		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 10



		/IOHAN- I/O HANDLER 1)FETCHES A OS8 DEVICE HANDLER;
		/	2)CHKS FOR E.O.FILE;3)ISSUES CALL TO THE HANDLER.
		/       RTN TO CALLER WITH "IOFLG" SET IF
		/	NUM OF BLKS TRANSF LESS THAN REQ AMT.
		/	CAN BE CALLED FROM ANY FLD
		/	IF AC=0,DO ALL OF THE ABOVE.
		/	IF AC=DEV NUM,DO ONLY "FETCH"PART
		/
		/	CALL	CDF X
		/		CIF Y
		/		JMS  IOHAN
		/		ADDR  /PTR TO UNIT,LEN,STBLK OF FILE IN FLD 1
		/		ARG(1)/OS8 ARG: FCN CTRL WD
		/		ARG(2)/ "     : TRNASF BUF ADR
		/		ARG(3)/ "     : REL STBLK OF TRANSF
		/
000600  0000	IOHAN,	0
000601  3340		DCA	UNITSV	/SAV DEV NUM IF ONE
000602  3022		DCA	IOFLG	/CLR FLG
000603  6214		RDF
000604  1363		TAD	P6201
000605  3342		DCA	GETCDF+1
000606  7326		CLA CLL CML RTL	/SETUP CIF & CDF FOR
000607  1342		TAD	GETCDF+1/RTN JMP
000610  3334		DCA	RTNIO
		/FETCH A DEV HANDLER OR LOOKUP ENTRY PT
		/IF DESIRED HANDLER IS IN CORE
000611  1340		TAD	UNITSV	/GET DEV NUM IF ONE
000612  7650		SNA CLA		/JUST A FETCH?
000613  5216		JMP	.+3	/NO
000614  4346		JMS	INQIRE	/YES
000615  5334		JMP	RTNIO
000616  1600		TAD I	IOHAN	/GET PTR TO UNIT(DEV NUM)
000617  3337		DCA	ULSADR
000620  6211		CDF 10
000621  1737		TAD I	ULSADR	/GET DEV NUM
000622  0170		AND	[17
000623  7450		SNA
000624  4567		JMS I	[OS8ER
000625  3340		DCA	UNITSV
000626  4346		JMS	INQIRE
		/CHK FOR E.O.FILE
000627  2200		ISZ	IOHAN
000630  4341		JMS	GETCDF
000631  1600		TAD I	IOHAN	/GET FCN CTRL WD
000632  7106		CLL RTL		/NUM OF PAGES IS CONVRTED
000633  7006		RTL		/TO NUM BLKS & PUT
000634  7006		RTL		/IN BITS 8-11
000635  0170		AND	[17
000636  3000		DCA	TMP0	/NUM BLKS TO TRANSF

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 11



		/SETUP FCN CTRL WD; TRANSF BUF ADR; & ABS STBLK OF TRANSF
		/FOR OS8 CALL TO HANDLER
000637  1600		TAD I	IOHAN	/FCN CTRL WD
000640  3327		DCA	FCNWD
000641  2200		ISZ	IOHAN
000642  1600		TAD I	IOHAN	/TRANSF BUF ADR
000643  3330		DCA	FCNWD+1
000644  2200		ISZ	IOHAN
000645  1600		TAD I	IOHAN	/GET REL STBLK & BUILD
000646  1000		TAD	TMP0	/ABS STBLK
000647  7141		CIA CLL
000650  2337		ISZ	ULSADR
000651  6211		CDF 10
000652  1737		TAD I	ULSADR	/FILE LEN-(REL STB+NUM BLKS)
000653  7460		SNL SZA		/E.O.FILE CONDITION?
000654  5257		JMP	.+3	/YES
000655  7600	P7600,	CLA 400		/NO
000656  5305		JMP	SETSBN
000657  1000		TAD	TMP0
000660  7540		SMA SZA		/ANY BLKS TO TRANSF?
000661  5271		JMP	IOH	/YES
000662  7200		CLA		/NO
		/CHK IF FILE LEN=0; IF SO DO SEQ STUFF
000663  1737		TAD I	ULSADR
000664  7650		SNA CLA		/SEQ DEV?
000665  5272		JMP	IOH+1	/YES
000666  7040		CMA		/NO,=-1 IF NUM BLKS TRANSF L.T. REQ
000667  3022		DCA	IOFLG
000670  5334		JMP 	RTNIO
000671  3000	IOH,	DCA	TMP0	/THIS NUM OF BLKS
		/UPDATE FCN CTRL WD IN OS8 CALL
000672  1327		TAD	FCNWD
000673  0377		AND	(4077	/REMOVE REQ NUM OF PGS
000674  3327		DCA	FCNWD	/& PUT IN THE
000675  1000		TAD	TMP0	/ALTERED NUM
000676  7112		CLL RTR
000677  7012		RTR
000700  7012		RTR
000701  1327		TAD	FCNWD
000702  3327		DCA	FCNWD
000703  7040		CMA		/=-1 IF NUM BLKS TRANSF L.T. REQ
000704  3022		DCA	IOFLG
		/SETUP STARTING BLK NUMBER
		/
000705  2337	SETSBN,	ISZ	ULSADR
000706  6211		CDF 10
000707  1737		TAD I	ULSADR	/GET ABS STBLK
000710  4341		JMS	GETCDF	/GET DF
000711  1600		TAD I	IOHAN	/ADD REL STBLK
000712  3331		DCA	FCNWD+2
000713  1600		TAD I	IOHAN	/UPDATE REL STBLK
000714  1000		TAD	TMP0	/BY NUM BLKS OF TRANSF
000715  3600		DCA I	IOHAN

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 12



		/CALL TO THE HANDLER
000716  6201		CDF 0		/IOHAN & OS8 DEV HAN IN FLD 0
000717  1255		TAD	P7600	/CHK FOR CTRLC
000720  6034		KRS
000721  1376		TAD (-7603
000722  7650		SNA CLA
000723  6031		KSF
000724  7410		SKP
000725  5571		JMP I [7605
000726  4736		JMS I	IOENT
000727  0000	FCNWD,	0
000730  0000		0
000731  0000		0
000732  5344		JMP	HNDERR	/ERROR RETURN OF CALL
000733  2200		ISZ	IOHAN
000734  0000	RTNIO,	0		/CIF INSTR
000735  5600		JMP I	IOHAN
000736  0000	IOENT,	0
000737  0000	ULSADR,	0
000740  0000	UNITSV,	0
		/
000741  0000	GETCDF,	0
000742  0000		0
000743  5741		JMP I	GETCDF

000744  4566	HNDERR,	JMS I	[RTNOS8
000745  0275		IOMSG

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 13



		/INQIRE- DETERMINE IF DESIRED DEV HANDLER IS IN CORE
		/	& IF SO,GET ITS ENTRY PT
	7647		DVTBL=7647
000746  0000	INQIRE,	0
000747  6211		CDF 10
000750  1340		TAD	UNITSV
000751  1375		TAD	(DVTBL-1
000752  3336		DCA	IOENT	/ADR OF ENRTY PT IN RESID. TBL
000753  1736		TAD I	IOENT	/GET ENTRY PT IF ONE
000754  3336		DCA	IOENT
000755  1336		TAD	IOENT
000756  7640		SZA CLA		/DEV HAN WAS IN CORE?
000757  5746		JMP I	INQIRE	/YES
000760  1374		TAD	(7201	/NO
000761  3367		DCA	P6201+4
000762  1340		TAD	UNITSV	/GET DEV NUM BK
000763  6201	P6201,	CDF 0
000764  6212		CIF 10
000765  4420		JMS I	USR
000766  0001		1
000767  0000		0
000770  4567		JMS I	[OS8ER
000771  1367		TAD	.-2
000772  3336		DCA	IOENT
000773  5746		JMP I	INQIRE
000774  7201
000775  7646
000776  0175
000777  4077
	1000		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 14



001000  0000	NXTESD,	0
001001  2042		ISZ EPTR	/ADV PTR TO
001002  2042		ISZ EPTR	/WD 0 OF
001003  1042		TAD EPTR	/NEXT ENTRY
001004  0165		AND [377	/IF AT BLK
001005  7650		SNA CLA		/BOUNDARY
001006  1176		TAD [4		/BUMP IT FOUR
001007  1042		TAD EPTR
001010  4564		JMS I	[SETEPT
001011  1163		TAD [3		/CHECK FOR
001012  1042		TAD EPTR	/END OF
001013  3000		DCA TMP0	/ESD
001014  1400		TAD I TMP0	/TYPE WD
001015  0170		AND [17		/TO AC B8-B11
001016  7440		SZA		/LAST ESD?
001017  2200		ISZ NXTESD	/NO
001020  3044		DCA ETYP	/SAVE TYPE
001021  5600		JMP I NXTESD

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 15



001022  0000	ADVOVR,	0		/UPDATE PASS1 PASS2 ARGS
001023  2073		ISZ MCNT	/MORE MODS IN THIS OVR?
001024  5303		JMP SAMOVR	/YES
001025  4315		JMS NXTOVR	/SET ARGS FOR NEXT OVER
001026  5246		JMP EOLVL	/RTN HERE= END OF LEVEL
001027  1031		TAD P2FLG	/DOING PASS2 ?
001030  7700		SMA CLA
001031  5242		JMP BY10	/NO
001032  1377		TAD (2		/GET NEW LDR
001033  1066		TAD BSECTP	/IMAGE REL BLK
001034  3000		DCA TMP0	/FOR NEXT OVR
001035  1000		TAD	TMP0
001036  3010		DCA	NDX0
001037  1410		TAD I	NDX0	/LENGTH OF OVERLAY
001040  1400		TAD I	TMP0	/PLUS OLD RELATIVE BLOCK
001041  3400		DCA I	TMP0	/EQUALS NEW RELATIVE BLOCK
001042  1060	BY10,	TAD LNONUM	/ADD 1 TO BITS
001043  1376		TAD (20		/4-7 OF LEVEL
001044  3060		DCA LNONUM	/AND OVR LAY NUM
001045  5303		JMP SAMOVR
001046  4315	EOLVL,	JMS NXTOVR	/GET NXT OVR NEW LEVEL
001047  5307		JMP SAMOV4	/HERE=END OF ALL LEVELS
001050  1060		TAD LNONUM	/ADD 1 TO
001051  0162		AND [3400	/THE LEVEL
001052  1375		TAD (400	/BITS (1-3)
001053  3060		DCA LNONUM	/AND CLEAR THE OVR BITS
001054  1031		TAD P2FLG
001055  7700		SMA CLA		/DOING PASS2 ?
001056  5263		JMP BY7		/NO
001057  1176		TAD [4
001060  1066		TAD BSECTP	/UPDATE BIN SECTION PTR
001061  3066		DCA BSECTP
001062  5303		JMP SAMOVR

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 16



001063  2774	BY7,	ISZ I (LEVSYM+2	/SET THE INTERNAL LEVEL SYMBOL TO LEVLN+1
001064  1373		TAD (LEVSYM	/ENTER NEW
001065  4561		JMS I [LOOK	/LEVEL SYMBOL INTO GST
001066  1176		TAD [4
001067  1060		TAD LNONUM	/SET TYPE
001070  3426		DCA I GPTR	/TO PROG SECTION
001071  7001		IAC		/SET PTR TO
001072  1026		TAD GPTR	/NEW LEVEL
001073  3560		DCA I [LVPTR
001074  1446	LEVRND,	TAD I	BPT2
001075  7100		CLL
001076  1165		TAD	[377	/ROUND UP OLD LEVEL
001077  0157		AND	[7400	/TO A BLOCK BOUNDARY
001100  7430		SZL
001101  2445		ISZ I	BPTR	/MIND THE CARRIES!
001102  3446		DCA I	BPT2
001103  1163	SAMOVR,	TAD [3		/ADV PTR TO
001104  1025		TAD RFPTR1	/NXT RALF
001105  3025		DCA RFPTR1	/MODULE
001106  5622		JMP I ADVOVR
001107  2222	SAMOV4,	ISZ	ADVOVR	/BUMP RETURN
001110  1031		TAD	P2FLG
001111  7710		SPA CLA
001112  5303		JMP	SAMOVR	/SKIP ROUNDUP IF PASS 2
001113  4772		JMS I (LEVLUP	/MERGE OVERLAY SIZE INTO LEVEL SIZE
001114  5274		JMP LEVRND	/AND RND UP LAST LEVEL

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 17



001115  0000	NXTOVR,	0		/HERE AT END OF OVERLAY
001116  2350		ISZ MTBL	/GET NUM OF
001117  1750		TAD I MTBL	/MOD IN NXT
001120  7450		SNA		/OVR
001121  5715		JMP I NXTOVR	/=END OF LEVEL
001122  3074		DCA	MBGCNT
001123  1074		TAD	MBGCNT
001124  7041		CIA
001125  3073		DCA MCNT
001126  1031		TAD	P2FLG
001127  7700		SMA CLA
001130  4772		JMS I (LEVLUP	/SET CUR. LEVL =MAX (CUR LEVL, CURNT OVR)
001131  2315		ISZ NXTOVR	/RTN P+1 IF
001132  5715		JMP I NXTOVR	/NOT END OF LEVEL
		 
		 
001133  0000	SETCNT,	0
001134  1371		TAD	(MCTTBL+1	/PTR TO MOD
001135  3350		DCA MTBL	/COUNT TBL
001136  1750		TAD I MTBL	/-NUM IN
001137  3074		DCA	MBGCNT
001140  1074		TAD	MBGCNT
001141  7041		CIA		/MAIN
001142  3073		DCA MCNT
001143  1370		TAD	(MODTBL+3	/PTR TO TOP
001144  3025		DCA RFPTR1	/OF MOD TBL
001145  3767		DCA I (OVRSIZ
001146  3766		DCA I (OVRSIZ+1
001147  5733		JMP I SETCNT
001150  0000	MTBL,	0
001166  2150
001167  2147
001170  6175
001171  6001
001172  4507
001173  2050
001174  2052
001175  0400
001176  0020
001177  0002
	1200		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 18



		/LOOKUP OR ENTER A SYMBOL INTO
		/GLOBAL SYMBOL TABLE (GST). PTR
		/TO SYMBOL IN FIELD 1 IS IN
		/AC. USUALLY ITS AN ESD.
		/RTN P+1=NO MATCH
		/RTN P+2=MATCH
		 
001200  0000	LOOK,	0
001201  3000		DCA TMP0	/PTR TO SYM
001202  6211		CDF 10
001203  1400		TAD I TMP0	/SELECT
001204  7012		RTR		/BUCKET
001205  7012		RTR		/A-Z, SPACE
001206  7012		RTR		/OR POUND
001207  0174		AND [77
001210  1377		TAD (BUCKET-1	/PTR TO BUCKET
001211  3001	LOP5,	DCA TMP1	/PTR TO PREV ENTRY
001212  1401		TAD I TMP1	/PTR TO NEXT ENTRY
001213  7450		SNA		/0=BUCKET BOTTOM
001214  5264		JMP HOOKIN	/NO MATCH
001215  7001		IAC		/APPEND SYMBOL
001216  3026		DCA GPTR	/LOOK FOR
001217  7346		AC7775		/3 WORD MATCH
001220  3002		DCA TMP2
001221  1000		TAD TMP0
001222  3042		DCA EPTR
001223  1442	YUCCH,	TAD I EPTR
001224  7141		CIA CLL
001225  1426		TAD I GPTR
001226  7640		SZA CLA
001227  5260		JMP YECCH	/SYMBOLS DIFFER
001230  2042		ISZ EPTR
001231  2026		ISZ GPTR
001232  2002		ISZ TMP2	/ALL MATCH?
001233  5223		JMP YUCCH	/NO
001234  2200		ISZ LOOK	/BUMP RTN
001235  1442	SETTYP,	TAD I EPTR	/GET ESD TYPE
001236  0170		AND [17
001237  3044		DCA ETYP
001240  7201		CLA IAC
001241  1042		TAD	EPTR
001242  4564		JMS I	[SETEPT	/BUMP EPTR AND SET EPT2
001243  1442		TAD I EPTR	/GET ESD NUM
001244  7012		RTR		/IN B1-B7
001245  7012		RTR		/AND SET
001246  0376		AND (177	/REFERENCE
001247  1375		TAD (ESDPG	/POINTER
001250  3047		DCA REFPTR
001251  1426		TAD I GPTR	/SET GST
001252  0170		AND [17		/TYPE
001253  3041		DCA GTYP	/FIELD BITS OF
001254  1442		TAD I EPTR	/VALUE WORDS
001255  0156		AND [7		/CLR

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 18-1

001256  3442		DCA I EPTR	/HI 9
001257  5600		JMP I LOOK

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 19



001260  7430	YECCH,	SZL		/IS NEW GUY LESS THAN GST ENTRY?
001261  5264		JMP HOOKIN	/YES HOOK-IN HERE
001262  1401		TAD I TMP1
001263  5211		JMP LOP5	/TRY NEXT
001264  1401	HOOKIN,	TAD I TMP1	/GET FWD LINK
001265  3414		DCA I NDX4	/TO NEXT INTO
001266  1014		TAD NDX4	/NEW. PUT FWD
001267  3401		DCA I TMP1	/LINK TO NEW INTO PREV.
001270  1000		TAD TMP0	/3 SYM
001271  3042		DCA EPTR	/INTO GST
001272  7346		AC7775
001273  3002		DCA TMP2
001274  1442		TAD I EPTR
001275  3414		DCA I NDX4
001276  2042		ISZ EPTR
001277  2002		ISZ TMP2
001300  5274		JMP .-4
001301  2014		ISZ NDX4	/SET PTR TO
001302  1014		TAD NDX4	/WORD 4 (TYPE)
001303  3026		DCA GPTR	/OF GST
001304  2014		ISZ NDX4	/SET PTR TO NEXT
001305  2014		ISZ NDX4	/FREE ENTRY
001306  1156		TAD [7		/SEE IF
001307  1014		TAD NDX4	/GST IS FULL
001310  1315		TAD ENDSYM	/END OF GST
001311  7750		SPA SNA CLA
001312  5235		JMP SETTYP	/ITS OK
001313  4566		JMS I [RTNOS8	/SYMBOL TABLE
001314  0270		SYMMSG		/OVER FLOW
001315  2344	ENDSYM,	1-OVLTBL
			 
001316  0000	SETEPT,	0
001317  3042		DCA	EPTR
001320  7201		CLA IAC
001321  1042		TAD	EPTR
001322  3043		DCA	EPT2	/SET PTR TO BOTH WDS OF DBLWD
001323  5716		JMP I	SETEPT

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 20



001324  0000	GETTYP,	0		/ADV GST PTR
001325  1156		TAD [7		/TO WD 4 OF
001326  1026		TAD GPTR	/ENTRY
001327  3026		DCA GPTR	/CHECK FOR
001330  1026		TAD GPTR
001331  1315		TAD ENDSYM
001332  7700		SMA CLA
001333  5724		JMP I GETTYP
001334  1426		TAD I GPTR	/END OF GST.
001335  7640		SZA CLA		/IF NOT END,
001336  2324		ISZ GETTYP	/ISZ RETURN.
001337  5724		JMP I GETTYP

001340  0000	OLINE,	0		/OUTPUT A LINE OF TEXT TO THE SYMBOL MAP
001341  3076		DCA	TMP5
001342  1476	OLINLP,	TAD I	TMP5
001343  4774		JMS I	(HAFWD
001344  1476		TAD I	TMP5
001345  2076		ISZ	TMP5
001346  0174		AND	[77
001347  7640		SZA CLA
001350  5342		JMP	OLINLP
001351  4555		JMS I	[PCRLF	/DOUBLE SPACE AFTERWARDS
001352  4555		JMS I	[PCRLF
001353  5740		JMP I	OLINE
001374  1531
001375  7400
001376  0177
001377  1777
	1400		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 21



		/HERE TO OUTPUT SYMBOL MAP
		/EACH SYMBOL IN GST IS 7 WORDS LONG
		/THE FORMAT IS:
		/WD0  PTR TO NEXT ALPHABETICAL SYMBOL
		/WD1  SYMBOL NAME IN PACKED SIX BIT
		/WD2  ASCII. 00 IS INTERPRETED AS SPACE
		/WD3  SIX CHARS MAX PER SYMBOL
		/WD4  B0=1=TRAP VECT SYMBOL ON PASS1 OR
		/     B0=1=PASS2 ERROR, B1-B3=LEVEL NUM
		/     (0-7)  B4-B7=OVERLAY NUM (0-17)
		/     B8-B11=TYPE. TYPE FORMAT IS:
		/	0=END OF ESD TBL (NA TO LDR)
		/	1=ENTRY POINT
		/	2=EXTERN
		/	3=COMMON SECTION
		/	4=PROGRAM SECTION
		/	5=MULTIPLE ENTRY POINT
		/	6=MULTIPLE SECTION
		/	7=GENERAL 8-MODE SECTION
		/      10=FIELD1 8-M0DE SECTION
		/      11=COMMON PG0 8-MODE SECTION
		/      12-17=UNDEFINED
		/
		/WD5  B0-B8=PTR TO PARENT SYMBOL (0R 0)
		/     ON PASS1 =TRAP VECTOR DISPLACEMENT
		/     ON PASS2
		/     B9-B11=FIELD BITS OF SYMBOL
		/WD6  ADDR  BITS OF SYMBOL
			 
		/OUTPUT FORMAT OF MAP IS:
		/
		/SYMBOL VALUE LEVEL OVRNUM TYPE(*)
		/
		/THE TYPE COLUMN IS EITHER 2 BLANKS OR
		/EX=EXTERN
		/ME=MULTIPLE ENTRY POINT
		/MS=MULTIPLE SECTION
		/ASTERISK MEANS SOME TYPE OF ILLEGAL
		/REFERENCE TO A SYMBOL AND USUALLY
		/MEANS A LOADER ORIGINATED TRAP HAS
		/BEEN GENERATED SOMEWHERE IN THE BINARY
		/E.G. SUBR GROG AT LEVEL 2 CALLS SUBR
		/COLUMBO AT LEVEL 1. A USER 7 TRAP
		/WOULD BE GENERATED IN SUBR GROG, AND
		/THE SYMBOL COLUMBO WOULD HAVE AN
		/ASTERISK ASIDE OF IT IN THE TYPE
		/COLUMN

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 22



001400  0000	SYMMAP,	0
001401  6201		CDF
001402  1777		TAD I (LDRNAM+5	/MAP UNIT
001403  7450		SNA		/IS IT 0 ?
001404  5324		JMP NOMAP	/YES, NO MAP TO OUTPUT
001405  4575		JMS I [IOHAN	/FETCH HANDLER
001406  1777		TAD I (LDRNAM+5	/ENTER OUTPUT
001407  6212		CIF 10
001410  4420		JMS I USR
001411  0003		3
001412  0507	MPBLK,	LDRNAM+6
001413  0000		0
001414  5353		JMP	ENTERR	/WHOOPS WE HAVE AN ENTER ERROR
001415  1777		TAD I	(LDRNAM+5
001416  0170		AND	[17
001417  6211		CDF 10
001420  3776		DCA I	(SMAPU	/STORE SYMBOL MAP UNIT
001421  1376		TAD	(SMAPU	/SYMMAP ARGS
001422  3010		DCA NDX0	/FOR I/O
001423  1213		TAD MPBLK+1	/LENGTH
001424  7041		CIA
001425  3410		DCA I NDX0
001426  1212		TAD MPBLK
001427  3410		DCA I NDX0
001430  1375		TAD (BUCKET	/START AT 1ST
001431  3050		DCA RLEN	/BUCKET (A)
001432  1374		TAD (-42	/DO UP UNTIL BUT NOT INCL.
001433  3053		DCA RBLK	/POUND SIGN
001434  7346		AC7775		/INIT PACK ARGS
001435  3054		DCA FATAL
001436  1373		TAD	(RALFBF
001437  3075		DCA TMP4
001440  1301		TAD SM600
001441  3062		DCA BLKCNT
001442  4555		JMS I	[PCRLF
001443  1372		TAD	(TLINE
001444  4771		JMS I	(OLINE
001445  1370		TAD	(STLINE
001446  4771		JMS I	(OLINE	/OUTPUT TITLE AND SUBTITLE
001447  1450		TAD I RLEN	/1ST SYM
001450  3026	LOP10,	DCA GPTR
001451  1026		TAD GPTR	/ANY MORE IN
001452  7440		SZA		/THIS BUCKET ?
001453  5326		JMP JOUSYM	/YES
001454  2050		ISZ RLEN	/NXT BUCKET
001455  2053		ISZ RBLK	/DONE ALL
001456  5247		JMP LOP10-1	/NO
001457  2036		ISZ SWITZ	/BEEN HERE BEF?
001460  5267		JMP DUNMP	/YES ALL DONE
001461  7240		CLA CMA		/SET FOR JUST
001462  3053		DCA RBLK	/POUND SYMS
001463  1037		TAD SVMAIN
001464  7450		SNA		/DO ONLY #MAIN?

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 22-1

001465  5247		JMP LOP10-1	/NO - DO ALL # SYMBOLS
001466  7200	PRMAIN,	CLA		/** REPLACED WITH JMS I (OUTSYM **

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 23



001467  1177	DUNMP,	TAD [-4		/OUT PUT
001470  3076		DCA TMP5	/THE HIGHEST LOCATION
001471  1056		TAD A1		/USED BY THE PROGRAM
001472  1367		TAD (4060	/FLD BITS
001473  4331		JMS HAFWD
001474  1057		TAD A1+1
001475  4766		JMS I (CVRT
001476  1365		TAD	(HLINE
001477  4771		JMS I	(OLINE	/PRINT " = HIGHEST LOC USED"
001500  4764		JMS I	(PROVLY	/PRINT OVERLAY TABLE
001501  7200	SM600,	CLA		/** AC NOT 0 ON RETURN**
001502  1363		TAD (214
001503  4421		JMS I PPACK
001504  1362		TAD (232	/CTRL Z
001505  4421	OUFILP,	JMS I PPACK
001506  1062		TAD	BLKCNT	/HAVE WE FILLED
001507  1175		TAD	[600	/A BLOCK UP COMPLETELY?
001510  7640		SZA	CLA
001511  5305		JMP	OUFILP	/NO
001512  6201		CDF		/CLOSE SYMMAP
001513  1761		TAD I (SYLST	/AC=LENGTH
001514  3322		DCA SMPCLN
001515  1777		TAD I (LDRNAM+5	/MAP UNIT
001516  6212		CIF 10
001517  4420		JMS I USR
001520  0004		4
001521  0507		LDRNAM+6
001522  0000	SMPCLN,	0
001523  4567		JMS I [OS8ER
001524  6211	NOMAP,	CDF 10
001525  5600		JMP I SYMMAP
001526  4760	JOUSYM,	JMS I (OUTSYM
001527  1426		TAD I GPTR	/NEXT SYM TO DO
001530  5250		JMP	LOP10

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 24



001531  0000	HAFWD,	0		/OUTPUT THE 2 6 BIT ASCII CHARS IN AC
001532  3003		DCA TMP3
001533  1003		TAD TMP3	/LEFT HALF 1ST
001534  7012		RTR
001535  7012		RTR
001536  7012		RTR
001537  4343		JMS SIXTO8
001540  1003		TAD TMP3
001541  4343		JMS SIXTO8
001542  5731		JMP I HAFWD
			 
001543  0000	SIXTO8,	0		/CVRT AC FROM
001544  0174		AND	[77	/6 TO 8 BIT ASCII
001545  7440		SZA
001546  1173		TAD	[240	/TURN ZEROS TO BLANKS
001547  0174		AND	[77
001550  1173		TAD	[240
001551  4421		JMS I PPACK	/PUT IN BUFF IN PS/8 FORMAT
001552  5743		JMP I SIXTO8

001553  3757	ENTERR,	DCA I	(DOMAP	/CANCEL SYMBOL MAP FROM RTNOS8
001554  4566		JMS I	[RTNOS8	/AS WE MASY HAVE COME FROM SYMMAP
001555  0306		ENTMSG
001557  0452
001560  1672
001561  1646
001562  0232
001563  0214
001564  2400
001565  2117
001566  1651
001567  4060
001570  2104
001571  1340
001572  2067
001573  7000
001574  7736
001575  2000
001576  2141
001577  0506
	1600		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 25



		/PACK ASCII IN AC INTO OUTPUT BUFF IN
		/OS/8 3 WORD FORMAT TO 2 12 BIT WORDS
			 
001600  0000	PACK,	0
001601  2054		ISZ FATAL	/3RD WORD ?
001602  5215		JMP ONEOR2	/NO
001603  3000		DCA TMP0	/SAVE CHAR
001604  7344		AC7776		/BU BUFF PTR
001605  1075		TAD TMP4
001606  3075		DCA TMP4
001607  7346		AC7775
001610  3054		DCA FATAL	/RESET CNTR
001611  4227		JMS ROL		/POSITION HI
001612  3475		DCA I TMP4
001613  2075		ISZ TMP4
001614  4227		JMS ROL		/POSITION LO
001615  3475	ONEOR2,	DCA I TMP4
001616  2075		ISZ TMP4
001617  2062		ISZ BLKCNT	/BLOCK FULL ?
001620  5600		JMP I PACK	/NO
001621  4240		JMS WRBUF
001622  1245		TAD	SBPTR
001623  3075		DCA TMP4	/RESET ARGS
001624  1377		TAD (-600
001625  3062		DCA BLKCNT
001626  5600		JMP I PACK
			 
001627  0000	ROL,	0
001630  1000		TAD TMP0	/3RD CHAR
001631  7006		RTL		/POSITION
001632  7006		RTL		/BITS
001633  3000		DCA TMP0	/SAV FOR NXT CALL ON LO
001634  1000		TAD TMP0
001635  0157		AND [7400
001636  1475		TAD I TMP4	/ADD IN OLDY
001637  5627		JMP I ROL
			 
001640  0000	WRBUF,	0		/WRITE OUT
001641  6201		CDF		/SYM MAP
001642  4575		JMS I [IOHAN	/BUFFER
001643  2141		SMAPU		/ADDR OF SYM U
001644  4210		200^1!4000!10	/1 BLK OF FLD 1
001645  7000	SBPTR,	7000		/1ST ADDR
001646  0000	SYLST,	0		/REL BLK
001647  6211		CDF 10
001650  5640		JMP I WRBUF

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 26



001651  0000	CVRT,	0		/CONVERT AC TO
001652  3326		DCA CVRTMP	/ASCII NUM
001653  1076		TAD TMP5	/-NUM OF DIGITS
001654  3001		DCA TMP1	/TO CONVERT
001655  1326	LOP7,	TAD CVRTMP	/CVRT LEFT TO
001656  7006		RTL		/RIGHT
001657  7004		RAL		/3 BITS PER
001660  3326		DCA CVRTMP	/DIGIT
001661  1326		TAD CVRTMP
001662  7004		RAL
001663  0156		AND [7
001664  1376		TAD (260
001665  4421		JMS I	PPACK
001666  2001		ISZ TMP1	/ENOUGH ?
001667  5255		JMP LOP7	/NO
001670  4775		JMS I (HAFWD	/OUTPUT A PAIR
001671  5651		JMP I CVRT	/OF SPACES

001672  0000	OUTSYM,	0		/DO ONE SYMBOL
001673  3011		DCA	NDX1	/ADDRESS IN AC ON ENTRY
001674  7346		AC7775
001675  3002		DCA TMP2
001676  1411		TAD I NDX1	/SYMBOL IS 1ST
001677  4775		JMS I (HAFWD
001700  2002		ISZ TMP2
001701  5276		JMP .-3
001702  1411		TAD I NDX1	/SAVE
001703  3041		DCA GTYP	/TYPE
001704  1411		TAD I NDX1	/FLD OF SYMBOL
001705  4352		JMS	PR15
001706  4327		JMS	CVLOVL	/CONVERT ADDR, LEVEL, OVERLAY
001707  1041		TAD GTYP	/NOW DO TYPE
001710  0374		AND (17		/ITS B8-B11
001711  1373		TAD (TYTBL-1	/PTR TO TBL OF
001712  3000		DCA TMP0	/CHAR PAIRS FOR
001713  6201		CDF 0
001714  1400		TAD I TMP0	/TYPE EG EX FOR
001715  6211		CDF 10
001716  4775		JMS I (HAFWD	/EXTERN
001717  1041		TAD GTYP	/IF ERROR WAS
001720  7710		SPA CLA		/FOUND DURING PASS2 B0 OF TYPE=1 EG ILLEGAL SUBR CALL. * ON MAP INDICA
001721  1372		TAD (12		/PASS2 ERROR
001722  1173		TAD [240
001723  4421		JMS I	PPACK
001724  4344		JMS	PCRLF
001725  5672		JMP I OUTSYM

001726  0000	CVRTMP,	0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 27



001727  0000	CVLOVL,	0
001730  7240		CLA CMA
001731  3076		DCA TMP5	/DO LEVEL NUM
001732  1041		TAD GTYP	/ITS B1-B3 OF
001733  7004		RAL		/OF TYPE WORD
001734  4251		JMS CVRT
001735  7344		AC7776		/DO OVER NUM
001736  3076		DCA TMP5	/ITS B4-B7 OF
001737  1041		TAD GTYP	/TYPE WORD
001740  7006		RTL		/POSITION INTO
001741  0371		AND (1700	/HI 2 DIGITS
001742  4251		JMS CVRT
001743  5727		JMP I	CVLOVL

001744  0000	PCRLF,	0
001745  1370		TAD (215	/EOL
001746  4421		JMS I	PPACK
001747  1367		TAD (212
001750  4421		JMS I	PPACK
001751  5744		JMP I	PCRLF

001752  0000	PR15,	0
001753  0156		AND [7
001754  1366		TAD (4060
001755  4775		JMS I (HAFWD
001756  1177		TAD [-4		/NOW DO ADDR OF
001757  3076		DCA TMP5	/SYMBOL
001760  1411		TAD I NDX1
001761  4251		JMS	CVRT
001762  5752		JMP I	PR15
001766  4060
001767  0212
001770  0215
001771  1700
001772  0012
001773  0543
001774  0017
001775  1531
001776  0260
001777  7200
	2000		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 28



		/PASS 2 OF LOADER - TRANSFORMS BINARIES INTO LOADER IMAGE FILE

002000  3060	PASS2,	DCA LNONUM	/SET FOR MAIN
002001  4777		JMS I (BLDTV	/BUILD TRAP VECTOR
002002  1061		TAD LBCNT	/PROCESS LIBR
002003  7041		CIA		/MODULES 1ST
002004  7450		SNA		/ANY TO DO?
002005  5217		JMP BY12	/NO
002006  3061		DCA LBCNT	/=-NUM TO DO
002007  1027		TAD LBPTR	/PTR TO 1ST
002010  3025		DCA RFPTR1	/LIBR MOD
002011  4307		JMS SETREF	/INIT RELOC ARGS AND PROCESS TXT
002012  1163		TAD [3		/ADV TO NXT
002013  1025		TAD RFPTR1	/LIBR MOD.
002014  3025		DCA RFPTR1
002015  2061		ISZ LBCNT	/DONE LIBR?
002016  5211		JMP .-5		/NO
002017  4776	BY12,	JMS I (SETCNT	/SET ARGS TO PROCESS USER MODS.
002020  4307		JMS SETREF	/DO 1 MOD
002021  4775		JMS I (ADVOVR	/ADVANCE ARGS
002022  5220		JMP .-2		/RTN HERE IF MORE TO DO
002023  4774		JMS I	(WRALL	/WRITE OUT ALL THE RESIDENT BIN BLOCKS

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 29



		/END OF PASS 2 - RETURN TO OS8 OR CHAIN TO RSYS

002024  1373		TAD	(7616
002025  3010		DCA	NDX0
002026  1772		TAD I	(LIMGU	/SAVE UNIT AND BLOCK OF LOADER IMAGE
002027  3410		DCA I	NDX0	/FILE IN CD AREA IN CASE WE CHAIN
002030  1771		TAD I	(LIMGU+2
002031  3410		DCA I	NDX0	/TO THE RUN-TIME-SYSTEM
002032  3410		DCA I	NDX0	/A PRECAUTION
002033  6201		CDF 0
002034  6212		CIF 10
002035  4420		JMS I	USR
002036  0010		10		/LOCK USR IN
002037  1370		TAD	(200
002040  3020		DCA	USR
002041  1767		TAD I	(LDRNAM
002042  6212		CIF 10
002043  4420		JMS I	USR
002044  0004		4
002045  0502		LDRNAM+1	/CLOSE LOADER IMAGE FILE
002046  0000	LDCLEN,	0
002047  4567		JMS I	[OS8ER	/OOPS!
002050  4766		JMS I	(SYMMAP	/PRINT SYMBOL TABLE IF REQUESTED
002051  1765		TAD I	(OS8SWS
002052  6201		CDF 0
002053  0364		AND	(40	/TEST /G SWITCH
002054  7650		SNA CLA
002055  5571		JMP I	[7605	/NOT ON - RETURN TO OS8
002056  6211		CDF 10
002057  1763		TAD I	(OS8SWS+1
002060  6201		CDF 0
002061  0362		AND	(100	/TEST /R SWITCH FOR FRUN
002062  7650		SNA CLA
002063  5266		JMP	LOOKRT	/NO, IT'S FRTS
002064  1361		TAD	(FRUNAM
002065  3272		DCA	RTBLOK
002066  1760	LOOKRT,	TAD I	(SBLOCK	/ON CCL-DEVICE
002067  6212		CIF 10
002070  4420		JMS I	USR
002071  0002		2
002072  2475	RTBLOK,	RTSNAM		/LOOKUP FRTS OR FRUN
002073  0000		0
002074  5304		JMP	NORTS
002075  1272		TAD	RTBLOK
002076  3303		DCA	CHBLOK	/COPY LOOKUP BLOCK TO CHAIN
002077  1757		TAD I	(MREAD-1	/ON CCL-DEVICE
002100  6212		CIF 10
002101  4420		JMS I	USR
002102  0006		6
002103  0000	CHBLOK,	0
		/------------------------
002104  3756	NORTS,	DCA I	(LDRNAM+5	/KILL SECOND STORAGE MAP
002105  4566		JMS I	[RTNOS8

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 29-1

002106  2465		RTSMSG

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 30



002107  0000	SETREF,	0
002110  4755		JMS I (RDRLES	/GET MODULE ESD TABLE
002111  7344		AC7776
002112  3042		DCA EPTR
002113  4717	LOP12,	JMS I .+4	/GET NXTESD
002114  5327		JMP BY11	/ALL DONE
002115  1042		TAD EPTR	/LOOK UP
002116  4561		JMS I [LOOK	/SYMBOL
002117  1000		NXTESD
002120  7240		CLA CMA		/IGNORE ESD IF
002121  1044		TAD ETYP	/ITS AN ENTRY
002122  7650		SNA CLA		/POINT
002123  5313		JMP LOP12	/IGNORE
002124  1026		TAD GPTR	/PUT ADDR OF
002125  3447		DCA I REFPTR	/GST SYM IN
002126  5313		JMP LOP12	/ESD REF. PAGE
002127  6201	BY11,	CDF 0		/COMPUTE 1ST
002130  1042		TAD EPTR	/TEXT BLK
002131  0157		AND [7400
002132  7106		CLL RTL
002133  7006		RTL
002134  7004		RAL
002135  7001		IAC
002136  3754		DCA I	(TXTBLK
002137  7240		CLA CMA		/SET CNT TO -1
002140  3062		DCA BLKCNT	/TO KICK OFF 1ST TXT READ
002141  1025		TAD RFPTR1	/PTR TO
002142  3753		DCA I	(TXTBLK-3	/RALF MOD
002143  6211		CDF 10
002144  4752		JMS I (TXTSCN	/RELOCATE
002145  5707		JMP I SETREF	/TEXT
002152  3000
002153  3146
002154  3151
002155  2421
002156  0506
002157  7756
002160  7776
002161  2501
002162  0100
002163  7644
002164  0040
002165  7643
002166  1400
002167  0501
002170  0200
002171  2146
002172  2144
002173  7616
002174  2435
002175  1022
002176  1133
002177  2200

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 30-1

	2200		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 31



002200  0000	BLDTV,	0		/BUILD UP
002201  1030		TAD TRPCNT	/TRAP VECTOR
002202  7650		SNA CLA		/ANY TO DO?
002203  5600		JMP I BLDTV	/NO
002204  1206		TAD .+2		/GET BASE
002205  4561		JMS I [LOOK	/ADDR OF
002206  2043		TRPSYM		/TRAP VECT
002207  2026		ISZ GPTR
002210  1426		TAD I GPTR
002211  3000		DCA TMP0
002212  2026		ISZ GPTR
002213  1426		TAD I GPTR
002214  3001		DCA TMP1
002215  1000		TAD TMP0	/FOR SUBR
002216  3063		DCA TRAPV	/TRPVEC
002217  1001		TAD TMP1
002220  3064		DCA TRAPV+1
002221  4303		JMS	NEWORG	/PROCESS NEW ORIGIN
002222  3030		DCA TRPCNT	/WILL BE USED TO MARK GST SYMS
002223  1225		TAD .+2		/THAT HAVE A VECTOR ENTRY
002224  4561		JMS I [LOOK	/GET SWAPPER
002225  2055		SWPSYM		/ADDR
002226  2026		ISZ GPTR
002227  2026		ISZ GPTR
002230  1426		TAD I GPTR
002231  3025		DCA RFPTR1

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 32



002232  1023		TAD SYMTM3	/SCAN GST
002233  3026	LOP11,	DCA GPTR	/FOR ALL
002234  4554		JMS I [GETTYP	/TRAP SYMS
002235  5600		JMP I BLDTV	/ALL DONE
002236  1426		TAD I GPTR	/IF TYPE WD
002237  7700		SMA CLA		/B0=1, THEN SYMBOL NEEDS A VECTOR ENTRY
002240  5234		JMP LOP11+1	/TRY NEXT 1ST WD OF ENTRY IS
002241  1377		TAD	(3000	/TRAP3
002242  4553		JMS I [PUTBIN
002243  1025		TAD RFPTR1	/NXT IS
002244  4553		JMS I [PUTBIN	/SWAP ADDR
002245  7330		CLL CML CLA RAR		/CLR B0
002246  1426		TAD I GPTR	/OF TYPE WD
002247  3426		DCA I GPTR
002250  1426		TAD I	GPTR
002251  2026		ISZ GPTR
002252  7006		RTL
002253  7006		RTL
002254  3000		DCA	TMP0	/HAVE TO MUSH SOME BITS AROUND:
002255  1000		TAD	TMP0	/OVERLAY NUMBER MOVES FROM B4-7 TO B0-3
002256  0157		AND	[7400
002257  3001		DCA	TMP1	/LEVEL NUMBER MOVES FROM B1-3 TO B6-8
002260  1000		TAD	TMP0
002261  7006		RTL
002262  7006		RTL
002263  0376		AND	(70
002264  1001		TAD	TMP1
002265  1426		TAD I GPTR	/ADD FLD BITS TO MESS
002266  4553		JMS I [PUTBIN
002267  1030		TAD TRPCNT	/ADV VECT
002270  1375		TAD (10		/ENTRY NUM
002271  3030		DCA TRPCNT	/COUNTER
002272  1426		TAD I GPTR	/TAG HI 9
002273  1030		TAD TRPCNT	/OF GST SYM
002274  3426		DCA I GPTR	/WD5 WITH TV ENTRY NUMBER
002275  2026		ISZ GPTR
002276  1426		TAD I GPTR	/ENTER
002277  4553		JMS I [PUTBIN	/ADDR
002300  7344		AC7776
002301  1026		TAD GPTR
002302  5233		JMP LOP11	/FOR THIS SYM

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 33



002303  0000	NEWORG,	0
002304  1066		TAD	BSECTP
002305  4564		JMS I	[SETEPT	/SET PTR TO CURRENT SECTION
002306  1443		TAD I	EPT2
002307  7141		CIA CLL
002310  1001		TAD	TMP1
002311  3003		DCA	TMP3
002312  1003		TAD	TMP3
002313  0374		AND	(6000
002314  3002		DCA	TMP2	/DO A DOUBLE PRECISION SUBTRACT
002315  7024		CML RAL
002316  1442		TAD I	EPTR
002317  7141		CIA CLL
002320  1000		TAD	TMP0
002321  7510		SPA
002322  5352		JMP	BADORG	/OUT OF RANGE
002323  7110		CLL RAR
002324  1002		TAD	TMP2	/COMBINE AND SHIFT RIGHT 8
002325  7004		RAL
002326  7006		RTL
002327  7006		RTL		/(I.E. LEFT 5)
002330  3002		DCA	TMP2
002331  1002		TAD	TMP2
002332  2043		ISZ	EPT2
002333  1443		TAD I	EPT2	/ADD TO RELATIVE BLOCK OF SECTION
002334  3071		DCA	NEWBLK
002335  2043		ISZ	EPT2
002336  1002		TAD	TMP2
002337  7041		CIA
002340  1443		TAD I	EPT2
002341  7510		SPA
002342  5352		JMP	BADORG	/ORIGIN OUT OF RANGE
002343  3072		DCA	NEWLEN
002344  4773		JMS I	(NEWBB	/GET BUFFER USING NEWBLK AND NEWLEN
002345  1003		TAD	TMP3
002346  0372		AND	(1777
002347  1070		TAD	BLKBEG
002350  3065		DCA	BLKSIZ	/FORM POINTER INTO PROPER BUFFER
002351  5703		JMP I	NEWORG
002352  4566	BADORG,	JMS I	[RTNOS8
002353  0260		ORGMSG		/ORIGIN OUT OF CURRENT FILE LIMITS
002354  5703		JMP I	NEWORG
002372  1777
002373  2600
002374  6000
002375  0010
002376  0070
002377  3000
	2400		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 34



002400  0000	PROVLY,	0	/ROUTINE TO PRINT OVERLAY INFO IN SYMBOL MAP
002401  4555		JMS I	[PCRLF
002402  1377		TAD	(OTLINE
002403  4776		JMS I	(OLINE
002404  1375		TAD	(OVLTBL-1
002405  3011		DCA	NDX1
002406  1411	PROVLP,	TAD I	NDX1	/GET ENTRY
002407  7510		SPA		/TEBLE ENDS WITH -1
002410  5600		JMP I	PROVLY
002411  3041		DCA	GTYP
002412  1173		TAD	[240
002413  4421		JMS I	PPACK
002414  4774		JMS I	(CVLOVL	/PRINT LEVEL AND OVERLAY
002415  1041		TAD	GTYP
002416  4773		JMS I	(PR15	/PRINT 15-BIT LENGTH
002417  4555		JMS I	[PCRLF
002420  5206		JMP	PROVLP

002421  0000	RDRLES,	0		/READ A
002422  1025		TAD RFPTR1	/PTR TO RALF
002423  3227		DCA RLARG-1	/MOD
002424  3232		DCA RLARG+2	/STRT AT BLK 0
002425  6201		CDF		/AND READ
002426  4575		JMS I [IOHAN	/3 BLKS INTO
002427  0000		0		/10000-11400
002430  0610	RLARG,	200^3!10
002431  0000		0
002432  0000		0
002433  6211		CDF 10
002434  5621		JMP I RDRLES

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 35



		/STARTING WITH THE LATEST,
		/WRITE OUT ALL CORE RESIDENT
		/BINARY BUFFERS
			 
002435  0000	WRALL,	0
002436  1055		TAD BP
002437  7001		IAC		/PTR TO
002440  3000		DCA TMP0	/CURNT BLK
002441  1400		TAD I TMP0
002442  7650		SNA CLA		/ALL DONE ?
002443  5635		JMP I	WRALL	/YES
002444  7330		AC4000
002445  4772		JMS I (LDRIO	/WRITE IT
002446  1455		TAD I BP
002447  7450		SNA
002450  5635		JMP I WRALL
002451  3055		DCA	BP
002452  5236		JMP	WRALL+1

002453  4566	NOTREL,	JMS I	[RTNOS8
002454  2455		RELMSG

002455  0201	RELMSG,	TEXT	/BAD INPUT FILE/
002456  0440
002457  1116
002460  2025
002461  2440
002462  0611
002463  1405
002464  0000

002465  1617	RTSMSG,	TEXT	/NO FRTS OR FRUN/
002466  4006
002467  2224
002470  2340
002471  1722
002472  4006
002473  2225
002474  1600
002475  0622	RTSNAM,	FILENAME FRTS.SV
002476  2423
002477  0000
002500  2326
002501  0622	FRUNAM,	FILENAME FRUN.SV
002502  2516
002503  0000
002504  2326

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 36



002505  0000	MERGE,	0
002506  4771		JMS I (GETTXT	/COMBINE TXT
002507  3051		DCA FTMP0	/PAIR WITH
002510  4771		JMS I (GETTXT	/PAIR WHOSE
002511  3052		DCA FTMP0+1	/ADDR IS IN BPTR
002512  7100		CLL
002513  1446		TAD I	BPT2
002514  1052		TAD	FTMP0+1
002515  3001		DCA	TMP1
002516  7004		RAL
002517  1445		TAD I	BPTR
002520  1051		TAD	FTMP0
002521  0156		AND	[7
002522  3000		DCA	TMP0
002523  1051		TAD	FTMP0	/GET THE OPCODE OR WHATEVER
002524  0152		AND	[7770	/IS IN THE HIGH 9 BITS
002525  1000		TAD	TMP0	/AND COMBINE THEM WITH THE RELOCATED ADDRESS
002526  4553		JMS I	[PUTBIN	/AND OUTPUT THE MESS
002527  1001		TAD	TMP1
002530  4553		JMS I	[PUTBIN	/DON'T FORGET WORD 2
002531  5705		JMP I MERGE

002532  0000	GETCTL,	0		/GET TEXT
002533  4771		JMS I (GETTXT	/CTRL WORD
002534  3000		DCA TMP0	/B4-B11
002535  1000		TAD TMP0	/IS TYPE
002536  0165		AND [377	/INDICATOR
002537  3047		DCA REFPTR	/SOMETIMES
002540  1047		TAD REFPTR	/ITS AN ESD.
002541  1370		TAD (ESDPG	/WHEN IT IS,
002542  3026		DCA GPTR	/GPTR PNTS
002543  1426		TAD I GPTR	/TO THE
002544  3026		DCA GPTR	/CORRESPONDING GST SYM (WORD 4)
002545  4551		JMS I	[SETBGX	/AND BPTR POINTS TO THE VALUE
002546  1000		TAD TMP0	/TEXT TYPE
002547  7006		RTL		/IS IN
002550  7006		RTL		/B0-B3
002551  7004		RAL		/PUT IN
002552  0170		AND [17		/AC8-AC11
002553  1332		TAD	GETCTL
002554  3332		DCA	GETCTL	/USE IT TO BUMP RETURN ADDRESS
002555  5732		JMP I GETCTL
002570  7400
002571  3141
002572  0203
002573  1752
002574  1727
002575  5434
002576  1340
002577  2131
	2600		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 37



		/COME HERE ON ORIGIN OR WHEN CROSSING
		/AN AREA BOUNDARY TO SELECT A BINARY
		/CORE BUFFER FOR A NEW LOADER IMAGE
		/AREA. THE BINARY BUFFER TABLE
		/ASSOCIATES CORE BUFFERS TO LOADER
		/IMAGE AREAS.

		/EACH ENTRY HAS FOUR WORDS - THEY CONTAIN:

		/WORD 1		POINTER TO BUFFER OF NEXT EARLIEST REFERENCE
		/WORD 2		RELATIVE BLOCK NUMBER (0 IF UNUSED)
		/WORD 3		NUMBER OF BLOCKS LEFT UNTIL END OF SECTION
		/WORD 4		BUFFER ADDRESS AND FIELD

		/EACH ENTRY MAPS FROM 1 TO 4 BLOCKS (400 TO 2000 OCTAL WORDS) FROM THE
		/ADDRESSES GENERATED BY THE LOADER ONTO THE LOADER IMAGE FILE.
		/THE RELATIVE BLOCK NUMBERS ARE ALWAYS OF THE FORM S+4N, WHERE
		/S IS THE RELATIVE BLOCK NUMBER OF THE NEAREST BINARY SECTION
		/ (A BINARY SECTION IS AN OVERLAY OR "MAIN").

		/THE BUFFERS ARE ORGANIZED AS A CHAIN IN ORDER OF REFERENCE,
		/WITH WORD 1 BEING THE LINK TO THE NEXT EARLIEST BUFFER.  IN CASE
		/A BUFFER NEEDS TO BE WRITTEN THE CHAIN IS TRAVERSED AND THE LAST BUFFER
		/WRITTEN OUT, SINCE IT WAS THE LEAST RECENTLY ACCESSED.

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 38



002600  0000	NEWBB,	0		/ENTER WITH NEW
002601  1055		TAD	BP
002602  3015		DCA	NDX5	/SAVE CURRENT "MOST RECENT" BUFFER
002603  1415		TAD I	NDX5
002604  7041		CIA
002605  1071		TAD	NEWBLK	/CHECK WHETHER THE BUFFER WE WANT
002606  7650		SNA CLA		/IS THE CURRENT BUFFER
002607  5264		JMP	QUIKIE	/YES - SAVE GRIEF
002610  1055	NEWBB4,	TAD BP		/MAKE THE CURNT
002611  3302		DCA BPPREV	/BUFFER THE PREVIOUS BUFF
002612  1455		TAD I BP	/MAK THE BUF OF
002613  3055		DCA BP		/NEXT EARLIEST REFERENCE THE NEW CURNT BUFF
002614  1055		TAD BP		/GET THE PTR TO
002615  7001		IAC		/LDR IMAGE BLK
002616  3346		DCA CURBLK	/IN THIS BUFF
002617  1746		TAD I CURBLK	/HAVE WE SCANNED
002620  7041		CIA		/IS NEWBLK
002621  1071		TAD NEWBLK	/IN CORE
002622  7650		SNA CLA		/?
002623  5257		JMP GOTBLK	/YES
002624  1455		TAD I BP	/ARE WE AT THE
002625  7640		SZA CLA		/BUFFER OF EARLIEST REF?
002626  5210		JMP NEWBB4	/NO DO NEXT
002627  7120		STL		/INITIALIZE LINK AS FLAG
002630  1746		TAD I CURBLK	/IS THERE A 
002631  7650		SNA CLA		/BLK TO WRITE?
002632  5236		JMP	VIRGIN	/NO - NONE TO READ, EITHER
002633  7330		AC4000
002634  4777		JMS I	(LDRIO	/YES WRITE IT
002635  7100		CLL		/SET FLAG THAT BUFFER WAS WRITTEN
002636  1071	VIRGIN,	TAD	NEWBLK
002637  3746		DCA I	CURBLK
002640  2346		ISZ	CURBLK
002641  1072		TAD	NEWLEN	/STORE NEW BLOCK # AND LENGTH
002642  3746		DCA I	CURBLK	/IN BUFFER CONTROL WORD
002643  7010		RAR		/GET "VIRGIN FLAG"
002644  3266		DCA	NEWBUF
002645  1303		TAD	MAXBLK
002646  7140		CMA CLL
002647  1071		TAD	NEWBLK	/CHECK IF THE BLOCK WE'RE MAPPING
002650  7620		SNL CLA		/IS LARGER THAN ANY OTHER SO FAR -
002651  5254		JMP	.+3	/IF SO WE DON'T HAVE TO READ IT
002652  1071		TAD	NEWBLK
002653  3303		DCA	MAXBLK	/UPDATE MAXBLK
002654  1266		TAD	NEWBUF	/LINK = MAX FLAG, SIGN = VIRGIN FLAG
002655  7720		SNL SMA CLA	/IF NEITHER IS ON,
002656  4777		JMS I	(LDRIO	/READ THE BLOCKS INTO THE BUFFER
002657  1455	GOTBLK,	TAD I	BP
002660  3702		DCA I	BPPREV	/BREAK NEW BUFFER OUT OF THE CHAIN
002661  7240		STA
002662  1015		TAD	NDX5	/NDX5 CONTAINS PTR TO OLD "MOST RECENT" + 1
002663  3455		DCA I	BP	/MAKE NEW BUFFER THE BUFFER OF LATEST REFERENCE
002664  4266	QUIKIE,	JMS	NEWBUF	/SET UP FOR PUTBIN

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 38-1

002665  5600		JMP I NEWBB	/AND RETURN

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 39



		/COME HERE TO CUMPUTE A 15 BIT
		/BUFFER ADDRESS FROM AN ENTRY
		/IN THE BINARY BUFFER TABLE.
			 
002666  0000	NEWBUF,	0
002667  1163		TAD	[3
002670  1055		TAD	BP
002671  3321		DCA	OUTFLD
002672  1721		TAD I	OUTFLD	/LOAD ADRESS AND FIELD
002673  0376		AND	(7600
002674  3070		DCA	BLKBEG
002675  1721		TAD I	OUTFLD
002676  0375		AND	(70
002677  1374		TAD	(CDF
002700  3321		DCA	OUTFLD	/DECOMPOSE INTO ADDRESS AND CDF
002701  5666		JMP I NEWBUF

002702  0000	BPPREV,	0
002703  0000	MAXBLK,	0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 40



		/COME HERE TO STORE 1 WORD
		/IN SOME BINARY OUTPUT BUFFER
			 
002704  0000	PUTBIN,	0
002705  3002		DCA TMP2	/SAVE DATA
002706  1024		TAD ORGFLG	/N.E. 0 MEANS
002707  7640		SZA CLA		/INHIBIT
002710  5704		JMP I PUTBIN	/BINARY OUTPUT BECAUSE OF NEW ORIGIN
002711  1067		TAD OUTINH	/N.E. 0 MEANS
002712  7650		SNA CLA		/INHIBIT BIN OUT BECAUSE OF BAD ORIGIN
002713  5321		JMP OUTFLD		/ITS OK
002714  1467		TAD I OUTINH	/SET B0 OF
002715  7004		RAL		/OFFENDING GST
002716  7130		CLL CML RAR	/SYMBOL
002717  3467		DCA I OUTINH	/SEE SUBR REORG
002720  5704		JMP I PUTBIN	/FOR DEFINITION OF C(OUTINH)
002721  0000	OUTFLD,	0		/CDF X
002722  1002		TAD TMP2	/STORE IT
002723  3465		DCA I BLKSIZ	/AWAY
002724  6211		CDF 10		/RESTORE FLD
002725  2065		ISZ BLKSIZ	/BUMP PTR
002726  1070		TAD	BLKBEG
002727  7041		CIA
002730  1065		TAD BLKSIZ	/HAVE WE
002731  0373		AND (1777	/CROSSED A
002732  7640		SZA CLA		/BLK BOUND?
002733  5704		JMP I PUTBIN	/NO
002734  1071		TAD	NEWBLK
002735  1176		TAD	[4
002736  3071		DCA	NEWBLK
002737  1072		TAD	NEWLEN
002740  1177		TAD	[-4
002741  3072		DCA	NEWLEN	/BUMP BLOCK NUMBER AND REMAINING BLOCKS
002742  4200		JMS NEWBB	/SELECT A NEW BUFFER
002743  1070		TAD	BLKBEG
002744  3065		DCA	BLKSIZ	/RE-INITIALIZE WORD POINTER
002745  5704		JMP I	PUTBIN
002746  0000	CURBLK,	0
002773  1777
002774  6201
002775  0070
002776  7600
002777  0203
	3000		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 41



		/COME HERE TO SCAN AND RELOCATE
		/THE TEXT OF AN ENTIRE MODULE
			 
003000  0000	TXTSCN,	0		/SET CTRL WD
003001  4777		JMS I (GETCTL	/ARGS. RTN TO .+1,2,3, OR 4
003002  5310		JMP RELC2	/SPECIAL TYPE
003003  5314		JMP RELC6	/DIRECT COPY
003004  5324		JMP REORG	/NEW ORIGIN
003005  1426		TAD I GPTR	/RELOCATE FPP
003006  0170		AND [17		/PAIR
003007  3000		DCA TMP0	/GST SYM TYPE
003010  7344		AC7776		/IS RELOCATION
003011  1000		TAD TMP0	/WITH RESPECT
003012  7640		SZA CLA		/TO GST EXTERN?
003013  5231		JMP BY2		/NO
003014  4341	SETTRP,	JMS GETTXT	/BAD TEXT.
003015  7200		CLA
003016  4341		JMS GETTXT	/IGNORE RELOCATION AND MAKE AN ERROR TRAP
003017  7200		CLA
003020  1376		TAD	(3000	/=TRAP3
003021  4553		JMS I [PUTBIN
003022  1375		TAD (JUERR	/RTS ERROR
003023  4553		JMS I [PUTBIN	/TRAP SUBR
003024  1426	BY2M5,	TAD I GPTR	/SET ILLEGAL
003025  7004		RAL		/REFERENCE
003026  7130		CLL CML RAR	/BIT IN
003027  3426		DCA I GPTR	/GST TYPE WD
003030  5201		JMP TXTSCN+1	/DO NEXT
003031  1374	BY2,	TAD (-5		/RELOCATE TO
003032  1000		TAD TMP0	/A MULTIPLE
003033  7650		SNA CLA		/ENTRY?
003034  5214		JMP SETTRP	/YES
003035  1426		TAD I GPTR	/CHECK FOR LEGALITY OF REFERENCE
003036  0373		AND (0360	/WITH RESPECT TO LEVEL AND OVERLAY NUMBER
003037  3001		DCA TMP1	/ = GST OVER NUM
003040  1060		TAD LNONUM	/=CURNT MOD
003041  0162		AND [3400	/LEVEL NUM
003042  3002		DCA TMP2
003043  1426		TAD I	GPTR
003044  0162		AND	[3400
003045  7450		SNA		/RELOCATE TO MAIN?
003046  5306		JMP RELC	/YES, ITS OK
003047  7041		CIA		/IS RELOCATION
003050  1002		TAD TMP2	/ACROSS LEVELS
003051  7440		SZA		/?
003052  5261		JMP TSTTRP	/YES
003053  1060		TAD LNONUM	/=CURRENT MOD
003054  0373		AND (0360	/OVER NUM
003055  7041		CIA
003056  1001		TAD TMP1	/WITHIN LEVL CALL IS LEGAL ONLY
003057  7650		SNA CLA		/IF WITHIN OVR ALSO.
003060  5306		JMP RELC	/ITS OK

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 42



				/** TSTTRP REPLACED BY "SKP CLA" IF /U SPECIFIED
003061  7700	TSTTRP,	SMA CLA		/NOT OK - IS X LEVL LO TO HI?
003062  5214		JMP SETTRP	/NO
003063  1445		TAD I BPTR	/TRAP VECT
003064  1152		TAD [7770	/SUBTRACT 1 FROM ENTRY NUM
003065  0152		AND [7770	/IN HIGH 9 BITS OF GST WD 5
003066  7110		CLL RAR		/DIV BY 2 TO GET ENTRY NUM * 4
003067  1064		TAD	TRAPV+1	/LINK IS 0
003070  3772		DCA I	(SYMX+1	/STORE VECTOR ENTRY ADDRESS
003071  7004		RAL
003072  1063		TAD	TRAPV	/IN SYMX AS A DOUBLEWORD
003073  3771		DCA I	(SYMX
003074  1371		TAD (SYMX
003075  4550		JMS I	[SETBPT	/COMBINE IT WITH TXT PAIR
003076  4770		JMS I (MERGE	/I.E. RELOCATE TO TRAP VECT
003077  1051		TAD	FTMP0
003100  0156		AND	[7
003101  7450		SNA
003102  1052		TAD	FTMP0+1
003103  7650		SNA CLA		/WERE LOW ORDER 15 BITS OF TXT=0?
003104  5201		JMP TXTSCN+1	/YES, ITS OK
003105  5224		JMP BY2M5	/SET ILL REF BIT. NOTE TRAP IS NOT GENERATED

003106  4770	RELC,	JMS I (MERGE	/MAKE FPP PAIR AND STORE IN BIN BUFFER
003107  5201		JMP TXTSCN+1	/DO NEXT
003110  1047	RELC2,	TAD REFPTR	/CHK IND.
003111  7650		SNA CLA		/FOR SPECIAL TYPE
003112  5600		JMP I TXTSCN	/0=END OF TEXT
003113  5201		JMP TXTSCN+1	/1=IGNORE 1 WORD OF TEXT
003114  1047	RELC6,	TAD REFPTR	/IND HOLDS
003115  7041		CIA		/NUM OF WDS
003116  3047		DCA REFPTR	/TO COPY
003117  4341		JMS GETTXT
003120  4553		JMS I [PUTBIN
003121  2047		ISZ REFPTR
003122  5317		JMP .-3
003123  5201		JMP TXTSCN+1
003124  2024	REORG,	ISZ ORGFLG	/SET INHIBIT BIN OUT FLG
003125  4770		JMS I (MERGE	/GET NEW ORIGIN
003126  1426		TAD I GPTR	/SEE IF
003127  0367		AND (3760	/ORIGIN IS
003130  7041		CIA		/TO A DIFFERENT
003131  1060		TAD LNONUM	/BINARY SECTION
003132  7640		SZA CLA		/?
003133  1026		TAD	GPTR	/YES - SET INHIBIT/ERROR FLAG
003134  7450		SNA
003135  4766		JMS I	(NEWORG	/NO - SET UP NEW ORIGIN
003136  3067		DCA	OUTINH
003137  3024		DCA	ORGFLG
003140  5201		JMP TXTSCN+1

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 43



003141  0000	GETTXT,	0		/GET ONE WORD OF TEXT FROM THE BUFFER
003142  2062		ISZ	BLKCNT
003143  5356		JMP	RDTCDF
003144  6201		CDF		/TO READ IN
003145  4575		JMS I [IOHAN	/RALF TEXT
003146  0000		0		/PTR TO UNIT
003147  1010		200^4!10	/OR 200^17!20
003150  0000		0
003151  0002	TXTBLK,	2
003152  1350		TAD .-2		/SET TXT
003153  3053		DCA RBLK	/BUF PTR
003154  1363		TAD TXTWDS	/-NUM OF
003155  3062		DCA BLKCNT	/WDS-1 IN
003156  6211	RDTCDF,	CDF 10		/OR CDF 20
003157  1453		TAD I	RBLK
003160  6211		CDF 10
003161  2053		ISZ	RBLK
003162  5741		JMP I	GETTXT	/RETURN
003163  6000	TXTWDS,	-2000		/OR -7400
003166  2303
003167  3760
003170  2505
003171  2152
003172  2153
003173  0360
003174  7773
003175  0204
003176  3000
003177  2532
	3200		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 44



		/ENTER A SYMBOL INTO GST. PTR TO ESD
		/SYMBOL IS IN AC
		 
003200  5601		JMP I PUTSYM	/FOR XPAGE RTN
003201  0000	PUTSYM,	0
003202  4561		JMS I [LOOK	/LOOKUP SYMBOL
003203  5777		JMP I (NOMAT	/NEW SYMBOL DISPOSITION
		/TYPE OF MATCH 2 EXTERNS, 2 COMMONS, ETC.
		/ETYP HOLDS SYM TYPE FOR ESD GTYP HOLDS GST TYPE
			 
003204  1376		TAD (5
003205  3000		DCA TMP0	/FOR ME,MS
003206  1044		TAD ETYP
003207  1375		TAD (-7
003210  7510		SPA
003211  1374		TAD (2
003212  1176		TAD [4
003213  7110		RAR CLL
003214  7040		CMA
003215  3002		DCA TMP2
003216  7060		CML CMA		/GET -1
003217  1041		TAD GTYP	/RESTR LNK, GET GST TYP-1
003220  7004		RAL
003221  1373		TAD (MYSTIC	/GET ADDR OF 4 CODES
003222  3001		DCA TMP1
003223  6201		CDF 0
003224  1401		TAD I TMP1	/GET 4 CODES
003225  6211		CDF 10
003226  2002	CTST,	ISZ TMP2	/WHICH CODE ?
003227  5246		JMP SHFT3	/NOT THIS 1
003230  0156		AND [7
003231  1234		TAD T2J		/PICK UP JMP I
003232  3233		DCA .+1
003233  0000		0
003234  5635	T2J,	JMP I .+1
003235  3265		ISCOM3		/FORT COMM N FLD1 SECTION
003236  3200		PUTSYM-1	/ESD IS EXT JUST EXIT
003237  3400		REP		/GST IS EXT GO REPLACE
003240  3260		MULENT		/MULTIPLE ENTS
003241  3270		ISCOM		/2 F COMMS OR 2 COMMZS OR 2 FLD1S
003242  3251		BADDY		/MULTIPLE SECTS
003243  3251		BADDY		/UNDEF TYPES
003244  3251		BADDY
003245  3251		BADDY
003246  7010	SHFT3,	RAR
003247  7012		RTR
003250  5226		JMP CTST

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 45



003251  1073	BADDY,	TAD	MCNT
003252  1074		TAD	MBGCNT
003253  3275		DCA	MTMCNT	/SAVE PARAMS FOR ERROR MESSAGE LATER
003254  7201		CLA IAC
003255  1060		TAD	LNONUM	/MULTIPLE SECTION
003256  3054		DCA	FATAL
003257  2000		ISZ TMP0	/IS FATAL
003260  1426	MULENT,	TAD I GPTR	/SET TYPE TO
003261  0372		AND (7760	/5 FOR MUL ENT
003262  1000		TAD TMP0	/OR 6 FOR
003263  3426		DCA I GPTR	/MUL. SECTION
003264  5601		JMP I PUTSYM

003265  1371	ISCOM3,	TAD	(11	/F COMM N FLD1 (RITE9=11)
003266  3426		DCA I GPTR	/SET TYP TO F1
003267  2033		ISZ F1FLG
003270  4551	ISCOM,	JMS I	[SETBGX
003271  1045		TAD BPTR	/UPDATE
003272  3447		DCA I REFPTR	/ESD REFERENCE PTR
003273  4770		JMS I	(MAXCOM	/PUT LARGER OF 2 COMMONS INTO
003274  5601		JMP I PUTSYM	/GST WORDS 5 AND 6
003275  0000	MTMCNT,	0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 46



		/THE FOLOWING TABLE IS USED TO
		/DISPOSITION SYMBOL MATCHES BETWEEN
		/A RALF ESD AND A GST SYMBOL
		/EACH DIGIT IN THE TABLE IS AN INDEX
		/INTO A TABLE THAT IS USED TO CALL
		/ROUTINES TO HANDLE THE VARIOUS TYPES
		/OF MATCHES:
		/	0=FORT COMMON AND FLD1 SECTION
		/	1=ANY MATCH WITH ESD EXTERN
		/	2=ANY MATCH WITH GST EXTERN
		/	3=MULTIPLE ENTRY POINTS
		/	4=2 FORT COMMONS OR 2 FIELD1
		/	    SECTIONS OR 2 COMMZ SECTS
		/	5=MULTIPLE SECTIONS
		/     6-7=UNDEFINED AND HALT
		/
		/THE FIRST 2 WORDS COVER ALL POSSIBLE
		/MATCHES WITH GST TYPE 1, THE SECOND
		/TWO WORDS ARE FOR GST TYPE 2 ETC
		/THE 4 DIGITS IN THE FIRST WORD OF
		/ANY PAIR CORRESPOND TO ESD TYPES
		/11,7,3,1 RESPECTIVELY
		/ESD CORRESPONDENCE FOR THE 2ND WORD
		/IS 12,10,4,2
		/ESD TYPE 12 IS UNDEFINED
			 
003276  5553	MYSTIC,	5553		/G1 E(11,7,3,1)
003277  7551		7551		/E(12,10,4,2)
003300  2222		2222		/G2 E(11,7,3,1)
003301  7221		7221		/E(12,10,4,2)
003302  0545		0545		/G3
003303  7551		7551
003304  5555		5555		/G4
003305  7551		7551
003306  5553		5553		/G5
003307  7551		7551
003310  5555		5555		/G6
003311  7551		7551
003312  5555		5555		/G7
003313  7551		7551
003314  5555		5555		/G10
003315  7451		7451
003316  4505		4505		/G11
003317  7551		7551

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 47




003320  0000	ESDSCN,	0
003321  7346		CLL STA RTL	/-3
003322  1767		TAD I	(0
003323  7640		SZA CLA
003324  5766		JMP I	(NOTREL	/NOT RALF MODULES - NASTY!
003325  1774		TAD I (2	/CHK FOR DP
003326  7710		SPA CLA		/HARDWARE REQUIRED
003327  2040		ISZ DPFLG	/ISZ=YES
003330  7344		AC7776		/ENTER ESD OF MODULE
003331  3042		DCA EPTR	/INTO GST. ESD STARTS AT 10000
003332  4765		JMS I	(NXTESD	/GET NXT 1
003333  5720		JMP I ESDSCN	/NO MORE
003334  1042		TAD EPTR
003335  4201		JMS	PUTSYM	/ENTER IT
003336  5332		JMP .-4		/DO ANOTHER

003337  1525	MSMSG,	TEXT	/MULT SECT/
003340  1424
003341  4023
003342  0503
003343  2400
003344  1726	CORMSG,	TEXT	/OVER CORE/
003345  0522
003346  4003
003347  1722
003350  0500
003351  1726	LIMSG,	TEXT	/OVER IMAG/
003352  0522
003353  4011
003354  1501
003355  0700
003356  1617	MNMSG,	TEXT	/NO MAIN/
003357  4015
003360  0111
003361  1600
003365  1000
003366  2453
003367  0000
003370  4525
003371  0011
003372  7760
003373  3276
003374  0002
003375  7771
003376  0005
003377  3425
	3400		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 48



		/CONTINUATION OF SUB PUTSYM
			 
003400  3041	REP,	DCA GTYP
003401  7346		AC7775		/REPLACE GST
003402  1044		TAD ETYP	/EXTERN
003403  7450		SNA 		/IS IT A REF TO COMMON?
003404  5335		JMP MNSECN	/YES
003405  1236		TAD M4		/IS IT A REF
003406  7700		SMA CLA		/8 MODE SECN ?
003407  5225		JMP NOMAT
003410  1426		TAD I GPTR	/NO CHK FOR
003411  0162		AND [3400	/CROSS LEVEL
003412  7041		CIA		/REFERENCE
003413  3000		DCA TMP0	/COMPARE WITH
003414  1060		TAD LNONUM	/CURNT LEVEL
003415  0162		AND [3400
003416  7450		SNA		/DOING MAIN ?
003417  5225		JMP NOMAT	/YES DONT CHK FOR TRAP ENTRY
003420  1000		TAD TMP0
003421  7650		SNA CLA		/X LEVEL?
003422  5225		JMP NOMAT
003423  2030		ISZ TRPCNT	/YES BUMP TRAP VECTOR COUNTER
003424  7330		AC4000		/SET B0=1, GST SYM WILL GO IN TRAP VECTOR
003425  3041	NOMAT,	DCA GTYP
003426  1044		TAD ETYP	/ENTER GST
003427  1377		TAD (.+3-1	/WORDS 4,5,6.
003430  3000		DCA TMP0	/DISPATCH ESD
003431  5400		JMP I TMP0	/TYPE 1,2,3,4
003432  5276		JMP ENTMN2	/ENTRY POINT
003433  5274		JMP ENTMN	/EXTERN
003434  5335		JMP MNSECN	/COMMON SECN
003435  5243		JMP PRGSCN	/PROGRAM SECN
003436  7774	M4,	-4
003437  7771	M7,	-7
003440  5334		JMP MNS8	/GEN 8 MODE SCT
003441  5332		JMP MNCZ	/COMM 8 MODE
003442  5330		JMP MNF1	/FLD1 8 MODE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 49



003443  1060	PRGSCN,	TAD LNONUM
003444  0162		AND [3400	/IS IT A MAIN
003445  7650		SNA CLA		/?
003446  5335		JMP MNSECN	/YES
003447  1547		TAD I	[OVRSIZ
003450  3000		DCA	TMP0
003451  1546		TAD I	[OVRSIZ+1
003452  3001		DCA	TMP1	/SAVE OLD OVERLAY SIZE
003453  7100		CLL
003454  1443		TAD I	EPT2
003455  1001		TAD	TMP1
003456  3546		DCA I	[OVRSIZ+1
003457  7004		RAL
003460  1442		TAD I	EPTR
003461  1000		TAD	TMP0
003462  3547		DCA I	[OVRSIZ	/SET OVLY SIZE = OVLY SIZE + SECTION SIZE
003463  1000		TAD	TMP0
003464  3442		DCA I	EPTR
003465  1001		TAD	TMP1
003466  3443		DCA I	EPT2	/SET SECTION SIZE = OLD OVERLAY SIZE
003467  1026		TAD GPTR	/PUT ADDR OF
003470  7001		IAC		/GST WD5 OF
003471  3447		DCA I REFPTR	/SECTION SYM INTO ESD REFERENCE PAGE
003472  1160	ENTM2,	TAD [LVPTR	/SET REFERENCE
003473  3047		DCA REFPTR	/TO PARENT SYM =WD5 OF #YLVLN
003474  1060	ENTMN,	TAD LNONUM	/=CURNT OVRLAY AND CURNT LEVEL NUM
003475  5342		JMP MNSEC5

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 50



003476  1060	ENTMN2,	TAD LNONUM	/SEE IF ENTRY
003477  0162		AND [3400	/POINT IS IN
003500  7650		SNA CLA		/MAIN?
003501  5274		JMP ENTMN	/YES
003502  1447		TAD I REFPTR	/IS PARENT
003503  4550		JMS I	[SETBPT	/REFERENCE TO
003504  7240		CLA CMA		/COMMON?
003505  1047		TAD REFPTR	/LOOK FOR
003506  3000		DCA TMP0	/TYPE CODE 3
003507  7346		AC7775
003510  1400		TAD I TMP0
003511  7450		SNA
003512  5274		JMP ENTMN	/YES, HANDLE LIKE A MAIN ENTRY POINT
003513  1236		TAD M4		/IS IT A REF
003514  7650		SNA CLA		/TO AN 8 SECT?
003515  5342		JMP MNSEC5	/YES HANDLE LIKE MAIN
003516  7100		CLL
003517  1446		TAD I	BPT2
003520  1443		TAD I	EPT2
003521  3443		DCA I	EPT2	/SET OVR ENT = OVR ENT + OVR
003522  7004		RAL
003523  1445		TAD I	BPTR
003524  0156		AND	[7	/WATCH HIGH-ORDER BITS
003525  1442		TAD I	EPTR
003526  3442		DCA I	EPTR
003527  5272		JMP ENTM2	/SIZE OF SECTION
003530  2033	MNF1,	ISZ F1FLG	/SET FOR NE TO
003531  5335		JMP MNSECN	/0 SO DO8S WILL
003532  2032	MNCZ,	ISZ CZFLG	/KNOW THESE
003533  5335		JMP MNSECN	/TYPES OF SECTS

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 51



003534  2034	MNS8,	ISZ S8FLG	/EXIST AND WILL FIT THEM INTO CORE
003535  1026	MNSECN,	TAD GPTR	/PUT ADDR OF
003536  7001		IAC		/GST WD5 OF
003537  3447		DCA I REFPTR	/SECTION SYM INTO ESD REFERENCE PAGE
003540  1376		TAD (SYMX+1	/THIS VALUE
003541  3047		DCA REFPTR	/YIELDS 0 IN HI 9 WD 5 OF GST SYM
003542  1044	MNSEC5,	TAD ETYP	/SYM TYPE TO AC8-11. AC MAY HAVE
003543  1041		TAD GTYP	/LEVEL AND OVR BITS (AC1-7) ALREADY SET
003544  3426		DCA I GPTR	/GST WD4 HOLDS SYMBOL TYPE
003545  4551		JMS I	[SETBGX	/SET BPTR TO GST WORD
003546  3000		DCA	TMP0	/PREPARE FOR DIVISION BY 7
003547  1447		TAD I	REFPTR
003550  1375		TAD	(2-SYMTBL	/GET OFFSET FROM SYMTBL
003551  1237		TAD	M7
003552  2000		ISZ	TMP0
003553  7500		SMA
003554  5351		JMP	.-3	/DIVIDE BY REPEATED SUBTRACTION
003555  7240		STA		/AC IS NOT NECESSARILY ZERO!
003556  1000		TAD	TMP0
003557  7106		CLL RTL		/ROTATE SYMBOL NUMBER INTO AC BITS 0-8
003560  7004		RAL
003561  1442		TAD I	EPTR	/AND INSERT IT INTO THE ADDRESS
003562  3445		DCA I	BPTR	/DOUBLEWORD TO FORM THE GST
003563  1443		TAD I	EPT2	/ADDRESS DOUBLEWORD
003564  3446		DCA I	BPT2
003565  5766		JMP I .+1
003566  3200		PUTSYM-1
003575  5340
003576  2153
003577  3431
	3600		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 52



003600  3410	STPAS1,	DCA I	NDX0	/ZERO OUT GST
003601  2317		ISZ	STCNT	/NDX0 SET UP BY PASS0
003602  5200		JMP	STPAS1
003603  4777		JMS I (SETCNT	/SET MOD CNTS
003604  4776		JMS I (RDRLES	/READ A RALF ESD
003605  4775		JMS I (ESDSCN	/PROCESS IT
003606  4774		JMS I (ADVOVR	/UPDATE COUNTS
003607  5204		JMP .-3		/DO NEXT
003610  1316		TAD	LIBRSW
003611  7650		SNA CLA		/LIBRARY SEARCH POSSIBLE?
003612  5773		JMP I	(DOCORE	/NO - SKIP IT
003613  1023		TAD SYMTM3	/TOP OF
003614  3026		DCA GPTR	/GST
003615  1025		TAD RFPTR1	/1ST FREE
003616  3027		DCA LBPTR	/ENTRY IN MODULE TBL THIS IS WHERE LIBR MODULES WILL GO
003617  4772		JMS I (GETEXT	/GET AN
003620  5223		JMP .+3		/EXTERN
003621  4772	LOP4,	JMS I (GETEXT
003622  1355		TAD RESFLG	/=1 IF
003623  3022		DCA IOFLG	/LIBR CAT IS ENTIRELY CORE RES
003624  3331		DCA LBREC	/SET I/O FOR
003625  3353		DCA LSTBLK	/BLK 0 OF LIBRARY
003626  3053		DCA RBLK	/SET REL BLK
003627  3050		DCA RLEN	/AND LENGTH
003630  5243		JMP BY3		/TO 0
003631  1011	NXTENT,	TAD NDX1	/ADV TO
003632  0177		AND [-4		/NXT ENTRY
003633  1371		TAD (2		/BUT GET
003634  3011		DCA NDX1	/LENGTH OF
003635  4770		JMS I (GETLEN	/PREV ONE 1ST
003636  2356		ISZ NUMENT	/MORE IN CORE?
003637  5244		JMP BY3+1		/YES
003640  1022		TAD IOFLG	/END OF
003641  7640		SZA CLA		/CATALOGUE?
003642  5221		JMP LOP4	/YES, NO MATCH ON THIS EXTERN
003643  4320	BY3,	JMS RDLBR	/GET NEXT
003644  1177		TAD [-4		/CAT. BLKS
003645  1026		TAD GPTR	/LOOK FOR
003646  3010		DCA NDX0	/LIBR MATCH
003647  7346		AC7775
003650  3000		DCA TMP0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 53



003651  6201	LBFLD,	CDF 0		/CDF 20 IF GREATER THAN 8K CORE
003652  1411		TAD I NDX1
003653  6211		CDF 10
003654  7040		CMA		/IS IT THE END
003655  7450		SNA		/OF CAT ?
003656  5221		JMP LOP4	/YES
003657  7001		IAC
003660  1410		TAD I NDX0
003661  7640		SZA CLA		/MATCH 1?
003662  5231		JMP NXTENT	/NO TRY NXT LIBR ENTRY
003663  2000		ISZ TMP0	/ALL MATCH?
003664  5251		JMP LBFLD	/NO
003665  4770		JMS I (GETLEN	/UPDATE RBLK,
003666  7240		CLA CMA		/RLEN
003667  1025		TAD RFPTR1	/ENTER MOD
003670  3010		DCA NDX0	/INTO TBL
003671  1767		TAD I (MODTBL	/LIBR UNIT
003672  3410		DCA I NDX0
003673  1050		TAD RLEN	/LENGTH OF
003674  3410		DCA I NDX0	/MODULE
003675  1766		TAD I (MODTBL+2	/STARTING BLOCK OF LIBRARY, +
003676  1053		TAD RBLK	/ RELATIVE BLOCK OF MODULE =
003677  3410		DCA I NDX0	/ ABSOLUTE BLK OF MOD
003700  2061		ISZ LBCNT	/=NUM OF LIBR MOD IN MAIN
003701  1026		TAD GPTR	/SAVE GST
003702  3353		DCA LSTBLK	/PTR
003703  4776		JMS I (RDRLES	/READ IN ESD
003704  3060		DCA LNONUM	/SET FOR MAIN
003705  4775		JMS I (ESDSCN	/PROCESS ESD
003706  1163		TAD [3		/ADV MODULE
003707  1025		TAD RFPTR1	/TBL PTR
003710  3025		DCA RFPTR1
003711  1353		TAD LSTBLK
003712  3026		DCA GPTR
003713  2354		ISZ MLEFT	/MOD TBL FULL?
003714  5221		JMP LOP4	/NO DO SOME MORE
003715  5773		JMP I (DOCORE

003716  0000	LIBRSW,	0		/NON-ZERO IF LIBRARY SEARCH POSSIBLE
003717  5005	STCNT,	SYMTBL-OVLTBL

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 54



003720  0000	RDLBR,	0
003721  1022		TAD IOFLG	/IS THIS
003722  7640		SZA CLA		/THE END
003723  5344		JMP ENDLB	/OF CAT.?
003724  6201		CDF		/NO
003725  4575		JMS I [IOHAN	/READ SOME
003726  6172		MODTBL		/MORE
003727  1200	LBARG,	200^5		/OR 200^17!20
003730  4600		LB0BUF		/OR 0
003731  0000	LBREC,	0		/REL CAT BLK
003732  1331		TAD LBREC	/GET -NUM OF
003733  7041		CIA		/BLKS READ,
003734  1353		TAD LSTBLK	/AND COMPUTE
003735  3000		DCA TMP0	/THE NUM OF
003736  1365		TAD (-100	/ENTRIES IN
003737  2000		ISZ TMP0	/CORE.  THERE
003740  5336		JMP .-2		/ARE 100 PER
003741  3357		DCA OLDCNT	/BLOCK
003742  1331		TAD LBREC	/UPDATE
003743  3353		DCA LSTBLK	/LSTBLK
003744  1357	ENDLB,	TAD OLDCNT
003745  3356		DCA NUMENT
003746  7240		CLA CMA		/SET PTR TO
003747  1330		TAD LBARG+1	/1ST ENTRY
003750  3011		DCA NDX1
003751  6211		CDF 10
003752  5720		JMP I RDLBR
003753  0000	LSTBLK,	0
003754  0000	MLEFT,	0
003755  0001	RESFLG,	1
003756  0000	NUMENT,	0
003757  0000	OLDCNT,	0
003765  7700
003766  6174
003767  6172
003770  4545
003771  0002
003772  4562
003773  4000
003774  1022
003775  3320
003776  2421
003777  1133
	4000		PAGE


/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 55



		/END OF PASS 1 - FIT EVERYTHING INTO CORE

004000  1030	DOCORE,	TAD TRPCNT
004001  7650		SNA CLA
004002  5214		JMP LOP3-3	/NO OVRS
004003  1377		TAD (TRPSYM	/ENTER TRAP
004004  4561		JMS I [LOOK	/VECT. SYM
004005  1176		TAD [4		/ITS A
004006  3426		DCA I GPTR	/MAIN SECN
004007  2026		ISZ GPTR	/GST WD6
004010  2026		ISZ GPTR	/HOLDS LENGTH
004011  1030		TAD TRPCNT	/GET SIZE OF
004012  7106		RTL CLL		/TRAP VECTOR
004013  3426		DCA I GPTR	/= NUMBER OF ENTRIES * 4
004014  4776		JMS I (DO8S	/GO DO ALL 8 MODE SECTIONS
004015  1023		TAD SYMTM3	/ALLOCATE
004016  3026		DCA GPTR	/CORE FOR
004017  4554	LOP3,	JMS I [GETTYP	/ALL MAIN NON 8 MODE
004020  5227		JMP DUNMN	/SECTIONS
004021  7346		AC7775		/4=PROG
004022  1426		TAD I GPTR	/SECN, 3=COMMON
004023  7110		RAR CLL
004024  7650		SNA CLA
004025  4775		JMS I (FIT	/GO FIT SECN
004026  5217		JMP LOP3

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 56



004027  7240	DUNMN,	STA
004030  3417		DCA I	NDX7	/TERMINATE OVERLAY LENGTH LIST
004031  1056		TAD	A1
004032  3774		DCA I	(OVLTBL	/STORE ENTRY FOR LEVEL 0
004033  1057		TAD	A1+1
004034  3773		DCA I	(OVLTBL+1
004035  1057		TAD	A1+1
004036  7100		CLL
004037  1165		TAD	[377
004040  0157		AND	[7400
004041  7430		SZL
004042  2056		ISZ	A1	/(WATCH CARRY!)
004043  3057		DCA	A1+1	/DITTO FOR NON-FIELD 0
004044  7201		CLA IAC		/WILL HOLD
004045  3062		DCA BLKCNT	/SIZE OF LOADER IMAGE
004046  1372		TAD (1460	/RESET INT.
004047  3771		DCA I (LEVSYM+2	/#YLVLN SYM
004050  1370		TAD (QUSRLV-1	/WHERE OVRLAY
004051  3013		DCA NDX3	/DSRN INFO GOES IN LHDR
004052  7201		CLA IAC
004053  3413		DCA I	NDX3	/USER MAIN IS LEVEL 0
004054  1367		TAD	(10
004055  3413		DCA I	NDX3	/SET UP LOADING INFORMATION FOR USER MAIN
004056  7240		STA		/IN THE USRLV TABLE JUST LIKE
004057  1056		TAD	A1	/ANY OTHER OVERLAY LEVEL
004060  7110		CLL RAR
004061  1057		TAD	A1+1	/LENGTH HAS TO BE COMPUTED FROM
004062  7004		RAL		/CORE LENGTH
004063  7006		RTL
004064  7006		RTL
004065  3000		DCA	TMP0
004066  7201		CLA IAC
004067  3413		DCA I	NDX3	/USER MAIN FIRST THING IN LDR IMAGE
004070  1000		TAD	TMP0
004071  3413		DCA I	NDX3
004072  1000		TAD	TMP0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 57



004073  1062	LOP6,	TAD BLKCNT	/UPDATE LENGTH
004074  3062		DCA BLKCNT	/OF LDR IMAGE
004075  2771		ISZ I (LEVSYM+2	/NEXT LEVEL
004076  1366		TAD (LEVSYM	/LOOKUP
004077  2326		ISZ NLVL
004100  4561		JMS I [LOOK	/#YLVLN
004101  5327		JMP	DUNLVL	/DONE ALL OVR LEVELS
004102  4775		JMS I (FIT	/FIT LEVEL
004103  2026		ISZ GPTR	/IN CORE
004104  1413		TAD I	NDX3	/NUMBER OF OVERLAYS ON THIS LEVEL - ALSO
004105  7041		CIA		/SERVES AS AN INDICATOR TO THE RUN-TIME
004106  3000		DCA	TMP0	/SYSTEM THAT THIS LEVEL IS INITIALLY
004107  1426		TAD I	GPTR	/UNINHABITED.
004110  0156		AND	[7	/GET FIELD BITS
004111  7106		CLL RTL
004112  7004		RAL
004113  2026		ISZ	GPTR
004114  1426		TAD I	GPTR	/AND ADDRESS BITS
004115  3413		DCA I	NDX3	/PUT-EM OUT
004116  1062		TAD	BLKCNT	/STARTING BLOCK OF LEVEL
004117  3413		DCA I	NDX3
004120  1065		TAD	BLKSIZ
004121  3413		DCA I	NDX3	/LENGTH OF A SINGLE OVERLAY IN THE LEVEL
004122  1065		TAD BLKSIZ	/(NUM OF OVRS)*
004123  2000		ISZ TMP0	/NUM OF BLKS
004124  5322		JMP .-2		/AC=LENGTH OF LEVEL
004125  5273		JMP LOP6	/DO NEXT LEVEL
004126  0000	NLVL,	0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 58



004127  7200	DUNLVL,	CLA		/AC NOT ZERO!
004130  1023		TAD SYMTM3	/NOW RESOLVE
004131  3026		DCA GPTR	/ALL OTHER SYMBOLS
004132  4554	LP1,	JMS I [GETTYP
004133  5765		JMP I	(ALLDN1	/ALL DONE
004134  4551		JMS I	[SETBGX	/SET BPTR TO GST WD5
004135  1445		TAD I	BPTR
004136  0152		AND	[7770
004137  7450		SNA
004140  5332		JMP	LP1	/NO RELATIVE SYMBOL - DON'T RELOCATE
004141  3042		DCA	EPTR
004142  1042		TAD	EPTR	/FIGURE OUT THE SYMBOL TABLE ADDRESS
004143  7112		CLL RTR		/OF THE RELATIVE SYMBOL BY
004144  7170		STL CMA RAR	/TAKING 7 * THE RELATIVE SYMBOL NUMBER
004145  1042		TAD	EPTR	/IN BITS 0-8 AND ADDING IN THE BASE
004146  1364		TAD	(SYMTBL-1	/ADDRESS OF THE SYMBOL TABLE
004147  4564		JMS I	[SETEPT
004150  1443		TAD I	EPT2
004151  7100		CLL
004152  1446		TAD I	BPT2
004153  3446		DCA I	BPT2
004154  7004		RAL
004155  1445		TAD I	BPTR
004156  0156		AND	[7	/THROW AWAY THE OLD RELATIVE SYMBOL #
004157  1442		TAD I	EPTR
004160  3445		DCA I	BPTR	/AND PERFORM THE RELOCATION
004161  5332		JMP	LP1		/DO AGAIN
004164  2441
004165  4200
004166  2050
004167  0010
004170  7206
004171  2052
004172  1460
004173  5436
004174  5435
004175  4451
004176  4400
004177  2043
	4200		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 59



004200  1056	ALLDN1,	TAD	A1
004201  3777		DCA I	(QHGHAD	/SAVE HIGHEST PROGRAM ADDRESS
004202  1057		TAD	A1+1	/SO THAT RTS WILL KNOW HOW MUCH ROOM
004203  3776		DCA I	(QHGHAD+1 /IT HAS FOR BUFFERS & THINGS
004204  1054		TAD FATAL	/ANY MULTIPLE
004205  7450		SNA		/SECTIONS?
004206  5216		JMP NOMSCT	/NO
004207  3060		DCA	LNONUM
004210  6201		CDF 0
004211  1775		TAD I	(MTMCNT
004212  3074		DCA	MBGCNT	/RESTORE ERROR PARAMETERS
004213  6211		CDF 10
004214  4566		JMS I	[RTNOS8
004215  3337		MSMSG
004216  1374	NOMSCT,	TAD (SASYM	/GET STRT
004217  4561		JMS I [LOOK	/ADDR MAIN
004220  7410		SKP		/NO MAIN
004221  5224		JMP .+3
004222  4566		JMS I	[RTNOS8
004223  3356		MNMSG
004224  1037		TAD SVMAIN	/IF .NE. SET TO
004225  7440		SZA		/POINT TO GST
004226  1026		TAD GPTR	/FOR PND MAIN
004227  3037		DCA SVMAIN	/FOR /S THINGS IN SYMMAP RT.
004230  6201		CDF 0
004231  1773		TAD I	(JOUSYM
004232  3772		DCA I	(PRMAIN	/ENABLING PRINTING OF #MAIN ON ERRORS
004233  6211		CDF 10
004234  2026		ISZ GPTR
004235  1426		TAD I GPTR	/MAKE SWAPPER CONTROL WORD
004236  3771		DCA I (QRTSWP	/LEVEL 0, OVERLAY 0 IS MAIN
004237  2026		ISZ GPTR
004240  1426		TAD I GPTR	/12 BIT ADDR
004241  3770		DCA I (QRTSWP+1
004242  1040		TAD DPFLG	/N.E. MEANS LDR IMAGE NEEDS DP HRDWRE
004243  3767		DCA I (QDPFLG	/RETAIN INFO IN LHDR FOR PASS3

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 60



004244  6201		CDF 0		/FETCH LDR
004245  1766		TAD I	(LDRNAM	/IMAGE
004246  4575		JMS I [IOHAN	/HANDLER
004247  1062		TAD	BLKCNT
004250  7106		CLL RTL		/SINCE WE KNOW THE LENGTH OF THE
004251  7530		SZL SPA		/LDR IMAGE FILE, TELL IT TO THE USR
004252  7200		CLA		/(UNLESS ITS >255)
004253  7006		RTL
004254  7430		SZL
004255  7200		CLA
004256  1766		TAD I	(LDRNAM	/OPEN LDR
004257  6212		CIF 10		/IMAGE
004260  4420		JMS I USR
004261  0003		3
004262  0502	LDRBLK,	LDRNAM+1
004263  0000	LDRLEN,	0
004264  5765		JMP I	(ENTERR
004265  1062		TAD BLKCNT	/SEE IF LDR
004266  7120		STL		/IMAGE WILL
004267  1263		TAD LDRLEN	/FIT ON
004270  7670		SZL SNA CLA	/TENTATIVE FILE
004271  5274		JMP .+3		/IT FITS
004272  4566		JMS I	[RTNOS8	/OUTPUT FILE
004273  3351		LIMSG		/TOO SMALL
004274  1062		TAD BLKCNT	/CLOSE LDR
004275  3764		DCA I	(LDCLEN	/IMAGE FILE
004276  1363		TAD	(LIMGU-1	/PASS2
004277  3010		DCA NDX0
004300  1766		TAD I	(LDRNAM
004301  6211		CDF 10
004302  0170		AND [17
004303  3410		DCA I NDX0	/UNIT
004304  1062		TAD BLKCNT
004305  3410		DCA I NDX0	/LENGTH
004306  1262		TAD LDRBLK
004307  3410		DCA I NDX0	/STRT BLK
004310  6201		CDF 0
004311  4575		JMS I	[IOHAN
004312  2144		LIMGU		/WRITE OUT LOADER IMAGE HEADER BLOCK
004313  4210		4210
004314  7200		LHDR
004315  0000		0		/IN RELATIVE BLOCK 0 OF LOADER IMAGE FILE
004316  6211		CDF 10

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 61



		/SET UP TABLE THAT RELATES
		/BINARY SECTINS TO LDR
		/IMAGE RELATIVE BLOCK NUMS.
		/1 DBL WD AND 2 SINGLE-WD ARGUMENTS PER
		/SECTION (15 BIT ADDR, RELATIVE
		/BLOCK, AND LENGTH).  THERE ARE
		/8 SECTIONS
		/(MAIN, LEVL1,....,LEVL7)
		/TABLE STARTS AT LHDR AND
		/IS USED BY SUBR NEWORG
			 
004317  1362		TAD (LHDR-1
004320  3011		DCA NDX1
004321  1361		TAD (QUSRLV	/NOW DO THE
004322  3010		DCA NDX0	/8 LEVELS
004323  1152		TAD [-10
004324  3000		DCA TMP0
004325  1410	SETSLP,	TAD I	NDX0
004326  3066		DCA	BSECTP
004327  1066		TAD	BSECTP
004330  7112		CLL RTR
004331  7010		RAR
004332  0156		AND	[7
004333  3411		DCA I	NDX1	/FIRST COMES 15-BIT ADDRESS
004334  1066		TAD	BSECTP
004335  0157		AND	[7400
004336  3411		DCA I	NDX1
004337  1410		TAD I	NDX0
004340  3411		DCA I	NDX1	/THEN RELATIVE BLOCK NUMBER
004341  1410		TAD I	NDX0
004342  3411		DCA I	NDX1	/THEN LENGTH
004343  2010		ISZ	NDX0	/SKIP OVER NEXT OVERLAY COUNT
004344  2000		ISZ	TMP0
004345  5325		JMP	SETSLP
004346  1360		TAD (LHDR	/PTR TO TOP
004347  3066		DCA BSECTP	/OF TABLE
004350  7240		CLA CMA		/SET FLG
004351  3031		DCA P2FLG	/FOR SUBR ADVOVR
004352  5753		JMP I .+1
004353  2000		PASS2
004360  7200
004361  7207
004362  7177
004363  2143
004364  2046
004365  1553
004366  0501
004367  7206
004370  7202
004371  7201
004372  1466
004373  1526
004374  2062

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 61-1

004375  3275
004376  7204
004377  7203
	4400		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 62



004400  0000	DO8S,	0		/DO 8 SECTIONS
004401  1032		TAD CZFLG	/ANY 8 MODE
004402  7640		SZA CLA		/COMMONS ?
004403  4221		JMS	FIT8S	/GO FIT IT
004404  1033		TAD F1FLG	/ANY 8 MODE
004405  7650		SNA CLA		/FIELD 1 ?
004406  5211		JMP .+3		/NO
004407  7240		STA
004410  4221		JMS	FIT8S
004411  1034		TAD S8FLG	/ANY GEN 8 MODE
004412  7650		SNA CLA		/SECTIONS ?
004413  5600		JMP I DO8S	/NO ALL DONE
004414  1152		TAD [7770	/THIS WILL
004415  3035		DCA OVRFLO	/INHIBIT FLD1 OVER FLOW ERR
004416  7201		CLA IAC
004417  4221		JMS	FIT8S
004420  5600		JMP I DO8S
			 
		/FIT 8 MODE SECTIONS
			 
004421  0000	FIT8S,	0
004422  1152		TAD	[7770
004423  3250		DCA STYPE	/-8M0DE SECT TYPE (7-11)
004424  1023		TAD SYMTM3	/SEARCH GST FOR
004425  3026		DCA GPTR	/8 MODE SECTNS
004426  4554	F8SECT,	JMS I [GETTYP
004427  5621		JMP I FIT8S	/ALL DONE
004430  1250		TAD STYPE
004431  1426		TAD I GPTR
004432  7640		SZA CLA		/8 SECTION ?
004433  5226		JMP F8SECT	/NO
004434  4551		JMS I	[SETBGX
004435  1446		TAD I	BPT2
004436  1377		TAD	(177	/ROUND SECTION LENGTH
004437  0376		AND	(7600	/TO A PAGE BOUNDARY
004440  3446		DCA I	BPT2
004441  4775		JMS I (FIT	/NOW FIT IT
004442  1035		TAD OVRFLO	/SEE IF FLD1
004443  1056		TAD A1		/IS OVR FLOWED ****
004444  7750		SPA SNA CLA	/?
004445  5226		JMP F8SECT	/DO ANOTHER
004446  4566	TOOBIG,	JMS I	[RTNOS8
004447  3344		CORMSG		/PRINT ERROR & GO AWAY
004450  0000	STYPE,	0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 63



004451  0000	FIT,	0		/FIT SECTION
004452  4551		JMS I	[SETBGX	/SET BPTR TO POINT TO GST WD5
004453  1446		TAD I	BPT2
004454  0157		AND	[7400
004455  7104		CLL RAL
004456  1445		TAD I	BPTR
004457  7006		RTL
004460  7006		RTL		/GET LENGTH OF SEGMENT IN BLOCKS
004461  3065		DCA	BLKSIZ
004462  1446		TAD I	BPT2
004463  7100		CLL
004464  1057		TAD	A1+1
004465  3076		DCA	TMP5
004466  1057		TAD	A1+1
004467  3446		DCA I	BPT2
004470  1076		TAD	TMP5
004471  3057		DCA	A1+1	/SET BPTR = A1
004472  7004		RAL		/WHILE SETTING A1 = A1 + BPTR
004473  1445		TAD I	BPTR
004474  1056		TAD	A1
004475  3076		DCA	TMP5
004476  1076		TAD	TMP5
004477  0152		AND	[7770
004500  7640		SZA CLA		/IF NEW ADDRESS IS > 77777,
004501  5246		JMP	TOOBIG	/THE THING WILL NEVER FIT
004502  1056		TAD	A1
004503  3445		DCA I	BPTR
004504  1076		TAD	TMP5
004505  3056		DCA	A1
004506  5651		JMP I	FIT	/RETURN

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 64



004507  0000	LEVLUP,	0		/LEVEL = MAX (LEVEL, OVRSIZ); OVRSIZ=0
004510  1547		TAD I	[OVRSIZ
004511  1060		TAD	LNONUM
004512  3417		DCA I	NDX7	/RECORD THE SIZE OF THIS OVERLAY
004513  1546		TAD I	[OVRSIZ+1	/FOR THE SYMBOL MAP PRINTOUT
004514  3417		DCA I	NDX7
004515  1147		TAD	[OVRSIZ
004516  4564		JMS I	[SETEPT
004517  1560		TAD I	[LVPTR
004520  4550		JMS I	[SETBPT
004521  4325		JMS	MAXCOM
004522  3443		DCA I	EPT2
004523  3442		DCA I	EPTR
004524  5707		JMP I	LEVLUP
			 
004525  0000	MAXCOM,	0		/BPTR = MAX (EPTR, BPTR)
004526  1442		TAD I	EPTR
004527  7141		CIA CLL
004530  1445		TAD I	BPTR
004531  7640		SZA CLA		/CHECK HIGH-ORDER WORDS FIRST
004532  5336		JMP	.+4	/THEY DIFFER
004533  1443		TAD I	EPT2
004534  7141		CIA CLL
004535  1446		TAD I	BPT2	/USE LOW ORDER WORDS IF HIGH ORDERS ARE =
004536  7630		SZL CLA		/IS EPTR > BPTR?
004537  5725		JMP I	MAXCOM	/NO - EXIT
004540  1442		TAD I	EPTR
004541  3445		DCA I	BPTR
004542  1443		TAD I	EPT2
004543  3446		DCA I	BPT2	/YES - BPTR=EPTR
004544  5725		JMP I	MAXCOM

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 65



004545  0000	GETLEN,	0
004546  6201		CDF 0		/OR CDF 20
004547  1411		TAD I NDX1	/LEN OF ENTRY
004550  6211		CDF 10
004551  7450		SNA		/=0 MEANS LENGTH HAS ALREADY
004552  5745		JMP I GETLEN	/BEEN COMPUTED.  NE 0 MEANS
004553  3000		DCA TMP0	/ENTRY POINT IS THE 1ST IN A NEW MODULE
004554  1050		TAD RLEN	/UPDATE REL
004555  1053		TAD RBLK	/BLOCK AND
004556  3053		DCA RBLK	/LENGTH OF
004557  1000		TAD TMP0	/NEW MODULE
004560  3050		DCA RLEN
004561  5745		JMP I GETLEN

004562  0000	GETEXT,	0		/LOOK FOR GST
004563  4554		JMS I	[GETTYP	/EXTERN
004564  5774		JMP I (DOCORE	/END OF GST
004565  1426		TAD I GPTR	/TYPE WD TO AC
004566  0170		AND [17		/B8-B11
004567  7112		RTR CLL		/2=EXTERN
004570  7640		SZA CLA		/GOT ONE?
004571  5363		JMP .-6		/NO, RETRY
004572  5762		JMP I GETEXT
004574  4000
004575  4451
004576  7600
004577  0177
	4600		PAGE

	4600	LB0BUF=	.

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 66



		/START OF PROGRAM
			 
004600  2213	START,	ISZ	XSTRT	/IF CHAINED TO
004601  6211		CDF 10
004602  1777		TAD I	(7644
004603  0376		AND	(40	/WAS /S SET FIRST TIME ?
004604  7640		SZA CLA
004605  3037		DCA	SVMAIN	/YES, DON'T FORGET SYSTEM-SYMBOLS
004606  7344		CLL STA RAL
004607  0775		AND I	(7643	/AND OUT THE /L SWITCH
004610  3775		DCA I	(7643
004611  6212		CIF 10
004612  5613		JMP I .+1
004613  2443	XSTRT,	PASS0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 67



		/THIS SUBROUTINE SHOULD RESIDE IN THE
		/FIELD 0 I/O BUFFER SINCE IT
		/EXECUTES ONLY ONCE
		/SUBROUTINE TO DETERMINE CORE SIZE
		/
		/THIS WORKS ON ANY PDP-8 FAMILY COMPUTER.
		/THE VALUE,FROM 1 TO 10(OCTAL) OF THE 1ST NON-EXISTENT
		/MEMORY FLD IS RETURNED IN THE AC.
		/
		/NOTE--THIS ROUTN MUST BE PLACED IN FLD 0
		/
004614  0000	CORE,	0
004615  1374		TAD	(6203
004616  6214		RDF
004617  3262		DCA	CORTN
004620  6201		CDF 0
004621  1773		TAD I	(7777
004622  0245		AND	COR70
004623  7450		SNA
004624  5230		JMP	CORELP
004625  7112		CLL RTR
004626  7010		RAR
004627  5262		JMP	CORTN
004630  6201	CORELP,	CDF 0		/NEEDED FOR PDP-8L
004631  1266		TAD TRYFLD	/GET FLD TO TST
004632  7106		CLL RTL
004633  7004		RAL
004634  0245		AND	COR70	/MASK USEFUL BITS
004635  1230		TAD	CORELP
004636  3237		DCA	.+1	/SET UP CDF TO FLD
004637  0000		0
004640  1664		TAD I	CORLOC	/SAV CURRENT CONTENTS
004641  7000		NOP		/HACK FOR PDP-8
004642  3237		DCA	.-3
004643  1241		TAD	.-2	/7000 IS A GOOD PATTERN
004644  3664		DCA I	CORLOC
004645  0070	COR70,	70		/HACK FOR PDP-8.,NO-OP
004646  1664		TAD I	CORLOC	/TRY TO READ BK 7000
004647  7400		7400		/HACK FOR PDP-8,.NO-OP
004650  1247		TAD	.-1	/GUARD AGAINST WRAP AROUND
004651  1265		TAD	CORLOC+1	/TAD 1400
004652  7640		SZA CLA
004653  5260		JMP	.+5	/NON EXISTENT FLD EXIT
004654  1237		TAD	COR70-6	/RESTORE CONTENS DESTROYED
004655  3664		DCA I	CORLOC
004656  2266		ISZ	TRYFLD /TRY NXT HIGHER FLD
004657  5230		JMP	CORELP
004660  1266		TAD	TRYFLD
004661  1373		TAD	(-1
004662  0000	CORTN,	0
004663  5614		JMP I	CORE
004664  4647	CORLOC,	COR70+2		/ADR TO TST IN EACH FLD
004665  1400		1400		/7000+7400+1400=0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 67-1

004666  0001	TRYFLD,	1		/CURRENT FLD TO TST
004773  7777
004774  6203
004775  7643
004776  0040
004777  7644
	5000		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 68



	6600		*6600
006600  0000	DATCHG, 0			/FIND THE MONTH/YEAR
006601  7112		CLL RTR			/THIS CODE FINDS THE MONTH
006602  7010		RAR			/BY CALCULATING THE ADDRESS
006603  0377		AND	(777		/OF THE CORRECT MONTH 
006604  7112		CLL RTR			/IN THE TABLE OF MONTHS
006605  7012		RTR
006606  0376		AND	(36
006607  1375		TAD	(MONTHS-3	/HAVE THE ADDRESS OF MONTH-1
006610  3012		DCA	NDX2		/SAVE IT IN FIELD 0, PAGE 0
006611  6201		CDF 0			/CHANGE DATA FIELD TO 0
006612  1412		TAD I	NDX2		/GET FIRST 2 CHARS. OF MONTH
006613  6211		CDF 10			/CHANGE DATA FIELD TO 1
006614  3774		DCA I	(LDATE+2	/INSERT INTO THE TEXT LINE
006615  6201		CDF 0			/CHANGE DATA FIELD TO 0
006616  1412		TAD I	NDX2		/GET LAST 2 CHARS. OF MONTH
006617  6211		CDF 10			/CHANGE DATA FIELD TO 1
006620  3773		DCA I	(LDATE+3	/INSERT INTO THE TEXT LINE
006621  1772		TAD I	(OSDATE		/GET THE DATE--FIND THE YEAR
006622  0371		AND	(7		/GET THE YEAR OFFSET BITS
006623  3770		DCA I	(YRTEMP		/STORE THEM AWAY
006624  6201		CDF 0			/CHANGE DATA FIELD TO 0
006625  1767		TAD I	(7777		/GET THE DATE EXTENSION BITS
006626  6211		CDF 10			/CHANGE DATA FIELD TO 1
006627  0366		AND	(1600		/MASK TO GET BITS 3 AND 4
006630  7112		CLL RTR			/ROTATE TO GET THEM INTO
006631  7012		RTR			/BIT POSITIONS 7 AND 8
			/TAD	(106		/GET THE NEW BASE YEAR
006632  1770		TAD I	(YRTEMP		/ADD THE YEAR OFFSET BITS
006633  6212		CIF 10			/CHANGE THE DATA FIELD TO 1
006634  1365		TAD	(-36		/70-100
006635  7510		SPA
006636  1364		TAD	(144		/100
006637  5600		JMP I	DATCHG		/HAVE THE YEAR

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 69



006640  0000	GETDAT, 0
006641  1770		TAD I	(YRTEMP		/GET THE YEAR
006642  0363		AND	(7700		/MASK AND ROTATE
006643  7112		CLL RTR			/TO GET THE FIRST
006644  7012		RTR			/DIGIT (IN SIXBIT)
006645  7012		RTR
006646  1362		TAD	(5500		/STICK A HYPHEN IN FRONT
006647  3761		DCA I	(LDATE+4	/PUT IN THE TEXT LINE
006650  1770		TAD I	(YRTEMP		/GET THE YEAR AGAIN
006651  0360		AND	(77		/MASK AND ROTATE TO
006652  7106		CLL RTL			/GET THE SECOND DIGIT
006653  7006		RTL			/(IN SIXBIT)
006654  7006		RTL
006655  1357		TAD	(40		/STICK A SPACE AFTER IT
006656  6212		CIF 10			/CHANGE INSTRUCTION FIELD TO 1
006657  5640		JMP I	GETDAT

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 70



006660  5512	MONTHS, 5512;0116		/-JAN
006661  0116
006662  5506		5506;0502		/-FEB
006663  0502
006664  5515		5515;0122		/-MAR
006665  0122
006666  5501		5501;2022		/-APR
006667  2022
006670  5515		5515;0131		/-MAY
006671  0131
006672  5512		5512;2516		/-JUN
006673  2516
006674  5512		5512;2514		/-JUL
006675  2514
006676  5501		5501;2507		/-AUG
006677  2507
006700  5523		5523;0520		/-SEP
006701  0520
006702  5517		5517;0324		/-OCT
006703  0324
006704  5516		5516;1726		/-NOV
006705  1726
006706  5504		5504;0503		/-DEC
006707  0503
006757  0040
006760  0077
006761  2101
006762  5500
006763  7700
006764  0144
006765  7742
006766  1600
006767  7777
006770  2544
006771  0007
006772  7666
006773  2100
006774  2077
006775  6655
006776  0036
006777  0777
	7000		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 71



000146  2150
000147  2147
000150  0252
000151  0245
000152  7770
000153  2704
000154  1324
000155  1744
000156  0007
000157  7400
000160  2151
000161  1200
000162  3400
000163  0003
000164  1316
000165  0377
000166  0446
000167  0527
000170  0017
000171  7605
000172  0400
000173  0240
000174  0077
000175  0600
000176  0004
000177  7774
	0001		FIELD 1
		/PAGE 0 FLD1 TAGS FOR PASS0
		/(PASS 0 LIVES WITH THE USR RESIDENT)

	0020	NMCTS=	20
	0021	MODCNT=	21
	0022	LVLCNT=	22
	0023	OVRCNT=	23
	0024	PTRULS=	24
	0025	MXFLD=	25

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 72



	2000		*2000
		 
		/START OF GLOBAL SYMBOL TABLE
		/BUCKET COMES FIRST, INTERNAL
		/SYMBOLS AND FIELD 1 CONSTANTS ARE
		/HERE ALSO.  GST RUNS FROM
		/SYMTBL TO OVLTBL-1
		 
012000  2154	BUCKET,	AAAAAA;0;0;0;EEEEEE;0	/A,B,C,D,E,F
012001  0000
012002  0000
012003  0000
012004  2163
012005  0000
012006  0000		0;0;0;0;0;0	/G-L
012007  0000
012010  0000
012011  0000
012012  0000
012013  0000
012014  0000		0;0;0;0;0;0	/M-R
012015  0000
012016  0000
012017  0000
012020  0000
012021  0000
012022  0000		0;0;0;0;0;0	/S-X
012023  0000
012024  0000
012025  0000
012026  0000
012027  0000
012030  0000		0;0		/Y,Z
012031  0000
012032  0000		0;0;0;0;0	/UNUSED BUCKETS MUST BE 0
012033  0000
012034  0000
012035  0000
012036  0000
012037  0000		0		/SPACE (FOR BLANK COMMON)
012040  0000		0;0
012041  0000
012042  2172		POUND		/POUND SIGN FOR INTERNAL SYMBOLS, ALL ARE OF THE FORM (POUND	 XXXXX)

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 73



012043  4331	TRPSYM,	TEXT	'#YTRAP'
012044  2422
012045  0120
012046  0000
012047  0000		0	/TRAP VECTOR
012050  4331	LEVSYM,	TEXT	'#YLVL0'
012051  1426
012052  1460
012053  0000
012054  0000		0	/OVERLAY LEVEL
012055  4323	SWPSYM,	TEXT	'#SWAP'
012056  2701
012057  2000
012060  0000		0;0
012061  0000
012062  4315	SASYM,	TEXT	'#MAIN'
012063  0111
012064  1600
012065  0000		0;0	/STARTING ADDRESS
012066  0000

		/TITLE LINE FOR LOADER MAP
			 
012067  1417	TLINE,	TEXT	'LOADER V'
012070  0104
012071  0522
012072  4026
012073  0000
	2073		*.-1
012073  6560	LXX,	VERNUM&70^7+VERNUM+6060	/VERNUM IN SIXBIT
012074  0240		PATCH&77^100+40	/PATCH LEVEL
012075  4040	LDATE,  TEXT    '  NO-DA -TE '
012076  1617
012077  5504
012100  0140
012101  5524
012102  0540
012103  0000
012104  2331	STLINE,	TEXT	'SYMBOL VALUE LVL OVLY'
012105  1502
012106  1714
012107  4026
012110  0114
012111  2505
012112  4014
012113  2614
012114  4017
012115  2614
012116  3100
012117  7540	HLINE,	TEXT	'= 1ST FREE LOCATION'
012120  6123
012121  2440
012122  0622

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 73-1

012123  0505
012124  4014
012125  1703
012126  0124
012127  1117
012130  1600
012131  1426	OTLINE,	TEXT	'LVL OVLY LENGTH'
012132  1440
012133  1726
012134  1431
012135  4014
012136  0516
012137  0724
012140  1000
012141  0000	SMAPU,	ZBLOCK	3	/SYMMAP UNIT, LENGTH, ST BLK #
012144  0000	LIMGU,	ZBLOCK	3	/LDR IMG "
012147  0000	OVRSIZ,	0;0
012150  0000
012151  2147	LVPTR,	OVRSIZ
012152  0001	SYMX,	1;SYMTBL-2
012153  2440

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 74



		/SYSTEM SYMBOL TABLE

012154  0000	AAAAAA,	0
012155  0122		TEXT	/ARGERR/
012156  0705
012157  2222
012160  0000
	2160		*.-1
012160  0001		1;0
012161  0000
012162  0204		JARGER

012163  0000	EEEEEE,	0
012164  0530		TEXT	/EXIT/
012165  1124
012166  0000
012167  0001		1;0
012170  0000
012171  0223		JEXIT

012172  2201	POUND,	.+7
012173  4301		TEXT	/#ARGER/
012174  2207
012175  0522
012176  0000
	2176		*.-1
012176  0001		1;0
012177  0000
012200  0204		JARGER
012201  2210		.+7
012202  4302		TEXT	/#BAK/
012203  0113
012204  0000
012205  0001		1;0
012206  0000
012207  0210		JBAK
012210  2217		.+7
012211  4304		TEXT	/#DATE/
012212  0124
012213  0500
012214  0001		1;0
012215  0000
012216  0203		JDATE
012217  2226		.+7
012220  4304		TEXT	/#DEF/
012221  0506
012222  0000
012223  0001		1;0
012224  0000
012225  0213		JDEF
012226  2235		.+7
012227  4304		TEXT	/#DISMS/
012230  1123

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 74-1

012231  1523
012232  0000
	2232		*.-1
012232  0001		1;0
012233  0000
012234  0412		JDISMS
012235  2244		.+7
012236  4305		TEXT	/#ENDF/
012237  1604
012240  0600
012241  0001		1;0
012242  0000
012243  0211		JENDF
012244  2253		.+7
012245  4305		TEXT	/#EOFSW/
012246  1706
012247  2327
012250  0000
	2250		*.-1
012250  0001		1;0
012251  0000
012252  0016		JEOFSW
012253  2262		.+7
012254  4305		TEXT	/#EXIT/
012255  3011
012256  2400
012257  0001		1;0
012260  0000
012261  0223		JEXIT
012262  2271		.+7
012263  4310		TEXT	/#HANG/
012264  0116
012265  0700
012266  0001		1;0
012267  0000
012270  0524		JHANG
012271  2300		.+7
012272  4311		TEXT	/#IDLE/
012273  0414
012274  0500
012275  0001		1;0
012276  0000
012277  0227		JIDLE
012300  2307		.+7
012301  4311		TEXT	/#INT/
012302  1624
012303  0000
012304  0001		1;0
012305  0000
012306  0403		JINT
012307  2316		.+7
012310  4322		TEXT	/#RDAO/
012311  0401
012312  1700
012313  0001		1;0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 74-2

012314  0000
012315  0217		JRDAO
012316  2325		.+7
012317  4322		TEXT	/#READO/
012320  0501
012321  0417
012322  0000
	2322		*.-1
012322  0001		1;0
012323  0000
012324  0221		JREADO
012325  2334		.+7
012326  4322		TEXT	/#RENDO/
012327  0516
012330  0417
012331  0000
	2331		*.-1
012331  0001		1;0
012332  0000
012333  0206		JRENDO
012334  2343		.+7
012335  4322		TEXT	/#RETRN/
012336  0524
012337  2216
012340  0000
	2340		*.-1
012340  0001		1;0
012341  0000
012342  0235		JRETRN
012343  2352		.+7
012344  4322		TEXT	/#REW/
012345  0527
012346  0000
012347  0001		1;0
012350  0000
012351  0212		JREW
012352  2361		.+7
012353  4322		TEXT	/#RSVO/
012354  2326
012355  1700
012356  0001		1;0
012357  0000
012360  0207		JRSVO
012361  2370		.+7
012362  4322		TEXT	/#RUO/
012363  2517
012364  0000
012365  0001		1;0
012366  0000
012367  0215		JRUO
012370  2377		.+7
012371  4323		TEXT	/#SWAP/
012372  2701
012373  2000
012374  0001		1;0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 74-3

012375  0000
012376  0222		JSWAP
012377  2406		.+7
012400  4324		TEXT	/#T812/
012401  7061
012402  6200
012403  0001		1;0
012404  0000
012405  0225		JT812
012406  2415		.+7
012407  4325		TEXT	/#UE/
012410  0500
012411  0000		0
012412  0001		1;0
012413  0000
012414  0204		JUERR
012415  2424		.+7
012416  4327		TEXT	/#WDAO/
012417  0401
012420  1700
012421  0001		1;0
012422  0000
012423  0216		JWDAO
012424  2433		.+7
012425  4327		TEXT	/#WRITO/
012426  2211
012427  2417
012430  0000
	2430		*.-1
012430  0001		1;0
012431  0000
012432  0220		JWRITO
012433  0000		0		/LAST ONE
012434  4327		TEXT	/#WUO/
012435  2517
012436  0000
012437  0001		1;0
012440  0000
012441  0214		JWUO
012442  0000	SYMTBL,	0		/START OF GST

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 75



		/PASS0- THIS IS THE BEGINNING OF PASS0

012443  5247	PASS0,	JMP	.+4	/NORMAL ENTRY PT
012444  3322		DCA	CDSW	/CHAINED TO ENTRY PT - NO DECODE 1ST TIME
012445  1377		TAD	(7616
012446  3016		DCA	PTRIO
012447  1376		TAD	(-10
012450  3022		DCA	LVLCNT	/SET LEVEL AND OVERLAY COUNTERS
012451  3023		DCA	OVRCNT
012452  6202		CIF 0
012453  4775		JMS I	(CORE	/DETERMINE CORE SIZE
012454  3025		DCA	MXFLD
012455  4774		JMS I	(CORMOV
012456  6201		CDF 0
012457  7777		0-1
012460  6201		CDF 0
012461  4577		LB0BUF-1	/MOVE LOWER FIELD 0 TO A SAFE PLACE
012462  6000		-2000
012463  6201		CDF 0
012464  1773		TAD I	(OSJSWD	/GET JOB STATUS WORD
012465  0372		AND	(376	/CLEAR DESIRED FLAGS
012466  1371		TAD	(3403	/SET NO RESTART, USR AND CD AREAS CLEAR
012467  3773		DCA I	(OSJSWD	/AS WELL AS BATCH FLAG
012470  6211		CDF 10
012471  1770		TAD I	(OSDATE
012472  7450		SNA
012473  5311		JMP	NODATE
012474  7112		CLL RTR			/ROTATE AND MASK TO GET THE DAY
012475  7010		RAR
012476  0367		AND	(37
012477  4324		JMS	MAKSXB		/CONVERT TO SIXBIT
012500  3766		DCA I	(LDATE+1	/PUT THE DAY INTO THE TEXT LINE
012501  1770		TAD I	(OSDATE		/GET THE DATE---FIND MONTH
012502  6202		CIF 0			/CHANGE DATA FIELD TO 0
012503  4765		JMS I	(DATCHG		/FIND THE MONTH/YEAR
012504  4324		JMS	MAKSXB		/CONVERT THE YEAR TO SIXBIT
012505  3344		DCA	YRTEMP		/STORE IT AWAY
012506  6202		CIF 0			/CHANGE INSTRUC. FIELD TO 0
012507  4764		JMS I	(GETDAT		/PRINT THE YEAR
012510  3763		DCA I	(LDATE+5	/PUT REST OF YEAR IN TEXT LINE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 76



		/SET UP OTHER POINTERS TO MODULE TABLES

012511  1362	NODATE,	TAD	(-NUMMOD
012512  3761		DCA I	(MCTTBL
012513  1360		TAD	(MCTTBL+1
012514  3020		DCA	NMCTS	/INITIALIZE MODULE CT TBL PTR
012515  1357		TAD	(MODTBL+2
012516  3024		DCA	PTRULS	/INITIALIZE MODULE TBL PTR
012517  3021		DCA	MODCNT
012520  3756		DCA I	(MODTBL	/CLEAR LIBRARY UNIT
012521  3420		DCA I	NMCTS	/CLEAR FOR 1ST LEVEL MODULE COUNTS
012522  5755	CDSW,	JMP I	(RALFLP	/ZEROED IF CHAINED TO
012523  5754		JMP I	(DECO

012524  0000	MAKSXB,	0
012525  3000		DCA	TMP0
012526  3001		DCA	TMP1
012527  1000		TAD	TMP0
012530  1353		TAD	(-12
012531  2001		ISZ	TMP1
012532  7500		SMA
012533  5330		JMP	.-3	/SUBTRACT 10 IN A LOOP
012534  1352		TAD	(5772	/AS GOOD A NUMBER AS ANY
012535  3000		DCA	TMP0
012536  1001		TAD	TMP1
012537  7106		CLL RTL
012540  7006		RTL
012541  7006		RTL	/GET THE TENS DIGIT INTO POSITION
012542  1000		TAD	TMP0
012543  5724		JMP I	MAKSXB
012544  0000	YRTEMP, 0
012552  5772
012553  7766
012554  2612
012555  2600
012556  6172
012557  6174
012560  6001
012561  6000
012562  7524
012563  2102
012564  6640
012565  6600
012566  2076
012567  0037
012570  7666
012571  3403
012572  0376
012573  7746
012574  3600
012575  4614
012576  7770
012577  7616

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 76-1

	2600		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 77



		/DECODE COMMAND DECODER INPUT

012600  4777	RALFLP,	JMS I	(200
012601  0005		5		/COMMAND DECODE
012602  2214		2214		/.RL DEFAULT EXTENSION
012603  1376		TAD	(7616
012604  3016		DCA	PTRIO
012605  1775		TAD I	(OS8SWS+1
012606  0374		AND	(40
012607  6201		CDF 0
012610  7640		SZA CLA		/IS /S SWITCH ON?
012611  3773		DCA I	(SVMAIN+LB0BUF	/CLEAR (RELOCATED) SVMAIN
012612  6211	DECO,	CDF 10		/FOR FULL SYMBOL MAP LISTING
012613  1772		TAD I	(7600	/CHK FOR LOADER IMAGE FILE
012614  7450		SNA		/OUTPUT FILE?
012615  5241		JMP	SM	/NO
012616  0371		AND 	(0017	/MUST BE AN "MS" DEV
012617  1370		TAD	(OS8DCB-1
012620  3000		DCA	TMP0
012621  1400		TAD I	TMP0
012622  7710		SPA CLA		/IS IT?
012623  5227		JMP	.+4	/YES
012624  1367	SM1,	TAD	(DEVERR	/NO,ERR
012625  4766		JMS I	(ERORR
012626  5200		JMP	RALFLP
012627  1661		TAD I	P7604
012630  7450		SNA
012631  1365		TAD	(1404	/.LD
012632  3661		DCA I	P7604	/INTO EXTENSION IF NONE SPECIFIED
012633  4764		JMS I	(CORMOV	/MOVE LOADER IMAGE FILE NAME
012634  6211		CDF 10
012635  7577		7600-1
012636  6201		CDF 0		/INTO FIELD 0
012637  5300		LDRNAM+LB0BUF-1
012640  7773		-5
012641  1763	SM,	TAD I	(7605	/CHK FOR SYM MAP FILE
012642  7450		SNA
012643  5265		JMP	SM2	/NONE
012644  0371		AND	(17
012645  1370		TAD	(OS8DCB-1
012646  3000		DCA	TMP0
012647  1400		TAD I	TMP0
012650  7004		RAL		/LOOK AT "READ ONLY" BIT IN DCB
012651  7710		SPA CLA
012652  5224		JMP	SM1	/ERROR - NO GOOD FOR OUTPUT
012653  1762		TAD I	(7611
012654  7450		SNA
012655  1361		TAD	(1423	/.LS DEFAULT MAP EXTENSION
012656  3762		DCA I	(7611
012657  4764		JMS I	(CORMOV	/MOVE SYMMAP FILE NAME INTO FIELD 0
012660  6211		CDF 10
012661  7604	P7604,	7605-1
012662  6201		CDF 0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 77-1

012663  5305		LDRNAM+LB0BUF+4
012664  7773		-5

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 78



		/COLLECT INPUT FILES

012665  1760	SM2,	TAD I	(OS8SWS
012666  7110		CLL RAR
012667  7630		SZL CLA		/ IS /L SWITCH ON?
012670  5333		JMP	LIBRAR	/YES - THIS IS A LIBRARY FILE
012671  1416	FILELP,	TAD I	PTRIO
012672  7450		SNA
012673  5316		JMP	FINLIN	/NO MORE INPUT FILES
012674  3000		DCA	TMP0
012675  1000		TAD	TMP0
012676  0371		AND	(17
012677  2024		ISZ	PTRULS
012700  3424		DCA I	PTRULS	/STORE UNIT NUMBER
012701  1000		TAD	TMP0
012702  0357		AND	(7760
012703  7112		CLL RTR
012704  7012		RTR
012705  1356		TAD	(7400
012706  7041		CIA
012707  2024		ISZ	PTRULS
012710  3424		DCA I	PTRULS	/STORE LENGTH
012711  1416		TAD I	PTRIO
012712  2024		ISZ	PTRULS
012713  3424		DCA I	PTRULS	/STORE STARTING BLOCK NUMBER
012714  2021		ISZ	MODCNT
012715  5271		JMP	FILELP	/CONTINUE

012716  4755	FINLIN,	JMS I	(CORDSW	/CHECK C AND O SWITCHES
012717  1760		TAD I	(OS8SWS
012720  0374		AND	(40
012721  7640		SZA CLA		/IF THE /G SWITCH IS ON
012722  5754		JMP I	(EOPAS0	/ITS THE END
012723  1753		TAD I	(OS8SWS-1
012724  7710		SPA CLA		/IF AN ALTMODE TERMINATED THE LINE,
012725  5754		JMP I	(EOPAS0	/DITTO
012726  1352		TAD	(-MCTTBL-1
012727  1020		TAD	NMCTS
012730  7640		SZA CLA		/ARE WE STILL IN THE MAIN SECTION?
012731  4751		JMS I	(UPDMOD	/NO - UPDATE OVERLAY & MODULE COUNTS
012732  5200		JMP	RALFLP

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 79



012733  1416	LIBRAR,	TAD I	PTRIO
012734  0371		AND	(17
012735  3750		DCA I	(MODTBL	/STORE LIBRARY PARAMETERS
012736  1416		TAD I	PTRIO	/NEGLECTING LENGTH, WHICH WILL
012737  3747		DCA I	(MODTBL+2	/BE FILLED IN LATER
012740  1416		TAD I	PTRIO
012741  7650		SNA CLA
012742  5316		JMP	FINLIN	/ONLY ONE FILE ALLOWED ON THE LINE
012743  1346		TAD	(MIERR
012744  5225		JMP	SM1+1	/OTHERWISE ITS MIXED INPUT
012746  3101
012747  6174
012750  6172
012751  3000
012752  1777
012753  7642
012754  3200
012755  3023
012756  7400
012757  7760
012760  7643
012761  1423
012762  7611
012763  7605
012764  3600
012765  1404
012766  3063
012767  3107
012770  7757
012771  0017
012772  7600
012773  4637
012774  0040
012775  7644
012776  7616
012777  0200
	3000		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 80



		/UPDMOD- UPDATE MODULE COUNT TBL

013000  0000	UPDMOD,0
013001  7100		CLL
013002  1021		TAD	MODCNT	/UPDATE -NUM OF
013003  1777		TAD I	(MCTTBL	/UNUSED MODULES
013004  3777		DCA I	(MCTTBL
013005  7430		SZL
013006  5255		JMP	MAXRLF	/MAX NUMBER EXCEEDED
013007  2023		ISZ	OVRCNT	/BUMP OVERLAY NUMBER
013010  7610	SKPCLA,	SKP CLA
013011  5261		JMP	MAXOVL	/MORE THAN 16 OVERLAYS IN A LEVEL
013012  1021		TAD	MODCNT	/UPDATE +NUM OF
013013  1420		TAD I	NMCTS	/MODULES IN LAST LEVEL
013014  7450		SNA		/****
013015  5600		JMP I	UPDMOD
013016  3420		DCA I	NMCTS
013017  2020		ISZ	NMCTS	/ADV PTR TO NXT LOC
013020  3420		DCA I	NMCTS	/ZERO THE NXT LOC IN PREPARATION
013021  3021		DCA	MODCNT	/CLR CNT FOR NXT LEVEL
013022  5600		JMP I	UPDMOD

		/CORDSW- LOOK FOR SWS C AND O

013023  0000	CORDSW,	0
013024  1776		TAD I	(OS8SWS+1
013025  0375		AND	(10
013026  7650		SNA CLA		/CHECK FOR /U SWITCH
013027  5234		JMP	CHKCSW
013030  6201		CDF 0
013031  1210		TAD	SKPCLA	/INHIBIT LEVEL CHECKING
013032  3774		DCA I	(TSTTRP
013033  6211		CDF 10
013034  1773	CHKCSW,	TAD I	(OS8SWS
013035  7006		RTL
013036  7710		SPA CLA
013037  5772		JMP I	(RALFLP
013040  1776		TAD I	(OS8SWS+1
013041  7006		RTL
013042  7700		SMA CLA
013043  5623		JMP I	CORDSW

		/O-SWITCH

013044  4200		JMS	UPDMOD
013045  2020		ISZ	NMCTS	/ADV PTR FOR NXT GUY
013046  3420		DCA I	NMCTS	/CLR FOR NXT LEVEL MOD CNT
013047  1371		TAD	(-21
013050  3023		DCA	OVRCNT
013051  2022		ISZ	LVLCNT	/BUMP LEVEL COUNTER
013052  5772		JMP I	(RALFLP
013053  1370		TAD	(MXLERR
013054  5256		JMP	MAXRLF+1	/TOO MANY LEVELS

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 81



013055  1367	MAXRLF,	TAD	(MXRERR
013056  4263		JMS	ERORR	
013057  6203		CDF CIF 0
013060  5766		JMP I	(7605
013061  1365	MAXOVL,	TAD	(MXOERR
013062  5256		JMP	MAXRLF+1

		/ERORR- PRINTS OUT ERROR MESSAGES OF A
		/	BUFR LOCATED IN FLD1
		/	ENTER WITN ADR OF BUFR IN AC
		/
013063  0000	ERORR,	0
013064  3277		DCA	BFADR
013065  6211		CDF 10		/CALL TTYHAN
013066  4764		JMS I	(CORMOV
013067  6201		CDF 0
013070  4577		LB0BUF-1	/MOVE LOWER FIELD 0 BACK
013071  6201		CDF 0		/SO WE CAN USE THE MESSAGE HANDLER
013072  7777		0-1
013073  6000		-2000
013074  6202		CIF 0
013075  4763		JMS I	(TTYHAN
013076  6211		CDF 10
013077  0000	BFADR,	0
013100  5663		JMP I	ERORR

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 82



013101  1511	MIERR,	TEXT	/MIXED INPUT/
013102  3005
013103  0440
013104  1116
013105  2025
013106  2400
013107  0201	DEVERR,	TEXT	/BAD OUTPUT DEVICE/
013110  0440
013111  1725
013112  2420
013113  2524
013114  4004
013115  0526
013116  1103
013117  0500
013120  2417	MXRERR,	TEXT	/TOO MANY RALF FILES/
013121  1740
013122  1501
013123  1631
013124  4022
013125  0114
013126  0640
013127  0611
013130  1405
013131  2300
013132  2417	MXLERR,	TEXT	/TOO MANY LEVELS/
013133  1740
013134  1501
013135  1631
013136  4014
013137  0526
013140  0514
013141  2300
013142  2417	MXOERR,	TEXT	/TOO MANY OVERLAYS/
013143  1740
013144  1501
013145  1631
013146  4017
013147  2605
013150  2214
013151  0131
013152  2300
013163  0400
013164  3600
013165  3142
013166  7605
013167  3120
013170  3132
013171  7757
013172  2600
013173  7643
013174  3061
013175  0010

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 82-1

013176  7644
013177  6000
	3200		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 83



		/PASS1, PASS2 INITIALIZATION
		 
013200  4777	EOPAS0,	JMS I	(UPDMOD	/BUMP COUNTS FOR LAST LINE OF INPUT
013201  2020		ISZ	NMCTS
013202  3420		DCA I	NMCTS	/PUT IN A DOUBLE ZERO AT THE END
013203  4776		JMS I	(CORMOV
013204  6201		CDF 0
013205  4577		LB0BUF-1
013206  6201		CDF 0
013207  7777		0-1		/MOVE LOWER FIELD 0 BACK INTO PLACE
013210  6000		-2000
013211  1775		TAD I	(MODTBL
013212  7640		SZA CLA		/USER-SPECIFIED LIBRARY?
013213  5230		JMP	RDLIBH	/YES
013214  6201		CDF 0
013215  1774		TAD I	(SBLOCK	/ON CCL-DEVICE
013216  6211		CDF 10
013217  3775		DCA I	(MODTBL	/STORE UNIT AND BLOCK #
013220  1775		TAD I	(MODTBL
013221  4773		JMS I	(200
013222  0002		2		/LOOKUP
013223  3336		LIBRY
013224  0000		0
013225  5244		JMP	NOLIB	/FORLIB.RL NOT FOUND
013226  1223		TAD	.-3	/GET STARTING BLOCK
013227  3772		DCA I	(MODTBL+2
013230  7132	RDLIBH,	STL RTR
013231  3771		DCA I	(MODTBL+1	/JUST TO BE CAREFUL
013232  6202		CIF 0
013233  4770		JMS I	(IOHAN	/READ BLOCK 0 OF THE LIBRARY CATALOG
013234  6172		MODTBL
013235  0210		0210
013236  7000	PLB,	RALFBF
013237  0000		0
013240  7240		STA
013241  1636		TAD I	PLB
013242  7650		SNA CLA		/IS IT AN HONEST - TO - GOD LIBRARY?
013243  5247		JMP	.+4	/YES
013244  3775	NOLIB,	DCA I	(MODTBL
013245  3772		DCA I	(MODTBL+2
013246  3767		DCA I	(RALFBF+3	/ZERO COUNT WORD IN BUFFER
013247  1767		TAD I	(RALFBF+3
013250  3771		DCA I	(MODTBL+1	/STORE LENGTH OF CATALOGUE
013251  1366		TAD (LHDR-1
013252  3010		DCA NDX0
013253  1365		TAD (-400
013254  3000		DCA TMP0
013255  3410		DCA I NDX0	/0 OUT
013256  2000		ISZ TMP0	/LDR HDR
013257  5255		JMP .-2		/GET PAGE 0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 84



		/PASS1 INITIALIZATION CONTINUED

013260  1764		TAD I (MCTTBL	/UNUSED
013261  3002		DCA TMP2	/MODULES
013262  1363		TAD	(MCTTBL+2	/GET NUMBER OF OVERLAYS
013263  3010		DCA NDX0	/ IN EACH LEVEL
013264  1362		TAD (QUSRLV+4 /WHERE THE
013265  3000		DCA TMP0	/CNTS GO IN
013266  5276		JMP BY0		/LDR HDR BLK
013267  2400	LOP0,	ISZ I	TMP0	/INCREMENT NUMBER OF OVERLAYS IN THIS LEVEL
013270  1410		TAD I	NDX0
013271  7640		SZA CLA		/END OF LEVEL?
013272  5267		JMP	LOP0	/NO
013273  1361		TAD (4		/THIS LEVEL
013274  1000		TAD TMP0
013275  3000		DCA TMP0
013276  3400	BY0,	DCA I	TMP0	/RESET CNT
013277  1410		TAD I NDX0	/0,0 ENDS
013300  7640		SZA CLA		/MOD CNT TBL
013301  5267		JMP LOP0	/DO MORE PTR TO
013302  1771		TAD I	(MODTBL+1	/GET LENGTH OF LIBRARY CATALOG
013303  3075		DCA TMP4	/BLOCKS
013304  1002		TAD TMP2	/CHK FOR MAX
013305  7640		SZA CLA		/NUM OF RALFS 0=MOD TBL IS FULL
013306  1775		TAD I (MODTBL	/CHK FOR NO
013307  6201		CDF
013310  3760		DCA I (LIBRSW	/LIBRARY AND SET SWITCH ACCORDINGLY
013311  1002		TAD TMP2	/-NUM LEFT
013312  3757		DCA I (MLEFT	/OF RALF MODS
013313  1356		TAD (SYMTBL-1	/PTR TO TOP
013314  3755		DCA I (NDX4	/OF GST
013315  1754		TAD I	(OSJSWD
013316  0353		AND	(7377	/KILL "BATCH PROTECTED" FLAG
013317  3754		DCA I	(OSJSWD

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 85



013320  7344		AC7776		/IS THERE
013321  1025		TAD MXFLD	/GREATER THAN 12K OF CORE
013322  7750		SPA SNA CLA	/?
013323  5332		JMP LS16K	/NO
013324  1352		TAD (200^12!30	/SET TXT I/O
013325  3751		DCA I (TXTBLK-2	/BUFFS UP IN FLD 3
013326  1377		TAD (-5000	/-WDCNT (12
013327  3750		DCA I (TXTWDS	/BLKS)
013330  1347		TAD (6231	/CDF 30
013331  3746		DCA I (RDTCDF
013332  1345	LS16K,	TAD (7700	/USR IS NOT
013333  3744		DCA I (USR	/IN CORE
013334  6211		CDF 10
013335  5743		JMP I	(INIBFS

013336  0617	LIBRY,	FILENAME FORLIB.RL
013337  2214
013340  1102
013341  2214
013343  3450
013344  0020
013345  7700
013346  3156
013347  6231
013350  3163
013351  3147
013352  2430
013353  7377
013354  7746
013355  0014
013356  2441
013357  3754
013360  3716
013361  0004
013362  7213
013363  6002
013364  6000
013365  7400
013366  7177
013367  7003
013370  0600
013371  6173
013372  6174
013373  0200
013374  7776
013375  6172
013376  3600
013377  3000
	3400		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 86



		/THIS IS THE INITIAL BINARY BUFFER TABLE

	3647	R=	LDBUFS-BUFTAB

013400  7253	BUFTAB,	.+4+R;	0;	0;	3200	/03200-05177
013401  0000
013402  0000
013403  3200
013404  7257	B8KPT,	.+4+R;	0;	0;	5200	/05200-07177
013405  0000
013406  0000
013407  5200
013410  7263		.+4+R;	0;	0;	0020	/20000-21777
013411  0000
013412  0000
013413  0020
013414  7267	B12KPT,	.+4+R;	0;	0;	2020	/22000-23777
013415  0000
013416  0000
013417  2020
013420  7273	B16KPT,	.+4+R;	0;	0;	4020	/24000-25777
013421  0000
013422  0000
013423  4020
013424  7277		.+4+R;	0;	0;	0040	/40000-41777
013425  0000
013426  0000
013427  0040
013430  7303	B20KPT,	.+4+R;	0;	0;	2040	/42000-43777
013431  0000
013432  0000
013433  2040
013434  7307		.+4+R;	0;	0;	4040	/44000-45777
013435  0000
013436  0000
013437  4040
013440  7313		.+4+R;	0;	0;	0050	/5000-51777
013441  0000
013442  0000
013443  0050
013444  0000		0;	0;	0;	2050	/52000-53777
013445  0000
013446  0000
013447  2050

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 87



013450  1025	INIBFS,	TAD	MXFLD
013451  1377		TAD	(JMP	STBPTR-1
013452  3253		DCA	.+1
013453  7402		HLT		/DISPATCH ON NUMBER OF FIELDS
013454  3204	STBPTR,	DCA	B8KPT
013455  3214		DCA	B12KPT
013456  3220		DCA	B16KPT
013457  3230		DCA	B20KPT
013460  7000		NOP
013461  7000		NOP		/NOT SET UP TO USE MORE THAN 24K
013462  7000		NOP
013463  4776		JMS I	(CORMOV
013464  6211		CDF 10
013465  3377		BUFTAB-1	/MOVE THE BINARY BUFFER TABLE
013466  6211		CDF 10
013467  7246		LDBUFS-1	/INTO A SAFE PLACE
013470  7730		-50
013471  6201		CDF 0
013472  1022		TAD LVLCNT	/SET -NUM OF
013473  1375		TAD (11		/LEVELS
013474  7041		CIA
013475  3774		DCA I (NLVL
013476  1373		TAD (-5		/NUM OF LIBR
013477  3002		DCA TMP2	/BLKS FOR 8K
013500  7240		CLA CMA
013501  1025		TAD MXFLD
013502  7650		SNA CLA		/GREATER THAN 8K CORE?
013503  5315		JMP TO8K	/NO SET LIBR ARGS
013504  3772		DCA I (LBARG+1
013505  1371		TAD (200^12!20	/12 BLKS FLD2
013506  3770		DCA I (LBARG
013507  1367		TAD (6221	/CDF 20
013510  3766		DCA I (LBFLD
013511  1367		TAD (6221
013512  3765		DCA I (GETLEN+1
013513  1364		TAD (-12
013514  3002		DCA TMP2
013515  1002	TO8K,	TAD TMP2	/WILL LIBR
013516  1075		TAD TMP4	/BE CORE
013517  7740		SMA SZA CLA	/RESIDENT?
013520  3763		DCA I (RESFLG	/NO
013521  1362		TAD (SYMTBL-1
013522  3761		DCA I	(NDX0

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 88



013523  6211		CDF 10
013524  1360		TAD (ESDPG-1	/ENTER DEFAULT
013525  3010		DCA NDX0	/VALUES FOR
013526  1357		TAD (-200	/ESD REF PAGE
013527  3000		DCA TMP0	/IT SAVES
013530  1356		TAD (SYMTBL+5	/PROBLEMS WITH
013531  3410		DCA I NDX0	/EXTERNS
013532  2000		ISZ TMP0
013533  5330		JMP .-3
013534  7326		CLA STL RTL
013535  3755		DCA I	(LHDR	/STORE LOADER IMAGE CODE IN HEADER
013536  1354		TAD	(VERNUM
013537  3753		DCA I	(QVERNO	/STORE LOADER VERSION NUMBER
013540  6202		CIF 0
013541  5776		JMP I	(STPAS1
013553  7205
013554  0050
013555  7200
013556  2447
013557  7600
013560  7377
013561  0010
013562  2441
013563  3755
013564  7766
013565  4546
013566  3651
013567  6221
013570  3727
013571  2420
013572  3730
013573  7773
013574  4126
013575  0011
013576  3600
013577  5253
	3600		PAGE

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 89



		/CORMOV- A CORE MOVE FOR A CHUNK OF CORE IN
		/	ANY FLD TO ANY FLD.
		/
		/	CALL	JMS  CORMOV
		/		CDF Z1	/Z1=FROM FLD
		/		ADDR1	/ADDR OF (1ST LOC-1)
		/		CDF Z2	/Z2=TO FLD
		/		ADDR2	/ADDR OF (1ST LOC-1)
		/		-N	/-OCT NUM OF WDS TO MOV
		/
013600  0000	CORMOV,	0
013601  7240		CLA CMA
013602  1200		TAD	CORMOV
013603  3010		DCA	NDX0
013604  1410		TAD I	NDX0
013605  3216		DCA	TOCDF-2
013606  1410		TAD I	NDX0
013607  3011		DCA	NDX1
013610  1410		TAD I	NDX0
013611  3220		DCA	TOCDF
013612  1410		TAD I	NDX0
013613  3012		DCA	NDX2
013614  1410		TAD I	NDX0
013615  3000		DCA	TMP0
013616  0000		0
013617  1411		TAD I	NDX1
013620  0000	TOCDF,	0
013621  3412		DCA I	NDX2
013622  2000		ISZ	TMP0
013623  5216		JMP	TOCDF-2
013624  6211		CDF 10
013625  5410		JMP I	NDX0	/RTN

	0000		FIELD 0
	0200		*200
			$$$$$

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 90

AAAAAA 2154      DECO   2612      IOH    0671      LIMSG  3351
AC0002 7326      DEVERR 3107      IOHAN  0600      LNONUM 0060
AC2000 7332      DOCORE 4000      IOMSG  0275      LOOK   1200
AC4000 7330      DOMAP  0452      ISCOM  3270      LOOKRT 2066
AC7775 7346      DO8S   4400      ISCOM3 3265      LOP0   3267
AC7776 7344      DPFLG  0040      JARGER 0204      LOP10  1450
ADVOVR 1022      DUNLVL 4127      JBAK   0210      LOP11  2233
ALLDN1 4200      DUNMN  4027      JDATE  0203      LOP12  2113
A1     0056      DUNMP  1467      JDEF   0213      LOP3   4017
BADDY  3251      DVTBL  7647      JDISMS 0412      LOP4   3621
BADORG 2352      EEEEEE 2163      JENDF  0211      LOP5   1211
BFADR  3077      ENDLB  3744      JEOFSW 0016      LOP6   4073
BLDTV  2200      ENDSYM 1315      JEXIT  0223      LOP7   1655
BLKBEG 0070      ENTERR 1553      JHANG  0524      LP1    4132
BLKCNT 0062      ENTMN  3474      JIDLE  0227      LSTBLK 3753
BLKSIZ 0065      ENTMN2 3476      JINT   0403      LS16K  3332
BP     0055      ENTMSG 0306      JOUSYM 1526      LVLCNT 0022
BPPREV 2702      ENTM2  3472      JRDAO  0217      LVPTR  2151
BPTR   0045      EOLVL  1046      JREADO 0221      LXX    2073
BPT2   0046      EOPAS0 3200      JRENDO 0206      MAKSXB 2524
BSECTP 0066      EPTR   0042      JRETRN 0235      MAXBLK 2703
BUCKET 2000      EPT2   0043      JREW   0212      MAXCOM 4525
BUFTAB 3400      ERORR  3063      JRSVO  0207      MAXOVL 3061
BY0    3276      ESDPG  7400      JRUO   0215      MAXRLF 3055
BY10   1042      ESDSCN 3320      JSWAP  0222      MBGCNT 0074
BY11   2127      ETYP   0044      JT812  0225      MCNT   0073
BY12   2017      FATAL  0054      JUERR  0204      MCTTBL 6000
BY2    3031      FCNWD  0727      JWDAO  0216      MERGE  2505
BY2M5  3024      FILELP 2671      JWRITO 0220      MESADR 0444
BY3    3643      FINLIN 2716      JWUO   0214      MIERR  3101
BY7    1063      FIT    4451      LBARG  3727      MLEFT  3754
B12KPT 3414      FIT8S  4421      LBCNT  0061      MNCZ   3532
B16KPT 3420      FRUNAM 2501      LBFLD  3651      MNF1   3530
B20KPT 3430      FTMP0  0051      LBPTR  0027      MNMSG  3356
B8KPT  3404      F1FLG  0033      LBREC  3731      MNSECN 3535
CDSW   2522      F8SECT 4426      LB0BUF 4600      MNSEC5 3542
CHBLOK 2103      GETCDF 0741      LDATE  2075      MNS8   3534
CHKCSW 3034      GETCTL 2532      LDBUFS 7247      MODCNT 0021
CORDSW 3023      GETDAT 6640      LDCLEN 2046      MODTBL 6172
CORE   4614      GETEXT 4562      LDRBLK 4262      MONTHS 6660
CORELP 4630      GETLEN 4545      LDRIO  0203      MPBLK  1412
CORLOC 4664      GETTXT 3141      LDRIOA 0240      MREAD  7757
CORMOV 3600      GETTYP 1324      LDRIOB 0241      MSMSG  3337
CORMSG 3344      GOTBLK 2657      LDRIOC 0237      MTBL   1150
CORTN  4662      GPTR   0026      LDRIOR 0243      MTMCNT 3275
COR70  4645      GTYP   0041      LDRLEN 4263      MULENT 3260
CRLF   0521      HAF    0431      LDRNAM 0501      MXFLD  0025
CRLFF  0441      HAFWD  1531      LEVLUP 4507      MXLERR 3132
CTST   3226      HLINE  2117      LEVRND 1074      MXOERR 3142
CURBLK 2746      HNDERR 0744      LEVSYM 2050      MXRERR 3120
CVLOVL 1727      HOOKIN 1264      LHDR   7200      MYSTIC 3276
CVRT   1651      INIBFS 3450      LIBRAR 2733      M4     3436
CVRTMP 1726      INQIRE 0746      LIBRSW 3716      M7     3437
CZFLG  0032      IOENT  0736      LIBRY  3336      NDX0   0010
DATCHG 6600      IOFLG  0022      LIMGU  2144      NDX1   0011

/ OS/8 F4 LOADER, V50A			  PAL8-V50Y 21-JUL-20 PAGE 90-1

NDX2   0012      PRGSCN 3443      SETSLP 4325      UPDMOD 3000
NDX3   0013      PRMAIN 1466      SETTRP 3014      USR    0020
NDX4   0014      PROVLP 2406      SETTYP 1235      VERNUM 0050
NDX5   0015      PROVLY 2400      SHFT3  3246      VIRGIN 2636
NDX6   0016      PR15   1752      SIXTO8 1543      WRALL  2435
NDX7   0017      PTRIO  0016      SKPCLA 3010      WRBUF  1640
NEWBB  2600      PTRULS 0024      SM     2641      XSTRT  4613
NEWBB4 2610      PUTBIN 2704      SMAPU  2141      YECCH  1260
NEWBLK 0071      PUTSYM 3201      SMPCLN 1522      YRTEMP 2544
NEWBUF 2666      P2FLG  0031      SM1    2624      YUCCH  1223
NEWLEN 0072      P6201  0763      SM2    2665      
NEWORG 2303      P7600  0655      SM600  1501      
NLVL   4126      P7604  2661      START  4600      
NMCTS  0020      QDPFLG 7206      STBPTR 3454      
NODATE 2511      QHGHAD 7203      STCNT  3717      
NOLIB  3244      QRTSWP 7201      STLINE 2104      
NOMAP  1524      QUIKIE 2664      STPAS1 3600      
NOMAT  3425      QUSRLV 7207      STYPE  4450      
NOMSCT 4216      QVERNO 7205      SVMAIN 0037      
NORTS  2104      R      3647      SWITZ  0036      
NOTREL 2453      RALFBF 7000      SWPSYM 2055      
NUMENT 3756      RALFLP 2600      SYLST  1646      
NUMMOD 0254      RBLK   0053      SYMMAP 1400      
NXTENT 3631      RDLBR  3720      SYMMSG 0270      
NXTESD 1000      RDLIBH 3230      SYMTBL 2442      
NXTOVR 1115      RDRLES 2421      SYMTM3 0023      
OLDCNT 3757      RDTCDF 3156      SYMX   2152      
OLINE  1340      REFPTR 0047      SYSERR 0535      
OLINLP 1342      RELC   3106      S8FLG  0034      
ONEOR2 1615      RELC2  3110      TLINE  2067      
ORGFLG 0024      RELC6  3114      TMP0   0000      
ORGMSG 0260      RELMSG 2455      TMP1   0001      
OSDATE 7666      REORG  3124      TMP2   0002      
OSJSWD 7746      REP    3400      TMP3   0003      
OS8DCB 7760      RESFLG 3755      TMP4   0075      
OS8ER  0527      RFPTR1 0025      TMP5   0076      
OS8SWS 7643      RLARG  2430      TOCDF  3620      
OTLINE 2131      RLEN   0050      TOOBIG 4446      
OUFILP 1505      ROL    1627      TO8K   3515      
OUTFLD 2721      RTBLOK 2072      TRAPV  0063      
OUTINH 0067      RTNIO  0734      TRPCNT 0030      
OUTSYM 1672      RTNOS8 0446      TRPSYM 2043      
OVLTBL 5435      RTSMSG 2465      TRYFLD 4666      
OVRCNT 0023      RTSNAM 2475      TSTTRP 3061      
OVRFLO 0035      SAMOVR 1103      TTYCDF 0414      
OVRSIZ 2147      SAMOV4 1107      TTYHAN 0400      
OVTLEN 0343      SASYM  2062      TTYLP  0416      
PACK   1600      SBLOCK 7776      TTYO   0513      
PASS0  2443      SBPTR  1645      TXTBLK 3151      
PASS2  2000      SETBGX 0245      TXTSCN 3000      
PATCH  0302      SETBPT 0252      TXTWDS 3163      
PCRLF  1744      SETCNT 1133      TYTBL  0544      
PLB    3236      SETEPT 1316      T2J    3234      
POUND  2172      SETREF 2107      ULSADR 0737      
PPACK  0021      SETSBN 0705      UNITSV 0740      



ERRORS DETECTED: 0
LINKS GENERATED: 0