FTN,L,C 
      PROGRAM RECOV(3,90) 
C 
C 
C*************************************************************
C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976.  ALL RIGHTS    *
C RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
C PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
C OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
C*************************************************************
C 
C 
C 
C 
C************************************************************ 
C 
C 
C    RELOC.  92063-16013
C    SOURCE  92063-18013
C 
C 
C***********************************************************************
C RECOV ALLOWS THE USER TO RECOVER A DATA BASES VOLATILE DATA 
C  WHICH IS STORED IN SYSTEM AVAILABLE MEMORY. RECOV SHOULD 
C  BE USED IN THE EVENT OF A MEMORY PROTECT, OR ANY OTHER 
C  ABNORMAL TERMINATION OF THE DATA BASE PROGRAM WHERE THE
C  DATA BASE DID NOT GET CLOSED PROPERLY. 
C 
C 
C CALLING SEQUENCE
C     :RU,RECOV,P1
C 
C       WHERE: P1 IS CONSOLE
      INTEGER P(5),FNAME(3),ISTAT(4),YES
      DATA IBLNK/2H  /
      DATA YES/2HYE/
      CALL RMPAR(P(1))
      ITTY=P(1) 
      IF (ITTY.EQ.0) ITTY=1 
C     PRINT STATUS
5     CALL DBSTA(ITTY)
C WANT TO RECOVER ANY?
      WRITE(ITTY,40)
40    FORMAT("DO YOU WANT TO CLOSE A DATA BASE?") 
      READ(ITTY,60)FNAME
60    FORMAT(3A2) 
      IF (FNAME(1).NE.YES) STOP 
C GET DATA BASE NAME
      WRITE(ITTY,10)
 10   FORMAT(" DATA BASE NAME? _")
      FNAME(1)=IBLNK
      FNAME(2)=IBLNK
      FNAME(3)=IBLNK
      READ(ITTY,20)FNAME
 20   FORMAT(3A2) 
C GET SECURITY CODE 
C 
      WRITE(ITTY,50)
50    FORMAT("DATA BASE SECURITY CODE? _")
      READ(ITTY,*)ISC 
C     CHECK FOR OPEN ACTIVE TABLE AND POST VOLATILE DATA IF NECESSARY 
      CALL CKACT(FNAME,ISC,ISTAT) 
      IF (ISTAT.EQ.1) GOTO 130
      IF (ISTAT.EQ.2) GOTO 140
      IF (ISTAT.NE.0) GOTO 110
      WRITE(ITTY,165) 
165   FORMAT("DATA BASE RECOVERED!!") 
      GOTO 5
110   WRITE(ITTY,120)ISTAT(1) 
120   FORMAT(" ERROR ",I6)
150   WRITE(ITTY,125) 
125   FORMAT(" DATA BASE NOT PROPERLY RECOVERED!!") 
      GOTO 5
130   WRITE(ITTY,135)FNAME
135   FORMAT(3A2," NOT FOUND")
      GOTO 150
140   WRITE(ITTY,145) 
145   FORMAT(" RESOURCE NUMBER IS IN USE")
      GOTO 150
      END 
      END$
                                                                                                                                                                                                                                    