FTN4 PROGRAM QY18(5,90),92069-16060 REV.1912 781114 C C C************************************************************* C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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 SOURCE: 92069-18081 C RELOC: 92060-16060 C C C************************************************************ C C C THIS MODULE WILL REPORT "ALL" DATA RECORDS C WITHOUT REPORT FORMATING OR EDITING C C THE "REPORT ALL" PROCESSOR IS BROKEN INTO THREE MODULES: C C QS03 - BUILDS THE SCOOP TABLE WHICH CONTAINS INFORMATION C ABOUT EACHITEM IN THE DATA SET. C QS17 - READS THE DATA RECORD FROM THE DATA SET C QS18 - FORMATS AND PRINTS EACH DATA ITEM'S VALUE C C C NULL ASCII DATA-ITEMS WILL BE FILLED C WITH " "S; INTEGER AND REAL DATA-ITEMS WILL C PRINT AS ZEROS(0). C C RRCNT IS A COUNT OF RETRIEVED RECORDS C WITHIN SELECT-FILE. C LOGICAL IFBRK LOGICAL DDS INTEGER ITEMS(128) INTEGER ELCNT INTEGER INTGR,R,X INTEGER BLANK INTEGER SCOOP(128,6) C$$$$$$$$$$$$$$$$$$$ NOVEMBER 3,1978 $$$$$$$$$$$$$$$$$$$$$ INTEGER INLU,ITTY,ILP,IDCB,JDCB,XEQ INTEGER DBNAM,DBLEV,DSNAM,DINAM,SELECT,SNAM INTEGER DSNUM,DINUM,PARM,LPARM,ECHO,QSERR INTEGER IMA,IB,IBSZ,SECNO,IEND,ISCAN LOGICAL BREAK INTEGER IPFLAG,IOFLAG,RMOTE LOGICAL BATCH,XQBCH INTEGER PAGCNT,LNCNT INTEGER PAGLEN,COLLIM REAL RRCNT REAL SELT,RSEC INTEGER IPTR REAL RCOUNT INTEGER S,R3,TRKNM,IDILU INTEGER R6 REAL ATOTAL INTEGER LIST,L,T,U INTEGER LEVSTR,LEVLEN INTEGER IBUFF INTEGER SS(7,100) C COMMON INLU(145),ITTY(145),ILP(145),IDCB(145),JDCB(144),XEQ(145) COMMON DBNAM(10),DBLEV(3),DSNAM(3),DINAM(3),SELECT(6),SNAM(3) COMMON DSNUM,DINUM,PARM(40),LPARM,ECHO,QSERR COMMON IMA(37),IB(896),IBSZ,SECNO,IEND,ISCAN COMMON BREAK COMMON IPFLAG,IOFLAG,RMOTE COMMON BATCH,XQBCH COMMON PAGCNT,LNCNT COMMON PAGLEN,COLLIM COMMON RRCNT COMMON SELT(64),RSEC COMMON IPTR COMMON RCOUNT COMMON S(15,50),R3,TRKNM,IDILU COMMON R6 COMMON ATOTAL(6,5) COMMON LIST(101,6),L(7),T(5),U(7,5) COMMON LEVSTR(66,5),LEVLEN(5) COMMON IBUFF(2048) C EQUIVALENCE (S,SS) C$$$$$$$$$$$$$$$$$$$ NOVEMBER 3,1978 $$$$$$$$$$$$$$$$$$$$$ C EQUIVALENCE COMMENT C C SCOOP IS A 128 BY 6 ARRAY, WHICH CONTAINS AN ENTRY FOR C EACH ITEM IN THE DATA SET. THE FIRST ENTRY CONTAINS C THE NUMBER OF CURRENT ENTRIES. THE OTHERS CONTAIN THE C FOLLOWING INFORMATION: C C WORD 1-3 CONTAINS THE ITEM NAME C WORD 4 CONTAINS THE ITEM TYPE C WORD 5 CONTAINS THE ITEM LENGTH C WORD 6 CONTAINS THE ELEMENT COUNT C C ITEMS IS A 128 WORD ARRAY WHICH CONTAINS THE INFORMATION RETURNED C FROM A DBINF MODE 104. C C SELT CONATINS A RECORD FROM THE SELECT FILE. C C RCOUNT IS THE NUMBER OF DBMS RECORDS SELECTED IN THE SELECT FILE. C C RSEC IS THE CURRENT RECORD NUMBER OF THE SELECT FILE C C IPTR IS THE OFFSET INTO THE SELECT FILE RECORD IN SELT C C LIST IS A FLAG C 0 INDICATES PRINT ITEM NAME C 1 SUPPRESSES THE PRINTING OF THE ITEM NAME C C C EQUIVALENCE(SCOOP,IB) EQUIVALENCE(ITEMS,IB(769)) EQUIVALENCE(LLIST,S(1,1) ) C BAD SEGMENT C DATA BLANK/2H / DATA INTGR/111B/ DATA R/122B/ DATA X/130B/ C C C C C C C C C C C C C C C C C BEGIN C C C INITIALIZE OFFSET INTO DATA RECORD C IOFF = 1 C C PRINT THE VALUE FOR EACH ITEM IN THE SET C CALL SFILL(IMA,1,72,40B) DO 110 ITM = 2,SCOOP(1,1) + 1 C C PRINT THE ITEM NAME IF THE PRINT OPTION IS ON C 0 IMPLIES DISPLAY C 1 IMPLIES SUPRESS DISPLAY C IF(LLIST .EQ. 1) GOTO 60 IMA(2) = SCOOP(ITM,1) IMA(3) = SCOOP(ITM,2) IMA(4) = SCOOP(ITM,3) CALL SPUT(IMA,9,75B) C C CONVERT THE ITEM VALUE FOR EACH ITEM IN THE ARRAY C 60 CONTINUE ITYPE = SCOOP(ITM,4) LEN = SCOOP(ITM,5) ELCNT = SCOOP(ITM,6) C C NUMERIC OFFSETS ARE IN WORDS C ASCII OFFSETS ARE IN BYTES C IOFF2 = IOFF IF(ITYPE .EQ. X) IOFF2 = IOFF2*2-1 DO 100 I = 1,ELCNT C C INTEGER PROCESSOR C IF(ITYPE .NE. INTGR) GOTO 70 CALL CITA(IBUFF(IOFF2),IMA(6) ) IOFF2 = IOFF2 + 1 IL = 6 GOTO 90 C C REAL PROCESSOR C 70 CONTINUE IF(ITYPE .NE. R) GOTO 80 CALL CRTA(IBUFF(IOFF2),IMA(6) ) IOFF2 = IOFF2 + 2 IL = 13 GOTO 90 C C ASCII PROCESSOR C 80 CONTINUE IL = LEN C C ACCOUNT FOR LONG ASCII ITEMS C 83 CONTINUE IF(IL .LE. 60) GOTO 85 CALL SMOVE(IBUFF,IOFF2,IOFF2+59,IMA,11) IOFF2 = IOFF2 + 60 CALL QRIO(2,ILP,IMA,36) IF(IFBRK(IDUM)) GOTO 130 IL = IL-60 CALL SFILL(IMA,1,72,40B) GOTO 83 C C ADJUST THE OFFSET C 85 CONTINUE CALL SMOVE(IBUFF,IOFF2,IOFF2+IL-1,IMA,11) IOFF2 = IOFF2 + IL C C PRINT THE ITEM VALUE C 90 CONTINUE CALL QRIO(2,ILP,IMA,-(IL + 12) ) IF(IFBRK(IDUM)) GOTO 130 CALL SFILL(IMA,1,72,40B) 100 CONTINUE LEN = LEN * ELCNT IF(ITYPE .EQ. X) LEN = LEN/2 IOFF = IOFF + LEN CALL QRIO(2,ILP,BLANK,1) 110 CONTINUE CALL QRIO(2,ILP,BLANK,1) IF(DDS(RCOUNT) ) GOTO 130 C C C LOAD AND EXECUTE SEGEMENT THAT GETS DATA RECORDS C SNAM(2) = 2H17 CALL LOAD(SNAM) C LOAD THE COMMAND INTERPETER SEGMENT C 130 CONTINUE SNAM(2) = 2H CALL LOAD(SNAM) C END $