FTN4 PROGRAM QY08(5,90),92069-16060 REV.2026 800312 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-18071 C RELOC: 92069-16060 C C ALTERED: JANUARY 22, 1980 FOR SORTED CHAINS FEATURE - CEJ C C************************************************************ C C C FORM SERVICE MODULE C C DISPLAYS DATA-SET AND C DATA-ITEM NAMES C LOGICAL ISPTH LOGICAL IFBRK INTEGER D INTEGER STYPE INTEGER SETBF(51) INTEGER IBUF(256) INTEGER INFO(17) INTEGER BLANK INTEGER SUBHD(38) INTEGER NUM(5) INTEGER ISTAT(10) INTEGER YES(2) INTEGER TITLE(21) INTEGER NOTE(15) INTEGER STITL(22) INTEGER ERR2(12) INTEGER ERR3(12) C 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 $$$$$$$$$$$$$$$$$$$$$ DATA D/104B/ DATA YES/2HYE,2HS / DATA BLANK/2H / C ITEM NAME ITEM TYPE ITEM LENGTH PATH ITEM # ARRAY ELE. WRT ACCESS DATA SUBHD/2H ,2H ,2HIT,2HEM,2H N,2HAM,2HE ,2H , & 2HTY,2HPE,2H ,2H L,2HEN,2HGT,2HH ,2H ,2HKE,2HY , & 2HIT,2HEM,2H ,2H S,2HOR,2HT ,2HIT,2HEM,2H ,2H #, & 2H E,2HLE,2HMT,2HS ,2H ,2HWR,2HT ,2HAC,2HCE,2HSS/ C * * * * IMAGE/1000 SCHEMA * * * * DATA TITLE/2H ,2H ,2H ,2H ,2H* ,2H* ,2H* ,2H* , & 2HIM,2HAG,2HE/,2H10,2H00,2H S,2HCH,2HEM,2HA ,2H* , & 2H* ,2H* ,2H* / C (USING XX AS THE LEVEL WORD) DATA NOTE/2H ,2H ,2H ,2H ,2H ,2H ,2H(U,2HSI, & 2HNG,2H L,2HEV, & 2HEL,2H X,2HX ,2H )/ C C DATA STITL/2H ,2HDA,2HTA,2H S,2HET,2H -,2H X,2HXX, & 2HXX,2HX,,2H ,2H C,2HAP,2HAC,2HIT,2HY ,2H= , & 2HXX,2HXX,2HXX,2HXX,2HXX/ C C C DATA ERR2/2H D,2HAT,2HA-,2HBA,2HSE,2H N,2HOT,2H D,2HEC, & 2HLA,2HRE,2HD / DATA ERR3/2H N,2HO ,2HAC,2HCE,2HSS,2H T,2HO ,2HDA,2HTA, & 2H S,2HET,2HS / C C IMAGE/1000 SCHEMA C C MAX SETS - 50 C MAX ITEMS - 255 C MAX NAMES - 6 CHARS C MAX LENGTH - 2048 C C C C C C C BEGIN C C BE SURE DATA BASE IS DECLARED C IF(DBNAM .EQ. 2H ) GOTO 100 C C SKIP TO TOP OF PAGE C CALL TOPAG(RMOTE,ILP,IERR) C C OUTPUT TITLE - "* * * * IMAGE/1000 SCHEMA * * * *" C " (USING XXXXXX AS THE LEVEL WORD) " C CALL QRIO(2,ILP,TITLE,21) CALL CITA(DBLEV,INFO) CALL SMOVE(INFO,5,6,NOTE,26) CALL QRIO(2,ILP,NOTE,15) CALL QRIO(2,ILP,BLANK,1) CALL QRIO(2,ILP,BLANK,1) C C GET ALL DATA SETS IN DATA BASE C CALL DBINF(DBNAM,IDMY,203,ISTAT,SETBF) IF(ISTAT .NE. 0) GOTO 90 IF(SETBF .LE. 0) GOTO 110 C C GET ALL THE ITEMS FOR EACH DATA SET C DO 70 ISET = 2,SETBF+1 ISNUM = IABS(SETBF(ISET) ) C C OUTPUT TITLE FOR DATA SET C CALL DBINF(DBNAM,ISNUM,202,ISTAT,INFO) IF(ISTAT .NE. 0) GOTO 90 C C GET SET NAME AND PUT IT IN THE MESSAGE C CALL SMOVE(INFO,1,6,STITL,14) C C GET SET TYPE AND PUT IT IN THE MESSAGE C CALL SGET(INFO,17,STYPE) CALL SPUT(STITL,21,STYPE) C C PUT CAPACITY IN MESSAGE C CALL DCITA(INFO(16),STITL(18)) CALL QRIO(2,ILP,BLANK,1) CALL QRIO(2,ILP,BLANK,1) CALL QRIO(2,ILP,STITL,22) CALL QRIO(2,ILP,BLANK,1) C C ITEM NAME TYPE LENGTH KEY ITEM SORT ITEM # ELEMTS WRT ACCESS C CALL QRIO(2,ILP,SUBHD,37) CALL QRIO(2,ILP,BLANK,1) C C GET ALL THE ITEMS ASSOCIATED WITH THIS SET C CALL DBINF(DBNAM,ISNUM,104,ISTAT,IBUF) IF(ISTAT .NE. 0) GOTO 90 IF(IBUF .LE. 0) GOTO 70 C C GET EACH ITEM IN SET C DO 80 ITM=2,IBUF+1 CALL SFILL(IB,1,80,40B) DINUM = IBUF(ITM) C C INDICATE WRITE ACCESS C IF(DINUM .GT. 0) GOTO 50 CALL SMOVE(YES,1,3,IB,69) DINUM= -DINUM C C GET ITEM CHARACTERISTICS C 50 CONTINUE CALL DBINF(DBNAM,DINUM,102,ISTAT,INFO) IF(ISTAT .NE. 0) GOTO 90 C C PUT NAME IN PRINT BUFFER C CALL SMOVE(INFO,1,6,IB,7) C C PUT ITEM TYPE IN PRINT BUFFER C CALL SGET(INFO,17,ITYPE) CALL SPUT(IB,19,ITYPE) C C PUT ITEM LENGTH IN PRINT BUFFER C CALL CITA(INFO(10),NUM) CALL SMOVE(NUM,3,6,IB,25) C C OUTPUT ELEMENT COUNT C CALL CITA(INFO(11),NUM) CALL SMOVE(NUM,4,6,IB,59) C C INDICATE WHETHER OR NOT A PATH ITEM C IF( .NOT. ISPTH(DBNAM,ISNUM,DINUM,ISTAT) ) GOTO 65 CALL SMOVE(YES,1,3,IB,35) C C OUTPUT SORT ITEM IF ANY C IF (STYPE .NE. D) GOTO 65 CALL GTSRT(DBNAM,ISNUM,DINUM,INFO) CALL SMOVE(INFO,1,6,IB,46) C C WRITE OUTPUT BUFFER C 65 CALL QRIO(2,ILP,IB,37) IF(IFBRK(IDMY)) GOTO 75 80 CONTINUE 70 CONTINUE 75 CONTINUE SNAM(2) = 2H 77 CALL LOAD(SNAM) C C DBMS ERROR C 90 CONTINUE SNAM(2) = 2H23 GOTO 77 C C DATA SET NOT DECLARED 100 CONTINUE CALL ERIO(2,ITTY,ERR2,12) GOTO 75 C C NO ACCESS TO DATA SETS C 110 CONTINUE CALL ERIO(2,ITTY,ERR3,12) GOTO 75 END $