C* RESET - FIX UP BLOCKS USED STAT IN ABORTED FILES C C RESET IS USED TO RESTORE FILES WHICH HAVE NOT BEEN PROPERLY C CLOSED DUE TO THE PROGRAM ABORTING. C C BEFORE RUNNING RESET - C 1) UNLOCK THE DESIRED FILE C C NOTE - THE FILE WILL BE PRINTABLE BUT THE STATUS OF THE LAST C FEW BLOCKS IS QUESTIONABLE AND MAY RESULT IN PECULIAR C PRINTING. C C USERS MAY UNLOCK AND RUN RESET ON FILES ON [1,4], I.E. C LP.SPR FILES, THAT WERE CREATED BY THEIR PROGRAMS BECAUSE C THEY ARE THE FILE OWNERS. C C BLOCKS ALLOCATED ARE DETERMINED FROM THE STATISTICS BLOCK C IN THE FDB (SEE GSTAT). C C RESET WILL ACCEPT NORMAL FILE SPECS AS INPUT OR AN C INDIRECT COMMAND FILE, DEFAULT .EXT=.CMD. THE COMMMAND FILE C OF FILE NAMES CAN BE DIRECT OUTPUT FROM SRD. C PROGRAM RESET C DIMENSION IBUF(15) BYTE BUF(30) EQUIVALENCE (BUF,IBUF) C BYTE BLCNT, BACNT COMMON /STATS/ IHLBN,ILLBN, ISZHI,ISZLO, BLCNT,BACNT C DATA LUN/2/ DATA NIN,NINF/5,1/, IRCOD/0/ C C CHECK IF INDIRECT COMMAND FILE FOR INPUT C 100 WRITE (NIN, 500) 500 FORMAT (' FILE> '$) READ (NINF, 502,END=200) NC, IBUF 502 FORMAT (Q, 40A2) IF (NC .LE. 0) GO TO 200 IF (IRCOD .EQ. 1) WRITE (NIN,504) IBUF 504 FORMAT ('+',30A2) IF (IRCOD .EQ. 1) GO TO 120 CALL INDOP (NINF, IBUF, 30, IRCOD) IF (IRCOD .EQ. 0) GO TO 120 C C CHECK IF SRD FILE C STRIP OUT BLANKS FROM FILE SPEC C READ (NINF,502) NC, IBUF IF (IBUF(1) .NE. ' *') REWIND NINF GO TO 100 120 CONTINUE NC2 = 0 DO 150 I=1, NC IF (BUF(I) .EQ. ' ') GO TO 150 NC2 = NC2 + 1 BUF(NC2) = BUF(I) 150 CONTINUE BUF(NC2+1) = 0 C C SET UP STATISTICS BLOCK, OPEN FILE , MODIFIY THE FDB AND CLOSE C FILE (WRITE BACK ATTRIBUTES). C CALL GSTAT (LUN, IHLBN) OPEN (UNIT=LUN, NAME=IBUF, TYPE='OLD', ERR=190) CALL MODFD (LUN, ISZLO) CLOSE (UNIT=LUN) GO TO 100 C 190 CONTINUE WRITE (NIN, 515) 515 FORMAT (' **ERROR** OPENING LAST FILE') GO TO 100 C 200 CONTINUE END