5 * Revision 1.2 1996/04/18 16:10:38 mclareni
6 * Incorporate changes from J.Zoll for version 3.77
8 * Revision 1.1.1.1 1996/03/06 10:47:11 mclareni
12 #include "zebra/pilot.h"
13 #if defined(CERNLIB_FZALFA)
16 C- Read next physical record image in ALFA exchange mode
17 C- Service routine to FZIN, called only via FZIREC
19 C- Input : IFLAGI = 0 normal read
20 C- -1 recover to next steering block
22 C- N4SKII is used for rapid skip of fast blocks
24 C- Output : IFLAGI = 0 all is well
25 C- otherwise : ready for re-start
27 #include "zebra/zbcd.inc"
28 #include "zebra/zmach.inc"
29 #include "zebra/zstate.inc"
30 #include "zebra/zunit.inc"
31 #include "zebra/mqsys.inc"
32 #include "zebra/eqlqf.inc"
33 #include "zebra/fzci.inc"
35 C-------------- End CDE --------------
37 * Declaratives, DIMENSION etc.
38 #include "fzstamp.inc"
40 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
42 DATA NAMESR / 4HFZIP, 4HHA /
44 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
45 DATA NAMESR / 6HFZIPHA /
47 #if !defined(CERNLIB_QTRHOLL)
49 PARAMETER (NAMESR = 'FZIPHA ')
53 #include "zebra/qtrace.inc"
55 C---- Skip to next steering block
63 C---- Dedide skip of fast records
65 N4SKIP = MIN (N4SKII,N4RESI)
66 NFASTI = IQ(KQSP+LBPARI-5)
68 IF (N4SKIP.LT.MAXREI) GO TO 20
69 IF (NFASTI.EQ.0) GO TO 20
70 NRSKIP = MIN (NFASTI, N4SKIP / MAXREI)
73 IQ(KQSP+LBPARI-6) = NFASTI
76 C---- Read one physical record
78 31 NBLK = IQ(KQSP+LQFI+22) + 1
79 #if defined(CERNLIB_QDEBPRI)
81 + WRITE (IQLOG,9031) NBLK,NW4IN,NFASTI,NRSKIP
82 9031 FORMAT (1X/' FZIPHA- Reading Block',I7,
83 F', NW32,NRfast,NRskip=',4I6)
87 IF (IQUEST(1)) 841, 33, 818
88 33 JFASTR = IQUEST(92)
90 IQ(KQSP+LQFI+22) = NBLK
91 NWRDAI = NWRDAI + MAXREI
100 C-- Short/full dump of record read
102 #if defined(CERNLIB_QDEBPRI)
103 IF (LOGLVI.LT.3) GO TO 51
104 IF (JFASTR.NE.0) THEN
105 IF (NRSKIP.NE.0) GO TO 51
108 CALL FZIDUM (LQ(L4STAI),NW4IN)
111 C-----------------------------------------------------------
112 C---- Fast record expected
113 C-----------------------------------------------------------
115 51 IF (NFASTI.EQ.0) GO TO 61
116 IF (JFASTR.EQ.0) GO TO 54
118 IQ(KQSP+LBPARI-5) = NFASTI
119 IF (NRSKIP.EQ.0) GO TO 53
122 N4SKII = N4SKII - MAXREI
123 N4RESI = N4RESI - MAXREI
129 N4ENDI = MIN (N4RESI,MAXREI)
131 #include "zebra/qtrace99.inc"
134 C-- Unexpected steering record
136 54 CALL FZICHH (0, LQ(L4STAI),0)
137 IF (IQUEST(1).NE.0) GO TO 807
140 IQ(KQSP+LQFI+23) = IQ(KQSP+LQFI+23) + 1
143 C-----------------------------------------------------------
144 C---- Steering record expected
145 C-----------------------------------------------------------
147 61 IF (JFASTR.NE.0) GO TO 71
148 CALL FZICHH (0, LQ(L4STAI),IFLAGI)
149 IF (IQUEST(1).NE.0) GO TO 72
152 IF (IFLAGI.LT.0) GO TO 73
155 IF (N4ENDI.EQ.0) N4ENDI=MAXREI
157 62 IQ(KQSP+LQFI+23) = IQ(KQSP+LQFI+23) + 1
158 IF (JRECI.NE.0) JRECI = JRECI + 1
159 IQ(KQSP+LBPARI-7) = JRECI
160 IQ(KQSP+LBPARI-5) = NFSTI
164 C-- Recover to next steering record
166 71 IF (IFLAGI.EQ.-1) GO TO 20
169 72 IF (IQUEST(1).EQ.3) GO TO 802
170 IF (IFLAGI.EQ.-1) GO TO 20
173 C-- Recovery to this steering record
175 73 IF (NTLRI.EQ.0) GO TO 20
179 C-----------------------------------------------------------
181 C-----------------------------------------------------------
184 C- JERROR = 301 Block header faulty
188 C- JERROR = 302 Block size does not match expectation
195 C- JERROR = 303 Unexpected fast record
199 C- JERROR = 307 Unexpected and faulty steering block
203 C- JERROR = 308 Unexpected but valid steering block
206 IQUEST(15) = LQ(L4STAI+8)
207 IQUEST(16) = LQ(L4STAI+9)
211 IQ(KQSP+LBPARI-7) = 0
212 IQ(KQSP+LBPARI-6) = 0
213 IQ(KQSP+LBPARI-5) = NFSTI
214 IQ(KQSP+LBPARI-1) = N4ENDI
218 818 IQ(KQSP+LBPARI-1) = 0
219 819 IQ(KQSP+LBPARI-9)= -1
226 IQ(KQSP+LBPARI-7) = 0
227 IQ(KQSP+LBPARI-5) = 0
228 IQ(KQSP+LBPARI-1) = 0
231 * ==================================================
232 #include "zebra/qcardl.inc"