FTN4,B,L PROGRAM TXDS0(3,89),91711-16016 REV 1926 790427 DIMENSION IBUF(5),ITIM1(5),ITIM2(5),ITIM3(5),ITIM4(5) C C C********************************************* C* TXDS0 * C* PRIMARY SYSTEM DS/1000 TEST * C* RELOC.: 91711-16016 REV 1926 * C* SOURCE: 91711-18016 REV 1926 * C********************************************* C C C LGLU=LOG DEVICE LU, DEFAULT=1 IF SPECIFIED PARAMETER IS .LE. 0 C LU=TEST DEVICE LU, MUST BE LU# OF DS/1000 INTERFACE IN LOCAL CPU C IERR=NUMBER OF ERRORS THAT OCCURRED DURING TEST C C RETRIEVE RUN PARAMETERS C CALL RMPAR(IBUF) LGLU=IBUF IF(IBUF.LE.0)LGLU=LOGLU(LGLU) IF(IBUF(2).LE.0)GOTO 400 LU=IBUF(2) IERR=0 C C GET STATUS OF TEST DEVICE LU C CALL EXEC(13,LU,ISTA1,ISTA2,ISTA3) C C CHECK CHANNEL# IN STATUS WORD TWO, IF NON-ZERO THEN LU IS ENABLED C ICHAN=IAND(ISTA2,77B) IF(ICHAN.EQ.0)410,10 C C TEST DEVICE LU IS ENABLED C C INSURE THAT DEVICE TYPE IS 65 C 10 ITYPE=IAND(ISTA1,37400B) IF(ITYPE.EQ.32400B)15,420 C C CHECK SUBCHANNEL NUMBER IN STATUS WORD 3 C ODD S.C. MEANS CLOSED LOOP, EVEN S.C. MEANS OPEN LOOP. C 15 ISUB=IAND(ISTA3,1) C C CHECK IF COMMUNICATION LINK LU IS DOWN C 20 ISTAT=IAND(ISTA3,100000B) C C CHECK IF COMMUNICATION LINK EQT IS DOWN C 25 IEQT=IAND(ISTA1,140000B) IF((IEQT.EQ.0).AND.(ISTAT.EQ.0))30,440 C C CHECK IF NODE NUMBER OF REMOTE SYSTEM WAS SPECIFIED AT RUN TIME C 30 IF((IBUF(3).GT.0).AND.(IBUF(3).LE.32767))GOTO 70 IF(ISUB.EQ.0)GOTO 45 35 WRITE(LGLU,40)LU,LU 40 FORMAT(/" TXDS0 - LU#",I3,": BE SURE THAT THE REMOTE SYSTEM" 1" TO BE TESTED"/" HAS BEEN INITIALIZED AND IS" 2" CONNECTED TO THE HARDWIRE"/" INTERFACE CONFIGURED" 3" TO LU#",I3," IN THIS LOCAL SYSTEM.") GOTO 55 45 WRITE(LGLU,50)LU,LU 50 FORMAT(/" TXDS0 - LU#",I3,": BE SURE THAT THE REMOTE SYSTEM" 1" TO BE TESTED"/" HAS BEEN INITIALIZED AND IS" 2" CONNECTED TO THE MODEM"/" INTERFACE CONFIGURED" 3" TO LU#",I3," IN THIS LOCAL SYSTEM.") 55 WRITE(LGLU,60) LU 60 FORMAT(/" TXDS0 - LU#",I3,": ENTER A NODE NUMBER BETWEEN 1 AND" 1" 32767"/" FOR THE REMOTE SYSTEM TO BE TESTED OR TYPE" 2" /A TO ABORT"/" THIS TEST: _") C CALL EXEC(1,LGLU+400B,IBUF,3) IF(IBUF.EQ.2H/A) GOTO 500 CALL CODE(5) READ(IBUF,*)INODE IF((INODE.GT.0).AND.(INODE.LE.32767)) GOTO 75 WRITE(LGLU,65)LU,INODE 65 FORMAT(/" TXDS0 - LU#",I3,": ",I5," IS AN ILLEGAL NODE NUMBER.") GOTO 55 70 INODE=IBUF(3) C C BEGIN DS/1000 TEST C 75 WRITE(LGLU,80)LU,INODE 80 FORMAT(/" TXDS0 - LU#",I3,": DS/1000 TEST RUNNING ON NODE#" 1,I5) C C GET REMOTE SYSTEM TIME C 270 CALL DEXEC(INODE,11,ITIM1) C C PREVENT INVALID TEST DUE TO SECONDS CHANGING FROM 59 TO 0 C IF(ITIM1(2).GE.58) 270,280 C C GET LOCAL SYSTEM TIME C 280 CALL EXEC(11,ITIM3) C C PREVENT INVALID TEST DUE TO SECONDS CHANGING FROM 59 TO 0 C IF(ITIM3(2).GE.58) 270,290 C C CONVERT PORTION OF LOCAL TIME TO TENS OF MILLISECONDS C 290 MS3=(100*ITIM3(2))+ITIM3(1) C C COMPUTE LOCAL TIME NECESSARY TO INDICATE ELAPSE OF ON SECOND C MS3A=MS3+100 C C GET LOCAL SYSTEM TIME AGAIN C 300 CALL EXEC(11,ITIM4) C C CONVERT PORTION OF NEW LOCAL TIME TO TENS OF MILLISECONDS C MS4=(100*ITIM4(2)+ITIM4(1)) C C LOOP UNTIL ONE SECOND HAS ELAPSED C IF (MS4.LE.MS3A) 300,310 C C GET REMOTE SYSTEM TIME AGAIN C 310 CALL DEXEC(INODE,11,ITIM2) C C INSURE THAT REMOTE NODE SYSTEM TIME WAS INCREMENTED C IF(ITIM2(2).LE.ITIM1(2))450,85 C C COMPLETION MESSAGE C 85 WRITE(LGLU,90)LU,INODE,IERR 90 FORMAT(/" TXDS0 - LU#",I3,": DS/1000 TEST FINISHED ON NODE#" 1,I5," ",I1," ERRORS"/) GOTO 1000 C C ERROR MESSAGES C 400 WRITE(LGLU,405) 405 FORMAT(/" TXDS0 - LU# SPECIFIED FOR DS/1000 LINK IS" 1" ILLEGAL."/" RERUN TEST SPECIFYING AN INTEGER >0 AND" 2" <64 FOR LU#.") GOTO 500 C 410 WRITE(LGLU,415)LU 415 FORMAT(/" TXDS0 - LU#",I3,": NOT ASSIGNED, NOT TESTED!"/) GOTO 1000 C 420 WRITE(LGLU,425)LU 425 FORMAT(/" TXDS0 - LU#",I3," IS NOT ASSIGNED TO A DS/1000 LINK."/ 1" RERUN TEST SPECIFYING CORRECT LU#.") GOTO 500 C 440 WRITE(LGLU,445)LU 445 FORMAT(/" TXDS0 - LU#",I3,": EQT OR LU FOR DS/1000 LINK IS" 1" DOWN."/" UP EQT AND RERUN TEST.") GOTO 500 C 450 WRITE(LGLU,455)LU,INODE 455 FORMAT(/" TXDS0 - LU#",I3,", NODE#",I5,": TIME TEST FAILED!") IERR=IERR+1 GOTO 85 500 WRITE(LGLU,505)LU 505 FORMAT(/" TXDS0 - LU#",I3,": DS/1000 TEST ABORTED!"/) 1000 END END$