51
Program Example 4:
IBM PC,Microsoft Basic,
via GPIB
This program requires the Capital Equipment
Corporation GPIB card for the IBM PC or XT. It
has firmware in ROM to interface high level
languages to the GPIB.
Subroutine calls in Microsoft BASIC are done to
memory locations specified by the name of the
subroutine. The address is relative to the segment
address specified by the DEF SEG statement
preceding CALL.
In this program, the CEC card's ROM starts at
OC0000H, the system controller's address is 21,
and the SR530 has been assigned as GPIB
address 23.
To monitor the GPIB activity with an RS232
terminal, SW1-6 should be down, and the ASCII
terminal should be attached to the rear panel
RS232 connector.
10 ′ EXAMPLE PROGRAM TO READ THE SR530 OUTPUT AND RAMP THE X6 ANALOG OUTPUT
20 ′ USING IBM PC BASICA AND THE CAPITAL EQUIPMENT CORP. GPIB INTERFACE CARD
30 ′
40 ′ THE RAMP ON X6 CAN BE MATCHED BY SETTING THE SR530 DISPLAY TO D/A.
50 ′
60 ′ ON THE SR530 REAR PANEL, SET SWITCHES #4 AND #6 ON SW1 TO DOWN (DEVICE
70 ′ ADDRESS = 23, RS232 ECHO ON) AND SWITCH # 1 ON SW2 TO DOWN (RS232 BAUD
80 ′ RATE = 9600). ALL OTHER SWITCHES SHOULD BE UP.
90 ′ NOTE THAT THE RS232 ECHO IS FOR DEBUGGING AND DEMOSTRATION PURPOSES,
100 ′ UNDER NORMAL CONDITIONING, SWITCH # 6 OF SW1 SHOULD BE UP SINCE THE RS232
110 ′ ECHO SLOWS DOWN THE GPIB INTERFACE.
120 ′
130 DEF SEG = &HC000 ′BASE ADDRESS OF CEC CARD
140 INIT=0: TRANSMIT=3: RECV=6: ′ADDRESSES OF CEC FIRM WARE ROUTINES
150 ADDR%=21: SYS%=0 ′CONTROLLER ADDRESS
160 INZ$ = ″IFC UNT UNL MTA LISTEN 23 DATA ′Z′ 13″
170 ′
180 Q1$ = ″IFC MTA LISTEN 23 DATA ′Q1′ 13″
190 Q2$ = ″IFC MTA LISTEN 23 DATA ′Q2′ 13″
200 X6$ = ″IFC MTA LISTEN 23 DATA ′X6, ″
210 LISN$ = ″IFC UNT UNL MLA TALK 23″
220 ′
230 ′
240 CALL INIT(ADDR%,SYS%) ′INIT X6 OUTPUT TO ZERO
250 CALL TRANSMIT(INZ$,STATUS%) ′RESET SR530
260 GOSUB 600 ′CHECK TRANSMIT STATUS
270 ′
280 X = 0 ′INIT X6 OUTPUT TO ZERO
290 ′
300 CALL TRANSMIT(Q1$,STATUS%) ′READ CHANNEL 1 OUTPUT
310 GOSUB 600
320 GOSUB 510 ′GET RESULT
330 V1 = VAL(ANS$) ′INTO V1
340 ′
350 CALL TRANSMIT(Q2$,STATUS%) ′READ CHANNEL 2 OUTPUT
360 GOSUB 600
370 GOSUB 510 ′GET RESULT
380 V1 = VAL(ANS$) ′INTO V2