SUBROUTINE HIVOLT(LUN) EXTERNAL HVREAD,HVSET INTEGER*4 DATA BYTE IA(20) COMMON /SCRAT/IA,ISTAT(2),IHVWD(32) EQUIVALENCE (IA,ITEMP) COMMON /HVOLT/ IHVST,IHV(34),HVTM,IDONE IF(IHVST .GT. 0) RETURN ! No Hi voltage RO IF(IDONE .EQ. 0) GO TO 49 ! First try to read voltages 1 IF(IHVST .LT. 0) GO TO 50 ! Read high voltages WRITE(5,1000) ! Ask for voltages to set CALL ASSIGN(4,'HVSAV.DAT') READ(4,*,END=21,ERR=21) IHV ! Restore high voltages 21 CALL CLOSE(4) 3 CALL ASKS('Input',ITEMP,ISIZE,2,20) ! Get input IF(ITEMP .EQ. 'GO') GO TO 4 ! Set high voltages IF(ITEMP .EQ. 'ON') GO TO 11 IF(ITEMP .EQ. 'OF') GO TO 12 IF(ITEMP .EQ. 'EX') GO TO 19 ! Exit do not set IA(ISIZE+1) = ',' DECODE(19,1001,IA,ERR=3) VALU ! Get value CALL PLIM(ITEMP,8,VALU,IERR) ! Set value IF(IERR .ne. 0) CALL MSG('Illegal name') GO TO 3 4 DO 9 J = 1,32 IF(IHV(J) .LT. 0) GO TO 19 IF(IHV(J) .GT. 4000) GO TO 19 9 IHVWD(J) = 1 + IRAM(IHV(J),-4,"177760) CALL CAMAC(LUN,HVSET,IHVWD,64,0,ISTAT) CALL ASSIGN(4,'HVSAV.DAT') WRITE(4,*,END=10,ERR=10) IHV ! Save high voltages 10 CALL CLOSE(4) CALL MSG('High voltages being set') GO TO 19 11 CONTINUE DATA = "3765 CALL MSG('HV will be turned ON') GO TO 13 12 DATA = "1765 CALL MSG('HV will be turned OFF') 13 CALL FCNA(LUN,16,1,1,0,DATA,ISTAT,IX) ISTAT(2) = 0 19 HVTM = SECNDS(0.) IHVST = -1 IF(ISTAT(1) .NE. 1) WRITE(5,1008) ISTAT ! Write error message RETURN 49 IHVST = -1 IDONE = -1 50 CONTINUE ! Convert hi voltage readings IF(ABS(SECNDS(HVTM)) .LT. 60.) RETURN CALL CAMAC(LUN,HVREAD,IHVWD,64,0,ISTAT) MAX = ISTAT(2)/2 ! Number of words read out IF(ISTAT(1) .EQ. 1) GO TO 59 ! "361 is abort MAX = 0 ! Error is bad 59 IF(MAX .GT. 32) MAX = 32 IF(MAX .LE. 0) GO TO 65 DO 60 J = 1,MAX IHV(J) = IRAM(IHVWD(J),4,"7777) 60 CONTINUE IF(MAX .GE. 32) GO TO 19 65 DO 70 J = MAX+1,32 70 IHV(J) = -1. ! Bad RO GO TO 19 1000 FORMAT(' Enter new high voltages AAAA NNNNN . . . 1 GO (to set them)'/' or ON, OFF, EX (do nothing)'/) 1001 FORMAT(4X,F15.0) 1008 FORMAT(' *** Error *** Power supply not computer controlled' 1 /' Error # = 'O7' Byte count ='I7) END