Specifications

SR400 with the GPIB Interface
54
PROGRAM EXAMPLE 3:
IBM PC, MICROSOFT BASIC, VIA GPIB
This program requires the Capital Equipment Corporation GPIB card for the IBM PC. 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 the CALL.
In this program, the CEC card's ROM starts at C000H, the system controller's address is 21, and the SR400 is
at GPIB address 23.
10 'EXAMPLE PROGRAM TO READ THE SR400 COUNTER DATA AND RAMP THE PORT1
20 'ANALOG OUTPUT USING IBM PC BASIC AND THE CAPITAL EQUIPMENT CORP.
30 'GPIB INTERFACE CARD
40 '
50 '
60 'SET THE COM MENU GPIB ADDR=23
70 '
80 DEF SEG = &HC000 'BASE ADDRESS OF CEC CARD
90 INIT=0: TRANSMIT=3: SEND=9: ENTER=21 'ADDRESSES OF CEC FIRMWARE ROUTINES
100 ADDR%=21: SYS%=0 'CONTROLLER ADDRESS
110 SR400%=23 'SR400 ADDRESS
120 '
130 'STRING DEFINITIONS
140 IN$="IFC UNT UNL REN MTA LISTEN 23 SDC" 'CLEAR SR400
150 CI$="CI0,0" 'COUNTER A INPUT=10 MHZ
160 CR$="CR;CS" 'RESET AND START NEW COUNT
170 QA$="QA1" 'READ COUNTER A DATA
180 P1$="PL1," 'SET PORT1 LEVEL
190 '
200 '
210 CALL INIT(ADDR%,SYS%) 'INIT CEC CARD
220 CALL TRANSMIT(IN$,STATUS%): GOSUB 480 'RESET SR400
230 FOR I=1 TO 500: NEXT I 'WAIT FOR RESET TO FINISH
240 '
250 X=0 'INIT PORT1 VALUE
260 '
270 CALL SEND(SR400%,CI$,STATUS%): GOSUB 480 'SET COUNTER A INPUT
280 '
290 'START NEXT COUNT PERIOD
300 CALL SEND(SR400%,CR$,STATUS%): GOSUB 480
310 '
320 CALL SEND(SR400%,QA$,STATUS%):GOSUB 480 'READ DATA
330 ANS$=SPACE$(20) 'CLEAR RESULT STRING
340 CALL ENTER(ANS$,LENGTH%,SR400%,STATUS%):GOSUB 480 'READ COUNTER DATA
350 N1=VAL(ANS$) 'INTO VARIABLE N1
360 IF N1<0 THEN GOTO 320 'IF COUNT PERIOD NOT DONE, TRY AGAIN
370 PRINT "COUNTER A = "; N1; 'ELSE PRINT VALUE
380 '