PROGRAM DBITST !DRIVER FOR TESTING OF DATA BASE HANDLER INCLUDE '[230,100]COMMON.FTN' COMMON /SGA050/GCOM(2560) EQUIVALENCE (GCOM(1),SGACOM(1)) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) 1 WRITE(5,10) 10 FORMAT(1X,'ENTER OPTION, 0 FOR HELP , 21 TO EXIT') READ(5,11) OPTION 11 FORMAT(I5) IF(OPTION.GT.20) GO TO 999 IF(OPTION.LT.0) GO TO 999 IF(OPTION.EQ.0) CALL OPTLST IF(OPTION.EQ.2) CALL OPNTST IF(OPTION.EQ.3) CALL CLSTST IF(OPTION.EQ.4) CALL FNDTST IF(OPTION.EQ.5) CALL GETTST IF(OPTION.EQ.6) CALL LCKTST IF(OPTION.EQ.7) CALL UNLTST IF(OPTION.EQ.8) CALL RLTTST IF(OPTION.EQ.9) CALL RSTTST IF(OPTION.EQ.10) CALL MODTST IF(OPTION.EQ.11) CALL INSTST IF(OPTION.EQ.12) CALL DELTST IF(OPTION.EQ.13) CALL RECBLD IF(OPTION.EQ.14) CALL RECDMP IF(OPTION.EQ.15) CALL FCBDMP IF(OPTION.EQ.16) CALL BUFDMP IF(OPTION.EQ.17) CALL FCBBLD IF(OPTION.EQ.18) CALL BUFBLD IF(OPTION.EQ.19) CALL SGABLD IF(OPTION.EQ.20) CALL SGADMP GO TO 1 999 WRITE(5,998) 998 FORMAT(1X,'GOODBYE, PLAY TIME IS OVER') CALL EXIT END SUBROUTINE OPTLST WRITE(5,11) 11 FORMAT(1X,'OPTION =2 CALLS OPEN TEST') WRITE(5,12) 12 FORMAT(1X,'OPTION =3 CALLS CLOSE TEST') WRITE(5,13) 13 FORMAT(1X,'OPTION =4 CALLS FIND TEST') WRITE(5,14) 14 FORMAT(1X,'OPTION =5 CALLS GET TEST') WRITE(5,15) 15 FORMAT(1X,'OPTION =6 CALLS LOCK TEST') WRITE(5,16) 16 FORMAT(1X,'OPTION =7 CALLS UNLOCK TEST') WRITE(5,17) 17 FORMAT(1X,'OPTION =8 CALLS RELATE TEST') WRITE(5,18) 18 FORMAT(1X,'OPTION =9 CALLS RESET TEST') WRITE(5,19) 19 FORMAT(1X,'OPTION =10 CALLS MODIFY TEST') WRITE(5,20) 20 FORMAT(1X,'OPTION =11 CALLS INSERT TEST') WRITE(5,21) 21 FORMAT(1X,'OPTION =12 CALLS DELETE TEST') WRITE(5,22) 22 FORMAT(1X,'OPTION =13 CALLS BUILD RECORD BUFFER ') WRITE(5,23) 23 FORMAT(1X,'OPTION =14 CALLS DUMP RECORD BUFFER') WRITE(5,24) 24 FORMAT(1X,'OPTION =15 CALLS DUMP DBFCB') WRITE(5,25) 25 FORMAT(1X,'OPTION =16 CALLS DUMP FILE BUFFER') WRITE(5,26) 26 FORMAT(1X,'OPTION =17 CALLS BUILD DBFCB') WRITE(5,27) 27 FORMAT(1X,'OPTION =18 CALLS BUILD FILE BUFFER') WRITE(5,28) 28 FORMAT(1X,'OPTION =19 CALLS BUILD GLOBAL COMMON') WRITE(5,29) 29 FORMAT(1X,'OPTION =20 CALLS DUMP GLOBAL COMMON') RETURN END SUBROUTINE OPNTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, FILE# 1-32, BUF# 1-5') READ(5,11) IFCB,IFLN,IBUF 11 FORMAT(I5,I5,I5) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 IF((IBUF.GT.5).OR.(IBUF.LT.1)) GO TO 99 ISIZE=512 CALL OPNDB(FCB(1,IFCB),IFLN,BUF(1,IBUF),ISIZE,IERR) WRITE(5,12)IERR 12 FORMAT(1X,'RETURN CODE FROM OPEN IS ',I4) 99 RETURN END SUBROUTINE CLSTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5') READ(5,11) IFCB 11 FORMAT(I5) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 CALL CLSDB(FCB(1,IFCB),IERR) WRITE(5,12)IERR 12 FORMAT(1X,'RETURN CODE FROM CLOSE IS ',I4) 99 RETURN END SUBROUTINE FNDTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) DIMENSION IKEY(23) WRITE(5,10) 10 FORMAT(1X,'ENTER DBFCB# 1-5, RECBUF# 1-2, FC') READ(5,11) IFCB,IREC,IFC 11 FORMAT(I5,I5,I5) IF(FCB(1,IFCB).EQ.28) GO TO 70 WRITE(5,12) 12 FORMAT(1X,'ENTER (MAX. 46 BYTE) ASCII KEY') READ(5,13)IKEY 13 FORMAT(23A2) 15 IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 IF((IREC.LT.0).AND.(IREC.GT.-5)) GO TO 77 IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 CALL FINDB(FCB(1,IFCB),IKEY(1),IFC,REC(1,IREC),IERR) 97 WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM FIND IS ',I4) 99 RETURN 77 IREC=IREC*(-1) CALL FINDB(FCB(1,IFCB),IKEY(1),IFC,BUF(1,IREC),IERR) GO TO 97 70 WRITE(5,71) 71 FORMAT(' ENTER TABLE#') READ(5,72) IKEY(1) 72 FORMAT(I6) WRITE(5,73) 73 FORMAT(' ENTER 16 CHARACTER KEY') READ(5,74)(IKEY(KK),KK=2,9) 74 FORMAT(8A2) GO TO 15 END SUBROUTINE GETTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) INTEGER*4 IRCH WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, RECBUF# 1-2, FC, R#/C#') READ(5,11)IFCB,IREC,IFC,IRCH 11 FORMAT(I5,I5,I5,I10) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 IF((IREC.LT.0).AND.(IREC.GT.-5)) GO TO 77 IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 CALL GETDB(FCB(1,IFCB),IFC,IRCH,REC(1,IREC),IERR) 97 WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM GET IS ',I4) 99 RETURN 77 IREC=IREC*(-1) CALL GETDB(FCB(1,IFCB),IFC,IRCH,BUF(1,IREC),IERR) GO TO 97 END SUBROUTINE LCKTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) INTEGER*4 IRCN WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, REC# 1-FILESIZE') READ(5,11)IFCB,IRCN 11 FORMAT(I5,I10) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 CALL LCKDB(FCB(1,IFCB),IRCN,IERR) WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM LOCK IS ',I4) 99 RETURN END SUBROUTINE UNLTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) INTEGER*4 IRCN WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, REC# 1-FILESIZE') READ(5,11)IFCB,IRCN 11 FORMAT(I5,I10) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 CALL UNLDB(FCB(1,IFCB),IRCN,IERR) WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM UNLOCK IS ',I4) 99 RETURN END SUBROUTINE RLTTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB#1 1-5, FCB#2 1-5, CHAIN#') READ(5,11)IFCB1,IFCB2,ICHN 11 FORMAT(I5,I5,I5) IF((IFCB2.GT.10).OR.(IFCB2.LT.1)) GO TO 99 IF((IFCB1.GT.10).OR.(IFCB1.LT.1)) GO TO 99 CALL RLTDB(FCB(1,IFCB1),FCB(1,IFCB2),ICHN,IERR) WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM RELATE IS ',I4) 99 RETURN END SUBROUTINE RSTTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) INTEGER*4 IRCN WRITE(5,10) 10 FORMAT(1X,'FCB# 1-5, REC# 1-FLSZ,1=WRT;0=RD,9=HL;13=LDR;15=TLR') READ(5,11)IFCB,IRCN,FCD,DSP 11 FORMAT(I5,I10,I2,I3) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 CALL RSTDB(FCD,FCB(1,IFCB),DSP,IRCN,IERR) WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM RESET IS ',I4) 99 RETURN END SUBROUTINE MODTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, RECBUF# 1-2, FC') READ(5,11)IFCB,IREC,IFC 11 FORMAT(I5,I5,I5) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 IF((IREC.LT.0).AND.(IREC.GT.-5)) GO TO 77 IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 CALL MDFDB(FCB(1,IFCB),IFC,REC(1,IREC),IERR) 97 WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM MODIFY IS ',I4) 99 RETURN 77 IREC=IREC*(-1) CALL MDFDB(FCB(1,IFCB),IFC,BUF(1,IREC),IERR) GO TO 97 END SUBROUTINE INSTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, RECBUF# 1-2, FC') READ(5,11)IFCB,IREC,IFC 11 FORMAT(I5,I5,I5) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 IF((IREC.LT.0).AND.(IREC.GT.-5)) GO TO 77 IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 CALL INSDB(FCB(1,IFCB),IFC,REC(1,IREC),IERR) 97 WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM INSERT IS ',I4) 99 RETURN 77 IREC=IREC*(-1) CALL INSDB(FCB(1,IFCB),IFC,BUF(1,IREC),IERR) GO TO 97 END SUBROUTINE DELTST IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5') READ(5,11)IFCB 11 FORMAT(I5) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 CALL DELDB(FCB(1,IFCB),IERR) WRITE(5,98)IERR 98 FORMAT(1X,'RETURN CODE FROM DELETE IS ',I4) 99 RETURN END SUBROUTINE RECBLD IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER BUILD OPTION 1-MOVE, 2-REBUILD, 3-ZAP') READ(5,11)OPTION 11 FORMAT(I5) IF(OPTION.EQ.1) GO TO 55 IF(OPTION.EQ.2) GO TO 66 IF(OPTION.EQ.3) GO TO 77 GO TO 99 55 WRITE(5,56) 56 FORMAT(1X,'ENTER FROM-RECBUF, TO-RECBUF') READ(5,57)IREC1,IREC2 57 FORMAT(I5,I5) IF((IREC1.GT.5).OR.(IREC1.LT.1)) GO TO 99 IF((IREC2.GT.5).OR.(IREC2.LT.1)) GO TO 99 DO 59 I=1,256 REC(I,IREC2)=REC(I,IREC1) 59 CONTINUE GO TO 99 66 WRITE(5,67) 67 FORMAT(1X,'ENTER RECBUF# 1-2') READ(5,68)IREC 68 FORMAT(I5) IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 DO 69 I=1,256 WRITE(5,70)I 70 FORMAT(1X,'ENTER WORD ',I5,' IN OCTAL') READ(5,71)REC(I,IREC) 71 FORMAT(O6) IF(REC(I,IREC).NE.'::') GO TO 69 DO 72 J=I,256 REC(J,IREC)=0 72 CONTINUE GO TO 99 69 CONTINUE 77 WRITE(5,78) 78 FORMAT(1X,'ENTER RECBUF# 1-2, WORD# 1-256') READ(5,79)IREC,IWORD 79 FORMAT(I5,I5) IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 IF((IWORD.GT.256).OR.(IWORD.LT.1)) GO TO 99 WRITE(5,80)REC(IWORD,IREC) 80 FORMAT(1X,'VALUE OF SPECIFIED WORD IS ',O6,'----ENTER NEW VALUE') READ(5,81)REC(IWORD,IREC) 81 FORMAT(O6) GO TO 77 99 RETURN END SUBROUTINE RECDMP IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER RECBUF# 1-2') READ(5,11)IREC 11 FORMAT(I5) IF((IREC.GT.2).OR.(IREC.LT.1)) GO TO 99 WRITE(5,12) (REC(I,IREC),I=1,256) 12 FORMAT(1X,12O6) 99 RETURN END SUBROUTINE FCBDMP IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5') READ(5,11)IFCB 11 FORMAT(I5) IF((IFCB.GT.5).OR.(IFCB.LT.1)) GO TO 99 WRITE(5,12) (FCB(I,IFCB),I=1,102) 12 FORMAT(1X,12O6) CALL DMPFCB(FCB(1,IFCB),5) 99 RETURN END SUBROUTINE BUFDMP IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) WRITE(5,10) 10 FORMAT(1X,'ENTER BUF# 1-5') READ(5,11)IBUF 11 FORMAT(I5) IF((IBUF.GT.5).OR.(IBUF.LT.1)) GO TO 99 WRITE(5,12) (BUF(I,IBUF),I=1,256) 12 FORMAT(1X,12O6) 99 RETURN END SUBROUTINE SGADMP IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(26,10),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) COMMON /SGA050/GCOM(2560) WRITE(5,10) 10 FORMAT(1X,'ENTER RANGE OF DUMP--FIRST WORD, LAST WORD') READ(5,11)IWRD1,IWRD2 11 FORMAT(I4,I4) IF((IWRD1.LT.1).OR.(IWRD2.LT.1)) GO TO 99 IF((IWRD1.GT.2560).OR.(IWRD2.GT.2560)) GO TO 99 IF(IWRD1.GT.IWRD2) GO TO 99 WRITE(5,12) (GCOM(I),I=IWRD1,IWRD2) 12 FORMAT(1X,12O6) 99 RETURN END SUBROUTINE FCBBLD IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) 9 WRITE(5,10) 10 FORMAT(1X,'ENTER FCB# 1-5, WORD# 1-52') READ(5,11)IFCB,IWORD 11 FORMAT(I5,I5) IF((IFCB.LT.1).OR.(IFCB.GT.5)) GO TO 99 IF((IWORD.LT.1).OR.(IWORD.GT.102)) GO TO 99 WRITE(5,12) FCB(IWORD,IFCB) 12 FORMAT(1X,'VALUE OF SPECIFIED WORD IS ',O6,'----ENTER NEW VALUE') READ(5,13)FCB(IWORD,IFCB) 13 FORMAT(O6) GO TO 9 99 RETURN END SUBROUTINE BUFBLD IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) 9 WRITE(5,10) 10 FORMAT(1X,'ENTER BUF# 1-5, WORD# 1-256') READ(5,11)IBUF,IWORD 11 FORMAT(I5,I5) IF((IBUF.LT.1).OR.(IBUF.GT.5)) GO TO 99 IF((IWORD.LT.1).OR.(IWORD.GT.256)) GO TO 99 WRITE(5,12) BUF(IWORD,IBUF) 12 FORMAT(1X,'VALUE OF SPECIFIED WORD IS ',O6,'----ENTER NEW VALUE') READ(5,13)BUF(IWORD,IBUF) 13 FORMAT(O6) GO TO 9 99 RETURN END SUBROUTINE SGABLD IMPLICIT INTEGER(A-Z) DIMENSION FCB(102,5),BUF(256,5),REC(256,2) COMMON BCOM(2302) EQUIVALENCE (BCOM(1),FCB(1,1)),(BCOM(511),BUF(1,1)) EQUIVALENCE (BCOM(1791),REC(1,1)) COMMON /SGA050/GCOM(2560) 9 WRITE(5,10) 10 FORMAT(1X,' WORD# 1-2560') READ(5,11)IWORD 11 FORMAT(I4) IF((IWORD.LT.1).OR.(IWORD.GT.2560)) GO TO 99 WRITE(5,12) GCOM(IWORD) 12 FORMAT(1X,'VALUE OF SPECIFIED WORD IS ',O6,'----ENTER NEW VALUE') READ(5,13)GCOM(IWORD) 13 FORMAT(O6) GO TO 9 99 RETURN END