Google
 

Trailing-Edge - PDP-10 Archives - bb-l014q-bm_tops20_v6_1_atpch17 - autopatch/filcom.c17
There are no other files named filcom.c17 in the archive.
 REP 1/1	;17C1
	TITLE	FILCOM   PROGRAM TO COMPARE FILES - V22(106)
	SUBTTL	BOWERING/DMN/TWE/DMN/LCR/LLN/ILG/MFB/MS/PY/BAH	19-Sep-84
 WIT
	TITLE	FILCOM   PROGRAM TO COMPARE FILES - V22(117)
	SUBTTL	BOWERING/DMN/TWE/DMN/LCR/LLN/ILG/MFB/MS/PY/BAH	25-Sep-87
 REP 6/1	;17C2

	;COPYRIGHT (C) 1970,1979,1981,1984 BY
	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
 WIT
	;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1970,1979,1981,1984,1986,1987.
	;ALL RIGHTS RESERVED.
 REP 29/1	;17C3
		VUPDATE==0		;DEC UPDATE
		VEDIT==106		;EDIT LEVEL
		VCUSTOM==0
 WIT
		VUPDATE==1		;DEC UPDATE
		VEDIT==117		;EDIT LEVEL
		VCUSTOM==0

	%%FLCV==<VCUSTOM>B2+<VFILCM>B11+<VUPDATE>B17+VEDIT
	IFDEF .MCRV.,<.VERSION <%%FLCV>>
 REP 35/1	;17C4
	<VCUSTOM>B2+<VFILCM>B11+<VUPDATE>B17+VEDIT
 WIT
	EXP %%FLCV
 REP 49/1	;17C5
	COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1970,1984.
 WIT
	COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1970,1986. ALL RIGHTS RESERVED.
	\; END COPYRIGHT MACRO

 REP 28/2	;17C6
	LPDL==20	;LENGTH OF PUSH DOWN LIST
 WIT
	LPDL==50	;LENGTH OF PUSH DOWN LIST(HELPER NEEDS MORE THAN 20)
 REP 20/8	;17C7
	;	END OF REVISION HISTORY.
 WIT
	;107	10-35153	10-Apr-85	TL
	;	101 produces yet another obscure Ill mem ref.
	;
	;110	10-35161	14-May-85	TL
	;	101 didn't quite get blank line suppression right.  Deletion
	;	in /U mode isn't pretty.
	;
	;111	KBY		3-Jun-85	TL
	;	New HELPER needs more stack.  Increase it.
	;
	;112	None.	9-Aug-85	BAH
	;	Do copyrights.
	;
	;113	None.	12-Sep-85	BAH
	;	FILCOM compares too many job data area locations.  Do not compare
	;	locations 0-40, 42, 43, 45-73, 77-111, 113, 114, and 132 inclusive.
	;	Also FILCOM had a bug where it was erroneously comparing location 73.
	;
	;114	868772	03-Feb-86	DRB
	;	/1L doesn't work.  Apparent fencepost error.
	;
	;115	KBY/RDH	7-Apr-86	TL
	;	/O very rarely gets the base tag wrong.  For example, if file 2 has
	;	two insertions that are far enough apart to be distinct, but closer
	;	than the length of the first insertion, the wrong tag would be used.
	;	Edit 110 broke some cases of a difference in progress at EOF, 
	;	causing loops.
	;
	;116	10-33206	16-Sep-86	BAH
	;	Edit 101 did not take line sequenced blank lines when setting 
	;	the 400K bit in the line header word.
	;
	;117	10-JMF-350987	25-Sep-87	TL
	;	Add /I - Do case-blind comparisons.
	;
	;	END OF REVISION HISTORY.
	;
 REP 28/15	;17C8
		SKIPN	OFSSWT		;[104] NEED TO SAVE CURRENT SYMBOL?
		 JRST	MAIN9		;[104] NO, DON'T
		MOVE	W1,[XWD LSTSYM,SAVSYM] ;[104] YES, KEEP SYMBOL AT START OF CONFLICT
		BLT	W1,SAVSYM+SSBLTE-1 ;[104] ...

	MAIN9:	AOS	DIFFLG		;SET "DIFFERENCE IN PROGRESS" FLAG
 WIT
		AOS	DIFFLG		;SET "DIFFERENCE IN PROGRESS" FLAG
 REP 45/15	;17C9
		CAME	F1,F2		;HAVE WE LOOKED FROM THE MISMATCHED LINE
					;TO THE CURRENT LINE?
		AOJA	F1,MAIN12	;NO--UP LINE POINTER AND TRY AGAIN
		SETZ	F2,		;HAVEN'T FOUND A MATCH THIS TIME
					;NOW TRY IT THE OTHER WAY
	MAIN14:	CAML	F2,F1		;LOOKED FAR ENOUGH? (THIS VERSION HAS
 WIT
		MOVE	T,F2		;[107] TOP ON OTHER FILE
		CAMLE	T,TOP1		;[107] IS IT LONGER THAN TOP ON THIS FILE?
		 MOVE	T,TOP1		;[107] YES, USE TOP OF THIS FILE
		CAME	F1,T		;[107] HAVE WE LOOKED FROM THE MISMATCHED LINE
					;[107] TO THE CURRENT LINE?
		 AOJA	F1,MAIN12	;[107] NO--UP LINE POINTER AND TRY AGAIN
		SETZ	F2,		;[107] HAVEN'T FOUND A MATCH THIS TIME
					;[107] NOW TRY IT THE OTHER WAY
	MAIN14:	MOVE	T,F1		;[107] TOP ON OTHER FILE
		CAMLE	T,TOP2		;[107] IS IT LONGER THAN TOP ON THIS FILE
		 MOVE	T,TOP2		;[107] YES, USE TOP OF THIS FILE
		CAML	F2,T		;[107] LOOKED FAR ENOUGH? (THIS VERSION HAS
 REP 4/17	;17C10
	FINISH:	JUMPGE	F1,MULT8	;PRINT DIFFERENCES IF EITHER BUFFER
 WIT
	FINISH:	MOVEM	F1,TEMPF1	;[115] FAKE OUT MULT8
		MOVEM	F2,TEMPF2	;[115] ...JUST IN CASE WE END UP THERE
		JUMPGE	F1,MULT8	;PRINT DIFFERENCES IF EITHER BUFFER
 REP 13/17	;17C11
	FIN1:	MOVE	W1,[POINT 7,[ASCIZ /|
	/]]
 WIT
	FIN1:	MOVEI	W1,[ASCIZ /|
	/]
 REP 18/17	;17C12
		PUSHJ	PP,PRINT	;PRINT MESS. IF 2ND FILE IS TRUNCATED 1ST FILE
 WIT
		PUSHJ	PP,PPRINT	;PRINT MESS. IF 2ND FILE IS TRUNCATED 1ST FILE
 REP 4/18	;17C13
	MULTI:	SKIPG	NUMLIN		;MULTIPLE LINE TEST?
 WIT
	MULTI:	SKIPGE	NUMLIN		;[114] MULTIPLE LINE TEST?
 REP 43/18	;17C14
	MULT66:	SUB	F1,W1		;[34] RESET TO 1ST COMPARISON
		SUB	F2,W1
 WIT
	MULT66:	EXCH	F1,TEMPF1	;[34] [110] RESET TO 1ST COMPARISION
		EXCH	F2,TEMPF2	;[110]
 REP 5/19	;17C15
		ADD	F1,NUMLIN	;CAUSE MOVEUP TO FLUSH ALL THE
		ADD	F2,NUMLIN	;  LINES THAT WERE JUST MATCHED
 WIT
		MOVE	F1,TEMPF1	;[110] CAUSE MOVEUP TO FLUSH ALL THE
		MOVE	F2,TEMPF2	;[110]   LINES THAT WERE JUST MATCHED
 INS 7/20	;17C16
	;	   (/O) SYMBOL DEFINITION BLOCK FOR THIS LINE (5 WORDS)
 INS 39/20	;17C17

	;[115] FIX A BYTE POINTER TO ACCOUNT FOR /O BLOCK

	FIXBP:	 TRNN	FR,-1		;DON'T IF NOT FILE 0
	FIXBPD:	SKIPN	OFSSWT		;ONLY IF /O
		 POPJ	PP,		;WORDS AREN'T THERE TO SKIP
		HRRI	W1,SSBLTE(W1)	;BUMP BYTE POINTER PAST SYMBOL BLOCK
		POPJ	PP,		;DONE
 REP 6/22	;17C18
		POPJ	PP,		;NO, RETURN
		SETOM	TEMP		;YES, INIT LINE COUNTER
	UPDAT1:	AOS	W1,TEMP		;GET NUMBER OF NEXT LINE
		CAMLE	W1,F2		;DONE?
		POPJ	PP,		;YES
		MOVEI	C,"|"		;[100] PRINT VERTICAL BAR IF
		SKIPN	DIFFLG		;  "DIFFERENCE FLAG" IS SET, OR IF
		SKIPE	F2		;  MORE THAN 1 LINE HAS BEEN LOOKED AT
		PUSHJ	PP,PCHAR
		SETZM	DIFFLG		;CLEAR "DIFFERENCE FLAG"
		MOVEI	C,.CHTAB	;[100] PRINT A TAB
		PUSHJ	PP,PCHAR
		PUSH	PP,F2		;SAVE F2
		MOVE	F2,W1		;GET LINE NUMBER TO PRINT
		PUSHJ	PP,SETONE	;GET BYTE POINTER TO LINE
 WIT
		 POPJ	PP,		;NO, RETURN
		JUMPL	F2,[HRLZS DIFFLG	;[110] YES, INSERTION ?
			    POPJ PP,]	;[110] YES, REMEMBER THAT
		SETOM	TEMP		;INIT LINE COUNTER
		SOS	F2		;[110] BACK UP A LINE
		PUSH	PP,F2		;[110] SAVE
	UPDAT1:	AOS	F2,TEMP		;[110] GET NUMBER OF NEXT LINE
		PUSHJ	PP,SETONE	;[110] NOW FETCH BYTE POINTER
		CAMLE	F2,(PP)		;[110] DONE?
		 JRST	UPDAT3		;[110] YES
		MOVEI	C,0		;[100] [110] PRINT VERTICAL BAR IF
		SKIPN	DIFFLG		;  "DIFFERENCE FLAG" IS SET, OR IF
		 JRST	UPDAT2		;  MORE THAN ONE LINE HAS BEEN LOOKED AT
		MOVEI	T,400K		;[110] UNLESS LINES ARE BLANK
		TDNE	T,(W2)		;[110] ...
		 JRST	UPDAT2		;[110] (THEY ARE)
		SETOM	DIFFLG		;[110] NOTE AT LEASE ONE VERTICAL BAR
		MOVEI	C,"|"		;[110]
	UPDAT2:	PUSHJ	PP,UPDAT5	;[110] PRINT DIFFERENCE CHAR AND LINE
		JRST	UPDAT1		;[110] CONTINUE

	UPDAT3:	MOVEI	C,0		;[110] DONE, DEFAULT TO NO CHANGE
		SKIPN	DIFFLG		;[110] IF NONE,
		 JRST	UPDAT4		;[110]  ASSUMPTION WON
		MOVEI	T,400K		;[110] SOME DIFFERENCE, BLANK LINE?
		TDNE	T,(W2)		;[110] IS IT?
		 JRST	[SKIPL	DIFFLG	;[110] YES, BLANK AND NO PREV "|"?
			  MOVEI C,"o"	;[110]        YES, DELETION
			 JRST	UPDAT4]	;[110] NO, BLANK + PREV "|", NO "|" HERE
		MOVE	T,DIFFLG	;[110] SEE WHAT KIND OF DIFFERENCE
		MOVEI	C,"o"		;[110] ASSUME DELETION
		 CAME	T,[-1]		;[110] IF END OF ORDINARY DIFFERENCE, "|"
		TLNN	T,-1		;[110] WAS IT A DELETION?
		 MOVEI	C,"|"		;[110] AN ORDINARY CHANGE.
	UPDAT4:	PUSHJ	PP,UPDAT5	;[110] PRINT THE LINE
		SETZM	DIFFLG		;[110] NO DIFFERENCES KNOWN NOW
		POP	PP,F2		;[110] RESTORE F2
		AOJA	F2,CPOPJ	;[110] RESUME SCAN

	UPDAT5:	PUSHJ	PP,PCHART	;[110] PRINT DIFFERENCE FLAG IF ANY
		MOVEI	C,.CHTAB	;[100] PRINT A TAB
		PUSHJ	PP,PCHAR
 REP 26/22	;17C19
		PUSHJ	PP,PCHAR	;AND PRINT IT
		POP	PP,F2		;RESTORE F2
		JRST	UPDAT1		;GO PRINT MORE LINES, IF ANY
 WIT
		JRST	PCHAR		;[110] PRINT IT AND RETURN
 INS 46/23	;17C20
		PUSHJ	PP,FIXBP	;[115] ADJUST TO TEXT AREA IF NESCESSARY
 REP 15/24	;17C21
		HRRM	W1,(W3)		;SAVE WORD COUNT IN BUFFER
 WIT
		SKIPN	USWFLG		;[116] FUNNY /U MODE?
		JRST	GLINE4		;[116] NO. DON'T CHECK FOR LINE-SEQUENCED LINES
		MOVE	W2,1(W3)	;[116] GET THE FIRST WORD OF THE LINE
		TRNN	W2,1B35		;[116] IS IT A LINE-SEQUENCED LINE?
		JRST	GLINE4		;[116] NO. NO NEED TO CHECK IF THE LINE IS BLANK
		LDB	W2,[POINT 7,2(W3),6]	;[116] YES. GET THE FIRST CHARACTER
						;[116] AFTER THE LINE SEQUENCE NUMBER
		CAIE	W2,.CHTAB	;[116] IF IT'S A TAB, CHECK FURTHER
		JRST	GLINE4		;[116] OTHERWISE ASSUME NOT A BLANK LINE
		LDB	W2,[POINT 7,2(W3),13]	;[116] GET THE NEXT CHARACTER
		SKIPN	W2		;[116] CHECK FOR A BLANK LINE
		TRO	W1,400K		;[116] SIGNIFY THAT THIS IS A BLANK LINE
	GLINE4:	HRRM	W1,(W3)		;SAVE WORD COUNT IN BUFFER
 INS 20/24	;17C22
		PUSHJ	PP,FIXBP	;[115] ADJUST FOR POSSIBLE SYMBOL BLOCK
 REP 34/24	;17C23
	GLEXIT:	PUSHJ	PP,GLSYMB	;[104] LINE IS NOW IN - GET A SYMBOL
 WIT
	GLEXIT:	 SKIPE	OFSSWT		;[115] SKIP IF NOT /O
		TRNE	FR,-1		;[115] DON'T COPY SYMBOL UNLESS FILE 0
		 JRST	GLNXIT		;[115] DON'T COPY
		PUSHJ	PP,GLSYMB	;[104] LINE IS NOW IN - GET A SYMBOL
		HRRZ	W1,WCADR	;[115] GET START OF LINE
		AOJ	W1,		;[115] POINT TO SYMBOL BLOCK
		HRLI	W1,LSTSYM	;[115] PUT CURRENT SYMBOL THERE
		HRRZ	W2,W1		;[115] SAVE COPY OF DESTINATION
		BLT	W1,SSBLTE-1(W2)	;[115] ONWARDS
 INS 7/26	;17C24
		PUSHJ	PP,FIXBPD	;[115] ADJUST FOR HEADER
 REP 32/27	;17C25
		HLRZ	T,1(W1)		;[76] GET THE FIRST DATA WORD OUT
 WIT
		HLRZ	T,SSBLTE+1(W1)	;[76] [115] GET THE FIRST DATA WORD OUT
 INS 6/30	;17C26
		PUSHJ	PP,FIXBPD	;[115] FIX FILE 0 POINTER IF /O
 REP 3/31	;17C27
	COMPL0:	CAME	W1,W2		;THIS IS THE BIG TEST--ARE THEY EQUAL
		JRST	COMPL4		;NO
 WIT
	COMPL0:	CAMN	W1,W2		;THIS IS THE BIG TEST--ARE THEY EQUAL
		JRST	COMPL7		;[117] YES, CONTINUE
		SKIPN	OPISWT		;[117] CASE-INVARIANT COMPARE?
		JRST	COMPL4		;NO
		CAIL	W1,"a"		;[117] YES, UPCASE BOTH CHARS
		CAILE	W1,"z"		;[117]
		CAIA			;[117]
		TRZ	W1,40		;[117] CONVERT TO UPPER CASE
		CAIL	W2,"a"		;[117] YES, UPCASE BOTH CHARS
		CAILE	W2,"z"		;[117]
		CAIA			;[117]
		TRZ	W2,40		;[117] CONVERT TO UPPER CASE
		CAME	W1,W2		;[117] TRY ONE MORE TIME
		JRST	COMPL4		;[117] FAILED AGAIN, FORGET IT
 REP 7/32	;17C28
		MOVE	W1,[POINT 7,[ASCIZ /****/]]
		PUSHJ	PP,PRINT
 WIT
		MOVEI	W1,[ASCIZ /****/]
		PUSHJ	PP,PPRINT
 REP 14/32	;17C29
		MOVE	W1,[POINT 7,[ASCIZ /**************/]]
		PUSHJ	PP,PRINT
 WIT
		MOVEI	W1,[ASCIZ /**************/]
		PUSHJ	PP,PPRINT
 REP 22/32	;17C30
	PNTTAG:	MOVE	W1,[POINT 7,[ASCIZ / ;At /]]	;[76] [103] NOISE
		PUSHJ	PP,PRINT	;[76]
		MOVE	W3,@DOLPT1	;[76] [103] GET LOCAL SYMBOL NAME
		JUMPE	W3,PNTT.1	;[76] [103] SKIP THIS IF NO LOCAL SYMBOL THERE
		MOVE	W1,DOLPT1	;[76] [103] POINT BACK AT LABEL
		PUSHJ	PP,PRINT	;[76] [103] DO IT
		JRST	PNTT.2		;[103] MAIN SYMBOL COMES LATER

	PNTT.1:	MOVE	W1,SSPTR1	;[76] [103] NO LOCAL, USE MAIN NOW
		SKIPN	W2,(W1)		;[103] IF NULL
		 MOVE	W1,[POINT 7,[ASCIZ /top of file /]]	;[103] SAY SOMETHING
		PUSHJ	PP,PRINT	;[76] [103] GET IT OUT

	PNTT.2:	SKIPN	T,SAVSYM+SYMLIN	;[76] [103] GET NUMBER OF LINES SINCE LAST SYMBOL
 WIT
	PNTTAG:	MOVEI	W1,[ASCIZ / ;At /]	;[76] [103] [115] NOISE
		PUSHJ	PP,PPRINT	;[76] [115]
		PUSH	PP,LBUFP1	;[115] SAVE POINTER JUST IN CASE
		SKIPN	NOHDR		;[115] SKIP IF FLUSHING AN EOF
		 JRST	PNTT.0		;[115] NOPE, NORMAL CASE
		MOVEI	W1,SAVSYM-1	;[115] YES, REDIRECT OUTPUT TO FAKE SYMBOL
		MOVEM	W1,LBUFP1	;[115] BECAUSE LBUFP1 LIES

	PNTT.0:	MOVE	W1,LBUFP1	;[115] BOTTOM OF WINDOW IS LINE WITH TAG
		MOVE	W3,$SYMBL+1(W1)	;[76] [103] [115] GET LOCAL SYMBOL NAME
		JUMPE	W3,PNTT.1	;[76] [103] SKIP THIS IF NO LOCAL SYMBOL THERE
		MOVEI	W1,$SYMBL+1(W1)	;[76] [103] [115] POINT BACK AT LABEL
		PUSHJ	PP,PPRINT	;[76] [103] [115] DO IT
		JRST	PNTT.2		;[103] MAIN SYMBOL COMES LATER

	PNTT.1:	MOVE	W1,LBUFP1	;[115] POINT TO TEXT AGAIN
		MOVEI	W1,SYMBOL+1(W1)	;[115] GET ADDRESS OF MAJOR LABEL
		SKIPN	W2,(W1)		;[103] IF NULL
		 MOVEI	W1,[ASCIZ /top of file /]	;[103] [115] SAY SOMETHING
		PUSHJ	PP,PPRINT	;[76] [103] [115] GET IT OUT

	PNTT.2:	MOVE	W1,LBUFP1	;[115] POINT TO TEXT BLOCK
		SKIPN	T,SYMLIN+1(W1)	;[76] [103] [115] GET NUMBER OF LINES SINCE LAST SYMBOL
 REP 42/32	;17C31

	PNTT.3:	JUMPE	W3,CPOPJ	;[103] IF ONLY MAIN SYMBOL, NO QUALIFIER
		MOVE	W1,[POINT 7,[ASCIZ / following /]]	;[76] [103] ENCLOSE SYMBOL
		PUSHJ	PP,PRINT	;[76]
		MOVE	W1,SSPTR1	;[76] POINT AT MAIN SYMBOL
		PJRST	PRINT		;[76] [103] GET IT OUT
 WIT
	PNTT.3:	JUMPE	W3,PNTT.4	;[103] [115] IF ONLY MAIN SYMBOL, NO QUALIFIER
		MOVEI	W1,[ASCIZ / following /]	;[76] [103] [115] ENCLOSE SYMBOL
		PUSHJ	PP,PPRINT	;[76] [115]
		MOVE	W1,LBUFP1	;[115] GET ADDRESS ONE LAST TIME
		MOVEI	W1,SYMBOL+1(W1)	;[76] [115] POINT AT MAIN SYMBOL
		PUSHJ	PP,PPRINT	;[76] [103] [115] GET IT OUT

	PNTT.4:	POP	PP,LBUFP1	;[115] RESTORE BUFFER POINTER
		POPJ	PP,		;[115] DONE
 REP 1/34	;17C32
	PRNSEP:	MOVE	W1,[POINT 7,[ASCIZ /****/]] ;[103]
		PUSHJ	PP,PRINT	;[103]
 WIT
	PRNSEP:	MOVEI	W1,[ASCIZ /****/] ;[103]
		PUSHJ	PP,PPRINT	;[103]
 INS 10/35	;17C33
		PUSHJ	PP,FIXBP	;[115] FIX BP TO POINT TO TEXT
 INS 16/35	;17C34
	PPRINT:	HRLI	W1,(POINT 7,,)	;[115] MAKE ADDRESS INTO A BP
		JRST	PRINT		;[115] ...

 REP 12/37	;17C35
		MOVE	W1,[POINT 7,[ASCIZ /File 1)	/]]
		PUSHJ	PP,PRINT
		MOVE	W1,[POINT 7,HBUF1]
		PUSHJ	PP,PRINT	;PRINT FILE 1 NAME
		MOVE	W1,[POINT 7,HBUF1D]	;[51]
		PUSHJ	PP,PRINT	;[51] AND ITS CREATION DATE
		PUSHJ	PP,PCRLF
		MOVE	W1,[POINT 7,[ASCIZ /File 2)	/]]
		PUSHJ	PP,PRINT
		MOVE	W1,[POINT 7,HBUF2]
		PUSHJ	PP,PRINT	;PRINT FILE 2 NAME
		MOVE	W1,[POINT 7,HBUF2D]	;[51]
		PUSHJ	PP,PRINT	;[51] AND ITS CREATION DATE
 WIT
		MOVEI	W1,[ASCIZ /File 1)	/]
		PUSHJ	PP,PPRINT
		MOVEI	W1,HBUF1
		PUSHJ	PP,PPRINT	;PRINT FILE 1 NAME
		MOVEI	W1,HBUF1D	;[51]
		PUSHJ	PP,PPRINT	;[51] AND ITS CREATION DATE
		PUSHJ	PP,PCRLF
		MOVEI	W1,[ASCIZ /File 2)	/]
		PUSHJ	PP,PPRINT
		MOVEI	W1,HBUF2
		PUSHJ	PP,PPRINT	;PRINT FILE 2 NAME
		MOVEI	W1,HBUF2D	;[51]
		PUSHJ	PP,PPRINT	;[51] AND ITS CREATION DATE
 INS 22/49	;17C36
		CAIN	C,"I"		;[117] WANT CASE INVARIANT COMPARE?
		 JRST	[SETOM	OPISWT	;[117] YES
			 JRST	GETIOC]	;[117] ONWARDS
 REP 40/62	;17C37
		CAIGE	CNT,73		;DON'T COMPARE BELOW 73 UNLESS...
		CAIN	CNT,41		;IT IS JOB41
		SKIPA			;OK, GO COMPARE THEM
		AOJA	CNT,EXLOOP	;IGNORE THESE LOCATIONS
		TLNN	FR,EOF2SW	;DON'T COMPARE IF ONLY 1 FILE [27]
 WIT
		CAIG	CNT,132		;[113]
		CAIN	CNT,41		;[113]
		JRST	EXLOO1		;[113] COMPARE LOCS 41 AND GREATER THAN 132
		CAIN	CNT,44		;[113]
		JRST	EXLOO1		;[113] COMPARE LOC 44
		CAIGE	CNT,74		;[113]
		AOJA	CNT,EXLOOP	;[113] DON'T COMPARE LOCS 0-40 AND 42-73 SANS 44
		CAIG	CNT,76		;[113]
		JRST	EXLOO1		;[113] COMPARE LOCS 74-76
		CAIE	CNT,132		;[113]
		CAIG	CNT,111		;[113]
		AOJA	CNT,EXLOOP	;[113] DON'T COMPARE LOCS 77-111, 132
		CAIE	CNT,113		;[113]
		CAIN	CNT,114		;[113]
		AOJA	CNT,EXLOOP	;[113] DON'T COMPARE LOCS 113 AND 114
					;[113] HERE TO COMPARE LOCS 112, 115-131
	EXLOO1:	TLNN	FR,EOF2SW	;DON'T COMPARE IF ONLY 1 FILE [27]
 DEL 3/70	;17C38
	SSPTR1:	POINT	7,SAVSYM+SYMBOL	;[76] [104] LAST SYMBOL BEFORE CONFLICT
	DOLPT1:	POINT	7,SAVSYM+$SYMBL	;[76] [104] LAST LOCAL SYMBOL BEFORE CONFLICT
 INS 3/72	;17C39
	OPISWT:	BLOCK	1		;[117] /I (IGNORE CASE) SPECIFIED
 SUM 107319