Add README.md
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / haemkh.ft
1 C -+-+-+-+-+ \ e H A E M K H . F T -+-+-+-+-+
2 C
3 C HERE WE GENERATE THE HASH TABLE USED BY ESAM
4 C *OR 7-OCT-82
5 C
6 C
7 SUBROUTINE MKHASH
8 INCLUDE HAEBUF.FI
9 INCLUDE HAEHAS.FI
10 INCLUDE HAETTY.FI
11 C
12 INTEGER T,R,I,J,ALLCHS
13 C
14 INTEGER NCOND
15 EXTERNAL NCOND
16 \fC
17 ALLCHS=CHNLS+STRIGS @ TOTAL NUMBER OF CHANNELS TO SAMPLE
18 IF (PCKMAX*ALLCHS.GT.16*7) GOTO 50 @ TEST TO PREVENT SUBSCRIPT ERROR IN HASH TABLE
19 T=0
20 DO 20 R=1,PCKMAX
21 DO 20 I=1,ALLCHS
22 T=NCOND(MOD(R,PACK(I)),T,T+1)
23 20 HASH(I,R)=NCOND(MOD(R,PACK(I)),0,T)
24 C
25 DO 40 I=1,ALLCHS
26 DO 40 J=1,PCKMAX @ WE USE DECREMENTING COUNTER
27 R=PCKMAX+1-J @ SO WE COMPUTE THIS
28 T=NCOND(HASH(I,R),HASH(I,R),T)
29 40 HASH(I,R)=T
30 HSHSIG=HASH(ALLCHS,PCKMAX) @ DATA WORDS FOR PCKMAX SAMPLES OF ALL CHANNELS
31 C
32 HSHDON=.TRUE.
33 RETURN
34 C
35 50 WRITE (TTO,1)
36 HSHDON=.FALSE.
37 RETURN
38 1 FORMAT (' PRODUKT AUS KANALANZAHL (A/D+STRIG) UND ',
39 * 'MESSRATENVERHAELTNIS ZU GROSS')
40 END
41 \1a