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