DIM n(8) AS STRING
 DIM c(8) AS STRING

REM The commands to poll the ADC-1 are U=Unipolar, 8=ch0, C=ch1, 9=ch2, D=ch3, A=ch4, E=ch5, B=ch6, F=ch7
 c(1) = "U8": c(2) = "UC": c(3) = "U9": c(4) = "UD": c(5) = "UA": c(6) = "UE": c(7) = "UB": c(8) = "UF"

 ON TIMER(1) GOSUB main

inputfilename:
 CLS
 LOCATE 10, 1: PRINT "Input the name of the data file to create or append:"
 LOCATE 11, 1: PRINT "[8 characters or less to be appended with (.txt)]"
 LOCATE 13, 1: PRINT "";
 INPUT filename$
 LOCATE 15, 1: PRINT "Is '"; filename$ + ".txt'"; " correct (y = yes, n = no, q = quit)";
 INPUT verify$
 IF verify$ = "y" OR verify$ = "Y" THEN
  GOTO continue
 ELSEIF verify$ = "q" OR verify$ = "Q" THEN
  GOTO endprogram
 ELSE
  GOTO inputfilename
 END IF

continue:

 CLS
 filenamepluspath$ = "c:\slogics\data\" + filename$ + ".txt"
 OPEN "COM1:19200,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1
 OPEN filenamepluspath$ FOR APPEND AS #2
 TIMER ON
 DO
 LOOP UNTIL INKEY$ = CHR$(113) OR INKEY$ = CHR$(81) '113/81 is the ASCII code for "q"/"Q".
 TIMER OFF
 CLOSE #2
 CLOSE #1

endprogram:
 END

main:

REM Get 8 channels from ADC-1
 FOR I = 1 TO 8
 PRINT #1, c(I)
 INPUT #1, n(I)
 NEXT I

REM Get time and date from PC
 t$ = LEFT$(TIME$, 5)
 dmonth$ = LEFT$(DATE$, 2)
 dday$ = MID$(DATE$, 4, 2)
 dyear$ = RIGHT$(DATE$, 4)
 dcomplete$ = dmonth$ + "/" + dday$ + "/" + dyear$

REM Convert 8 data reads from text into useable numbers
 FOR I = 1 TO 8
 chx3right$ = RIGHT$(n(I), 3)
 chxhundreds$ = LEFT$(chx3right$, 1)
 chxtens$ = MID$(chx3right$, 2, 1)
 chxones$ = RIGHT$(chx3right$, 1)
 GOSUB hexconvert
 IF I = 1 THEN ch0 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 2 THEN ch1 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 3 THEN ch2 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 4 THEN ch3 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 5 THEN ch4 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 6 THEN ch5 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 7 THEN ch6 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 IF I = 8 THEN ch7 = INT((chxhundreds + chxtens + chxones) * 5 / 4096 * 100) / 100
 NEXT I

REM Print data to screen (if wanted) and to file
 LOCATE 5, 15: PRINT "TEST IN PROGRESS:"
 LOCATE 7, 15: PRINT "PLEASE DO NOT TOUCH"
 LOCATE 11, 5: PRINT "File name and path are : "; filenamepluspath$
 LOCATE 13, 5: PRINT "Date: "; dcomplete$
 LOCATE 14, 5: PRINT "Time: "; t$
 LOCATE 16, 5: PRINT "ch0   ch1   ch2   ch3   ch4   ch5   ch6   ch7"
 LOCATE 18, 4: PRINT "                                                                   "
 LOCATE 18, 4: PRINT ch0
 LOCATE 18, 10: PRINT ch1
 LOCATE 18, 16: PRINT ch2
 LOCATE 18, 22: PRINT ch3
 LOCATE 18, 28: PRINT ch4
 LOCATE 18, 34: PRINT ch5
 LOCATE 18, 40: PRINT ch6
 LOCATE 18, 46: PRINT ch7
 PRINT #2, dcomplete$; ","; t$; ","; ch0; ","; ch1; ","; ch2; ","; ch3; ","; ch4; ","; ch5; ","; ch6; ","; ch7
 RETURN

hexconvert:
REM Hex Conversion Routine
 IF chxhundreds$ = "0" THEN chxhundreds = 0 * 256
 IF chxhundreds$ = "1" THEN chxhundreds = 1 * 256
 IF chxhundreds$ = "2" THEN chxhundreds = 2 * 256
 IF chxhundreds$ = "3" THEN chxhundreds = 3 * 256
 IF chxhundreds$ = "4" THEN chxhundreds = 4 * 256
 IF chxhundreds$ = "5" THEN chxhundreds = 5 * 256
 IF chxhundreds$ = "6" THEN chxhundreds = 6 * 256
 IF chxhundreds$ = "7" THEN chxhundreds = 7 * 256
 IF chxhundreds$ = "8" THEN chxhundreds = 8 * 256
 IF chxhundreds$ = "9" THEN chxhundreds = 9 * 256
 IF chxhundreds$ = "A" THEN chxhundreds = 10 * 256
 IF chxhundreds$ = "B" THEN chxhundreds = 11 * 256
 IF chxhundreds$ = "C" THEN chxhundreds = 12 * 256
 IF chxhundreds$ = "D" THEN chxhundreds = 13 * 256
 IF chxhundreds$ = "E" THEN chxhundreds = 14 * 256
 IF chxhundreds$ = "F" THEN chxhundreds = 15 * 256
 IF chxtens$ = "0" THEN chxtens = 0 * 16
 IF chxtens$ = "1" THEN chxtens = 1 * 16
 IF chxtens$ = "2" THEN chxtens = 2 * 16
 IF chxtens$ = "3" THEN chxtens = 3 * 16
 IF chxtens$ = "4" THEN chxtens = 4 * 16
 IF chxtens$ = "5" THEN chxtens = 5 * 16
 IF chxtens$ = "6" THEN chxtens = 6 * 16
 IF chxtens$ = "7" THEN chxtens = 7 * 16
 IF chxtens$ = "8" THEN chxtens = 8 * 16
 IF chxtens$ = "9" THEN chxtens = 9 * 16
 IF chxtens$ = "A" THEN chxtens = 10 * 16
 IF chxtens$ = "B" THEN chxtens = 11 * 16
 IF chxtens$ = "C" THEN chxtens = 12 * 16
 IF chxtens$ = "D" THEN chxtens = 13 * 16
 IF chxtens$ = "E" THEN chxtens = 14 * 16
 IF chxtens$ = "F" THEN chxtens = 15 * 16
 IF chxones$ = "0" THEN chxones = 0 * 1
 IF chxones$ = "1" THEN chxones = 1 * 1
 IF chxones$ = "2" THEN chxones = 2 * 1
 IF chxones$ = "3" THEN chxones = 3 * 1
 IF chxones$ = "4" THEN chxones = 4 * 1
 IF chxones$ = "5" THEN chxones = 5 * 1
 IF chxones$ = "6" THEN chxones = 6 * 1
 IF chxones$ = "7" THEN chxones = 7 * 1
 IF chxones$ = "8" THEN chxones = 8 * 1
 IF chxones$ = "9" THEN chxones = 9 * 1
 IF chxones$ = "A" THEN chxones = 10 * 1
 IF chxones$ = "B" THEN chxones = 11 * 1
 IF chxones$ = "C" THEN chxones = 12 * 1
 IF chxones$ = "D" THEN chxones = 13 * 1
 IF chxones$ = "E" THEN chxones = 14 * 1
 IF chxones$ = "F" THEN chxones = 15 * 1
RETURN