Add README.md
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / haepri.ft
1 C -+-+-+-+-+ \ e H A E P R I . F T \ e -+-+-+-+-+
2 C
3 C PRINT THE CONTENTS OF THE DATA BUFFER
4 C
5 SUBROUTINE PRINTR
6 INCLUDE HABRK.FI
7 INCLUDE HAEPTI.FI
8 INCLUDE HAEBUF.FI
9 INCLUDE HAEGSA.FI
10 INCLUDE HAETTY.FI
11 C
12 \fC
13 LOGICAL BETW
14 INTEGER IATX
15 INTEGER TOASCI,ESAM
16 EXTERNAL TOASCI,ESAM
17 * ,BETW,IATX
18 INTEGER I,IEND,J,II,K,
19 * S0,S1, @ START/END OF OUTPUT
20 * Y(20),TMP, @ OUTPUT LINE BUFFER
21 * MINUTE,SECOND
22 * ,KANAL,OCT(2,20) @ NUMBER OF CHANNEL TO DUMP, OCTAL OUTPUT BUFFER
23 * ,ALLCHS @ HOLDS NUMBER OF A/D AND STRIG CHANNELS
24 REAL TEMP1
25 C
26 11 IF (SAMCNT.EQ.0) RETURN @ NOTHING TO PRINT, GO HOME
27 KANAL=CHANEL @ INSERT DEFAULT VALUE FOR CHANNEL NUMBER
28 ALLCHS=CHNLS+STRIGS @ NUMBER OF CHANNELS SAMPLED
29 IF (BETW(0,OPTION-1,ALLCHS)) KANAL=OPTION-1 @ PR0 ... PR7 SELECTS CHANNEL TO DUMP
30 IF (KANAL.GE.ALLCHS) GOTO 20
31 IF (OPTION.NE.12) CALL ASKHIM(2) @ LP* DOESN NOT ASK FOR START, END ...
32 IF (BREAK(11)) RETURN
33 SECOND=SAMCNT/SAMRAT @ COMPUTE THE LENGTH OF THIS SAMPLE IN SECONDS
34 MINUTE=SECOND/60 @ AND NOW IN MINUTES
35 SECOND=TOASCI(MOD(SECOND,60)) @ SECONDS ZERO FILLED
36 I=SAMRAT/PACK(CHANEL)
37 WRITE (3,1) LABEL,KANAL,MINUTE,SECOND,SAMCNT,I
38 S0=BEGIN*SAMRAT @ START OF OUTPUT
39 S1=ENDS*SAMRAT @ END OF THE OUTPUT LIST AT S1
40 TMP=CHANEL
41 CHANEL=KANAL @ INSERT NEW CHANNEL NUMBER FOR SOME TIME
42 DO 10 I=S0,S1,20
43 IEND=MIN0 (I+19,S1) @ 20 INTEGERS PER LINE
44 IF (BREAK(11)) GOTO 30 @ SW 11 ABORTS TASK
45 II=0
46 DO 15 J=I,IEND,1 @ FILL UP TEMP BUFFER FROM VIRTUAL STORAGE
47 II=II+1
48 15 Y(II)=ESAM(J)
49 TEMP1=FLOAT(I)/FLOAT(SAMRAT) @ COMPUTE THE TIME OF THE DATA
50 K=IEND-I+1 @ PRINT ONLY THOSE WORDS WHICH ARE FILLED
51 CXCX DO 17 J=1,K
52 CXCX17 CALL OCTAL (Y(J),OCT(1,J)) @ CONVERT TO OCTAL
53 CXCX IF (KANAL.LT.CHNLS) @ TEST FOR A/D CHANNEL SCANNING
54 WRITE (3,2) TEMP1,(Y(J),J=1,K) @ AND LIST THEM ONTO LPT
55 CXCX IF (KANAL.GE.CHNLS) @ HERE WE OUTPUT OCTAL NUMBERS
56 CXCX * WRITE (3,5) TEMP1,(OCT(2,J),J=1,K)
57 IF (I.GT.90 .AND. MOD(I-1,100).EQ.0) WRITE (3,3) @ ALLE 5 ZEILEN LEERZEILE DRUCKEN
58 10 CONTINUE
59 30 CHANEL=TMP @ RESTORE ORIGINAL SAMPLE CHANNEL
60 RETURN
61 C BAD CHANNEL NUMBER, PRINT ERROR MSG AND ASK AGAIN
62 20 WRITE (TTO,4) ALLCHS,KANAL
63 OPTION=0 @ PREVENT LOOPING
64 GOTO 11 @ AND ASK AGAIN
65 1 FORMAT (1H1,5X,10A6,/,' KANAL',I2,' IN',I4,':',A2,' MINUTEN',
66 * ,I7,' MESSWERTE BEI EINER MESSRATE VON',I4,' HZ'//)
67 2 FORMAT (F8.2,2(5X,5I5,3X,5I5))
68 3 FORMAT (1X)
69 4 FORMAT (' NUR',I3,' A/D UND STRIGG KANAELE VORHANDEN JEDOCH',
70 * ' KANAL',I5,' ANGEFORDERT.')
71 5 FORMAT (F8.2,2(3X,5(A6,1X),3X,5(A6,1X)/8X))
72 END
73 \1a