FTN4,L
      SUBROUTINE C45HF(IUNIT,MODE,IPORT,ISPFN,ISARA), 
     +09580-16460 REV.2026 800130 
C 
C ------------------------------------------------------------
C THIS DEVICE SUBROUTINE SETS UP THE HP5355A
C AUTOMATIC FREQUENCY CONVERTER FUNCTIONS.
C 
C A CALL TO THIS DEVICE SUBROUTINE MUST BE PRECEEDED BY A CALL
C TO C45SU, TO SET UP THE ASSOCIATED HP 5345A ELECTRONIC COUNTER. 
C ------------------------------------------------------------
C 
C-------------------------------------------------------------
C 
C     RELOC. 09580-16460
C     SOURCE 09580-18460
C 
C     R.WRAY        800130  
C 
C     TEST SYSTEM SOURCE SOFTWARE IS THE PROPRIETARY
C     MATERIAL OF THE HEWLETT PACKARD COMPANY.
C 
C     (C) COPYRIGHT HEWLETT PACKARD COMPANY 1979. 
C     ALL RIGHTS RESERVED.  NO PART OF THIS PROGRAM 
C     MAY BE PHOTOCOPIED, REPRODUCED, OR TRANSLATED TO
C     ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR WRITTEN
C     CONSENT OF THE HEWLETT PACKARD COMPANY. 
C 
C-------------------------------------------------------------
C 
C     BRANCH AND MNEMONIC TABLES ENTRIES: 
C     ----------------------------------
C 
C       C45HF(I,I,I,I,I),       OV=XX,       ENT=C45HF,  FIL=%C45HF 
C 
C     CONFIGURATION TABLE DATA: 
C     ------------------------
C 
C     R  71,1,1 
C     U1
C         0  (TEMP STORAGE FOR HP 5355A INPUT PORT DATA)
C            (1 = 0.4 TO 1.6 GHZ  2 = 1.5 TO 26.5 GHZ)
C 
C---------------------------------------------------------------
C 
C ------------------------------------------------- 
C SET DIMENSIONS AND DATA FOR IERMS (ERROR MESSAGE) 
C ------------------------------------------------- 
C 
      DIMENSION IERMS(5)
      DATA IERMS/10,5,2HC4,2H5H,2HF / 
C 
C 
C ----------------------------------- 
C SET DEVICE TYPE NUMBER FOR HP 5355A 
C ----------------------------------- 
C 
      DATA IDTN/71/ 
C 
C 
C ----------
C ERROR CHECK 
C ----------- 
C 
      IERMS = 10
C 
C 
C ------------------
C GET STATION NUMBER
C ------------------
C 
      ISTN = ISN(DUMMY) 
C 
C 
C ------------------------
C GET LU NUMBER OF HP5355A
C ------------------------
C 
      LU1 = LUDV(ISTN,IDTN,IUNIT) 
C 
C 
C ----------------------------------------- 
C GET LU NUMBER OF HP-IB I/O INTERFACE CARD 
C ----------------------------------------- 
C 
      LU0 = IBLU0(LU1)
C 
C 
C ----------
C ERROR CHECK 
C ----------- 
C 
      IF(LU1.LE.0.OR.LU0.LE.0)GO TO 800 
C 
C 
C ----------------------------------- 
C CALL MAIN BODY OF DEVICE SUBROUTINE 
C ----------------------------------- 
C 
10    CALL X45HF(LU0,LU1,IERMS,IUNIT,MODE,IPORT,ISPFN,ISARA)
C 
C 
C ----------- 
C ERROR CHECK 
C ----------- 
C 
      IF(IERMS)800,20,800 
C 
20    RETURN
C 
C 
800   CALL ERROR(IERMS,IERMS(2))
      RETURN
      END 
C 
C 
      SUBROUTINE X45HF(LU0,LU1,IERMS,IUNIT,MODE,IPORT,ISPFN,ISARA), 
     +09580-16460 REV.2026 800130 
C 
C 
C ------------------------------------------------------
C CALL X45HF(LU0,LU1,IERMS,IUNIT,MODE,IPORT,ISPFN,ISARA)
C ------------------------------------------------------
C       WHERE:
C                   LU0   = LU NUMBER OF HP-IB I/O INTERFACE CARD 
C                   LU1   = LU NUMBER OF HP5355A AUTO FREQ CONVERTER
C 
C                   IERMS = 5-ELEMENT INTEGER ARRAY, IN WHICH 
C                           IERMS(1) = ERROR CODE:
C                           0 = NO ERROR
C                           1 = PARAMETER ERROR 
C 
C                       ERROR MESSAGES THAT PERTAIN TO THE HP-IB: 
C 
C                           9 = I/O CALL REJECTED 
C                          10 = LU NO. NOT ASSIGNED TO HP-IB DEVICE 
C                               OR TO STATION 
C                          11 = DMA INPUT REQUEST PREMATURELY 
C                               TERMINATED
C                          12 = I/O DEVICE TIME OUT 
C                          13 = IFC (INTERFACE CLEAR) DETECTED
C                               DURING I/O REQUEST
C                          14 = SRQ SERVICE ABORTED 
C                          15 = NON-EXISTENT ALARM PROGRAM
C                          16 = ILLEGAL CONTROL REQUEST 
C                          17 = EQT EXTENSION AREA FULL,NO NEW
C                               DEVICE MAY BE ADDED ON LINE 
C 
C                   IERMS(2) = CHARACTER COUNT OF MNEMONIC NAME 
C                   IERMS(3-5) = PACKED ASCII OF MNEMONIC NAME IF 
C                                 IERMS(1) > 0
C                   IUNIT = UNIT NUMBER OF HP5355A (MUST BE SAME
C                           AS UNIT NUMBER OF ASSOCIATED HP 5345A)
C 
C                   MODE  = CW/PULSE MEASUREMENT MODE 
C                           0 = CW (REF NOTE 2 BELOW) 
C                           1 = PULSE (REF NOTE 3 BELOW)
C 
C                   IPORT = LOW/HIGH FREQUENCY INPUT PORT 
C                           0 = LOW (.4 - 1.6 GHZ BNC CONNECTOR)
C                           1 = HIGH (1.5 - 26.5 GHZ 'RF HEAD INPUT') 
C 
C                   ISPFN = SPECIAL FUNCTION SELECT 
C                           0 = NORMAL CALIBRATION (PULSE MODE),
C                             = NORMAL FM TOLERANCE (CW MODE) 
C                           1 = CONTINUOUS CALIBRATION (PULSE MODE),
C                             = HIGH FM TOLERANCE (CW MODE) 
C 
C                   ISARA = SAMPLE RATE 
C                           0 = SELECTS HP5345A SAMPLE RATE 
C                           1 = HOLD (REF NOTE 4 BELOW) 
C 
C 
C     NOTE:  1. POWER-UP (PRESET) CONDITIONS ARE AS FOLLOWS:
C               A. SAMPLE RATE PRESET TO HP 5345A SAMPLE RATE.
C               B. IPORT PRESET TO 'RF HEAD INPUT' (1.5 - 26.5 GHZ).
C               C. MANUAL FREQUENCY MODE PRESET TO AUTO (MANUAL OFF). 
C               D. MODE PRESET TO CW. REF NOTE 2. 
C               E. OFFSET MODE PRESET TO NO (0) OFFSET. 
C               F. ISPFN PRESET TO NORMAL FM TOLERANCE (CW) AND 
C                  NORMAL CALIBRATION (PULSE).
C 
C            2. FOR CW MODE, THE HP5345A MUST BE PROGRAMMED 
C               FOR INTERNAL GATE MODE (IGATE = 1 IN CALL C45SU). 
C 
C            3. FOR PULSE MODE, THE HP5345A MUST BE PROGRAMMED
C               FOR EXTERNAL GATE MODE (IGATE = 2 IN CALL C45SU). 
C 
C 
C            4. THE HP5345A MUST BE PROGRAMMED FOR ANY PROGRAMMABLE 
C               SAMPLE RATE OTHER THAN 'HOLD'.
C 
C --------------------
C PROGRAMMING EXAMPLES
C --------------------
C 
C  1. IN THE FOLLOWING EXAMPLE, THE HP 5345A ELECTRONIC COUNTER 
C     UNIT 1 (IUNIT = 1) IS FIRST PROGRAMMED (LINE 10) FOR PLUG-IN
C     FUNCTION (IFUNC = 1), 100 MSEC COUNTER GATE TIME (IRGE = 7),  
C     AUTOMATIC DIGIT DISPLAY POSITION (IPOS = 11), MINIMUM SAMPLE
C     RATE (ISAM = 1), AND INTERNAL GATE MODE (IGATE = 1).
C 
C     NEXT, THE ASSOCIATED HP5355A AUTOMATIC FREQUENCY CONVERTER, 
C     UNIT NO. 1 (IUNIT = 1) IS PROGRAMMED FOR CW MEASUREMENT MODE
C     (MODE = 0), 'RF HEAD INPUT' (IPORT = 1), NORMAL FM TOLERANCE
C     (ISPFN = 0), AND WHATEVER SAMPLE RATE PROGRAMMED FOR THE
C     HP 5345A ELECTRONIC COUNTER (ISARA = 0).
C 
C     LINE 30 PROGRAMS THE HP5345A/5355A (IUNIT(HP 5345A) = 1)
C     TO INITIATE A MEASUREMENT AND WAIT FOR COMPLETION, THEN 
C     RETURN THE MEASUREMENT DATA (MODE = 0). DATA RETURNED IN
C     'D1' IS THE VALUE READ IN REAL REPRESENTATION (THE SIX MOST 
C     SIGNIFICANT DIGITS). 'D2' CONTAINS THE LEAST SIGNIFICANT
C     DIGITS IF THE MEASURED VALUE IS GREATER THAN SIX SIGNIFICANT
C     DIGITS. 
C 
C     10 CALL C45SU(1,1,7,11,1,1) 
C     20 CALL C45HF(1,0,1,0,0)
C     30 CALL C45RD(1,0,D1,D2)
C 
C 
C ----------------
C PROGRAM CODE SET
C ----------------
C 
C                  PROGRAM
C        FUNCTION   CODE
C        --------  -------
C 
C        MODE  =0   = CP1 
C              =1   = CP2 
C 
C        IPORT =0   = IS1 
C              =1   = IS2 
C 
C        ISPFN =0   = SF0 
C              =1   = SF1 
C 
C        ISARA =0   = HD0 
C               1   = HD1 
C 
C 
C ----------------
C DIMENSION ARRAYS
C ----------------
C 
      DIMENSION IDATA(6),KPORT(1),KSAMP(3),IERMS(5),IREG(2) 
      EQUIVALENCE(REG,IREG,IA),(IREG(2),IB) 
C 
C --------------------- 
C INITIALIZE ERROR CODE 
C --------------------- 
C 
      IERMS = 0 
C 
C ----------------
C CHECK PARAMETERS
C ----------------
C 
      IF(MODE.LT.0.OR.MODE.GT.1)GO TO 9100
      IF(IPORT.LT.0.OR.IPORT.GT.1)GO TO 9100
      IF(ISPFN.LT.0.OR.ISPFN.GT.1)GO TO 9100
      IF(ISARA.LT.0.OR.ISARA.GT.1)GO TO 9100
C 
C 
C --------------------------------------------------------
C SET DEVICE TYPES FOR USE IN SUBSEQUENT TIM CALLS
C --------------------------------------------------------
C 
      DATA IDT2/6/
      DATA IDTN/71/ 
C 
C 
C --------------------------------------------------------
C ENTER HP 5355A SAMPLE RATE DATA (KSAMP(3)) AND INPUT PORT 
C DATA (KPORT(1)) IN CONFIGURATION TABLES.
C --------------------------------------------------------
C 
      CALL TIM(IDT2,IUNIT,1,KSAMP,3,JER)
      IF(JER.NE.0) RETURN 
      IF(ISARA.EQ.0) KSAMP(3) = 1 
      IF(ISARA.EQ.1)KSAMP(3) = 2
      CALL TIM(IDT2,IUNIT,2,KSAMP,3,JER)
      IF(JER.NE.0) RETURN 
      CALL TIM(IDTN,IUNIT,1,KPORT,1,KER)
      IF(KER.NE.0) RETURN 
      IF(IPORT.EQ.0)KPORT(1) = 1
      IF(IPORT.EQ.1)KPORT(1) = 2
      CALL TIM(IDTN,IUNIT,2,KPORT,1,KER)
      IF(KER.NE.0) RETURN 
C 
C ------------------------
C PRESET HP5355A FUNCTIONS
C ------------------------
C 
C     IDATA(1) = 2HPR 
C 
C ----------------
C SET HP5355A MODE
C ----------------
C 
      IDATA(1)=2HCP 
      IF(MODE.EQ.0)IDATA(2) = 2H1I
      IF(MODE.EQ.1)IDATA(2) = 2H2I
C 
C ----------------------
C SET HP5355A INPUT PORT
C ----------------------
C 
      IF(IPORT.EQ.0)IDATA(3) = 2HS1 
      IF(IPORT.EQ.1)IDATA(3) = 2HS2 
C 
C ----------------------------- 
C SET HP5355A SPECIAL FUNCTIONS 
C ----------------------------- 
C 
      IDATA(4) = 2HSF 
      IF(ISPFN.EQ.0)IDATA(5) = 2H0H 
      IF(ISPFN.EQ.1)IDATA(5) = 2H1H 
C 
C 
C ------------------------
C SET HP 5355A SAMPLE RATE
C ------------------------
C 
      IF(ISARA.EQ.0)IDATA(6) = 2HD0 
      IF(ISARA.EQ.1)IDATA(6) = 2HD1 
C 
C ------------------------- 
C INITIALIZE REMOTE PROGRAM 
C ------------------------- 
C 
 100  CALL EXEC(100003B,1600B+LU0)
      GO TO 8000
 150  CALL ABREG(IA,IB) 
      IF(IB.LT.0)GO TO 990
  
C ----------------------------------------------
C PROGRAM HP 5355A AUTOMATIC FREQUENCY CONVERTER
C ----------------------------------------------
C 
 200  CALL REIO(100002B,LU1,IDATA,6,IDUMY,0)
      GO TO 8000
 300  CALL ABREG(IA,IB) 
      IF (IB.LT.0)GO TO 990 
C 
C ------------------------- 
C RETURN TO CALLING PROGRAM 
C ------------------------- 
C 
      RETURN
C 
C ------------
C ERROR RETURN
C ------------
C 
8000  IERMS = 9 
      GO TO 9900
9100  IERMS = 1 
      GO TO 9900
990   IERMS = IAND(IREG,377B) + 11
9900  IERMS(2) = 5
      IERMS(3) = 2HC4 
      IERMS(4) = 2H5H 
      IERMS(5) = 2HF
      RETURN
      END 
      END$
                                                                              