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