5 * Revision 1.1.1.1 1996/03/06 10:47:20 mclareni
9 #include "zebra/pilot.h"
12 C- Garbage collector - memory move
14 #include "zebra/zstate.inc"
15 #include "zebra/zunit.inc"
16 #include "zebra/mqsys.inc"
17 #include "zebra/mzct.inc"
18 C-------------- End CDE --------------
19 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
21 DATA NAMESR / 4HMZMO, 4HVE /
23 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
24 DATA NAMESR / 6HMZMOVE /
26 #if !defined(CERNLIB_QTRHOLL)
28 PARAMETER (NAMESR = 'MZMOVE ')
31 #include "zebra/q_jbit.inc"
34 #include "zebra/qtrace.inc"
36 C--------------- UPDATE DIVISION TABLES
37 #if defined(CERNLIB_QDEVZE)
38 IF (NQDEVZ.GE.11) WRITE (IQLOG,9821) LQMTA,LQMTE
39 9821 FORMAT (1X/' DEVZE MZMOVE, Update division tables, LQMTA/LQMTE='
48 IF (IACT.EQ.4) GO TO 26
49 IF (IACT.NE.3) GO TO 31
51 C---- Division with garbage collection
55 LT = LQ(LMT+5) + LQRTA
57 LQSTA(KQT+JDIV) = L + N
62 LT = LQ(LMT+6) + LQRTA - 4
64 LQEND(KQT+JDIV) = L + N
69 26 MODE = JBIT (IQMODE(KQT+JDIV),1)
70 IF (MODE.NE.0) GO TO 28
72 C-- Division mode forward
74 LQSTA(KQT+JDIV) = LQSTA(KQT+JDIV) + NSHF
77 C-- Division mode reverse
79 28 LQSTA(KQT+JDIV) = LQEND(KQT+JDIV) + NSHF
80 29 LQEND(KQT+JDIV) = LQSTA(KQT+JDIV)
83 C---- Inactive division
85 31 IF (NSHF.EQ.0) GO TO 37
86 LQSTA(KQT+JDIV) = LQSTA(KQT+JDIV) + NSHF
87 LQEND(KQT+JDIV) = LQEND(KQT+JDIV) + NSHF
89 #if defined(CERNLIB_QDEVZE)
91 +WRITE (IQLOG,9836) JDIV,LQSTA(KQT+JDIV),LQEND(KQT+JDIV)
92 9836 FORMAT (16X,'JDIV / LQSTA / LQEND =',I4,2I8)
95 IF (LMT.LT.LQMTE) GO TO 23
96 IF (NQNOOP.NE.0) GO TO 999
98 C--------------- MEMORY MOVE
99 #if defined(CERNLIB_QDEVZE)
100 IF (NQDEVZ.GE.11) WRITE (IQLOG,9861) LQTA,LQTE
101 9861 FORMAT (1X/' DEVZE MZMOVE, Execute memory move, LQTA/LQTE=',2I12)
103 IF (LQTE.LE.LQTA) GO TO 999
114 NW = LQ(LTF+1) - LOLD
115 IF (NW.EQ.0) GO TO 68
116 CALL UCOPY (LQ(KQS+LOLD),LQ(KQS+LNEW),NW)
117 #if defined(CERNLIB_QDEVZE)
118 IF (NQDEVZ.GE.11) WRITE (IQLOG,9865) LOLD, LNEW, NW
119 9865 FORMAT (16X,'Copy From / To / N=',3I8)
122 IF (LTF.NE.LQTE) GO TO 61
129 IF (LTFN.EQ.LQTE) GO TO 76
130 IF (LQ(LTFN+2).GT.0) GO TO 72
133 C-- Execute in reverse
137 NW = LQ(LTR+1) - LOLD
138 IF (NW.EQ.0) GO TO 88
139 LNEW = LOLD + LQ(LTR+2)
140 CALL UCOPY2 (LQ(KQS+LOLD),LQ(KQS+LNEW),NW)
141 #if defined(CERNLIB_QDEVZE)
142 IF (NQDEVZ.GE.11) WRITE (IQLOG,9887) LOLD, LNEW, NW
143 9887 FORMAT (16X,'Copy2 From / To / N=',3I8)
145 88 IF (LTR.NE.LTF) GO TO 81
147 IF (LTF.NE.LQTE) GO TO 61
148 #include "zebra/qtrace99.inc"
151 * ==================================================
152 #include "zebra/qcardl.inc"