A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / haerdb.ft
CommitLineData
81e70d48
PH
1C -+-+-+-+-+ \ e H A E R D B . F T \ e -+-+-+-+-+\r
2C\r
3C OPENS THE INPUT UNIT 7, READS THE RECORD HEADER BLOCK OF EACH RECORD\r
4C AND SWITCHES ESAM TO UNIT 7 AND THE CORRECT OFFSET.\r
5C\r
6C * UP 12-OCT-82\r
7C * UP 23-JAN-83\r
8C\r
9 SUBROUTINE READB\r
10 INCLUDE HAEBUF.FI\r
11 INCLUDE HAEHAS.FI\r
12 INCLUDE HAEPTI.FI\r
13 INCLUDE HAETTY.FI\r
14 LOGICAL BETW\r
15 INTEGER TOASCI,NCOND\r
16 EXTERNAL BETW,TOASCI,NCOND\r
17\fC\r
18 INTEGER I,DTASET,MIN,SEK\r
19 REAL REV\r
20C\r
21 REV=REVSON @ SAVE HAE REVISON NUMBER\r
22 HSHDON=.FALSE. @ DESTROY HASH CODE TABLE USED BY ESAM\r
23C COMPUTE THE DATA SET TO BE READ NEXT AND STORE INTO NUM7\r
24 I=1 @ RD INCREMENT\r
25 IF (OPTION.EQ.11) I=-1 @ RD- DECREMENT\r
26 NUM7=MAX0(NUM7+I,1) @ INCR. OR DECR. AND MAKE VALID VALUE\r
27 IF BETW(2,OPTION,11) NUM7=OPTION-1 @ RD1 ... RD9\r
28 IF (OPTION.NE.0) GOTO 12 @ RD0...RD9, RD* \r
29 WRITE (TTO,4) NUM7 @ IF CALLED BY RD THEN ASK FOR\r
30 READ (TTI,5) I @ THE NEXT DATA SET TO READ\r
31 NUM7=NCOND(I,I,NUM7) @ INSERT THE DEFAULT VALUE NUM7\r
3212 CONTINUE\r
33 DTASET=NUM7 @ DTASET IS DECREMENTED FOR EACH RECORD READ\r
34C\r
35 IF (REC7.EQ.-1) DEFINE FILE 7(MAXREC,85,U,REC7) @ OPEN UNIT 7\r
36 UNIT=7 @ ESAM INPUT IS NOW FROM 7\r
37 REC7=1 @ AND READ THE FIRST RECORD, THE HEADER\r
38 GO TO 10\r
3915 REC7=LASREC+1 @ READ THE NEXT DATA SET\r
40 IF (REC7.LE.BLKCNT) GOTO 10 @ TEST IF WE REACHED THE END OF INFORMATION\r
41C END OF FILE REACHED, RETURN\r
42 DTASET=NUM7-DTASET @ COMPUTE NUMBER OF DATA SET'S IN THIS FILE\r
43 WRITE (TTO,1) REC7,BLKCNT,DTASET @ WRITE AN ERROR MSG\r
44 SAMCNT=0 @ NOTHING READ!\r
45 SETNUM=0 @ NO DATA IN BUFFER\r
46 RETURN\r
47C\r
48C READ THE HEADER BLOCK\r
49C\r
5010 READ (7'REC7) (RCRD0(I),I=1,85)\r
51 COMP=.FALSE. @ NEW DATA SET, NO COMPUTATIONS SO FAR\r
52 IF (REDVAL.EQ.6HDLWPD2) GOTO 20 @ TEST FOR EMPTY RECORD\r
53 SAMCNT=0 @ RECORD WAS EMPTY, MAKE IT REALLY EMPTY\r
54 DTASET=NUM7-DTASET @ COMPUTE NUMBER OF DATA RECORDS CONTAINED IN THIS FILE\r
55 WRITE (TTO,2) NUM7,DTASET @ RECORD EMPTY\r
56 RETURN\r
5720 CONTINUE @ RECORD WAS INSERTED\r
58 IF (INT(REV).NE.INT(REVSON)) GOTO 30 @ REVISON NUMBER INCOMPABILITY\r
59 DTASET=DTASET-1 @ DECREMENT THE DATA SET SEARCH COUNTER\r
60 IF (DTASET.GT.0) GOTO 15 @ IF THIS DATA SET IS NOT THAT ONE WANTED THEN WE READ THE NEXT ONE\r
61 DTASET=NUM7-DTASET @ COMPUTE THE SEQ. NUMBER OF THIS RECORD\r
62 SEK=SAMCNT/SAMRAT @ COMPUTE THE TIME OF THIS SAMPLE\r
63 MIN=SEK/60 @ TWO CHARACTER MINUTES\r
64 SEK=TOASCI(MOD(SEK,60)) @ TWO CHARACTERS SECONDS\r
65 WRITE (TTO,3) DTASET,MIN,SEK,(LABEL(I),I=1,LABCNT) @ WRITE THE ID OF THE RECORD WANTED\r
66 SETNUM=DTASET @ SAVE THE NUMBER OF THIS DATA SET\r
67 OFFSET=REC7 @ NUMBER OF THE BLOCK WHERE DATA WILL START ( OFFSET IN ESAM)\r
68 LAST7=LASREC @ LAST BLOCK OF THE DATA SET --> LAST7\r
69 RETURN\r
70C\r
7130 CONTINUE\r
72 WRITE (TTO,6) REVSON,REV\r
73 STOP\r
74C\r
751 FORMAT (' MIT BLOCK',I5,' ENDE DER DATEI 7',\r
76 * ' MIT',I5,' BLOECKEN UND ',I3,' DATENSAETZEN ERREICHT.')\r
772 FORMAT (I5,' NUR',I3,' DATENSAETZE IN FILE 7.')\r
783 FORMAT (' SATZ:',I3,I5,1H:,A2,3X,13A6)\r
794 FORMAT (' SATZNUMMER? (',I3,')? ',$)\r
805 FORMAT (I3)\r
816 FORMAT (' **** EINGABE DATEI 7 REV.:',F4.1,' - HAE REV.:',F4.1)\r
82 END\r
83\1a\0\0\0