PROGRAM TSHEET IMPLICIT INTEGER (A-Z) REAL GHR BYTE IN(80),DAT(9),IO,ODT(9),T(8),G(300) REAL PW CALL ERRSET(39,.TRUE.,.FALSE.,.TRUE.,.FALSE.,31) WRITE(5,2) 2 FORMAT('$PASSWORD: ') READ (5,3,END=9999,ERR=9999) PW 3 FORMAT(A4) IF (PW.NE.'JNC ') GOTO 4 OPEN (UNIT=1,NAME='DB:[211,10]TIME.CLK',READONLY,TYPE='OLD', * RECORDSIZE=133) SH=6 GOTO 5 4 IF (PW.NE.'MCW ') GOTO 8 OPEN (UNIT=1,NAME='DB:[211,2]TIME.CLK',READONLY,TYPE='OLD', * RECORDSIZE=133) SH=8 GOTO 5 8 IF (PW.NE.'LCL ') GOTO 9999 OPEN (UNIT=1,NAME='DB:[211,1]TIME.CLK',READONLY,TYPE='OLD', * RECORDSIZE=133) SH=5 5 DO 1 I=1,52 G(I)=' ' 1 CONTINUE IEF=0 ODT(1)=0 ODT(2)=0 GHR=0.0 THR=0 TMN=0 TSC=0 DHR=0 DMN=0 DSC=0 OHR=0 OMN=0 OSC=0 IFL=0 IF (PW.EQ.'JNC ')WRITE(5,66) IF (PW.EQ.'MCW ')WRITE(5,77) IF (PW.EQ.'LCL ')WRITE(5,88) 66 FORMAT(/,' DATE',7X,'TIME',6X * '6 7 8 9 10 11 12 13 14 15 16 17 18',/,24X, * '. . . . . . . . . . . . .') 77 FORMAT(/,' DATE',7X,'TIME',6X * '8 9 10 11 12 13 14 15 16 17 18 19 20',/,24X, * '. . . . . . . . . . . . .') 88 FORMAT(/,' DATE',7X,'TIME',6X * '5 6 7 8 9 10 11 12 13 14 15 16 17',/,24X, * '. . . . . . . . . . . . .') 10 READ(1,20,END=999) IO,HH,MM,SS,DAT 20 FORMAT(1X,A1,6X,I2,1X,I2,1X,I2,3X,9A1) IF (IFL.EQ.1) GOTO 25 DO 22 I=1,9 22 ODT(I)=DAT(I) IFL=1 25 IF (DAT(1).NE.ODT(1).OR.DAT(2).NE.ODT(2)) GOTO 100 26 IF (IO.EQ.'O') GOTO 50 GS=(HH-SH)*4+1+(MM+7)/15 OHR=HH OMN=MM OSC=SS GOTO 10 50 CONTINUE GF=(HH-SH)*4+(MM+7)/15 DO 55 I=GS,GF G(I)='*' 55 CONTINUE OSC=SS-OSC IF (OSC.GE.0) GOTO 60 OMN=OMN+1 OSC=OSC+60 60 OMN=MM-OMN IF (OMN.GE.0) GOTO 70 OHR=OHR+1 OMN=OMN+60 70 OHR=HH-OHR DHR=DHR+OHR DMN=DMN+OMN DSC=DSC+OSC IF (DSC.LE.59) GOTO 80 DSC=DSC-60 DMN=DMN+1 80 IF (DMN.LE.59) GOTO 90 DMN=DMN-60 DHR=DHR+1 90 CONTINUE GOTO 10 100 WRITE(5,110) ODT,DHR,DMN,DSC,(G(Z),Z=1,52) 110 FORMAT(' ',9A1,2X,I2,':',I2,':',I2,3X,'|',52A1,'|') DO 103 I=1,52 G(I)=' ' 103 CONTINUE THR=THR+DHR TMN=TMN+DMN TSC=TSC+DSC MMM=(ODT(1)-48)*10+ODT(2)-48 MMX=(DAT(1)-48)*10+DAT(2)-48 MMM=MMX-MMM DO 105 I=1,9 105 ODT(I)=DAT(I) DHR=0 DMN=0 DSC=0 IF (TSC.LE.59) GOTO 120 TSC=TSC-60 TMN=TMN+1 120 IF (TMN.LE.59) GOTO 125 THR=THR+1 TMN=TMN-60 125 IF ((MMM.EQ.1.OR.MMX.EQ.1).AND.IEF.EQ.0) GOTO 130 WRITE(5,140) THR,TMN,TSC GHR=GHR+THR+TMN/60.+TSC/3600. 127 WRITE(5,142) GHR 140 FORMAT(/,' TOTAL: ',I3,':',I2,':',I2,/) 142 FORMAT(' TOTAL HOURS:',F8.2,/) IF (PW.EQ.'JNC '.AND.IEF.EQ.0)WRITE(5,66) IF (PW.EQ.'MCW '.AND.IEF.EQ.0)WRITE(5,77) IF (PW.EQ.'LCL '.AND.IEF.EQ.0)WRITE(5,88) THR=0 TMN=0 TSC=0 130 IF (IEF.EQ.0) GOTO 26 9999 CALL EXIT 999 IF (IO.EQ.'I') GOTO 900 DO 990 I=1,9 990 ODT(I)=DAT(I) IEF=1 GOTO 100 900 CALL TIME(T) HH=(T(1)-48)*10+T(2)-48 MM=(T(4)-48)*10+T(5)-48 SS=(T(7)-48)*10+T(8)-48 IO='O' GOTO 26 END