10 ! re-save "ARB_DECAY"
20 ! This main line code is reserved as a error handling shell
30 ! All application code must be at lower level context
40 ASSIGN @Sys TO 70900 ! define I/O paths
50 ASSIGN @Arb TO 70908
60 ASSIGN @Arb_bin TO 70908;FORMAT OFF
70 COM /Instr/ @Sys,@Arb,@Arb_bin
80 ON TIMEOUT 7,3 GOTO End ! Turn TIMEOUTS to errors--this branch never taken
90 ON ERROR RECOVER Kaboom ! This handles timeouts and errors not handled
100 ! at lower level contexts
110 Main ! Put application code in this sub
120 PRINT "Checking for E13xx Errors at the end of the program"
130 E13xx_errors
140 GOTO End
150 Kaboom:PRINT ""
160 PRINT ERRM$
170 PRINT "Checking for E13xx Errors as a BASIC Error has occurred"
180 E13xx_errors
190 End:END
200 !
210 SUB E13xx_errors !This sub reads all errors from E13xx instruments
220 COM /Instr/ @Sys,@Arb,@Arb_bin
230 DIM A$[128]
240 ABORT 7
250 CLEAR @Arb
260 REPEAT
270 OUTPUT @Arb;"SYST:ERR?"
280 ENTER @Arb;A,A$
290 PRINT "Arb ERROR ";A$
300 UNTIL A=0
310 !
320 CLEAR @Sys
330 REPEAT
340 OUTPUT @Sys;"SYST:ERR?"
350 ENTER @Sys;A,A$
360 PRINT "SYSTEM ERROR ";A$
370 UNTIL A=0
380 SUBEND
390 !
400 SUB Main !This subroutine is treated as the main line
410 COM /Instr/ @Sys,@Arb,@Arb_bin
420 !Put application code here
430 !
440 CLEAR @Arb
450 OUTPUT @Arb;"*RST;*CLS"
460 Shut_down
470 SUBEND
480 !
490 Shut_down:SUB Shut_down ! THIS SUB OUTPUTS A SLOW SIGN WAVE, PAUSES,
500 COM /Instr/ @Sys,@Arb,@Arb_bin ! WHEN YOU TYPE CONTINUE IT RAMPS THE
OUTPUT
510 ! TO ZERO
520 CLEAR @Arb
530 OUTPUT @Arb;"*RST;*CLS"
540 OUTPUT @Arb;"SOUR:FREQ:FIX .5"
550 OUTPUT @Arb;"SOUR:FUNC:SHAP SIN"
560 LOOP
570 OUTPUT @Arb;"SOUR:VOLT:LEV:IMM:AMPL 2.5"
580 OUTPUT @Arb;"INIT:IMM"
590 PRINT "TYPE CONT TO SHUT DOWN"
600 !
610 PAUSE
620 PRINT "SHUTTING DOWN"
630 OUTPUT @Arb;"ABORT"
640 FOR I=2.5 TO 0 STEP -.01
650 OUTPUT @Arb;"VOLT "&VAL$(I)
660 NEXT I
670 END LOOP
680 Shut_down_:SUBEND