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


/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 1

		/PAL8 V50A FOR OS/8 V50
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/COPYRIGHT  (C) 1975 BY DIGITAL EQUIPMENT CORPORATION
		/		AND 2015 BY W. VAN DER MARK (WVDMARK)
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
		/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
		/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
		/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
		/
		/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
		/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
		/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
		/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
		/
		/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
		/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
		/DIGITAL.
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 2





		/1-OCT-75				MB/MB/SM/MB/RL/JR/SR

		DECIMAL
	0062	VERSION=	50
	0331	SUBVERSION=	"Y
		OCTAL


		/PAL8 IS AN 8K THREE PASS ASSEMBLER DESIGNED 
		/TO BE COMPATIBLE WITH THE OS/8 SYSTEM.

		/PASS 1 READS THE INPUT (SOURCE) FILE AND CONSTRUCTS
		/THE SYMBOL TABLE.

		/PASS 2 GENERATES THE BINARY (OBJECT) FILE, WHICH
		/MAY BE LOADED WITH THE ABSOLUTE (BINARY) LOADER.

		/PASS 3 GENERATES THE OCTAL SYMBOLIC ASSEMBLY
		/LISTING.

		/PAL8 IS COMPATIBLE IN MOST RESPECTS WITH PAL III, MACRO-8
		/4K PAL-D, AND 8K PAL-D, AS WELL AS THE CROSS-ASSEMBLER PAL10.

			IFNDEF HASH<HASH=1>	/DEFINE FOR HASH SYMBOL TABLE
		/SET HASH=0 TO GET OLD PAL8 WAY OF HANDLING SYMBOL TABLE

		/MAINTENANCE RELEASE CHANGES:

		/1.	INCLUDED JIM ROTH'S HASH TABLE MODIFICATIONS
		/2.	ALLOWED /B TO WORK PROPERLY [SEQ #2 PATCH FROM AUG '74 DSN]
		/3.	PUT CREFLS.TM ON SYS: NOT DSK: [PATCH SEQ #3, SEP '74 DSN]
		/4.	FIXED 7TH LEVEL CHECKSUM BIT [PATCH SEQ #7, MARCH '75 DSN]
		/5.	ALLOWED PAL8 TO RESTART BEFORE CD EXECUTED [DSN APR '75, SEQ #8]
		/6.	FIXED /F SO IT WORKS [PATCH SEQ #9, DSN APRIL 1975]
		/7.	FIXED /W SO IT DOESN'T REMEMBER TOP OF PAGE [DSN OCT '75]
		/8.	FIXED BUG RE MULTIPLE NON-RES INPUT HANDLERS
		/9.	CHANGED VERSION # TO V10, EDIT 1, 1975 COPYRIGHT
		/10.	ADDED DOCUMENTATION ON LOCATION OF HANDLERS AND BUFFERS
		/11.	CORE ALLOCATION:
		/	WITHOUT /K, ALL CORE BUT 10000-11777 USED FOR SYMBOLS
		/	WITH /K, USES ALL CORE (AND SWAPS USR BETWEEN PASSES)
		/	UNDER BATCH, N5000-N7777 IS RESERVED FOR BATCH RESIDENT AS WELL
		/12.	/7 WITH HASH FEATURES PRINTS 7 COLUMN SYMBOL TABLE
		/13.	14-DEC-75 JR: FIXED TYPO IN /W CODE IN LITERAL DUMP ROUTINE

		/JR	14-APR-77 ADDED STANDARD DATE FORMAT TO HEADING

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 3





		/COMMAND DECODER RULES:

		/*BINARY(.BN),LISTING(.LS),CREF(.LS)<SOURCE(.PA),.../OPTIONS

		/OPTIONS:
		/B	BYTE SHIFT	- ! IS 6 BIT SHIFT (!=^100+)
		/C	CREF AFTER	- "CREFLS.TM" CREATED IF NO CREF
		/D	DDT TYPE SYMBOL	- ONLY IF LISTING
		/E	'LG' ERROR	- LINKS ARE ERRORS
		/F	NO TEXT FILL	- NO EXTRA 0 FILL IN 'TEXT'
		/G	LOAD+GO AFTER	- SAME AS /L, BUT /G PASSED TO ABSLDR
		/H	NO PAGING	- ONLY IF LISTING
		/J	JUST WHAT LOADS	- INHIBITS LISTING OF UNASSEMBLED CODE
		/K	CHECK FOR MORE THAN 8K OF CORE (DEFAULT IS 8K)
		/L	LOAD AFTER	- "PAL8BN.TM" CREATED IF NO BINARY
		/N	NO LISTING	- ONLY IF LISTING
		/O	NO 200 ORG	- NO AUTOMATIC 200 ORIGIN AFTER 'FIELD'
		/S	NO SYMBOL TABLE	- ONLY IF LISTING
		/T	CR-LF NOT FF	- ONLY IF LISTING
		/W	WIPE LITERALS	- INHIBITS REMEMBERING OF LITERAL BOUNDS

		/PERMANENT PATCH LOCATIONS FOR THE ABOVE SWITCHES ARE SYMBOLS
		/OF THE FORM Z(SW)(PATCH) - E.G. ZT7640 IS THE LOC TO PATCH TO 7640
		/TO REVERSE THE POLARITY OF THE "T" SWITCH.

		/PSEUDO-OPS:
		/DECIMAL	RADIX TO BASE 10
		/DEVICE		2 WORD DEVICE CODE
		/DTORG		TYPESETTING TAPE ORIGIN
		/EJECT		SKIPS TO A NEW PAGE, AND IF ANY TEXT FOLLOWS,
		/		THAT TEXT BECOMES THE NEW HEADER LINE
		/ENPUNCH	ENABLE PUNCHING
		/EXPUNGE	REMOVE ALL SYMBOLS
		/FIELD		SET FIELD
		/FILENAME	4 WORD FILE CODE
		/FIXMRI		DEFINE MEMORY REFERENCE INSTRUCTION
		/FIXTAB		MAKE ALL SYMBOLS PERMANENT
		/IFDEF		CONDITIONAL ON DEFINITION
		/IFNDEF		CONDITIONAL ON UNDEFINED
		/IFNZRO		CONDITIONAL ON NON-ZERO
		/IFZERO		CONDITIONAL ON ZERO
		/NOPUNCH	DISABLE PUNCHING
		/OCTAL		RADIX TO BASE 8
		/PAGE		RE-ORIGIN TO BEGINNING OF NEXT PAGE OR PAGE N
		/PAUSE		ALTERNATE END-OF-FILE
		/RELOC		ASSEMBLE FOLLOWING CODE AS IF LOC = ARG OF RELOC
		/TEXT		6 BIT TEXT
		/XLIST		LISTING INHIBIT UNLESS THE XLIST IS
		/		FOLLOWED BY AN EXPRESSION. THEN IF THE EXPRESSION
		/		IS 0 START LISTING, OR NON-0 THEN INHIBIT LISTING
		/ZBLOCK		RESERVE BLOCK OF ZEROS

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 4





		/SYMBOL LAYOUT:

		/	WORD 1	BIT 0=1	PERMANENT SYMBOL
		/		BIT 1=1	"I" OR "Z"
		/		BITS 3-11	CHARS 1 AND 2
		/
		/	WORD 2	BIT 0=1	MEMORY REFERENCE INSTRUCTION
		/		BITS 2-11	CHARS 3 AND 4
		/
		/	WORD 3	BIT 0=1	PSEUDO-OP
		/		BITS 2-11	CHARS 5 AND 6
		/
		/	WORD 4	BITS 0-11	OCTAL VALUE
		/CHARS ARE STORED AS:
		/	A TO Z ARE 01 TO 32
		/	0 TO 9 ARE 33 TO 44
		/
		/	CHAR1^45+CHAR2

		/OPERATORS:
		/+		TWO'S COMPLEMENT ADD
		/-		TWO'S COMPLEMENT SUBTRACT
		/&		BOOLEAN AND
		/!		BOOLEAN INCLUSIVE 'OR' OR BYTE SHIFT
		/  (SPACE)	DELIMITER OR INCLUSIVE OR
		/^		MULTIPLY (REPEATED ADDITION)
		/%		DIVIDE (REPEATED SUBTRACTION)

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 5





		/DEFINITIONS

	0040	ASWAP=	40		/WATCH THIS SWAP AREA!!
	7666	MDATE=	7666		/MONITOR DATE
	7643	MPARAM=	7643		/COMMAND DECODER OPTION LIST
	7760	DCB=	7760		/DEVICE CONTROL BLOCK
	7746	JSBITS=	7746		/JOB STATUS WORD
	7757	MREAD=	7757		/FOR KBM V40**
	7776	SBLOCK=	7776		/  "
	7777	BIPCCL=	7777		/DATE EXTENSION AND BATCH IN PROG FLG IN FIELD 0
	7400	BATOUT=	7400		/BATCH LOG OUTPUT ROUTINE IN BATCH RESIDENT
	0070	LNPRPG=	70		/56 LINES PER PAGE
	0050	HEDLEN=	50		/40 CHARACTERS IN PAGE TITLE
					/(MUST BE A MULTIPLE OF 8)

	7344	AC7776=	STA CLL RAL
	7346	AC7775=	STA CLL RTL
	7330	AC4000=	STL CLA RAR
	7350	AC3777=	STA CLL RAR
	7332	AC2000=	STL CLA RTR
	7326	AC0002=	STL CLA RTL


		/TABLE OF ERROR MESSAGE DEFINITIONS


	5172	IZ= "I-240^100+"Z-240	/ILLEGAL PAGE ZERO REFERENCE
	4346	CF= "C-240^100+"F-240	/CREF.SV NOT FOUND
	6563	US= "U-240^100+"S-240	/UNDEFINED SYMBOL
	5160	IP= "I-240^100+"P-240	/ILLEGAL PSEUDO-OP USAGE
	6345	SE= "S-240^100+"E-240	/SYMBOL TABLE EXCEEDED
	7245	ZE= "Z-240^100+"E-240	/PAGE ZERO EXCEEDED
	6045	PE= "P-240^100+"E-240	/CURRENT PAGE EXCEEDED
	5143	IC= "I-240^100+"C-240	/ILLEGAL CHARACTER
	5144	ID= "I-240^100+"D-240	/ILLEGAL DEFINITION
	4245	BE= "B-240^100+"E-240	/PUSH-DOWN OVERFLOW
	4445	DE= "D-240^100+"E-240	/DEVICE ERROR
	4446	DF= "D-240^100+"F-240	/DEVICE FULL
	5444	LD= "L-240^100+"D-240	/ABSLDR.SV NOT FOUND
	5145	IE= "I-240^100+"E-240	/ILLEGAL EQUATE
	6050	PH= "P-240^100+"H-240	/PHASE ERROR
	5151	II= "I-240^100+"I-240	/ILLEGAL INDIRECT
	6244	RD= "R-240^100+"D-240	/REDEFINITION
	6557	UO= "U-240^100+"O-240	/UNDEFINED ORIGIN
	5447	LG= "L-240^100+"G-240	/LINK GENERATED



		/ABBREVIATIONS
		/CR/LF	CARRIAGE RETURN/LINE FEED (215,212)
		/F/F	FORM FEED (214)

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 6





		/PAGE ZERO

	0000	*0
000000  0015	INT,	15
000001  6232		CIF 30		/SYMBIONT CODE
000002  5001		JMP .-1
000003  0000	PTR,	0		/V3C USED BY
000004  0000	KNTR,	0		/INPUT ROUTINE
000005  0000	OCTPR1,	0
000006  0000	OCTPR3,	0
000007  0000	FORMF6,	0

		/AUTOINDEX REGISTERS
		/PRESET FOR ONCE ONLY CODE

	0010	*10
000010  1617	PDLXR,	PDLST		/PUSH-DOWN AUTO INDEX REGISTER
000011  0777	TAGXR,	SWAP1-1		/TAG AUTO INDEX REGISTER
000012  1554	XREG1,	DSWIT1-1	/GENERAL AUTO INDEX REGISTER
000013  5714	XREG2,	DSWIT2-1	/GENERAL AUTO INDEX REGISTER

		/NOT USED AS AUTO INDEX REGISTERS
		/EXCEPT DURING ONCE ONLY CODE

000014  1534	LAST1,	DATE-1		/LAST DEFINED SYMBOL
000015  7003	LAST2,	SWAP2-1
		LAST3,	IFZERO	HASH	<SYMPRT+4-1>
000016  1211		IFNZRO	HASH	<SYMNWP-1>
		LAST4,	IFZERO	HASH	<SYMPR9-2-1>
000017  1253		IFNZRO	HASH	<SYMDDT-1>

	0020	*20
000020  0000	TAG1,	0		/TAG STORAGE
000021  0000	TAG2,	0
000022  0000	TAG3,	0

000023  0200	LITPTR,	200		/LITERAL POINTER

000024  0000	RADIX,	0		/7777 IF DECIMAL MODE
000025  0000	PUNCHX,	0		/NON-ZERO IF NO PUNCHING
000026  0000	XLISTX,	0		/NON-ZERO IF NO LISTING
		/*NOTE* PUNCHX AND XLISTX MUST BE TOGETHER
		/AND IN THIS ORDER

000027  0200	LOC,	200		/CURRENT LOCATION
000030  0000	OFFSET,	0		/LOCATION COUNTER OFFSET FROM "LOC"
000031  0000	OFSBUF,	0		/LOCATION COUNTER OFFSET BUFFER
000032  0000	STARSW,	0		/-1 IF NEXT ORIGIN SHOULD BE INHIBITED

000033  0000	OP,	0		/LAST OPERATOR CODE (0-6)
000034  0000	VALUE,	0		/EXPRESSION VALUE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 6-1

000035  0000	VALUE2,	0		/EXPRESSION OPERAND

000036  0000	TXTSWT,	0		/SPACE SWITCH
000037  1740	TXTPTR,	LINBUF+120	/TEXT POINTER
000040  0000	CHAR,	0		/CURRENT CHARACTER

000041  0000	THISPG,	0		/OVERFLOW PAGE
000042  0000	EDITPG,	0		/EDITOR PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 7





000043  0000	TEMP,	0		/TEMPORARY REGISTERS
000044  0000	TEMP1,	0
000045  0000	TEMP2,	0
000046  0000	TEMP3,	0

000047  2401	OCHAR,	OUTPUT		/OUTPUT ROUTINE
000050  2323	OERROR,	OTYPEO		/PASS 1=OTYPEO; 2=OTYPEO; 3=LISOUT
000051  7776	PASS,	-2		/-1 IF PASS 1, 0 IF PASS 2, 1 IF PASS 3
000052  0200	IOMON,	200		/USER SERVICE ROUTINES
000053  0000	CONDSW,	0		/NUMBER OF NESTED CONDITIONALS
000054  0000	EXPIND,	0		/0 IF MRI OK HERE
					/NOT 0 IF MRI NOT OK HERE
000055  0000	CHKSUM,	0		/BINARY CHECK SUM
000056  0000	IZIND,	0		/"I" AND "Z" INDICATOR
					/IF I, LEFT 6 BITS ARE NON-ZERO
					/IF Z, RIGHT 6 BITS ARE NON-ZERO
000057  0000	THISTG,	0		/ASSIGNED NUMBER OF CURRENT TAG
000060  0140	HIGHTG,	SYME-SYMS%4-1	/ASSIGNED NUMBER OF LAST TAG
000061  0000	LINCNT,	0		/LINE COUNT
000062  0000	ALPHAI,	0		/UNDEFINED TAG INDICATOR
					/-1 IF UNDEFINED
000063  0000	GETCI,	0		/NOT=0 IF ONLY CARRIAGE RETURN ENDS LINE
					/OTHERWISE /,;, OR CARRIAGE RETURN ENDS
000064  0000	LSTCNT,	0		/TAB COUNTER
000065  0000	UNDFSW,	0		/UNDEFINED SWITCH
000066  0601	INCTL,	601		/CONTROL WORD - FOR OS/8 I/O
000067  0000	LINKSW,	0		/OFF-PAGE LINK SWITCH
					/0 IF NO LINK GENERATED, 0700 IF LINK
000070  0000	LININD,	0		/BACK-UP FOR LINKSW
000071  5561	PERROR,	PERRO1		/DUMMY ERROR ROUTINE TO SUPPRESS CERTAIN
					/MESSAGES DURING PASS 1
000072  0260	FLDIND,	"0		/CURRENT FIELD IN ASCII DIGIT FORM
000073  0000	VALUEX,	0	/XCODE
000074  0000	ERROR5,	0		/USED BY PACKED ASCII PRINT ROUTINE
000075  0000	BINSRT,	0		/BINARY OR LISTING STARTING
000076  0000	ERCNT,	0		/ERROR COUNTER
000077  0000	LINK,	0		/LINK COUNTER
			IFNZRO HASH<
000100  0000	TAGMAX,	0		/SET TO PRIME # EQ TO MAX # SYMS
			>
	0200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 8





		/STARTING ADDRESS OF PAL8 (0200)
		/CHAINING ADDRESS (0201)

000200  5602	NAME1,	JMP I NAME3	/NAME1-NAME3 USED LATER
000201  5603	NAME2,	JMP I GETTA2	/TO STORE TAGS AS THEY ARE BUILT
000202  1600	NAME3,	BEGIN		/V3C
000203  1604	GETTA2,	NOCD		/BUILDING SWITCH AND OVERFLOW PROTECT


		/HANDLERS FOR NOPUNCH AND ENPUNCH PSEUDO-OPS

000204  7201	NOPUNX,	CLA IAC		/NON-ZERO FOR NO PUNCHING
000205  3025	ENPUNX,	DCA PUNCHX	/ZERO FOR PUNCHING
000206  5577		JMP I [LOOKEX	/--EXIT TO MAIN--


		/HANDLERS FOR DECIMAL AND OCTAL PSEUDO-OPS

000207  7240	DECIMX,	STA		/7777 FOR DECIMAL RADIX
000210  3024	OCTALX,	DCA RADIX	/ZERO FOR OCTAL RADIX
000211  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 9





		/GET A TAG ROUTINE
		/PICKS UP A TAG AND SEARCHES FOR IT
		/"THISTG" HAS NUMBER OF TAG
		/"VALUE2" HAS VALUE
		/AC=7777 ON RETURN IF TAG NOT FOUND, 0 IF FOUND

000212  0000	GETTAG,	0
000213  3200		DCA NAME1	/CLEAR BUILD AREA
000214  3201		DCA NAME2
000215  3202		DCA NAME3
000216  1176		TAD [NAME1
000217  3351		DCA GETTA4	/SET POINTER FOR BUILDING
000220  3203		DCA GETTA2	/ZERO SWITCH
000221  1040	GETTG1,	TAD CHAR	/GET THE CHARACTER
000222  0175		AND [77		/MAKE IT 01-32 OR 60-71
000223  1377		TAD (-32	/WAS IT A TO Z?
000224  7540		SMA SZA
000225  1376		TAD (-25	/NO - MAKE 60-71 INTO 33-44
000226  1375		TAD (32		/YES - IT IS NOW 01-32 OR 33-44
000227  2203		ISZ GETTA2	/LEFT SIDE?
000230  5333		JMP GETTA3	/YES
000231  1751		TAD I GETTA4	/NO - RIGHT SIDE
000232  3751		DCA I GETTA4	/BUILD THE WORD
000233  2351		ISZ GETTA4	/BUMP TO NEXT WORD
000234  4574	GETTA1,	JMS I [GETC	/GET NEXT CHARACTER
000235  4774		JMS I (TSTALN	/IS IT ALPHANUMERIC?
000236  5221		JMP GETTG1	/YES - KEEP BUILDING
			IFZERO HASH<
			TAD HIGHTG	/NO - GET NUMBER OF HIGHEST TAG
			CLL RAR		/DIVIDE BY 2
			DCA TEMP2	/SAVE DIFFERENCE
			DCA THISTG	/START AT TAG ZERO
			CLL CML		/LINK MUST BE ON INITIALLY
			DCA TEMP1


		/GETTA4 IS POINTER TO NAME1-NAME3
		/FOR DEPOSITING TAG AS IT IS BUILT

		/TEMP2 IS # OF TAGS TO SKIP BETWEEN CHECKS FOR MATCH
		/DURING BINARY SEARCHING

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 10





		GETTG2,	SZL		/IS THISTG HIGHER THAN TAG?
			JMP GETTG3	/NO-LOWER
		GETTG4,	DCA TEMP1	/CLEAR LAST TIME SWITCH
			SNL
			ISZ TEMP1	/SET LAST TIME SWITCH TO 1
			TAD TEMP2	/GET # OF TAGS TO SKIP
			SNL
			CIA
			TAD THISTG	/INCREASE OR DECREASE TAG NUMBER
			DCA THISTG
			TAD TEMP2	/GET NUMBER
			CLL RAR		/DIVIDE BY 2
			SNA		/IS RESULT 0?
			ISZ TEMP1	/YES-BUMP LAST TIME SWITCH
			SNA
			IAC		/IF RESULT WAS 1, MAKE IT 2
			DCA TEMP2	/SAVE IT FOR NEXT TIME
			JMS I [FINDTG	/GET THE TAG
			TAD [1777	/MASK
			AND TAG1	/GET WORD 1
			CLL CIA
			TAD NAME1	/DOES IT MATCH?
			SZA CLA
			JMP GETTG2	/NO - TRY NEXT TAG
			AC3777
			AND TAG2	/YES - GET WORD 2
			CLL CIA
			TAD NAME2	/DOES IT MATCH?
			SZA CLA
			JMP GETTG2	/NO - TRY NEXT TAG
			AC3777
			AND TAG3	/YES - DOES IT MATCH?
			CLL CIA
			TAD NAME3
			SZA CLA
			JMP GETTG2	/NO - TRY NEXT TAG
			JMP I GETTAG	/YES--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 11





		GETTG3,	AC7776
			TAD TEMP1	/LAST TIME SWITCH = 2?
			SZA CLA
			JMP GETTG4	/NO-KEEP TRYING
			ISZ THISTG	/YES-QUIT SEARCHING
			DCA VALUE2
			DCA TAG1
			DCA TAG2
			DCA TAG3	/TAG NOT FOUND
			STA		/AC=7777 MEANS NOT FOUND
			JMP I GETTAG	/--RETURN--
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 12





			IFNZRO HASH<
	0100		PRIME=TAGMAX

		GETTGH,/JMS I	[TLYREF	/HACK ONLY
000237  1200		TAD NAME1	/HASH OUR NAME
000240  7106		CLL RTL
000241  1201		TAD	NAME2
000242  7006		RTL
000243  1202		TAD	NAME3
000244  7006		RTL
000245  1200		TAD	NAME1
000246  4272		JMS	PROBE	/NOW PROBE THE TABLE
000247  1200		TAD	NAME1	/RE HASH THE NAME FOR A STEPSIZE
000250  7104		CLL RAL
000251  7006		RTL
000252  1201		TAD	NAME2
000253  7100		CLL		/CALC MODULO PRIME INLINE
000254  1332		TAD	MPRIME
000255  7430		SZL
000256  5253		JMP	.-3
000257  1100		TAD	PRIME
000260  7450		SNA
000261  7001		IAC		/STEPSIZE MUST BE NON ZERO!
000262  3331		DCA	CRPDEL
000263  7100	PRBLUP,	CLL
000264  1057		TAD	THISTG	/BUMP THE POINTER RANDOMLY
000265  1331		TAD	CRPDEL
000266  7430		SZL		/PROTECT AGAINST WRAP AROUND
000267  1332		TAD	MPRIME	/PROBABLY UNOPTIMAL SOLUTION
000270  4272		JMS	PROBE
000271  5263		JMP	PRBLUP

000272  0000	PROBE,	0
000273  7100		CLL
000274  1332		TAD	MPRIME
000275  7430		SZL
000276  5273		JMP	.-3
000277  1100		TAD	PRIME
000300  3057		DCA	THISTG	/THISTG MODULO PRIME
		/	JMS I	[TLYPRB	/HACK ONLY
000301  4573		JMS I	[FINDTG	/GO GET IT
000302  1172		TAD	[1777	/MASK THE TYPE BITS OUT
000303  0020		AND	TAG1	/IS THERE ONE?
000304  7450		SNA
000305  5327		JMP	NOTFND	/NO EXIT POINTING AT IT
000306  7041		CIA		/YES, DO A COMPARE
000307  1200		TAD	NAME1
000310  7640		SZA CLA
000311  5672		JMP I	PROBE
000312  7350		AC3777
000313  0021		AND	TAG2

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 12-1

000314  7041		CIA
000315  1201		TAD	NAME2
000316  7640		SZA CLA
000317  5672		JMP I	PROBE
000320  7350		AC3777
000321  0022		AND	TAG3
000322  7041		CIA
000323  1202		TAD	NAME3
000324  7640		SZA CLA
000325  5672		JMP I	PROBE	/FOUND EXIT WITH AC CLEAR
000326  5612		JMP I	GETTAG
000327  7240	NOTFND,	STA		/NOT FOUND EXIT WITH AC SET
000330  5612		JMP I	GETTAG

000331  0000	CRPDEL,	0
000332  0000	MPRIME,	0		/INITIALIZED BY ONCE ONLY CODE FOR MACHINE AT HAND
			>


000333  3203	GETTA3,	DCA GETTA2	/SAVE CHAR
000334  1203		TAD GETTA2
000335  7106		CLL RTL		/*4
000336  7004		RAL		/*10
000337  1203		TAD GETTA2	/*11
000340  7006		RTL		/*44
000341  1203		TAD GETTA2	/*45
000342  3751		DCA I GETTA4	/SET LEFT SIDE
000343  1351		TAD GETTA4
000344  1373		TAD (-GETTA2
000345  7640		SZA CLA		/IS THIS AN OVERFLOW (>6) CHAR?
000346  7240		STA		/NO - SET SWITCH TO RIGHT HALF
000347  3203		DCA GETTA2	/YES - LEAVE SWITCH AT LEFT HALF
000350  5234		JMP GETTA1

000351  0200	GETTA4,	NAME1

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 13





		/IGNORE SPACES ROUTINE

000352  0000	SPNOR,	0
000353  1040		TAD CHAR	/GET THE CHARACTER
000354  1171		TAD [-240	/IS IT A SPACE?
000355  7640		SZA CLA
000356  5752		JMP I SPNOR	/NO --RETURN--
000357  4574		JMS I [GETC	/YES - GET NEXT CHARACTER
000360  5353		JMP SPNOR+1	/LOOP


		/HANDLER FOR PAUSE PSEUDO-OP
		/END-OF-TAPE OR END-OF-FILE

000361  7330	PAUSEX,	AC4000
000362  3040		DCA CHAR	/SET END-OF-LINE CHARACTER
000363  1170		TAD [LINBUF+120	/REINITIALIZE TEXT POINTER
000364  3037		DCA TXTPTR
000365  7240		CLA CMA
000366  3772		DCA I (INCHCT	/INDICATE EMPTY BUFFER
000367  2771		ISZ I (INEOF	/SET END-OF-FILE
000370  5577		JMP I [LOOKEX	/--EXIT TO MAIN--
000371  5275
000372  5274
000373  7575
000374  5146
000375  0032
000376  7753
000377  7746
	0400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 14





		/OUTPUT 2 CHARACTER ERROR CODE

000400  0000	ERROR1,	0
000401  3074		DCA ERROR5
000402  1074		TAD ERROR5
000403  4567		JMS I [RTL6
000404  7004		RAL
000405  0175		AND [77
000406  1166		TAD [240	/CONVERT SIXBIT TO ASCII
000407  4450		JMS I OERROR	/OUTPUT FIRST CHAR
000410  1074		TAD ERROR5
000411  0175		AND [77
000412  1166		TAD [240
000413  4450		JMS I OERROR	/OUTPUT SECOND CHAR
000414  5600		JMP I ERROR1	/--RETURN--

		/HANDLER FOR FIELD PSEUDO-OP

000415  4565	FIELDX,	JMS I [SPNOR	/IGNORE SPACES
000416  4564		JMS I [DUMPS	/DUMP CURRENT PAGE LITERALS
000417  4563		JMS I [DUMPZ	/DUMP PAGE ZERO LITERALS
000420  4562		JMS I [EXP	/GET EXPRESSION
000421  1034		TAD VALUE	/TRIM TO RIGHT 3 BITS
000422  0161		AND [7
000423  3072		DCA FLDIND	/STORE FOR LISTING
000424  1034		TAD VALUE
000425  0160		AND [30
000426  3073		DCA VALUEX
000427  1051		TAD PASS	/IS THIS PASS 2?
000430  7640		SZA CLA
000431  5240		JMP FIELDY	/NO - PREPARE TO EXIT
000432  4557		JMS I [XCHANG	/XCODE
000433  1072		TAD FLDIND	/YES - GET FIELD NUMBER
000434  7106		CLL RTL
000435  7004		RAL		/AND CHANNELS 7 AND 8
000436  1156		TAD [7700
000437  4447		JMS I OCHAR	/OUTPUT FIELD SETTING
000440  4555	FIELDY,	JMS I [CLEAN	/CLEAN UP THINGS
000441  1176		TAD [200	/RESET ORIGIN TO 200
000442  5260		JMP STAR1

		/CHANGE LAST 2 LOCATIONS TO:
		/	CLA
		/	JMP STAR1+1
		/FOR INDAC GROUP TO OMIT RE-ORIGIN
		/HANDLER FOR PAGE PSEUDO-OP

000443  4564	PAGEX,	JMS I [DUMPS	/DUMP SAME PAGE LITERALS
000444  4777		JMS I (XLISTZ	/ANY EXPRESSION?
000445  5253		JMP PAGEY	/NO
000446  4562		JMS I [EXP	/YES - GET EXPRESSION

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 14-1

000447  1034		TAD VALUE
000450  4567		JMS I [RTL6
000451  7004		RAL		/GET PAGE NUMBER
000452  5255		JMP STAR3-1

000453  1027	PAGEY,	TAD LOC		/NO ARGUMENT - FIND NEXT PAGE
000454  1154		TAD [177
000455  0153		AND [7600
000456  3034	STAR3,	DCA VALUE
000457  1034		TAD VALUE	/GET START OF PAGE
000460  4552	STAR1,	JMS I [PUNORG	/PUNCH ORIGIN
000461  4551		JMS I [FINDSP
000462  1150		TAD [LITBUF	/RESET POINTERS
000463  3043		DCA TEMP
000464  1443		TAD I TEMP
000465  3023		DCA LITPTR	/INITIALIZE LITERAL POINTER FOR NEW PAGE
000466  3014		DCA LAST1
000467  3070		DCA LININD
000470  5547		JMP I [PUNVAL	/SEE ABOUT DUMPING SOURCE CODE

		/HANDLER FOR FIXMRI PSEUDO-OP

000471  4565	FIXMRX,	JMS I [SPNOR	/IGNORE SPACES
000472  4546		JMS I [TSTALP	/IS CHARACTER ALPHABETIC?
000473  5276		JMP FIXMR1	/YES-CONTINUE
000474  4545		JMS I [ICMESG	/NO - GENERATE IC MESSAGE, GET NEXT CHAR
000475  5272		JMP FIXMRX+1	/KEEP LOOKING FOR ALPHABETIC CH. OR END OF LINE
000476  4544	FIXMR1,	JMS I [GETTAG	/PICK UP TAG
000477  3062		DCA ALPHAI	/STORE UNDEFINED SWITCH
000500  7410		SKP
000501  4545	FIXMR2,	JMS I [ICMESG
000502  4565		JMS I [SPNOR	/IGNORE SPACES
000503  1040		TAD CHAR	/WAS CHARACTER = ?
000504  1376		TAD (-"=
000505  7640		SZA CLA
000506  5301		JMP FIXMR2	/NO - PRINT IC MESSAGE AND KEEP LOOKING
					/FALL INTO EQUALS PROCESSOR

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 15





		/HANDLER FOR =

000507  7330		AC4000		/FALL INTO HERE FROM FIXMRI
000510  4543	EQUAL,	JMS I [PUSHA	/PUSH FIXMRI FLAG
000511  4574		JMS I [GETC	/GET NEXT CHARACTER
000512  1576		TAD I [NAME1	/STORE THE SYMBOL NAME
000513  4543		JMS I [PUSHA	/ON THE PUSH DOWN LIST
000514  1775		TAD I (NAME2
000515  4543		JMS I [PUSHA
000516  1774		TAD I (NAME3
000517  4543		JMS I [PUSHA
000520  1057		TAD THISTG	/AND ITS PRESENT (OR FUTURE)
000521  4543		JMS I [PUSHA	/POSITION IN THE SYMTAB
000522  1062		TAD ALPHAI
000523  4543		JMS I [PUSHA	/STORE UNDEFINED INDICATOR
000524  4565		JMS I [SPNOR	/IGNORE SPACES
000525  4562		JMS I [EXP	/GET EXPRESSION TO RIGHT OF =
000526  1410		TAD I PDLXR
000527  3062		DCA ALPHAI	/RESTORE UNDEFINED INDICATOR
000530  1410		TAD I PDLXR
000531  3057		DCA THISTG	/RESTORE SYMBOL TABLE POSITION
000532  1410		TAD I PDLXR	/RESTORE TAG NAME
000533  3774		DCA I (NAME3
000534  1410		TAD I PDLXR
000535  3775		DCA I (NAME2
000536  1410		TAD I PDLXR
000537  3576		DCA I [NAME1
000540  2065		ISZ UNDFSW	/WAS ANY PART OF DEFINITION UNDEFINED?
000541  5346		JMP EQUAL3	/NO
000542  4471		JMS I PERROR	/YES - GENERATE IE ERROR MESSAGE
000543  5145		IE
000544  2010		ISZ PDLXR	/CLEAR EXTRA WORD FROM PDL
000545  5547		JMP I [PUNVAL	/FORGET ABOUT DEFINING TAG

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 16





		/MORE = PROCESSING

000546  2062	EQUAL3,	ISZ ALPHAI	/WAS TAG DEFINED BEFORE?
000547  5352		JMP .+3		/YES - CHECK FOR ILLEGAL REDEFINITION
000550  4542		JMS I [INSRTG	/NO - INSERT TAG INTO SYMBOL TABLE
000551  5364		JMP EQUAL2	/AND BYPASS ILLEGAL REDEF CHECK
000552  4573		JMS I [FINDTG	/PUT TAG IN TAG1-TAGE AND VALUE2
000553  1034		TAD VALUE
000554  7041		CIA
000555  1035		TAD VALUE2
000556  7640		SZA CLA		/WERE DEFINITIONS THE SAME?
000557  1020		TAD TAG1	/NO - IS IT A PERMANENT SYMBOL?
000560  7700		SMA CLA
000561  5364		JMP EQUAL2	/NO - OK TO REDEFINE
000562  4541		JMS I [ERROR	/YES - GENERATE RD ERROR MESSAGE FIRST
000563  6244		RD
000564  1034	EQUAL2,	TAD VALUE	/DEFINE OR REDEFINE
000565  3035		DCA VALUE2
000566  7350		AC3777
000567  0021		AND TAG2	/CLEAR OLD FIXMRI BIT
000570  1410		TAD I PDLXR	/INSERT NEW ONE
000571  3021		DCA TAG2
000572  4540		JMS I [PUTTAG	/STORE TAG
000573  5547		JMP I [PUNVAL	/SEE ABOUT DUMPING SOURCE CODE
000574  0202
000575  0201
000576  7503
000577  5547
	0600		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 17





		/ROTATE AC 6 LEFT

000600  0000	RTL6,	0
000601  7106		CLL RTL
000602  7006		RTL
000603  7006		RTL
000604  5600		JMP I RTL6	/--RETURN--


		/GET NEXT CHARACTER ROUTINE
		/READS FROM THE INPUT FILES AND PASSES THE MODIFIED CHARACTERS
		/TO THE PROGRAM
		/IT ALSO PRINTS THE LATEST LINE IF IT HAS NOT BEEN PRINTED

000605  0000	GETC,	0
000606  2037		ISZ TXTPTR	/POINT TO NEXT CHARACTER
000607  1437	GETC7,	TAD I TXTPTR	/GET NEXT CHARACTER
000610  7440		SZA		/IS IT 0?
000611  5257		JMP GETC8	/NO - MORE ARE IN THIS LINE
000612  1051		TAD PASS	/IS THIS PASS 3?
000613  7750		SPA SNA CLA
000614  5232		JMP GETC1	/NO
000615  1137		TAD [LINBUF	/YES
000616  3037		DCA TXTPTR	/RESET POINTER TO BEGINNING
000617  1437		TAD I TXTPTR	/GET 1ST CHARACTER
000620  7450		SNA		/IS IT 0?
000621  5232		JMP GETC1	/YES - LINE HAS BEEN PRINTED
000622  1136		TAD [-215	/IS IT 215?
000623  7650		SNA CLA
000624  5231		JMP GETC2	/YES - DO NOT PRINT THE SPACES
000625  1135		TAD [211	/NO-OUTPUT 2 TABS
000626  4450		JMS I OERROR
000627  1135		TAD [211
000630  4450		JMS I OERROR
000631  4335	GETC2,	JMS LINPRT	/NOW PRINT THE LINE
000632  1377	GETC1,	TAD (-121
000633  3036		DCA TXTSWT
000634  1376		TAD (LINBUF-1
000635  3037		DCA TXTPTR	/RESET POINTER
000636  2037		ISZ TXTPTR
000637  4775	GETC6,	JMS I (INPUT	/GET NEXT CHARACTER
000640  5247		JMP GETC4	/215
000641  3437		DCA I TXTPTR	/STORE THE CHARACTER
000642  2036		ISZ TXTSWT	/TOO MANY?
000643  5236		JMP GETC6-1	/NO
000644  7240		CLA CMA		/YES
000645  3036		DCA TXTSWT
000646  5237		JMP GETC6

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 18





000647  3437	GETC4,	DCA I TXTPTR	/SET END
000650  2037		ISZ TXTPTR
000651  3437		DCA I TXTPTR	/SET END OF LINE
000652  1137		TAD [LINBUF
000653  3037		DCA TXTPTR	/RESET POINTER
000654  7240		CLA CMA
000655  3036		DCA TXTSWT	/RESET SWITCH
000656  5207		JMP GETC7	/GET THAT CHARACTER

000657  1136	GETC8,	TAD [-215	/IS IT A CARRIAGE RETURN?
000660  7450		SNA
000661  5307		JMP GETC12	/YES-END OF LINE
000662  1063		TAD GETCI	/NO-
000663  1374		TAD (215-"/	/IS IT A /?
000664  7450		SNA		/YES-
000665  5315		JMP GETC13	/"/" IS END
000666  1373		TAD ("/-";	/IS IT A ;?
000667  7450		SNA		/YES-
000670  5307		JMP GETC12	/";" IS END
000671  1372		TAD (";-211	/IS IT A TAB?
000672  7440		SZA
000673  1371		TAD (211-240	/OR A SPACE?
000674  7640		SZA CLA
000675  5310		JMP GETC9	/NO-NOT ANYTHING SPECIAL
000676  2036		ISZ TXTSWT	/YES-2ND OCCURANCE?
000677  5206		JMP GETC+1	/YES - IGNORE
000700  1166		TAD [240
000701  3040		DCA CHAR	/NO - GIVE A SPACE
000702  5605		JMP I GETC	/--RETURN--

000703  2053	GETC16,	ISZ CONDSW	/DECREMENT CONDITIONAL COUNTER
000704  5321		JMP GETC15
000705  1170	GETC17,	TAD [LINBUF+120
000706  3037		DCA TXTPTR
000707  7330	GETC12,	AC4000
000710  1437	GETC9,	TAD I TXTPTR
000711  3040		DCA CHAR	/STORE CHARACTER
000712  7240		CLA CMA
000713  3036		DCA TXTSWT	/SET THE SWITCH
000714  5605		JMP I GETC	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 19





000715  1053	GETC13,	TAD CONDSW	/CURRENTLY IN CONDITIONALS?
000716  7450		SNA
000717  5305		JMP GETC17	/NO
000720  3053		DCA CONDSW	/STORE UPDATED CONDITIONAL LEVEL
000721  2037	GETC15,	ISZ TXTPTR	/YES-SCAN LINE FOR < AND >
000722  1437		TAD I TXTPTR
000723  1136		TAD [-215	/IS CHARACTER A CARRIAGE RETURN?
000724  7450		SNA
000725  5305		JMP GETC17	/YES
000726  1370		TAD (215-">	/NO IS IT A >?
000727  7450		SNA
000730  5303		JMP GETC16	/YES
000731  1367		TAD (">-"<	/NO-IS IT <?
000732  7650		SNA CLA
000733  7240		STA		/YES - INCREMENT CONDITIONAL COUNTER
000734  5315		JMP GETC13	/NO - KEEP LOOKING


		/CHAR IS NEGATIVE IF LOGICAL END OF LINE:
		/	CARRIAGE RETURN
		/	/
		/	;

		/CHAR MAY BE ZERO IF PHYSICAL END OF LINE:
		/	CARRIAGE RETURN

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 20





		/PRINT A LINE OF SOURCE CODE

000735  0000	LINPRT,	0
000736  1376		TAD (LINBUF-1
000737  3012		DCA XREG1	/SET POINTER TO LINE
000740  1412	LINPR1,	TAD I XREG1	/GET CHARACTER
000741  7450		SNA		/IS IT END OF LINE?
000742  5735		JMP I LINPRT	/YES - END LINE
000743  4450		JMS I OERROR	/NO - OUTPUT CHARACTER
000744  3537		DCA I [LINBUF	/CLEAR OUT 1ST CHAR IN LINE AS "PRINTED" FLAG
000745  5340		JMP LINPR1

		/HANDLE PHASE ERROR
		/AND ALL ERROR EXITS TO MONITOR

000746  7200	SYMOFL,	CLA
000747  1366		TAD (SE		/SYMBOL TABLE EXCEEDED MESSAGE
000750  3354	MONERR,	DCA MONER1	/ERROR IS SERIOUS ENOUGH TO
000751  1365	PHASE,	TAD (OTYPEO	/ CAUSE IMMEDIATE RETURN TO
000752  3050		DCA OERROR	/ MONITOR
000753  4541		JMS I [ERROR
000754  6050	MONER1,	PH		/STORE ERROR TYPE HERE
000755  5553		JMP I [7600	/***EXIT TO MONITOR***


		/FIND CURRENT PAGE NUMBER
		/EXIT WITH NUMBER IN AC

000756  0000	FINDSP,	0
000757  1027		TAD LOC
000760  0153		AND [7600
000761  4567		JMS I [RTL6
000762  5756		JMP I FINDSP	/--RETURN--
000765  2323
000766  6345
000767  0002
000770  7717
000771  7751
000772  0062
000773  7764
000774  7736
000775  5200
000776  1617
000777  7657
	1000		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 21





		/**********************************************************
		/THIS AREA IS SWAPPED OUT DURING PASS 1 AND 2
		/** NO LITERALS IN THIS PAGE, AS THERE IS A PAGE OVERLAYING IT **

	1000	SWAP1=.

		/PASS 3 LISTING OUTPUT

001000  0000	LISOUT,	0
001001  3231		DCA LISOU2
001002  1026		TAD XLISTX	/IS THIS COVERED BY XLIST?
001003  7640		SZA CLA
001004  5600		JMP I LISOUT	/YES--RETURN--
001005  2230		ISZ LISCNT	/NO-WAS PREVIOUS CHARACTER A 215?
001006  5215		JMP LISOU1	/NO
001007  2061		ISZ LINCNT	/WAS IT END OF PAGE?
001010  5215		JMP LISOU1	/NO
001011  2041		ISZ THISPG	/YES-START OVERFLOW PAGE
001012  4357	BEGIAB,	JMS CRLF	/OUTPUT CARRIAGE RETURN/LINE FEED
001013  4534	HSWIT1,	JMS I [FORMFD	/0 IF /H SWITCH OPTION TO SUPRESS PAGING
001014  2061		ISZ LINCNT
001015  1231	LISOU1,	TAD LISOU2	/IS CHARACTER A CARRIAGE RETURN?
001016  1136		TAD [-215
001017  7450		SNA
001020  5224		JMP LISOU3	/YES - OUTPUT CR/LF
001021  1133		TAD [215	/NO - RESTORE CHARACTER
001022  4447		JMS I OCHAR	/OUTPUT CHARACTER
001023  5600		JMP I LISOUT	/--RETURN--

001024  7240	LISOU3,	CLA CMA
001025  3230		DCA LISCNT	/REMEMBER THE 215 FOR NEXT TIME
001026  4357		JMS CRLF	/OUTPUT CARRIAGE RETURN/LINE FEED
001027  5600		JMP I LISOUT	/--RETURN--

001030  7777	LISCNT,	-1
001031  0000	LISOU2,	0

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 22





		/FORM FEED OUTPUT ROUTINES

001032  0000	FORMFD,	0
001033  1061		TAD LINCNT	/GET LINE COUNTER
001034  1303		TAD FORMLN
001035  7650		SNA CLA		/ARE WE AT TOP OF PAGE?
001036  5632		JMP I FORMFD	/YES - NO NEED FOR FORM FEED
001037  1026		TAD XLISTX	/IS THIS COVERED BY XLIST?
001040  7640		SZA CLA
001041  5632		JMP I FORMFD	/YES--RETURN--
001042  5255	HSWITC,	JMP FORMF1	/0 IF /T OR TTY:; JMP FORMF3 IF /H
					/OUTPUT IF TTY:OR /T OPTION
		/	TAD LINCNT	/V40 DON'T WASTE PAPER
001043  1132		TAD [-4
001044  3061		DCA LINCNT
001045  4357		JMS CRLF	/OUTPUT CARRIAGE RETURN/LINE FEED
001046  2061		ISZ LINCNT
001047  5362		JMP CRLF1	/OUTPUT LINE FEED
					/CRLF1 WILL RETURN TO
					/JMP-1 UNTIL LINCNT HAS
					/BEEN BUMPED SUFFICIENTLY
001050  1355		TAD FORMM6
001051  3061		DCA LINCNT
001052  1305		TAD MINUS	/OUTPUT ------
001053  4447		JMS I OCHAR
001054  2061		ISZ LINCNT	/* NEXT 3 LOCS CHANGED IF NO /T OR TTY:
001055  5252	FORMF1,	JMP .-3		/* STA
001056  1132		TAD [-4		/* DCA LINCNT	/GENERATE ONE FORM FEED
001057  3061		DCA LINCNT	/* STA		/TURN CR INTO FF
001060  4357		JMS CRLF	/OUTPUT CR/LF OR FF/LF
001061  2061		ISZ LINCNT
001062  5362		JMP CRLF1	/OUTPUT LINE FEED
001063  1303		TAD FORMLN
001064  7041		CIA
001065  3061		DCA LINCNT
001066  1131	FORM22,	TAD [HEADER-1	/OUTPUT HEADER
001067  3013		DCA XREG2
001070  3064		DCA LSTCNT
001071  1413	FORM30,	TAD I XREG2	/GET NEXT CHARACTER OF HEADING
001072  7450		SNA		/IS IT LAST + 1
001073  5306		JMP FORM20	/YES
001074  4447		JMS I OCHAR	/NO-OUTPUT IT
001075  1064		TAD LSTCNT
001076  1130		TAD [-HEDLEN	/DONE "HEDLEN" CHARACTERS YET?
001077  7640		SZA CLA
001100  5271		JMP FORM30	/NO-CONTINUE
001101  1304		TAD FORMHD	/YES-START SYSTEM HEADER
001102  5266		JMP FORM22	/WHICH STARTS AT HEADER+HEDLEN

001103  0070	FORMLN,	LNPRPG
001104  0050	FORMHD,	HEDLEN

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 22-1

001105  0255	MINUS,	"-

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 23





		/TTY: OR /T OUTPUTS FORM FEED AS
		/CARRIAGE RETURN, MULTIPLE LINE FEEDS TO END OF PAGE
		/------
		/CARRIAGE RETURN, 5 LINE FEEDS
		/HEADER
		/NO OPTIONS TREATS F/F AS
		/F/F, LF, CR/LF
		/HEADER

		/ /H OPTION TREATS F/F AS 2 CR/LF

		/USER HEADER IS "HEDLEN" CHARACTERS WIDE
		/ASSEMBLER HEADER ENDS WITH 0


		/OUTPUT PAGE NUMBERS

001106  1042	FORM20,	TAD EDITPG	/OUTPUT EDITOR PAGE NUMBER
001107  4322		JMS FORMF4
001110  1041		TAD THISPG	/IS THERE PAGE OVERFLOW?
001111  7650		SNA CLA
001112  5317	FORM21,	JMP FORMF3	/NO
001113  1305		TAD MINUS	/YES
001114  4447		JMS I OCHAR	/OUTPUT -
001115  1041		TAD THISPG	/OUTPUT NUMBER OF OVERFLOW PAGE
001116  4322		JMS FORMF4
					/OUTPUT IF /H OPTION
001117  4357	FORMF3,	JMS CRLF	/OUTPUT 2 CR/LF
001120  4357		JMS CRLF
001121  5632		JMP I FORMFD	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 24





		/DECIMAL PRINT ROUTINE

001122  0000	FORMF4,	0
001123  3007		DCA FORMF6	/SAVE NUMBER
001124  1356		TAD FORM8F
001125  3357		DCA CRLF	/POINT TO DIVISION LIST
001126  3365	FORM12,	DCA FORMF7	/START WITH 0
001127  5332		JMP .+3
001130  3007	FORMF5,	DCA FORMF6
001131  2365		ISZ FORMF7	/ADD 1 TO DIGIT
001132  1757		TAD I CRLF	/SUBTRACT 1000, 100, OR 10
001133  7450		SNA
001134  5351		JMP FORM11	/0 IS END OF TABLE - NO MORE DIGITS
001135  1007		TAD FORMF6
001136  7500		SMA		/OVERFLOW
001137  5330		JMP FORMF5	/NO-KEEP SUBTRACTING
001140  7200		CLA		/YES-DIGIT DONE
001141  2357		ISZ CRLF	/BUMP LIST POINTER
001142  1365		TAD FORMF7	/WAS DIGIT A 0?
001143  7450		SNA
001144  5326		JMP FORM12	/YES
001145  1127		TAD ["0		/NO-MAKE IT ASCII
001146  4447		JMS I OCHAR	/OUTPUT DIGIT
001147  7330		AC4000
001150  5326		JMP FORM12	/4000 IN AC FORCES SIGNIFICANCE

001151  1007	FORM11,	TAD FORMF6	/GET LAST DIGIT (UNITS PLACE)
001152  1127		TAD ["0
001153  4447		JMS I OCHAR	/OUTPUT DIGIT
001154  5722		JMP I FORMF4	/--RETURN--

001155  7772	FORMM6,	-6
001156  5564	FORM8F,	FORMF8

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 25





		/OUTPUT CARRIAGE RETURN/LINE FEED
		/ENTER WITH AC=-1 TO GENERATE F/F LF

		HEDCL2,
001157  0000	CRLF,	0
001160  1133		TAD [215
001161  4447		JMS I OCHAR
001162  1144	CRLF1,	TAD [212	/RE-ENTRY FOR MULTIPLE LINE FEEDS
001163  4447		JMS I OCHAR
001164  5757		JMP I CRLF	/--RETURN--

		/CLEAR PAGE HEADING BUFFER

		FORMF7,
001165  0000	HEDCLR,	0
001166  1130		TAD [-HEDLEN	/SET HEADING BUFFER
001167  3357		DCA HEDCL2	/TO TABS
001170  1131		TAD [HEADER-1
001171  3013		DCA XREG2
001172  1135		TAD [211
001173  3413		DCA I XREG2
001174  2357		ISZ HEDCL2
001175  5372		JMP .-3
001176  5765		JMP I HEDCLR	/--RETURN--
	1200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 26





		/SYMBOL TABLE OUTPUT (COLUMNAR)
					/*CODE TO GENERATE DDT COMPATIBLE*
					/**SYMBOL TABLE--SUBSTITUTED WITH*
					/**ONCE ONLY CODE IF NEEDED*******
			IFZERO	HASH<

		SYMPRT,	0
			ISZ EDITPG			/NEW PAGE
			DCA THISPG
			JMS I [FORMFD
			TAD SMIN67	/DCA I SYMPR6-1
			DCA SYMPR7	/JMS SYMPR9+6
		SYMPR8,	DCA SYMPR2	/TAD [377	//RUBOUT
			CLA CMA		/JMS I OERROR
			DCA THISTG	/CLA CMA
			TAD SYMPR2	/DCA THISTG
			CMA		/TAD [215	//CARRIAGE RETURN
			DCA SYMPR3	/JMS I OERROR
		SYMPR5,	ISZ SYMPR3	/JMS SYMPPP
			JMP SYMPR4	/JMP SYMPR9-1
			TAD [-4		/JMP SYMPR6+2
			DCA SYMPR3	/HSWIT1
		SYMPR6,	JMS SYMPPP	/204		//EOT
			JMP SYMPRB
		SYMPR1,	TAD [1777
			AND TAG1			/OUTPUT TAG
			JMS I SDIV45
			TAD TAG2
			JMS I SDIV45
			TAD TAG3
			JMS I SDIV45
			TAD [240
			JMS I OERROR			/OUTPUT SPACE
			TAD VALUE2
			JMS OCTPRT			/OUTPUT OCTAL VALUE
			ISZ SYMPR3	/JMP SYMPR5-2
			JMP SYMPR0	/TAD SYMPR6
		SYMPR9,	TAD [215	/JMS I OERROR	/CARRIAGE RETURN
			JMS I OERROR	/TAD [377	//RUBOUT
		SYMPRB,	ISZ SYMPR7	/JMS I OERROR
			JMP SYMPRA	/JMS SYMPR9+6
		HSWIT2,	JMS I [FORMFD	/DCA LINCNT	/0 IF NOT /H
			TAD SMIN67	/JMP I SYMPRT	//--RETURN--
			DCA SYMPR7	/0
			TAD SYMOFS	/TAD [-200
		SYMPRA,	IAC		/DCA SYMPR2
			TAD SYMPR2	/TAD [200	//LEADER-TRAILER
			JMP SYMPR8	/JMS I OERROR

		SYMPR4,	JMS SYMPPP	/ISZ SYMPR2
			JMP I SYMPRT	/JMP SYMPR4-2	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 26-1

			JMP SYMPR5	/JMP I SYMPR9+6

		SDIV45,	DIV45
		SMIN67,	1-LNPRPG

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 27





		SYMPR0,	TAD SMIN67
			DCA SYMPPB
			JMS SYMPPP	/SKIP 67(8) SYMBOLS
			JMP SYMPR9
			ISZ SYMPPB
			JMP .-3
			JMS I [ERROR1
			JMS I [ERROR1
			JMS I [ERROR1
			JMP SYMPR1	/GO PRINT THE 67TH(8) SYMBOL

		SYMPR2=	LINKSW
		SYMPR3=	UNDFSW
		SYMPR7=	ALPHAI
		SYMPPB=	CHKSUM

		SYMPPP,	0
			ISZ THISTG
		SYMOFS,	245
			TAD THISTG
			CLL CIA
			TAD HIGHTG
			SNL CLA
			JMP I SYMPPP	/--RETURN--
			JMS I [FINDTG
			AC4000
			AND TAG1
			TAD TAG3
			SPA SZL CLA
			JMP SYMPPP+1
			ISZ SYMPPP
			JMP I SYMPPP	/--RETURN--
		/SYMNCL,	-4	/DEFAULT IN LIU OF =N OPTION
		/SYMOFS,	245	/OFFSET TO FIRST SYM ON NEXT PAGE

			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 28





			IFNZRO	HASH<

001200  0000	SYMPRT,	0
001201  2042		ISZ	EDITPG
001202  3041		DCA	THISPG
001203  4534		JMS I	[FORMFD	/OUTPUT A HEADING
001204  4701		JMS I	SYMHND	/NOW READ THE SYMBOL TABLE SORT OVERLAY
001205  0200		0200		/2 PAGES
001206  6600	SYMSRT,	OUDEVH+400	/TO HERE
001207  0041		ASWAP+1		/FROM HERE
001210  5700		JMP I	SYMERR	/UGH
001211  4606		JMS I	SYMSRT	/SORT THEM AND SET LINK
001212  3067	SYMNWP,	DCA	SYMTAG	/POINT TO SYMBOL
001213  7430		SZL		/LINK OFF IF ANY SYMBOLS TO LIST
001214  5600		JMP I	SYMPRT	/NONE --RETURN--
001215  1277		TAD	SMIN67	/SET LINE/PAGE COUNT
001216  3065		DCA	SYMLCT
001217  1060	SYMPAG,	TAD	HIGHTG
001220  7141		CLL CIA
001221  1067		TAD	SYMTAG
001222  7630		SZL CLA
001223  5600		JMP I	SYMPRT	/NO MORE IF AT HIGHTAG NOW
001224  1067		TAD	SYMTAG
001225  3057		DCA	THISTG	/PREPARE TO PRINT LEFTMOST SYMBOL
001226  1303		TAD	SYMNCL	/4 PER LINE (DEFAULT)
001227  3062		DCA	SYMCCT	/TO COLLUMS/LINE CNTR
001230  5241		JMP	SYMGO
001231  4526	SYMLIN,	JMS I	[ERROR1
001232  4526		JMS I	[ERROR1
001233  4526		JMS I	[ERROR1
001234  1060		TAD	HIGHTG
001235  7141		CLL CIA
001236  1057		TAD	THISTG
001237  7630		SZL CLA
001240  5264		JMP	SYMNXL	/SKIP TO NEXT LINE IF OFF TABLE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 29





001241  4573	SYMGO,	JMS I	[FINDTG	/OK, GET IT
001242  1020		TAD	TAG1
001243  4676		JMS I	SDIV45
001244  1021		TAD	TAG2
001245  4676		JMS I	SDIV45
001246  1022		TAD	TAG3
001247  4676		JMS I	SDIV45
001250  1166		TAD	[240
001251  4450		JMS I	OERROR
001252  1035		TAD	VALUE2	/PRINT VALUE NOW
001253  4310		JMS	OCTPRT
001254  1277	SYMDDT,	TAD	SMIN67
001255  7141		CLL CIA
001256  1057		TAD	THISTG
001257  3057		DCA	THISTG
001260  7430		SZL
001261  5264		JMP	SYMNXL	/SKIP IF WRAP AROUND
001262  2062		ISZ	SYMCCT	/ELSE DO NEXT COLUMN
001263  5231		JMP	SYMLIN
001264  1133	SYMNXL,	TAD	[215
001265  4450		JMS I	OERROR	/CR/LF
001266  2067		ISZ	SYMTAG	/POINT TO NEXT SYMBOL
001267  2065		ISZ	SYMLCT
001270  5217		JMP	SYMPAG
001271  4534	HSWIT2,	JMS I	[FORMFD
001272  1067		TAD	SYMTAG
001273  7100		CLL
001274  1302		TAD	SYMOFS	/OFFSET TO NEXT SYMBOL
001275  5212		JMP	SYMNWP	/DO THE NEXT PAGE

001276  4217	SDIV45,	DIV45
001277  7711	SMIN67,	-67
001300  2761	SYMERR,	SYSERR
001301  7607	SYMHND,	7607
001302  0245	SYMOFS,	245		/DEFAULT
001303  7774	SYMNCL,	-4
	0067		SYMTAG=	LINKSW
	0065		SYMLCT=	UNDFSW
	0062		SYMCCT=	ALPHAI
001304  0000		ZBLOCK	4	/WASTE SOME SPACE
			>


		/END OF AREA WHICH MAY BE SWAPPED OUT
		/DURING PASSES 1 AND 2
		/**********************************************************************

	1310		ENDOVL=	.

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 30





		/OCTAL PRINT ROUTINE
		/ENTER WITH # TO BE OUTPUT IN AC
		/** DO NOT USE TEMPS BELOW THIS LOC!

001310  0000	OCTPRT,	0
001311  3005		DCA OCTPR1
001312  1132		TAD [-4
001313  3006		DCA OCTPR3
001314  1005	OCTPR2,	TAD OCTPR1	/GET EACH DIGIT SEPARATELY
001315  7106		CLL RTL
001316  7004		RAL
001317  3005		DCA OCTPR1
001320  1005		TAD OCTPR1
001321  7004		RAL
001322  0161		AND [7
001323  1127		TAD ["0		/MAKE IT INTO AN ASCII CHARACTER
001324  4450		JMS I OERROR	/OUTPUT IT
001325  2006		ISZ OCTPR3
001326  5314		JMP OCTPR2
001327  5710		JMP I OCTPRT	/--RETURN--


/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 31





		/OUTPUT ONE REGISTER

001330  0000	PUNONE,	0
001331  1051		TAD PASS	/WHICH PASS IS THIS?
001332  7450		SNA
001333  5374		JMP PUNON2	/PASS 2--OUTPUT BINARY
001334  7710		SPA CLA
001335  5372		JMP PUNON3	/PASS 1--EXIT
001336  1073		TAD VALUEX	/THE BANK BIT IS
001337  7112		CLL RTR		/ADJUSTED TO ASCII
001340  7010		RAR
001341  1127		TAD ["0
001342  4450		JMS I OERROR	/THEN PRINTED
001343  1072		TAD FLDIND	/GET FIELD NUMBER
001344  1127		TAD ["0		/CONVERT TO ASCII
001345  4450		JMS I OERROR	/PRINT IT
001346  1027		TAD LOC		/GET LOW ORDER 4 DIGITS (LOC CTR)
001347  4310		JMS OCTPRT	/PRINT IT TOO
001350  1030		TAD OFFSET	/IF THIS CODE IS IN A RELOC SECTION,
001351  7640		SZA CLA		/
001352  1125		TAD [1200	/FLAG THE LOCATION COUNTER WITH A *
001353  4526		JMS I [ERROR1	/OUTPUT 2 SPACES
001354  1034	DTORG1,	TAD VALUE
001355  4310		JMS OCTPRT	/OUTPUT CONTENTS
001356  1067		TAD LINKSW	/DUMP LINK SWITCH (' )
001357  7440		SZA		/IF THERE IS ONE
001360  4526		JMS I [ERROR1
001361  1537		TAD I [LINBUF	/IS THERE SOURCE CODE TO DUMP?
001362  7650		SNA CLA
001363  5370		JMP PUNON1	/NO-OUTPUT CARRIAGE RETURN
001364  1135		TAD [211	/PRECEDE SOURCE WITH TAB
001365  4450		JMS I OERROR
001366  4524		JMS I [LINPRT	/DUMP SOURCE CODE
001367  5372		JMP PUNON3	/AND EXIT

001370  1133	PUNON1,	TAD [215	/OUTPUT CARRIAGE RETURN
001371  4450		JMS I OERROR
001372  3067	PUNON3,	DCA LINKSW	/CLEAR LINK SWITCH
001373  5730		JMP I PUNONE	/--RETURN--

		/PASS 2-OUTPUT ONE REGISTER

001374  1034	PUNON2,	TAD VALUE	/GET CONTENTS
001375  7100		CLL
001376  4523		JMS I [PUNOUT	/OUTPUT AS 2 FRAMES
001377  5372		JMP PUNON3	/AND EXIT
	1400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 32





		/**CURRENT PAGE LITERALS ON THIS PAGE WILL BE LOST**
		/***WHEN OVERLAYED BY PUSHDOWN LIST**

		/ARRANGE TO OUTPUT ONE REGISTER

001400  0000	PUNBIN,	0
001401  3034		DCA VALUE
001402  4551		JMS I [FINDSP	/FIND CURRENT PAGE NUMBER
001403  1150		TAD [LITBUF
001404  3045		DCA TEMP2	/POINT TO NUMBER OR LITERALS
001405  1027		TAD LOC
001406  0154		AND [177
001407  3043		DCA TEMP
001410  1445		TAD I TEMP2	/IS PAGE FULL?
001411  7041		CIA
001412  1043		TAD TEMP
001413  2043		ISZ TEMP
001414  7710		SPA CLA
001415  5222		JMP ONEOK	/NO-OK TO ADD ONE MORE REGISTER
001416  1043		TAD TEMP	/YES-
001417  3445		DCA I TEMP2
001420  4551		JMS I [FINDSP	/FIND CURRENT PAGE NUMBER
001421  4650		JMS I PPEZE	/GENERATE PE OR ZE ERROR
001422  4551	ONEOK,	JMS I [FINDSP	/FIND CURRENT PAGE NUMBER
001423  1122		TAD [TPINST
001424  3045		DCA TEMP2
001425  1043		TAD TEMP	/IS THIS ADDRESS HIGHER THAN PREVIOUS
001426  7041		CIA		/HIGH INSTRUCTION PAGE?
001427  1445		TAD I TEMP2
001430  7700		SMA CLA
001431  5234		JMP PUNMOD	/NO
001432  1043		TAD TEMP	/YES-THIS IS NEW HIGH INSTRUCTION
001433  3445		DCA I TEMP2

001434  4521	PUNMOD,	JMS I [PUNONE	/OUTPUT THIS REGISTER
001435  2027		ISZ LOC		/GET NEXT LOCATION
001436  1027		TAD LOC		/IF THE "ISZ" SKIPS IT IS O.K. (A 0)
001437  0154		AND [177	/IS THIS FIRST INSTRUCTION ON NEXT PAGE?
001440  7640		SZA CLA
001441  5600		JMP I PUNBIN	/NO--RETURN--
001442  4551		JMS I [FINDSP	/YES-FIND CURRENT PAGE NUMBER
001443  1150		TAD [LITBUF	/RESET POINTERS
001444  3045		DCA TEMP2
001445  1445		TAD I TEMP2
001446  3023		DCA LITPTR
001447  5600		JMP I PUNBIN	/--RETURN--

001450  4641	PPEZE,	PEZE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 33





001451  0323	HEADER,	"S;"Y;"M;"B;"O;"L;"S
001452  0331
001453  0315
001454  0302
001455  0317
001456  0314
001457  0323
001460  0211		211;211;211;211;211	/FOR /N HEADER
001461  0211
001462  0211
001463  0211
001464  0211

		/************************************************************
		/CODE OVERLAYED ON PASS 3
		/BY USER HEADER BUFFER

		/CONTINUATION OF EXPUNGE HANDLER
		/ENTER ON PASS 1 ONLY

		EXPUNW,	IFZERO	HASH<
			DCA TEMP1
			DCA EXPUN2	/CLEAR NEW HIGH TAG COUNTER
			TAD HIGHTG
			CMA
			DCA TEMP3	/SAVE NUMBER OF SYM TBL ENTRIES
		EXPUNY,	TAD TEMP1
			DCA THISTG
			JMS I [FINDTG	/GET A SYMBOL
			TAD TAG1	/ONLY SAVE THE SYMBOL IF
			RTL
			CLA		/IT WAS A PSEUDO-OP, OR
			TAD TAG3	/THE SYMBOLS I OR Z
			SNL SMA CLA
			JMP EXPUA4	/NO-FORGET TAG
			TAD EXPUN2	/YES-RETURN TAG TO SYMBOL TABLE
			DCA THISTG
			JMS I [PUTTAG
			ISZ EXPUN2
		EXPUA4,	ISZ TEMP1
			ISZ TEMP3	/DONE YET?
			JMP EXPUNY	/NO- TRY NEXT TAG
			CLA CMA		/YES
			TAD EXPUN2	/RESET HIGH TAG
			DCA HIGHTG
			JMP I [LOOKEX	/--EXIT TO MAIN--

		EXPUN2,	0
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 34





			IFNZRO	HASH<
			/HASH TABLE EXPUNGE - DEPENDS ON PSEUDO OPS
			/BEING HASHED FIRST. SCANS WHOLE TABLE (SLOW AS HELL!)

001465  3057		DCA	THISTG	/POINT TO FIRST ENTRY
001466  1100		TAD	TAGMAX	/SET THE COUNT
001467  7041		CIA
001470  3044		DCA	TEMP1
001471  4573	EXPUNL,	JMS I	[FINDTG	/GO GET ONE
001472  1020		TAD	TAG1	
001473  7006		RTL
001474  7200		CLA
001475  1022		TAD	TAG3
001476  7730		SPA SZL CLA	/PSEUDO OP?
001477  5307		JMP	EXPUNS	/YES, SKIP DELETION
001500  3020		DCA	TAG1	/NO, WIPE IT
001501  3021		DCA	TAG2
001502  3022		DCA	TAG3
001503  4540		JMS I	[PUTTAG	/AND PUT IT BACK
001504  7240		STA
001505  1060		TAD	HIGHTG
001506  3060		DCA	HIGHTG	/DECREMENT SYMBOL COUNT
001507  2057	EXPUNS,	ISZ	THISTG	/POINT TO NEXT ENTRY
001510  2044		ISZ	TEMP1	/TALLY COUNT
001511  5271		JMP	EXPUNL	/GET ANOTHER
001512  5577		JMP I	[LOOKEX	/DONE --RETURN--
			>

		/***************************************************************

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 35





		/ASSEMBLER HEADER BUFFER

	0005		VV1=VERSION%12
	0062		VV2=VV1^12
001513  0000		ZBLOCK	HEADER+HEDLEN-.

001521  0240		" ;" ;"P;"A;"L;"8;"-
001522  0240
001523  0320
001524  0301
001525  0314
001526  0270
001527  0255
001530  0326		"V;"0+VV1;VERSION-VV2+"0;SUBVERSION
001531  0265
001532  0260
001533  0331
001534  0240		" 
001535  0316	DATE,	"N;"O;" ;"D;"A;"T;"E;" 	/GETS SET TO DD-MMM-YY IF DATE PRESENT
001536  0317
001537  0240
001540  0304
001541  0301
001542  0324
001543  0305
001544  0240
001545  0240		" ;" ;"P;"A;"G;"E;" ;0
001546  0240
001547  0320
001550  0301
001551  0307
001552  0305
001553  0240
001554  0000

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 36





		/PUSHDOWN LIST
		/OCCUPIES NEXT 43(8) LOCATIONS
	1555	PDLND=.



		/*********************************************************
		/ONCE ONLY CODE FOR /D OPTION
		/PUT INTO SYMLST FOR DDT COMPATIBLE SYMBOL TABLE
		/OVERLAYED DURING ASSEMBLY BY PUSHDOWN LIST

		DSWIT1,	IFZERO	HASH<
			RELOC SYMPRT+4

			DCA I SYMPRF
			JMS SYMPRC
			TAD [377
			JMS I OERROR
			CLA CMA
			DCA THISTG
		SYMPRE,	TAD [215
			JMS I OERROR
			JMS SYMPPP
			JMP SYMPRD
			JMP SYMPR1
		SYMPRF,	HSWIT1
		SYM204,	204
			RELOC

			>
			IFNZRO	HASH<
	1212		RELOC	SYMNWP
001212* 3057		DCA	THISTG
001213* 3627		DCA I	SYMHSW
001214* 4265		JMS	DDTLDR
001215* 1120		TAD	[377
001216* 4450		JMS I	OERROR
001217* 1133	SYMLUP,	TAD	[215
001220* 4450		JMS I	OERROR
001221* 1060		TAD	HIGHTG	
001222* 7141		CLL CIA
001223* 1057		TAD	THISTG
001224* 7630		SZL CLA
001225* 5256		JMP	SYMXIT
001226* 5241		JMP	SYMGO
001227* 1013	SYMHSW,	HSWIT1
	1573		RELOC
			>
	1573	DSWITA=	.

		/**********************************************************

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 36-1

	1600		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 37





		/*************************************************************

		/PAL8 TABLES - LOAD OVER INITIALIZATION CODE

	1617	PDLST=	PDLND+42	/PUSHDOWN LIST 43(8) LOCS LONG


	1620	LINBUF=	PDLST+1		/LINE BUFFER OCCUPIES 122(8) LOCATIONS

	1742	LITBUF=	LINBUF+122	/LITERAL TABLE IS 40(8) LOCATIONS (ONE PER PAGE)
					/  SHOWING LOWEST PAGE ADDRESS USED FOR LITERALS

	2002	TPINST=	LITBUF+40	/TOP INSTRUCTION TABLE IS 40(8) LOCTIONS
					/  SHOWING HIGHEST PAGE ADDRESS USED FOR INSTRUCTIONS

	2023	LITBF2=	TPINST+40-17	/LITERAL BUFFER 2 CONTAINS UP TO 160(8)
					/PAGE 0 LITERALS, SUBSCRIPTS 20-177

	2123	LITBF1=	LITBF2+200-100	/LITERAL BUFFER 1 CONTAINS UP TO 100(8)
					/CURRENT PAGE LITERALS, SUBSCRIPTS 100-177

		/*************************************************************

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 38





		/ONCE ONLY CODE FOR ASSEMBLER START UP
		/OVERLAYED BY BUFFERS

		/HANDLES SWITCH OPTIONS

001600  6212	BEGIN,	CIF 10
001601  4452		JMS I IOMON	/CALL USER SERVICE ROUTINES
001602  0005		5		/*COMMAND DECODER*
001603  2001		2001		/DEFAULT INPUT EXTENSION IS .PA
001604  6211	NOCD,	CDF 10		/RETURN
001605  1777		TAD I (7604	/IS THERE A BINARY FILE EXTENSION?
001606  7450		SNA
001607  1376		TAD (216	/NO - DEFAULT EXTENSION IS .BN
001610  3777		DCA I (7604	/YES 
001611  1775		TAD I (7611	/IS THERE A LISTING FILE EXTENSION?
001612  7450		SNA
001613  1374		TAD (1423	/NO - DEFAULT EXTENSION IS .LS
001614  3775		DCA I (7611
001615  1773		TAD I (MPARAM+1	/WAS THE /T OPTION SELECTED?
001616  7012		RTR
001617  7012		RTR
001620  7010		RAR		/T IN LINK (BIT 20)
001621  7200		CLA
001622  1117		TAD [7605	/WAS TTY THE PASS 3 DEVICE?
001623  4772		JMS I (OTYPE
001624  0371		AND (770
001625  7650	ZT7640,	SNA CLA
001626  7020		CML		/YES, COMPLEMENT MEANING OF /T
001627  7430		SZL		/WAS /T,NO TTY: OR TTY:,NO /T?
001630  3770		DCA I (HSWITC	/YES - GENERATE CR/LF IN PLACE OF F/F
001631  7420		SNL		/WAS /T,TTY: OR NO /T,NO TTY:?
001632  3767		DCA I (BEGIAB	/ELIMINATE EXTRA CRLF
001633  6211		CDF 10
001634  1773		TAD I (MPARAM+1	/WAS THE /S OPTION SELECTED?
001635  6201		CDF
001636  0366		AND (40
001637  7640		SZA CLA
001640  3765		DCA I (SSWITC	/YES -OMIT SYMBOL TABLE
001641  6211		CDF 10
001642  7332		AC2000
001643  0773		AND I (MPARAM+1
001644  6201		CDF
001645  7650		SNA CLA		/WAS THE /N OPTION SELECTED?
001646  5251		JMP BEGIN4	/NO
001647  1262		TAD BEGSKP	/SET SWITCH
001650  3764		DCA I (NSWITC	/YES -SYMBOL TABLE BUT NO LISTING

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 39





001651  6211	BEGIN4,	CDF 10
001652  1763		TAD I (MPARAM	/WAS THE /H OPTION SELECTED?
001653  6201		CDF
001654  0362		AND (20
001655  7650	ZH7640,	SNA CLA
001656  5263		JMP BEGINB	/NO
001657  1761	BEGHSW,	TAD I (FORM21	/YES -SUPPRESS LISTING PAGE FORMAT
001660  3770		DCA I (HSWITC
001661  3760		DCA I (HSWIT1
001662  7610	BEGSKP,	CLA SKP
001663  3757	BEGINB,	DCA I (HSWIT2
001664  6211		CDF 10
001665  1763		TAD I (MPARAM	/WAS THE /D OPTION SELECTED?
001666  6201		CDF
001667  0126		AND [400
001670  7650	ZD7640,	SNA CLA
001671  5302		JMP BEGIN1	/NO
001672  1412		TAD I XREG1	/YES -DDT COMPATIBLE SYMBOL TABLE
001673  3416		DCA I LAST3	/SUBSTITUTE ALTERNATE CODE
001674  2311		ISZ DSWIT3	/INTO SYMBOL TABLE OUTPUT ROUTINE
001675  5272		JMP .-3
001676  1413		TAD I XREG2
001677  3417		DCA I LAST4
001700  2312		ISZ DSWIT4
001701  5276		JMP .-3

001702  1756	BEGIN1,	TAD I (JSBITS	/RESET JOB STATUS WORD TO
001703  0355		AND (6777	/INDICATE PAL8 NOT RESTARTABLE
001704  1354		TAD (1000
001705  3756		DCA I (JSBITS
001706  6213		CIF CDF	10
001707  4753		JMS I	(FMTDAT	/CALL ROUTINE IN FIELD 1 TO SETUP DATE
001710  5752		JMP I	(BEGINZ	/CONTINUE ON

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 40






001711  7762	DSWIT3,	DSWIT1-DSWITA
001712  7756	DSWIT4,	DSWIT2-DSWITB
001752  2000
001753  7200
001754  1000
001755  6777
001756  7746
001757  1271
001760  1013
001761  1112
001762  0020
001763  7643
001764  4530
001765  4446
001766  0040
001767  1012
001770  1042
001771  0770
001772  5600
001773  7644
001774  1423
001775  7611
001776  0216
001777  7604
	2000		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 41





		/ONCE ONLY CODE CONTINUED
		/ASSEMBLER INITIALIZATION PROCEDURES


002000  1153	BEGINZ,	TAD [7600	/WHAT DEVICE FOR BINARY OUTPUT?
002001  4777		JMS I (OTYPE
002002  7700		SMA CLA
002003  1376		TAD (-70	/STAND-ALONE
002004  1375		TAD (-10	/DIRECTORY
002005  3774		DCA I (SWAPR2+LEADER	/SET AMOUNT OF LEADER TRAILER
002006  3014		DCA LAST1	/NO DEFINED TAG
		BEGIN5,	IFZERO	HASH<
			CDF
			TAD I BLK1	/MOVE SYMBOL TABLE TO FIELD 1
			CDF 10
			DCA I BLK2
			ISZ BLK1
			ISZ BLK2
			ISZ BLK3
			JMP BEGIN5
			>
002007  6201		CDF
002010  3570		DCA I [LINBUF+120	/SET BUFFER POINTERS
002011  3773		DCA I (LINBUF+121
002012  1153		TAD [7600	/IS PTP BINARY OUTPUT DEVICE?
002013  4777		JMS I (OTYPE
002014  3332		DCA BLK1
002015  1332		TAD BLK1
002016  0372		AND (770
002017  1371		TAD (-20
002020  7650		SNA CLA
002021  3770		DCA I (PTPSW	/YES - SET PTP SWITCH
002022  1332		TAD BLK1	/NO - IS IT A DIRECTORY DEVICE?
002023  7710		SPA CLA
002024  5227		JMP .+3		/NO
002025  1367		TAD (TAD [77	/YES - SET DIRECTORY SWITCH
002026  3766		DCA I (DIRSW
002027  1117		TAD [7605	/IS PTP GETTING LISTING OUTPUT?
002030  4777		JMS I (OTYPE
002031  0372		AND (770
002032  1371		TAD (-20
002033  7650		SNA CLA
002034  3765		DCA I (SWAPR2+PTPSW1	/YES - SET PASS 3 PTP SWITCH
002035  1117		TAD [7605	/NO - IS DIRECTORY DEVICE GETTING
002036  4777		JMS I (OTYPE	/LISTING OUTPUT?
002037  7710		SPA CLA
002040  5243		JMP .+3		/NO
002041  1367		TAD (TAD [77	/YES - SET PASS 3 DIRECTORY SWITCH
002042  3764		DCA I (SWAPR2+DIRSW1
002043  5763		JMP I (BEGINF

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 42





		MONLST,
002044  1201	IFNDEF GERMAN <	TEXT	/JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/>
002045  1606
002046  0502
002047  1501
002050  2201
002051  2022
002052  1501
002053  3112
002054  2516
002055  1225
002056  1401
002057  2507
002060  2305
002061  2017
002062  0324
002063  1617
002064  2604
002065  0503
002066  0000
		IFDEF  GERMAN < TEXT	/JANFEBMARAPRMAIJUNJULAUGSEPOKTNOVDEZ/>
	2066		*.-1

		/CONTINUED CHECK OF COMMAND DECODER OPTIONS

002066  6211	BEGINH,	CDF 10
002067  1762		TAD I (MPARAM	/WAS THE /G OR /L OPTION CHOSEN?
002070  6201		CDF
002071  0361		AND (41
002072  7650		SNA CLA
002073  5760		JMP I (BEGISW	/NO
002074  6211		CDF 10		/YES
002075  1553		TAD I [7600
002076  7640		SZA CLA		/WAS THERE A BINARY OUTPUT FILE?
002077  5311		JMP YESBIN	/YES
002100  1336	BINLOP,	TAD PALBIN	/NO - CREATE FILE PAL8BN.TM
002101  3735		DCA I PALBIX	/ON SYSTEM DEVICE
002102  2300		ISZ BINLOP
002103  2335		ISZ PALBIX
002104  2321		ISZ BINCNT
002105  5300		JMP BINLOP
002106  6201		CDF
002107  1375		TAD (-10	/SET AMOUNT OF LEADER TRAILER
002110  3774		DCA I (SWAPR2+LEADER

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 43





		/SET UP FOR LOAD OR LOAD AND GO

002111  6201	YESBIN,	CDF
002112  1757		TAD I (SBLOCK	/GET SYSTEM DEV # KBM V40**
002113  7450		SNA		/YOU NEVER KNOW
002114  7201		CLA IAC
002115  6212		CIF 10
002116  4452		JMS I IOMON	/CALL USER SERVICE ROUTINES
002117  0002		2		/* LOOKUP PERMANENT FILE *
002120  2273	LOAD,	PLOAD		/FILENAME ABSLDR.SV
002121  7773	BINCNT,	-5		/FILE LENGTH
002122  5327		JMP NOLOAD	/ABSLDR.SV NOT FOUND
002123  1320		TAD LOAD	/NORMAL RETURN
002124  3756		DCA I (CHAIN	/SET STARTING BLOCK NUMBER
002125  3755		DCA I (LSWITC	/FOR CHAIN CALL
002126  5760		JMP I (BEGISW

002127  4541	NOLOAD,	JMS I [ERROR	/GENERATE LD ERROR MESSAGE
002130  5444		LD
002131  5760		JMP I (BEGISW	/ASSEMBLE BUT DO NOT CHAIN TO LOADER

002132  6200	BLK1,	SYMS
002133  6774	BLK2,	7600+SYMS-SYME
002134  7174	BLK3,	SYMS-SYME

002135  7600	PALBIX,	7600
002136  0001	PALBIN,	1
002137  2001		FILENAME PAL8BN.TM
002140  1470
002141  0216
002142  2415
002155  4460
002156  4503
002157  7776
002160  2204
002161  0041
002162  7643
002163  5612
002164  7277
002165  7300
002166  2703
002167  1175
002170  2677
002171  7760
002172  0770
002173  1741
002174  7237
002175  7770
002176  7710
002177  5600
	2200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 44





002200  1654	CCC,	TAD I CC231	/FINAL PIECE OF STARTUP ONCE-ONLY CODE
002201  7450		SNA
002202  1255		TAD CC23
002203  3654		DCA I CC231	/"HSWITC"=JMP FORMF1 IF WAS 0
002204  6211	BEGISW,	CDF 10
002205  1665		TAD I CCJWD
002206  6201		CDF 0
002207  0266		AND CCJBIT
002210  7650	ZJ7640,	SNA CLA		/WAS /J OPTION SPECIFIED?
002211  3667		DCA I CCJLOC	/NO - PRINT UNASSEMBLED CONDITIONAL CODE
002212  6211		CDF 10
002213  1670		TAD I CCWWD
002214  6201		CDF 0
002215  0271		AND CCWBIT
002216  7650	ZW7640,	SNA CLA		/WAS /W OPTION SPECIFIED?
002217  5247		JMP D4		/V3C
002220  1654	D5,	TAD I CC231
002221  7041		CIA
002222  1255		TAD CC23
002223  7640		SZA CLA		/ARE WE OUTPUTTING FF'S IN LISTING?
002224  5233		JMP BEGIS3	/NO
002225  1256		TAD CC24	/YES - SUBSTITUTE SOME CODE
002226  3657		DCA I CC25
002227  1260		TAD CC26
002230  3661		DCA I CC27
002231  1256		TAD CC24
002232  3662		DCA I CC28
002233  4652	BEGIS3,	JMS I OVLL7	/CALL SYSTEM DEVICE
002234  4200		4200		/WRITE 2 PAGES
002235  1000		SWAP1		/FORM SWAP1
002236  0040		ASWAP		/INTO TEMP AREA
002237  5653		JMP I OVLL8	/ERROR?!
002240  1415		TAD I LAST2	/MOVE PASS 1&2 ONLY CODE
002241  3411		DCA I TAGXR	/OVER PASS3 SWAPPED OUT CODE
002242  2263		ISZ CC29
002243  5240		JMP	.-3
			IFNZRO	HASH<
002244  4664		JMS I	CCHSH	/FINALLY HASH OUT THE TABLE
			>

002245  5646		JMP I	.+1
002246  4400		START2-1	/OK - NOW GO DO SOME ASSEMBLING!
002247  3672	D4,	DCA I CCWLOC	/NO - DON'T WIPE LITERALS AS YOU DUMP THEM
002250  3777		DCA I (D3
002251  5220		JMP D5		/V3C

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 45





002252  7607	OVLL7,	7607
002253  2757	OVLL8,	SYSER3

002254  1042	CC231,	HSWITC
002255  5255	CC23,	FORMF1&177+5200
002256  7240	CC24,	STA
002257  1055	CC25,	FORMF1
002260  3061	CC26,	DCA LINCNT
002261  1056	CC27,	FORMF1+1
002262  1057	CC28,	FORMF1+2
002263  7470	CC29,	SWAPB2-SWAPE2

			IFNZRO	HASH<
002264  7400	CCHSH,	HSHSMS
			>
002265  7643	CCJWD,	MPARAM
002266  0004	CCJBIT,	4
002267  5045	CCJLOC,	IFTST4
002270  7644	CCWWD,	MPARAM+1
002271  0002	CCWBIT,	2
002272  4116	CCWLOC,	LITHAK
002273  0102	PLOAD,	FILENAME ABSLDR.SV
002274  2314
002275  0422
002276  2326

002277  1714	CKBAT,	TAD I CC7777	/GET BATCH FLAG WORD
002300  7106		CLL RTL
002301  7620		SNL CLA		/BATCH RUNNING?
002302  5715		JMP I CCOPTM	/NO, GO WITH LINK OFF
002303  1714		TAD I CC7777
002304  0316		AND CC0070	/GET BATCH FIELD
002305  1317		TAD CCCIF0	/FORM CIF TO BATCH FIELD
002306  3332		DCA OTYPB1	/MODIFY TTY OUTPUT ROUTINE TO GO TO BATCH
002307  1320		TAD CCJMSB	/LOG INSTEAD
002310  3333		DCA OTYPB2
002311  1331		TAD OTYPTD
002312  3334		DCA OTYPB3
002313  5715		JMP I CCOPTM	/RETURN TO CORE DETERMINER, LINK SET

002314  7777	CC7777,	7777
002315  5664	CCOPTM,	OPTIM4
002316  0070	CC0070,	70
002317  6202	CCCIF0,	CIF 0
002320  4516	CCJMSB,	JMS I [BATOUT

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 46





		/THIS CODE SITS AFTER THE END OF THE LITERAL TABLE

	2323		IFNZRO	.-LITBF1-200&4000 <*LITBF1+200>

002323  0000	OTYPEO,	0		/TYPE A CHARACTER, CHECKING FOR ^O AND ^C
002324  3342		DCA OTYPEC	/SAVE CHAR
002325  4343		JMS CTCCHK	/CHECK FOR ^C - RETURN CHAR-203 IN AC
002326  1376		TAD (-14
002327  7650		SNA CLA		/^O?
002330  5723		JMP I OTYPEO	/YES
002331  1342	OTYPTD,	TAD OTYPEC
002332  6046	OTYPB1,	TLS
002333  6041	OTYPB2,	TSF
002334  5333	OTYPB3,	JMP	.-1	/WAIT FOR TTY
002335  1136		TAD	[-215
002336  7640	OTYPCR,	SZA CLA		/SET TO CLA DURING "ERRORS DETECTED" STUFF
002337  5723		JMP I	OTYPEO
002340  1144		TAD [212	/IF CHAR WAS CR, TYPE LF
002341  5324		JMP OTYPEO+1
002342  0000	OTYPEC,	0

002343  0000	CTCCHK,	0		/CHECK FOR ^C
002344  1176		TAD [200
002345  6034		KRS		/OR IN KEYBOARD CHAR
002346  1375		TAD (-203
002347  7450		SNA
002350  6031		KSF		/3B BUT WAS CHAR REALLY THERE?
002351  5743		JMP I CTCCHK	/NO ^C - RETURN
002352  5553		JMP I [7600	/RETURN TO OS/8

002353  4562	TTLMSG,	"E-240^100+"R-240	/ERRORS DETECTED:
002354  6257		"R-240^100+"O-240
002355  6263		"R-240^100+"S-240
002356  0044		"D-240
002357  4564		"E-240^100+"T-240
002360  4543		"E-240^100+"C-240
002361  6445		"T-240^100+"E-240
002362  4432		"D-240^100+":-240
002363  0000		0

002364  5451		"L-240^100+"I-240	/LINKS GENERATED:
002365  5653		"N-240^100+"K-240
002366  6300		"S-240^100
002367  4745		"G-240^100+"E-240
002370  5645		"N-240^100+"E-240
002371  6241		"R-240^100+"A-240
002372  6445		"T-240^100+"E-240
002373  4432		"D-240^100+":-240
002374  0000		0
002375  7575
002376  7764

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 46-1

002377  4126
	2400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 47





		/OUTPUT A CHARACTER TO OUTPUT DEVICE
		/CALLED BY JMS I OCHAR
		/WITH CHARACTER IN 8-BIT ASCII IN AC

002400  0025	OUTPT1,	PUNCHX		/PASS 2=PUNCHX; 3=XLISTX

002401  0000	OUTPUT,	0
002402  0120		AND [377	/MASK OUT LEFT 4 BITS
002403  3311		DCA OUTPT2	/STORE
002404  1600		TAD I OUTPT1	/IS THIS PASS 3 AND
002405  7450		SNA
002406  1303		TAD OUTINH	/IS THIS COVERED BY XLIST?
002407  7640		SZA CLA
002410  5601		JMP I OUTPUT	/YES--RETURN--
002411  1311		TAD OUTPT2	/NO - GET CHARACTER
002412  0176		AND [200
002413  7650		SNA CLA
002414  1311		TAD OUTPT2	/IF LESS THAN 200, THEN
002415  1055		TAD CHKSUM	/ADD IT TO CHECKSUM
002416  3055		DCA CHKSUM
002417  1311		TAD OUTPT2	/GET CHARACTER
002420  1377		TAD (-211	/IS IT A TAB?
002421  7640		SZA CLA
002422  5230		JMP OUTPT3	/NO
002423  2064		ISZ LSTCNT	/YES - COUNT IT
002424  1064		TAD LSTCNT
002425  0161		AND [7
002426  7640		SZA CLA
002427  5223		JMP .-4
002430  4237	OUTPT3,	JMS OUTPUX	/NO - OUTPUT CHARACTER
002431  1311		TAD OUTPT2	/IS IT LINE FEED?
002432  1376		TAD (-212
002433  7640		SZA CLA
002434  5601		JMP I OUTPUT	/NO--RETURN--
002435  3064		DCA LSTCNT	/YES - RESET LSTCNT
002436  5601		JMP I OUTPUT	/--RETURN--


/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 48





		/OUTPUT THE CHARACTER
		/PACKS CHARACTERS IN STANDARD OS/8 FORMAT

002437  0000	OUTPUX,	0
002440  2241		ISZ OUJMP	/BUMP 3-WAY SWITCH
002441  7402	OUJMP,	HLT		/WILL BE CHANGED - SHOULD NEVER HALT
002442  5275		JMP OCHAR1	/CHARACTER #1
002443  5272		JMP OCHAR2	/CHARACTER #2
002444  1311	OCHAR3,	TAD OUTPT2	/CHARACTER #3
002445  7106		CLL RTL
002446  7006		RTL
002447  0116		AND [7400
002450  1705		TAD I OUPOLD	/ADD 4 BITS TO WORD 1
002451  3705		DCA I OUPOLD
002452  1311		TAD OUTPT2
002453  7112		CLL RTR
002454  7012		RTR
002455  7010		RAR
002456  0116		AND [7400
002457  1706		TAD I OUPTR	/ADD 4 BITS TO WORD 2
002460  3706		DCA I OUPTR
002461  1307		TAD OUJMPE
002462  3241		DCA OUJMP	/RESET SWITCH
002463  2306		ISZ OUPTR
002464  2310		ISZ OUDWCT	/BUFFER FULL?
002465  5277		JMP OUCHLV	/NO
002466  1176		TAD [200	/YES
002467  4775		JMS I (OUTDMP	/DUMP BUFFER
002470  4312		JMS OUSETP	/RESET POINTERS
002471  5277		JMP OUCHLV


/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 49





002472  1306	OCHAR2,	TAD OUPTR	/SAVE POINTER
002473  3305		DCA OUPOLD
002474  2306		ISZ OUPTR
002475  1311	OCHAR1,	TAD OUTPT2
002476  3706		DCA I OUPTR	/SET 8 BIT WORD
002477  1311	OUCHLV,	TAD OUTPT2
		/	TAD [40
		/	AND [100	/CHECK FOR PRINTABLE CHAR
		/	SZA CLA		/IF IT IS,
002500  1171		TAD [-240
002501  7700		SMA CLA
002502  2064		ISZ LSTCNT	/BUMP TAB COUNT
002503  0000	OUTINH,	0		/ALWAYS 0 OR 1!
002504  5637		JMP I OUTPUX	/--RETURN--

002505  0000	OUPOLD,	0
002506  0000	OUPTR,	0
002507  5241	OUJMPE,	JMP OUJMP
002510  0000	OUDWCT,	0
002511  0000	OUTPT2,	0

002512  0000	OUSETP,	0
002513  1153		TAD [7600	/SET OUTPUT WORD COUNT
002514  3310		DCA OUDWCT	/TO 200
002515  1374		TAD (OUBUF
002516  3306		DCA OUPTR	/RESET POINTER
002517  1307		TAD OUJMPE
002520  3241		DCA OUJMP	/RESET SWITCH
002521  7100		CLL		/MUST CLEAR LINK!!
002522  5712		JMP I OUSETP	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 50





		/HANDLER FOR DEVICE PSEUDO-OP

002523  4565	DEVICX,	JMS I [SPNOR	/IGNORE TRAILING SPACES
002524  1115		TAD [-5
002525  5336		JMP DEVIC1	/PACK 4 CHARACTERS


		/HANDLER FOR FILENAME PSEUDO-OP

002526  4565	FILENX,	JMS I [SPNOR	/IGNORE TRAILING SPACES
002527  1373		TAD (-7
002530  4340		JMS FILE1	/PACK 6 CHARACTERS
002531  1040		TAD CHAR
002532  1114		TAD [-".	/WAS CHARACTER . ?
002533  7650		SNA CLA
002534  4574		JMS I [GETC	/YES-SKIP TO EXTENSION
002535  7346		AC7775
002536  4340	DEVIC1,	JMS FILE1	/PACK 2 CHARACTERS
002537  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

		/PACK CHARACTERS
		/NEGATIVE OF # OF CHARACTERS TO BE PACKED IN AC ON ENTRY

002540  0000	FILE1,	0
002541  3363		DCA FILE6	/SAVE # OF CHARACTERS TO PACK
002542  3772		DCA I (TEXT6	/RESET PACK SWITCH
002543  4771	FILE4,	JMS I (TSTALN	/IS CHARACTER IN CHAR ALPHANUMERIC?
002544  7410		SKP
002545  5360		JMP FILE5	/NO-DONE PACKING
002546  2363		ISZ FILE6	/YES-TOO MANY CHARACTERS?
002547  5353		JMP FILE3	/NO-O.K.
002550  7240		CLA CMA	/YES
002551  3363		DCA FILE6	/RESET # OF CHARACTERS AND IGNORE
002552  5355		JMP FILE2

002553  1040	FILE3,	TAD CHAR
002554  4770		JMS I (TEXT2	/PACK A CHARACTER
002555  4574	FILE2,	JMS I [GETC	/GET A CHARACTER
002556  5343		JMP FILE4	/TEST IT

002557  4770		JMS I (TEXT2	/PACK A ZERO CHAR
002560  2363	FILE5,	ISZ FILE6	/ARE WE DONE?
002561  5357		JMP .-2		/NO - PAD WITH ZEROES
002562  5740		JMP I FILE1	/YES--RETURN--
002563  0000	FILE6,	0
002570  2651
002571  5146
002572  2665
002573  7771
002574  5600
002575  2730

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 50-1

002576  7566
002577  7567
	2600		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 51





		/HANDLER FOR TEXT PSEUDO-OP
		/SPACES ARE IGNORED TO DELIMITER
		/DELIMITER IS FIRST PRINTING CHARACTER
		/OTHER THAN SPACE
		/NON-PRINTING CHARACTERS ARE ILLEGAL
		/A PRINTING CHARACTER HAS EITHER BIT 5
		/OR BIT 6 SET, BUT NOT BOTH

002600  4574	TEXT8,	JMS I [GETC	/GET NEXT CHARACTER
002601  7330	TEXTX,	CLL CLA CML RAR	/AC=4000
002602  3063		DCA GETCI	/; AND / ARE NOT END OF LINE
002603  4236		JMS TEXT1A	/CHECK FOR PRINTING CHARACTER
002604  5200		JMP TEXT8	/NON PRINTING - IGNORE
002605  1171		TAD [-240	/IGNORE SPACES UNTIL DELIMITER
002606  7450		SNA		/HAS BEEN FOUND
002607  5200		JMP TEXT8
002610  1166		TAD [240	/RESTORE CHARACTER
002611  7041		CIA
002612  3035		DCA VALUE2	/STORE NEGATIVE DELIMITER
002613  3265		DCA TEXT6	/SET PACKING SWITCH
002614  4574	TEXT3,	JMS I [GETC	/GET NEXT CHARACTER
002615  4236		JMS TEXT1A	/IS IT A PRINTING CHARACTER?
002616  5233		JMP TEXT9	/NO - IC
002617  1035		TAD VALUE2	/YES - IS IT DELIMITER?
002620  7650		SNA CLA
002621  5225		JMP TEXT4	/YES - TERMINATE
002622  1040		TAD CHAR	/NO - PACK AND OUTPUT
002623  4251		JMS TEXT2	/PACK IT
002624  5214		JMP TEXT3

002625  3063	TEXT4,	DCA GETCI	/RESET GETCI TO CALL ; AND / END OF LINE
002626  4574		JMS I [GETC	/SKIP DELIMITER
002627  4251	TEXT4X,	JMS TEXT2	/OUTPUT 0 TO FILE
002630  4251		JMS TEXT2
		/CHANGE TEXT4X TO:
		/	NOP
		/FOR NO EXTRA WORD OF ZEROS
002631  3063		DCA GETCI	/RESET GETCI IN CASE WE HIT CR
002632  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 52





002633  4541	TEXT9,	JMS I [ERROR	/GENERATE IC ERROR MESSAGE
002634  5143		IC
002635  5214		JMP TEXT3

		/SKIP ON PRINTING CHARACTER

002636  0000	TEXT1A,	0
002637  1040		TAD CHAR
002640  7750		SPA SNA CLA	/IS CHARACTER -
002641  5227		JMP TEXT4X	/YES
002642  1040		TAD CHAR
002643  1113		TAD [40
002644  0112		AND [100
002645  7640		SZA CLA		/IS THE CHAR PRINTING?
002646  2236		ISZ TEXT1A	/YES - INCREMENT RETURN
002647  1040		TAD CHAR	/WITH CHARACTER IN AC
002650  5636		JMP I TEXT1A	/--RETURN--

		/OUTPUT 2 TEXT CHARACTERS (ONE REGISTER)
		/ENTER WITH CHARACTERS IN AC

002651  0000	TEXT2,	0
002652  0175		AND [77		/GET RIGHT 6 BITS
002653  2265		ISZ TEXT6	/WHICH HALF OF WORD?
002654  5260		JMP TEXT5	/LEFT
002655  1266		TAD TEXT7	/RIGHT--ADD IN LEFT HALF
002656  4511		JMS I [PUNBIN	/OUTPUT IT
002657  5651		JMP I TEXT2	/--RETURN--

002660  4567	TEXT5,	JMS I [RTL6	/GET LEFT HALF OF WORD
002661  3266		DCA TEXT7	/SAVE IT
002662  7240		CLA CMA		/SET SWITCH FOR RIGHT HALF
002663  3265		DCA TEXT6
002664  5651		JMP I TEXT2	/--RETURN--

002665  0000	TEXT6,	0
002666  0000	TEXT7,	0

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 53





		/HANDLER FOR EXPUNGE PSEUDO-OP

002667  1051	EXPUNX,	TAD PASS	/IS THIS PASS 1
002670  7700		SMA CLA
002671  5577		JMP I [LOOKEX	/NO--EXIT TO MAIN--
002672  5777		JMP I (EXPUNW	/YES-CONTINUE AT EXPUNW



		/CLOSE OUTPUT FILE

002673  0000	OCLOSE,	0
002674  1776		TAD I (OUTINH	/OUTPUT INHIBITED?
002675  7640		SZA CLA
002676  5673		JMP I OCLOSE	/YES--RETURN--
002677  1110	PTPSW,	TAD [232	/NO-0 IF PTP: - OUTPUT ^Z
002700  4447		JMS I OCHAR
002701  4447		JMS I OCHAR	/AND ZEROS
002702  4447	FILLLP,	JMS I OCHAR
002703  1154	DIRSW,	TAD [177	/TAD [77 IF NOT DIRECTORY
002704  0775		AND I (OUDWCT	/FILL OUT BUFFER OR HALF BUFFER
002705  7640		SZA CLA		/WITH ZEROS
002706  5302		JMP FILLLP
002707  1775		TAD I (OUDWCT	/IS THERE OUTPUT TO BE DUMPED?
002710  1176		TAD [200
002711  7440		SZA
002712  4330		JMS OUTDMP	/YES - DUMP IT
002713  1323		TAD OUFILE	/GET DEVICE NUMBER IN AC
002714  6212		CIF 10
002715  4452		JMS I IOMON	/CALL USER SERVICE ROUTINES
002716  0004		4		/*CLOSE OUTPUT FILE*
002717  0000	OUCNAM,	0		/POINTER TO FILENAME TO BE DELETED
002720  0000	OUCCNT,	0		/LENGTH OF NEW PERMANENT FILE
002721  5357		JMP SYSER3	/DE**FATAL ERROR**
002722  5673		JMP I OCLOSE	/--RETURN--

002723  0000	OUFILE,	ZBLOCK 5

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 54





		/OUTPUT DUMP
		/AC CONTAINS CONTROL WORD FOR DUMP

002730  0000	OUTDMP,	0
002731  1141		TAD [4000	/BE SURE CONTROL WORD IS
002732  3354		DCA OUCTLW	/A WRITE OPERATION
002733  1364		TAD OUBLK	/GET STARTING BLOCK NUMBER
002734  1320		TAD OUCCNT	/ADD IN COUNT
002735  3356		DCA OUREC	/SET THIS BLOCK NUMBER
002736  1354		TAD OUCTLW
002737  1112		TAD [100	/ROUND HALF-BLOCK, IF ANY
002740  7106		CLL RTL
002741  7006		RTL
002742  7006		RTL
002743  0107		AND [17		/GET THIS COUNT
002744  1320		TAD OUCCNT
002745  3320		DCA OUCCNT	/ADD TO TOTAL COUNT
002746  1320		TAD OUCCNT	/IS OUTPUT DEVICE FULL?
002747  7120		CLL CML
002750  1365		TAD OUELEN	/CHECK AGAINST MAXIMUM LENGTH
002751  7660		SNL SZA CLA
002752  5366		JMP SYSER2	/DF**FATAL ERROR**
002753  4763		JMS I OUHNDL	/CALL OUTPUT DEVICE HANDLER
002754  0000	OUCTLW,	0		/CONTROL WORD
002755  5600		OUBUF		/BEGINNING OF OUTPUT BUFFER
002756  0000	OUREC,	0		/STARTING BLOCK NUMBER
002757  7610	SYSER3,	CLA SKP		/ERROR RETURN
002760  5730		JMP I OUTDMP	/--RETURN--
002761  1374	SYSERR,	TAD (DE		/DE **FATAL ERROR**
002762  5506		JMP I [MONERR

002763  0000	OUHNDL,	0
002764  0000	OUBLK,	0
002765  0000	OUELEN,	0

002766  1373	SYSER2,	TAD (DF		/GENERATE DF ERROR MESSAGE
002767  5506		JMP I [MONERR	/**FATAL ERROR**
002773  4446
002774  4445
002775  2510
002776  2503
002777  1465
	3000		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 55





		/MAINLINE CODE

003000  0000	LOOKE2,	0		/WAS THIS END OF LINE
003001  1040		TAD CHAR	/ OR END OF CONDITIONAL?
003002  1105		TAD [-">
003003  7450		SNA
003004  5240		JMP CONEND	/END OF CONDITIONAL
003005  1377		TAD (">
003006  7700		SMA CLA
003007  5600		JMP I LOOKE2	/NOT END OF LINE--RETURN--
003010  4574	LOOKE1,	JMS I [GETC	/GET A CHARACTER
003011  4776	MAIN,	JMS I (CTCCHK	/CHECK FOR ^C
003012  7200		CLA		/** CTCCHK RETURNS AC NON-ZERO!
003013  4565		JMS I [SPNOR	/IGNORE SPACES
003014  1040		TAD CHAR
003015  1375		TAD (-"$	/WAS IT $ ?
003016  7450		SNA		/YES--
003017  5774		JMP I (ENDPAS	/NO-END THIS PASS
003020  1373		TAD ("$-"*
003021  7650		SNA CLA		/WAS IT * ?
003022  5247		JMP STAR	/YES-HANDLE *
003023  4546		JMS I [TSTALP	/NO-WAS IT ALPHABETIC?
003024  5303		JMP ALPHA	/YES
003025  4200		JMS LOOKE2	/NO
003026  4562	TOEXP,	JMS I [EXP	/GET REST OF EXPRESSION
003027  1070		TAD LININD
003030  3067		DCA LINKSW	/STORE LINK SWITCH
003031  1034		TAD VALUE
003032  4511		JMS I [PUNBIN	/OUTPUT THE REGISTER
003033  4565	LOOKEX,	JMS I [SPNOR	/IGNORE TRAILING SPACES
003034  4200		JMS LOOKE2	/IS LINE ENDED?
003035  4541	ILCHAR,	JMS I [ERROR	/NO-GENERATE IC ERROR MESSAGE
003036  5143		IC
003037  5245		JMP CONEN1

003040  1053	CONEND,	TAD CONDSW	/ARE WE INTO CONDITIONALS?
003041  7450		SNA
003042  5235		JMP ILCHAR	/NO - > IS ILLEGAL
003043  7001		IAC		/ONE LESS CONDITIONAL
003044  3053		DCA CONDSW
003045  4574	CONEN1,	JMS I [GETC	/GET NEXT CHARACTER
003046  5233		JMP LOOKEX	/AND TRY FOR END AGAIN

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 56





		/HANDLER FOR *

003047  4574	STAR,	JMS I [GETC	/GET NEXT CHARACTER AFTER *
003050  4565		JMS I [SPNOR	/IGNORE SPACES
003051  4562		JMS I [EXP	/GET REST OF EXPRESSION
003052  3032	STAR0,	DCA STARSW	/ENTER HERE FROM RELOC WITH AC = -1
003053  2065		ISZ UNDFSW	/WAS ANYTHING UNDEFINED?
003054  5257		JMP .+3		
003055  4541		JMS I [ERROR	/YES-GENERATE UO ERROR MESSAGE
003056  6557		UO
003057  1034		TAD VALUE	/NO
003060  3033		DCA OP
003061  1027		TAD LOC		/IS THIS THE SAME PAGE AS
003062  0153		AND [7600	/THE PREVIOUS CODE?
003063  7041		CIA
003064  1033		TAD OP
003065  0153		AND [7600
003066  7650		SNA CLA
003067  5275		JMP STAR2	/YES-PUNCH ORIGIN
003070  4564		JMS I [DUMPS	/NO-DUMP LITERALS
003071  1031		TAD OFSBUF	/SET OFFSET TO NEW VALUE
003072  3030		DCA OFFSET	/AFTER LITERALS ARE DUMPED.
003073  1033		TAD OP		/PUNCH NEW ORIGIN, SET "VALUE"
003074  5772		JMP I (STAR3	/FOR LISTING, AND SET UP IN NEW PAGE

003075  1031	STAR2,	TAD OFSBUF	/SET OFFSET TO NEW VALUE
003076  3030		DCA OFFSET	/
003077  1033		TAD OP
003100  4552		JMS I [PUNORG	/PUNCH ORIGIN
003101  3014		DCA LAST1	/CLEAR LAST DEFINED SYMBOL
003102  5547		JMP I [PUNVAL

003103  4544	ALPHA,	JMS I [GETTAG	/PICK UP TAG-IS IT IN TABLE?
003104  3062		DCA ALPHAI	/STORE UNDEFINED TAG SWITCH
003105  1022		TAD TAG3	/IS IT A PSEUDO-OP?
003106  7710		SPA CLA
003107  5435		JMP I VALUE2	/YES-GO TO ITS HANDLER
003110  1040		TAD CHAR	/NO
003111  1371		TAD (-",	/WAS IT TERMINATED BY , ?
003112  7450		SNA
003113  5321		JMP COMMA	/YES-DEFINE THE SYMBOL
003114  1370		TAD (",-"=	/NO-WAS IT TERMINATED BY = ?
003115  7650		SNA CLA
003116  5767		JMP I (EQUAL	/YES-EQUATE THE SYMBOL
003117  7330		AC4000		/NO
003120  5226		JMP TOEXP	/TREAT AS AN EXPRESSION

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 57





		/HANDLER FOR ,

003121  4574	COMMA,	JMS I [GETC	/GET NEXT CHARACTER
003122  2062		ISZ ALPHAI	/WAS TAG DEFINED PREVIOUSLY?
003123  5340		JMP COMMA2	/YES
003124  1027		TAD LOC		/NO-STORE CURRENT ADDRESS FOR DEFINITION
003125  3035		DCA VALUE2
003126  4542		JMS I [INSRTG	/PUT TAG IN SYMBOL TABLE
003127  1020	COMMA1,	TAD TAG1	/STORE FOR ERROR MESSAGE OUTPUT
003130  3014		DCA LAST1
003131  1021		TAD TAG2
003132  3015		DCA LAST2
003133  1022		TAD TAG3
003134  3016		DCA LAST3
003135  1035		TAD VALUE2
003136  3017		DCA LAST4
003137  5211		JMP MAIN	/--EXIT TO MAIN--

003140  1027	COMMA2,	TAD LOC		/DO NEW AND OLD DEFINITIONS AGREE?
003141  7041		CIA
003142  1035		TAD VALUE2
003143  7650		SNA CLA
003144  5327		JMP COMMA1	/YES-ALLOW REDEFINITION
003145  4541		JMS I [ERROR	/NO-GENERATE ID ERROR MESSAGE
003146  5144		ID
003147  5211		JMP MAIN	/--EXIT TO MAIN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 58





003150  3600	OPTABL,	OP0		/+
003151  3656		OP1		/-
003152  5435		OP6		/%
003153  3644		OP2		/&
003154  3665		OP5		/(SPACE)
003155  3665	OPEXPL,	OP5		/! - CHANGED TO OP3 IF /B ON
003156  3647		OP4		/^
003157  0000	XCHANG,	0
003160  1034		TAD VALUE
003161  0160		AND [30
003162  7450		SNA
003163  5366		JMP .+3
003164  1156		TAD [7700
003165  4447		JMS I OCHAR
003166  5757		JMP I XCHANG
003167  0510
003170  7757
003171  7524
003172  0456
003173  7772
003174  4425
003175  7534
003176  2343
003177  0276
	3200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 59





		/EXPRESSION PROCESSOR
		/POSSIBLE RECURSIVE ENTRY
		/ENTER WITH CHARACTER IN CHAR

003200  0000	EXP,	0
003201  3054		DCA EXPIND	/SET INDICATOR (NOT 0 IF NO MRI FOUND)
003202  3070		DCA LININD	/CLEAR LINK GENERATED SWITCH (' )
003203  3034		DCA VALUE	/START WITH "VALUE" = 0
003204  3065		DCA UNDFSW	/CLEAR UNDIFINED SWITCH
003205  1200		TAD EXP
003206  4543		JMS I [PUSHA	/SAVE RETURN ADDRESS
003207  3033		DCA OP		/OP=0; ADD
003210  1054		TAD EXPIND
003211  7710		SPA CLA
003212  5777		JMP I (EXPINT
003213  1040		TAD CHAR	/IS CHARACTER A + ?
003214  1376		TAD (-"+
003215  7112		CLL RTR		/PUT THE 2 BIT IN THE LINK
003216  7640		SZA CLA		/WAS CHAR 53(+) OR 55(-)?
003217  5224		JMP EXP1A	/NO
003220  7004		RAL		/YES - OP IS 0 OR 1, DEPENDING
003221  3033	EXP1,	DCA OP
003222  4574		JMS I [GETC	/GET NEXT CHARACTER
003223  2054		ISZ EXPIND	/MRI NO LONGER LEGAL ON THIS LINE
003224  1040	EXP1A,	TAD CHAR	/IS CHARACTER A . ?
003225  1114		TAD [-".
003226  7450		SNA
003227  5337		JMP PERIOD	/YES-GO TO . HANDLER
003230  1375		TAD (".-""	/NO-IS IT " ?
003231  7450		SNA
003232  5342		JMP QUOTE	/YES-GO TO " HANDLER
003233  1374		TAD (""-"[	/NO-IS IT [ ?
003234  7100		CLL
003235  7440		SZA
003236  1373		TAD ("[-"(	/OR (?
003237  7650		SNA CLA
003240  5772		JMP I (LIT	/YES - LITERAL - LINK HOLDS WHICH KIND
003241  4546		JMS I [TSTALP	/NO-IS IT ALPHABETIC?
003242  5771		JMP I (ALPHA1	/YES-HANDLE SYMBOL
003243  4504		JMS I [TSTNUM	/NO-IS IT NUMERIC?
003244  5300		JMP NUMBER	/YES-HANDLE NUMBER

003245  4256	EXP2,	JMS ENDCHK	/NO-CHECK FOR END
003246  5224		JMP EXP1A	/NOGO - TRY AGAIN
003247  1033		TAD OP
003250  1132		TAD [-4		/IS OP SPACE (4)
003251  7650		SNA CLA
003252  5770		JMP I (EXPXIT	/YES-EXIT
003253  4541		JMS I [ERROR
003254  5143		IC		/GIVE IC MESSAGE ON ILLEGAL OPERATOR
003255  5777		JMP I (EXPINT	/EXIT ANYWAY

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 60





		/END OF EXPRESSION CHECK
		/SKIP IF OK

003256  0000	ENDCHK,	0
003257  1040		TAD CHAR
003260  1367		TAD (-"]	/IS CHARACTER A ] ?
003261  7440		SZA		/YES-SKIP A EXIT
003262  1366		TAD ("]-")	/IS CHARACTER A ) ?
003263  7440		SZA		/YES-SKIP A EXIT
003264  1365		TAD (")-">	/IS CHARACTER A > ?
003265  7440		SZA		/YES-SKIP AND EXIT
003266  1364		TAD (">-"<	/IS CHARACTER A < ?
003267  7450		SNA
003270  5276		JMP ENDCH1	/YES-SKIP AND EXIT
003271  1363		TAD ("<
003272  7710		SPA CLA		/IS IT END-OF-LINE?
003273  5276		JMP ENDCH1	/YES-SKIP AND EXIT
003274  4545		JMS I [ICMESG	/NO - GENERATE IC MESSAGE AND GET NEXT CHAR
003275  5656		JMP I ENDCHK	/--RETURN--

003276  2256	ENDCH1,	ISZ ENDCHK	/INCREMENT RETURN ADDRESS
003277  5656		JMP I ENDCHK	/--RETURN--

003300  3043	NUMBER,	DCA TEMP
003301  1024	NUMBE2,	TAD RADIX	/IS THE CURRENT RADIX OCTAL?
003302  7650		SNA CLA
003303  1040		TAD CHAR	/YES-IS THE DIGIT GREATER THAN 7?
003304  1362		TAD (-"8
003305  7700		SMA CLA
003306  5335		JMP NUMBE3	/YES-ILLEGAL CHARACTER
003307  1043		TAD TEMP	/NO-ADD IT TO THE PREVIOUS
003310  7104		CLL RAL		/ACCUMULATED VALUE
003311  7104		CLL RAL
003312  3045		DCA TEMP2
003313  1024		TAD RADIX	/IS RADIX OCTAL?
003314  0043		AND TEMP	/NO
003315  1045		TAD TEMP2	/YES
003316  7104		CLL RAL
003317  1040		TAD CHAR
003320  1361		TAD (-"0
003321  3043		DCA TEMP
003322  4574		JMS I [GETC	/GET NEXT CHARACTER
003323  4504	NUMBE4,	JMS I [TSTNUM	/IS IT NUMERIC?
003324  5301		JMP NUMBE2	/YES-CONTINUE ACCUMULATING NUMBER
003325  1043		TAD TEMP	/NO-STORE NUMBER
003326  3035	NUMBE1,	DCA VALUE2
003327  1033	NUMBE5,	TAD OP		/GO COMBINE IT VIA LAST OPERATION
003330  1360		TAD (OPTABL
003331  3043		DCA TEMP	/FIND THE OPERATOR HANDLER
003332  1443		TAD I TEMP
003333  3043		DCA TEMP

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 60-1

003334  5443		JMP I TEMP	/GO TO THE HANDLER

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 61





		/8 OR 9 FOUND DURING OCTAL RADIX

003335  4545	NUMBE3,	JMS I [ICMESG	/GENERATE IC ERROR MESSAGE AND
003336  5323		JMP NUMBE4	/IGNORE CHARACTER


		/HANDLER FOR .

003337  4574	PERIOD,	JMS I [GETC	/GET NEXT CHARACTER
003340  1027		TAD LOC		/MAKE CURRENT LOCATION
003341  5326		JMP NUMBE1	/INTO VALUE OF NUMBER

		/HANDLER FOR "

003342  2037	QUOTE,	ISZ TXTPTR
003343  1437		TAD I TXTPTR	/GET CHARACTER FROM TEXT BUFFER
003344  1136		TAD [-215	/WAS IT CARRIAGE RETURN?
003345  7650		SNA CLA
003346  5353		JMP QUOTE1	/YES-IT IS IC-IGNORE "
003347  1437		TAD I TXTPTR	/NO-PUT ASCII CODE INTO
003350  3035		DCA VALUE2	/VALUE WORD
003351  4574		JMS I [GETC	/GET NEXT CHARACTER
003352  5327		JMP NUMBE5	/RETURN TO EXPRESSION PROCESSOR

		/CARRIAGE RETURN FOUND IN SINGLE CHARACTER TEXT

003353  4541	QUOTE1,	JMS I [ERROR	/GENERATE IC ERROR MESSAGE
003354  5143		IC
003355  7240		CLA CMA
003356  3040		DCA CHAR
003357  5770		JMP I (EXPXIT
003360  3150
003361  7520
003362  7510
003363  0274
003364  0002
003365  7753
003366  0064
003367  7443
003370  3630
003371  3400
003372  4600
003373  0063
003374  7707
003375  0014
003376  7525
003377  3461
	3400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 62





		/COME HERE IF FIRST THING IN EXPRESSION IS ALPHA CHARACTER

003400  4544	ALPHA1,	JMS I [GETTAG	/PICK UP TAG
003401  3062		DCA ALPHAI	/STORE UNDEFINED INDICATOR
003402  1022	ALPHA3,	TAD TAG3	/IS IT A PSEUDO-OP?
003403  7700		SMA CLA
003404  5207		JMP .+3
003405  4541		JMS I [ERROR	/YES-GENERATE IP ERROR MESSAGE
003406  5160		IP
003407  2062		ISZ ALPHAI	/NO-WAS IT UNDEFINED?
003410  5217		JMP ALPHA0
003411  2065		ISZ UNDFSW	/YES-SET UNDEFINED SWITCH
003412  1051		TAD PASS	/IS THIS PASS 1?
003413  7710		SPA CLA
003414  5217		JMP ALPHA0	/YES-SUPPRESS ERROR MAESSAGE
003415  4541		JMS I [ERROR	/NO-GENERATE US ERROR MESSAGE
003416  6563		US
003417  1021	ALPHA0,	TAD TAG2	/NO-WAS IT A MEMORY REFERENCE INSTRUCTION?
003420  7710		SPA CLA
003421  1040		TAD CHAR	/YES-GET TERMINATING CHARACTER
003422  1171		TAD [-240	/WAS IT SPACE?
003423  7640		SZA CLA
003424  5777		JMP I (NUMBE5	/NOT MEMREF FOLLOWED BY SPACE
003425  4565		JMS I [SPNOR	/YES-IGNORE SPACES
003426  1040		TAD CHAR
003427  7710		SPA CLA
003430  5777		JMP I (NUMBE5
003431  1054		TAD EXPIND	/IS MEMORY REFERENCE INSTRUCTION OK?
003432  7640		SZA CLA
003433  5777		JMP I (NUMBE5	/NO-
003434  3056		DCA IZIND	/YES-CLEAR I AND Z INDICATOR
003435  1035		TAD VALUE2	/STORE MRI ON PUSHDOWN LIST
003436  4543		JMS I [PUSHA

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 63





003437  1056	ALPHA6,	TAD IZIND
003440  4543		JMS I [PUSHA	/PUSH THE I AND Z INDICATOR
003441  4546		JMS I [TSTALP	/WAS TERMINATING CHARACTER ALPHABETIC?
003442  7410		SKP
003443  5266		JMP ALPHA4	/NO-
003444  4544		JMS I [GETTAG	/YES-PICK UP TAG
003445  3062		DCA ALPHAI	/STORE UNDEFINED INDICATOR
003446  7332		AC2000
003447  0020		AND TAG1	/WAS IT AN I OR Z?
003450  7650		SNA CLA
003451  5265		JMP ALPHA5	/NO
003452  1035		TAD VALUE2	/YES-WAS IT I?
003453  7450		SNA
003454  7001		IAC		/NO - SET LOW ORDER
003455  1410		TAD I	PDLXR	/GET OLD IZIND FROM PDL
003456  3056		DCA IZIND	/SET NEW IZIND
003457  4565		JMS I [SPNOR	/IGNORE SPACES
003460  5237		JMP ALPHA6

003461  1054	EXPINT,	TAD EXPIND
003462  1141		TAD [4000
003463  3054		DCA EXPIND
003464  5202		JMP ALPHA3

003465  7330	ALPHA5,	AC4000
003466  7001	ALPHA4,	IAC
003467  4562		JMS I [EXP	/GET REST OF EXPRESSION
003470  1410		TAD I PDLXR	/RETRIEVE MRI
003471  3056		DCA IZIND
003472  1410		TAD I PDLXR
003473  3035		DCA VALUE2
					/FALL INTO NEXT PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 64





		/COMBINE ADDRESS WITH MEMORY REFERENCE INSTRUCTION

003474  1034		TAD VALUE	/GET ADDRESS
003475  0153		AND [7600
003476  7450		SNA		/IS IT PAGE 0?
003477  5330		JMP FIX4	/YES
003500  7041		CIA		/NO-IS IT ON CURRENT PAGE?
003501  1027		TAD LOC
003502  0153		AND [7600
003503  7650		SNA CLA
003504  5317		JMP FIX2	/YES
003505  1034		TAD VALUE	/NO-SET UP LINK
003506  4776		JMS I (FINDS
003507  3034		DCA VALUE
003510  1313		TAD FIXMD0	/SET ' IN LISTING
003511  3070		DCA LININD
003512  2077		ISZ LINK	/BUMP NUMBER OF LINKS GENERATED
003513  0700	FIXMD0,	0700		/PROTECTION FOR ISZ
003514  7410	LGERR,	SKP		/JMS I PERROR IF /E SPECIFIED
003515  5447		LG
003516  4343		JMS ADDIND	/SET INDIRECT BIT IN INSTRUCTION
003517  1176	FIX2,	TAD [200	/SET CURRENT PAGE BIT
003520  1035		TAD VALUE2
003521  3035		DCA VALUE2
003522  1056		TAD IZIND
003523  0175		AND [77		/WAS Z SPECIFIED?
003524  7650		SNA CLA
003525  5330		JMP FIX4	/NO
003526  4541		JMS I [ERROR	/YES - ILLEGAL REFERENCE
003527  5172		IZ		/TO PAGE 0
003530  1056	FIX4,	TAD IZIND	/WAS THERE AN I?
003531  0156		AND [7700
003532  7640		SZA CLA
003533  4343		JMS ADDIND	/YES - ADD INDIRECT BIT TO INSTRUCTION
003534  1034		TAD VALUE	/GET ADDRESS
003535  0154		AND [177
003536  1035		TAD VALUE2	/GET OP CODE
003537  3034		DCA VALUE	/STORE
003540  1410	POPJ,	TAD I PDLXR
003541  3043		DCA TEMP	/POP A WORD OFF THE STACK
003542  5443		JMP I TEMP	/JUMP THROUGH IT.

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 65





003543  0000	ADDIND,	0		/ROUTINE TO ADD INDIRECT BIT TO AN INSTR
003544  1035		TAD VALUE2
003545  7040		CMA
003546  0126		AND [400
003547  7440		SZA		/WAS THERE ONE ALREADY?
003550  5353		JMP .+3	/NO
003551  4541		JMS I [ERROR	/YES - ILLEGAL INDIRECT
003552  5151		II
003553  1035		TAD VALUE2
003554  3035		DCA VALUE2
003555  5743		JMP I ADDIND

		/	ALLOWS MULTIPLE NON-RESIDENT INPUT HANDLERS TO NOT BOMB

003556  0000	PTCH,	0		/RUNS IN DF 10
003557  1375		TAD (7647	/POINT TO DEVICE
003560  3003		DCA PTR		/HANDLER RESIDENCY TABLE
003561  1103		TAD [-17	/IT HAS 15 ENTRIES
003562  3004		DCA KNTR	/V3C
003563  1403	KLOOP,	TAD I PTR	/GET HANDLER ENTRY POINT
003564  0153		AND [7600	/LOOK AT PAGE IT'S ON
003565  1167		TAD [-INDEVH	/IS IT ON THE PAGE WE PUT BUFFER OVER?
003566  7650		SNA CLA		/WELL?
003567  3403		DCA I PTR	/YES IT IS, WIPE IT FROM RESIDENCY
003570  2003		ISZ PTR		/LOOK AT NEXT ENTRY
003571  2004		ISZ KNTR	/ANY MORE ENTRIES?
003572  5363		JMP KLOOP	/YES, MIGHT HAVE TO WIPE SEVERAL GUYS
003573  1176		TAD [200	/INCREASE INPUT BUFFER SIZE
003574  5756		JMP I PTCH	/V3C
003575  7647
003576  4652
003577  3327
	3600		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 66





		/COMBINE CURRENT VALUE WITH PREVIOUS VALUE
		/ACCORDING TO LAST OPERATOR

003600  1035	OP0,	TAD VALUE2	/HANDLER FOR +
003601  1034		TAD VALUE	/** OP0+1 AND OP0+2 JUMPED TO **
003602  3034		DCA VALUE
003603  1040	EXP3,	TAD CHAR	/GET LAST OPERATOR
003604  1377		TAD (-"+	/WAS IT A + OR - ?
003605  7112		CLL RTR
003606  7450		SNA
003607  5242		JMP PLSMIN	/YES - LINK=0 FOR +, 1 FOR -
003610  7006		RTL
003611  1376		TAD ("+-"%
003612  7110		CLL RAR
003613  7450		SNA		/IS THE CHAR % OR &?
003614  5241		JMP DIVAND	/YES - LINK=0 FOR %, 1 FOR &
003615  7004		RAL
003616  1375		TAD ("%-240
003617  7110		CLL RAR
003620  7450		SNA		/IS THE CHAR SPACE OR !?
003621  5240		JMP BLKEXP	/YES - LINK=0 FOR SPACE, 1 FOR !
003622  7004		RAL
003623  1374		TAD (240-"^
003624  7650		SNA CLA		/IS THE CHAR ^?
003625  5237		JMP MUL		/YES - LINK IRRELEVANT
003626  4773		JMS I (ENDCHK	/NO-SEE IF END OF LINE FOUND
003627  5203		JMP EXP3	/NO-TRY AGAIN
003630  1065	EXPXIT,	TAD UNDFSW	/EXIT FROM EXP
003631  7650		SNA CLA		/RESTORE EXIT POINT
003632  5772		JMP I (POPJ	/--EXIT VIA POPJ--
003633  7240		CLA CMA
003634  3065		DCA UNDFSW	/SET UNDEFINED SWITCH
003635  3034		DCA VALUE	/RESULT IS 0
003636  5772		JMP I (POPJ	/--EXIT VIA POPJ--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 67





003637  7101	MUL,	CLL IAC		/LINK DOESN'T COUNT FOR ^
003640  7001	BLKEXP,	IAC		/** BLANK ASSUMED TO BE 4 ELSEWHERE **
003641  7001	DIVAND,	IAC
003642  7004	PLSMIN,	RAL
003643  5771		JMP I (EXP1	/GET REST OF EXPRESSION

		/HANDLER FOR &

003644  1034	OP2,	TAD VALUE
003645  0035		AND VALUE2
003646  5202		JMP OP0+2


		/HANDLER FOR ^
		/MULTIPLY BY REPEATED ADDITION

003647  1034	OP4,	TAD VALUE
003650  7041		CIA
003651  3043		DCA TEMP
003652  1035		TAD VALUE2
003653  2043		ISZ TEMP
003654  5252		JMP .-2
003655  5202		JMP OP0+2

003656  1035	OP1,	TAD VALUE2	/- OPERATOR
003657  7041		CIA
003660  5770		JMP I (OP0+1	/JUMP INTO ADD OPERATOR

		/OPTIONAL HANDLER FOR ! AS 6 BIT LEFT SHIFT AND THEN OR:

003661  1034	OP3,	TAD VALUE
003662  4567		JMS I [RTL6
003663  0156		AND [7700	/ISOLATE 6 BITS AND FALL INTO "OR"
003664  3034		DCA VALUE	/V3C

		/HANDLER FOR ! AND SPACE AS INCLUSIVE OR

003665  1034	OP5,	TAD VALUE
003666  7040		CMA
003667  0035		AND VALUE2
003670  5770		JMP I (OP0+1

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 68





		/CHARACTER INPUT CHECK
		/ENTER WITH CHARACTER IN AC

003671  7440	LSTCH9,	SZA		/IGNORE NULL (0)
003672  1367		TAD (-177
003673  7440		SZA		/IGNORE RUBOUT (377)
003674  1366		TAD (177-13
003675  7440		SZA		/IGNORE VERTICAL TAB (213)
003676  7001		IAC
003677  7450		SNA
003700  5765		JMP I (INPUT+1	/IGNORE LINE FEED (212)
003701  1102		TAD [12-32	/WAS IT ^Z (END-OF-FILE=232)?
003702  7450		SNA
003703  5764		JMP I (ENDCHR	/YES - GET NEXT FILE
003704  1363		TAD (32-15	/NO - WAS IT CARRIAGE RETURN?
003705  7450		SNA
003706  5337		JMP LSTCHR	/YES - LAST CHARACTER OF LINE
003707  7001		IAC		/NO
003710  7450		SNA		/WAS IT FORM FEED (214)?
003711  5353		JMP FORCHR	/YES - HANDLER FORM FEED
003712  2762		ISZ I (INPUT
003713  1361		TAD (14+200
003714  3334		DCA LSTCH5	/STORE CHARACTER
003715  1051		TAD PASS	/IS THIS PASS 3?
003716  7750		SPA SNA CLA
003717  5324		JMP LSTCH4	/NO -
003720  2335		ISZ LSTCH6	/YES - FILLING HEADER AREA?
003721  5330		JMP LSTCH3	/YES
003722  7240		CLA CMA		/NO - RESET SWITCH
003723  3335		DCA LSTCH6
003724  1762	LSTCH4,	TAD I (INPUT
003725  3043		DCA TEMP
003726  1334		TAD LSTCH5	/GET CHARACTER IN AC
003727  5443		JMP I TEMP	/-EXIT FROM INPUT-

003730  2336	LSTCH3,	ISZ LSTCH7	/FILLING HEADER
003731  1334		TAD LSTCH5	/STORE CHARACTER IN HEADER AREA
003732  3736		DCA I LSTCH7
003733  5324		JMP LSTCH4

003734  0000	LSTCH5,	0
003735  7730	LSTCH6,	-HEDLEN
003736  1450	LSTCH7,	HEADER-1

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 69





003737  1355	LSTCHR,	TAD FORMSW	/CARRIAGE RETURN WAS FOUND
003740  7650		SNA CLA		/HAS THERE BEEN A FORM FEED?
003741  5350		JMP LSTCH1	/NO -
003742  3355		DCA FORMSW	/YES - CLEAR FORM FEED SWITCH
003743  2042		ISZ EDITPG	/GO TO NEXT EDITOR PAGE
003744  3041		DCA THISPG	/CLEAR OVERFLOW PAGE
003745  1051		TAD PASS	/IS THIS PASS 3?
003746  7740		SMA SZA CLA
003747  4534		JMS I [FORMFD	/YES - GENERATE FORM FEED
003750  1133	LSTCH1,	TAD [215	/NO - CARRIAGE RETURN IS CHARACTER
003751  3334		DCA LSTCH5
003752  5322		JMP LSTCH4-2	/EXIT

003753  2355	FORCHR,	ISZ FORMSW	/SET FORM FEED SWITCH
003754  5765		JMP I (INPUT+1	/GET ANOTHER CHARACTER

003755  0001	FORMSW,	1
003761  0214
003762  5200
003763  0015
003764  5302
003765  5201
003766  0164
003767  7601
003770  3601
003771  3221
003772  3540
003773  3256
003774  7702
003775  0005
003776  0006
003777  7525
	4000		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 70





		/ERROR MESSAGE OUTPUT

		DUMPS1,
004000  0000	ERROR,	0
004001  7200		CLA
004002  2076		ISZ ERCNT	/COUNT THE ERRORS
004003  0253	ERPLUS,	"+		/PROTECTION
004004  1600		TAD I ERROR	/GET ERROR MESSAGE
004005  2200		ISZ ERROR	/INCREMENT RETURN ADDRESS
004006  4526		JMS I [ERROR1	/OUTPUT 2 CHARACTER ERROR MESSAGE
004007  1377		TAD (JMP I [7600 /PUT EXIT TO MONITOR
004010  3776	CSWIT1,	DCA I (LSWITC	/IN SWITCH - "CLA" IF /C
004011  1051		TAD PASS	/IS THIS PASS 3?
004012  7740		SMA SZA CLA
004013  5241		JMP ERROR4	/YES - CARRIAGE RETURN/LINE FEED
004014  4526		JMS I [ERROR1	/NO - OUTPUT 2 SPACES
004015  1172		TAD [1777	/IS THERE A TAG SAVED?
004016  0014		AND LAST1
004017  7450		SNA
004020  5237		JMP ERROR3	/NO
004021  4775		JMS I (DIV45	/YES - OUTPUT FIRST 2 CHARACTERS
004022  1015		TAD LAST2	/OUTPUT SECOND 2 CHARACTERS
004023  4775		JMS I (DIV45
004024  1016		TAD LAST3
004025  4775		JMS I (DIV45	/OUTPUT THIRD 2 CHARACTERS
004026  1017		TAD LAST4	/IS ERROR LOCATION SAME AS LAST TAG?
004027  7041		CIA
004030  1027		TAD LOC
004031  7650		SNA CLA
004032  5241		JMP ERROR4	/YES - CARRIAGE RETURN
004033  1203		TAD ERPLUS
004034  4450		JMS I OERROR
004035  1017		TAD LAST4
004036  7041		CIA
004037  1027	ERROR3,	TAD LOC		/OUTPUT 4 DIGIT ADDRESS OR INCREMENT
004040  4774		JMS I (OCTPRT
004041  1133	ERROR4,	TAD [215	/OUTPUT CARRIAGE RETURN/LINE FEED
004042  4450		JMS I OERROR
004043  5600		JMP I ERROR	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 71





		/RESET LITERAL TABLES AND POINTERS

		DUMPS5,
004044  0000	CLEAN,	0
004045  1373		TAD (LITBUF-1
004046  3012		DCA XREG1	/SET LITERAL TABLE POINTER
004047  1372		TAD (TPINST-1
004050  3013		DCA XREG2	/SET TOP INST. TABLE POINTER
004051  1371		TAD (-40
004052  3043		DCA TEMP
004053  1176		TAD [200
004054  3412		DCA I XREG1	/SET LITERAL TABLE ENTRIES TO 200
004055  3413		DCA I XREG2	/SET TOP INST. TABLE ENTRIES TO 0
004056  2043		ISZ TEMP
004057  5253		JMP .-4
004060  3014		DCA LAST1	/CLEAR LAST DEFINED TAG
004061  5644		JMP I CLEAN	/--RETURN--

		/DUMP CURRENT PAGE LITERALS

004062  0000	DUMPS,	0
004063  4551		JMS I [FINDSP
004064  7450		SNA		/IF THIS IS PAGE 0,
004065  5662		JMP I DUMPS	/--RETURN--
004066  1150		TAD [LITBUF
004067  3200		DCA DUMPS1
004070  1023		TAD LITPTR
004071  7141		CIA CLL
004072  1600		TAD I DUMPS1
004073  3347		DCA DUMPS2	/STORE NUMBER OF LITERALS ON THIS PAGE
004074  7430		SZL		/ARE THERE ANY?
004075  5323		JMP D2		/V3C
004076  3032		DCA STARSW	/FORCE ORIGIN PUNCH IF RELOC JUST INVOKED
004077  1027		TAD LOC
004100  0153		AND [7600
004101  1600		TAD I DUMPS1
004102  4552		JMS I [PUNORG	/OUTPUT ORIGIN
004103  1600		TAD I DUMPS1
004104  1370		TAD (LITBF1
004105  3244	DUMPS3,	DCA DUMPS5
004106  1537		TAD I [LINBUF	/SAVE LINBUF
004107  4543		JMS I [PUSHA
004110  3537		DCA I [LINBUF
004111  1644	DUMPS6,	TAD I DUMPS5
004112  3034		DCA VALUE
004113  4521	JMSPUN,	JMS I [PUNONE	/OUTPUT ONE REGISTER
004114  2027		ISZ LOC
004115  2244		ISZ DUMPS5
004116  2600	LITHAK,	ISZ I DUMPS1	/DESTROY RECORD OF CURRENT PAGE LITERALS -
					/ZEROED IF NO /W OPTION SPECIFIED
004117  2347		ISZ DUMPS2

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 71-1

004120  5311		JMP DUMPS6
004121  1410		TAD I PDLXR
004122  3537		DCA I [LINBUF	/RESTORE LINBUF
004123  1200	D2,	TAD DUMPS1	/WIPE REMEMBRANCE OF TOP OF PAGE (JR)
004124  1367		TAD (40		/V3C
004125  3244		DCA DUMPS5
004126  3644	D3,	DCA I DUMPS5
004127  5662		JMP I DUMPS	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 72





		/HANDLER FOR ZBLOCK PSEUDO-OP
		/RESERVES AS MANY WORDS OF ZERO
		/AS VALUE OF EXPRESSION

004130  4565	ZBLOCX,	JMS I [SPNOR	/IGNORE SPACES
004131  4562		JMS I [EXP	/GET THE EXPRESSION
004132  1034		TAD VALUE
004133  7040		CMA		/PROTECT AGAINST ZERO CASE
004134  3046		DCA TEMP3	/STORE NEGATIVE AS COUNTER
004135  5342		JMP ZBLOCZ	/JUMP INTO LOOP
004136  4511	ZBLOCY,	JMS I [PUNBIN	/OUTPUT ONE WORD OF ZERO
004137  1051		TAD PASS	/IS THIS PASS 3?
004140  7740		SMA SZA CLA
004141  3766		DCA I (PUNMOD	/YES - PREVENT OUTPUT
004142  2046	ZBLOCZ,	ISZ TEMP3	/NO - DONE YET?
004143  5336		JMP ZBLOCY	/NO - CONTINUE
004144  1313		TAD JMSPUN	/YES - RESTORE PUNMOD
004145  3766		DCA I (PUNMOD
004146  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

		/DUMP PAGE 0 LITERALS

		DUMPS2,
004147  0000	DUMPZ,	0
004150  1347		TAD DUMPZ	/RESET EXIT FROM DUMPS
004151  3262		DCA DUMPS
004152  1176		TAD [200
004153  7141		CIA CLL
004154  1550		TAD I [LITBUF	/STORE THE NUMBER OF LITERALS ON PAGE 0
004155  3347		DCA DUMPS2
004156  7430		SZL		/ARE THERE ANY?
004157  5662		JMP I DUMPS	/NO - ** DUMPZ IS DESTROYED **
004160  1550		TAD I [LITBUF
004161  4552		JMS I [PUNORG	/OUTPUT ORIGIN
004162  1550		TAD I [LITBUF	/SET VALUES FOR DUMPS
004163  1365		TAD (LITBF2
004164  5305		JMP DUMPS3
004165  2023
004166  1434
004167  0040
004170  2123
004171  7740
004172  2001
004173  1741
004174  1310
004175  4217
004176  4460
004177  5553
	4200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 73





		/ENTER A TAG INTO SYMBOL TABLE

			IFZERO	HASH<
		INSRTG,	0
			TAD VALUE2	/SAVE VALUE 2
			JMS I [PUSHA
			ISZ HIGHTG	/COUNT IN THIS TAG
			TAD TAGMAX
			CLL CIA		/GET LIMIT OF SYMBOL STORAGE
			TAD HIGHTG	/IS THERE ROOM FOR ONE MORE?
			SZL
			JMP I (SYMOFL	/NO - SE**FATAL ERROR**
			TAD TAGMAX	/YES - IS USR IN CORE?
			TAD (-1340
			SZL CLA
			JMP GETTG5	/YES
			TAD [7700	/NO - RESET ADDRESS TO
			DCA IOMON	/USR NON-RESIDENT
			AC7776
			AND I (JSBITS	/RESET JOB STATUS WORD TO
			DCA I (JSBITS	/SAVE CORE WHEN USR CALLED
		GETTG5,	TAD THISTG	/SEARCH SYMBOL TABLE
			DCA TEMP2
			TAD HIGHTG
			IAC
			DCA THISTG
		GETTG8,	AC7776
			TAD THISTG
			DCA THISTG
			JMS I [FINDTG	/GET NEXT TAG FROM SYMBOL TABLE
			ISZ THISTG
			TAD THISTG
			CIA
			TAD TEMP2	/DOES NEW TAG GO WHERE PREVIOUS TAG WAS?
			SNA CLA
			JMP GETTG9	/YES-PUT IT THERE AND EXIT
			JMS I [PUTTAG	/NO-REPLACE RETRIEVED TAG WHERE PREVIOUS TAG WAS
			JMP GETTG8

		/THE ABOVE CODE WILL BE OPTIMIZED AT INITIALIZATION
		/IF THE ASSEMBLER IS TO BE RESTRICTED TO 8K OF CORE

		GETTG9,	TAD I (NAME1	/GET CURRENT TAG
			DCA TAG1	/PUT IT IN TAG1-TAG3
			TAD I (NAME2
			DCA TAG2
			TAD I (NAME3
			DCA TAG3
			TAD I PDLXR	/RESTORE VALUE 2
			DCA VALUE2
			JMS I [PUTTAG	/PUT TAG1 - TAG3 INTO SYMBOL TABLE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 73-1

			JMP I INSRTG	/--RETURN--

		TAGMAX,	1740		/12K=3740, ...
			>

		/	IFNZRO	HASH<	/***HACK ONLY***
		/TLYREF,	0		/TALLY REFS TO SYMBOL TABLE
		/	ISZ	NREFL
		/	JMP I	TLYREF
		/	ISZ	NREFH
		/	JMP I	TLYREF
		/	JMP I	TLYREF
		/TLYPRB,	0		/TALLY PROBES INTO TABLE
		/	JMS I	[FINDTG	/FUDGE, OUT OF ROOM
		/	ISZ	NPROBL
		/	JMP I	TLYPRB
		/	ISZ	NPROBH
		/	JMP I	TLYPRB
		/	JMP I	TLYPRB
		/NREFH,	0
		/NREFL,	0
		/NPROBH,	0
		/NPROBL,	0
		/	>		/***HACK ONLY***

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 74





			IFNZRO	HASH<

			/INSERT A TAG INTO THE HASH TABLE

004200  0000	INSRTG,	0
004201  2060		ISZ	HIGHTG	/BUMP SYM NUM (SKIPS ON 0)
004202  1060		TAD	HIGHTG
004203  7160		STL CMA
004204  1100		TAD	TAGMAX
004205  7670		SNA SZL CLA	/STILL ROOM FOR AT LEAST 2 MORE?
004206  5777		JMP I	(SYMOFL	/NO SE** FATAL ERROR**
004207  1776		TAD I	(NAME1
004210  3020		DCA	TAG1
004211  1775		TAD I	(NAME2
004212  3021		DCA	TAG2
004213  1774		TAD I	(NAME3
004214  3022		DCA	TAG3
004215  4540		JMS I	[PUTTAG	/NOW ACTUALLY INSERT IT
004216  5600		JMP I	INSRTG
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 75





		/OUTPUT 2 CHARACTER WORD
		/FROM SYMBOL TABLE FORMAT
		/DIVIDE BY 45(8)

004217  0000	DIV45,	0
004220  7004		RAL
004221  7110		CLL RAR		/CLEAR SIGN BIT
004222  2242	DIV45A,	ISZ DIV45C
004223  1373		TAD (-45
004224  7500		SMA
004225  5222		JMP DIV45A
004226  1372		TAD (45
004227  4243		JMS DIV45E
004230  3241		DCA DIV45B
004231  7240		STA
004232  1242		TAD DIV45C
004233  4243		JMS DIV45E
004234  4567		JMS I [RTL6
004235  1241		TAD DIV45B
004236  4526		JMS I [ERROR1	/OUTPUT 2 CHARACTERS
004237  3242		DCA DIV45C	/CLEAR DIV45C FOR NEXT GO-ROUND
004240  5617		JMP I DIV45	/--RETURN--

004241  0000	DIV45B,	0
004242  0000	DIV45C,	0		/** MUST BE 0 WHEN DIV45 IS ENTERED **

004243  0000	DIV45E,	0
004244  7450		SNA
004245  5643		JMP I DIV45E
004246  1371		TAD (-33
004247  7500		SMA
004250  1370		TAD (20-40-33
004251  1367		TAD (33+40
004252  5643		JMP I DIV45E	/--RETURN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 76





		/HANDLER FOR FIXTAB PSEUDO-OP

004253  1051	FIXTBX,	TAD PASS	/IS THIS PASS 1?
004254  7700		SMA CLA
004255  5577		JMP I [LOOKEX	/NO--EXIT TO MAIN--
004256  5766		JMP I (FIXTAY	/YES--DO FIXTAB

		/SET FIELD

004257  0000	SETFLD,	0
004260  7300		CLA CLL		/SETFLD CALLED WITH AC RANDOM
004261  3301		DCA SETFL1	/INITIALIZE FIELD
			IFNZRO	HASH<
004262  1303		TAD	USROFS	/FUDGE FOR KEEPING USR AROUND
			>
004263  1057		TAD THISTG
004264  2301	SETFLP,	ISZ SETFL1
004265  7020		CML
004266  1365		TAD (-1740	/PUT 1740 SYMBOLS IN EACH FIELD
004267  7420		SNL		/IS THE DIVIDE THROUGH?
004270  5264		JMP SETFLP	/NO - CONTINUE
			IFZERO	HASH<
			CLL CMA RTL	/AC CONTAINED REM-1740; THIS MAKES IT INTO
			TAD (-1		/7573-4*REM WHICH IS THE ADDRESS WE WANT
			>
			IFNZRO	HASH<
004271  7106		CLL RTL		/AC GETS 0201 TO 7775
004272  1364		TAD	(-202	/AC GETS 7777 TO 7573 FOR TAGXR
			>
004273  3011		DCA TAGXR	/TO STICK INTO AN AUTO-XR
004274  1301		TAD SETFL1
004275  7106		CLL RTL
004276  7004		RAL
004277  1317		TAD SETFL2
004300  3301		DCA SETFL1
004301  7402	SETFL1,	HLT
004302  5657		JMP I SETFLD	/--RETURN--
			IFNZRO	HASH<
004303  0000	USROFS,	0		/GETS 400 IF KEEPING USR
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 77





		/FIND TAG
		/GET TAG FROM SYMBOL TABLE
		/PUT IT INTO TAG1-TAG3
		/WITH ITS VALUE IN VALUE2

004304  0000	FINDTG,	0
004305  1057		TAD THISTG
004306  4257		JMS SETFLD
004307  1411		TAD I TAGXR
004310  3020		DCA TAG1
004311  1411		TAD I TAGXR
004312  3021		DCA TAG2
004313  1411		TAD I TAGXR
004314  3022		DCA TAG3
004315  1411		TAD I TAGXR
004316  3035		DCA VALUE2
004317  6201	SETFL2,	CDF
004320  5704		JMP I FINDTG	/--RETURN--

		/OPTIMIZATION MAY CHANGE SETFLD TO
		/REMOVE CLA ON ENTRY
004364  7576
004365  6040
004366  1125
004367  0073
004370  7725
004371  7745
004372  0045
004373  7733
004374  0202
004375  0201
004376  0200
004377  0746
	4400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 78





		/BEGINNING OF PASS CODE

004400  4777		JMS I (IOPEN	/SET INPUT ROUTINE TO OPEN FILE
004401  2051	START2,	ISZ PASS	/SET UP COUNTERS AND POINTERS
004402  3026		DCA XLISTX	/CLEAR XLIST SWITCH
004403  3072		DCA FLDIND	/SET FIELD TO 0
004404  3073		DCA VALUEX	/SET BANK TO ZERO(128K)
004405  3053		DCA CONDSW
004406  3042		DCA EDITPG
004407  3077		DCA LINK
004410  3024		DCA RADIX
004411  3076		DCA ERCNT
004412  3063		DCA GETCI
004413  3025		DCA PUNCHX
004414  3537		DCA I [LINBUF
004415  1376		TAD (PDLST
004416  3010		DCA PDLXR
004417  4555		JMS I [CLEAN
004420  1176		TAD [200
004421  3023		DCA LITPTR
004422  1176		TAD [200
004423  4552		JMS I [PUNORG
004424  5775		JMP I (LOOKE1	/--EXIT TO MAIN--

		/HANDLER FOR $

004425  4564	ENDPAS,	JMS I [DUMPS	/DUMP CURRENT PAGE LITERALS
004426  3031		DCA OFSBUF	/CLEAR OFFSET FOR NEXT PASS
004427  1051		TAD PASS	/WHAT PASS IS ENDING?
004430  7450		SNA
004431  5774		JMP I (ENDPA2	/PASS 2
004432  7710		SPA CLA
004433  5773		JMP I (START1	/PASS 1
004434  1537		TAD I [LINBUF	/PASS 3
004435  7650		SNA CLA		/ANYTHING TO PRINT?
004436  5244		JMP ENDPA1-1	/NO
004437  1135		TAD [211	/YES - TAB OVER TWICE
004440  4450		JMS I OERROR
004441  1135		TAD [211
004442  4450		JMS I OERROR
004443  4524		JMS I [LINPRT	/PRINT LINE
004444  4563		JMS I [DUMPZ	/DUMP PAGE 0 LITERALS
004445  3026	ENDPA1,	DCA XLISTX
		/OUTPUT SYMBOL TABLE
004446  4773	SSWITC,	JMS I (SYMPRT	/(0 IF /S)
004447  1772		TAD I (FORM21
004450  3771		DCA I (FORM22
004451  4534		JMS I [FORMFD	/OUTPUT FORM FEED
004452  1076	ERMSGS,	TAD ERCNT
004453  4304		JMS OUTTTL	/PRINT "ERRORS DETECTED: N"
004454  1077		TAD LINK

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 78-1

004455  4304		JMS OUTTTL	/PRINT "LINKS GENERATED: N"
004456  4534	FINLFF,	JMS I [FORMFD	/PRINT FINAL FF (ZEROED IF NO PASS 3)
004457  4770		JMS I (OCLOSE	/AND CLOSE THE OUTPUT FILE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 79





		/CREF AND LOAD-AND-GO OPTIONS
		/****FINAL EXIT TO MONITOR****
004460  5517	LSWITC,	JMP I [7605	/0 IF /L OR /G OR /C
004461  1367		TAD (7616
004462  3012		DCA XREG1
004463  6211		CDF 10
004464  1553	CSWITC,	TAD I [7600	/"TAD I [7605" IF /C
004465  0107		AND [17
004466  3412		DCA I XREG1	/SET BINARY DEVICE
004467  1075		TAD BINSRT

		/EXIT FROM PAL8 BY CHAINING
		/TO NEXT PROGRAM
		/SHOULD BE ABSLDR OR CREF

004470  3412		DCA I XREG1	/SET STARTING BLOCK
004471  3412		DCA I XREG1	/SET 0 TERMINATOR
004472  6201		CDF
004473  1766		TAD I (JSBITS	/SET BIT 11 OF JOB STATUS WORD
004474  7010		RAR		/SO 10000-11777 IS NOT SAVED
004475  7124		CLL CML RAL
004476  3766		DCA I (JSBITS
004477  1501		TAD I [MREAD-1	/GET OUR DEV: ENTRY KBMV40**
004500  6212		CIF 10
004501  4452		JMS I IOMON	/CALL USER SERVICE ROUTINES
004502  0006		6		/*CHAIN TO NEXT PROGRAM*
004503  0000	CHAIN,	0		/STARTING BLOCK OF NEXT PROGRAM

004504  0000	OUTTTL,	0
004505  3014		DCA LAST1	/SAVE NUMBER TO BE PRINTED
004506  1722	OUTTLL,	TAD I TTLPTR	/GET A WORD OF MESSAGE
004507  2322		ISZ TTLPTR
004510  7450		SNA		/END?
004511  5314		JMP PRTTTL	/YES
004512  4526		JMS I [ERROR1	/NO - PRINT IT
004513  5306		JMP OUTTLL	/AND LOOP
004514  1166	PRTTTL,	TAD [240	/PRINT A SPACE
004515  4447		JMS I OCHAR
004516  1014		TAD LAST1
004517  4765		JMS I (FORMF4	/PRINT NUMBER IN DECIMAL
004520  4764		JMS I (CRLF	/PRINT CR AND 2 LF'S (1 IF PASS 3)
004521  5704		JMP I OUTTTL	/AND RETURN

004522  2353	TTLPTR,	TTLMSG

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 80





		/COME HERE TO LOAD THE PASS 3 OVERLAY AT THE END OF PASS 2

004523  4763	LOADOV,	JMS I (7607	/CALL SYSTEM DEVICE HANDLER
004524  0200		0200		/SWAP IN CODE UNIQUE TO PASS 3
004525  1000		SWAP1		/BUFFER ADDRESS
004526  0040		ASWAP		/STARTING BLOCK NUMBER
004527  5762		JMP I (SYSER3	/DE**FATAL ERROR**
004530  5201	NSWITC,	JMP START2	/(0 IF NO LIST FILE, SKP IF /N) START PASS3
004531  5333		JMP ERMSG1
004532  5245		JMP ENDPA1

004533  1361	ERMSG1,	TAD (OTYPEO	/COME HERE IF NO PASS 3 OUTPUT FILE
004534  3047		DCA OCHAR
004535  1361		TAD (OTYPEO
004536  3050		DCA OERROR
004537  1153		TAD [7600
004540  3760		DCA I (OTYPCR	/INHIBIT AUTO-LF ON CARRIAGE RETURN
004541  3256		DCA FINLFF	/KILL LAST FORM FEED
004542  5252		JMP ERMSGS

		/ADD BITS TO PUNCH ORIGIN

004543  0000	PUNORG,	0
004544  3027		DCA LOC
004545  1051		TAD PASS	/IS THIS PASS 2?
004546  7640		SZA CLA
004547  5743		JMP I PUNORG	/NO--RETURN--
004550  1027		TAD LOC		/YES - OUTPUT ORIGIN SETTING
004551  1030		TAD OFFSET	/"LOC" MAY BE FICTITIOUS - MAKE IT REAL
004552  7120		CLL CML
004553  2032		ISZ STARSW	/INHIBIT PUNCHING ORIGIN IF NECESSARY
004554  4523		JMS I [PUNOUT
004555  7200		CLA
004556  3032		DCA STARSW	/RESET SWITCH
004557  5743		JMP I PUNORG	/--RETURN--
004560  2336
004561  2323
004562  2757
004563  7607
004564  1157
004565  1122
004566  7746
004567  7616
004570  2673
004571  1066
004572  1112
004573  1200
004574  1234
004575  3010
004576  1617
004577  1160

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 80-1

	4600		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 81






/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 82





		/EVALUATE LITERAL

004600  7244	LIT,	STA RAL		/-2 IF PAGE 0 LITERAL, -1 IF CUR PAGE
004601  3366		DCA FINDS1	/SAVE FLAG
004602  4574		JMS I [GETC	/GET NEXT CHARACTER
004603  4565		JMS I [SPNOR	/IGNORE SPACES
004604  1054		TAD EXPIND	/STORE IMPORTANT VALUES PRIOR TO
004605  4543		JMS I [PUSHA	/ENTRANCE INTO EXP
004606  1033		TAD OP
004607  4543		JMS I [PUSHA
004610  1034		TAD VALUE
004611  4543		JMS I [PUSHA
004612  1366		TAD FINDS1
004613  4543		JMS I [PUSHA
004614  4562		JMS I [EXP	/GET EXPRESSION
004615  1034		TAD VALUE	/FIND LITERAL IN TABLE
004616  2410		ISZ I PDLXR	/PAGE 0?
004617  5222		JMP .+3
004620  4252		JMS FINDS	/NO
004621  7410		SKP
004622  4353		JMS FIND0	/YES
004623  3035		DCA VALUE2	/STORE ADDRESS
004624  1410		TAD I PDLXR
004625  3034		DCA VALUE
004626  1410		TAD I PDLXR	/RESTORE SAVED VALUES
004627  3033		DCA OP
004630  1410		TAD I PDLXR
004631  3054		DCA EXPIND
004632  1040		TAD CHAR	/IGNORE ) OR ]
004633  1377		TAD (-")
004634  7440		SZA
004635  1376		TAD (")-"]
004636  7650		SNA CLA
004637  4574		JMS I [GETC	/GET NEXT CHARACTER
004640  5775		JMP I (NUMBE5	/RETURN TO EXPRESSION PROCESSOR


004641  0000	PEZE,	0		/SUBR TO ISSUE PE OR ZE MESSAGE
004642  7650		SNA CLA		/WHICH ONE?
004643  5247		JMP .+4	/PAGE 0
004644  4471		JMS I PERROR
004645  6045		PE
004646  5641		JMP I PEZE
004647  4471		JMS I PERROR
004650  7245		ZE
004651  5641		JMP I PEZE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 83





		/FIND LITERAL ON CURRENT PAGE

004652  0000	FINDS,	0
004653  3366		DCA FINDS1
004654  1027		TAD LOC
004655  0153		AND [7600
004656  7450		SNA		/IS THIS PAGE 0?
004657  5357		JMP FIND01	/YES
004660  3367		DCA FINDS2	/NO - SAVE PAGE NUMBER
004661  1374		TAD (LITBF1
004662  3353		DCA FIND0
004663  1156		TAD [7700	/ALLOW 100(8) CURRENT PAGE LITERALS
004664  3007		DCA FORMF6
004665  1023		TAD LITPTR	/GET PG ADDR OF 1ST LITERAL IN BUFFER
004666  3370	FIND02,	DCA FINDS3
004667  1367		TAD FINDS2
004670  4567		JMS I [RTL6
004671  1150		TAD [LITBUF
004672  3043		DCA TEMP
004673  1353		TAD FIND0	/COMPUTE ACTUAL CORE ADDRESS OF LITERAL
004674  1443		TAD I TEMP
004675  3045		DCA TEMP2
004676  1370		TAD FINDS3	/COMPUTE THE NUMBER OF ENTRIES
004677  7041		CIA
004700  1443		TAD I TEMP	/IN THE LITERAL BUFFER
004701  7450		SNA
004702  5314		JMP FINDS6	/NONE
004703  3370		DCA FINDS3
004704  1445	FINDS4,	TAD I TEMP2	/GET LITERAL FROM TABLE
004705  7041		CIA
004706  1366		TAD FINDS1	/AND CURRENT LITERAL
004707  7650		SNA CLA		/DO THEY MATCH?
004710  5346		JMP FINDS5	/YES
004711  2045		ISZ TEMP2	/NO - BUMP COUNTERS
004712  2370		ISZ FINDS3
004713  5304		JMP FINDS4	/TRY AGAIN
004714  1367	FINDS6,	TAD FINDS2
004715  4567		JMS I [RTL6
004716  1122		TAD [TPINST
004717  3370		DCA FINDS3
004720  1443		TAD I TEMP	/DOES THIS OVERFLOW PAGE?
004721  7041		CIA
004722  1770		TAD I FINDS3
004723  7710		SPA CLA
004724  5331		JMP FINDS7	/NO


/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 84





004725  1367	FIND03,	TAD FINDS2	/PAGE FULL - WHICH PAGE?
004726  4241		JMS PEZE	/GENERATE PE OR ZE MESSAGE
004727  7240		CLA CMA
004730  5341		JMP FINDS9
004731  7240	FINDS7,	CLA CMA
004732  1443		TAD I TEMP	/IS PAGE FULL?
004733  0007		AND FORMF6
004734  7650		SNA CLA
004735  5325		JMP FIND03	/YES - OUTPUT ERROR MESSAGE
004736  7240		CLA CMA
004737  1443		TAD I TEMP	/NO
004740  3443		DCA I TEMP
004741  1443	FINDS9,	TAD I TEMP
004742  1353		TAD FIND0
004743  3045		DCA TEMP2
004744  1366		TAD FINDS1
004745  3445		DCA I TEMP2
004746  1353	FINDS5,	TAD FIND0	/GET ADDRESS OF LITERAL
004747  7041		CIA
004750  1045		TAD TEMP2
004751  1367		TAD FINDS2
004752  5652		JMP I FINDS	/--RETURN--


		/FIND LITERAL ON PAGE 0

004753  0000	FIND0,	0
004754  3366		DCA FINDS1
004755  1353		TAD FIND0	/RESET EXIT FROM FINDS
004756  3252		DCA FINDS
004757  3367	FIND01,	DCA FINDS2	/SET POINTERS
004760  1373		TAD (LITBF2
004761  3353		DCA FIND0
004762  1102		TAD [7760	/ALLOW 160(8) PAGE 0 LITERALS
004763  3007		DCA FORMF6
004764  1176		TAD [200
004765  5266		JMP FIND02

004766  0000	FINDS1,	0
004767  0000	FINDS2,	0
004770  0000	FINDS3,	0
004773  2023
004774  2123
004775  3327
004776  7714
004777  7527
	5000		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 85





		/HANDLER FOR IFZERO PSEUDO-OP

005000  1377	IF0,	TAD (10		/IFTST1, SNA CLA

		/HANDLER FOR IFNZERO PSEUDO-OP

005001  1237	IFN0,	TAD IFSZA	/IFTST1, SZA CLA
005002  3224		DCA IFTST1
005003  4565		JMS I [SPNOR	/IGNORE SPACES
005004  4562		JMS I [EXP	/GET EXPRESSION
005005  1040	IFTST3,	TAD CHAR	/GET LAST CHARACTER
005006  1376		TAD (-"<
005007  7650		SNA CLA		/IS IT <?
005010  5214		JMP IFTST2	/YES
005011  4270		JMS ICMESG	/PRINT IC MESSAGE AND GET NEXT CHAR
005012  4565	IFTST9,	JMS I [SPNOR	/IGNORE SPACES
005013  5205		JMP IFTST3	/TRY AGAIN

005014  4574	IFTST2,	JMS I [GETC	/GET NEXT CHARACTER
005015  1053		TAD CONDSW
005016  7041		CIA
005017  3300		DCA CONDTM	/SET NUMBER OF NESTED CONDITIONALS
005020  7240		CLA CMA		/DECREMENT NUMBER OF NESTED CONDITIONALS
005021  1053		TAD CONDSW
005022  3053		DCA CONDSW
005023  1034		TAD VALUE
005024  7402	IFTST1,	HLT		/SZA CLA OR SNA CLA
005025  5775		JMP I (MAIN	/--EXIT TO MAIN--
005026  1053	IFTST5,	TAD CONDSW	/DONE WITH ALL CONDITIONALS IN NEST?
005027  1300		TAD CONDTM
005030  7700		SMA CLA
005031  5775		JMP I (MAIN	/YES --EXIT TO MAIN--
005032  1040		TAD CHAR
005033  1376		TAD (-"<	/NO - GET NEXT CHARACTER
005034  7450		SNA		/IS IT <?
005035  5242		JMP IFTST6	/YES - HANDLE NEXT CONDITIONAL
005036  1374		TAD ("<-">	/NO - IS IT >?
005037  7640	IFSZA,	SZA CLA
005040  5245		JMP IFTST4	/NO - FINISH THIS CONDITIONAL
005041  7344		AC7776
005042  7040	IFTST6,	CMA
005043  1053		TAD CONDSW
005044  3053		DCA CONDSW
005045  3537	IFTST4,	DCA I [LINBUF	/INHIBIT LISTING OF UNASSEMBLED CODE -
					/ZEROED IF /J OPTION NOT SPECIFIED
005046  4574		JMS I [GETC	/GET NEXT CHARACTER
005047  5226		JMP IFTST5

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 86





		/HANDLER FOR IFDEF PSEUDO-OP

005050  1377	IFD,	TAD (10		/IFTST1, SNA CLA

		/HANDLER FOR IFNDEF PSEUDO-OP

005051  1237	IFND,	TAD IFSZA	/IFTST1, SZA CLA
005052  3224		DCA IFTST1
005053  4565	IFTST7,	JMS I [SPNOR	/IGNORE SPACES
005054  4546		JMS I [TSTALP	/IS NEXT CHARACTER ALPHABETIC
005055  5260		JMP IFTST8	/YES
005056  4270		JMS ICMESG	/PRINT IC MESSAGE AND GET NEXT CHAR
005057  5253		JMP IFTST7	/KEEP TRYING

005060  4544	IFTST8,	JMS I [GETTAG	/PICK UP TAG
005061  3034		DCA VALUE	/STORE UNDEFINED INDICATOR
005062  1022		TAD TAG3	/WAS IT A PSEUDO-OP?
005063  7700		SMA CLA
005064  5212		JMP IFTST9	/NO
005065  4541		JMS I [ERROR	/YES - GENERATE IP ERROR MESSAGE
005066  5160		IP
005067  5212		JMP IFTST9

005070  0000	ICMESG,	0
005071  4541		JMS I	[ERROR
005072  5143		IC		/IC COMES OUT ON ALL PASSES
005073  1040		TAD CHAR
005074  7710		SPA CLA
005075  5577		JMP I [LOOKEX	/END OF LINE - GO AWAY
005076  4574		JMS I [GETC	/GET NEXT CHAR
005077  5670		JMP I ICMESG

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 87





		CONDTM,

		/PUT TAG IN SYMBOL TABLE

005100  0000	PUTTAG,	0
005101  1057		TAD THISTG
005102  4773		JMS I (SETFLD	/SET FIELD
005103  1020		TAD TAG1
005104  3411		DCA I TAGXR
005105  1021		TAD TAG2
005106  3411		DCA I TAGXR
005107  1022		TAD TAG3
005110  3411		DCA I TAGXR
005111  1035		TAD VALUE2
005112  3411		DCA I TAGXR
005113  6201		CDF
005114  5700		JMP I PUTTAG	/--RETURN--


		/PUSHDOWN ROUTINE
		/PUT NEW ENTRY ON PUSHDOWN STACK

005115  0000	PUSHA,	0
005116  3043		DCA TEMP
005117  7240		CLA CMA
005120  1010		TAD PDLXR
005121  3010		DCA PDLXR
005122  1010		TAD PDLXR
005123  1372		TAD (-PDLND
005124  7710		SPA CLA		/IS LIST TOO FULL?
005125  5334		JMP PUSHA1	/BE**FATAL ERROR**
005126  1043		TAD TEMP	/NO - MAKE ENTRY
005127  3410		DCA I PDLXR
005130  7240		CLA CMA
005131  1010		TAD PDLXR
005132  3010		DCA PDLXR
005133  5715		JMP I PUSHA	/--RETURN--

005134  1371	PUSHA1,	TAD (BE
005135  5506		JMP I [MONERR	/PUSHDOWN OVERFLOW IS FATAL ERROR

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 88





		/TEST NUMERIC ROUTINE
		/CALL WITH CHARACTER TO TEST IN "CHAR"
		/SKIPS IF THE CHARACTER IS NOT NUMERIC

005136  0000	TSTNUM,	0
005137  1040		TAD CHAR	/GET THE CHARACTER
005140  1370		TAD (-"9-1
005141  7100		CLL
005142  1367		TAD ("9-"0+1
005143  7620		SNL CLA		/CHECK FOR RANGE 0-9
005144  2336		ISZ TSTNUM	/OUT OF RANGE
005145  5736		JMP I TSTNUM	/--RETURN--

		/TEST ALPHANUMERIC ROUTINE
		/CALL WITH CHARACTER IN "CHAR"
		/SKIPS IF CHARACTER IS NOT ALPHANUMERIC

005146  0000	TSTALN,	0
005147  4504		JMS I [TSTNUM	/IS IT NUMERIC
005150  5746		JMP I TSTALN	/YES--RETURN--
005151  4546		JMS I [TSTALP	/IS IT ALPHABETIC
005152  5746		JMP I TSTALN	/YES--RETURN--
005153  2346		ISZ TSTALN	/NEITHER
005154  5746		JMP I TSTALN	/--RETURN--

		/TEST ALPHABETIC ROUTINE
		/CALL WITH CHARACTER IN "CHAR"
		/SKIPS IF NOT ALPHABETIC

005155  0000	TSTALP,	0
005156  1040		TAD CHAR
005157  1366		TAD (-"Z-1
005160  7100		CLL
005161  1365		TAD ("Z-"A+1
005162  7620		SNL CLA		/CHECK FOR RANGE A-Z
005163  2355		ISZ TSTALP	/OUT OF RANGE
005164  5755		JMP I TSTALP	/--RETURN--
005165  0032
005166  7445
005167  0012
005170  7506
005171  4245
005172  6223
005173  4257
005174  7776
005175  3011
005176  7504
005177  0010
	5200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 89





		/INPUT ROUTINE
		/UNPACKS CHARACTERS FROM BUFFER

005200  0000	INPUT,	0
005201  2274		ISZ INCHCT	/ARE THERE CHARACTERS LEFT IN BUFFER? 
005202  5763		JMP I CHARLV	/YES - FETCH ONE
005203  1275		TAD INEOF	/NO - WAS OLD FILE ENDED?
005204  7640		SZA CLA
005205  5302		JMP ENDCHR	/YES - START NEW FILE
005206  1300	INGBUF,	TAD INCTLA	/NO
005207  0153		AND [7600
005210  4567		JMS I [RTL6
005211  1277		TAD INCTR
005212  7420		SNL
005213  3277		DCA INCTR
005214  7430		SZL
005215  2275		ISZ INEOF
005216  7172		CLL CML CMA RTR	/SET CONTROL WORD
005217  7012		RTR
005220  7012		RTR
005221  1300		TAD INCTLA
005222  3224		DCA INCTLW
005223  4726		JMS I INHNDL	/CALL INPUT DEVICE HANDLER
005224  0000	INCTLW,	0		/CONTROL WORD
005225  5600	INBUFP,	INBUF		/INPUT BUFFER ADDRESS
005226  0000	INREC,	0		/STARTING BLOCK NUMBER
005227  5270		JMP INERRX	/ERROR RETURN
005230  1300	INBREC,	TAD INCTLA	/NORMAL RETURN
005231  0153		AND [7600
005232  4567		JMS I [RTL6
005233  1226		TAD INREC
005234  3226		DCA INREC	/RESET STARTING BLOCK NUMBER
005235  1224		TAD INCTLW
005236  0153		AND [7600
005237  7104		CLL RAL
005240  1224		TAD INCTLW
005241  0153		AND [7600
005242  7041		CIA
005243  3274		DCA INCHCT	/SET CHARACTER COUNT
005244  1225		TAD INBUFP
005245  3276		DCA INPTR	/SET BUFFER POINTER

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 90





		/CHARACTERS ARE FOUND IN BUFFER
		/IN STANDARD OS/8 PACKING
		/WORD 1: AAA A11 111 111
		/WORD 2: BBB B22 222 222
		/WHICH REPRESENTS 3 CHARACTERS
		/CHARACTER 1: 11 111 111
		/CHARACTER 2: 22 222 222
		/CHARACTER 3: AA AAB BBB


005246  1676	ICHAR1,	TAD I INPTR	/PICK UP CHARACTER WORD 1
005247  4363		JMS CHARLV	/CHECK RIGHT 8 BITS
005250  1676	ICHAR2,	TAD I INPTR	/PICK UP WORD 1
005251  2276		ISZ INPTR	/(INCREMENT POINTER TO WORD 2)
005252  0116		AND [7400	/WITH WORD 1 IN AC
005253  3224		DCA INCTLW	/RETRIEVE LEFT 4 BITS AND SAVE
005254  1676		TAD I INPTR	/PICK UP WORD 2
005255  4363		JMS CHARLV	/CHECK RIGHT 8 BITS
005256  1676	ICHAR3,	TAD I INPTR	/PICK UP WORD 2
005257  2276		ISZ INPTR	/(POINT TO NEXT WORD 1)
005260  0116		AND [7400	/WITH WORD 2 IN AC
005261  7112		CLL RTR		/RETRIEVE LEFT 4 BITS
005262  7012		RTR
005263  1224		TAD INCTLW	/PUT BOTH SETS OF 4 BITS TOGETHER
005264  7012		RTR
005265  7012		RTR
005266  4363		JMS CHARLV	/CHECK CHARACTER
005267  5246		JMP ICHAR1	/TRY NEXT SET OF 2 WORDS

005270  2275	INERRX,	ISZ INEOF
005271  7700		SMA CLA		/EOF OR FATAL ERROR?
005272  5230		JMP INBREC	/EOF - UNPACK THIS BUFFER
005273  5777		JMP I (SYSERR	/FATAL - GENERATE DE ERROR MESSAGE

005274  7777	INCHCT,	-1
005275  0001	INEOF,	1
005276  0000	INPTR,	0
005277  0000	INCTR,	0
005300  0000	INCTLA,	0
005301  7617	INFPTR,	7617

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 91





		/START NEW FILE

005302  2776	ENDCHR,	ISZ I (FORMSW	/^Z OR EOF SIMULATES FORM FEED
005303  1051		TAD PASS	/IS THIS PASS 3?
005304  7750		SPA SNA CLA
005305  5314		JMP NXTFLE	/NO
005306  4775		JMS I (HEDCLR	/YES - CLEAR HEADING BUFFER
005307  1130		TAD [-HEDLEN
005310  3774		DCA I (LSTCH6
005311  1131		TAD [HEADER-1
005312  3773		DCA I (LSTCH7
005313  3064		DCA LSTCNT
005314  1372	NXTFLE,	TAD (INDEVH+1	/SET ADDRESS OF DEVICE HANDLER
005315  3326		DCA INHNDL
005316  6211		CDF 10
005317  1701		TAD I INFPTR
005320  6201		CDF
005321  7450		SNA
005322  5356		JMP FAKDLR	/END OF FILE - FAKE A $
005323  6212		CIF 10
005324  4452		JMS I IOMON	/CALL USER SERVICE ROUTINES
005325  0001		1		/*FETCH HANDLER*
005326  0000	INHNDL,	0		/LOADING ADDRESS OF HANDLER
005327  7402		HLT		/ERROR RETURN
005330  6211		CDF 10		/V3C
005331  1326		TAD INHNDL	/NORMAL RETURN - HANDLER IN CORE
005332  0153		AND [7600
005333  1167		TAD [-INDEVH	/SEE IF INPUT HANDLER IS IN 7200
005334  7640		SZA CLA
005335  4771		JMS I (PTCH	/IT IS - INCREASE SIZE OF BUFFER
					/AND REMOVE FROM RESIDENCY ANY HANDLERS THERE
005336  1066		TAD INCTL
005337  3300		DCA INCTLA	/DF=10
005340  1701		TAD I INFPTR
005341  0102		AND [7760
005342  7440		SZA
005343  1107		TAD [17
005344  7132		CLL CML RTR
005345  7012		RTR
005346  3277		DCA INCTR
005347  2301		ISZ INFPTR
005350  1701		TAD I INFPTR
005351  3226		DCA INREC	/RESET STARTING BLOCK NUMBER
005352  2301		ISZ INFPTR
005353  3275		DCA INEOF
005354  6201		CDF
005355  5206		JMP INGBUF

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 92





005356  1370	FAKDLR,	TAD (244
005357  4363		JMS CHARLV	/CALL THE COROUTINE
005360  1133		TAD [215	/WITH $ AND CR
005361  4363		JMS CHARLV	/TO END THE ASSEMBLY.
005362  5767		JMP I (PHASE	/** DIDN'T WORK - MUST BE IN CONDITIONAL - FATAL

005363  0000	CHARLV,	0		/CHARACTER IN AC
005364  0154		AND [177	/AND OFF LEFT 5 BITS
005365  5766		JMP I (LSTCH9	/RETURN TO LSTCH9
005366  3671
005367  0751
005370  0244
005371  3556
005372  7201
005373  3736
005374  3735
005375  1165
005376  3755
005377  2761
	5400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 93





		/HANDLER FOR DTORG PSEUDO-OP (TYPESETTING)
		/PUNCHES 4 DIGIT BLOCK NUMBER IN 2 FRAMES
		/FIRST FRAME HAS CHANNELS 7 AND 8 PUNCHED
		/ADDED TO CHECKSUM

005400  4565	DTORGX,	JMS I [SPNOR	/IGNORE SPACES
005401  4562		JMS I [EXP	/GET EXPRESSION
005402  1051		TAD PASS	/IS THIS PASS 2?
005403  7450		SNA
005404  5216		JMP DTORG2	/YES
005405  7750	PUNVA1,	SPA SNA CLA	/NO - IS THIS PASS 3?
005406  5577		JMP I [LOOKEX	/NO--EXIT TO MAIN--
005407  1070		TAD LININD	/GET LINK SWITCH FROM "EXP"
005410  3067		DCA LINKSW	/YES
005411  1177		TAD [LOOKEX	/FIX PUNONE TO EXIT TO MAIN
005412  3777		DCA I (PUNONE
005413  1135		TAD [211	/OUTPUT TAB
005414  4450		JMS I OERROR
005415  5776		JMP I (DTORG1

005416  1034	DTORG2,	TAD VALUE	/PASS 2 - GET BLOCK NUMBER
005417  4567		JMS I [RTL6
005420  7004		RAL
005421  0175		AND [77
005422  1375		TAD (300	/PICK UP CHANNELS 7 AND 8
005423  3043		DCA TEMP
005424  1043		TAD TEMP
005425  1055		TAD CHKSUM	/ADD VALUE TO CHECKSUM
005426  3055		DCA CHKSUM
005427  1043		TAD TEMP
005430  4447		JMS I OCHAR	/OUTPUT BLOCK NUMBER - FIRST FRAME
005431  1034		TAD VALUE
005432  0175		AND [77
005433  4447		JMS I OCHAR	/OUTPUT SECOND FRAME
005434  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

		/HANDLER FOR %
		/DIVIDE BY REPEATED SUBTRACTION

005435  3043	OP6,	DCA TEMP
005436  1035		TAD VALUE2
005437  7041		CIA
005440  3035		DCA VALUE2
005441  1034		TAD VALUE
005442  7100	OP6A,	CLL
005443  1035		TAD VALUE2	/SUBTRACT DIVISOR FROM DIVIDEND
005444  7420		SNL		/DONE YET?
005445  5250		JMP OP6B	/YES - EXIT
005446  2043		ISZ TEMP	/NO - COUNT ONE MORE SUBTRACTION
005447  5242		JMP OP6A	/SUBTRACT AGAIN
005450  7200	OP6B,	CLA

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 93-1

005451  1043		TAD TEMP	/RESULT IS # OF SUBTRACTIONS
005452  5774		JMP I (OP0+2

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 94





		/HANDLER FOR XLIST PSEUDO-OP

005453  4347	XLISTY,	JMS XLISTZ	/ANY EXPRESSION?
005454  5262		JMP XLIST1	/NO
005455  4562		JMS I [EXP	/GET EXPRESSION
005456  1034		TAD VALUE	/USE THE VALUE
005457  3026	XLIST2,	DCA XLISTX	/SET SWITCH
005460  3537		DCA I [LINBUF	/XLIST NEVER LISTS!
005461  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

005462  1026	XLIST1,	TAD XLISTX
005463  7650		SNA CLA
005464  7001		IAC		/FLIP IT
005465  5257		JMP XLIST2

005466  4347	RELOCY,	JMS XLISTZ	/RELOCATE PSEUDO-OP - EXPRESSION?
005467  5300		JMP RELOC1	/NO
005470  4562		JMS I [EXP	/GET IT
005471  1034		TAD VALUE
005472  7041		CIA		/COMPUTE OFFSET OF REL LOC CTR
005473  1027		TAD LOC		/FROM FAKE LOC CTR
005474  1030		TAD OFFSET	/OFFSET IS CUMULATIVE!
005475  3031	RELOC2,	DCA OFSBUF	/SET NEW OFFSET - THIS TAKES EFFECT AFTER
005476  7240		STA		/THE LITERALS (IF ANY) ARE DUMPED.
005477  5773		JMP I (STAR0	/FAKE ORIGIN TO NEW LOC,
					/ACTUALLY A NO-OP BECAUSE OF OFFSET
005500  1030	RELOC1,	TAD OFFSET	/SET OFSBUF=0, LOC=LOC+OFFSET -
005501  1027		TAD LOC		/THIS CANCELS ALL RELOCATION STUFF.
005502  3034		DCA VALUE
005503  3065		DCA UNDFSW	/JUST IN CASE - "STAR0" CHECKS THIS
005504  5275		JMP RELOC2	/STILL MUST OUTPUT *. TO GET IN SYNCH

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 95





		/HANDLER FOR EJECT PSEUDO-OP

005505  2041	EJECTX,	ISZ THISPG
005506  1051		TAD PASS	/IS THIS PASS 3?
005507  7740		SMA SZA CLA
005510  5316		JMP EJECT2	/YES
005511  1040	EJECT1,	TAD CHAR	/NO - LOOK FOR NEXT NEGATIVE CHARACTER
005512  7710		SPA CLA
005513  5577		JMP I [LOOKEX	/--EXIT TO MAIN--
005514  4574		JMS I [GETC	/GET NEXT CHARACTER
005515  5311		JMP EJECT1

005516  4347	EJECT2,	JMS XLISTZ	/PASS 3 - IS THERE AN EXPRESSION?
005517  5343		JMP EJECT3	/NO - EXIT
005520  4772		JMS I (HEDCLR	/YES - CLEAR HEADING BUFFER
005521  1130		TAD [-HEDLEN
005522  3347		DCA EJECT7	/SET UP FOR 40 NEW CHARACTERS
005523  1131		TAD [HEADER-1
005524  3012		DCA XREG1	/SET HEADER BUFFER POINTER
005525  5333		JMP EJECT4

005526  2347	EJECT6,	ISZ EJECT7	/FILLED 40 CHARACTERS YET?
005527  5333		JMP EJECT4	/NO - KEEP FILLING
005530  7240		CLA CMA		/YES - SKIP CHARACTERS TO
005531  3347		DCA EJECT7	/END OF LINE
005532  5335		JMP EJECT5

005533  1040	EJECT4,	TAD CHAR	/FILL HEADING BUFFER
005534  3412		DCA I XREG1
005535  7240	EJECT5,	CLA CMA
005536  3036		DCA TXTSWT
005537  4574		JMS I [GETC	/GET NEXT CHARACTER
005540  1040		TAD CHAR	/END OF LINE?
005541  7700		SMA CLA
005542  5326		JMP EJECT6	/NO - KEEP FILLING
005543  4534	EJECT3,	JMS I [FORMFD	/GENERATE FORM FEED
005544  5577		JMP I [LOOKEX	/--EXIT TO MAIN--

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 96





005545  1051	PUNVAL,	TAD PASS	/IS THIS PASS 3?
005546  5205		JMP PUNVA1	/IF SO, LIST STUFF


		/SEE IF EXPRESSION FOLLOWS XLIST
		/SKIP ON EXPRESSION

		EJECT7,
005547  0000	XLISTZ,	0
005550  4565		JMS I [SPNOR	/IGNORE TRAILING SPACES
005551  1040		TAD CHAR
005552  1105		TAD [-">	/IS THERE AN EXPRESSION?
005553  7650		SNA CLA
005554  5747		JMP I XLISTZ	/NO--RETURN--
005555  1040		TAD CHAR
005556  7700		SMA CLA
005557  2347		ISZ XLISTZ	/YES - INCREMENT RETURN ADDRESS
005560  5747		JMP I XLISTZ	/--RETURN--


		/DUMMY ERROR ROUTINE
		/TO SUPPRESS CERTAIN ERROR MESSAGES
		/ON PASS 1

005561  0000	PERRO1,	0
005562  2361		ISZ PERRO1	/SKIP ERROR MESSAGE POINTER
005563  5761		JMP I PERRO1	/--RETURN--


		/CONSTANTS FOR DECIMAL PRINT

			DECIMAL
005564  6030	FORMF8,	-1000
005565  7634		-100
005566  7766		-10
005567  0000		0
			OCTAL
005572  1165
005573  3052
005574  3602
005575  0300
005576  1354
005577  1330
	5600		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 97





		/*********************************************************************

	5600	INBUF=.			/INPUT BUFFER 

	5600	OUBUF=.			/OUTPUT BUFFER

	6200	OUDEVH=.+400		/OUTPUT DEVICE HANDLER

	7200	INDEVH=7200		/INPUT DEVICE HANDLER

		/**********************************************************************

		/	EXPLANATION OF PAL8'S BUFFER ALLOCATION ALGORITHM

		/PASS1:

		/	THE INPUT BUFFER STARTS AT 5600 AND ENDS AT 7200
		/	THE INPUT HANDLER GOES IN 7200-7600.
		/	THERE IS NO OUTPUT HANDLER.
		/	HOWEVER, IF THE CURRENT INPUT HANDLER DOES NOT
		/	LOAD INTO 7200, THEN THE BUFFER SIZE IS INCREASED
		/	SO THAT THE INPUT BUFFER IS 5600-7600

		/PASS2 AND PASS3:

		/	THE OUTPUT BUFFER IS ALWAYS 1 BLOCK LONG, LOCATED
		/	AT 5600-6200.
		/	THE OUTPUT HANDLER RESIDES IN 6200-6600.
		/	THE INPUT HANDLER RESIDES IN 7200-7600.
		/	THE INPUT BUFFER NORMALLY RESIDES IN 6600-7200
		/	BUT MAY GROW OVER EITHER THE INPUT HANDLER AREA OR
		/	THE OUTPUT HANDLER AREA, IF EITHER OR BOTH OF THESE
		/	DON'T EXIST.

		/WHENEVER A BUFFER GROWS OVER A HANDLER AREA, THE MONITOR
		/HANDLER RESIDENCY TABLE IS SEARCHED TO SEE IF THERE
		/WERE ANY HANDLERS THERE.  IF ANY HANDLERS WERE THERE IN THE PAST,
		/THEY ARE NOW MARKED AS BEING NON-RESIDENT.

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 98





		/MORE ONCE ONLY CODE

005600  0000	OTYPE,	0
005601  3043		DCA TEMP
005602  6211		CDF 10
005603  1443		TAD I TEMP
005604  0107		AND [17		/GET DEVICE NUMBER
005605  1377		TAD (DCB-1
005606  3043		DCA TEMP
005607  1443		TAD I TEMP	/GET DCB ENTRY
005610  6201		CDF
005611  5600		JMP I OTYPE	/--RETURN--

		/CHECK TO SEE HOW MUCH CORE EXISTS
		/AND STORE SYMBOL TABLE ACCORDINGLY

			IFZERO	HASH<
		BEGINF,	CDF 10		/WAS THE /K OPTION SELECTED TO
			TAD I (MPARAM	/CHECK FOR MORE THAN 8K?
			CDF 0
			RTR
		ZK7630,	SNL CLA		/YES
			JMP I (CKBAT	/NO - CHECK FOR BATCH, USE 8K ONLY
			CDF 50
			JMS FLD2	/WHAT IS HIGHEST FIELD?
			JMP FLD1-1	/5
			CDF 40
			JMS FLD2
			JMP FLD1	/4
			CDF 30
			JMS FLD2
			JMP FLD1+1	/3
			CDF 20
			JMS FLD2
			JMP FLD1+2	/2
			JMP OPTIM4	/1

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 99





			TAD [177	/IF FIELD 5, ALLOW 4095 SYMBOLS
		FLD1,	TAD (1740	/OTHERWISE ALLOW 1740*(NR OF FIELDS)
			TAD (1740
			TAD (1740
		OPTIM0,	TAD (1740
			DCA I (TAGMAX	/SET HIGHEST ADDRESS FOR TAGS
			JMP I (BEGING

		OPTIM4,	TAD I OPTIM1	/OPTIMIZE SEARCH PATTERN
			ISZ OPTIM1	/BY SUBSTITUTING CODE IN SEARCH
			DCA I OPTIM2	/ROUTINE
			ISZ OPTIM2
			ISZ OPTIM3
			JMP OPTIM4
		OPTIM8,	TAD I OPTIM5
			ISZ OPTIM5
			DCA I OPTIM6
			ISZ OPTIM6
			ISZ OPTIM7
			JMP OPTIM8
			JMP OPTIM0
			>

			IFNZRO	HASH<
			/SIZE CHECK OUR MACHINE

005612  6211	BEGINF,	CDF	10
005613  1776		TAD I	(MPARAM
005614  6201		CDF
005615  7012		RTR		/K TO LINK
005616  7620	ZK7630,	SNL CLA		/ALTER FOR COMPLEMENT OF K
005617  1126		TAD	[400	/TAD TO KEEP USR
005620  3775		DCA I	(USROFS
005621  1774		TAD I	(7777	/CHECK SOFT CORE SIZE
005622  0373		AND	(70
005623  7112		CLL RTR
005624  7010		RAR
005625  7440		SZA
005626  5244		JMP	SESOF	/SET: DON'T CHECK
005627  6251		CDF	50
005630  4272		JMS	FLD2
005631  2271		ISZ	HIFLD
005632  6241		CDF	40
005633  4272		JMS	FLD2
005634  2271		ISZ	HIFLD
005635  6231		CDF	30
005636  4272		JMS	FLD2
005637  2271		ISZ	HIFLD
005640  6221		CDF	20
005641  4272		JMS	FLD2
005642  2271		ISZ	HIFLD

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 99-1

005643  1271		TAD	HIFLD	/TAKE MIN(HIFLD,5)
005644  1372	SESOF,	TAD	(-5
005645  7500		SMA		/SMA TO USE HIFLD
005646  7200		CLA
005647  1371		TAD	(5	/ELSE USE 5
005650  3271		DCA	HIFLD	/STORE 5 IF NECESSARY
005651  6211	CKSEV,	CDF	10
005652  1770		TAD I	(MPARAM+2	/LOOK AT /7
005653  6201		CDF
005654  0367		AND	(4
005655  7650		SNA CLA		/SNA IF THERE
005656  5766		JMP I	(CKBAT	/ELSE CHECK FOR BATCH
005657  1365		TAD	(-7	/SET TO PRINT 7 COLUMNS OF STAB
005660  3764		DCA I	(SYMNCL
005661  1363		TAD	(67^6	/SET OFFSET TO FIRST SYMBOL ON NEXT PAGE
005662  3762		DCA I	(SYMOFS
005663  5766		JMP I	(CKBAT	/OK, CHECK FOR BATCH NOW
005664  7420	OPTIM4,	SNL		/SNL IF BATCH RUNNING
005665  5761		JMP I	(BEGING	/ELSE TAKE DEFAULT TABLE SIZE
005666  1360		TAD	(BPRIME/SET ALTERNATE TABLE SIZE
005667  3757		DCA I	(PRIMES	/INTO THE ONCE ONLY CODE
005670  5761		JMP I	(BEGING	/NOW HIFLD=# OF HIGHEST USABLE FIELD
005671  0001	HIFLD,	1		/8K MINIMUM
			>

		/SKIP IF CURRENT DATA FIELD DOES NOT EXIST
005672  0000	FLD2,	0
005673  1356		TAD (FLD3
005674  3714		DCA I FLD4
005675  7200	FLD3,	CLA
005676  1714		TAD I FLD4
005677  7000		NOP
005700  6201		CDF
005701  1355		TAD (-FLD3
005702  7640		SZA CLA
005703  5312		JMP FLD5
005704  1052		TAD IOMON
005705  1153		TAD [-200
005706  7650		SNA CLA		/IS FIELD THERE?
005707  5672		JMP I FLD2	/YES--RETURN--
005710  1176		TAD [200
005711  3052		DCA IOMON
005712  2272	FLD5,	ISZ FLD2	/NO-INCREMENT RETURN ADDRESS
005713  5672		JMP I FLD2	/--RETURN--

005714  0052	FLD4,	IOMON

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 100





		/OVERLAY CODE FOR OPTIMAL SYMBOL TABLE SEARCH
		/IN 8K
			IFZERO	HASH<

		OPTIM1,	OPTIMA
		OPTIM2,	SETFLD+1
		OPTIM3,	-7

		OPTIM5,	OPTIMB
		OPTIM6,	GETTG5
		OPTIM7,	-21

		OPTIMA,	RELOC SETFLD+1

			CLL CMA RTL
			TAD STM202
			DCA TAGXR
			CDF 10
			JMP I SETFLD
		STM202,	-202
		SETFL4,	4
			RELOC

		OPTIMB,	RELOC GETTG5

			TAD HIGHTG
			JMS SETFLD
			TAD TAGXR
			DCA XREG1
			TAD XREG1
			TAD SETFL4
			DCA XREG2
			TAD THISTG
			JMS SETFLD
		OPTIML,	TAD I XREG2
			DCA I XREG1
			TAD XREG1
			CIA
			TAD TAGXR
			SZA CLA
			JMP OPTIML
			CDF
			RELOC
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 101





		/OVERLAY CODE FOR DDT SYMBOL TABLE PRINT

		DSWIT2,	IFZERO	HASH<
			RELOC SYMPR9-2
			JMP SYMPRE
		SYMPRD,	TAD SYM204
			JMS I OERROR
			TAD [377
			JMS I OERROR
			JMS SYMPRC
			DCA LINCNT
			JMP I SYMPRT
		SYMPRC,	0
			TAD [-200
			DCA SYMPR2
			TAD [200
			JMS I OERROR
			ISZ SYMPR2
			JMP .-3
			JMP I SYMPRC
			RELOC
			>
			IFNZRO	HASH<
005755  2103
005756  5675
005757  7524
005760  7531
005761  6000
005762  1302
005763  0512
005764  1303
005765  7771
005766  2277
005767  0004
005770  7645
005771  0005
005772  7773
005773  0070
005774  7777
005775  4303
005776  7643
005777  7757
	1254		RELOC	SYMDDT
001254* 2057		ISZ	THISTG
001255* 5217		JMP	SYMLUP
001256* 1275	SYMXIT,	TAD	SYM204
001257* 4450		JMS I	OERROR
001260* 1120		TAD	[377
001261* 4450		JMS I	OERROR
001262* 4265		JMS	DDTLDR
001263* 3061		DCA	LINCNT

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 101-1

001264* 5600		JMP I	SYMPRT
001265* 0000	DDTLDR,	0
001266* 1153		TAD	[7600
001267* 3062		DCA	SYMCCT
001270* 1176		TAD	[200
001271* 4450		JMS I	OERROR
001272* 2062		ISZ	SYMCCT
001273* 5270		JMP	.-3
001274* 5665		JMP I	DDTLDR
001275* 0204	SYM204,	204
	5737		RELOC
			>
	5737	DSWITB=	.
	6000		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 102





006000  6212	BEGING,	CIF 10
006001  4452		JMS I IOMON	/CALL THE USR
006002  0012		12		/TO FIND OUT DSK:
006003  0423	BEGINJ,	TEXT /DSK/
006004  1300
006005  7201		7201		/DUMMY
006006  7402		HLT		/NEVER!
		/V3C	TAD BEGINJ+1	/GET DEVICE NUMBER OF DSK:
		/V3C	DCA CC7		/AND SET IT
006007  1204		TAD BEGINJ+1
006010  3774		DCA I BEGINL	/AND SET IT INTO "PALBIN"
006011  6211		CDF 10
006012  1742		TAD I CC1	/GET PARAMETER WORD 1
006013  6201		CDF
006014  7106		CLL RTL		/OPTION /B INTO LINK
006015  0126		AND [400	/IS IT /F?
006016  7640	ZF7650,	SZA CLA
006017  3746		DCA I CCX1	/YES: /F => NO 0 FILL
006020  7420	ZB7430,	SNL		/IS IT /B?
006021  5224		JMP .+3
006022  1347		TAD CCX2
006023  3750		DCA I CCX3	/YES: /B => ! IS SHIFT
006024  6211		CDF 10
006025  1742		TAD I CC1	/GET WORD 1 AGAIN
006026  6201		CDF
006027  0176		AND [200	/IS IT /E?
006030  7650	ZE7640,	SNA CLA
006031  5234		JMP .+3
006032  1355		TAD CCX8
006033  3751		DCA I CCX4	/YES: /E => SET 'LG' ERROR
006034  6211		CDF 10
006035  1752		TAD I CCX5	/GET WORD 2 THIS TIME
006036  6201		CDF
006037  7006		RTL
006040  7700	ZO7710,	SMA CLA		/IS IT /O?
006041  5244		JMP .+3
006042  3753		DCA I CCX6	/YES: /O => NO 200 ORG
006043  2754		ISZ I CCX7
006044  6211		CDF 10
006045  1742		TAD I CC1	/GET WORD 1 AGAIN
006046  0343		AND CC2		/IS IT /C?
006047  7650		SNA CLA
006050  5744		JMP I CC3	/NO: TRY FOR /L OR /G
006051  1745		TAD I CC4	/CREF FILE SPECIFIED?
006052  7640		SZA CLA
006053  5262		JMP CC5		/YES
006054  1356	CC6,	TAD CC7		/NO: GIVE "CREFLS.TM"
006055  3745		DCA I CC4
006056  2254		ISZ CC6
006057  2345		ISZ CC4
006060  2272		ISZ CC8

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 102-1

006061  5254		JMP CC6

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 103





006062  6201	CC5,	CDF
006063  1777		TAD I (SBLOCK	/GET OUR DEV: # KBMV40**
006064  7450		SNA
006065  7201		CLA IAC
006066  6212		CIF 10
006067  4452		JMS I IOMON	/LOOKUP "CREF.SV"
006070  0002		2
006071  6163	CC13,	CC9		/POINT TO NAME - BACK WITH START
006072  7773	CC8,	-5		/LENGTH GOES HERE
006073  5323		JMP CC16	/NOT FOUND!
006074  1340		TAD CC30
006075  4741		JMS I CC31	/CHECK TYPE FILE
006076  7700		SMA CLA
006077  5323		JMP CC16	/NOT DIRECTORY IS ERROR
006100  1332		TAD CC12
006101  3731		DCA I CC121	/CSWITC=TAD I [7605
006102  1334		TAD CC11
006103  3733		DCA I CC111	/CSWIT1=CLA
006104  1336		TAD CC10
006105  3735		DCA I CC101	/CSWIT2=DCA BINSRT
006106  3726		DCA I CC171	/CMOVE=0
006107  1271		TAD CC13
006110  3730		DCA I CC131	/CHAIN="CREF.SV"
006111  3727		DCA I CC141	/LSWITC=0
006112  1340		TAD CC30
006113  3737		DCA I CC301	/NOPA22=7612
006114  3767		DCA I CC20	/"BEGIAB"=0
006115  1370		TAD CC21
006116  3771		DCA I CC211	/"DIRSW1"=TAD [177
006117  1372		TAD CC22
006120  3773		DCA I CC221	/"PTPSW1"=TAD [232
006121  5722		JMP I .+1
006122  2200		CCC		/KEEP GOING (SIGH)

006123  4541	CC16,	JMS I [ERROR
006124  4346		CF		/OPTION /C ERROR
006125  5744		JMP I CC3	/TRY FOR /L OR /G

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 104





006126  7252	CC171,	SWAPR2+CMOVE
006127  4460	CC141,	LSWITC
006130  4503	CC131,	CHAIN
006131  4464	CC121,	CSWITC
006132  1517	CC12,	TAD I [7605
006133  4010	CC111,	CSWIT1
006134  7200	CC11,	CLA
006135  7266	CC101,	SWAPR2+CSWIT2
006136  3075	CC10,	DCA BINSRT
006137  7226	CC301,	SWAPR2+NOPA22
006140  7612	CC30,	7612
006141  5600	CC31,	OTYPE
006142  7643	CC1,	MPARAM
006143  1000	CC2,	1000
006144  2066	CC3,	BEGINH
006145  7612	CC4,	7612

006146  2627	CCX1,	TEXT4X		/V3C
006147  3661	CCX2,	OP3
006150  3155	CCX3,	OPEXPL
006151  3514	CCX4,	LGERR
006152  7644	CCX5,	MPARAM+1
006153  0441	CCX6,	FIELDY+1
006154  0442	CCX7,	FIELDY+2
006155  4471	CCX8,	JMS I PERROR

006156  0001	CC7,	1
006157  0322		FILENAME CREFLS.TM
006160  0506
006161  1423
006162  2415
006163  0322	CC9,	FILENAME CREF.SV
006164  0506
006165  0000
006166  2326

006167  1012	CC20,	BEGIAB
006170  1154	CC21,	TAD [177
006171  7277	CC211,	SWAPR2+DIRSW1
006172  1110	CC22,	TAD [232
006173  7300	CC221,	SWAPR2+PTPSW1

006174  2136	BEGINL,	PALBIN
006177  7776
	6200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 105





		/***********************************************************************
		/SYMBOL TABLE
		/MOVED BY ASSEMBLER TO FIELD 1
		/MUST REMAIN IN ALPHABETICAL ORDER
		/***********************************************************************

006200  5777	SYMS,	5777			/TERMINATOR
006201  3777		3777			/IMPOSSIBLE (LIMITING) SYMBOL
006202  5777		5777
006203  0000		0000
			IFNZRO	HASH<		/PSEUDO OPS MUST GO FIRST FOR EXPUNGE
006204  6515		"I-300^45+4000+2000	/I
006205  0000		0
006206  0000		0
006207  0400		0400

006210  5121		"P-300^45+"A-300+4000	/PAUSE
006211  1434		"U-300^45+"S-300
006212  4271		"E-300^45+4000
006213  0361		PAUSEX

006214  5121		"P-300^45+"A-300+4000	/PAGE
006215  0410		"G-300^45+"E-300
006216  4000		4000
006217  0443		PAGEX

006220  5351		"T-300^45+"E-300+4000	/TEXT
006221  1614		"X-300^45+"T-300
006222  4000		4000
006223  2601		TEXTX

006224  5237		"R-300^45+"E-300+4000	/RELOC
006225  0713		"L-300^45+"O-300
006226  4157		"C-300^45+4000
006227  5466		RELOCY

006230  5056		"O-300^45+"C-300+4000	/OCTAL
006231  1345		"T-300^45+"A-300
006232  4674		"L-300^45+4000
006233  0210		OCTALX

006234  5025		"N-300^45+"O-300+4000	/NOPUNCH
006235  1145		"P-300^45+"U-300
006236  5011		"N-300^45+"C-300+4000
006237  0204		NOPUNX


006240  4523		"I-300^45+"F-300+4000	/IFZERO
006241  1707		"Z-300^45+"E-300
006242  5251		"R-300^45+"O-300+4000
006243  5000		IF0

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 106





006244  4523		"I-300^45+"F-300+4000	/IFNZRO
006245  1040		"N-300^45+"Z-300
006246  5251		"R-300^45+"O-300+4000
006247  5001		IFN0

006250  4523		"I-300^45+"F-300+4000	/IFNDEF
006251  1012		"N-300^45+"D-300
006252  4277		"E-300^45+"F-300+4000
006253  5051		IFND

006254  4523		"I-300^45+"F-300+4000	/IFDEF
006255  0231		"D-300^45+"E-300
006256  4336		"F-300^45+4000
006257  5050		IFD

006260  4347		"F-300^45+"I-300+4000	/FIXTAB
006261  1614		"X-300^45+"T-300
006262  4047		"A-300^45+"B-300+4000
006263  4253		FIXTBX

006264  4347		"F-300^45+"I-300+4000	/FIXMRI
006265  1605		"X-300^45+"M-300
006266  5243		"R-300^45+"I-300+4000
006267  0471		FIXMRX

006270  4347		"F-300^45+"I-300+4000	/FILENAME
006271  0701		"L-300^45+"E-300
006272  5007		"N-300^45+"A-300+4000
006273  2526		FILENX

006274  4347		"F-300^45+"I-300+4000	/FIELD
006275  0305		"E-300^45+"L-300
006276  4224		"D-300^45+4000
006277  0415		FIELDX

006300  4321		"E-300^45+"X-300+4000	/EXPUNGE
006301  1145		"P-300^45+"U-300
006302  5015		"N-300^45+"G-300+4000
006303  2667		EXPUNX

006304  4307		"E-300^45+"N-300+4000	/ENPUNCH
006305  1145		"P-300^45+"U-300
006306  5011		"N-300^45+"C-300+4000
006307  0205		ENPUNX

006310  4303		"E-300^45+"J-300+4000	/EJECT
006311  0274		"E-300^45+"C-300
006312  5344		"T-300^45+4000
006313  5505		EJECTX

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 107





006314  4250		"D-300^45+"T-300+4000	/DTORG
006315  1075		"O-300^45+"R-300
006316  4403		"G-300^45+4000
006317  5400		DTORGX

006320  4231		"D-300^45+"E-300+4000	/DEVICE
006321  1467		"V-300^45+"I-300
006322  4164		"C-300^45+"E-300+4000
006323  2523		DEVICX

006324  4231		"D-300^45+"E-300+4000	/DECIMAL
006325  0170		"C-300^45+"I-300
006326  4742		"M-300^45+"A-300+4000
006327  0207		DECIMX
			>
006330  5704		"Z-300^45+"B-300+4000	/ZBLOCK
006331  0713		"L-300^45+"O-300
006332  4172		"C-300^45+"K-300+4000
006333  4130		ZBLOCX

006334  7702		"Z-300^45+4000+2000	/Z
006335  0000		0
006336  0000		0
006337  0000		0000

006340  5604		"X-300^45+"L-300+4000	/XLIST
006341  0540		"I-300^45+"S-300
006342  5344		"T-300^45+4000
006343  5453		XLISTY

006344  5367		"T-300^45+"S-300+4000	/TSK
006345  0627		"K-300^45
006346  0000		0
006347  6045		6045

006350  5367		"T-300^45+"S-300+4000	/TSF
006351  0336		"F-300^45
006352  0000		0
006353  6041		TSF

006354  5364		"T-300^45+"P-300+4000	/TPC
006355  0157		"C-300^45
006356  0000		0
006357  6044		TPC

006360  5360		"T-300^45+"L-300+4000	/TLS
006361  1277		"S-300^45
006362  0000		0
006363  6046		TLS

006364  5352		"T-300^45+"F-300+4000	/TFL

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 107-1

006365  0674		"L-300^45
006366  0000		0
006367  6040		6040

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 108





			IFZERO	HASH<
			"T-300^45+"E-300+4000	/TEXT
			"X-300^45+"T-300
			4000
			TEXTX
			>
006370  5347		"T-300^45+"C-300+4000	/TCF
006371  0336		"F-300^45
006372  0000		0
006373  6042		TCF

006374  5345		"T-300^45+"A-300+4000	/TAD
006375  4224		"D-300^45+4000
006376  0000		0
006377  1000		TAD 0

006400  5331		"S-300^45+"Z-300+4000	/SZL
006401  0674		"L-300^45
006402  0000		0
006403  7430		SZL

006404  5331		"S-300^45+"Z-300+4000	/SZA
006405  0045		"A-300^45
006406  0000		0
006407  7440		SZA

006410  5326		"S-300^45+"W-300+4000	/SWP
006411  1120		"P-300^45
006412  0000		0
006413  7521		7521

006414  5323		"S-300^45+"T-300+4000	/STL
006415  0674		"L-300^45
006416  0000		0
006417  7120		STL

006420  5323		"S-300^45+"T-300+4000	/STA
006421  0045		"A-300^45
006422  0000		0
006423  7240		STA

006424  5321		"S-300^45+"R-300+4000	/SRQ
006425  1165		"Q-300^45
006426  0000		0
006427  6003		6003

006430  5317		"S-300^45+"P-300+4000	/SPA
006431  0045		"A-300^45
006432  0000		0
006433  7510		SPA

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 109





006434  5315		"S-300^45+"N-300+4000	/SNL
006435  0674		"L-300^45
006436  0000		0
006437  7420		SNL

006440  5315		"S-300^45+"N-300+4000	/SNA
006441  0045		"A-300^45
006442  0000		0
006443  7450		SNA

006444  5314		"S-300^45+"M-300+4000	/SMA
006445  0045		"A-300^45
006446  0000		0
006447  7500		SMA

006450  5312		"S-300^45+"K-300+4000	/SKP
006451  1120		"P-300^45
006452  0000		0
006453  7410		SKP

006454  5312		"S-300^45+"K-300+4000	/SKON
006455  1071		"O-300^45+"N-300
006456  0000		0
006457  6000		6000

006460  5306		"S-300^45+"G-300+4000	/SGT
006461  1344		"T-300^45
006462  0000		0
006463  6006		6006

006464  5256		"R-300^45+"T-300+4000	/RTR
006465  1232		"R-300^45
006466  0000		0
006467  7012		RTR

006470  5256		"R-300^45+"T-300+4000	/RTL
006471  0674		"L-300^45
006472  0000		0
006473  7006		RTL

006474  5256		"R-300^45+"T-300+4000	/RTF
006475  0336		"F-300^45
006476  0000		0
006477  6005		6005

006500  5255		"R-300^45+"S-300+4000	/RSF
006501  0336		"F-300^45
006502  0000		0
006503  6011		RSF

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 110





006504  5254		"R-300^45+"R-300+4000	/RRB
006505  0112		"B-300^45
006506  0000		0
006507  6012		RRB

006510  5252		"R-300^45+"P-300+4000	/RPE
006511  0271		"E-300^45
006512  0000		0
006513  6010		6010

006514  5247		"R-300^45+"M-300+4000	/RMF
006515  0336		"F-300^45
006516  0000		0
006517  6244		RMF

006520  5243		"R-300^45+"I-300+4000	/RIF
006521  0336		"F-300^45
006522  0000		0
006523  6224		RIF

006524  5243		"R-300^45+"I-300+4000	/RIB
006525  0112		"B-300^45
006526  0000		0
006527  6234		RIB

006530  5240		"R-300^45+"F-300+4000	/RFC
006531  0157		"C-300^45
006532  0000		0
006533  6014		RFC
			IFZERO	HASH<
			"R-300^45+"E-300+4000	/RELOC
			"L-300^45+"O-300
			"C-300^45+4000
			RELOCY
			>
006534  5236		"R-300^45+"D-300+4000	/RDF
006535  0336		"F-300^45
006536  0000		0
006537  6214		RDF

006540  5233		"R-300^45+"A-300+4000	/RAR
006541  1232		"R-300^45
006542  0000		0
006543  7010		RAR

006544  5233		"R-300^45+"A-300+4000	/RAL
006545  0674		"L-300^45
006546  0000		0
006547  7004		RAL

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 111





006550  5143		"P-300^45+"S-300+4000	/PSF
006551  0336		"F-300^45
006552  0000		0
006553  6021		PSF

006554  5140		"P-300^45+"P-300+4000	/PPC
006555  0157		"C-300^45
006556  0000		0
006557  6024		PPC

006560  5134		"P-300^45+"L-300+4000	/PLS
006561  1277		"S-300^45
006562  0000		0
006563  6026		PLS

006564  5123		"P-300^45+"C-300+4000	/PCF
006565  0336		"F-300^45
006566  0000		0
006567  6022		PCF

006570  5123		"P-300^45+"C-300+4000	/PCE
006571  0271		"E-300^45
006572  0000		0
006573  6020		6020
			IFZERO	HASH<
			"P-300^45+"A-300+4000	/PAUSE
			"U-300^45+"S-300
			"E-300^45+4000
			PAUSEX

			"P-300^45+"A-300+4000	/PAGE
			"G-300^45+"E-300
			4000
			PAGEX
			>
006574  5076		"O-300^45+"S-300+4000	/OSR
006575  1232		"R-300^45
006576  0000		0
006577  7404		OSR

006600  5073		"O-300^45+"P-300+4000	/OPR
006601  1232		"R-300^45
006602  0000		0
006603  7000		OPR
			IFZERO	HASH<
			"O-300^45+"C-300+4000	/OCTAL
			"T-300^45+"A-300
			"L-300^45+4000
			OCTALX
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 112





			IFZERO	HASH<
			"N-300^45+"O-300+4000	/NOPUNCH
			"P-300^45+"U-300
			"N-300^45+"C-300+4000
			NOPUNX
			>
006604  5025		"N-300^45+"O-300+4000	/NOP
006605  1120		"P-300^45
006606  0000		0
006607  7000		NOP

006610  4762		"M-300^45+"Q-300+4000	/MQL
006611  0674		"L-300^45
006612  0000		0
006613  7421		7421

006614  4762		"M-300^45+"Q-300+4000	/MQA
006615  0045		"A-300^45
006616  0000		0
006617  7501		7501

006620  4675		"L-300^45+"A-300+4000	/LAS
006621  1277		"S-300^45
006622  0000		0
006623  7604		LAS

006624  4652		"K-300^45+"S-300+4000	/KSF
006625  0336		"F-300^45
006626  0000		0
006627  6031		KSF

006630  4651		"K-300^45+"R-300+4000	/KRS
006631  1277		"S-300^45
006632  0000		0
006633  6034		KRS

006634  4651		"K-300^45+"R-300+4000	/KRB
006635  0112		"B-300^45
006636  0000		0
006637  6036		KRB

006640  4640		"K-300^45+"I-300+4000	/KIE
006641  0271		"E-300^45
006642  0000		0
006643  6035		6035

006644  4632		"K-300^45+"C-300+4000	/KCF
006645  0336		"F-300^45
006646  0000		0
006647  6030		6030

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 113





006650  4632		"K-300^45+"C-300+4000	/KCC
006651  0157		"C-300^45
006652  0000		0
006653  6032		KCC

006654  4577		"J-300^45+"M-300+4000	/JMS
006655  5277		"S-300^45+4000
006656  0000		0
006657  4000		JMS 0

006660  4577		"J-300^45+"M-300+4000	/JMP
006661  5120		"P-300^45+4000
006662  0000		0
006663  5000		JMP 0

006664  4540		"I-300^45+"S-300+4000	/ISZ
006665  5702		"Z-300^45+4000
006666  0000		0
006667  2000		ISZ 0

006670  4534		"I-300^45+"O-300+4000	/IOT
006671  1344		"T-300^45
006672  0000		0
006673  6000		IOT

006674  4534		"I-300^45+"O-300+4000	/ION
006675  1006		"N-300^45
006676  0000		0
006677  6001		ION

006700  4534		"I-300^45+"O-300+4000	/IOF
006701  0336		"F-300^45
006702  0000		0
006703  6002		IOF
			IFZERO	HASH<
			"I-300^45+"F-300+4000	/IFZERO
			"Z-300^45+"E-300
			"R-300^45+"O-300+4000
			IF0

			"I-300^45+"F-300+4000	/IFNZRO
			"N-300^45+"Z-300
			"R-300^45+"O-300+4000
			IFN0

			"I-300^45+"F-300+4000	/IFNDEF
			"N-300^45+"D-300
			"E-300^45+"F-300+4000
			IFND
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 114





			IFZERO	HASH<
			"I-300^45+"F-300+4000	/IFDEF
			"D-300^45+"E-300
			"F-300^45+4000
			IFD
			>
006704  4516		"I-300^45+"A-300+4000	/IAC
006705  0157		"C-300^45
006706  0000		0
006707  7001		IAC
			IFZERO	HASH<
			"I-300^45+4000+2000	/I
			0
			0
			0400
			>
006710  4464		"H-300^45+"L-300+4000	/HLT
006711  1344		"T-300^45
006712  0000		0
006713  7402		HLT

006714  4427		"G-300^45+"T-300+4000	/GTF
006715  0336		"F-300^45
006716  0000		0
006717  6004		6004

006720  4417		"G-300^45+"L-300+4000	/GLK
006721  0627		"K-300^45
006722  0000		0
006723  7204		GLK
			IFZERO	HASH<
			"F-300^45+"I-300+4000	/FIXTAB
			"X-300^45+"T-300
			"A-300^45+"B-300+4000
			FIXTBX

			"F-300^45+"I-300+4000	/FIXMRI
			"X-300^45+"M-300
			"R-300^45+"I-300+4000
			FIXMRX

			"F-300^45+"I-300+4000	/FILENAME
			"L-300^45+"E-300
			"N-300^45+"A-300+4000
			FILENX

			"F-300^45+"I-300+4000	/FIELD
			"E-300^45+"L-300
			"D-300^45+4000
			FIELDX
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 115





			IFZERO	HASH<
			"E-300^45+"X-300+4000	/EXPUNGE
			"P-300^45+"U-300
			"N-300^45+"G-300+4000
			EXPUNX

			"E-300^45+"N-300+4000	/ENPUNCH
			"P-300^45+"U-300
			"N-300^45+"C-300+4000
			ENPUNX

			"E-300^45+"J-300+4000	/EJECT
			"E-300^45+"C-300
			"T-300^45+4000
			EJECTX

			"D-300^45+"T-300+4000	/DTORG
			"O-300^45+"R-300
			"G-300^45+4000
			DTORGX

			"D-300^45+"E-300+4000	/DEVICE
			"V-300^45+"I-300
			"C-300^45+"E-300+4000
			DEVICX

			"D-300^45+"E-300+4000	/DECIMAL
			"C-300^45+"I-300
			"M-300^45+"A-300+4000
			DECIMX
			>
006724  4227		"D-300^45+"C-300+4000	/DCA
006725  4045		"A-300^45+4000
006726  0000		0
006727  3000		DCA 0

006730  4174		"C-300^45+"M-300+4000	/CML
006731  0674		"L-300^45
006732  0000		0
006733  7020		CML

006734  4174		"C-300^45+"M-300+4000	/CMA
006735  0045		"A-300^45
006736  0000		0
006737  7040		CMA

006740  4173		"C-300^45+"L-300+4000	/CLL
006741  0674		"L-300^45
006742  0000		0
006743  7100		CLL

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 116





006744  4173		"C-300^45+"L-300+4000	/CLA
006745  0045		"A-300^45
006746  0000		0
006747  7200		CLA

006750  4170		"C-300^45+"I-300+4000	/CIF
006751  0336		"F-300^45
006752  0000		0
006753  6202		CIF

006754  4170		"C-300^45+"I-300+4000	/CIA
006755  0045		"A-300^45
006756  0000		0
006757  7041		CIA

006760  4163		"C-300^45+"D-300+4000	/CDF
006761  0336		"F-300^45
006762  0000		0
006763  6201		CDF

006764  4160		"C-300^45+"A-300+4000	/CAF
006765  0336		"F-300^45
006766  0000		0
006767  6007		6007

006770  4135		"B-300^45+"S-300+4000	/BSW
006771  1523		"W-300^45
006772  0000		0
006773  7002		7002

006774  4063		"A-300^45+"N-300+4000	/AND
006775  4224		"D-300^45+4000
006776  0000		0
006777  0000		AND 0

007000  4001		4001			/TERMINATOR
007001  0000		0000			/IMPOSSIBLE (LIMITING) SYMBOL
007002  4000		4000
007003  0000		0000

	7004	SYME=.

		/**********************************************************************
		/TOP OF SYMBOL TABLE
		/**********************************************************************

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 117





	7004	SWAP2=.

		/**********************************************************************
		/CODE UNIQUE TO PASSES 1 AND 2
		/SWAPPED IN FOR PASSES 1 AND 2
		/OVERLAYED DURING PASS 3	*** NO LITERALS ***

	1000		RELOC 1000		/ASSEMBLED INTO 1000-1247

	1000		SWAPB2=	.
	6004		SWAPR2=	SWAP2-SWAPB2	/RELOCATION FACTOR FOR THIS CODE

001000* 0000	OOPEN,	0
001001* 1310		TAD OPEN01	/OPEN BINARY AND LISTING FILES
001002* 3237		DCA XOUHND	/SET ADDRESS OF DEVICE HANDLER
001003* 1311		TAD OPEN02
001004* 3245		DCA XOUBLK
001005* 1115		TAD [-5
001006* 3246		DCA XOUELE	/SET NEW OUTPUT FILE LENGTH
001007* 6211		CDF 10
001010* 1707		TAD I OUFPTR
001011* 6201		CDF
001012* 3645		DCA I XOUBLK
001013* 2245		ISZ XOUBLK
001014* 2307		ISZ OUFPTR
001015* 2246		ISZ XOUELE	/INCREMENT OUTPUT FILE LENGTH
001016* 5207		JMP .-7
001017* 1311		TAD OPEN02
001020* 7001		IAC
001021* 3245		DCA XOUBLK	/SET POINTER TO NEW FILENAME
001022* 1245		TAD XOUBLK
001023* 3712		DCA I OPEN04
001024* 6212		CIF 10
001025* 4452		JMS I IOMON	/CALL USER SERVICE ROUTINES
001026* 0013		13		/*RESET SYSTEM TABLES*
001027* 3713		DCA I OPEN05	/DELETE UNCLOSED FILES AND
001030* 1711		TAD I OPEN02	/DELETE HANDLERS
001031* 0107		AND [17		/GET NEW DEVICE HANDLER #
001032* 7450		SNA		/OUTPUT INHIBIT?
001033* 5305		JMP ONOFIL	/YES
001034* 6212		CIF 10		/NO
001035* 4452		JMS I IOMON	/CALL USER SERVICE ROUTINE
001036* 0001		1		/*FETCH DEVICE HANDLER*
001037* 0000	XOUHND,	0		/LOADING ADDRESS
001040* 7402		HLT		/HANDLER NOT AVAILABLE
001041* 1711	OUENTR,	TAD I OPEN02	/NORMAL RETURN - GET OUTPUT
001042* 6212		CIF 10		/DEVICE NUMBER AND FILE LENGTH

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 118





001043* 4452		JMS I IOMON	/CALL NEW SERVICE ROUTINES
001044* 0003		3		/*ENTER OUTUT FILE
001045* 0000	XOUBLK,	0		/POINTER TO FILENAME
001046* 0000	XOUELE,	0		/FILE LENGTH
001047* 5275		JMP OEFAIL	/ERROR RETURN
001050* 3714		DCA I OPEN06	/NORMAL RETURN
001051* 4715		JMS I OPEN07
001052* 1237		TAD XOUHND
001053* 1176		TAD [200	/LINK IS CLEAR!!
001054* 7620		SNL CLA
001055* 1126		TAD [400
001056* 1323		TAD OUFDEV
001057* 3724		DCA I OUFINP
001060* 1724		TAD I OUFINP
001061* 7110		CLL RAR
001062* 7041		CIA
001063* 1322		TAD OU3501
001064* 3066		DCA INCTL
001065* 2200		ISZ OOPEN
001066* 1237		TAD XOUHND
001067* 3716		DCA I OPEN09
001070* 1245		TAD XOUBLK
001071* 3717		DCA I OPEN10
001072* 1246		TAD XOUELE
001073* 3720		DCA I OPEN11
001074* 5600		JMP I OOPEN	/--RETURN--

001075* 1711	OEFAIL,	TAD I OPEN02
001076* 0102		AND [7760
001077* 7650		SNA CLA
001100* 5721		JMP I OPEN12	/DE**FATAL ERROR**
001101* 1711		TAD I OPEN02
001102* 0107		AND [17
001103* 3711		DCA I OPEN02
001104* 5241		JMP OUENTR

001105* 2713	ONOFIL,	ISZ I OPEN05	/SET OUTPUT INHIBIT SWITCH
001106* 5600		JMP I OOPEN	/--RETURN--

001107* 7600	OUFPTR,	7600

001110* 6201	OPEN01,	OUDEVH+1
001111* 2723	OPEN02,	OUFILE
001112* 2717	OPEN04,	OUCNAM
001113* 2503	OPEN05,	OUTINH
001114* 2720	OPEN06,	OUCCNT
001115* 2512	OPEN07,	OUSETP
001116* 2763	OPEN09,	OUHNDL
001117* 2764	OPEN10,	OUBLK
001120* 2765	OPEN11,	OUELEN
001121* 2761	OPEN12,	SYSERR

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 118-1

001122* 3501	OU3501,	3501
001123* 6200	OUFDEV,	OUDEVH
001124* 5225	OUFINP,	INBUFP

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 119





		/CONTINUATION OF FIXTAB HANDLER

		FIXTAY,	IFZERO	HASH<
			TAD HIGHTG	/SET POINTERS TO TABLE
			CMA
			>
			IFNZRO	HASH<
001125* 1100		TAD	TAGMAX
001126* 7041		CIA
			>
001127* 3046		DCA TEMP3
001130* 3057		DCA THISTG
001131* 4573	FIXTAX,	JMS I [FINDTG	/GET A TAG
001132* 7350		AC3777
001133* 0020		AND TAG1
			IFNZRO	HASH<
001134* 7440		SZA
			>
001135* 1141		TAD [4000	/SET BIT 0 OF FIRST WORD TO 1
001136* 3020		DCA TAG1	/RETURN IT TO TABLE
001137* 4540		JMS I [PUTTAG
001140* 2057		ISZ THISTG
001141* 2046		ISZ TEMP3	/DONE WITH TABLE YET?
001142* 5331		JMP FIXTAX	/NO
001143* 5577		JMP I [LOOKEX	/YES--EXIT TO MAIN--

		/OUTPUT ONE REGISTER - BINARY
		/ENTER WITH CONTENTS IN AC

001144* 0000	PUNOUT,	0
001145* 3360		DCA PUNOU1
001146* 1360		TAD PUNOU1
001147* 7012		RTR
001150* 7012		RTR
001151* 7012		RTR
001152* 0154		AND [177
001153* 4447		JMS I OCHAR	/OUTPUT FIRST FRAME
001154* 1360		TAD PUNOU1
001155* 0175		AND [77
001156* 4447		JMS I OCHAR	/OUTPUT SECOND FRAME
001157* 5744		JMP I PUNOUT	/--RETURN--

		PUNOU1,
001160* 0000	IOPEN,	0		/SET UP INPUT ROUTINE
001161* 7240		CLA CMA		/TO OPEN FILE
001162* 3772		DCA I IOPEN1
001163* 2773		ISZ I IOPEN2
001164* 1374		TAD IOPEN3
001165* 3775		DCA I IOPEN4
001166* 2776		ISZ I IOPEN5
001167* 1170		TAD [LINBUF+120

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 119-1

001170* 3037		DCA TXTPTR
001171* 5760		JMP I IOPEN	/--RETURN--

001172* 5274	IOPEN1,	INCHCT
001173* 5275	IOPEN2,	INEOF
001174* 7617	IOPEN3,	7617
001175* 5301	IOPEN4,	INFPTR
001176* 3755	IOPEN5,	FORMSW
	1200		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 120





		/START PASS 2	*** NO LITERALS HERE EITHER ***

001200* 1141	START1,	TAD [ERROR
001201* 3071		DCA PERROR	/RESET PREUDO-ERROR ROUTINE
001202* 4706		JMS I ST1OPN	/OPEN PASS 2 OUTPUT FILE
001203* 5212		JMP NOPA21	/NO PASS 2 IF PASS 3
001204* 1707	NOPA23,	TAD I ST1OBL
001205* 3075		DCA BINSRT
001206* 3025		DCA PUNCHX	/CLEAR PUNCH INHIBIT
001207* 4223		JMS START3
001210* 5611		JMP I .+1
001211* 4400		START2-1

001212* 6211	NOPA21,	CDF 10
001213* 1622		TAD I NOPA22	/IS THERE A PASS 3?
001214* 6201		CDF
001215* 7650		SNA CLA
001216* 5204		JMP NOPA23	/NO - DO PASS 2
001217* 2051		ISZ PASS	/SKIP PASS 2
001220* 7000		NOP
001221* 5243		JMP NOPAS2	/CONTINUE TO PASS 3

001222* 7605	NOPA22,	7605

001223* 0000	START3,	0		/GENERATE LEADER/TRAILER
001224* 1233		TAD LEADER
001225* 3037		DCA TXTPTR
001226* 1176		TAD [200
001227* 4447		JMS I OCHAR
001230* 2037		ISZ TXTPTR
001231* 5226		JMP .-3
001232* 5623		JMP I START3	/--RETURN--

001233* 7770	LEADER,	-10

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 121





		/END PASS 2

001234* 4563	ENDPA2,	JMS I [DUMPZ	/DUMP PAGE 0 LITERALS
001235* 3025		DCA PUNCHX
001236* 7100		CLL		/V3C
001237* 1055		TAD CHKSUM	/OUTPUT CHECKSUM
001240* 4523		JMS I [PUNOUT	/PUNCH THE CHECKSUM
001241* 4223		JMS START3	/GENERATE LEADER/TRAILER
001242* 4701		JMS I EN2CLS	/CLOSE PASS 2 OUTPUT FILE
001243* 1302	NOPAS2,	TAD EN2LSO
001244* 3050		DCA OERROR	/SET NEW OUTPUT TO BE LISTING
001245* 2703		ISZ I EN2OU1
001246* 5256	CMOVE,	JMP CMOVA	/ZEROED IF /C
001247* 6211		CDF 10		/MOVE CODE FOR /C OPTION
001250* 1675	CMOVB,	TAD I CMOV1
001251* 3676		DCA I CMOV2	/MOVE OUTPUT FILE STORAGE
001252* 2275		ISZ CMOV1
001253* 2276		ISZ CMOV2
001254* 2277		ISZ CMOV3
001255* 5250		JMP CMOVB	/LOOP
001256* 6201	CMOVA,	CDF
001257* 4706		JMS I ST1OPN	/OPEN 3RD PASS FILE
001260* 3700		DCA I CMOV4	/NO 3RD PASS
001261* 1707		TAD I ST1OBL	/GET FILE START
001262* 7200	CSWIT2,	CLA		/"DCA BINSRT" IF /C
001263* 1274		TAD PTPSW1
001264* 3704		DCA I EN2PTP	/RESET PAPERTAPE SWITCH
001265* 1273		TAD DIRSW1
001266* 3705		DCA I EN2DIR	/RESET DIRECTORY SWITCH
001267* 4672		JMS I PIOPEN
001270* 5671		JMP I .+1
001271* 4523		LOADOV		/OVERLAY THIS AREA WITH PASS3 CODE

001272* 1160	PIOPEN,	IOPEN
001273* 1154	DIRSW1,	TAD [177
001274* 1110	PTPSW1,	TAD [232

001275* 7605	CMOV1,	7605
001276* 7600	CMOV2,	7600
001277* 7766	CMOV3,	-12
001300* 4530	CMOV4,	NSWITC
001301* 2673	EN2CLS,	OCLOSE
001302* 1000	EN2LSO,	LISOUT
001303* 2400	EN2OU1,	OUTPT1
001304* 2677	EN2PTP,	PTPSW
001305* 2703	EN2DIR,	DIRSW
001306* 1000	ST1OPN,	OOPEN
001307* 2764	ST1OBL,	OUBLK
	7314	SWAPE2,	RELOC
			IFNZRO	ENDOVL-SWAPE2&4000 <OVLERR,__ERROR__>
	7400		PAGE

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 122





			IFNZRO	HASH<

			/ONCE ONLY CODE TO HASH OUT THE PERMANENT SYMBOLS

007400  0000	HSHSMS,	0
007401  4777		JMS I	(7607	/WRITE THE SYMBOL TABLE SORT OVERLAY
007402  4210		4210		/2 PAGES FROM FIELD 1
007403  6600		OUDEVH+400	/FROM HERE
007404  0041		ASWAP+1		/TO HERE
007405  5776		JMP I	(SYSERR/WONDERFUL.
007406  1775		TAD I	(USROFS
007407  7640		SZA CLA		/SZA IF KICKING OUT USR
007410  1374		TAD	(12	/ELSE FUDGE POINTER
007411  1773		TAD I	(HIFLD	/FIRST SET HASH TABLE SIZE
007412  1324		TAD	PRIMES	/ACCORDING TO CORE SIZE
007413  3100		DCA	PRIME
007414  1500		TAD I	PRIME
007415  3100		DCA	PRIME
007416  1100		TAD	PRIME
007417  7041		CIA
007420  3772		DCA I	(MPRIME
007421  1775		TAD I	(USROFS
007422  7640		SZA CLA
007423  5232		JMP	KPUSR	/JMP IF KEEPING USR
007424  6211		CDF	10	/SERVE NOTICE WE'RE OCCUPYING FIELD 1
007425  7344		AC7776
007426  0771		AND I	(JSBITS
007427  3771		DCA I	(JSBITS
007430  1156		TAD	[7700
007431  3052		DCA	IOMON	/AND POINT AT PROPER MONITOR E.P.
007432  6201	KPUSR,	CDF
007433  1772		TAD I	(MPRIME	/HOW MANY SLOTS TO WIPE
007434  3016		DCA	LAST3	/TO COUNTER
007435  1775		TAD I	(USROFS
007436  7106		CLL RTL
007437  1370		TAD	(7777	/FUDGE THE INITIAL AUTO XR
007440  5251		JMP	CLRGO	/INTO THE LOOP NOW
007441  1014	CLRLUP,	TAD	LAST1
007442  1367		TAD	(-7577
007443  7640		SZA CLA		/SZA IF NEED TO DO NEXT FIELD
007444  5253		JMP	CLCDF0+1/ELSE CLEAR ANOTHER
007445  1366		TAD	(10
007446  1252		TAD	CLCDF0
007447  3252		DCA	CLCDF0	/CDF INSTR GETS BUMPED
007450  7240		STA
007451  3014	CLRGO,	DCA	LAST1	/XRGETS SET
007452  6211	CLCDF0,	CDF	10	/INITIALLY CDF 10
007453  3414		DCA I	LAST1
007454  3414		DCA I	LAST1
007455  3414		DCA I	LAST1
007456  3414		DCA I	LAST1

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 122-1

007457  2016		ISZ	LAST3	/SKP IF NO MORE
007460  5241		JMP	CLRLUP	/ELSE DO ANOTHER
007461  6201		CDF		/THE TABLE IS CLEAN
007462  1365		TAD	(HSHRTN
007463  3544		DCA I	[GETTAG
007464  7240		STA
007465  3060		DCA	HIGHTG	/HIGHTG=CURRENT SYMBOL INDEX
007466  1364		TAD	(SYMS+3	/USE THESE AUTO XR'S NOW
007467  3014		DCA	LAST1
007470  1014		TAD	LAST1
007471  3015		DCA	LAST2
007472  1414	HSHLP,	TAD I	LAST1
007473  0172		AND	[1777	/FIRST, STRIP THE TYPE BITS
007474  3763		DCA I	(NAME1
007475  7350		AC3777
007476  0414		AND I	LAST1
007477  3767		DCA I	(NAME2
007500  7350		AC3777
007501  0414		AND I	LAST1
007502  3762		DCA I	(NAME3
007503  2014		ISZ	LAST1	/SKIP THE VALUE
007504  5761		JMP I	(GETTGH	/GO FIND IT'S PLACE
007505  7300	HSHRTN,	CLA CLL
007506  1415		TAD I	LAST2
007507  3763		DCA I	(NAME1
007510  1415		TAD I	LAST2
007511  3767		DCA I	(NAME2
007512  1415		TAD I	LAST2
007513  3762		DCA I	(NAME3
007514  1415		TAD I	LAST2
007515  3035		DCA	VALUE2
007516  4760		JMS I	(INSRTG	/AND STORE IT
007517  1014		TAD	LAST1
007520  1357		TAD	(1-SYME+4
007521  7640		SZA CLA
007522  5272		JMP	HSHLP	/LOOP IF MORE TO GO
007523  5600		JMP I	HSHSMS	/--RETURN--

007524  7524	PRIMES,	.
007525  1737		1737	/1 FIELD
007526  3673		3673	/2 FIELDS
007527  5633		5633	/3 FIELDS
007530  7577		7577	/4 FIELDS
007531  7775		7775	/5 FIELDS (THE LAST MOSTELY WASTE)
	7531		BPRIMES=.-1	/ALTERNATE TABLE SIZE FOR BATCH COMPATABILITY
007532  1737		1737	/1 FIELD (MEANS NO BATCH)
007533  3133		3133	/2 FIELDS
007534  5075		5075	/3 FIELDS
007535  7035		7035	/4 FIELDS
007536  7775		7775	/5 FIELDS (SOME OF WASTE FOR BATCH)

007537  1335		1335	/STILL ANOTHER ALTERNATE SET IF KEEPING USR
007540  3273		3273
007541  5237		5237
007542  7175		7175

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 122-2

007543  7775		7775

007544  0000		0
007545  2535		2535
007546  4465		4465
007547  6437		6437
007550  7775		7775

007557  1001
007560  4200
007561  0237
007562  0202
007563  0200
007564  6203
007565  7505
007566  0010
007567  0201
007570  7777
007571  7746
007572  0332
007573  5671
007574  0012
007575  4303
007576  2761
007577  7607
	7600		PAGE
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 123





		/**************************************************************
		/PAGE 0 LITERALS
		/**************************************************************
			IFNZRO	HASH<

			/SYMBOL TABLE SORT OVERLAY
			/ONLY SWAPPED IF TABLE WILL BE LISTED

			/FIRST, SOME EQUATES

	0140		PPUTTAG=	[PUTTAG
	0173		PFINDTG=	[FINDTG
	0172		O1777=		[1777
	0132		O7774=		[7774

	0012		SXR=	XREG1
	0013		TXR=	XREG2
	0014		SXR2=	LAST1
	0015		TXR2=	LAST2
	0016		UXR=	LAST3
	0017		DXR=	LAST4

	0027		BEG=	LOC
	0030		END=	OFFSET
	0031		LO=	OFSBUF
	0032		HI=	STARSW
	0033		MED=	OP

000101  7756
000102  7760
000103  7761
000104  5136
000105  7502
000106  0750
000107  0017
000110  0232
000111  1400
000112  0100
000113  0040
000114  7522
000115  7773
000116  7400
000117  7605
000120  0377
000121  1330
000122  2002
000123  1144
000124  0735
000125  1200
000126  0400
000127  0260

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 123-1

000130  7730
000131  1450
000132  7774
000133  0215
000134  1032
000135  0211
000136  7563
000137  1620
000140  5100
000141  4000
000142  4200
000143  5115
000144  0212
000145  5070
000146  5155
000147  5545
000150  1742
000151  0756
000152  4543
000153  7600
000154  0177
000155  4044
000156  7700
000157  3157
000160  0030
000161  0007
000162  3200
000163  4147
000164  4062
000165  0352
000166  0240
000167  0600
000170  1740
000171  7540
000172  1777
000173  4304
000174  0605
000175  0077
000176  0200
000177  3033
	0001		FIELD 1		/SET THE FIELD NOW

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 124





	6600		*OUDEVH+400	/IT GOES HERE

016600  0000	SORTAB,	0		/FIRST LOC IN PAGE
016601  1100		TAD	TAGMAX
016602  7041		CIA
016603  3043		DCA	TEMP	/TEMP=#CELLS TO SCAN

			/DEFLATE TABLE PRIOR TO SORTING AND LISTING IT
			/OUT WITH EMPTIES AND PERMANENTS

016604  3060		DCA	HIGHTG	/TARGET POINTER
016605  3045		DCA	TEMP2	/SOURCE POINTER
016606  1045	DEFLP,	TAD	TEMP2
016607  3057		DCA	THISTG
016610  4573		JMS I	PFINDTG	/GET THE NEXT STAB CELL
016611  1020		TAD	TAG1
016612  7104		CLL RAL
016613  7670		SNA SZL CLA	/AND THERE BUT NOT FIXED?
016614  5232		JMP	DEFNUL	/NO, DON'T STORE IT
016615  1172		TAD	O1777	/YES,DISCARD THE TYPE BITS NOW
016616  0020		AND	TAG1
016617  3020		DCA	TAG1
016620  7350		AC3777
016621  0021		AND	TAG2
016622  3021		DCA	TAG2
016623  7350		AC3777
016624  0022		AND	TAG3
016625  3022		DCA	TAG3
016626  1060		TAD	HIGHTG
016627  3057		DCA	THISTG
016630  4540		JMS I	PPUTTAG
016631  2060		ISZ	HIGHTG
016632  2045	DEFNUL,	ISZ	TEMP2
016633  2043		ISZ	TEMP	/TRY AGAIN
016634  5206		JMP	DEFLP
016635  4777		JMS I	(SORT	/NOW SORT THEM
016636  5600		JMP I	SORTAB	/EXIT TO PRTSTAB

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 125





			/MOVE A SYMBOL THRU THE TABLE

016637  0000	SMOV,	0
016640  1014		TAD	SXR2	/GET SOURCE DF+XREG
016641  4262		JMS	GETFLD
016642  3252		DCA	SMVCD1
016643  1013		TAD	TXR
016644  3012		DCA	SXR
016645  1015		TAD	TXR2
016646  4262		JMS	GETFLD
016647  3254		DCA	SMVCD2
016650  1132		TAD	O7774
016651  3305		DCA	SSWT
016652  0000	SMVCD1,	0
016653  1412		TAD I	SXR
016654  0000	SMVCD2,	0
016655  3413		DCA I	TXR
016656  2305		ISZ	SSWT
016657  5252		JMP	SMVCD1
016660  6201	SMVCD0,	CDF
016661  5637		JMP I	SMOV

			/AUXILLIARY FIELD+XREG SETTER

016662  0000	GETFLD,	0
016663  7100		CLL
016664  1776		TAD I	(USROFS	/IF KEEPING USR
016665  3013		DCA	TXR	/AC=SYM NUM
016666  3254		DCA	SMVCD2
016667  1013		TAD	TXR
016670  2254		ISZ	SMVCD2
016671  7020		CML
016672  1375		TAD	(-1740
016673  7420		SNL
016674  5270		JMP	.-4
016675  7106		CLL RTL
016676  1374		TAD	(-202	/SETS AS IN SETFLD...
016677  3013		DCA	TXR	/TENTATIVELY SET TXR
016700  1254		TAD	SMVCD2
016701  7106		CLL RTL
016702  7004		RAL
016703  1260		TAD	SMVCD0
016704  5662		JMP I	GETFLD	/EXIT WITH AC SET TO CDF INSTR

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 126





			/ROUTINE TO EXCHANGE SYMBOLS LO AND HI

016705  0000	SSWT,	0
016706  1032		TAD	HI
016707  4262		JMS	GETFLD
016710  3326		DCA	SWCDF1
016711  1326		TAD	SWCDF1
016712  3336		DCA	SWCDF3
016713  1013		TAD	TXR
016714  3012		DCA	SXR
016715  1012		TAD	SXR
016716  3014		DCA	SXR2	/SXR'S FOR HIGH SYMBOL
016717  1031		TAD	LO
016720  4262		JMS	GETFLD
016721  3331		DCA	SWCDF2
016722  1013		TAD	TXR
016723  3015		DCA	TXR2	/TXR'S FOR LOW SYMBOL
016724  1132		TAD	O7774
016725  3237		DCA	SMOV	/COUNTER

016726  0000	SWCDF1,	0
016727  1412		TAD I	SXR	/GET HI SYM WORD
016730  3262		DCA	GETFLD	/HOLD IT
016731  0000	SWCDF2,	0
016732  1413		TAD I	TXR	/GET LO
016733  3345		DCA	SCOM	/HOLD IT
016734  1262		TAD	GETFLD
016735  3415		DCA I	TXR2	/STORE  HI IN LOW
016736  0000	SWCDF3,	0
016737  1345		TAD	SCOM	/NOW STORE LO
016740  3414		DCA I	SXR2	/IN HI
016741  2237		ISZ	SMOV
016742  5327		JMP	SWCDF1+1
016743  6201		CDF
016744  5705		JMP I	SSWT

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 127





			/COMPARE SYMBOLS + SET LINK THEREBY

016745  0000	SCOM,	0
016746  3057		DCA	THISTG	/AC=TAG #
016747  4773		JMS I	(SETFLD
016750  1411		TAD I	TAGXR
016751  7141		CLL CIA
016752  1020		TAD	TAG1
016753  7640		SZA CLA
016754  5367		JMP	SCOMRT
016755  1411		TAD I	TAGXR
016756  7141		CLL CIA
016757  1021		TAD	TAG2
016760  7640		SZA CLA
016761  5367		JMP	SCOMRT
016762  1411		TAD I	TAGXR
016763  7141		CLL CIA
016764  1022		TAD	TAG3
016765  7650		SNA CLA
016766  7402		HLT	/NEVER
016767  6201	SCOMRT,	CDF
016770  5745		JMP I	SCOM

016773  4257
016774  7576
016775  6040
016776  4303
016777  7000
	7000		PAGE









/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 128





			/SORT ROUTINE HERE

017000  0000	SORT,	0
017001  3027		DCA	BEG	/INITIALIZE PARTITION BOUNDS
017002  7360		STA STL
017003  1060		TAD	HIGHTG
017004  3030		DCA	END	/ARE THERE ANY SYMBOLS?
017005  7430		SZL
017006  5600		JMP I	SORT	/NO EXIT WITH LINK SET
017007  1377		TAD	(LITBF1-1+26	/OK, SET STACK NOW
017010  3017		DCA	DXR
017011  1017		TAD	DXR
017012  3016		DCA	UXR

017013  7240	SLOOP,	STA
017014  1371		TAD	LEVEL
017015  3371		DCA	LEVEL
017016  1027	SLOOP2,	TAD	BEG
017017  7161		STL CIA
017020  1030		TAD	END
017021  7470		SNA SZL
017022  5361		JMP	OKCOOL	/END.LOS.BEG
017023  7110		CLL RAR
017024  1027		TAD	BEG
017025  3033		DCA	MED	/MED=BEG+(END-BEG)/2
017026  1033		TAD	MED
017027  3057		DCA	THISTG
017030  4573		JMS I	PFINDTG	/T=A(MED)
017031  1027		TAD	BEG
017032  3031		DCA	LO	/LO=BEG
017033  1030		TAD	END
017034  3032		DCA	HI	/HI=END
017035  1033		TAD	MED
017036  7041		CIA
017037  1027		TAD	BEG
017040  7650		SNA CLA
017041  5355		JMP	JUSTWO	/BEG.EQ.MED

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 129





017042  1031		TAD	LO
017043  3014		DCA	SXR2
017044  1033		TAD	MED
017045  3015		DCA	TXR2
017046  4776		JMS I	(SMOV	/A(MED)=A(LO)
017047  2031	BEGLP,	ISZ	LO
017050  1031		TAD	LO
017051  7141		CLL CIA
017052  1032		TAD	HI
017053  7620		SNL CLA
017054  5304		JMP	DONE	/HI.LOS.LO
017055  1031		TAD	LO
017056  4775		JMS I	(SCOM	/T.GT.A(LO) TO LINK
017057  7630		SZL CLA
017060  5247		JMP	BEGLP	/T.GT.A(LO)
017061  5267		JMP	ENDGO	/T.LT.A(LO)
017062  1031	ENDLP,	TAD	LO
017063  7141		CLL CIA
017064  1032		TAD	HI
017065  7620		SNL CLA
017066  5304		JMP	DONE	/IF HI.LO.LO
017067  1032	ENDGO,	TAD	HI
017070  4775		JMS I	(SCOM
017071  7630		SZL CLA
017072  5277		JMP	SWITCH
017073  7240		STA
017074  1032		TAD	HI
017075  3032		DCA	HI
017076  5262		JMP	ENDLP
017077  4774	SWITCH,	JMS I	(SSWT
017100  7240		STA
017101  1032		TAD	HI
017102  3032		DCA	HI
017103  5247		JMP	BEGLP

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 130





017104  1032	DONE,	TAD	HI
017105  3014		DCA	SXR2
017106  1027		TAD	BEG
017107  3015		DCA	TXR2
017110  4776		JMS I	(SMOV	/A(BEG)=A(HI)
017111  1032		TAD	HI
017112  3057		DCA	THISTG
017113  4540		JMS I	PPUTTAG	/A(HI)=T
017114  7344		AC7776
017115  1016		TAD	UXR
017116  3016		DCA	UXR
017117  1016		TAD	UXR
017120  3017		DCA	DXR
017121  1032		TAD	HI
017122  7141		CLL CIA
017123  1033		TAD	MED
017124  7630		SZL CLA
017125  5337		JMP	HIBIGR	/DEFER HIGH FOR LATER
017126  1027		TAD	BEG
017127  3417		DCA I	DXR	/DEFER LO FOR LATER
017130  7240		STA
017131  1032		TAD	HI
017132  3417		DCA I	DXR
017133  1032		TAD	HI
017134  7001		IAC
017135  3027		DCA	BEG
017136  5213		JMP	SLOOP
017137  1032	HIBIGR,	TAD	HI
017140  7001		IAC
017141  3417		DCA I	DXR
017142  1030		TAD	END
017143  3417		DCA I	DXR
017144  7240		STA
017145  1371		TAD	LEVEL	/CLUMSY
017146  3371		DCA	LEVEL
017147  7340		CLL STA
017150  1032		TAD	HI
017151  3030		DCA	END
017152  7420		SNL		/PROTECT AGAINST WRAP AROUND
017153  5361		JMP	OKCOOL
017154  5216		JMP	SLOOP2

017155  1032	JUSTWO,	TAD	HI
017156  4775		JMS I	(SCOM
017157  7630		SZL CLA
017160  4774		JMS I	(SSWT	/SWITCH IF T.GT.A(HI)
017161  7300	OKCOOL,	CLA CLL		/NOW CONSIDER PREV PARTITIONS
017162  1416		TAD I	UXR
017163  3027		DCA	BEG
017164  1416		TAD I UXR
017165  3030		DCA	END

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 130-1

017166  2371		ISZ	LEVEL
017167  5216		JMP	SLOOP2	/REITERATE
017170  5600		JMP I	SORT	/DONE, RETURN WITH A CLEAR LINK
017171  0000	LEVEL,	0
017174  6705
017175  6745
017176  6637
017177  2150
	7200		PAGE
			>

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 131





			/ROUTINE TO STORE THE DATE OF THE FORM DD-MMM-YY
			/IN THE HEADING

			IFZERO	HASH	<
			FIELD	1
			*OUDEVH+400
			>

017200  0000	FMTDAT,	0
017201  1777		TAD I	(MDATE	/PICK UP THE DATE WORD OF THE FORM MMM MDD DDD YYY
017202  6201		CDF		/RUN WITH DF = 0
017203  7450		SNA
017204  5305		JMP	NODATE	/EXIT IF NO DATE
017205  3322		DCA	DATWD	/ELSE STORE DATE WORD
017206  1376		TAD	("0-1
017207  3721		DCA I	DATPTR	/SET FIRST DIGIT OF DAY
017210  1322		TAD	DATWD	/NOW GET DAY BITS
017211  7112		CLL RTR
017212  7010		RAR
017213  0375		AND	(37
017214  4307		JMS	DIV10	/DO DAY DIGITS NOW
017215  1374		TAD	("-
017216  3721		DCA I	DATPTR	/STORE DASH
017217  2321		ISZ	DATPTR
017220  1322		TAD	DATWD	/NOW GET MONTH BITS
017221  1373		TAD	(7400	/REDUCE TO ORIGIN 0
017222  0373		AND	(7400
017223  7106		CLL RTL
017224  7006		RTL
017225  7004		RAL
017226  3307		DCA	DIV10
017227  1307		TAD	DIV10
017230  7110		CLL RAR		/GENERATE 1.5*MONTH INDEX
017231  1307		TAD	DIV10
017232  1372		TAD	(MONLST	/INDEX MONTH LIST (SIXBIT)
017233  3323		DCA	MONPTR
017234  1371		TAD	(-3
017235  3307		DCA	DIV10	/SET 3 TIMES THRU LOOP
017236  7430		SZL
017237  5245		JMP	MONGO	/IF EVEN START AT RIGHT HALF
017240  1723	MONLP,	TAD I	MONPTR
017241  7112		CLL RTR
017242  7012		RTR
017243  7012		RTR
017244  4251		JMS	MONPUT	/PUT LEFT CHAR
017245  1723	MONGO,	TAD I	MONPTR
017246  4251		JMS	MONPUT	/PUT RIGHT CHAR
017247  2323		ISZ	MONPTR
017250  5240		JMP	MONLP	/LOOP FOR MORE
017251  0000	MONPUT,	0
017252  1370		TAD	(40

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 131-1

017253  0367		AND	(77
017254  1370		TAD	(40	/CONVERT TO 7BIT
017255  3721		DCA I	DATPTR
017256  2321		ISZ	DATPTR
017257  2307		ISZ	DIV10
017260  5651		JMP I	MONPUT	/RETURN TO UNPACK LOOP
017261  1374		TAD	("-
017262  3721		DCA I	DATPTR	/PUT ANOTHER DASH
017263  2321		ISZ	DATPTR
017264  1766		TAD I	(BIPCCL
017265  0365		AND	(1600	/GET YEAR EXTENSION FROM BIPCCL
017266  7112		CLL RTR
017267  7012		RTR
017270  3307		DCA	DIV10
017271  1322		TAD	DATWD	/NOW GET YEAR
017272  0364		AND	(7	/ISOLATE IT
017273  1307		TAD	DIV10
017274  3307		DCA	DIV10
017275  1307		TAD	DIV10
017276  1363		TAD	(-36	/100-70
017277  7700		SMA CLA		
017300  1362		TAD	(-12
017301  1361		TAD	("6
017302  3721		DCA I	DATPTR	/SETUP YEAR TENS DIGIT FOR DIVIDE
017303  1307		TAD	DIV10
017304  4307		JMS	DIV10	/UNPACK IT
017305  6203	NODATE,	CIF CDF		/NOW RETURN
017306  5600		JMP I	FMTDAT

017307  0000	DIV10,	0
017310  2721		ISZ I	DATPTR
017311  1362		TAD	(-12
017312  7500		SMA
017313  5310		JMP	.-3	/REDUCE MON 10.
017314  1360		TAD	(12+"0
017315  2321		ISZ	DATPTR
017316  3721		DCA I	DATPTR	/STORE LOW DIGIT
017317  2321		ISZ	DATPTR
017320  5707		JMP I	DIV10	/--RETURN--

017321  1535	DATPTR,	DATE
017322  0000	DATWD,	0
017323  0000	MONPTR,	0

017360  0272
017361  0266
017362  7766
017363  7742
017364  0007
017365  1600
017366  7777
017367  0077
017370  0040
017371  7775
017372  2044

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 131-2

017373  7400
017374  0255
017375  0037
017376  0257
017377  7666
	7400		PAGE
	0000		FIELD 0
	0200		*200


			$$$$$

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 132

AC0002 7326      CCWWD  2270      CLEAN  4044      DUMPS  4062
AC2000 7332      CCX1   6146      CLRGO  7451      DUMPS1 4000
AC3777 7350      CCX2   6147      CLRLUP 7441      DUMPS2 4147
AC4000 7330      CCX3   6150      CMOVA  1256      DUMPS3 4105
AC7775 7346      CCX4   6151      CMOVB  1250      DUMPS5 4044
AC7776 7344      CCX5   6152      CMOVE  1246      DUMPS6 4111
ADDIND 3543      CCX6   6153      CMOV1  1275      DUMPZ  4147
ALPHA  3103      CCX7   6154      CMOV2  1276      DXR    0017
ALPHAI 0062      CCX8   6155      CMOV3  1277      D2     4123
ALPHA0 3417      CC0070 2316      CMOV4  1300      D3     4126
ALPHA1 3400      CC1    6142      COMMA  3121      D4     2247
ALPHA3 3402      CC10   6136      COMMA1 3127      D5     2220
ALPHA4 3466      CC101  6135      COMMA2 3140      EDITPG 0042
ALPHA5 3465      CC11   6134      CONDSW 0053      EJECTX 5505
ALPHA6 3437      CC111  6133      CONDTM 5100      EJECT1 5511
ASWAP  0040      CC12   6132      CONEND 3040      EJECT2 5516
BATOUT 7400      CC121  6131      CONEN1 3045      EJECT3 5543
BE     4245      CC13   6071      CRLF   1157      EJECT4 5533
BEG    0027      CC131  6130      CRLF1  1162      EJECT5 5535
BEGHSW 1657      CC141  6127      CRPDEL 0331      EJECT6 5526
BEGIAB 1012      CC16   6123      CSWITC 4464      EJECT7 5547
BEGIN  1600      CC171  6126      CSWIT1 4010      END    0030
BEGINB 1663      CC2    6143      CSWIT2 1262      ENDCHK 3256
BEGINF 5612      CC20   6167      CTCCHK 2343      ENDCHR 5302
BEGING 6000      CC21   6170      DATE   1535      ENDCH1 3276
BEGINH 2066      CC211  6171      DATPTR 7321      ENDGO  7067
BEGINJ 6003      CC22   6172      DATWD  7322      ENDLP  7062
BEGINL 6174      CC221  6173      DCB    7760      ENDOVL 1310
BEGINZ 2000      CC23   2255      DDTLDR 1265      ENDPAS 4425
BEGIN1 1702      CC231  2254      DE     4445      ENDPA1 4445
BEGIN4 1651      CC24   2256      DECIMX 0207      ENDPA2 1234
BEGIN5 2007      CC25   2257      DEFLP  6606      ENPUNX 0205
BEGISW 2204      CC26   2260      DEFNUL 6632      EN2CLS 1301
BEGIS3 2233      CC27   2261      DEVICX 2523      EN2DIR 1305
BEGLP  7047      CC28   2262      DEVIC1 2536      EN2LSO 1302
BEGSKP 1662      CC29   2263      DF     4446      EN2OU1 1303
BINCNT 2121      CC3    6144      DIRSW  2703      EN2PTP 1304
BINLOP 2100      CC30   6140      DIRSW1 1273      EQUAL  0510
BINSRT 0075      CC301  6137      DIVAND 3641      EQUAL2 0564
BIPCCL 7777      CC31   6141      DIV10  7307      EQUAL3 0546
BLKEXP 3640      CC4    6145      DIV45  4217      ERCNT  0076
BLK1   2132      CC5    6062      DIV45A 4222      ERMSGS 4452
BLK2   2133      CC6    6054      DIV45B 4241      ERMSG1 4533
BLK3   2134      CC7    6156      DIV45C 4242      ERPLUS 4003
BPRIME 7531      CC7777 2314      DIV45E 4243      ERROR  4000
CCC    2200      CC8    6072      DONE   7104      ERROR1 0400
CCCIF0 2317      CC9    6163      DSWITA 1573      ERROR3 4037
CCHSH  2264      CF     4346      DSWITB 5737      ERROR4 4041
CCJBIT 2266      CHAIN  4503      DSWIT1 1555      ERROR5 0074
CCJLOC 2267      CHAR   0040      DSWIT2 5715      EXP    3200
CCJMSB 2320      CHARLV 5363      DSWIT3 1711      EXPIND 0054
CCJWD  2265      CHKSUM 0055      DSWIT4 1712      EXPINT 3461
CCOPTM 2315      CKBAT  2277      DTORGX 5400      EXPUNL 1471
CCWBIT 2271      CKSEV  5651      DTORG1 1354      EXPUNS 1507
CCWLOC 2272      CLCDF0 7452      DTORG2 5416      EXPUNW 1465

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 132-1

EXPUNX 2667      FORMF7 1165      ID     5144      LAST3  0016
EXPXIT 3630      FORMF8 5564      IE     5145      LAST4  0017
EXP1   3221      FORMHD 1104      IFD    5050      LD     5444
EXP1A  3224      FORMLN 1103      IFND   5051      LEADER 1233
EXP2   3245      FORMM6 1155      IFN0   5001      LEVEL  7171
EXP3   3603      FORMSW 3755      IFSZA  5037      LG     5447
FAKDLR 5356      FORM11 1151      IFTST1 5024      LGERR  3514
FIELDX 0415      FORM12 1126      IFTST2 5014      LINBUF 1620
FIELDY 0440      FORM20 1106      IFTST3 5005      LINCNT 0061
FILENX 2526      FORM21 1112      IFTST4 5045      LININD 0070
FILE1  2540      FORM22 1066      IFTST5 5026      LINK   0077
FILE2  2555      FORM30 1071      IFTST6 5042      LINKSW 0067
FILE3  2553      FORM8F 1156      IFTST7 5053      LINPRT 0735
FILE4  2543      GETC   0605      IFTST8 5060      LINPR1 0740
FILE5  2560      GETCI  0063      IFTST9 5012      LISCNT 1030
FILE6  2563      GETC1  0632      IF0    5000      LISOUT 1000
FILLLP 2702      GETC12 0707      II     5151      LISOU1 1015
FINDS  4652      GETC13 0715      ILCHAR 3035      LISOU2 1031
FINDSP 0756      GETC15 0721      INBREC 5230      LISOU3 1024
FINDS1 4766      GETC16 0703      INBUF  5600      LIT    4600
FINDS2 4767      GETC17 0705      INBUFP 5225      LITBF1 2123
FINDS3 4770      GETC2  0631      INCHCT 5274      LITBF2 2023
FINDS4 4704      GETC4  0647      INCTL  0066      LITBUF 1742
FINDS5 4746      GETC6  0637      INCTLA 5300      LITHAK 4116
FINDS6 4714      GETC7  0607      INCTLW 5224      LITPTR 0023
FINDS7 4731      GETC8  0657      INCTR  5277      LNPRPG 0070
FINDS9 4741      GETC9  0710      INDEVH 7200      LO     0031
FINDTG 4304      GETFLD 6662      INEOF  5275      LOAD   2120
FIND0  4753      GETTAG 0212      INERRX 5270      LOADOV 4523
FIND01 4757      GETTA1 0234      INFPTR 5301      LOC    0027
FIND02 4666      GETTA2 0203      INGBUF 5206      LOOKEX 3033
FIND03 4725      GETTA3 0333      INHNDL 5326      LOOKE1 3010
FINLFF 4456      GETTA4 0351      INPTR  5276      LOOKE2 3000
FIXMD0 3513      GETTGH 0237      INPUT  5200      LSTCHR 3737
FIXMRX 0471      GETTG1 0221      INREC  5226      LSTCH1 3750
FIXMR1 0476      HASH   0001      INSRTG 4200      LSTCH3 3730
FIXMR2 0501      HEADER 1451      INT    0000      LSTCH4 3724
FIXTAX 1131      HEDCLR 1165      IOMON  0052      LSTCH5 3734
FIXTAY 1125      HEDCL2 1157      IOPEN  1160      LSTCH6 3735
FIXTBX 4253      HEDLEN 0050      IOPEN1 1172      LSTCH7 3736
FIX2   3517      HI     0032      IOPEN2 1173      LSTCH9 3671
FIX4   3530      HIBIGR 7137      IOPEN3 1174      LSTCNT 0064
FLDIND 0072      HIFLD  5671      IOPEN4 1175      LSWITC 4460
FLD2   5672      HIGHTG 0060      IOPEN5 1176      MAIN   3011
FLD3   5675      HSHLP  7472      IP     5160      MDATE  7666
FLD4   5714      HSHRTN 7505      IZ     5172      MED    0033
FLD5   5712      HSHSMS 7400      IZIND  0056      MINUS  1105
FMTDAT 7200      HSWITC 1042      JMSPUN 4113      MONERR 0750
FORCHR 3753      HSWIT1 1013      JSBITS 7746      MONER1 0754
FORMFD 1032      HSWIT2 1271      JUSTWO 7155      MONGO  7245
FORMF1 1055      IC     5143      KLOOP  3563      MONLP  7240
FORMF3 1117      ICHAR1 5246      KNTR   0004      MONLST 2044
FORMF4 1122      ICHAR2 5250      KPUSR  7432      MONPTR 7323
FORMF5 1130      ICHAR3 5256      LAST1  0014      MONPUT 7251
FORMF6 0007      ICMESG 5070      LAST2  0015      MPARAM 7643

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 132-2

MPRIME 0332      OP0    3600      PALBIX 2135      SDIV45 1276
MREAD  7757      OP1    3656      PASS   0051      SE     6345
MUL    3637      OP2    3644      PAUSEX 0361      SESOF  5644
NAME1  0200      OP3    3661      PDLND  1555      SETFLD 4257
NAME2  0201      OP4    3647      PDLST  1617      SETFLP 4264
NAME3  0202      OP5    3665      PDLXR  0010      SETFL1 4301
NOCD   1604      OP6    5435      PE     6045      SETFL2 4317
NODATE 7305      OP6A   5442      PERIOD 3337      SLOOP  7013
NOLOAD 2127      OP6B   5450      PERROR 0071      SLOOP2 7016
NOPAS2 1243      OTYPB1 2332      PERRO1 5561      SMIN67 1277
NOPA21 1212      OTYPB2 2333      PEZE   4641      SMOV   6637
NOPA22 1222      OTYPB3 2334      PFINDT 0173      SMVCD0 6660
NOPA23 1204      OTYPCR 2336      PH     6050      SMVCD1 6652
NOPUNX 0204      OTYPE  5600      PHASE  0751      SMVCD2 6654
NOTFND 0327      OTYPEC 2342      PIOPEN 1272      SORT   7000
NSWITC 4530      OTYPEO 2323      PLOAD  2273      SORTAB 6600
NUMBER 3300      OTYPTD 2331      PLSMIN 3642      SPNOR  0352
NUMBE1 3326      OUBLK  2764      POPJ   3540      SSWITC 4446
NUMBE2 3301      OUBUF  5600      PPEZE  1450      SSWT   6705
NUMBE3 3335      OUCCNT 2720      PPUTTA 0140      STAR   3047
NUMBE4 3323      OUCHLV 2477      PRBLUP 0263      STARSW 0032
NUMBE5 3327      OUCNAM 2717      PRIME  0100      START1 1200
NXTFLE 5314      OUCTLW 2754      PRIMES 7524      START2 4401
OCHAR  0047      OUDEVH 6200      PROBE  0272      START3 1223
OCHAR1 2475      OUDWCT 2510      PRTTTL 4514      STAR0  3052
OCHAR2 2472      OUELEN 2765      PTCH   3556      STAR1  0460
OCHAR3 2444      OUENTR 1041      PTPSW  2677      STAR2  3075
OCLOSE 2673      OUFDEV 1123      PTPSW1 1274      STAR3  0456
OCTALX 0210      OUFILE 2723      PTR    0003      ST1OBL 1307
OCTPRT 1310      OUFINP 1124      PUNBIN 1400      ST1OPN 1306
OCTPR1 0005      OUFPTR 1107      PUNCHX 0025      SUBVER 0331
OCTPR2 1314      OUHNDL 2763      PUNMOD 1434      SWAPB2 1000
OCTPR3 0006      OUJMP  2441      PUNONE 1330      SWAPE2 1310
OEFAIL 1075      OUJMPE 2507      PUNON1 1370      SWAPR2 6004
OERROR 0050      OUPOLD 2505      PUNON2 1374      SWAP1  1000
OFFSET 0030      OUPTR  2506      PUNON3 1372      SWAP2  7004
OFSBUF 0031      OUREC  2756      PUNORG 4543      SWCDF1 6726
OKCOOL 7161      OUSETP 2512      PUNOUT 1144      SWCDF2 6731
ONEOK  1422      OUTDMP 2730      PUNOU1 1160      SWCDF3 6736
ONOFIL 1105      OUTINH 2503      PUNVAL 5545      SWITCH 7077
OOPEN  1000      OUTPT1 2400      PUNVA1 5405      SXR    0012
OP     0033      OUTPT2 2511      PUSHA  5115      SXR2   0014
OPEN01 1110      OUTPT3 2430      PUSHA1 5134      SYMCCT 0062
OPEN02 1111      OUTPUT 2401      PUTTAG 5100      SYMDDT 1254
OPEN04 1112      OUTPUX 2437      QUOTE  3342      SYME   7004
OPEN05 1113      OUTTLL 4506      QUOTE1 3353      SYMERR 1300
OPEN06 1114      OUTTTL 4504      RADIX  0024      SYMGO  1241
OPEN07 1115      OU3501 1122      RD     6244      SYMHND 1301
OPEN09 1116      OVLL7  2252      RELOCY 5466      SYMHSW 1227
OPEN10 1117      OVLL8  2253      RELOC1 5500      SYMLCT 0065
OPEN11 1120      O1777  0172      RELOC2 5475      SYMLIN 1231
OPEN12 1121      O7774  0132      RTL6   0600      SYMLUP 1217
OPEXPL 3155      PAGEX  0443      SBLOCK 7776      SYMNCL 1303
OPTABL 3150      PAGEY  0453      SCOM   6745      SYMNWP 1212
OPTIM4 5664      PALBIN 2136      SCOMRT 6767      SYMNXL 1264

/PAL8 V50A FOR OS/8 V50			  PAL8-V50X 15-JUL-20 PAGE 132-3

SYMOFL 0746      VV2    0062      
SYMOFS 1302      XCHANG 3157      
SYMPAG 1217      XLISTX 0026      
SYMPRT 1200      XLISTY 5453      
SYMS   6200      XLISTZ 5547      
SYMSRT 1206      XLIST1 5462      
SYMTAG 0067      XLIST2 5457      
SYMXIT 1256      XOUBLK 1045      
SYM204 1275      XOUELE 1046      
SYSERR 2761      XOUHND 1037      
SYSER2 2766      XREG1  0012      
SYSER3 2757      XREG2  0013      
TAGMAX 0100      YESBIN 2111      
TAGXR  0011      ZBLOCX 4130      
TAG1   0020      ZBLOCY 4136      
TAG2   0021      ZBLOCZ 4142      
TAG3   0022      ZB7430 6020      
TEMP   0043      ZD7640 1670      
TEMP1  0044      ZE     7245      
TEMP2  0045      ZE7640 6030      
TEMP3  0046      ZF7650 6016      
TEXTX  2601      ZH7640 1655      
TEXT1A 2636      ZJ7640 2210      
TEXT2  2651      ZK7630 5616      
TEXT3  2614      ZO7710 6040      
TEXT4  2625      ZT7640 1625      
TEXT4X 2627      ZW7640 2216      
TEXT5  2660      
TEXT6  2665      
TEXT7  2666      
TEXT8  2600      
TEXT9  2633      
THISPG 0041      
THISTG 0057      
TOEXP  3026      
TPINST 2002      
TSTALN 5146      
TSTALP 5155      
TSTNUM 5136      
TTLMSG 2353      
TTLPTR 4522      
TXR    0013      
TXR2   0015      
TXTPTR 0037      
TXTSWT 0036      
UNDFSW 0065      
UO     6557      
US     6563      
USROFS 4303      
UXR    0016      
VALUE  0034      
VALUEX 0073      
VALUE2 0035      
VERSIO 0062      
VV1    0005      



ERRORS DETECTED: 0
LINKS GENERATED: 0