PROGRAM TEST C Test program to talk to a RADIX DATABOX. Jim Walker, Aug 1987. INCLUDE '[102,2]ERRBLK.COM/NOLIST' INCLUDE '[102,2]RAWDES.COM/NOLIST' INCLUDE '[102,2]XRYDES.COM/NOLIST' INCLUDE 'INTERFACE.COM' BYTE OUTBUF1(32) CHARACTER*80 OUTBUF EQUIVALENCE (OUTBUF1(1),OUTBUF) INTEGER*4 ISTAT, I, IPOS REAL*4 ARRAY(8) INTEGER*2 IDS LOGICAL FIRST RAWFIL = 'NO FILE NAME' DIFTE1 = 'RADIX:' DNUM=2 DVER='A' DIFDES=' DIFFRACTOMETER SET UP FOR TESTING' C C Assign a channel to the device. 11 CALL DEVATA 2 TYPE*,'IERR(4:5)=',IERR(4),IERR(5) C 1 TYPE*,' ENTER DATA' READ(5,10,END=99) NCHAR,OUTBUF 10 FORMAT(Q,A) NCHAR=NCHAR+1 OUTBUF(NCHAR:NCHAR)=CHAR(13) IF(OUTBUF(1:1).EQ.'r') GOTO 3 IF(OUTBUF(1:1).EQ.'c') THEN GOTO 11 ELSEIF(OUTBUF(1:1).EQ.'e') THEN OUTBUF=OUTBUF(2:NCHAR) NCHAR=NCHAR-1 TYPE*,' ECHO ', NCHAR, 'CHARACTERS' CALL ECHO(OUTBUF, NCHAR, ISTAT) GOTO 4 ELSEIF(OUTBUF(1:1).EQ.'h') THEN TYPE*,' Type a lower case letter to:' TYPE*, 1 ' Clear, Echo, Read, Go, Scan, Integrate, Next sample' GOTO 1 ELSEIF(OUTBUF(1:1).EQ.'g') THEN TYPE*,'ANGLE?' READ*,ANGLE CALL GOSTAR(ANGLE) GOTO 2 ELSEIF(OUTBUF(1:1).EQ.'n') THEN TYPE*,' IPOS?' READ*,IPOS CALL NEXSAM( IPOS, .FALSE. ) GOTO 2 ELSEIF(OUTBUF(1:1).EQ.'s') THEN TYPE*,' CURANG=',CURANG TYPE*,'NSTEP, TIME, STEPSIZE?' READ*,NSTEP,TIME,STEP FIRST=.TRUE. 27 CALL STSCAN(ARRAY,FIRST,IDS,NSTEP,TIME,STEP,8,0) TYPE*,'ids=',IDS type*,'array=',ARRAY FIRST=.FALSE. IF(IDS.EQ.1) GOTO 27 GOTO 1 ELSEIF(OUTBUF(1:1).EQ.'i') THEN TYPE*,' CURANG=',CURANG TYPE*,'INTEGRATE HOW FAR?' READ*,ANGNEW CALL IFINTE( ANGNEW, COUNTS, TIME) TYPE*,' COUNTS=',COUNTS,' TIME=',TIME GOTO 2 ELSE TYPE*,' NULL ', NCHAR, ' CHARACTERS' CALL NULL(OUTBUF, NCHAR, ISTAT) ENDIF C 4 TYPE*,ISTAT IF(ISTAT.NE.-2) GOTO 1 TYPE*,' READING DATA ' 3 CALL READ(OUTBUF, NCHAR, ISTAT, 5.) IF(ISTAT.EQ.556) GOTO 3 TYPE*,ISTAT,NCHAR,OUTBUF(1:NCHAR) IF(ISTAT.NE.-2) GOTO 1 GOTO 3 C 99 STOP END SUBROUTINE INTRPT(IDS) C DUMMY ROUTINE, CALLED BY STSCAN TO SEE IF USER TRIED TO ABORT RUN. INTEGER*2 IDS IDS=0 RETURN END