]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.3 1996/04/24 17:26:33 mclareni | |
6 | * Extend the include file cleanup to dzebra, rz and tq, and also add | |
7 | * dependencies in some cases. | |
8 | * | |
9 | * Revision 1.2 1996/04/18 16:12:44 mclareni | |
10 | * Incorporate changes from J.Zoll for version 3.77 | |
11 | * | |
12 | * Revision 1.1.1.1 1996/03/06 10:47:20 mclareni | |
13 | * Zebra | |
14 | * | |
15 | * | |
16 | #include "zebra/pilot.h" | |
17 | SUBROUTINE MZTABC | |
18 | ||
19 | C- Construct table of banks with value IQTVAL in status bit IQTBIT | |
20 | C- | |
21 | C- LQMTC1 start adr of first bank | |
22 | C- LQMTC2 end+1 adr of last bank | |
23 | C- LQTC1 first table word available | |
24 | C- LQTC2 last table word available | |
25 | ||
26 | C- Return IQPART if table incomplete | |
27 | C- NQFRTC number of words occupied by the holes | |
28 | C- NQLIVE number of live banks | |
29 | ||
30 | #include "zebra/mzcn.inc" | |
31 | #include "zebra/mqsys.inc" | |
32 | #include "zebra/mzct.inc" | |
33 | C-------------- End CDE -------------- | |
34 | EQUIVALENCE (LS,IQLS), (LNX,IQNX) | |
35 | #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M)) | |
36 | DIMENSION NAMESR(2) | |
37 | DATA NAMESR / 4HMZTA, 4HBC / | |
38 | #endif | |
39 | #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M)) | |
40 | DATA NAMESR / 6HMZTABC / | |
41 | #endif | |
42 | #if !defined(CERNLIB_QTRHOLL) | |
43 | CHARACTER NAMESR*8 | |
44 | PARAMETER (NAMESR = 'MZTABC ') | |
45 | #endif | |
46 | ||
47 | #include "zebra/q_jbit.inc" | |
48 | #if !defined(CERNLIB_QDEBUG) | |
49 | #include "zebra/q_jbyt.inc" | |
50 | #endif | |
51 | ||
52 | ||
53 | #include "zebra/qtrace.inc" | |
54 | ||
55 | NQFRTC = 0 | |
56 | NQLIVE = 0 | |
57 | N = 0 | |
58 | ||
59 | LNX = LQMTC1 | |
60 | LQTE = LQTC1 | |
61 | NEW = IQTVAL | |
62 | ||
63 | LQ(LQTE) = LNX | |
64 | LQ(LQTE+2) = 0 | |
65 | ||
66 | C---- Next bank | |
67 | ||
68 | 21 MODE = NEW | |
69 | 22 LN = LNX | |
70 | IF (LN.GE.LQMTC2) GO TO 41 | |
71 | N = N + 1 | |
72 | #if defined(CERNLIB_QDEBUG) | |
73 | CALL MZCHLN (-7,LN) | |
74 | IF (IQFOUL.NE.0) GO TO 91 | |
75 | #endif | |
76 | #if !defined(CERNLIB_QDEBUG) | |
77 | NST = JBYT (LQ(KQS+LN),1,16) - 11 | |
78 | IF (NST.GE.0) THEN | |
79 | LS = LN + NST | |
80 | LNX = LS + IQ(KQS+LS-1) + 9 | |
81 | ELSE | |
82 | LS = LN - 8 | |
83 | LNX = LN + NST + 11 | |
84 | ENDIF | |
85 | #endif | |
86 | NEW = JBIT (IQ(KQS+LS),IQTBIT) | |
87 | IF (NEW.EQ.MODE) GO TO 22 | |
88 | IF (NEW.EQ.IQTVAL) GO TO 36 | |
89 | ||
90 | C-- Start of a dead group | |
91 | ||
92 | NQLIVE = NQLIVE + N - 1 | |
93 | LQ(LQTE+1) = LN | |
94 | LQ(LQTE+3) = 1 | |
95 | LQTE = LQTE + 4 | |
96 | GO TO 21 | |
97 | ||
98 | C-- Start of a live group | |
99 | ||
100 | 36 NQFRTC = NQFRTC + (LN - LQ(LQTE-3)) | |
101 | LQ(LQTE) = LN | |
102 | LQ(LQTE+2) = 0 | |
103 | N = 1 | |
104 | IF (LQTE.LT.LQTC2) GO TO 21 | |
105 | CALL MZTABH | |
106 | IF (IQPART.EQ.0) GO TO 21 | |
107 | IQPART = 1 | |
108 | LN = LQMTC2 | |
109 | ||
110 | C---- Close live end group | |
111 | ||
112 | 41 IF (NEW.NE.IQTVAL) GO TO 43 | |
113 | NQLIVE = NQLIVE + N | |
114 | LQ(LQTE+1) = LN | |
115 | LQ(LQTE+3) = 0 | |
116 | GO TO 45 | |
117 | ||
118 | C-- Close dead end group | |
119 | ||
120 | 43 NQFRTC = NQFRTC + (LN-LQ(LQTE-3)) | |
121 | LQ(LQTE) = LN | |
122 | LQ(LQTE+1) = LN | |
123 | LQ(LQTE+2) = 0 | |
124 | LQ(LQTE+3) = 0 | |
125 | ||
126 | 45 LQTE = LQTE + 4 | |
127 | #include "zebra/qtrace99.inc" | |
128 | RETURN | |
129 | ||
130 | C------ Error conditions | |
131 | ||
132 | 91 NQCASE = 1 | |
133 | NQFATA = 3 | |
134 | IQUEST(11) = LN | |
135 | IQUEST(12) = LQMTC1 | |
136 | IQUEST(13) = LQMTC2 | |
137 | #include "zebra/qtofatal.inc" | |
138 | END | |
139 | * ================================================== | |
140 | #include "zebra/qcardl.inc" |