FTN4,L
      PROGRAM TXPF2(3,89),91711-16102  REV 1926  791113 
C 
C     CHANGED 791113. MAKE CPU M,E,OR F CHECK, AND IF M 
C     THEN STOP WITH APPROPRIATE MESSAGE. 
C 
      DIMENSION IPARM(5)
C 
C*********************************************************************
C*
C*    SCIENTIFIC INSTRUCTION SET DIAGNOSTIC.
C*
C*    :RU,TXPF2,LGLU,#PASSES
C*
C*    WHERE     LGLU = LOGICAL UNIT FOR MESSAGES. 
C*           #PASSES = NUMBER OF TIMES TO RUN TEST. 
C*
C*********************************************************************
C 
C*    PICK UP RUN TIME PARAMETERS 
C 
      CALL RMPAR(IPARM) 
      LGLU = IPARM(1) 
      IF(LGLU.LE.0B) LGLU = LOGLU(IPARM(1)) 
      IPASS = IPARM(2)
      IF(IPASS.LE.0B) IPASS = 1 
C 
C*    INITIALISE ERROR COUNTER
C 
      IECNT = 0 
C 
C*********************************************************************
C 
C     THE FOLLOWING BLOCK OF LINES ADDED 791113 
C 
C     FIND OUT IF THE COMPUTER IS AN M OR AN E/F MACHINE
C 
      CALL MORFE(ICODE) 
      IF (ICODE.EQ.1) GOTO 5
      WRITE (LGLU,850)
      STOP 12 
  850 FORMAT(/"  TXPF2 - PROGRAM CAN ONLY RUN IN AN E OR F MACHINE"/) 
    5 CONTINUE
C 
C******************************************************************** 
C 
C*    FIND OUT IF HARDWARE FLOATING POINT IS PRESENT
C*    AND IF SCIENTIFIC INSTRUCTION SET IS PRESENT. 
C*    IF ONE OR OTHER ABSENT EXIT WITH SUITABLE ERROR MESSAGE.
C 
      CALL SISVF(SISREV)
      IF(SISREV.NE.0B) GOTO 10
      WRITE(LGLU,800) 
      STOP 10 
  10  CALL HFPVF(HFPREV)
      IF(HFPREV.NE.0B) GOTO 20
      WRITE(LGLU,810) 
      STOP 11 
C 
C*    OUTPUT TEST RUNNING MESSAGE.
C 
  20  WRITE(LGLU,820) 
C 
C*    RUN THE SCIENTIFIC INSTRUCTION SET TEST 
C 
      DO 30 J=1,IPASS 
      CALL RODTK(IECNT) 
  30  CONTINUE
C 
C*    CHECK FOR ERRORS AND PRINT MESSAGES, IF NECESSARY.
C 
      IF(IECNT.GT.0B) WRITE(LGLU,830) 
C 
C*    PRINT COMPLETION MESSAGE
C 
      WRITE(LGLU,840)IPASS,IECNT
C 
  800 FORMAT(/"  TXPF2 - SIS NOT INSTALLED AND TEST ABORTED!"/) 
  810 FORMAT(/"  TXPF2 - HFPP NOT INSTALLED AND TEST ABORTED!"/)
  820 FORMAT(/"  TXPF2 - SIS TEST RUNNING") 
  830 FORMAT(/"  TXPF2 - SIS TEST FAILURE") 
  840 FORMAT(/"  TXPF2 - SIS TEST FINISHED",I5," PASSES",I5," ERRORS")
C 
      END 
      END$
                                                                                                                                                                                                                                  