10    ! HIGH SPEED SPOT MEASUREMENT (PROGRAM MEMORY)
20    !
30     OPTION BASE 1
40     COM @Hp415x
50     ASSIGN @Hp415x TO 800
60     INTEGER Data_fmt,Drain,Gate,Source,Substrate,Filter,Aver,Av_mode,Integ
70     INTEGER Vs_range,Vsub_range,Vd_range,Vg_range,Id_range,Mmode,Meas_num
80     REAL Intg_time,Vs,Vs_comp,Vsub,Vsub_comp,Vd,Vd_comp,Vg,Vg_comp,Id
90  !
100    Data_fmt=1       ! 1: header+ASCII
110    Drain=1          ! SMU1
120    Gate=2           ! SMU2
130    Source=3         ! SMU3
140    Substrate=4      ! SMU4
150    Filter=1         ! Filter ON
160    Aver=1           ! Av number=1
170    Av_mode=0        ! 0 or 1 just placeholder for 4142B
180    Integ=1          ! 1: Short
190    Intg_time=.0005  ! .0005 sec
200    Vs_range=11      ! 2V range
210    Vs=0
220    Vs_comp=.1       ! 100mA compliance
230    Vsub_range=11    ! 2V range
240    Vsub=0
250    Vsub_comp=.01    ! 10mA compliance
260    Vd_range=12      ! 20V limited auto range
270    Vd=5
280    Vd_comp=.1       ! 100mA compliance
290    Vg_range=12      ! 20V limited auto range
300    Vg=3
310    Vg_comp=.01      ! 10mA compliance
320    Id_range=15      ! 10uA limited auto range
330    Meas_num=1       ! Number of measurement points
340     !
350    OUTPUT @Hp415x;"US"
360    OUTPUT @Hp415x;"FMT ";Data_fmt          ! Set data format
370    OUTPUT @Hp415x;"ST 1"  ! Store program to memory 1
380    OUTPUT @Hp415x;"CN ";Drain,Gate,Source,Substrate   ! Connect output switch
390    OUTPUT @Hp415x;"FL ";Filter             ! Set filter mode
400    OUTPUT @Hp415x;"AV ";Aver,Av_mode       ! Set averaging mode
410    OUTPUT @Hp415x;"SIT ";Integ,Intg_time   ! Set integ time table
420    OUTPUT @Hp415x;"SLI ";Integ             ! Select integ time
430    OUTPUT @Hp415x;"DV ";Source,Vs_range,Vs,Vs_comp            ! Force Vs
440    OUTPUT @Hp415x;"DV ";Substrate,Vsub_range,Vsub,Vsub_comp   ! Force Vsub
450    OUTPUT @Hp415x;"DV ";Drain,Vd_range,Vd,Vd_comp             ! Force Vd
460    OUTPUT @Hp415x;"DV ";Gate,Vg_range,Vg,Vg_comp              ! Force Vg
470    OUTPUT @Hp415x;"TI ";Drain,Id_range     ! Execute I meas
480    OUTPUT @Hp415x;"CL"                     ! Clear switch setting
490    OUTPUT @Hp415x;"END"
500   !
510    Start=TIMEDATE
520    FOR I=1 TO 50
530      OUTPUT @Hp415x;"DO 1" ! Execute meas
540      OUTPUT @Hp415x;"RMD? ";Meas_num       ! Read measurement data
550      ENTER @Hp415x USING "#,5X,13D,X";Id   ! Enter spot meas data header+ASCII
560    NEXT I
570    Stop=TIMEDATE
580    PRINT "TOTAL TIME=";Stop-Start;"sec"
590   !
600    END
