5 * Revision 1.1.1.1 1996/03/06 10:47:26 mclareni
9 #include "zebra/pilot.h"
12 ************************************************************************
14 * Write all directories which have been modified in memory
15 * Write current output buffer
16 * Update list of used/unused records in top-directory
18 * Called by <USER>,RZCDIR,RZCOPY,RZEND,RZFILE,RZMAKE
20 * Author : R.Brun DD/US/PD
24 ************************************************************************
25 #include "zebra/rzcl.inc"
26 #include "zebra/rzclun.inc"
27 #include "zebra/rzk.inc"
29 *-----------------------------------------------------------------------
31 #include "zebra/q_jbit.inc"
35 * Mark used records in BITMAP
37 IF(JBIT(IQ(KQSP+LTOP),2).NE.0)THEN
40 CALL RZDATE(IDTIME,IDATE,ITIME,2)
41 IQ(KQSP+LTOP+KDATEM)=IDTIME
44 LB = IQ(KQSP+LTOP+KLB)
45 LREK= IQ(KQSP+LTOP+LB+1)
51 IR1=IQ(KQSP+LUS+2*(I-1)+2)
52 IRL=IQ(KQSP+LUS+2*(I-1)+3)
56 CALL SBIT1(IQ(KQSP+LTOP+LB+2+IWORD),IBIT)
63 * Mark purged records in BITMAP
70 IR1=IQ(KQSP+LPU+2*(I-1)+2)
71 IRL=IQ(KQSP+LPU+2*(I-1)+3)
75 CALL SBIT0(IQ(KQSP+LTOP+LB+2+IWORD),IBIT)
82 * Write current buffer
86 IROUT=IQ(KQSP+LTOP+KIROUT)
88 CALL RZIODO(LUNC,LREK,IROUT,IQ(KQSP+LROUT+1),2)
89 IF(IQUEST(1).NE.0)GO TO 99
95 LDS =IQ(KQSP+LTOP+KLD)
96 NRD =IQ(KQSP+LTOP+LDS)
98 IF(LTOP.EQ.LCDIR)IQ(KQSP+LTOP+KDATEM)=IDTIME
100 CALL SBIT0(IQ(KQSP+LTOP),2)
102 IREC=IQ(KQSP+LTOP+LDS+J)
104 CALL RZIODO(LUNC,LREK,IREC,IQ(KQSP+LTOP+L),2)
105 IF(IQUEST(1).NE.0)THEN
106 CALL SBIT1(IQ(KQSP+LTOP),2)
111 * Write current directory if modified
113 IF(LCDIR.EQ.0.OR.LTOP.EQ.LCDIR)GO TO 99
114 IF(JBIT(IQ(KQSP+LCDIR),2).NE.0)THEN
115 LDS =IQ(KQSP+LCDIR+KLD)
116 NRD =IQ(KQSP+LCDIR+LDS)
118 IQ(KQSP+LCDIR+KDATEM)=IDTIME
120 CALL SBIT0(IQ(KQSP+LCDIR),2)
122 IREC=IQ(KQSP+LCDIR+LDS+J)
124 CALL RZIODO(LUNC,LREK,IREC,IQ(KQSP+LCDIR+L),2)
125 IF(IQUEST(1).NE.0)THEN
126 CALL SBIT1(IQ(KQSP+LCDIR),2)