FTN4,L PROGRAM START C C------------------------------------------------------------- C C RELOC. 09580-16064 C SOURCE 09580-18064 C C M. KAESSNER 770504 REV.A C C HP 92425A TEST SYSTEM SOFTWARE IS THE PROPRIETARY C MATERIAL OF THE HEWLETT-PACKARD COMPANY. USE AND C DISCLOSURE THEREOF ARE RESTRICTED BY WRITTEN AGREEMENT. C C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. C ALL RIGHTS RESERVED. NO PART OF THIS PROGRAM C MAY BE PHOTOCOPIED, REPRODUCED OR TRANSLATED C TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR C WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY. C C------------------------------------------------------------- C C USES THE FOLLOWING SUBROUTINES: C DATE SCAN CLOSE C TIMEX RMPAR EXEC C TABS MESSS C ATACH OPEN C ASCII READF C INTV JDRTP C C C C THIS ROUTINE PROMPTS THE OPERATOR FOR THE DATE AND TIME TO C INITIALIZE THE RTE CLOCK. IT THEN OPENS THE WELCOM FILE AND LOOKS C FOR RECORDS BEGINNING WITH ':* #' . THE FOUR NUMBERS FOLLOWING C REPRESENT: (1) THE STATION NUMBER; (2) THE LU OF THE DEVICE; (3) C THE UNIT NUMBER; AND (4) THE DEVICE TYPE. THESE ARE THEN STORED C IN THE DRTXX WHICH IS IN THE MEMORY RESIDENT LIBRARY IN THE C FOLLOWING WAY: C POSITION WITHIN THE TABLE REPRESENTS THE LU C BITS 0-2 STATION NUMBER C BITS 3-6 UNIT# C BITS 7-15 DEVICE TYPE C C ALTHOUGH THE STATION NUMBER IS THE LOGICAL UNIT NUMBER OF C THE CRT, THE STATION NUMBER WITHIN THIS TABLE IS A RELATIVE NUMBER. C THE FIRST STATION ENCOUNTERED IS STATION 1, THE SECOND IS #2 C IRREGARDLESS OF ACTUAL LU. USE ROUINTES C ISN TO RETURN REAL STATION CRT LU C LUDV TO GET THE LU OF A PARTICULAR DEVICE C LU2ST IF YOU HAVE AN LU AND WANT IT'S STATION (CRT LU) C C C C C DIMENSION IDCB(150) DIMENSION NAME3(3), IPARM(5), NAME5(3) DIMENSION NAME4(3), IBUF(50), IDSEG(30), LU6SW(4) DIMENSION ITOKN(30), ISTR1(9), NAME6(3) DIMENSION NAME7(3), ICOMA(2), IHR(5), MIN(5), IYR(5) DIMENSION IDAYR(5), MON(5), MONDA(12), ISTAT(128) DIMENSION ISTNS(20) C DATA NAME4 / 2HWE, 2HLC, 2HOM / DATA ICOMA / 1, 2H, / DATA MONDA / 0, 31, 59 ,90, 120, 151, 181, 212, X 243, 273, 304, 334 / DATA ISTNS/0,0,-1,1,-1,2,-1,3,-1,4,-1,5,-1,6,-1,7/ C CALL RMPAR(IPARM) LUOP = IPARM(1) IF (LUOP .EQ. 0) LUOP = 1 C C GET TIME SET UP C WRITE (LUOP, 1003) 1003 FORMAT ("BY ENTERING DATE AS MO/DA/YR #_") READ (LUOP, 1002) (IBUF(J), J = 2,10) IBUF(1) = 8 NTOKN = 0 CALL SCAN (IBUF, MON, NTOKN, IQT) CALL SCAN (IBUF, ITOKN, NTOKN, IQT) CALL SCAN (IBUF, IDAYR, NTOKN, IQT) CALL SCAN (IBUF, ITOKN, NTOKN, IQT) CALL SCAN (IBUF, IYR, NTOKN, IQT) WRITE (LUOP, 1001) 1001 FORMAT ("AND ENTERING TIME AS HR:MM (24-HOUR CLOCK) #_") READ (LUOP, 1002) (IBUF(I), I=2,10) 1002 FORMAT (10A2) IBUF(1) = 5 NTOKN = 0 CALL SCAN (IBUF, IHR, NTOKN, IQT) CALL SCAN (IBUF, ITOKN, NTOKN, IQT) CALL SCAN (IBUF, MIN, NTOKN, IQT) IDCB(1) = 5 IDCB(2) = 2HTM IDCB(3) = 2H,1 IDCB(4) = 2H9 M = INTV(MON, IERR) IDAY = INTV (IDAYR) IXX = MONDA(M) + IDAY JYR = INTV (IYR, IERR) ILPYR = JYR - 4 * (JYR / 4) IF ((ILPYR .EQ. 0) .AND. (M .GT. 2)) IXX = IXX + 1 CALL ASCII (IDAYR, IXX) CALL ATACH (IDCB, IYR) CALL ATACH (IDCB, ICOMA) CALL ATACH (IDCB, IDAYR) CALL ATACH (IDCB, ICOMA) CALL ATACH (IDCB, IHR) CALL ATACH (IDCB, ICOMA) CALL ATACH (IDCB, MIN) I = MESSS (IDCB(2), IDCB(1)) IBUF(1) = 0 CALL DATE (IBUF) CALL TIMEX(ITOKN) CALL TABS (IBUF, 20) CALL ATACH (IBUF, ITOKN) WRITE (LUOP, 1004) (IBUF(J), J=2,18) 1004 FORMAT ("SYSTEM DATE AND TIME ARE ",20A2) C C C CLEAR DRTXX BEFORE STORING INTO IT C C 100 DO 150 J=1,63 CALL JDRTP(J,0) 150 CONTINUE C C C PROCESS WELCOM FILE C 200 CALL OPEN (IDCB, IERR, NAME4, 1) IF (IERR .LT. 0) GO TO 900 4001 CALL READF (IDCB, IERR, IBUF(2), 50, LEN) IF (LEN .LT. 0) GO TO 4099 IBUF(1) = 2 * LEN IF (IBUF(2) .NE. 2H:*) GO TO 4001 IF (LEN .LT. 2) GO TO 4001 IF (IBUF(3) .EQ. 2H #) GO TO 250 GO TO 4001 C C SCAN FOR C 250 NTOKN = 5 CALL SCAN (IBUF, ITOKN, NTOKN, IQT) ISTN = INTV(ITOKN, IERR) IF (IERR .NE. 0) GO TO 800 DO 300 I=1,15,2 IF (ISTN.EQ.ISTNS(I)) GOTO 350 IF (ISTNS(I)) 325,300 300 CONTINUE GOTO 800 C 325 ISTNS(I) = ISTN 350 ISTN = ISTNS(I+1) C CALL SCAN (IBUF, ITOKN, NTOKN, IQT) ILUN = INTV (ITOKN, IERR) IF (IERR .NE. 0) GO TO 800 CALL SCAN (IBUF, ITOKN, NTOKN, IQT) IDVNM = INTV (ITOKN, IERR) IF (IERR .NE. 0) GO TO 800 CALL SCAN (IBUF, ITOKN, NTOKN, IQT) IDVTP = INTV (ITOKN, IERR) IF (IERR .NE. 0) GO TO 800 C C MAKE ENTRY IN LU-TO-STATION TABLE C JJ = IDVTP * 128 + IDVNM * 8 + ISTN CALL JDRTP (ILUN, JJ) GO TO 4001 C 4099 CALL CLOSE(IDCB) GO TO 900 C C ERROR C 800 WRITE (LUOP, 8001) 8001 FORMAT ("*** CONVERSION ERROR IN SETTING DRTXX TABLE") WRITE (LUOP, 8002) (IBUF(J), J = 2, LEN+1) 8002 FORMAT (40A2) GO TO 4001 C C DONE C 900 CALL EXEC(6) END END$