FTN4,L SUBROUTINE TSASU(IUN,INPZ,IREF,IRANG,IBNDW,OFSET,IDSM),09580-16323 + REV.2013 800131 C C C THIS DEVICE SUBROUTINE IS USED TO PROGRAM THE HP-3571A. C C C------------------------------------------------------------------- C C RELOC. 09580-16323 C SOURCE 09580-18323 C C TOSH KONDO REV. A C BOB RICHARDS 2-20-79 REV. B C BOB RICHARDS 790502 C BOB RICHARDS 800109 C BOB RICHARDS 800128 C BOB RICHARDS 800131 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 1980. 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 DIMENSION IERMS(5) DATA IERMS/10,5,2HTS,2HAS,2HU / DATA IDTN /60/ C ISTN=ISN(DUMMY) C C C GET LU OF HP3571A C LU1 = LUDV(ISTN,IDTN,IUN) LU0 = IBLU0(LU1) IF(LU1 .LE. 0 .OR. LU0 .LE. 0) GOTO 800 CALL XSASU(LU0,LU1,IERMS,INPZ,IREF,IRANG,IBNDW,OFSET,IDSM) IF(IERMS .NE. 0) GOTO 800 20 RETURN C 800 CALL ERROR(IERMS,IERMS(2)) RETURN END C C BRANCH AND MNEMONIC TABLE ENTRIES: C C TSASU(I,I,I,I,I,R,I) OV=XX, ENT=TSASU, FIL=%TSASU C TSAMU(I,I,RV) OV=XX, ENT=TSAMU, FIL=%TSASU C SUBROUTINE XSASU(LU0,LU1,IERR,INPZ,IREF,IRANG,IBNDW,OFSET,IDSM),09 +580-16323 REV.2013 800131 C C-------------------------------------------------------------------- C THIS DEVICE SUBROUTINE SETS UP THE HP3571A TRACKING SPECTRUM C ANALYZER. C C CALL TSASU(IUNIT,INPZ,IREF,IRANG,IBNDW,OFSET,IDSM) C C WHERE: C IUNIT = UNIT NUMBER C INPZ = INPUT IMPEDANCE C 1 = 50 OHMS C 2 = 75 OHMS C 3 = 1 MEGOHM ,30 PF C C IREF = DISPLAY REFERENCE C 1 = DBM C 2 = DBV C 3 = DB SET RELATIVE (00.00DB) C 4 = DB RELATIVE C C IRANG = INPUT RANGE C -60 = -60 DBV C -50 = -50 DBV C -40 = -40 DBV C -30 = -30 DBV C -20 = -20 DBV C -10 = -10 DBV C 0 = 0 DBV C 10 =+10 DBV C C IBNDW = BANDWIDTH C 3 = 3 HZ C 10 = 10 HZ C 30 = 30 HZ C 100 =100 HZ C 300 =300 HZ C 1000 =1000 HZ C 3000 =3000 HZ C 10000 =10000 HZ C C OFSET = NUMERIC OFFSET C (-199.99DB TO +199.99DB) C C IDSM = DISPLAY SMOOTHING C 0= OFF C 1= ON C C ERROR PARAMETER: C 0 = NO ERROR C 1 = PARAMETER ERROR C 3 = OVERLOAD ERROR (TSAMU) C 4 = BAD DATA FROM 3571A (TSAMU) C C ERROR MESSAGE WHICH PERTAIN TO HPIB C 9 = I/O CALL REJECTED C 10 = LU NOT ASSIGNED TO HPIB DEVICE OR C TO STATION. C 11 = DMA INPUT REQUEST PREMATURELY TERMINATED C 12 = I/O DEVICE TIME-OUT C 13 = IFC (INTERFACE CLEAR) DETECTED DURING I O C 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 DEVICE MAY BE C ADDED ON LINE C C----------------------------------------------------------------------- C C DIMENSION IRFLD(8),IBWFD(8),IOFSC(5),IDIGT(5) DIMENSION IOBUF(14),IREG(2),IERR(5) EQUIVALENCE (REG,IREG,IA),(IREG(2),IB) C C DATA IRFLD/-60,-50,-40,-30,-20,-10,0,10/ DATA IBWFD/3,10,30,100,300,1000,3000,10000/ DATA IOFSC/10000,1000,100,10,1/ C C C HPIB PROGRAMMING CODES: C C DISPLAY REF: INPUT IMPEDANCE: C RELATIVE R2 1 MEG,30PF Z2 C DBV R1 75 OHMS Z1 C DBM R0 50 OHMS Z0 C C BANDWIDTH: INPUT RANGE: C 10 KHZ B7 + 10 DBV V7 C 3 KHZ B6 0 DBV V6 C 1 KHZ B5 -10 DBV V5 C 300 HZ B4 -20 DBV V4 C 100 HZ B3 -30 DBV V3 C 30 HZ B2 -40 DBV V2 C 10 HZ B1 -50 DBV V1 C 3 HZ B0 -60 DBV V0 C C ENTER OFFSET: P C OFFSET PREFACE: O C DISPLAY SMOOTHING: C ON S1 C OFF S0 C C--------------------------------------------------------- C C DATA IREL,IVRG,IBWD,INPR/2HR ,2HV ,2HB ,2HZ / DATA OFMAX/199.99/ C IERR=1 C C INPUT IMPEDANCE C IF(INPZ .LT. 1 .OR. INPZ.GT. 3) GOTO 9900 IOBUF(1) = INPR +20B +(INPZ-1) C C DISPLAY REFERENCE C IF(IREF .LT. 1 .OR. IREF .GT. 4) GOTO 9900 JREF =IREF - 1 IF(JREF .GT. 2 ) JREF = 2 IOBUF(2) = IREL +20B +JREF C C INPUT RANGE C IRCOD = 0 DO 10, I=1,8 IF(IRANG .EQ. IRFLD(I)) GOTO 20 10 IRCOD = IRCOD + 1 IF(IRCOD .GT. 7) GOTO 9900 20 IOBUF(3) = IVRG + 20B +IRCOD C C BANDWIDTH C IBCOD=0 DO 30, I=1,8 IF (IBNDW .EQ. IBWFD(I)) GOTO 40 30 IBCOD = IBCOD + 1 IF(IBCOD .GT. 7) GOTO 9900 40 IOBUF(4) = IBWD + 20B +IBCOD C IF(IREF .EQ. 3 .AND. OFSET .NE. 0.0) GOTO 9900 IF(IDSM .LT. 0 .OR. IDSM .GT. 1) GOTO 9900 INX = 5 IF(IREF .LT. 3) GOTO 100 C C SET CURRENT DBV READING TO RELATIVE READING (00.00 DB) C IF(IREF .EQ. 3) GOTO 110 C C SET UP FOR NUMERIC OFFSET ENTRY (-199.99DB TO 199.99 DB) C IF(ABS(OFSET) .GT. OFMAX) GOTO 9900 IOFF = IFIX(OFSET*100.) ITRY = IOFF C C IF OFFSET IS NEGATIVE ................. C IF(IOFF .LT. 0) ITRY = -ITRY C C CONVERT NUMERIC VALUE TO DIGITS............... C DO 60, I=1,5 KNX = 0 IDIGT(I) = 0 50 CONTINUE IF((ITRY-IOFSC(I)) .LT. 0) GOTO 60 KNX = KNX + 1 ITRY = ITRY - IOFSC(I) GOTO 50 C 60 IDIGT(I) = KNX C C FIND MOST SIGNIFICANT DIGIT.................... C JNX =1 70 IF(IDIGT(JNX) .NE. 0) GOTO 80 JNX = JNX + 1 IF(JNX .LE. 5) GOTO 70 80 CONTINUE C C IF OFFSET VALUE IS NEGATIVE, INSERT POLARITY SIGN........... C IF(IOFF .LT. 0) IOBUF(JNX)=47455B IF(IOFF .LT. 0) GOTO 90 C C INSERT OFFSET DIGITS TO OUTPUT BUFFER...................... C IOBUF(INX) = 47460B + IDIGT(JNX) 90 INX= INX + 1 JNX = JNX + 1 IF(JNX .GT. 5) GOTO 100 C C ODD DIGITS C IOBUF(INX) = (IDIGT(JNX) +60B) *256 JNX =JNX + 1 IF(JNX .GT. 5) GOTO 120 C C EVEN DIGITS C IOBUF(INX) = IOBUF(INX) + 60B + IDIGT(JNX) GOTO 90 C C DISPLAY SMOOTHING C 100 IOBUF(INX) = 51460B IF(IDSM .EQ. 1) IOBUF(INX) = 51461B GOTO 200 C C ENTER OFFSET (00.00DB) ASCII 'P' C 110 IOBUF(INX) = 50000B 120 IOBUF(INX) =IOBUF(INX) + 123B IOBUF(INX+1) = (60B + IDSM) *256 INX = -(INX*2+1) C C REMOTE ENABLED.................... C 200 CONTINUE CALL EXEC(100003B,1600B+LU0) GOTO 9100 210 CALL ABREG(IA,IB) IF(IB .LT. 0) GOTO 8500 C C OUTPUT BUFFER................... C CALL REIO(100002B,LU1,IOBUF,INX,IDUMY,0) GOTO 9100 220 CALL ABREG(IA,IB) IF(IB .LT. 0) GOTO 8500 C C RETURN................. C IERR = 0 RETURN C C ERROR EXIT C 8500 IERR = IAND(IA,377B) +11 GOTO 9900 9100 IERR = 9 9900 IERR(2) = 5 IERR(3) = 2HTS IERR(4) = 2HAS IERR(5) = 2HU RETURN END C C HP3571 TRACKING SPECTRUM ANALYZER MEASURE SUBROUTINE C SUBROUTINE TSAMU(IUN,MODE,AMPL),09580-16323 REV.2013 800131 C DIMENSION IERMS(5) DATA IERMS /10,5,2HTS,2HAM,2HU / DATA IDTN /60/ C-------------------------------------------- C C TSAMU(IUN,MODE,AMPL) C WHERE: C IUN = UNIT # C MODE = MODE OF OPERATION C 1 = HP3330 IS SET TO SWEEP C 2 = HP3330 IS NOT SWEEPING OR IS NOT USED C 3 = EXTERNAL TRIGGER COMMAND C AMPL = RETURNED AMPLITUDE C C----------------------------------------------- C C ISTN = ISN(DUMMY) LU1 = LUDV(ISTN,IDTN,IUN) LU0 = IBLU0(LU1) IF(LU1 .LE. 0 .OR. LU0 .LE. 0) GOTO 800 C CALL XSAMU(LU0,LU1,IERMS,MODE,AMPL) IF(IERMS)800,20,800 20 RETURN C C 800 CALL ERROR(IERMS,IERMS(2)) RETURN END C C SUBROUTINE XSAMU(LU0,LU1,IERR,MODE,AMPL),09580-16323 REV.2013 8001 +31 C C DIMENSION IERR(5),IREG(2),IOBUF(2),IREAD(6) EQUIVALENCE (REG,IREG,IA),(IREG(2),IB) C C HPIB PROGRAMMING CODES: C C MEASUREMENT CONTROL MODE: C AUTO M0 C EXTERNAL M1 C EXTERNAL TRIGGER: T C C DATA OUTPUT FORMAT: C N/O SGN OR D4 D3 D2 D1 CR LF C C DATA IEXMD /2HM1/ DATA ITRIG /2HT / C IERR = 1 IF(MODE .LT. 1 .OR. MODE .GT. 3) GOTO 9900 IF(MODE .NE. 2) GOTO 100 IOBUF(1) = IEXMD IOBUF(2) = ITRIG NUM = -3 IF(MODE .EQ. 1 ) NUM = 1 GOTO 200 C C PROCESS EXTERNAL TRIGGER COMMAND C 100 IOBUF(1) = ITRIG NUM = -1 C C REMOTE ENABLED C 200 CONTINUE C CALL EXEC(100003B,1600B+LU0) GOTO 9100 300 CALL ABREG(IA,IB) IF(IB .LT. 0) GOTO 8500 C C OUTPUT EXTERNAL MODE / EXTERNAL TRIGGER C CALL REIO(100002B,LU1,IOBUF,NUM,IDUMY,0) GOTO 9100 310 CALL ABREG(IA,IB) IF(IB .LT. 0) GOTO 8500 C C READ DATA C NUMX = 4 CALL REIO(100001B,LU1,IREAD(2),NUMX,IDUMY,0) GOTO 9100 320 CALL ABREG(IA,IB) IF(IB .LT. 0) GOTO 8500 C C CHECK FOR OVERLOAD C IOVLD = IAND(IREAD,177400B) IF(IOVLD .EQ. 47400B) GOTO 400 C C CONVERT TO ASCII C AMPL = 0.0 IREG = A2F(IREAD,2,8,AMPL) IF(IREG .LT. 0) GOTO 9400 IERR = 0 RETURN C C OVER-LOAD RETURN C 400 AMPL = 1E38 GOTO 9300 C C ERROR RETURN C 8500 IERR = IAND(IA,377B)+11 GOTO 9900 9100 IERR = 9 GOTO 9900 9300 IERR =3 GOTO 9900 9400 IERR = 4 9900 IERR(2) =5 IERR(3) = 2HTS IERR(4) = 2HAM IERR(5) = 2HU RETURN END END$