5 * Revision 1.2 1996/04/18 16:10:44 mclareni
6 * Incorporate changes from J.Zoll for version 3.77
8 * Revision 1.1.1.1 1996/03/06 10:47:15 mclareni
12 #include "zebra/pilot.h"
13 SUBROUTINE FZLOC (LUNP,MODEP)
15 C- Locate FZ control-bank for unit LUN
16 C- Unpack control information
18 C- MODE = -2 or +2 : connect as output unit
19 C- -1 or +1 : connect as input unit
20 C- 0 : no connection (for FZFILE, FZHOOK, FZLIMI, etc)
21 C- if > 0 : unit is required for the given I/O mode
22 C- if < 0 : wanting to 'end' the unit (for FZENDx)
23 C- if IQUEST(1) < 0 : connect only if active
24 C- (loop for all units)
25 C- = 0 : connect if possible
26 C- (for the particular unit)
28 #include "zebra/zstate.inc"
29 #include "zebra/mqsys.inc"
30 #include "zebra/eqlqf.inc"
31 #include "zebra/fzcf.inc"
32 #include "zebra/fzci.inc"
33 #include "zebra/fzcx.inc"
34 C-------------- End CDE --------------
35 DIMENSION LUNP(9), MODEP(9)
37 EQUIVALENCE (PILX(1),IPILX(1))
38 #if defined(CERNLIB_QMVDS)
41 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
43 DATA NAMESR / 4HFZLO, 4HC /
45 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
46 DATA NAMESR / 6HFZLOC /
48 #if !defined(CERNLIB_QTRHOLL)
50 PARAMETER (NAMESR = 'FZLOC ')
52 DATA CHDATA / 12345.0 /
54 #include "zebra/q_jbit.inc"
55 #include "zebra/q_jbyt.inc"
63 14 IF (LQFF.NE.0) THEN
64 IF (IQ(KQSP+LQFF-5).EQ.LUN) GO TO 21
70 IF (MODE.GT.0) GO TO 94
74 C-- Bank for LUN found
76 21 MSTATF = IQ(KQSP+LQFF)
77 MEDIUF = JBYT (MSTATF,1,3)
78 IFIFOF = JBYT (MSTATF,4,3)
79 IDAFOF = JBIT (MSTATF,7)
80 IACMOF = JBYT (MSTATF,8,3)
81 IUPAKF = JBIT (MSTATF,16)
82 IADOPF = IQ(KQSP+LQFF+1)
83 IACTVF = IQ(KQSP+LQFF+2)
84 INCBPF = IQ(KQSP+LQFF+3)
85 LOGLVF = IQ(KQSP+LQFF+4)
86 MAXREF = IQ(KQSP+LQFF+5)
88 IF (MODA-1) 79, 31, 51
90 C-- Connect as input unit
92 31 IF (IACTVF.LT.1) GO TO 34
93 IF (IACTVF.GE.8) GO TO 34
109 C-- connection required
110 34 IF (MODE.LT.0) GO TO 36
111 IF (JBIT(MSTATF,11).EQ.0) GO TO 93
112 IF (IACTVF.EQ.0) GO TO 37
113 IF (IACTVF.EQ.8) GO TO 37
114 IF (IACTVF.NE.18) GO TO 92
118 C-- connect if possible
119 36 IF (MODS.LT.0) GO TO 79
120 IF (JBIT(MSTATF,11).EQ.0) GO TO 79
121 IF (IACTVF.EQ.0) GO TO 37
122 IF (IACTVF.EQ.8) GO TO 37
123 IF (IACTVF.NE.18) GO TO 79
125 C-- clear buffer parameters
126 37 IF (IFIFOF.EQ.0) GO TO 32
127 CALL VZERO (IQ(KQSP+LQFF+40),INCBPF-40)
131 C-- Connect as output unit
133 51 IF (IACTVF.LT.11) GO TO 54
134 IF (IACTVF.EQ.18) GO TO 54
150 C-- connection required
151 54 IF (MODE.LT.0) GO TO 56
152 IF (JBIT(MSTATF,12).EQ.0) GO TO 93
153 IF (IACTVF.EQ.10) GO TO 57
154 IF (IACTVF.NE.0) GO TO 91
157 C-- connect if possible
158 56 IF (MODS.LT.0) GO TO 79
159 IF (JBIT(MSTATF,12).EQ.0) GO TO 79
160 IF (IACTVF.EQ.10) GO TO 57
161 IF (IACTVF.NE.0) GO TO 79
163 C-- clear buffer parameters
164 57 IF (IFIFOF.NE.0) CALL VZERO (IQ(KQSP+LQFF+40),INCBPF-40)
166 IPILX(2) = 10000.0 * QVERSN + .2
173 C-------------------------------------------------
175 C-------------------------------------------------
177 C-- Write after read without FZEND
181 C-- Read after write without REWIND
183 92 NQCASE = NQCASE + 2
192 IQUEST(13) = JBYT (MSTATF,11,2)
201 #include "zebra/qtrace.inc"
202 #include "zebra/qtofatal.inc"
204 * ==================================================
205 #include "zebra/qcardl.inc"