From jhorel@met.utah.edu Thu Jan 13 15:32:13 2000 Delivered-To: jhorel@met.utah.edu X-Sender: jhorel@atmos.met.utah.edu Mime-Version: 1.0 Date: Thu, 13 Jan 2000 15:34:18 -0700 To: jhorel@met.utah.edu From: pfucile@whoi.edu (Paul Fucile) (by way of jhorel@atmos.met.utah.edu) Subject: Documentation John, Here are instructions and the new program. Will send more before leaving. Been having a crappy kind of computer day. Reflector was shipped on Thus morning. Regards, Paul Attachment converted: Storm HD:GSLBOIN.DOC (WDBN/MSWD) (0001235D) 1 REM GSLOPT1B.TTA 01/03/00 W/BAUD RATE CHANGE 2 X=16:ASMX,DB7:REM SET TO 300 BAUD (DB6 = 1200, DB5 = 9600) 3 IF PIN(15)=1 GOTO 740:REM DATA REQUEST SERVICE ROUTINE 5 GOSUB 800:REM GET HARDWARE CLOCK, RESULTS IN L 7 GOSUB 815:REM MEASURE HARDWARE CLOCK FREQUENCY, RESULTS IN W 10 GOSUB 840:REM TURN ON ADC 12 GOSUB 820:REM GET PAR DATA, RESULTS IN F, G, AND H 15 GOSUB 850:REM MEASURE INTERNAL TEMPERATURE, RESULTS IN I 20 GOSUB 871:REM TURN ON 12.5 V FOR SENSORS AND PCMCIA 22 X=4:GOSUB 872:REM TURN ON TRANSMISSOMETER 25 X=16+8:GOSUB 872:REM TURN ON CONDUCTIVITY AND SEABIRD TEMPERATURE 27 GOSUB 880:REM MEASURE CONDUCTIVITY AND SB TEMPERATURE, RESULTS IN D, E 30 FORJ=1TO1000:NEXTJ:REM WAIT ONE SECOND 32 GOSUB 855:REM GET TRANSMISSOMETER, RESULTS IN C 33 X=32-16-8-4:GOSUB872:REM COND,SBTEMP,TRANS OFF, FLUOROMETER ON 34 IF A < 1115392 GOTO 38 35 FORJ=1TO1000:NEXTJ:U=U+1:IFU<64GOTO39:REM TEST FOR 4 HOURS 36 U=0 38 FORJ=1TO10000:NEXTJ:REM WAIT 10 SECONDS 39 GOSUB860:REM GET FLUOROMETER, RESULTS IN B 40 PSET4:SDO(64+128+4194304),24:GOSUB845:REM SENSORS OFF, PCMCIA ON 42 GOSUB750:REM SEND RESULTS OUT UART 43 IF A66 GOTO 121:REM 'B' 105 X=GET(J,#1):IF X<>82 GOTO 121:REM 'R' 106 X=GET(J,#1):IF X<>69 GOTO 121:REM 'E' 107 X=GET(J,#1):IF X<>65 GOTO 121:REM 'A' 108 X=GET(J,#1):IF X<>75 GOTO 121:REM 'K' 109 X=GET(J,#1):IF X<>13 GOTO 121:REM '' 110 PRINT:PRINT "PROGRAM HALTED":PSET14:PCLR14:STOP 120 PRINT:PRINT "TIMED OUT, RESTARTING":PSET14:PCLR14:DONE 121 PRINT:PRINT "INVALID BREAKOUT CODE, RESTARTING":PSET14:PCLR14:DONE 200 REM ****************** INITIALIZE REGISTERS ************ 201 PSET4:SDO0,24:M=0:W=0:B=0:C=0:D=0:E=0:F=0:G=0:H=0:I=0:T=0:X=0:Y=0:Z=0 203 INPUT"ENTER PCMCIA STARTING ADDRESS (21008) "A:IF A=0 A=21008 204 PRINT"STARTING ADDRESS IS ",A," DECIMAL" 205 INPUT"ENTER PCMCIA ENDING ADDRESS (2031616) "S:IF S=0 S=2031616 206 PRINT"ENDING ADDRESS IS ",S," DECIMAL" 207 U=0 225 STOP 500 REM **************** PCMCIA ROUTINES ********************* 549 REM ************* PCMCIA PRIMATIVE ROUTINES *************** 550 SDO0,24:PCLR4:SDO(128+4194304),24:RETURN:REM TURN ON LBOARD (5V) 551 SDO12583104,24:RETURN:REM TURN ON Vpp (12.5V) 552 SDO(64+128+4194304),24:RETURN:REM TURN Vpp OFF (12V REGULATOR ON) 553 SDO128,24:SDO0,24:RETURN:REM TURN OFF LBOARD 555 Y=(A&&HFF)*256:SDO(Y+4194432),24:SDO(Y+4259968),24:SDO(Y+4194432),24 556 Y=A&&HFF00:SDO(Y+4194432),24:SDO(Y+4325504),24:SDO(Y+4194432),24:Y=A/256 557 Y=Y&&HFF00:SDO(Y+4194432),24:SDO(Y+4456576),24:SDO(Y+4194432),24:RETURN 562 PSET4:SDO6815872,24:Z=SDI(8):SDO4194432,24:RETURN:REM READ DATA INTO Z 565 PCLR4:Z=(Z&&HFF)*256:SDO13107392,24:SDO14155968+Z,24:SDO13107392,24:RETURN 566 REM LINE 565 WRITES DATA IN Z 570 FORJ=1TO24:Z=&H40:GOSUB565:REM WRITE TO FLASH 572 Z=V:GOSUB565 574 Z=&HC0:GOSUB565 576 GOSUB 562 578 PCLR4:IFZ=VRETURN 579 NEXTJ:RETURN 584 REM **** ADDRESS, READ DATA FROM CARD, & INCREMENT ADDRESS COUNTER ** 585 Y=(A&&HFF)*256:SDOY+4194432,24:SDOY+4259968,24:SDOY+4194432,24:Y=A&&HFF00 586 SDOY+4194432,24:SDOY+4325504,24:SDOY+4194432,24:Y=(A/256)&&HFF00 587 SDOY+4194432,24:SDOY+4456576,24:SDOY+4194432,24:PSET4:SDO6815872,24 588 Z=SDI(8):SDO4194432,24:PCLR4:A=A+1:RETURN:REM ADDRESS, READ, & INCREMENT 600 INPUT"READ CARD DATA, ENTER START ADDRESS (21008) ",A 601 INPUT"ENTER ENDING ADDRESS ",X:GOSUB550 603 FORJ=1TO99:NEXTJ:PRINT#06,A," ";:GOSUB585:REM READ BYTE & INC ADDRESS 607 PRINT#02H,Z;:GOSUB585:REM HARDWARE CLOCK HIGH BYTE 609 PRINT#02H,Z," ";:GOSUB585:REM HARDWARE CLOCK LOW BYTE 611 PRINT#02H,Z;:GOSUB585:REM FLUOROMETER HIGH BYTE 613 PRINT#02H,Z," ";:GOSUB585:REM FLUOROMETER LOW BYTE 615 PRINT#02H,Z;:GOSUB585:REM TRANSMISSOMETER HIGH BYTE 617 PRINT#02H,Z," ";:GOSUB585:REM TRANSMISSOMETER LOW BYTE 619 PRINT#02H,Z;:GOSUB585:REM CONDUCTIVITY HIGH BYTE 621 PRINT#02H,Z," ";:GOSUB585:REM CONDUCTIVITY LOW BYTE 623 PRINT#02H,Z;:GOSUB585:REM SB TEMPERATURE HIGH BYTE 625 PRINT#02H,Z," ";:GOSUB585:REM SB TEMPERATURE LOW BYTE 626 PRINT#02H,Z," ";:GOSUB585:REM INTEGRATION ROLLOVER 627 PRINT#02H,Z;:GOSUB585:REM PAR INTEGRATION HIGH BYTE 629 PRINT#02H,Z," ";:GOSUB585:REM PAR INTEGRATION LOW BYTE 631 PRINT#02H,Z," ";:GOSUB585:REM NUMBER OF PAR SAMPLES 634 PRINT#02H,Z;:GOSUB585:REM MOST RECENT PAR VALUE HIGH BYTE 636 PRINT#02H,Z," ";:GOSUB585:REM MOST RECENT PAR VALUE LOW BYTE 638 PRINT#02H,Z;:GOSUB585:REM INTERNAL TEMPERATURE HIGH BYTE 640 PRINT#02H,Z," ";:GOSUB585:REM INTERNAL TEMPERATURE LOW BYTE 642 PRINT#02H,Z;:REM HARDWARE CLOCK DRIFT 645 PRINT:IFA32GOTO830 824 F=(GET(P)-48)*10000:F=F+(GET(P)-48)*1000:F=F+(GET(P)-48)*100 825 F=F+(GET(P)-48)*10:F=F+(GET(P)-48):X=GET(P):IFX<>32GOTO830 826 G=(GET(P)-48)*100:G=G+(GET(P)-48)*10:G=G+(GET(P)-48):IFGET(P)<>32GOTO830 827 H=(GET(P)-48)*1000:H=H+(GET(P)-48)*100:H=H+(GET(P)-48)*10 828 H=H+(GET(P)-48):X=GET(P):IFX=13RETURN 830 PSET7:F=0:G=0:H=0:K=254:RETURN:REM SOME REPLY FROM PAR MODULE 838 PSET7:F=0:G=0:H=0:K=255:RETURN:REM NO REPLY FROM PAR MODULE 840 REM ***************** TURN ON ADC *********************** 841 ASM &HBB,DB &H0E:X=CHAN(2):RETURN 845 REM ***************** TURN OFF ADC ********************** 846 ASM &HBB,DB &H0A:X=CHAN(2):RETURN 850 REM *********** MEASURE ENDCAP TEMPERATURE *************** 851 I=CHAN(2):I=CHAN(2):I=CHAN(2):I=CHAN(2):I=0 852 FORJ=1TO8:I=I+CHAN(2):NEXTJ:I=I/128:RETURN 855 REM ************* MEASURE TRANSMISSOMETER ******************** 856 C=CHAN(1):C=CHAN(1):C=CHAN(1):C=CHAN(1):C=0 857 FORJ=1TO8:C=C+CHAN(1):NEXTJ:C=C/128:RETURN 860 REM *************** MEASURE FLUOROMETER ********************** 866 B=CHAN(0):B=CHAN(0):B=CHAN(0):B=CHAN(0):B=0 867 FORJ=1TO8:B=B+CHAN(0):NEXTJ:B=B/128:RETURN 870 REM **************** POWER SWITCH ROUTINES ****************** 871 M=64:SDOM,24:FORJ=1TO999:NEXTJ:RETURN:REM TURN MAIN 12.5V ON 872 M=M+X:SDOM,24:RETURN:REM TURN SWITCH X ON 873 M=M-X:SDOM,24:RETURN:REM TURN SWITCH X OFF 880 REM ********** MEASURE CONDUCTIVITY AND SB TEMPERATURE ****** 883 PSET0,1:REM SELECT CONDUCTIVITY MUX CHANNEL 884 FORJ=1TO5000:NEXTJ:D=PERIOD(200,200) 885 PCLR0:FORJ=1TO1000:NEXTJ:E=PERIOD(200,200) 886 PCLR0,1:RETURN 900 DONE 940 REM ***************** VARIABLES AND I/O *********************** 941 'M = 128,5.0 V ; 64,12.5v ;32,FLUOR ;16,CONDUCT ;8,SB TEMP 942 'M =4,TRANSMISSOMETER; 2,WINDOW WASHER 1; 1,WINDOW WASHER 2; 0,ALL OFF 951 'A = ADDRESS COUNTER FOR PCMCIA 952 'B = FLUOROMETER RESULT 953 'C = TRANSMISSOMETER RESULT 954 'D = CONDUCTIVITY 955 'E = SEABIRD TEMPERATURE 956 'F = PAR INTEGRATION 957 'G = NUMBER OF PAR INTEGRATION SAMPLES (2.3 SECONDS PER SAMPLE) 958 'H = PAR SPOT MEASUREMENT 959 'I = END CAP TEMPERATURE 960 'J = FOR-NEXT COUNTER VARIABLE 961 'K = INTEGRATION ROLLOVER REGISTER (8 BITS) 962 'L = HARDWARE CLOCK VARIABLE, LIMITED TO 24 BITS 963 'M = POWER CONTROL REGISTER 964 'O = INTERVALS PER HOUR, 3.75 MINS = 16/HR; O=16 965 'P = POINTER FOR PAR DATA 966 'Q = PCMCIA DATA REGISTER USED FOR BOTH READ AND WRITE 967 'R = PCMCIA WRITE ATTEMPT COUNTER 968 'S = PCMCIA END OF MEMORY VARIABLE, 2MB = 2097152 969 'T = INTERMEDIATE REGISTER 970 'U = FLUOROMETER REDUCED RATE COUNTER 971 'V = FLASH WRITING ROUTINE VARIABLE 972 'W = HARDWARE CLOCK FREQUENCY COUNTER VARIABLE 973 'X = INTERMEDIATE VARIABLE, MULTIPLE PURPOSES 974 'Y = VARIABLE USED DURING PCMCIA ROUTINES 975 'Z = DATA REGISTER USED FOR READING AND WRITING TO PCMCIA 976 'D0 = FREQUENCY MULTIPLEXER A INPUT 977 'D1 = FREQUENCY MULTIPLEXER B INPUT 978 'D2 = SDO LATCH 979 'D3 = HARDWARE SHIFT DATA IN LATCH 980 'D4 = PCMCIA I/O ENABLE, 1 = INPUT, 0 = OUTPUT 981 'D5 = SDO/SDI DATA CLOCK 982 'D6 AVAILABLE AS DIGITAL I/O 983 'D7 = PAR COMMUNICATIONS PORT (UGET) 984 'D8 AVAILABLE AS DIGITAL I/O OR USEND FUNCTION 985 'D9 = SDI DATA LINE 986 'D10 AVAILABLE AS DIGITAL I/O 987 'D11 = SDO DATA 988 'D12 = HARDWARE CLOCK DATA 989 'D13 = FREQUENCY INPUT FROM MULTIPLEXER 990 'D14 = COMMUNICATIONS INTERUPT RESET 991 'D15 = Q COMMUNICATIONS INTERUPT 992 'CHAN(0) IS FLUOROMETER 993 'CHAN(1) IS TRANSMISSOMETER 994 'CHAN(2) IS END CAP TEMPERATURE 995 'MUX CHANNEL 0 = 2048 HZ FROM HARDWARE CLOCK 996 'MUX CHANNEL 1 = OPTIONAL FREQUENCY INPUT 997 'MUX CHANNEL 2 = SEABIRD TEMPERATURE 998 'MUX CHANNEL 3 = CONDUCTIVITY 999 'MUX CHANNEL 4 TO 7 OPTIONAL FREQUENCY OR DIGITAL INPUT OK >