SUBROUTINE LOGRE(IOUT,LOUT) C.. C.. THIS ROUTINE RESETS SX:[5,10]LOGGER.1ST FOR NORMAL LOGIN C.. PLUS FILLS IN VALUES TO SX:[5,10]LOGGER.LOG FOR LOGOUT C.. (ABC /AC/RE DONE IN STARTUP.CMD AFTER CRASH + BEFORE SET /LOGON) C.. C.. BOHDEN K. CMAYLO, SEP 82 C.. C.. LOGGER.1ST 16 WORD RECORD; 1=TT0, 2=TT1, ETC C.. C.. 1=UIC (GROUP) C.. 2=UIC (MEMBER) C.. 3=YR C.. 4=MO C.. 5=DA C.. 6-7=SECONDS SINCE MIDNIGHT C.. 8=FILES LOGGED IN C.. 9-10=BLOCKS USED C.. 11-12=BLOCKS ALLOCATED C.. 13-14=MAX BLOCKS (RETURNED FROM LOGIN) C.. 15-16=DEVICE (NO COLON) C.. DIMENSION INPUT(16),MUIC(2),MBLOCK(2,4),INDATE(5),LBLOCK(2,4) BYTE INFILE(24),INPUTB(32),NDEV(5) DOUBLE PRECISION XFILE(3) EQUIVALENCE (SECS,INPUT(6)),(INPUT,INPUTB) EQUIVALENCE (INFILE,XFILE) DATA XFILE/'SX:[5,10',']LOGGER.','1ST '/ C.. IF(INTT.LT.0.OR.INTT.GT.63) RETURN INFILE(20)=0 CALL ERRSET(29,.TRUE.,.FALSE.,.TRUE.,.FALSE.,100) OPEN(UNIT=IOUT,NAME=XFILE,ACCESS='DIRECT',FORM='UNFORMATTED', 1 MAXREC=64,RECORDSIZE=8,SHARED,TYPE='OLD',ERR=99) C.. C.. RECOVER STORED RESULTS C.. DO 40 IREC=1,64 INREC=IREC JREC=INREC READ(IOUT'INREC)INPUT C.. RESET TO RESTART C.. GET UIC MUIC(1)=INPUT(1) IF(INPUT(1).LE.0) GO TO 40 INPUT(1)=0 WRITE(IOUT'JREC)INPUT C..REST OF UIC MUIC(2)=INPUT(2) C..FILES AND STORAGE CALL WORDDO(MBLOCK(2,1),MBLOCK(2,4),INPUT(8)) MBLOCK(1,1)=0 C..DATE AND TIME CALL WORDDO(INDATE,INDATE(3),INPUT(3)) C.. DEVICE CALL BYTEDO(NDEV,NDEV(4),INPUTB(29)) NDEV(5)=':' C.. C.. GET LOGOUT BLOCKS C.. CALL BLOCKS(MUIC,LBLOCK,NDEV,0) LBLOCK(1,1)=0 CALL LOGGER(LOUT,MUIC,MBLOCK,LBLOCK,IREC-1,INDATE,SECS) 40 CONTINUE CLOSE(UNIT=IOUT) RETURN 99 TYPE 199,(XFILE(I),I=1,3) 199 FORMAT('0*** ERROR *** LOGRE *** BAD LOGGER FILE =',3A8) RETURN END