SUBROUTINE MAIN LOGICAL*1 ARG(12) INTEGER PAT(132) INTEGER GETPAT, GETARG LOGICAL*1 SECT(10) LOGICAL*1 NAME(6) LOGICAL*1 ST001Z(28) LOGICAL*1 ST002Z(19) DATA SECT(1)/49/,SECT(2)/0/ DATA NAME(1)/78/,NAME(2)/65/,NAME(3)/77/,NAME(4)/69/,NAME(5)/36/,N *AME(6)/0/ DATA ST001Z(1)/117/,ST001Z(2)/115/,ST001Z(3)/97/,ST001Z(4)/103/,ST *001Z(5)/101/,ST001Z(6)/58/,ST001Z(7)/32/,ST001Z(8)/32/,ST001Z(9)/1 *05/,ST001Z(10)/110/,ST001Z(11)/116/,ST001Z(12)/114/,ST001Z(13)/111 */,ST001Z(14)/32/,ST001Z(15)/91/,ST001Z(16)/45/,ST001Z(17)/115/,ST0 *01Z(18)/60/,ST001Z(19)/115/,ST001Z(20)/101/,ST001Z(21)/99/,ST001Z( *22)/116/,ST001Z(23)/105/,ST001Z(24)/111/,ST001Z(25)/110/,ST001Z(26 *)/62/,ST001Z(27)/93/,ST001Z(28)/0/ DATA ST002Z(1)/66/,ST002Z(2)/97/,ST002Z(3)/100/,ST002Z(4)/32/,ST00 *2Z(5)/107/,ST002Z(6)/97/,ST002Z(7)/114/,ST002Z(8)/109/,ST002Z(9)/9 *7/,ST002Z(10)/32/,ST002Z(11)/105/,ST002Z(12)/110/,ST002Z(13)/32/,S *T002Z(14)/105/,ST002Z(15)/110/,ST002Z(16)/116/,ST002Z(17)/114/,ST0 *02Z(18)/111/,ST002Z(19)/0/ CALL QUERY(ST001Z) IF (.NOT.(GETPAT(NAME, PAT) .EQ. -3))GOTO 23000 CALL ERROR(ST002Z) 23000 CONTINUE IF (.NOT.(GETARG(1, ARG, 12) .NE. -1))GOTO 23002 IF (.NOT.(ARG(1) .EQ. 45 .AND. (ARG(2) .EQ. 115 .OR. ARG(2) .EQ. 8 *3)))GOTO 23004 CALL SCOPY(ARG, 3, SECT, 1) GOTO 23005 23004 CONTINUE CALL BADARG(ARG) 23005 CONTINUE 23002 CONTINUE CALL DOSYN(SECT) CALL DOINTR(SECT, PAT) RETURN END SUBROUTINE DOINTR(SECT, PAT) LOGICAL*1 SECT(100) INTEGER PAT(132) LOGICAL*1 INDFIL(36), SECFIL(36), NAME(36) LOGICAL*1 BUF(402) INTEGER I, JUNK, FSIZE(2), SIZE(2) INTEGER GETLIN, GETWRD, AGETHD, AGTLIN, MATCH INTEGER IFD, SFD INTEGER OPEN INTEGER*4 LPTR LOGICAL*1 INDSTR(7) LOGICAL*1 SECSTR(7) LOGICAL*1 ANOUNC(59) LOGICAL*1 TAIL(54) LOGICAL*1 MINUSS(3) LOGICAL*1 ST003Z(49) LOGICAL*1 ST004Z(54) LOGICAL*1 ST005Z(44) DATA INDSTR(1)/126/,INDSTR(2)/109/,INDSTR(3)/97/,INDSTR(4)/110/,IN *DSTR(5)/47/,INDSTR(6)/105/,INDSTR(7)/0/ DATA SECSTR(1)/126/,SECSTR(2)/109/,SECSTR(3)/97/,SECSTR(4)/110/,SE *CSTR(5)/47/,SECSTR(6)/115/,SECSTR(7)/0/ DATA ANOUNC(1)/77/,ANOUNC(2)/97/,ANOUNC(3)/110/,ANOUNC(4)/117/,ANO *UNC(5)/97/,ANOUNC(6)/108/,ANOUNC(7)/32/,ANOUNC(8)/101/,ANOUNC(9)/1 *10/,ANOUNC(10)/116/,ANOUNC(11)/114/,ANOUNC(12)/105/,ANOUNC(13)/101 */,ANOUNC(14)/115/,ANOUNC(15)/32/,ANOUNC(16)/97/,ANOUNC(17)/114/,AN *OUNC(18)/101/,ANOUNC(19)/32/,ANOUNC(20)/97/,ANOUNC(21)/118/,ANOUNC *(22)/97/,ANOUNC(23)/105/,ANOUNC(24)/108/,ANOUNC(25)/97/,ANOUNC(26) */98/,ANOUNC(27)/108/,ANOUNC(28)/101/,ANOUNC(29)/32/,ANOUNC(30)/102 */,ANOUNC(31)/111/,ANOUNC(32)/114/,ANOUNC(33)/32/,ANOUNC(34)/116/,A *NOUNC(35)/104/,ANOUNC(36)/101/,ANOUNC(37)/32/,ANOUNC(38)/102/,ANOU *NC(39)/111/,ANOUNC(40)/108/,ANOUNC(41)/108/,ANOUNC(42)/111/,ANOUNC *(43)/119/,ANOUNC(44)/105/,ANOUNC(45)/110/,ANOUNC(46)/103/,ANOUNC(4 *7)/32/,ANOUNC(48)/105/,ANOUNC(49)/110/,ANOUNC(50)/32/,ANOUNC(51)/1 *15/,ANOUNC(52)/101/,ANOUNC(53)/99/,ANOUNC(54)/116/,ANOUNC(55)/105/ *,ANOUNC(56)/111/,ANOUNC(57)/110/,ANOUNC(58)/32/,ANOUNC(59)/0/ DATA TAIL(1)/70/,TAIL(2)/111/,TAIL(3)/114/,TAIL(4)/32/,TAIL(5)/105 */,TAIL(6)/110/,TAIL(7)/100/,TAIL(8)/105/,TAIL(9)/118/,TAIL(10)/105 */,TAIL(11)/100/,TAIL(12)/117/,TAIL(13)/97/,TAIL(14)/108/,TAIL(15)/ *32/,TAIL(16)/100/,TAIL(17)/101/,TAIL(18)/115/,TAIL(19)/99/,TAIL(20 *)/114/,TAIL(21)/105/,TAIL(22)/112/,TAIL(23)/116/,TAIL(24)/105/,TAI *L(25)/111/,TAIL(26)/110/,TAIL(27)/115/,TAIL(28)/44/,TAIL(29)/32/,T *AIL(30)/116/,TAIL(31)/121/,TAIL(32)/112/,TAIL(33)/101/,TAIL(34)/32 */,TAIL(35)/40/,TAIL(36)/102/,TAIL(37)/111/,TAIL(38)/114/,TAIL(39)/ *32/,TAIL(40)/101/,TAIL(41)/120/,TAIL(42)/97/,TAIL(43)/109/,TAIL(44 *)/112/,TAIL(45)/108/,TAIL(46)/101/,TAIL(47)/41/,TAIL(48)/58/,TAIL( *49)/10/,TAIL(50)/109/,TAIL(51)/97/,TAIL(52)/110/,TAIL(53)/32/,TAIL *(54)/0/ DATA MINUSS(1)/45/,MINUSS(2)/115/,MINUSS(3)/0/ DATA ST003Z(1)/63/,ST003Z(2)/32/,ST003Z(3)/69/,ST003Z(4)/114/,ST00 *3Z(5)/114/,ST003Z(6)/111/,ST003Z(7)/114/,ST003Z(8)/32/,ST003Z(9)/1 *11/,ST003Z(10)/112/,ST003Z(11)/101/,ST003Z(12)/110/,ST003Z(13)/105 */,ST003Z(14)/110/,ST003Z(15)/103/,ST003Z(16)/32/,ST003Z(17)/105/,S *T003Z(18)/110/,ST003Z(19)/100/,ST003Z(20)/101/,ST003Z(21)/120/,ST0 *03Z(22)/32/,ST003Z(23)/102/,ST003Z(24)/105/,ST003Z(25)/108/,ST003Z *(26)/101/,ST003Z(27)/32/,ST003Z(28)/102/,ST003Z(29)/111/,ST003Z(30 *)/114/,ST003Z(31)/32/,ST003Z(32)/115/,ST003Z(33)/112/,ST003Z(34)/1 *01/,ST003Z(35)/99/,ST003Z(36)/105/,ST003Z(37)/102/,ST003Z(38)/105/ *,ST003Z(39)/101/,ST003Z(40)/100/,ST003Z(41)/32/,ST003Z(42)/115/,ST *003Z(43)/101/,ST003Z(44)/99/,ST003Z(45)/116/,ST003Z(46)/105/,ST003 *Z(47)/111/,ST003Z(48)/110/,ST003Z(49)/0/ DATA ST004Z(1)/63/,ST004Z(2)/32/,ST004Z(3)/69/,ST004Z(4)/114/,ST00 *4Z(5)/114/,ST004Z(6)/111/,ST004Z(7)/114/,ST004Z(8)/32/,ST004Z(9)/1 *11/,ST004Z(10)/112/,ST004Z(11)/101/,ST004Z(12)/110/,ST004Z(13)/105 */,ST004Z(14)/110/,ST004Z(15)/103/,ST004Z(16)/32/,ST004Z(17)/97/,ST *004Z(18)/114/,ST004Z(19)/99/,ST004Z(20)/104/,ST004Z(21)/105/,ST004 *Z(22)/118/,ST004Z(23)/101/,ST004Z(24)/32/,ST004Z(25)/111/,ST004Z(2 *6)/102/,ST004Z(27)/32/,ST004Z(28)/109/,ST004Z(29)/97/,ST004Z(30)/1 *10/,ST004Z(31)/117/,ST004Z(32)/97/,ST004Z(33)/108/,ST004Z(34)/32/, *ST004Z(35)/101/,ST004Z(36)/110/,ST004Z(37)/116/,ST004Z(38)/114/,ST *004Z(39)/105/,ST004Z(40)/101/,ST004Z(41)/115/,ST004Z(42)/32/,ST004 *Z(43)/102/,ST004Z(44)/111/,ST004Z(45)/114/,ST004Z(46)/32/,ST004Z(4 *7)/115/,ST004Z(48)/101/,ST004Z(49)/99/,ST004Z(50)/116/,ST004Z(51)/ *105/,ST004Z(52)/111/,ST004Z(53)/110/,ST004Z(54)/0/ DATA ST005Z(1)/63/,ST005Z(2)/32/,ST005Z(3)/66/,ST005Z(4)/97/,ST005 *Z(5)/100/,ST005Z(6)/108/,ST005Z(7)/121/,ST005Z(8)/32/,ST005Z(9)/10 *2/,ST005Z(10)/111/,ST005Z(11)/114/,ST005Z(12)/109/,ST005Z(13)/97/, *ST005Z(14)/116/,ST005Z(15)/116/,ST005Z(16)/101/,ST005Z(17)/100/,ST *005Z(18)/32/,ST005Z(19)/97/,ST005Z(20)/114/,ST005Z(21)/99/,ST005Z( *22)/104/,ST005Z(23)/105/,ST005Z(24)/118/,ST005Z(25)/101/,ST005Z(26 *)/32/,ST005Z(27)/111/,ST005Z(28)/102/,ST005Z(29)/32/,ST005Z(30)/10 *9/,ST005Z(31)/97/,ST005Z(32)/110/,ST005Z(33)/117/,ST005Z(34)/97/,S *T005Z(35)/108/,ST005Z(36)/32/,ST005Z(37)/101/,ST005Z(38)/110/,ST00 *5Z(39)/116/,ST005Z(40)/114/,ST005Z(41)/105/,ST005Z(42)/101/,ST005Z *(43)/115/,ST005Z(44)/0/ CALL CONCAT(INDSTR, SECT, INDFIL) IFD = OPEN(INDFIL, 1) IF (.NOT.(IFD .EQ. -3))GOTO 23006 CALL ERROR(ST003Z) 23006 CONTINUE CALL CONCAT(SECSTR, SECT, SECFIL) SFD = OPEN(SECFIL, 1) IF (.NOT.(SFD .EQ. -3))GOTO 23008 CALL CLOSE(IFD) CALL ERROR(ST004Z) 23008 CONTINUE CALL PUTLIN(ANOUNC, 2) CALL PUTLNL(SECT, 2) CALL PUTCH(10, 2) 23010 IF (.NOT.(GETLIN(BUF, IFD) .NE. -1))GOTO 23011 I = 1 JUNK = GETWRD(BUF, I, NAME) CALL CTOPTR(BUF, I, LPTR) CALL SEEK(LPTR, SFD) FSIZE(1) = 32767 FSIZE(2) = 0 IF (.NOT.(AGETHD(SFD, BUF, SIZE, FSIZE) .NE. 0))GOTO 23012 CALL CLOSE(IFD) CALL CLOSE(SFD) CALL ERROR(ST005Z) 23012 CONTINUE 23014 IF (.NOT.(AGTLIN(BUF, SFD, SIZE) .NE. -1))GOTO 23015 IF (.NOT.(MATCH(BUF, PAT) .EQ. 1))GOTO 23016 JUNK = GETLIN(BUF, SFD) I = 1 CALL SKIPBL(BUF, I) 23018 IF (.NOT.(BUF(I) .NE. 0))GOTO 23020 CALL PUTCH(BUF(I), 2) 23019 I=I+1 GOTO 23018 23020 CONTINUE GOTO 23015 23016 CONTINUE GOTO 23014 23015 CONTINUE GOTO 23010 23011 CONTINUE CALL CLOSE(IFD) CALL CLOSE(SFD) CALL PUTCH(10, 2) CALL PUTLIN(TAIL, 2) IF (.NOT.(SECT(1) .NE. 49))GOTO 23021 CALL PUTLIN(MINUSS, 2) CALL PUTLIN(SECT, 2) CALL PUTCH(32, 2) 23021 CONTINUE CALL PUTLIN(NAME, 2) CALL PUTCH(10, 2) RETURN END SUBROUTINE DOSYN(SECT) LOGICAL*1 SECT(100) INTEGER EQUAL LOGICAL*1 CMD(4) LOGICAL*1 PRIM(5) LOGICAL*1 LIB(4) LOGICAL*1 PRIMER(7) LOGICAL*1 ONE(2) LOGICAL*1 TWO(2) LOGICAL*1 THREE(2) LOGICAL*1 FOUR(2) DATA CMD(1)/99/,CMD(2)/109/,CMD(3)/100/,CMD(4)/0/ DATA PRIM(1)/112/,PRIM(2)/114/,PRIM(3)/105/,PRIM(4)/109/,PRIM(5)/0 */ DATA LIB(1)/108/,LIB(2)/105/,LIB(3)/98/,LIB(4)/0/ DATA PRIMER(1)/112/,PRIMER(2)/114/,PRIMER(3)/105/,PRIMER(4)/109/,P *RIMER(5)/101/,PRIMER(6)/114/,PRIMER(7)/0/ DATA ONE(1)/49/,ONE(2)/0/ DATA TWO(1)/50/,TWO(2)/0/ DATA THREE(1)/51/,THREE(2)/0/ DATA FOUR(1)/52/,FOUR(2)/0/ CALL FOLD(SECT) IF (.NOT.(EQUAL(SECT, CMD) .EQ. 1))GOTO 23023 CALL STRCPY(ONE, SECT) GOTO 23024 23023 CONTINUE IF (.NOT.(EQUAL(SECT, PRIM) .EQ. 1))GOTO 23025 CALL STRCPY(TWO, SECT) GOTO 23026 23025 CONTINUE IF (.NOT.(EQUAL(SECT, LIB) .EQ. 1))GOTO 23027 CALL STRCPY(THREE, SECT) GOTO 23028 23027 CONTINUE IF (.NOT.(EQUAL(SECT, PRIMER) .EQ. 1))GOTO 23029 CALL STRCPY(FOUR, SECT) 23029 CONTINUE 23028 CONTINUE 23026 CONTINUE 23024 CONTINUE RETURN END