FTN4,L
      SUBROUTINE DCV(UNIT,VOLT,CURLIM),09580-16040 REV.2001 
     +791023
C-------------------------------------------------------------------
C 
C      RELOC.       09580-16040 
C      SOURCE       09580-18040 
C 
C      C. LEATH     03/15/77    REV. A
C      BOB RICHARDS 791023
C 
C      HP 92425B 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 1979.
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 
C        THIS SUBROUTINE SETS THE DVS TO THE HIGH OR LOW VOLTAGE
C        RANGE DEPENDING ON THE DESIRED VOLTAGE.  THE LOW RANGE 
C        IS SELECTED IF ABS(VOLT) <= 16.3835 VDC AND THE HIGH 
C        RANGE IS SELECTED IF ABS(VOLT) > 16.3835 VDC.
C 
C         THE CALL IS MADE AS FOLLOWS:
C 
C                      CALL DCV(IUNIT,VOLT,CURLIM)
C 
C                 IUNIT IS THE UNIT NUMBER (MUST BE BETWEEN 1 AND 8)
C                 VOLT IS DESIRED VOLTAGE 
C                 CURLIM IS THE CURRENT LIMIT 
C 
C         IERR = 0 = NO ERRORS
C         IERR = 2 = CALLED UNIT IS NOT A DVS.
C 
C 
C*********************************************************************
      INTEGER UNIT, IBUF(2) 
      DIMENSION IERMS(5)
      DATA IERMS/10,5,2HDC,2HV ,2H  / 
C*********************************************************************
C        RETRIEVE IBUF, FROM THE CONFIGURATION TABLE, WHICH 
C        CONTAINS:
C                    IBUF(1)= TYPE OF PWR SUPPLY (6128,6129,ETC.) 
C                    IBUF(2)= PRESENT CURRENT LIMIT 
C*********************************************************************
      CALL TIM(22,UNIT,1,IBUF,2,N)
C*********************************************************************
C        USE LOW RANGE FOR 6128 AND 6933
C******************************************************************** 
      IF(IBUF(1).EQ.6128.OR.IBUF(1).EQ.6933) GO TO 50 
C******************************************************************** 
C     SEE IF CALLED UNIT IS REALLY A DVS. 
C******************************************************************** 
      IF(IBUF(1) .EQ. 6140) GOTO 9000 
C******************************************************************** 
C        DETERMINE APPROPRIATE RANGE DEPENDING ON WHETHER 
C        VOLT IS > OR <= TO 16.383502, THEN CALL EITHER 
C        DCVSH FOR THE HIGH RANGE OR DCVSL FOR THE LOW RANGE. 
C*********************************************************************
      IF(ABS(VOLT).LE.16.383502) GO TO 50 
      CALL DCVSH(UNIT,VOLT,CURLIM)
      RETURN
 50   CALL DCVSL(UNIT,VOLT,CURLIM)
      RETURN
C 
C     ERROR - CALLED UNIT IS NOT A DVS. 
C 
9000  CALL ERROR(IERMS,IERMS(2))
      RETURN
      END 
      SUBROUTINE DCI(UNIT,CURR,VOLLIM),09580-16040 REV.2001 
     +791023
C*********************************************************************
C 
C        THIS SUBROUTINE SETS THE DCS TO THE HIGH OR LOW CURRENT
C        RANGE DEPENDING ON THE DESIRED CURRENT.  THE LOW RANGE 
C        IS SELECTED IF ABS(CURR) <= 16.3835 MA AND THE HIGH
C        RANGE IS SELECTED IF ABS(CURR) > 16.3835 MA. 
C 
C         THE CALL IS MADE AS FOLLOWS:
C 
C                      CALL DCI(IUNIT,CURR,VOLLIM)
C 
C                 IUNIT IS THE UNIT NUMBER (MUST BE BETWEEN 1 AND 8)
C                 CURR IS DESIRED CURRENT 
C                 VOLLIM IS THE VOLTAGE LIMIT 
C 
C*********************************************************************
      INTEGER UNIT, IBUF(2) 
      DIMENSION IERMS(5)
      DATA IERMS/10,5,2HDC,2HI ,2H  / 
C*********************************************************************
C        RETRIEVE IBUF, FROM THE CONFIGURATION TABLE, WHICH 
C        CONTAINS:
C                    IBUF(1)= TYPE OF PWR SUPPLY (6140) 
C                    IBUF(2)= PRESENT VOLTAGE LIMIT 
C 
C      IERR = 0 = NO ERRORS 
C      IERR = 2 = CALLED UNIT IS NOT A 6140 DCS 
C 
C*********************************************************************
      CALL TIM(22,UNIT,1,IBUF,2,N)
C*********************************************************************
C     SEE IF CALLED UNIT IS A 6140 DCS
C******************************************************************** 
      IF(IBUF(1) .NE. 6140) GOTO 9000 
C******************************************************************** 
C        DETERMINE APPROPRIATE RANGE DEPENDING ON WHETHER 
C        CURR IS > OR <= TO 16.383502, THEN CALL EITHER 
C        DCISH FOR THE HIGH RANGE OR DCISL FOR THE LOW RANGE. 
C*********************************************************************
      IF(ABS(CURR).LE.16.383502) GO TO 50 
      CALL DCISH(UNIT,CURR,VOLLIM)
      RETURN
 50   CALL DCISL(UNIT,CURR,VOLLIM)
      RETURN
C 
C     ERROR - CALLED UNIT IS NOT A DCS
C 
9000  CALL ERROR(IERMS,IERMS(2))
      RETURN
      END 
      END$
                                                                                                                                              