' +JJJJ ?\>m0M='+l> /+l   d']6@5L&]655]6L65 & "L}"BB5L&]655555553L36 77777777777JJJJx 77L? L7877777777 776i 7 7867 7`77 777777`x =(`(8`5775I7`B` 76`7`>J><;VU<)?<`8'x0|<&HhHh 8 8 8 8V&` aI꽌ɪVɭ&Y:&<&Y:&;: 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8 9: :' 9: :& :x)*++`FG8`0($ p,&"_*]6` L/  !"#$%&'()*+,-./0123456789:;<=>?80^݌Hh < <݌ < < h < < < <`HJ>݌h Hh݌`HIHHHHhHH݌hHhHh݌H6 (G FG HZXj 80x D9$xxH` >( Z>h Z>L=.xxH >hh@(LH>9L>HH/Hh/ H?-З( 8(& 8$8 H` *8HNx`* >x$50x*$50xL9JJJJ`HHjf5 >h $50x`HA>VD;;P >(ED Z> ?$0x8x D9- 8DD# H8`?E Vˆʎ55L $ 5 55555 &a*5`*5` "L&5_*b*JL%u**Lz%`** $  Q(lXJ̥KlV $  Q(lV eօ3L e3L &%R*L &%Q*L d' "L4% N'e*)n*5 5 &`@-e*f*f* 5 "L# "5f*`L %.* *t*Q*L$ %L&*L` "O**P**u** d' "L% N'e*)n*o*o*n* &8ɍ` ^&f\*555L& ^&NR* & "R*ΩL&)\*Z* ʽ LH*v 3h`0h8` " ['L & N'С55 &5`*A*@` +5L^6L6 i:5`  \* ?*0 '\* '  Q( ^&\*lZl^?*c*q)H c*h`f*5h*5j*555@O*AP*`u*@`@5&`Q*R*`E 'Ls' ' ' @DAE@u*`8` %@ @A@`@`**@*A`M5 ) "L&`8@AW*c*@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@c*h8&ȑ@Hȑ@Ah@L'Hȑ@ȑ@* htphso`hMhL`9V*8U*897T*6S*67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmxϠ734@~3!+,W,o,*--,,9,-.-~3~3,,,,~3~3,,,,~3_*3 j.5 *H*H`Lc3 (+L3 +55555 1^3_* )3J Q*L_3Ls3443 D23455545554 70 / 7 :/354545455454555535L^/5-5I5555 55` / 4/ 2-5! / 08555454 70L3 (+50+5B5C3 2 70L35 *H*H`Lg3L{3505 *H*H` 3 ,5L3 3 1 ,H 1hBL, 0 BH [1 1h`Lo3 35 ,L3 3 1B , 1L,H 0hB@ 55 [1L133 (+34) 34 70L3 3L3 (+ 055L- (+34L{33454445 70 ^/* / 3B0 HȱBh -355 -8 /L38 25` +5 /3 /. /. 3 E7D B. /. /. 0]34S0J4 4) 3 4D4E B. 4  /. 02L3 Ν3 3`HD٤33DEEhiHLG.h ` /5B5-` /5B-` + X05I33383 33DH /4 E03744Ȍ7 X040 7 J7L35B5C`,5p` / R0-55`50` K/ R0-55`575755` 4/ K/ /( 55L/BȱBL/58` D2BH5BH :/ 75Bȭ5Bhh55 R0B5m55ȱB5m55` /LR0557755`*7*75LR0 E0(33 48`433 R0` E033LR0*7*7`777 555I7575757577** 7757`7 L35555f /55555555 ^/`855 i /B58` 41L 15ȱB5 /5555 /5`3 D23ȑB55B5 / 7 55`5555555555 5555`555`55BC55`5555`L3 /5B5C355 0Q340"B4 3` 02۰Ϭ33B438`3i#`3ЗLw35!50>5555`53 /3m3 3 3733i35 3583 /35ЉLw35`H /5h 25L/~43 533`55555555J5m55m5jn5n5n555m5555m555`"L? 585H ~.(3` d ֠z# 3` 02۰Ϭ33B438`3i#`3ЗLw35!50>5555`53 /3m3 3 3733i35 3583 /35ЉLw35`H /5h 25L/~43 533E SELECTED+(900: READ PARAMETERS FILEF(1700: SET UP PROBESQ(10000W){)"SAVE PARAMETERS DATA ON DISK:,)1100: ENTER FILE NAME1)N$""105906)1000: SAVE FILE^)10000h) CALIBRATE PROBES:i)KP,0::j)"WARNINGEADING #2";(P03((NUV2(P):200/(PE(::"SLOPE ->";P(P03b(NUSL(P):200i(Pq(:("PRESS TO CONTINUE ";Q$(10000((:"LOAD NEW PARAMETERS FILE:(1100: GET FILE NAME (N$""10490: NO NAM A B C DQ](" ------------------------a^(VL$;" #1";l`(P03~b(NUI1(P):200d(Pf(:"READING #1";l(P03n(NUV1(P):200s(Pv(::VL$;" #2";z(P03{(NUI2(P):200|(P ~(:"R0,10500,10600,10990''10000: REPEAT-'\'(5):"UNCORRECTED VOLTAGE INPUT READINGS"z'(10):1300: READ INPUT2(10000;(<("CURRENT PARAMETERS FILE:":K(TI$:NA$:DT$:VL$;" (";VU$;")"M(:"ACTIVE PROBES: ";:1400::#\(" FILE(L'"3 = LOAD NEW PARAMETERS FILEO`'"4 = SAVE CURRENT PARAMETERS FILEwt'"5 = RECALIBRATE THE ACTIVE PROBES~'"6 = RETURN TO MAIN MENU':"[6] ":Q$'32,0'Q$""Q$"6"'(Q$)1(Q$)610040''(Q$)10200,10300,1040."- D$;"RUN VOLTAGE PLOTTER PART ONE,D1"T' *******************************j' CALIBRATION8':"CALIBRATION OPTIONS MENU:";':"SELECT:"<'KP,0: CLEAR KEYBOARD='32,6:?'"1 = READ VOLTAGEB'"2 = CHECK CURRENT PARAMETERS1#ZPPPB97: CALC. POKE NUMBERz]33565,PP:33575,PP:33632,PP:33649,PP:33757,PP:33770,PP: POKE INPUT LOCATIONb **** MAIN PROGRAM 60000  10000: 768: SAVE VARIABLES ::"LOADING MAIN PORTION OF THE PROGRAM.. PARAMETERS CET(19T2563(T1))CPS: CALCULATE ELAPSED TIMEa0206,256T: COUNT CYCLESuDDY132CPSD.1N235,D: DELAYU238,M: START UP FLAGVPB4P2(P2)PP97:1885: SET UP FOR PB0XPB4PP98:1885: SET UP FOR PBP # SET UP PROBES .P03MV1(P)V2(P)SL(P)0:1730SL(P)(I2(P)I1(P))(V2(P)V1(P)): CALCULATE SLOPEPPL0:PB4PLPB: LOWEST PROBEPHPB:PB3PHPB3: HIGHEST PROBE  CALCULATE AND POKE CT COLUMNS,AFTER CLEARING OLD READINGS+sP?t(KC)1281357Gu:dvKP,0: CLEAR KEYBOARDjwx PROBE STATUS P03PPLPPHĺ" ";:1440: PRINT SPACE TO SHOW THE PROBE IS OFF(193P);: PRINT LETTER; PROBE 'ON'VM: CALCULATE RAW VOLTAGE<b1390: END OF BOARD READGd ----ge252,2:253,0: ONE READINGqf1800|g33536hC(250)CC(251)jV(CET)1000: RAW VOLTAGEm -------$n(1):868:V(P)V:NUV(P):200: PRINT READINGS INI$"B"1381: READ VIU#Q -----BR LOOP TO AVERAGE NOISEKTTV0WVI1DV}X250,P:33536: READ PROBE P ZCCC(7)(6)\TVTVC](KC)127TVTVDVI:IDV: EXIT EARLY, PRORATE TOTAL^I_AVTVDV`V((AVFF)VR)~N$"C"ĺD$"CATALOG"::1110RN$"C1"N$"C2"ĺD$"CATALOG ,D"(N$,2)::1110X{ READ INPUT FOR CALIBRATION <"PRESS TO EXIT THIS ROUTINE"F:17);"INPUT VOLTAGE READING"K15);"A B C D"MPPLPHP"Y"N$"STARTUP":1015: SAVE FILE 2ND TIME4BJL GET FILE NAME hV:"ENTER NAME OF FILE ORb"'C', 'C1', 'C2' FOR CATALOG ORf"PRESS TO EXITh:"(ACTIVE DISK DRIVE = ";:(43624);")j::M$"Z"ĺ"PARA.";t"";N$ .I 1PB: PROBE STATUS5 4D$"CLOSE PARA.";N$U 5Q$"Y"1090: IF 2ND TIME 6:"DO YOU WANT THIS FILE TO BE USED AS THE 8"PARAMETERS FILE WHEN THE PROGRAM" :"STARTS? [N] " ;KP,0: CLEAR KEYBOARD STROBE <Q$:Q$(Q$,1).>Q$ DT$,NA$ TI$N$? :"SAVING PARAMETERS FILE ON DISK"W D$;"OPEN PARA.";N$q D$;"DELETE PARA.";N$ D$;"OPEN PARA.";N$ D$;"WRITE PARA.";N$ TI$","DT$","NA$ VL$:VU$ HL$:HU$ I03 I1(I):I2(I):V1(I):V2(I)VU$ HL$:HU$ I03< I1(I):I2(I):V1(I):V2(I)C I[ PB: PROBE STATUSs D$"CLOSE PARA.";N$y   WRITE A PARA. FILE Q$"N": USED AS FLAG HERE :"ENTER TODAY'S DATE, NAME OF PERSON "DOING THE CALIBRATION":NU.1))% NU$SN$NU$: ADD SIGNJ NU0.01NU$"#"SN$"0.00":289h (NU$)6NU$SN$"#####" !(15P7): TAB OVER 'NU$; )  READ PARAMETERS FILE D$"OPEN PARA.";N$ D$"READ PARA.";N$ TI$,DT$,NAME$ VL$:SKIP ROUNDING PWR1% NU1260A NUPWRPWRPWR10:240J 270j NUPWR10PWRPWR10:260 FCTR1000(PWR10) NU(NUFCTR.5)FCTR: SIG. FIGS. NU$(NU):(NU$)4ĭ(NU)NUNU$NU$"." (NU$)5NU$NU$"000":NU$(NU$,4(" VOLTAGE PLOTTER PART THREE7 COPYRIGHT 1985N VERNIER SOFTWAREk779: RESTORE VARIABLES! VERSION 122285(2500: MAIN PROGRAM ROUND TO SIG FIGS AND PRINT IN COLUMNS SN$""NU0SN$"-":NU(NU) NU0284:                 CNTRL C ?~198: BELLJ?EL(219)256(218): ERROR LINE #n?(222)6Ğ:"FILE NOT FOUND":?(222)9Ğ:"DISK FULL":?:"*** ERROR ON LINE ";EL;" ***":?II1900:II?3288: CLEAR STACK?2500 7731400: EXIT$>yJJ1+>yPN>y31010: REPEAT LOOPX>zNJ1b>z1900>zQ$"R"30400: GRAPH, SAME SCALE>zQ$"S"30000: START GRAPHING ANEW>z>` ERROR HANDLING ROUTINE ?t(222)255ij:P OF LOOP1="y100: READ TEMP.Z=,y(49152)12731400: EXITg=6yPPLPHv=JyTE(J)T(P)=TyPB4TI(J)TI:31100: SINGLE READING=^yTI(J)TI(PB3P): MULT. READINGS=|y600: PLOT>yXP200(SH279:VY90HSX9H(V0V176)(V0V176)((((176V)YSVSB)AHS)XS15)0MSX00X0279X90X9279213400RSX0,Y0X9,Y90\S(S$,1)"S"21400: SKIP STATISTICS1fSNUA:200:PR$ REGRESSION LINE5/R500: CALCULATE REGRESSION FITO/SY0176(BAHSVS)YSu/ SY0Y0(Y0176Y00)176(Y0176)/SY9176(BA(HS264XS)VS)YS/ SY9Y9(Y9176Y90)176(Y9176)/*SH15:VY0//SAHSX0H:X9279:21330: AVOID DIV BY ZERO?0.RPPB:PB3P0: START WITH FIRST PROBE6.RJ1N[.RTI(J)021220: DELETED DATAl.R600: PLOT.R(KC)27(KC)155JN:KP,0: EXIT.RPBPPP1:PPB3P0: ACTIVE PROBE.RJ/R(S$,1)"R"(S$,1)"S"21400: SKIP DRAWINGUE FOR HORIZONTAL AXIS":"[";MX;"] ";:Q$:Q$""HSMX:21110J-lRHS(Q$)e-vRNU(XMAXHS)260:1500-R"ENTER VALUE OF EACH HORIZONTAL SPACE":"[";NU;"] ":Q$-RQ$""XSNU:21150-RXS(Q$)-R ----R1600: SET UP GRAPH-R PLOT POINTS+,QMX0HS(HSPG)PG9,QMX0HS1(HSPG)PGPGZ,QNU(XMAXHS)265:1500:XSNUe,R21150o,:R C ,DR"RANGE OF HORIZONTAL VALUES TO BE PLOTTED",NRMX;" TO ";:NUXMAX:200:NU$,XR"THE SCREEN IS 260 SPACES WIDE=-bR:"ENTER STARTING VALLWAYS STARTS AT 0'+QNUXS:1500:XSNU2+Q21150;+Q Br+QHS(MX): HS WILL EVENTUALLY BE STARTING VALUE+QHS.01HS0:20990: USE 0 FOR START+QLS((HS)LL)+QS10LS+QPGS+QPG(XMAXMX)1020984+QPGPG10:20980,QPGPG10NTAL AXIS SCALING MODE:G*|Q:"A = AUTOMATIC SCALING WITH ORIGIN AT 0"t*Q"B = AUTOMATIC SCALING, VARIABLE ORIGIN*Q"C = MANUAL SCALING*Q:"[A] ";Q$*QQ$(Q$,1)*QQ$"B"20970*QQ$"C"21050*Q A +QHS0:XS(XMAX)265: MODE A AH PAPER) IS 160(),Q"SPACES VERTICALLY.h)6Q"ENTER STARTING VALUE FOR VERT. AXIS ":"[0] ";Q$:VS(Q$))@Q"ENTER VALUE FOR EACH SPACE VERTICALLY)JQNU(YMAXVS)160:1500)TQ"[";NU;"] ";:Q$)^QQ$""YSNU:20850)hQYS(Q$)*rQ:"SELECT HORIZOY)1020708(PPGPG10:20704,(PPGPG10E(PMY0VS(VSPG)PGe(PMY0VS1(VSPG)PGPG(PNU(YMAXVS)160:1500:YSNU(P20850(Q C(Q:"RANGE OF VALUES TO BE PLOTTED:(QMY;" TO ";:NUYMAX:200:NU$)"Q:"THE SCREEN (OUR GRAP'PQ$"C"20740'P A4'PVS0:YS(YMAX)160:J'PNUYS:1500:YSNUU'P20850_'P B'PVS(MY): VS WILL EVENTUALLY BE STARTING VALUE'PVS.01VS0:20718:IF THAT CLOSE TO 0 USE IT'PLS((VS)LL)'PS10LS'PPGS (PPG(YMAXM": USE HOURS(&XPXMAXXMAXDF:MXMXDF.&YPX&ZP"SELECT VERTICAL AXIS SCALING MODE:"&dP:"A = AUTOMATIC SCALING WITH ORIGIN AT 0"&nP"B = AUTOMATIC SCALING, VARIABLE ORIGIN&xP"C = MANUAL SCALING&P:"[A] ";Q$&PQ$(Q$,1)'PQ$"B"20690"%JPR$(Q$,1);%LPR$"C"20560: LEAVE LIMITS UNCHANGED%NPXMAXXMAXMX:MX0: RESET TO TAKE INTO ACCOUNT THE FACT THAT RELATIVE TIMES WILL BE USED%PP ---%RPDF1%TPXMAXMX299DF60:HU$"MIN.": USE MINUTES&VPXMAXMX17999DF3600:HU$"HR.TIME IS NOT BEING USEDz$@PCL$"S"R$"C":20560: SKIP NEXT QUESTION IF SOFTWARE CLOCK OR IF TIME IS NOT BEING GRAPHED$BP:"WHICH TIMES SHOULD BE USED?$DP:"C = ACTUAL CLOCK TIMES"$FP"R = TIMES RELATIVE TO THE START%HP"[R] ";Q$:Q$""Q$"RJ1N: MIN & MAX7# PTI(J)020540: SKIP DELETIONSG#PN(4)N(4)1b#PTI(J)XMAXXMAXTI(J)y#PTI(J)MXMXTI(J)#(PTE(J)MYMYTE(J)#2PTE(J)YMAXYMAXTE(J)#P ***$?PHL$"TIME"DF1:R$"C":20569: SKIP THE NEXT STUFF IF D$"PR#"PR: PRINTER ON<" (9)"G2E": GRAPPLER+ DUMP[" :D$"PR#0": PRINTER OFFa""|" N GRAPH DATA TABLE"*N"GRAPH DATA TABLE:":"ON49Ģ(5):(5):"ANALYZING DATA TABLE...""OXMAX1E38:YMAX1E38:N(4)0"OMX1E38:MY1E38#PREEN GRAPH=!"SELECT:":"G = GRAPPLER+":"I = IMAGEWRITER"L!"[G] ";Q$n! :"ENTER SLOT # FOR PRINTER"! "[1] ";QQ$:QQ$""QQ$"1": DEFAULT= SLOT 1!& PR(QQ$)!0 PR1PR78900!: (Q$,1)"I"Č36864,PR,1:8900: IMAGEWRITER DUMP" RUN PART ONEO HL$HL$NL$:HU$HU$NL$: STORE STRINGS IN A SAFE PLACEk VL$VL$NL$:VU$VU$NL$ 768: SAVE VARIABLE TABLE POINTERS ::"LOADING MAIN PORTION OF THE PROGRAM... D$;"RUN VOLTAGE PLOTTER PART ONE,D1" !@ DUMP SC"M = RETURN TO MAIN MENU6z:"[M] ";Q$:Q$(Q$,1)<{}Q$"D"Ĺ49232,0:49234,0:49237,0:49239,0:Q$:1905: DISPLAY GRAPH & WAITQ$"O"İ8000:1905 **** MAIN PROGRAM 60000  M$"P"İ20000 M$"R"İ30000649,PP:33757,PP:33770,PP: POKE INPUT LOCATION:bYl END OF GRAPHING MENU cpKP,0xq::"SELECT:":s"D = DISPLAY PREVIOUS GRAPHt"R = REGRAPH - SAME SCALEv"S = CHANGE SCALE AND REGRAPHw"O = PRINT GRAPH ON PRINTERxIME"0206,256T: COUNT CYCLES6DDY132CPSD.1IN235,D: DELAYeU238,M: START UP FLAGVPB4P2(P2)PP97:1885: SET UP PB0XPB4PP98:1885: SET FOR PB1ZPPPB97: CALC. POKE NUMBER4]33565,PP:33575,PP:33632,PP:33(NU):700NU200XSHS%200IO$"H":V181:H210:PR$NU$:700z16304,1:16299,1:16297,1: TURN ON HGR2OS0: OFF SCREEN FLAG CALCULATE AND POKE CT PARAMETERS-VIU ET(19T2563(T1))CPS: CALCULATE ELAPSED TO$"H":700-PR$((VS),8):H3:V174:700NU100YS:200:NU(NU$)VS: THIS IS THE VALUE OF THE MAIN TICK MARK ON THE VERT. AXIS; THE ROUNDING IS DONE IN THIS WAY TO AVOID ENDING UP WITH ROUND OFF ERRORS WHEN IT IS NEAR 0 O$"V":H10:V70:PR$279,V:VV5:H270:O$"H":PR$"0":700: DRAW A ZERO LINE (UNLESS IT IS AT BOTTOM OR OFF SCREEN)qI166010(176I)50((176I)50)ē15,I25,I15,I20,IINUHS:DF3600NU24R$"R"NUNU(NU24)24 H15:V181:200:PR$NU$::CENTER TITLEV2:700T15,6275,6275,17615,17615,6: DRAW AXES WT. #'SeI2527510(I15)50((I15)50)ēI,176I,164I,176I,169(S$,2,1)"G"āII166010:I,II:II: GRIDI`VS0V176VSYS:V0V176ē15,V")": HORIZ. LABEL-rV188:H90:O$"H"6t700ZvPR$VL$" VS "HL$" FOR PROBE"ywPB3PR$PR$"S": ADD SyPB0PB3PR$PR$" A"zPB1PB3PR$PR$" B"{PB2PB4PR$PR$" C"|PB3PB6PR$PR$" D"~H1477((PR$)2)PROBE C&iPB5ĺ" + = PROBE DTj:"PRESS WHEN YOU HAVE FINISHEDlk"VIEWING THE GRAPH{l3: WHITEmO$"V":V5:H3: VERT. LABELnPR$VL$"-"VU$"-": VERT. LABEL & UNITSo700: PRINT TEXT ON HGR2pPR$HL$"("HU$$,1)"L"(S$,1)"R"(S$,1)"S"(S$,1)"M"1605: ASK AGAINWa(S$,1)"M"ġ:tc:"SETTING UP GRAPH..."d:PB41642: ONLY 1 PROBEe"POINT PROTECTOR KEY:":f" SQUARE = PROBE Ag"TRIANGLE = PROBE BhPB4ĺ" X = H STATISTICS*T"M = RETURN TO MAIN MENUBU32,0: MARGIN mV:"A SECOND CHARACTER MAY BE USED TO:X:" G = ADD A GRID ON GRAPHY" E = ELIMINATE POINT PROTECTORS[:"[D] ";S$:S$""S$"D"B\(S$,1)"D"(S$,1)"B"(SACE/DIV.%@ SET UP GRAPH ED: CLEAR GRAPHICS SCREENOE::iF"SELECT GRAPH STYLE:uG32,6:J"D = DOTS AT POINTSL"L = POINT TO POINT LINE DRAWNM"B = BAR GRAPH"NM$"R"1620P"R = REGRESSION LINE R"S = WIT))31H,V+O$"V"VV9: STEP DOWNMO$"H"HH7: STEP OVERUCH[ r SET SCALING 200:NUNUPWR: USE NU WHICH IS THE ABSOLUTE VALUE OF THE ROUNDED VALUENU(22(NU2)(NU4)5(NU5))PWR: PICK 2,4,5,10 AS SPTRIANGLE?P2ēXP2,YPXP2,YP:XP,YP2XP,YP2:690: "+"xP3ēXP2,YP2XP2,YP2:XP2,YP2XP2,YP2: "X"~ HIRES PRINTING  ENTER WITH O$, H, V, PR$0CH1(PR$)V191V10H275H10 ((PR$,CH,1 PLOT PROPER LINE SEGMENTG~(S$,1)"B"ēXP,176XP,YP: BAR GRAPHw(S$,2,1)"E"690: SKIP POINT PROTECTORSP0ēXP2,YP2XP2,YP2XP2,YP2XP2,YP2XP2,YP2:690: DRAW SQUAREP1ēXP2,YP2XP2,YP2XP,YP2XP2,YP2:690: )TI(1)FbXP(TPDFHS)XS15:YP176((TE(J))VS)YS: SCALED VALUESlYP3YP188XP277XP10Č198:OS1:690: OFFSCREENqXP,YPvJ1JPB1OS1XL(P)XP:YL(P)YP: START OF LINE{(S$,1)"L"ēXL(P),YL(P)XP,YP:XL(P)XP:YL(P)YP:OS0:((X2SN(4)XA2)(N(4)1)): STD DEV0SY(((Y2SN(4)YA2)(N(4)1))): ABS ADDED TO AVOID DIV BY O ERRORS WHEN ALL VALUES THE SAVE5RX(PSN(4)XAYA)((N(4)1)SXSY): CORR. COEFFT.:X PLOT A POINT ]TPTI(J):R$"C"TPTI(JI(J)0535: SKIP DELETED POINTSAX1SX1STI(J):Y1SY1STE(J)m X2SX2STI(J)TI(J):Y2SY2STE(J)TE(J)PSPSTI(J)TE(J)JXAX1SN(4):YAY1SN(4): MEANS!A(PSN(4)XAYA)(X2SN(4)XA2): SLOPE&BYAAXA: INTECPT.'+SX5NU$NU$"000":NU$(NU$,4(NU.1))B NU$SN$NU$: ADD SIGNg NU0.01NU$"#"SN$"0.00":297 (NU$)6NU$SN$"#####" )  REGRESSION CALCULATIONS X1S0:Y1S0:X2S0:Y2S0:PS0: INIT. SUMS J1N: CALCULATE SUMS:!T"-":NU(NU)* NU0284: SKIP ROUNDING4 PWR1B NU1260^ NUPWRPWRPWR10:240g 270 NUPWR10PWRPWR10:260 FCTR1000(PWR10) NU(NUFCTR.5)FCTR: SIG. FIGS. NU$(NU):(NU$)4ĭ(NU)NUNU$NU$"."$ (NU$)V1(P)): CALC. CORRECTED READINGH TITI1: ALWAYS SOFTWARE CLOCKm I140:I: STALL FOR TIMING (KC)127I40: EXIT EARLY P PP1: SET P TO LAST VALUE READ ROUND TO SIG FIGS; NO PRINT SN$"" NU0SN$ CALC. RAW INPUT 147( ------8 VIU READc 252,2:253,0: POKE FOR ONE READING} 1800: SET UP PROBE 33536: READ COUNTS: C((250)CC(251)) V(CET)1000: RAW INPUT READING -----# T(P)I1(P)SL(P)(V nI1DV- p250,P:33536: READ PROBE] r HIGH BYTE FROM $7 AND LOW BYTE AT $6:p tCCC(7)(6) v*** ACCUMULATE TOTAL xTVTVC y(KC)127TVTVDVI:IDV: EXIT EARLY, PRORATE TOTAL zI |AVTVDV V((AVFF)VR)VM: Z/ COPYRIGHT 1985- VERNIER SOFTWAREC VERSION 122285`779: RESTORE VARIABLESy(2500: MAIN PROGRAMc READ INPUT dPPLPH: LOW PROBE TO HIGH PROBEfI$"B"140: READ VIUh *** LOOP TO AVERAGE NOISE jTV0                    COPYRIGHT 1985, VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225ƭ`۩```` LINE ON WHICH ERROR OCCURS$_L_:"*** ERROR ON LINE ";EL;" ***":d_I1999:I: DELAY}_3288: CLEAR STACK_2485: RETURN TO MAIN MENU_H COPYRIGHT 1985, VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225 ENDI`H KEYPRESS"^H:: CLEAR SCREEN+^HPPL2^HJ:^DH:@^XHL^` ***c^j ERROR HANDLING ^t(222)255Ĺ216,0:8,0:: CONTROL C^(222)6Ğ:"FILE NOT FOUND":^(222)9Ğ:"DISK FULL":^d198: RING BELL_EL(219)256(218):Lĺ"READING # ";J:18300=]jG"READINGS # ";J(PHPL)" TO ";JZ]|GKP,0: CLEAR KEYBOARD]G"PRESS TO CONTINUE OR"]G"PRESS TO EXIT THIS OPTION";]GKB(KC):KP,0]GKB27KB15518500: EXIT ON ^GKB12818380: WAIT FORF -------------------------->\PF LARGE PRINT DATA TABLE:W\F: LO-RES GRAPHICSb\F:PPL\FJ1N: FOR EACH READING\FNUTE(J)\G200\GPR$NU$\,GHP0:VP10P\@G400\JGPP1\TGPPH18460: SKIP CLEARING SCREEN\^G]hGPHPL RUNS![CPPL: SET LOW PROBE,[CJ1NX[CC(TTJ2)(UUJ2)CC: READ COUNTS~[CV((CFF)VR)VM: RAW VOLTAGE[CTE(J)I1(P)SL(P)(VV1(P))[CTI(J)J(ZZDY): DELAY IN MSEC.[CPP1:PPHPPL[C[E800: DATA TABLE[FF\PPOKE NUMBER OF RUNS TIMES 2AZB251,PL:206,PH: PROBE STATUS _ZB(KC)16017140: WAITiZBKP,0Z0C33586: READ INPUT IN MACHINE CODEZDC(22):" CALCULATING VALUES... "[CN((254)CC(255))2: READ NUMBER OF ACTUAO 256 MILLISECONDS "(YrB"[MINIMUM]";Q$KY|BDY(Q$):235,DY: POKE DELAY|YB:"ENTER NUMBER OF MEASUREMENTS TO BE MADE"YB"[100] ";Q$:Q$""Q$"100"YB34560: MACHINE CODE TO SET-UP TEXT SCREENZBN2(Q$):252,N(NCC)CC:253,(NCC): E ON AND3XxA"OFF IN RESPONSE TO THE INPUT SIGNAL.`XA:"PRESS ANY KEY TO EXIT THIS ROUTINE."tXA33748: TESTzXBXhB COLLECT AND STORE DATA (BOARD)XkBHL$" TIME ":HU$"MSEC."XmB"SELECT DELAY TIME IN MILLISECONDS"YpB"RANGE:0.0001 T0:+W@1700: CALCULATE SLOPES, PL AND PH=W@I$"B"16900OWA1800: POKESgW!U> SELECT PROBES7Up?"SELECT PROBES:"AU?32,7GU?aU?"A = PROBE A ONLY{U?"B = PROBE B ONLYU?"C = PROBE C ONLYU?I$"B"16320U?"D = PROBE D ONLYU?"AB = PROBES A AND BU?I$"B"16370V?"ABC = PASSIGN CL$T( FOR MAIN MENU ";Q$QX4Q6 READ DATAQ6"READ DATA FROM DISK:Q61100: GET FILE NAMER6N$""14300: NO NAME SELECTQQ$(TI(J1))+P336,0:37,(37)1:958EP3J;: PRINT DATA LINE\P3NU(QQ$)OV:1200iP3PPLPHxP3TE(J)T(P)P3TI(J)(NU$): STORE VALUEP3JJ1P3PP3PPLPHP3NUT(P):200: PRINT VALUESP4PP4Q413190: REPEAT L)0: 1ST DEFAULT#Or3J1:(4): :O3100: READ VALUETO3I1100:I: STALLO3(KC)155ĹKP,0:13360: EXIT ON O3(KC)12813300: DON'T STOREO3KP,0O3"ENTER ";HL$;" IN ";HU$;" [";TI(J1);"] ";O3QQ$: READ VALUEP3QQ$"";VU$;")"9NJ3" (";HU$;")";17);"A B C D"gNT3"---------------------------------------NV3(23)::" PRESS TO ENTER VALUES, "NX3" PRESS TO EXIT THIS ROUTINE ";:N^334,3:35,22: SAVE TOP AND BOTTOMOm3TI(0NDENT VARIABLE ["HU$"] "/M2Q$:Q$""HU$Q$XM3:"ENTER OFFSET VALUE (IF AN OFFSET{M 3"VALUE IS ENTERED, IT WILL BEM3"SUBTRACTED FROM EACH ENTRY)"M3"[0] ";Q$M3OV(Q$)M"3:"PRESS TO BEGINM,3Q$N@3:"# ";HL$;20);VL$;" ("DENT VARIABLE)"; TO CONTINUE ";Q$Kv/K2 INPUT VS. KEYBOARD ENTRYK2"THIS MODE ALLOWS YOU TO COLLECT DATAL2"ON THE INPUT SIGNAL (DEPENTTER PART THREE,D1"=J +D$;"RUN VOLTAGE PLOTTER PART TWO,D1"RJ. SAVE DATAkJ."SAVE DATA ON DISK:J.1100: GET FILE NAMEJ.N$""12150: NO NAME SELECTEDJ/D$"OPEN "N$J/D$"WRITE "N$J/HL$:HU$:VL$:VU$J&/J1N1K0/TI(J):TRTION OF THE PROGRAM..."2I +NL$"": NULL STRINGI+VL$VL$NL$:VU$VU$NL$:HL$HL$NL$:HU$HU$NL$:CL$CL$NL$:I$I$NL$: SET STRINGS SO THAT THEY WILL PASS BETWEEN PARTS I+768: SAVE THE VARIABLE TABLE POINTERSJ+M$"Z"ĺD$;"RUN VOLTAGE PLO$TI(J)(J1)(ETDY).5ET: TIME TO MIDPOINTXH$TI(J)(TI(J)10000.5)10000: ROUNDmH$PP1:PPHPPLtH$JH$800: PRINT TABLEH%238,1:T80:1800: RESTORE NORMAL SAMPLE TIMEH%H* RUN PART TWO OF PROGRAMI +"LOADING THAT PO(254)CC(255))2: READ NUMBER OF ACTUAL RUNSSG$PPL: START WITH LOW PROBEjG$J1N: PEEK DATAG$C(TTJ2)(UUJ2)CC: READ COUNTSG$V(CET)1000: RAW INPUT READINGG$TE(J)I1(P)SL(P)(VV1(P)): CALC. CORRECTED READING-H^$(KC)1609310: WAIT FOR SPACE BAR1Fh$KP,0rFr$252,(N2)(N2256)256:253,((N2)256): POKE # OF RUNSF|$PB4Č33920:9360: READ TWO DIFFERENT INPUTSF$33536: READ COUNTS:F$(22):" CALCULATING VALUES... "3G$N(E#"[MINIMUM] ";Q$:DY(Q$)3E$DY0DY259180WE$DDY10: TIME DELAY TO 0.1 SECuE$235,D: POKE DELAY TIMEE,$:"ENTER # OF READINGS TO BE MADE [100] ";Q$E6$Q$""Q$"100"E@$N(Q$):EJ$N0N5129250ET$34560: SET UP TEXT SCREEN'FLUE ";.D#"["ET"] ";:"";Q$:Q$""ET(Q$)FD#ET.02ET1.29050dD#T(((ETCPS3)4867).5)D#1800: POKE CT PARAMETERS D#D#"ENTER DELAY TIME - THE LENGTH OF TIME IN";D#"SECONDS BETWEEN SAMPLE PERIODS.E#"RANGE: .00011 TO 25 SEC :.CZ#"ENTER SAMPLE TIME - THE LENGTH OF TIME[Cd#"(IN SECONDS) DURING WHICH INPUT SIGNALCn#"IS MONITORED BEFORE A READING ISCx#"DISPLAYED. THE RANGE AND THE CURRENTC#"VALUE ARE SHOWN BELOW. C#C#"RANGE .02 - 1.2 SECONDSD#"CURRENT VANDENT VARIABLE UNITS":"[";VU$;"] ";:Q$:Q$""VU$Q$YB800: DISPLAY UPDATED TABLE_B B(# COLLECT AND STORE DATA (VIU)B2#33789: CLEAR MEMORYB<#HL$" TIME ": TIME, NOT PRINTED AS HH:MM:SSBF#CP# CHANGE SAMPLE TIME (VIU INPUT)7175: NO CHANGES]A:"ENTER INDEPENDENT VARIABLE LABEL":"[";HL$;"]";:Q$:Q$""HL$Q$A"ENTER INDEPENDENT VARIABLE UNITS":"[";HU$;"] ";:Q$:Q$""HU$Q$A"ENTER DEPENDENT VARIABLE LABEL":"[";VL$;"] ";:Q$:Q$""VL$Q$7B"ENTER DEPENDELETE DELETED ZERO@DE"@P@DLDHĺ"DATA ENTRY #"DL" DELETED.":7090@"DATA ENTRIES ";DL" TO ";DH;" DELETED.":7090@N07180: NO DATA@:"DO YOU WANT TO MAKE ANY CHANGES TO THE"A"LABELS OR UNITS? [N] ";:"";Q$:(Q$,1)"Y"(Q$,DP)):DH((Q$,(Q$)DP)): READ TWO VALUESC?DL0DLN7090W?DH0DHN7090e?DEDLDH?TI(DE)0TI(DE)1E30:7142: ARBITRARY IDENTIFIER OF DELETED ZERO?TI(DE)TI(DE): SET DELETED VALUE MARKER@TI(DE)1E30TI(DE)0: U,)>"MAKE NO ENTRY AND PRESS .8>"[0] ";Q$Q>(Q$)07165: EXITZ>DP0>CH1(Q$):(Q$,CH,1)"-"DPCH: FIND HYPEN>CH>DP0DL(Q$):DHDL:7120: SINGLE ENTRY>DP(Q$)DL(Q$):DHN:7120: END SELECTION/?DL( NUMBER(S) TO BE DELETEDE=:"TO DELETE A SINGLE VALUE, ENTER ITS k="LINE NUMBER AND PRESS .=:"TO DELETE A RANGE OF VALUES, ENTER ="THE FIRST LINE # - LAST LINE #="AND PRESS .>:"WHEN ALL DELETIONS HAVE BEEN MADEE DATA+ FOR SCREEN DISPLAY;"[0] ";Q$:PR(Q$);PR0ĺD$"PR#";PR: TURN ON PRINTER;800: PRINT DATA TABLE; FOR MAIN MENU ";Q$u9$9 LARGE DIGIT DISPLAY921:2::"PRESS TO EXIT THIS ROUTINE"9991009PPLPH:HP0:VPP92: PRINT TIME (SINGLE READING)X8TRTI(PB3):300: PRINT TIME (MULTIPLE READINGS)e8PPLPH8NUT(P):200: PRINT8(KC)1284560:KEYPRESS8P88ST$"Y"JNN4370: REPEAT8 --- BOTTOM OF LOOP ---8:KP,0'9ST$50: STORE TIME (SINGLE READING)`7SI180:I: STALL A BIT TO MAKE TIMES COME OUT AT 1 SEC7XTI(J)TI(PB3P): STORE TIME (MULTIPLE READING)7bJJ1: INCREMENT DATA LINE7lTLTI: NOTE TIME OF LAST READING7vP8PB4TRTI:300:4500::TI1:TL1E38: INIT./6 -- TOP OF LOOP --F6100: READ VALUESy6(KC)127(239)14560: EXIT ON KEYPRESS6&ST$"Y"TITLTD4480: DON'T STORE60J;: PRINT DATA LINE6:PPLPH6DTE(J)T(P): STORE VALUE 7NPB4TI(J)TI:44O BEGIN MEASUREMENTS":"";Q$U5|:::" PRESS TO EXIT THIS ROUTINE ";:}5"# TIME";20);VL$;" (";VU$;")"5" (HH:MM:SS) A B C D5"---------------------------------------534,4: SAVE TOP5KP,06J1TD(Q$)60+46(Q$,1)"H"TD(Q$)3600C4@TD0TD864004060I4Jo4T"ENTER NUMBER OF MEASUREMENTS TO4^"BE MADE [512] ";:Q$4hQ$""Q$"512":DEFAULT4rN(Q$)4sN0N51241704tNNN4wPB3NNNN(PB3)5y:"PRESS TTIME (THE LENGTH OF TIME03"BETWEEN READINGS)63W3"ENTER NUMBER OF SECONDS OR3"NUMBER OF MINUTES FOLLOWED BY AN 'M'3"OR NUMBER OF HOURS FOLLOWED BY AN 'H'33"MIN: 1 SEC, MAX: 24 HOURS ":"[1] ";Q$3"TD(Q$) 4,(Q$,1)"M"002z M$"S"İ1200062 M$"P"11000: RUN PART TWON2 2500: REPEAT LOOPZ2 *****o2 MONITOR INPUT2"DO YOU WANT TO SAVE DATA IN MEMORY? ";2"[N] ";ST$:ST$(ST$,1)2ST$"Y"42202HL$"TIME":HU$"SEC."23"SELECT DELAY 140001 M$"Z"İ11000:1 M$"R"11000: RUN PART TWO14 N2ĭM$"T"M$"D"M$"P"M$"S"M$"B"ĺ:10::"NO DATA TABLE IN MEMORY"::I1999:I:25001H MODES BELOW REQUIRE A FILE IN MEMORY:1\ M$"T"İ60001f M$"B"İ180002p M$"D"İ70 ******0 R0 M$"Q"Ĺ216,0:8,0:38400:: RESET NORMAL POINTERS AND QUIT d0 M$"M"İ4000v0 M$"L"İ50000 M$"C"I$"B"İ17000: BOARD0 M$"C"I$"B"İ9000: VIU0 M$"K"İ130000 M$"X"İ150000 M$"Y"İ160001 M$"E" CALIBRATION/ "Q = QUIT;/0 32,0: RESTORE LEFT MARGINx/D TI(N1)9999:TE(N1)9999: MARKERS FOR END OF DATA FILE/X XX(0): STRING VARIABLE HOUSEKEEPING/l " ";M$:M$(M$,1)/ KP,0: CLEAR KEYBOARD STROBE/ 8,1: SET START UP FLAG0 DATA TABLE,.J "B = LARGE PRINT DATA TABLEB.T "D = DELETE DATA^.h "S = SAVE DATA TO DISK|.| "E = LOAD DATA FROM DISK. "P = PLOT GRAPH OF DATA IN MEMORY. "R = GRAPH INPUT IN REAL TIME. "X = SELECT CLOCK. "Y = SELECT PROBES" / "Z =BES: ";"- 1400: PROBE STATUS,- ::@- "SELECT MODE: X- 32,2:: TAB INy- "M = MONITOR INPUT VS. TIME-, "L = LARGE PRINT DISPLAY-1 "C = COLLECT AND STORE DATA-6 "K = MONITOR INPUT VS. KEYBOARD ENTRIES .@ "T = DISPLAY OR PRINT FOLLOWS:(, PR0: SET OUTPUT DEVICEC, KP,0: CLEAR KEYBOARDd, " VOLTAGE PLOTTER, " VERNIER SOFTWARE,( " COPYRIGHT 1985,K ,P :"INPUT:";VL$;" (";VU$;")";, 28);:I$"B"ĺ" VIU: ";:2750- "PROTTERSs+D$;"BLOAD LINK": LOAD MACHINE CODE PROGRAM WHICH ALLOWS PASSING VARIABLES BETWEEN PARTS OF THE PROGRAM+D$;"BLOAD IMAGE.HIRES.$9000.OBJ0": IMAGEWRITER DUMP ROUTINE+ RESTART HERE -----+ 60000: ERROR HANDLING , :: MENUD$"BLOAD HGR LETTERS,A$8000": LETTERS USED IN GRAPHSv*D$;"BLOAD TEXT.BKG,A$8800": TEXT BACKGROUND SCREEN*D$;"BLOAD MOVER": MACHINE CODE TO SETUP TEXT BACKGROUND SCREEN +D$;"BLOAD LARGE PRINT": ROUTINE WHICH DRAWS LARGE PRINT LE."1)N$"STARTUP": SET UP TO READ STARTUP FILET)900: READ PARA.STARTUP FILEp)1700: SET UP PROBES)::"PARAMETERS FILE BEING USED: ")32,5:: INDENT)TI$:NA$:DT$:VL$;" (";VU$;")":"PROBES: ";:1400::32,0: FILE INFO:*CODE TO READ VIU-(CPS1.023E6: CLOCK FREQn(M1:T80:D0: SET DEFAULT VALUES (SEE ALSO LINE 9360)( CALCULATE CT PARAMETERS:(1800: SET COUNT PARAMETERS AND PB( -------(::10: CLEAR SCREEN)"LOADING NECESSARY FILES.. VOLT RANGE@'BA49312: (SLOT #2) CHANGE TO USE ANOTHER SLOT'BA1,0:BA3,0:BA,0:BA2,240:BA1,4:BA3,60: SET UP PIA ON BOARD'2232: SKIP NEXT SECTION IF USING BOARD' -------' SET UP VIU(D$;"BLOAD VOLTS.V": MACHINE V (SWITCHES #2 & #4)&8&"[C] ";Q$:Q$""Q$"C"Z&Q$"A"Q$"B"Q$"C"2182w&Q$"A"VM0: MIN = 0&Q$"B"VM5: MIN = -5&Q$"C"VM10: MIN = -10&Q$"C"VR20: 20 VOLT RANGE 'Q$"A"Q$"B"VR10: 10%D$;"BLOAD VOLTS.B.2": MACHINE CODE TO READ BOARD (SLOT 2)r%::"INTERFACING BOARD MUST BE IN SLOT #2":%"SELECT INPUT VOLTAGE RANGE:":%"A = 0 TO +10 V (SWITCHES #1 & #3)%"B = -5 TO +5 V (SWITCHES #1 & #4)&"C = -10 TO +10::10:"PLEASE IDENTIFY THE TYPE OF INPUT DEVICE";L$r"YOU WILL BE USING:k$t:"V = VOLTAGE INPUT UNIT$v"B = ADVANCED INTERFACING BOARD$x:"[V] ";I$:I$""I$"V": DEFAULT IS VIU $zI$"B"2219: SKIP AHEAD TO VIU$ --------@MEE#aZZ.166178: TIME TAKEN FOR ONE MODE C READ OF BOARD (IN MS)#cDV16: NOISE AVERAGING LOOP LIMIT (BOARD) #fMM60:HH3600:DD86400: TIME CONSTANTS#gCL$"S":CL4: DEFAULT CLOCK PARAMETERS (SOFTWARE, SLOT 4)#k ------3$p4232,00:233,128: SET SHAPETABLE POINTER TO $8000`"H1: ALL HI-RES SHAPES AT SMALLEST SIZE"MLL(10): USED IN MODE B SCALING"RKP49168:KC49152: KEYBOARD MEMORY LOCATIONS#\CC256:TT35838:UU35839:FF4096: CONSTANTS USED TO SAVE TI000 TO PROTECT OTHER FILES=!TI(513),TE(513): DATA ARRAYSy! I1(3),I2(3),V1(3),V2(3),SL(3): CALIBRATION FACTORS!N(4),M(3),D(3),Q(3),S(3),MI(3),MA(3): STATISTICS!T(3),V(3),XL(3),YL(3): TEMPORARY READINGS!D$(4): CONTROL D4"ATION b'  ****** MAIN PROGRAM>  VOLTAGE PLOTTERU  COPYRIGHT 1985 o  VERNIER SOFTWARE  2920 S.W. 89TH PORTLAND, OR 97225 25344: SET LOMEM TO $6300 (ABOVE HGR2 AND LARGE PRINT MACHINE CODE)!32768: SET HIMEM TO $8CPSD.1N235,D: DELAY7U238,M: START UP FLAGhVPB4P2(P2)PP97:1885: SET FOR EVENXPB4PP98:1885: SET FOR ODDZPPPB97: CALC. POKE NUMBER ]33565,PP:33575,PP:33632,PP:33649,PP:33757,PP:33770,PP: POKE INPUT LOCV1(P)): CALCULATE SLOPE PCPL0:PB4PLPB:LOWEST PROBEmPHPB:PB3PHPB3: HIGHEST PROBEs CALCULATE AND POKE CT PARAMETERS-VIU ET(19T2563(T1))CPS: CALCULATE ELAPSED TIME0206,256T: COUNT CYCLES DDY132 x PROBE STATUS &P03hPPLPPHĺ" ";:1440: PRINT SPACE TO SHOW THE PROBE IS OFF(193P);: PRINT LETTER; PROBE 'ON'P: SET UP PROBES P03V1(P)V2(P)SL(P)0:1730SL(P)(I2(P)I1(P))(V2(P)NU(NUFCTR.5)FCTR: SIG. FIGS.SNU$(NU):(NU$)4ĭ(NU)NUNU$NU$"."(NU$)5NU$NU$"000":NU$(NU$,4(NU.1))NU$SN$NU$NU0.01NU$"#"SN$"0.00":1251(NU$)6NU$SN$"#####"(5): TAB OVER TO NU$;D$"CATALOG ,D"(N$,2)::1110#P ROUND AND PRINT INDEPENDENT VARIABLE[SN$""vNU0SN$"-":NU(NU)NU01236PWR1NU11227NUPWRPWRPWR10:12211230NUPWR10PWRPWR10:1227FCTR1000(PWR10)%OSE PARA.";N$)L GET FILE NAME GV:"ENTER NAME OF FILE ORmb"'C', 'C1', 'C2' FOR CATALOG ORf"PRESS TO EXITh:"(ACTIVE DISK DRIVE = ";:(43624);")jt"";N$~N$"C"ĺD$"CATALOG"::1110N$"C1"N$"C2"ĺ";:"";Q$+34,0:35,24: RESTORE WINDOW1N READ PARAMETERS FILE eD$"OPEN PARA.";N$|D$"READ PARA.";N$TI$,DT$,NAME$VL$:VU$HL$:HU$I03I1(I):I2(I):V1(I):V2(I)IPB: PROBE STATUS D$"CLP):200:Pp:"S.D.";6rPPLPH:NUD(P):200:PEt:"MAX.";cvPPLPH:NUMA(P):200:Prx:"MIN.";zPPLPH:NUMI(P):200:P|:D$"PR#0": TURN OFF PRINTER}KP,0: CLEAR KEYBOARD ~24:"PRESS TO CONTINUE (P): MEAN9]N1D(P)0:864:: S.D. IF ONLY ONE ITEMp^D(P)((Q(P)N(P)M(P)M(P))(N(P)1)): STD DEVw`Pf"---------------------------------------": PRINT STATS:h:"#";jPPLPH:NUN(P):200:Pl:"MEAN"; nPPLPH:NUM((P)N(P)1:S(P)S(P)TE(J):Q(P)Q(P)TE(J)TE(J): UPDATE STATS FOR THAT PROBEyHTE(J)MI(P)MI(P)TE(J): MIN VALUESJTE(J)MA(P)MA(P)TE(J): MAX VALUESRPB3PP1:PPB3P0TJV CALCULATE STATS:XZPPLPH \M(P)S(P)NKB155831: SPACE BAR, A, OR ESC.@22:yAJ;:HL$"TIME"TR(TI(J)):300:835: PRINT # AND TIME ON NEW LINEBNU(TI(J)):1200: PRINT INDEPENDENT VARIABLE IF NOT TIMECTI(J)0850: DELETED DATADNUTE(J):200: PRINT DATAOFNC)27(KC)155892: ESCAPE?:PB3P0835: NO NEW LINEa;(36)0PR0ĺ: NEXT LINE<PR0(37)22KB193833: SKIP SCROLLING MESSAGE>24:1::" PRESS , OR ";:$?KB(KC):KP,0:KB160KB193KB2723: SET TEXT WINDOW,P03H.N(P)0:S(P)0:Q(P)0: INIT. TOTALSq0MI(P)1E38:MA(P)1E38: MIN AND MAXx2P4PPB:PB3P0: IF MORE THAN 1, PROBE START WITH #05KB0: INIT KEYBOARD STATUS6 ---TOP OF LOOP---8J1N9(KHPHP6: STEP OVER CH&?  PRINT DATA TABLE g$:"# ";HL$;20);VL$;" (";VU$;")"%HL$"TIME"ĺ" (";HU$;")":807&" (HH:MM:SS)'17);"A B C D"("--------------------------------------*34,3:35,PR$PR$" ":PR$(PR$,6)0CH1(PR$)GAC((PR$,CH,1))|AC35AC90AC32: TREAT OTHERS AS A SPACEAC69AC8: USE SMALL E24576,HP:24577,VP: STARTING SPOT28,AC: POKE CHARACTER24592: DISPLAY CHARACTER(MI)":":MI10MI$"0"MI$>JSE$(SE):SE10SE$"0"SE$ST5:HR$;MI$;SE$;Yx LARGE PRINT SUBROUTINE PR$""Ĺ28,0:24576,HP:24577,VP:24592:451: CLEAR LINEPR$"PH"Ĺ28,4:24576,HP:24577,VP:24592:451: PH CHARACTER'NU$; )3+ PRINT TIME IN HH:MM:SS FORMAT C,HR(TRHH)[.MI((TRHRHH)MM)0SE((TRHRHHMIMM)10.5)101HR0HR$" ":3123HR24HRHR(HR24)246HR$(HR)":":HR10HR$" "HR$8MI0HR0MI$" ":330@MI$NUFCTR.5)FCTR: SIG. FIGS.LNU$(NU):(NU$)4ĭ(NU)NUNU$NU$"."}(NU$)5NU$NU$"000":NU$(NU$,4(NU.1))NU$SN$NU$: ADD SIGNNU0.01NU$"#"SN$"0.00":289 (NU$)6NU$SN$"#####"!(15P7): TAB OVERALUE READ = ROUND TO SIG FIGS AND PRINT IN COLUMNS H SN$""c NU0SN$"-":NU(NU) NU0284: SKIP ROUNDING PWR1 NU1260 NUPWRPWRPWR10:240 270 NUPWR10PWRPWR10:260 FCTR1000(PWR10)NU(FTWARE CLOCK? D$;"PR#";CL:D$;"IN#";CL: TURN ON CLOCKU CL$"T"Ą" ";TI$g CL$"M"ĄTI$ TI((TI$,6))((TI$,10,2))MM((TI$,7,2))HH((TI$,4,2))DD D$;"PR#0":D$;"IN#0": TURN OFF CLOCK P PP1: SET P TO LAST V,0: POKE FOR ONE READING3 1800: SET PROBEO 33536: READ COUNTS:f C(250)CC(251) V(CET)1000: RAW INPUT READING ----- T(P)I1(P)SL(P)(VV1(P)): CALC. CORRECTED READING CL$"S"M$"M"TITI1:165: SO AND LOW BYTE AT $6:' tCCC(7)(6)A v*** ACCUMULATE TOTALM xTVTVC y(KC)127TVTVDVI:IDV: EXIT EARLY; PRORATE TOTAL zI |AVTVDV V((AVFF)VR)VM: CALC. RAW INPUT 147 ------ VIU READ 252,2:253 - 2 FREQUENTLY USED SUBROUTINES FOLLOW:B c READ INPUT k dPPLPH: LOW PROBE TO HIGH PROBE fI$"B"140: READ VIU h *** LOOP TO AVERAGE NOISE jTV0 nI1DV p250,P:33536: READ PROBE r HIGH BYTE FROM $7W  VOLTAGE PLOTTER PART ONE9 VERNIER SOFTWAREP COPYRIGHT 1985i! VERSION 122285&(8)02000: INITIAL START UP( RERUN START UP)779: RESTORE VARIABLES POINTERS+2490: RESTART, SKIP INITIALIZATION -                                                     @pqpp@@p` p xgp~p?@spxiDgc@ y  @ p C@ < x@@C@a00000H`w~~@00x?` 00C| @x`pp@@   pGp|p~@c @` @  @ 8`wC@ <`@CC@a0` 000Nr@CC@a00 000  @<@|pp@@@  ~xp  `pxp|@Cp @@ppxp  @ ~@ppL@CC@a0` 000BBw@CC@a00 000 @|pp@@x``  ~xp   |w~@ppL~~@CC0xx?BBCC@a0x?000 |pp@@pp $`ypx0 `pp|@ C@   ~@~~@CC0xx?"FCC@a0x?000 pp@p@ yp D'D@  ppp~@ C@  p@`@<|`?*U*U*U*U*U@"D~@C@a00xx0`|||| ?pp@p@ $$D@  0@?xpp@ |C@|  p@`@<|xj*U*U*U*U*U@L~@C@a00xx0`|||| pp@p@? $$D@pq @`{pp@@ FC@|  pOs?~~~@00x?` 00C|\**U*U*U*U*U@@ pH@@C@a00000        LZLݵܵߵ޵ ^`8ܵ i B8` LֵȱB׵` DȑB׵Bֵ յյ``y¹?`wa_LʬOˬ̬čPQ` H hBLµ* `Loõĵֵ׵ Rĵµѭ H hBLL B ڬ L -յյµ% `õĵֵ׵ Rĵµ˭ B ڬ   NE"  8,0: SET START UP FLAG (4);"BRUN SPEEDOS": DOS ENHANCEMENT; YOU MAY NEED TO DELETE THIS STATEMENT TO RUN THIS PROGRAM ON A HARD DISK SYSTEM (4);"BLOAD VOLTAGE PLOTTER LOGO,A$4000"(4);"RUN VOLTAGE PLOTTER PART ONE" E hh` LH LhLLɾ 46` `@@AABBCC(@@(AA(BB(CCP@@PAAPBBPCC ) )D ) ) )JJJJ)  `l)` ) 8=5 + ) 1 )Z ) )` "ȱXȱ0`I)p2h`h4 ,ȱH% `HI)ph`) LSi0LꑅLS,LL0L(L_,0  Ƒ )F ) 8i  Ƒ )G ) L_ . 8  $ . `  ) L` *  . . 0 ` )A ) )cLLŠǠ ; ) )jjj) ) )n ) )T )1 )6 )ϩυ 34i$%f$fʊ iL$pI, )LL$, ) I $0Lc,0L8LL_ ) 0fO`Of` ȱ " <@Șwɀ LɌ`bbbAAyIIOIIIOIIyIIyII ||III6>AAA"AAA>IIIA >AAQqAA @@@?"A@@@@ >AAA> >AQ!^ )F&III2?@@@? @   ccxaQIEC>@dTL|``bbb````bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbb#b(b-bbbbbbbb2b8b>bDbJbPbVb\bbbhbnbtbzbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb```a s` j` Z```m```m` ``۩````` dn` d````ȱ`````(AAc"A OIIyIIIAAcIIIyIIIAAAAc    SӠŠҾϠԠӠξϠԠz#   ̠ ̮à Ƞ ŠŭĠŠȭĠ  РҠӠԮǠ ŠԠҠˠŮӮʰ  Ӯ® Ӯ®Ӯ®Ӯ®Ӯ®Ӯ® Ӯ®Ϡ Ӡ ŠҠϠ" ŠҠԠŠZ ŠҠԠϠ9ŠҠԠŠ3Ӯ֠Q"C = MANUAL SCALING&+Q:"[A] ";Q$5+QQ$(Q$,1)G+QQ$"B"20970Y+QQ$"C"21050g+Q A +QHS0:XS(XMAX)265: MODE A ALWAYS STARTS AT 0+QNUXS:1500:XSNU+Q21150+Q B,QHS(MX): HS WILL EVENTUALLY BE STARTING EACH SPACE VERTICALLY0*JQNU(YMAXVS)160:1500F*TQ"[";NU;"] ";:Q$^*^QQ$""YSNU:20850k*hQYS(Q$)*rQ:"SELECT HORIZONTAL AXIS SCALING MODE: *|Q:"A = AUTOMATIC SCALING WITH ORIGIN AT 0"*Q"B = AUTOMATIC SCALING, VARIABLE ORIGIN+19)CC(218): ERROR LINE #E)(222)6Ğ:"FILE NOT FOUND":d)(222)9Ğ:"DISK FULL":):"*** ERROR ON LINE ";EL;" ***":)II1900:II)3288: CLEAR STACK)2500 09":"[0] ";Q$:VS(Q$)*@Q"ENTER VALUE FOR 2920 S.W. 89TH ST.X(< PORTLAND, OR 97225(< (503) 297-5317(` ERROR HANDLING ROUTINE (t(222)255Ĺ216,0:8,0:: CNTRL C (~198: BELL!)EL(2A ON DISK?"'*"[N] ";Q$2'*(Q$,1)"Y"10890H'!*1100: SLOPES`'#*1000: SAVE FILE}'*10000: END OF ROUTINE'* '*'< COPYRIGHT 1985'< VERNIER SOFTWARE&(< 1900:II-&3288: CLEAR STACK7&2500)"ENTER THE INPUT SIGNAL VALUE:}&)VL$;:VU$""ĺ" (IN ";VU$;")"&)" = ";Q$&)PPLPH&)V2(P)(Q$)&)F2(P)C(P)&)P&)1700: GET SLOPES '):"SAVE THIS CALIBRATION DAT ERROR HANDLING ROUTINE K%t(222)255Ĺ216,0:8,0:: CNTRL C a%~198: BELL%EL(219)CC(218): ERROR LINE #%(222)6Ğ:"FILE NOT FOUND":%(222)9Ğ:"DISK FULL":%:"*** ERROR ON LINE ";EL;" ***": &II*0$< COPYRIGHT 1985`$< VERNIER SOFTWARE$< 2920 S.W. 89TH ST.$< PORTLAND, OR 97225$< (503) 297-5317%` FOUND":'#(222)9Ğ:"DISK FULL":O#:"*** ERROR ON LINE ";EL;" ***":a#II1900:IIz#3288: CLEAR STACK#2500LEAR STACK#2500CLEAR STACK#2500STACK#2500TILE#*10000: END OF ROUTINE#* $ VERNIER SOFTWARE,"< 2920 S.W. 89TH ST.G"< PORTLAND, OR 97225^"< (503) 297-5317"` ERROR HANDLING ROUTINE "t(222)255Ĺ216,0:8,0:: CNTRL C"~198: BELL"EL(219)CC(218): ERROR LINE ##(222)6Ğ:"FILE NOT !)V2(P)V(P)!)P/!)1700: GET SLOPES\!):"SAVE THIS CALIBRATION DATA ON DISK?"k!*"[N] ";Q$!*(Q$,1)"Y"10890!!*1100: GET FILE NAME!#*1000: SAVE FILE!*10000: END OF ROUTINE!* !*!< COPYRIGHT 1985"< ):"PLACE THE PROBES ACROSS THE SECONDS )"INPUT SIGNAL. WHEN THE READINGS HAVE t )"REACHED EQUILIBRIUM AGAIN, )1300: READ INPUT )"ENTER THE INPUT SIGNAL VALUE: )VL$;:VU$""ĺ" (IN ";VU$;") "; )" = ";Q$ )PPLPH!)I2(P)(Q$)ACTIVE"0~)"PROBE WILL BE DISPLAYED. WHEN THEY)"READINGS HAVE REACHED EQUILIBRIUM,q)1300: READ INPUTS)"ENTER THE INPUT SIGNAL VALUE:)VL$;:VU$""ĺ" (IN ";VU$;") ";)" = ";Q$)PPLPH)I1(P)(Q$))V1(P)V(P))P' :"WHAT INPUT SIGNAL IS GOING TO BE USED?":"[";VL$;"] ";:Q$:Q$""VL$(Q$,10)y):"WHAT ARE THE UNITS OF THE INPUT SIGNAL":"[";VU$;"] ";:Q$:Q$""VU$(Q$,10)z):"PLACE THE PROBES ACROSS THE FIRST INPUT{)"SIGNAL. THE READING FROM EACH ARD2q):"TO CALIBRATE THE PROBES, YOU WILL NEEDYr)"TO CONNECT THE PROBES ACROSS TWOs)"KNOWN INPUT SIGNALS. ONLY ACTIVE t)"PROBES WILL BE RECALIBRATED.u)v)"FIRST YOU NEED TO IDENTIFY THE INPUT w)"SIGNAL WHICH WILL BE USED. Rx)! THIS MODE WILL CHANGE THE"Gk)"CALIBRATION OF ALL ACTIVE PROBES.":sl)"CURRENTLY ACTIVE PROBES: ";:1400::m)" TO CONTINUE, TO EXIT."n)(KC)155ĹKP,0:10890: EXITo)(KC)14110606: NOT RETURNp)KP,0: CLEAR KEYBOօץ,08,c0,0.,cצ֝ LMLY`',c,c0LYLYLjLjiȥLLLу,0 ʊL+L΃L`,0,c00,0,cL׃`O2700 8,0:: CNTRL C /8~198: BELL[8EL(219)CC(218): ERROR LINE #8(222)6Ğ:"FILE NOT FOUND":8(222)9Ğ:"DISK FULL":8:"*** ERROR ON LINE ";EL;" ***":8II1900:II83288: CLEAR STACK9 EXIT7yJJ17yPC7y31010: REPEAT LOOPM7zNJ1W7z19007zQ$"R"30400: GRAPH, SAME SCALE7zQ$"S"30000: START GRAPHING ANEW7z7` ERROR HANDLING ROUTINE 8t(222)255Ĺ216,0: READ INPUTE6,y(KC)12731400: EXITR66yPPLPHa6JyTE(J)T(P)6TyPB4TI(J)TI:31100: SINGLE READING6^yTI(J)TI(PB3P): MULT. READINGS6|y600: PLOT 7yXP27731400: . SCALE,5vDF1: DIVISION FACTOR^5$w1600: SET UP GRAPH5x PLOT POINTS:5yPPB:PB3P0: START WITH 1ST PROBE5yJ1:TI15y TOP OF LOOP6"y100: ORIGINN44vYS(MAMI)100: VERT SCALINGx4v"ENTER STEP-OVER (THE DISTANCE HORI-4v"ZONTALLY BETWEEN POINTS ON THE GRAPH)4v"[5]";Q$:Q$""Q$"5"4vSO(Q$):SO1SO20304005vXS1SO: HORZTER MAXIMUM VALUE ANTICIPATED FORD3u"VERTICAL AXIS ":"[3.0] ";Q$X3vQ$""Q$"3.0"e3vMA(Q$)3v:"ENTER MINIMUM VALUE ANTICIPATED FOR3 v"VERTICAL AXIS ":"[0] ";Q$3 vMI(Q$)3 v3*v SCALING4/vHS0:VSMI: SV11:H1407((PR$)2)!2S700)2SQ$N2X1900: OPTIONS MENU2XQ$"R"Đ:20982: RESTART GRAPHING2XQ$"S"20000: GRAPHING DIFF SCALE2`Y2tY 20u"GRAPH IN REAL TIME:":!3u"EN((176V)YSVSB)AHS)XS15)/1RSX0,Y0X9,Y9a1\S(S$,1)"S"21400: SKIP STATISTICS1fSNUMA:200:PR$"A= "(NUM)" "1pSNUMB:200:PR$PR$"B= "(NUM)" "1zSNUMRX:200:PR$PR$"R= "(NUM): STAT. STRING COMPLETE2HSVS)YS)10 SY0Y0(Y0176Y00)176(Y0176)W0SY9(176(BA(HS264XS)VS)YS)}0 SY9Y9(Y9176Y90)176(Y9176)0*SH15:VY004SX0H(V0V176)(V0V176)((((176V)YSVSB)AHS)XS15)0>SH279:VY91HSX9H(V0V176)(V0V176)(( PLOT:/R(KC)27(KC)155JN:KP,0: EXITe/RPBPPP1:PPB3P0: ACTIVE PROBEl/RJ/R(S$,1)"R"(S$,1)"S"21400: SKIP DRAWING REGRESSION LINE/R500: CALCULATE REGRESSION FIT 0SY0(176(BAQ$.RQ$""XSNU:21150(.RXS(Q$)?.R ---t.R1600: SET UP GRAPH.R PLOT POINTS.RPPB:PB3P0: START WITH FIRST PROBE.RJ1N.RTI(J)021220: DELETED DATA/R600: ""-NRMX;" TO ";:NUXMAX:200:NUF-XR"THE SCREEN IS 260 SPACES WIDE-bR:"ENTER STARTING VALUE FOR HORIZONTAL AXIS":"[";MX;"] ";:Q$:Q$""HSMX:21110-lRHS(Q$)-vRNU(XMAXHS)260:1500.R"ENTER VALUE OF EACH HORIZONTAL SPACE":"[";NU;"] ":VALUE,QLS((HS)LL)$,QS10LS,,QPSF,QP(XMAXMX)1020984X,QPP10:20980c,QPP10z,QMX0HS(HSP)P,QMX0HS1(HSP)PP,QNU(XMAXHS)265:1500:XSNU,R21150,:R C -DR"RANGE OF HORIZONTAL VALUES TO BE PLOTTED****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,Ùrå****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lꭰȭ)LLLك,0LI`LރLу`y ,Ùrå****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lꭠȭ)LLLك,0LI`LރLу`y ,Ùr å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lꭐȭ)LLLك,0LI`LރLу`y ,Ùr  LLLLiȥL-L-(Ld,0 qʊM脍脍LLaL>a脍`O`*`ɐ`0,`zIER SOFTWARE/&< 2920 S.W. 89TH ST.a&< օץ,08,a0,0.,aצ֝ L̈́Lᄩa脍`',a,a0;5-,<35577,,55-$3.56%%??177---*56??55>?', $,-%%??V177=-$??6-6??$--$??6m16,:>55--=?/8/?'$$-55??2??$$,-5)>>>'$$-.??$,$--E8?7.6&*5>?'$$---$4.6fI&$$/=66>- $66>?',%66fQ!''?R1??$$4<<66fI&$$7.6%$$3=$766 $??66.-%$;xz|~(246?HQSUboy"-7CO\ku%%, >>fI>,$-26-$?26?4-6$-)-7%%%377%%??66%.-%$$7 6>-%%??N2?6---$??2--$-$6--6&?$-̬Įҍ̍Ӎōîå****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,Ùr  å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,Ùr hh` LH LhLLɾ 46` `@@AABBCC(@@(AA(BB(CCP@@PAAPBBPCC ) )D ) ) )JJJJ)  `l)` ) 8=5 + ) 1 )Z ) )` "ȱXȱ0`I)p2h`h4 ,ȱH% `HI)ph`) LSi0LꑅLS,LL0L(L_,0  Ƒ )F ) 8i  Ƒ )G ) L_ . 8  $ . `  ) L` *  . . 0 ` )A ) )cLLŠǠ ; ) )jjj) ) )n ) )T )1 )6 )ϩυ 34i$%f$fʊ iL$pI, )LL$, ) I $0Lc,0L8LL_ ) 0fO`Of` ȱ " <@Șwɀ LɌ`bbbAAyIIOIIIOIIyIIyII ||III6>AAA"AAA>IIIA >AAQqAA @@@?"A@@@@ >AAA> >AQ!^ )F&III2?@@@? @   ccxaQIEC>@dTL|``bbb````bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbb#b(b-bbbbbbbb2b8b>bDbJbPbVb\bbbhbnbtbzbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb```a s` j` Z```m```m` ``۩````` dn` d````ȱ`````(AAc"A OIIyIIIAAcIIIyIIIAAAAc    SӠŠҾϠԠӠξϠԠAKE NO ENTRY AND PRESS ./>"[0] ";Q$H>(Q$)07165: EXITQ>DP0>CH1(Q$):(Q$,CH,1)"-"DPCH: FIND HYPEN>CH>DP0DL(Q$):DHDL:7120: SINGLE ENTRY>DP(Q$)DL(Q$):DHN:7120: END SELECTION&?DL((Q$,DP)):) TO BE DELETED<=:"TO DELETE A SINGLE VALUE, ENTER ITS b="LINE NUMBER AND PRESS .=:"TO DELETE A RANGE OF VALUES, ENTER ="THE FIRST LINE # - LAST LINE #="AND PRESS .=:"WHEN ALL DELETIONS HAVE BEEN MADE, >"MȠĬĮҍȫîȍōîŬĮҍōӍŠîŭĬĮҍЮǮÍōîŬĮҍЮǮÍōîȬĮҍȫîȍōî ̮ìĮҍ̍Ӎōî ̬Įҍ̍Ӎōî0NJ3" (";HU$;")";17);"A B C D"^NT3"---------------------------------------NV3(23)::" PRESS TO ENTER VALUES, "NX3" PRESS TO EXIT THIS ROUTINE ";:N^334,3:35,22: SAVE TOP AND BOTTOMOm3TI(0)0: 1STIABLE ["HU$"] "&M2Q$:Q$""HU$Q$OM3:"ENTER OFFSET VALUE (IF AN OFFSETrM 3"VALUE IS ENTERED, IT WILL BEM3"SUBTRACTED FROM EACH ENTRY)"M3"[0] ";Q$M3OV(Q$)M"3:"PRESS TO BEGINM,3Q$M@3:"# ";HL$;20);VL$;" (";VU$;")"ABLE)";3L2"VS. VALUES YOU ENTER ON THE KEYBOARD QL2"(INDEPENDENT VARIABLE).L2:"FIRST ENTER THE QUANTITY TO BE USED AS "L2"THE INDEPENDENT VARIABLE ["HL$"] "L2Q$:Q$""HL$Q$L2:"ENTER THE UNITS USED WITH THE "M2"INDEPENDENT VARJKD/PB: PROBE SELECTION.KN/D$"CLOSE "N$4KX/]Kb/"DATA SAVED IN A FILE NAMED:":N$:Kl/"PRESS TO CONTINUE ";Q$Kv/K2 INPUT VS. KEYBOARD ENTRYK2"THIS MODE ALLOWS YOU TO COLLECT DATAL2"ON THE INPUT SIGNAL (DEPENDENT VARI THREE,D1"4J +D$;"RUN VOLTAGE PLOTTER PART TWO,D1"IJ. SAVE DATAbJ."SAVE DATA ON DISK:|J.1100: GET FILE NAMEJ.N$""12150: NO NAME SELECTEDJ/D$"OPEN "N$J/D$"WRITE "N$J/HL$:HU$:VL$:VU$J&/J1N1J0/TI(J):TE(J)K:/THE PROGRAM...")I +NL$"": NULL STRINGI+VL$VL$NL$:VU$VU$NL$:HL$HL$NL$:HU$HU$NL$:CL$CL$NL$:I$I$NL$: SET STRINGS SO THAT THEY WILL PASS BETWEEN PARTS I+768: SAVE THE VARIABLE TABLE POINTERS J+M$"Z"ĺD$;"RUN VOLTAGE PLOTTER PART1)(ETDY).5ET: TIME TO MIDPOINTOH$TI(J)(TI(J)10000.5)10000: ROUNDdH$PP1:PPHPPLkH$JH$800: PRINT TABLEH%238,1:T80:1800: RESTORE NORMAL SAMPLE TIMEH%H* RUN PART TWO OF PROGRAMI +"LOADING THAT PORTION OF (255))2: READ NUMBER OF ACTUAL RUNSJG$PPL: START WITH LOW PROBEaG$J1N: PEEK DATAG$C(TTJ2)(UUJ2)CC: READ COUNTSG$V(CET)1000: RAW INPUT READINGG$TE(J)I1(P)SL(P)(VV1(P)): CALC. CORRECTED READING$H$TI(J)(J1609310: WAIT FOR SPACE BAR(Fh$KP,0iFr$252,(N2)(N2256)256:253,((N2)256): POKE # OF RUNSF|$PB4Č33920:9360: READ TWO DIFFERENT INPUTSF$33536: READ COUNTS:F$(22):" CALCULATING VALUES... "*G$N((254)CCINIMUM] ";Q$:DY(Q$)*E$DY0DY259180NE$DDY10: TIME DELAY TO 0.1 SEClE$235,D: POKE DELAY TIMEE,$:"ENTER # OF READINGS TO BE MADE [100] ";Q$E6$Q$""Q$"100"E@$N(Q$):EJ$N0N5129250ET$34560: SET UP TEXT SCREENF^$(KC)Ѫ#"["ET"] ";:"";Q$:Q$""ET(Q$)=D#ET.02ET1.29050[D#T(((ETCPS3)4867).5){D#1800: POKE CT PARAMETERS D#D#"ENTER DELAY TIME - THE LENGTH OF TIME IN";D#"SECONDS BETWEEN SAMPLE PERIODS.D#"RANGE: .00011 TO 25 SEC E#"[MNTER SAMPLE TIME - THE LENGTH OF TIMERCd#"(IN SECONDS) DURING WHICH INPUT SIGNALyCn#"IS MONITORED BEFORE A READING ISCx#"DISPLAYED. THE RANGE AND THE CURRENTC#"VALUE ARE SHOWN BELOW. C#C#"RANGE .02 - 1.2 SECONDSC#"CURRENT VALUE ";%DIABLE UNITS":"[";VU$;"] ";:Q$:Q$""VU$Q$PB800: DISPLAY UPDATED TABLEVB ~B(# COLLECT AND STORE DATA (VIU)B2#33789: CLEAR MEMORYB<#HL$" TIME ": TIME, NOT PRINTED AS HH:MM:SSBF#BP# CHANGE SAMPLE TIME (VIU INPUT):%CZ#"EO CHANGESTA:"ENTER INDEPENDENT VARIABLE LABEL":"[";HL$;"]";:Q$:Q$""HL$Q$A"ENTER INDEPENDENT VARIABLE UNITS":"[";HU$;"] ";:Q$:Q$""HU$Q$A"ENTER DEPENDENT VARIABLE LABEL":"[";VL$;"] ";:Q$:Q$""VL$Q$.B"ENTER DEPENDENT VARELETED ZERO@DE@G@DLDHĺ"DATA ENTRY #"DL" DELETED.":7090z@"DATA ENTRIES ";DL" TO ";DH;" DELETED.":7090@N07180: NO DATA@:"DO YOU WANT TO MAKE ANY CHANGES TO THE" A"LABELS OR UNITS? [N] ";:"";Q$:(Q$,1)"Y"7175: NDH((Q$,(Q$)DP)): READ TWO VALUES:?DL0DLN7090N?DH0DHN7090\?DEDLDH?TI(DE)0TI(DE)1E30:7142: ARBITRARY IDENTIFIER OF DELETED ZERO?TI(DE)TI(DE): SET DELETED VALUE MARKER @TI(DE)1E30TI(DE)0: UNDELETE D^H:: CLEAR SCREEN"^HPPL)^HJ1^DH:7^XHC^` ***Z^j ERROR HANDLING ^t(222)255Ĺ216,0:8,0:: CONTROL C^(222)6Ğ:"FILE NOT FOUND":^(222)9Ğ:"DISK FULL":^d198: RING BELL_EL(219)256(218): LINE NG # ";J:183004]jG"READINGS # ";J(PHPL)" TO ";JQ]|GKP,0: CLEAR KEYBOARDv]G"PRESS TO CONTINUE OR"]G"PRESS TO EXIT THIS OPTION";]GKB(KC):KP,0]GKB27KB15518500: EXIT ON ^GKB12818380: WAIT FOR KEYPRESS--------------------5\PF LARGE PRINT DATA TABLE:N\F: LO-RES GRAPHICSY\F:PPLx\FJ1N: FOR EACH READING\FNUTE(J)\G200\GPR$NU$\,GHP0:VP10P\@G400\JGPP1\TGPPH18460: SKIP CLEARING SCREEN\^G]hGPHPLĺ"READICPPL: SET LOW PROBE#[CJ1NO[CC(TTJ2)(UUJ2)CC: READ COUNTSu[CV((CFF)VR)VM: RAW VOLTAGE[CTE(J)I1(P)SL(P)(VV1(P))[CTI(J)J(ZZDY): DELAY IN MSEC.[CPP1:PPHPPL[C[E800: DATA TABLE[FF\PF ------ER OF RUNS TIMES 28ZB251,PL:206,PH: PROBE STATUS VZB(KC)16017140: WAIT`ZBKP,0Z0C33586: READ INPUT IN MACHINE CODEZDC(22):" CALCULATING VALUES... "ZCN((254)CC(255))2: READ NUMBER OF ACTUAL RUNS[LISECONDS "YrB"[MINIMUM]";Q$BY|BDY(Q$):235,DY: POKE DELAYsYB:"ENTER NUMBER OF MEASUREMENTS TO BE MADE"YB"[100] ";Q$:Q$""Q$"100"YB34560: MACHINE CODE TO SET-UP TEXT SCREENZBN2(Q$):252,N(NCC)CC:253,(NCC): POKE NUMB*XxA"OFF IN RESPONSE TO THE INPUT SIGNAL.WXA:"PRESS ANY KEY TO EXIT THIS ROUTINE."kXA33748: TESTqXBXhB COLLECT AND STORE DATA (BOARD)XkBHL$" TIME ":HU$"MSEC."XmB"SELECT DELAY TIME IN MILLISECONDS" YpB"RANGE:0.0001 TO 256 MIL1700: CALCULATE SLOPES, PL AND PH4W@I$"B"16900FWA1800: POKES^W SELECT PROBES.Up?"SELECT PROBES:"8U?32,7>U?XU?"A = PROBE A ONLYrU?"B = PROBE B ONLYU?"C = PROBE C ONLYU?I$"B"16320U?"D = PROBE D ONLYU?"AB = PROBES A AND BU?I$"B"16370V?"ABC = PROBES A, $T(S7 S: SELECT CLOCK4S:"SELECT CLOCK:>S;32,8DS;]S;"S = SOFTWARE CLOCKtS$;"T = THUNDERCLOCKS.;"M = MOUNTAIN CLOCKSB;:"[";CL$;"] "SG;32,0:SK;Q$S`;Q$""Q$"S"Q$"T"Q$"M"15000T;Q$""CL$Q$: REASSIGN CL$"VERIFY "N$R6D$"OPEN "N$.R7D$"READ "N$FR7HL$:HU$:VL$:VU$SRd7J1513eRx7TI(J):TE(J)R7TI(J)9999TE(J)9999NJ1:J513: EXIT, END OF FILER7JR7PB: READ PROBE STATUSR7D$"CLOSE "N$S71700: CALCULATE SLOPES AND PL AND PH --- BOTTOM OF LOOP ---Q04FQ:4NJ1: NOTE NUMBER OF DATA POINTSWQD434,0:35,24QN4958:"PRESS FOR MAIN MENU ";Q$QX4Q6 READ DATAQ6"READ DATA FROM DISK:Q61100: GET FILE NAMEQ6N$""14300: NO NAME SELECTED R6D(J1))"P336,0:37,(37)1:958O3(KC)12813300: DON'T STOREO3KP,0O3"ENTER ";HL$;" IN ";HU$;" [";TI(J1);"] ";O3QQ$: READ VALUEP3QQ$""QQ$(TI/DIV. "@ SET UP GRAPH BD: CLEAR GRAPHICS SCREENLE::fF"SELECT GRAPH STYLE:rG32,6:J"D = DOTS AT POINTSL"L = POINT TO POINT LINE DRAWNM"B = BAR GRAPH"NM$"R"1620P"R = REGRESSION LINE R"S = WITH S31H,V(O$"V"VV9: STEP DOWNJO$"H"HH7: STEP OVERRCHX o SET SCALING 200:NUNUPWR: USE NU WHICH IS THE ABSOLUTE VALUE OF THE ROUNDED VALUENU(22(NU2)(NU4)5(NU5))PWR: PICK 2,4,5,10 AS SPACEANGLE<P2ēXP2,YPXP2,YP:XP,YP2XP,YP2:690: "+"uP3ēXP2,YP2XP2,YP2:XP2,YP2XP2,YP2: "X"{ HIRES PRINTING  ENTER WITH O$, H, V, PR$0CH1(PR$)V191V10H275H10((PR$,CH,1)) PLOT PROPER LINE SEGMENTD~(S$,1)"B"ēXP,176XP,YP: BAR GRAPHt(S$,2,1)"E"690: SKIP POINT PROTECTORSP0ēXP2,YP2XP2,YP2XP2,YP2XP2,YP2XP2,YP2:690: DRAW SQUAREP1ēXP2,YP2XP2,YP2XP,YP2XP2,YP2:690: TRII(1)CbXP(TPDFHS)XS15:YP176((TE(J))VS)YS: SCALED VALUES}lYP3YP188XP277XP10Č198:OS1:690: OFFSCREENqXP,YPvJ1JPB1OS1XL(P)XP:YL(P)YP: START OF LINE{(S$,1)"L"ēXL(P),YL(P)XP,YP:XL(P)XP:YL(P)YP:OS0: (X2SN(4)XA2)(N(4)1)): STD DEV0SY(((Y2SN(4)YA2)(N(4)1))): ABS ADDED TO AVOID DIV BY O ERRORS WHEN ALL VALUES THE SAVE5RX(PSN(4)XAYA)((N(4)1)SXSY): CORR. COEFFT.:X PLOT A POINT ]TPTI(J):R$"C"TPTI(J)T)0535: SKIP DELETED POINTS>X1SX1STI(J):Y1SY1STE(J)j X2SX2STI(J)TI(J):Y2SY2STE(J)TE(J)PSPSTI(J)TE(J)JXAX1SN(4):YAY1SN(4): MEANS!A(PSN(4)XAYA)(X2SN(4)XA2): SLOPE&BYAAXA: INTECPT.$+SX(U$NU$"000":NU$(NU$,4(NU.1))? NU$SN$NU$: ADD SIGNd NU0.01NU$"#"SN$"0.00":297 (NU$)6NU$SN$"#####" )  REGRESSION CALCULATIONS X1S0:Y1S0:X2S0:Y2S0:PS0: INIT. SUMS J1N: CALCULATE SUMS:TI(J:NU(NU)' NU0284: SKIP ROUNDING1 PWR1? NU1260[ NUPWRPWRPWR10:240d 270 NUPWR10PWRPWR10:260 FCTR1000(PWR10) NU(NUFCTR.5)FCTR: SIG. FIGS. NU$(NU):(NU$)4ĭ(NU)NUNU$NU$"."! (NU$)5N(P)): CALC. CORRECTED READINGE TITI1: ALWAYS SOFTWARE CLOCKj I140:I: STALL FOR TIMING (KC)127I40: EXIT EARLY P PP1: SET P TO LAST VALUE READ ROUND TO SIG FIGS; NO PRINT SN$"" NU0SN$"-" CALC. RAW INPUT 147( ------8 VIU READc 252,2:253,0: POKE FOR ONE READING~ 33536: READ COUNTS: 1800: NEW PROBE C((250)CC(251)) V(CET)1000: RAW INPUT READING ----- T(P)I1(P)SL(P)(VV1 nI1DV- p250,P:33536: READ PROBE] r HIGH BYTE FROM $7 AND LOW BYTE AT $6:p tCCC(7)(6) v*** ACCUMULATE TOTAL xTVTVC y(KC)127TVTVDVI:IDV: EXIT EARLY, PRORATE TOTAL zI |AVTVDV V((AVFF)VR)VM: Q/ COPYRIGHT 1985- VERNIER SOFTWAREC VERSION 122285`779: RESTORE VARIABLESy(2500: MAIN PROGRAMc READ INPUT dPPLPH: LOW PROBE TO HIGH PROBEfI$"B"140: READ VIUh *** LOOP TO AVERAGE NOISE jTV0                    COPYRIGHT 1985, VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225ƭ`۩````ON WHICH ERROR OCCURS_C_:"*** ERROR ON LINE ";EL;" ***":[_I1999:I: DELAYt_3288: CLEAR STACK_2485: RETURN TO MAIN MENU_H COPYRIGHT 1985, VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225AGES AND ENDI`H OT BEING USEDq$@PCL$"S"R$"C":20560: SKIP NEXT QUESTION IF SOFTWARE CLOCK OR IF TIME IS NOT BEING GRAPHED$BP:"WHICH TIMES SHOULD BE USED?$DP:"C = ACTUAL CLOCK TIMES"$FP"R = TIMES RELATIVE TO THE START$HP"[R] ";Q$:Q$""Q$"R"%JPR$MIN & MAX.# PTI(J)020540: SKIP DELETIONS>#PN(4)N(4)1Y#PTI(J)XMAXXMAXTI(J)p#PTI(J)MXMXTI(J)#(PTE(J)MYMYTE(J)#2PTE(J)YMAXYMAXTE(J)#P *** $?PHL$"TIME"DF1:R$"C":20569: SKIP THE NEXT STUFF IF TIME IS N"PR: PRINTER ON3" (9)"G2E": GRAPPLER+ DUMPR" :D$"PR#0": PRINTER OFFX""s" N GRAPH DATA TABLE"*N"GRAPH DATA TABLE:":"ON49Ģ(5):(5):"ANALYZING DATA TABLE...""OXMAX1E38:YMAX1E38:N(4)0"OMX1E38:MY1E38 #PJ1N: H4!"SELECT:":"G = GRAPPLER+":"I = IMAGEWRITER"C!"[G] ";Q$e! :"ENTER SLOT # FOR PRINTER"! "[1] ";QQ$:QQ$""QQ$"1": DEFAULT= SLOT 1!& PR(QQ$)!0 PR1PR78900!: (Q$,1)"I"Č36864,PR,1:8900: IMAGEWRITER DUMP" D$"PR# PART ONEF HL$HL$NL$:HU$HU$NL$: STORE STRINGS IN A SAFE PLACEb VL$VL$NL$:VU$VU$NL$ 768: SAVE VARIABLE TABLE POINTERS ::"LOADING MAIN PORTION OF THE PROGRAM... D$;"RUN VOLTAGE PLOTTER PART ONE,D1"!@ DUMP SCREEN GRAPTURN TO MAIN MENU-z:"[M] ";Q$:Q$(Q$,1)3{}Q$"D"Ĺ49232,0:49234,0:49237,0:49239,0:Q$:1905: DISPLAY GRAPH & WAITQ$"O"İ8000:1905 **** MAIN PROGRAM 60000  M$"P"İ20000 M$"R"İ30000 RUN3757,PP:33770,PP: POKE INPUT LOCATION1bPl END OF GRAPHING MENU ZpKP,0oq::"SELECT:":s"D = DISPLAY PREVIOUS GRAPHt"R = REGRAPH - SAME SCALEv"S = CHANGE SCALE AND REGRAPHw"O = PRINT GRAPH ON PRINTERx"M = RE0206,256T: COUNT CYCLES3DDY132CPSD.1FN235,D: DELAYbU238,M: START UP FLAGVPB4P2(P2)PP98:1885: EVEN XPB4PP97:1885: ODDZPPPB97: CALC. POKE NUMBER+]33565,PP:33575,PP:33632,PP:33649,PP:3NU):700NU200XSHS"200FO$"H":V181:H210:PR$NU$:700w16304,1:16299,1:16297,1: TURN ON HGR2OS0: OFF SCREEN FLAG CALCULATE AND POKE CT PARAMETERS-VIU ET(19T2563(T1))CPS: CALCULATE ELAPSED TIME"H":700*PR$((VS),8):H3:V174:700NU100YS:200:NU(NU$)VS: THIS IS THE VALUE OF THE MAIN TICK MARK ON THE VERT. AXIS; THE ROUNDING IS DONE IN THIS WAY TO AVOID ENDING UP WITH ROUND OFF ERRORS WHEN IT IS NEAR 0O$"V":H10:V70:PR$(9,V:VV5:H270:O$"H":PR$"0":700: DRAW A ZERO LINE (UNLESS IT IS AT BOTTOM OR OFF SCREEN)nI166010(176I)50((176I)50)ē15,I25,I15,I20,IINUHS:DF3600NU24R$"R"NUNU(NU24)24H15:V181:200:PR$NU$:O$ENTER TITLEV2:700Q15,6275,6275,17615,17615,6: DRAW AXES WT. #'SbI2527510(I15)50((I15)50)ēI,176I,164I,176I,169(S$,2,1)"G"āII166010:I,II:II: GRIDI]VS0V176VSYS:V0V176ē15,V27: HORIZ. LABEL*rV188:H90:O$"H"3t700WvPR$VL$" VS "HL$" FOR PROBE"vwPB3PR$PR$"S": ADD SyPB0PB3PR$PR$" A"zPB1PB3PR$PR$" B"{PB2PB4PR$PR$" C"|PB3PB6PR$PR$" D" ~H1477((PR$)2):CBE C#iPB5ĺ" + = PROBE DQj:"PRESS WHEN YOU HAVE FINISHEDik"VIEWING THE GRAPHxl3: WHITEmO$"V":V5:H3: VERT. LABELnPR$VL$"-"VU$"-": VERT. LABEL & UNITSo700: PRINT TEXT ON HGR2pPR$HL$"("HU$")")"L"(S$,1)"R"(S$,1)"S"(S$,1)"M"1605: ASK AGAINTa(S$,1)"M"ġ:qc:"SETTING UP GRAPH..."d:PB41642: ONLY 1 PROBEe"POINT PROTECTOR KEY:":f" SQUARE = PROBE Ag"TRIANGLE = PROBE BhPB4ĺ" X = PROTATISTICS'T"M = RETURN TO MAIN MENU?U32,0: MARGIN jV:"A SECOND CHARACTER MAY BE USED TO:X:" G = ADD A GRID ON GRAPHY" E = ELIMINATE POINT PROTECTORS[:"[D] ";S$:S$""S$"D"?\(S$,1)"D"(S$,1)"B"(S$,1S1SO: HORZ. SCALE14vDF1: DIVISION FACTORK4$w1600: SET UP GRAPH_4x PLOT POINTS:4yPPB:PB3P0: START WITH 1ST PROBE4yJ1:TI14y TOP OF LOOP4"y100: READ INPUT4,y(KC)127(239)131400: EXIT46yPPLPH5JyTE(J"[0] ";Q$3 vMI(Q$)3 v,3*v SCALINGE3/vHS0:VSMI: ORIGINi34vYS(MAMI)100: VERT SCALING3v"ENTER STEP-OVER (THE DISTANCE HORI-3v"ZONTALLY BETWEEN POINTS ON THE GRAPH)3v"[5]";Q$:Q$""Q$"5"3vSO(Q$):SO1SO20304004vXE2`Y2tY .20u"GRAPH IN REAL TIME:":O2:uHL$"TIME":HU$"SEC.":R$"N"y2u"ENTER MAXIMUM VALUE ANTICIPATED FOR2u"VERTICAL AXIS ":"[2.0] ";Q$2vQ$""Q$"2.0"2vMA(Q$)2v:"ENTER MINIMUM VALUE ANTICIPATED FOR 3 v"VERTICAL AXIS ":$" "+1pSNUB:200:PR$PR$"B= "NU$" "g1zSNURX:200:PR$PR$"R= "NU$: STAT. STRING COMPLETE1SV11:H1407((PR$)2)1S7001SQ$1X1900: OPTIONS MENU1XQ$"R"Đ:21150: RESTART GRAPHING2XQ$"S"20000: GRAPHING DIFF SCAL0V176)(V0V176)((((176V)YSVSB)AHS)XS15)E0>SH279:VY90HSX9H(V0V176)(V0V176)((((176V)YSVSB)AHS)XS15)0MSX00X0279X90X9279213400RSX0,Y0X9,Y90\S(S$,1)"S"21400: SKIP STATISTICS1fSNUA:200:PR$"A= "NUON LINE,/R500: CALCULATE REGRESSION FITF/SY0176(BAHSVS)YSl/ SY0Y0(Y0176Y00)176(Y0176)/SY9176(BA(HS264XS)VS)YS/ SY9Y9(Y9176Y90)176(Y9176)/*SH15:VY0//SAHSX0H:X9279:21330: AVOID DIV BY ZERO604SX0H(VPB3P0: START WITH FIRST PROBE-.RJ1NR.RTI(J)021220: DELETED DATAc.R600: PLOT.R(KC)27(KC)155JN:KP,0: EXIT.RPBPPP1:PPB3P0: ACTIVE PROBE.RJ/R(S$,1)"R"(S$,1)"S"21400: SKIP DRAWING REGRESSIRIZONTAL AXIS":"[";MX;"] ";:Q$:Q$""HSMX:21110A-lRHS(Q$)\-vRNU(XMAXHS)260:1500-R"ENTER VALUE OF EACH HORIZONTAL SPACE":"[";NU;"] ":Q$-RQ$""XSNU:21150-RXS(Q$)-R ----R1600: SET UP GRAPH-R PLOT POINTS".RPPB:0HS(HSPG)PG0,QMX0HS1(HSPG)PGPGQ,QNU(XMAXHS)265:1500:XSNU\,R21150f,:R C ,DR"RANGE OF HORIZONTAL VALUES TO BE PLOTTED",NRMX;" TO ";:NUXMAX:200:NU$,XR"THE SCREEN IS 260 SPACES WIDE4-bR:"ENTER STARTING VALUE FOR HORTS AT 0+QNUXS:1500:XSNU)+Q211502+Q Bi+QHS(MX): HS WILL EVENTUALLY BE STARTING VALUE+QHS.01HS0:20990: USE 0 FOR START+QLS((HS)LL)+QS10LS+QPGS+QPG(XMAXMX)1020984+QPGPG10:20980+QPGPG10,QMX SCALING MODE:>*|Q:"A = AUTOMATIC SCALING WITH ORIGIN AT 0"k*Q"B = AUTOMATIC SCALING, VARIABLE ORIGIN*Q"C = MANUAL SCALING*Q:"[A] ";Q$*QQ$(Q$,1)*QQ$"B"20970*QQ$"C"21050*Q A +QHS0:XS(XMAX)265: MODE A ALWAYS STAIS 160),Q"SPACES VERTICALLY._)6Q"ENTER STARTING VALUE FOR VERT. AXIS ":"[0] ";Q$:VS(Q$))@Q"ENTER VALUE FOR EACH SPACE VERTICALLY)JQNU(YMAXVS)160:1500)TQ"[";NU;"] ";:Q$)^QQ$""YSNU:20850)hQYS(Q$)*rQ:"SELECT HORIZONTAL AXIS08(PPGPG10:20704#(PPGPG10<(PMY0VS(VSPG)PG\(PMY0VS1(VSPG)PGPG}(PNU(YMAXVS)160:1500:YSNU(P20850(Q C(Q:"RANGE OF VALUES TO BE PLOTTED:(QMY;" TO ";:NUYMAX:200:NU$)"Q:"THE SCREEN (OUR GRAPH PAPER) "C"20740'P A+'PVS0:YS(YMAX)160:A'PNUYS:1500:YSNUL'P20850V'P B'PVS(MY): VS WILL EVENTUALLY BE STARTING VALUE'PVS.01VS0:20718:IF THAT CLOSE TO 0 USE IT'PLS((VS)LL)'PS10LS'PPGS(PPG(YMAXMY)10207HOURS&XPXMAXXMAXDF:MXMXDF%&YPO&ZP"SELECT VERTICAL AXIS SCALING MODE:"&dP:"A = AUTOMATIC SCALING WITH ORIGIN AT 0"&nP"B = AUTOMATIC SCALING, VARIABLE ORIGIN&xP"C = MANUAL SCALING&P:"[A] ";Q$&PQ$(Q$,1)&PQ$"B"20690 'PQ$(Q$,1)2%LPR$"C"20560: LEAVE LIMITS UNCHANGED%NPXMAXXMAXMX:MX0: RESET TO TAKE INTO ACCOUNT THE FACT THAT RELATIVE TIMES WILL BE USED%PP ---%RPDF1%TPXMAXMX299DF60:HU$"MIN.": USE MINUTES&VPXMAXMX17999DF3600:HU$"HR.": USE VU$ HL$:HU$ I03< I1(I):I2(I):V1(I):V2(I)C I[ PB: PROBE STATUSs D$"CLOSE PARA.";N$y   WRITE A PARA. FILE Q$"N": USED AS FLAG HERE :"ENTER TODAY'S DATE, NAME OF PERSON "DOING THE CALIBRATION":NU.1))% NU$SN$NU$: ADD SIGNJ NU0.01NU$"#"SN$"0.00":289h (NU$)6NU$SN$"#####" !(15P7): TAB OVER 'NU$; )  READ PARAMETERS FILE D$"OPEN PARA.";N$ D$"READ PARA.";N$ TI$,DT$,NAME$ VL$:SKIP ROUNDING PWR1% NU1260A NUPWRPWRPWR10:240J 270j NUPWR10PWRPWR10:260 FCTR1000(PWR10) NU(NUFCTR.5)FCTR: SIG. FIGS. NU$(NU):(NU$)4ĭ(NU)NUNU$NU$"." (NU$)5NU$NU$"000":NU$(NU$,4(v" VOLTAGE PLOTTER PART THREE7 COPYRIGHT 1985N VERNIER SOFTWAREk779: RESTORE VARIABLES! VERSION 122285(2500: MAIN PROGRAM ROUND TO SIG FIGS AND PRINT IN COLUMNS SN$""NU0SN$"-":NU(NU) NU0284:                     CNTRL C ?~198: BELLJ?EL(219)256(218): ERROR LINE #n?(222)6Ğ:"FILE NOT FOUND":?(222)9Ğ:"DISK FULL":?:"*** ERROR ON LINE ";EL;" ***":?II1900:II?3288: CLEAR STACK?2500 7731400: EXIT$>yJJ1+>yPN>y31010: REPEAT LOOPX>zNJ1b>z1900>zQ$"R"30400: GRAPH, SAME SCALE>zQ$"S"30000: START GRAPHING ANEW>z>` ERROR HANDLING ROUTINE ?t(222)255ij:P OF LOOP1="y100: READ TEMP.Z=,y(49152)12731400: EXITg=6yPPLPHv=JyTE(J)T(P)=TyPB4TI(J)TI:31100: SINGLE READING=^yTI(J)TI(PB3P): MULT. READINGS=|y600: PLOT>yXP200(";A(P03S(NUSL(P):200Z(Pb(:("PRESS TO CONTINUE ";Q$(10000((:"LOAD NEW PARAMETERS FILE:(1100: GET FILE NAME(N$""10490: NO NAME SELECTED( B C DB](" ------------------------R^(VL$;" #1";]`(P03ob(NUI1(P):200vd(Pf(:"READING #1";l(P03n(NUV1(P):200s(Pv(::VL$;" #2";z(P03{(NUI2(P):200|(P~(:"READING #2";0990'10000: REPEAT'M'(5):"UNCORRECTED VOLTAGE INPUT READINGS"k'(10):1300: READ INPUTv2(10000|;(<("CURRENT PARAMETERS FILE:":K(TI$:NA$:DT$:VL$;" (";VU$;")"M(:"ACTIVE PROBES: ";:1400::\(" A LOAD NEW PARAMETERS FILE@`'"4 = SAVE CURRENT PARAMETERS FILEht'"5 = RECALIBRATE THE ACTIVE PROBES~'"6 = RETURN TO MAIN MENU':"[6] ":Q$'32,0'Q$""Q$"6"'(Q$)1(Q$)610040''(Q$)10200,10300,10400,10500,10600,1 VOLTAGE PLOTTER PART ONE,D1"E' *******************************[' CALIBRATION~8':"CALIBRATION OPTIONS MENU:";':"SELECT:"<'KP,0: CLEAR KEYBOARD='32,6:?'"1 = READ VOLTAGEB'"2 = CHECK CURRENT PARAMETERS FILEL'"3 = CALC. POKE NUMBERk]33565,PP:33575,PP:33632,PP:33649,PP:33757,PP:33770,PP: POKE INPUT LOCATIONqb **** MAIN PROGRAM 60000  10000: 768: SAVE VARIABLES ::"LOADING MAIN PORTION OF THE PROGRAM..." D$;"RUN PARAMETERS CET(19T2563(T1))CPS: CALCULATE ELAPSED TIMEa0206,256T: COUNT CYCLESuDDY132CPSD.1N235,D: DELAYU238,M: START UP FLAGVPB4P2(P2)PP98:1885: EVEN XPB4PP97:1885: ODDZPPPB97:P # SET UP PROBES .P03MV1(P)V2(P)SL(P)0:1730SL(P)(I2(P)I1(P))(V2(P)V1(P)): CALCULATE SLOPEPPL0:PB4PLPB: LOWEST PROBEPHPB:PB3PHPB3: HIGHEST PROBE  CALCULATE AND POKE CT COLUMNS,AFTER CLEARING OLD READINGS+sP?t(KC)1281357Gu:dvKP,0: CLEAR KEYBOARDjwx PROBE STATUS P03PPLPPHĺ" ";:1440: PRINT SPACE TO SHOW THE PROBE IS OFF(193P);: PRINT LETTER; PROBE 'ON'VM: CALCULATE RAW VOLTAGE<b1390: END OF BOARD READGd ----ge252,2:253,0: ONE READINGrf33536|g1800hC(250)CC(251)jV(CET)1000: RAW VOLTAGEm -------$n(1):868:V(P)V:NUV(P):200: PRINT READINGS INI$"B"1381: READ VIU#Q -----BR LOOP TO AVERAGE NOISEKTTV0WVI1DV}X250,P:33536: READ PROBE P ZCCC(7)(6)\TVTVC](KC)127TVTVDVI:IDV: EXIT EARLY, PRORATE TOTAL^I_AVTVDV`V((AVFF)VR)~N$"C"ĺD$"CATALOG"::1110RN$"C1"N$"C2"ĺD$"CATALOG ,D"(N$,2)::1110X{ READ INPUT FOR CALIBRATION <"PRESS TO EXIT THIS ROUTINE"F:17);"INPUT VOLTAGE READING"K15);"A B C D"MPPLPHP"Y"N$"STARTUP":1015: SAVE FILE 2ND TIME4BJL GET FILE NAME hV:"ENTER NAME OF FILE ORb"'C', 'C1', 'C2' FOR CATALOG ORf"PRESS TO EXITh:"(ACTIVE DISK DRIVE = ";:(43624);")j::M$"Z"ĺ"PARA.";t"";N$ .I 1PB: PROBE STATUS5 4D$"CLOSE PARA.";N$U 5Q$"Y"1090: IF 2ND TIME 6:"DO YOU WANT THIS FILE TO BE USED AS THE 8"PARAMETERS FILE WHEN THE PROGRAM" :"STARTS? [N] " ;KP,0: CLEAR KEYBOARD STROBE <Q$:Q$(Q$,1).>Q$ DT$,NA$ TI$N$? :"SAVING PARAMETERS FILE ON DISK"W D$;"OPEN PARA.";N$q D$;"DELETE PARA.";N$ D$;"OPEN PARA.";N$ D$;"WRITE PARA.";N$ TI$","DT$","NA$ VL$:VU$ HL$:HU$ I03 I1(I):I2(I):V1(I):V2(I)Q"C = MANUAL SCALING&+Q:"[A] ";Q$5+QQ$(Q$,1)G+QQ$"B"20970Y+QQ$"C"21050g+Q A +QHS0:XS(XMAX)265: MODE A ALWAYS STARTS AT 0+QNUXS:1500:XSNU+Q21150+Q B,QHS(MX): HS WILL EVENTUALLY BE STARTING EACH SPACE VERTICALLY0*JQNU(YMAXVS)160:1500F*TQ"[";NU;"] ";:Q$^*^QQ$""YSNU:20850k*hQYS(Q$)*rQ:"SELECT HORIZONTAL AXIS SCALING MODE: *|Q:"A = AUTOMATIC SCALING WITH ORIGIN AT 0"*Q"B = AUTOMATIC SCALING, VARIABLE ORIGIN+19)CC(218): ERROR LINE #E)(222)6Ğ:"FILE NOT FOUND":d)(222)9Ğ:"DISK FULL":):"*** ERROR ON LINE ";EL;" ***":)II1900:II)3288: CLEAR STACK)2500 09":"[0] ";Q$:VS(Q$)*@Q"ENTER VALUE FOR 2920 S.W. 89TH ST.X(< PORTLAND, OR 97225(< (503) 297-5317(` ERROR HANDLING ROUTINE (t(222)255Ĺ216,0:8,0:: CNTRL C (~198: BELL!)EL(2A ON DISK?"'*"[N] ";Q$2'*(Q$,1)"Y"10890H'!*1100: SLOPES`'#*1000: SAVE FILE}'*10000: END OF ROUTINE'* '*'< COPYRIGHT 1985'< VERNIER SOFTWARE&(< 1900:II-&3288: CLEAR STACK7&2500)"ENTER THE INPUT SIGNAL VALUE:}&)VL$;:VU$""ĺ" (IN ";VU$;")"&)" = ";Q$&)PPLPH&)V2(P)(Q$)&)F2(P)C(P)&)P&)1700: GET SLOPES '):"SAVE THIS CALIBRATION DAT ERROR HANDLING ROUTINE K%t(222)255Ĺ216,0:8,0:: CNTRL C a%~198: BELL%EL(219)CC(218): ERROR LINE #%(222)6Ğ:"FILE NOT FOUND":%(222)9Ğ:"DISK FULL":%:"*** ERROR ON LINE ";EL;" ***": &II*0$< COPYRIGHT 1985`$< VERNIER SOFTWARE$< 2920 S.W. 89TH ST.$< PORTLAND, OR 97225$< (503) 297-5317%` (222)9Ğ:"DISK FULL":@#:"*** ERROR ON LINE ";EL;" ***":R#II1900:IIk#3288: CLEAR STACKu#2500#3288: CLEAR STACK#2500CLEAR STACK#2500STACK#2500TILE#*10000: END OF ROUTINE#* $RE"< 2920 S.W. 89TH ST.8"< PORTLAND, OR 97225O"< (503) 297-5317p"` ERROR HANDLING ROUTINE "t(222)255Ĺ216,0:8,0:: CNTRL C"~198: BELL"EL(219)CC(218): ERROR LINE #"(222)6Ğ:"FILE NOT FOUND":#!)P !)1700: GET SLOPESM!):"SAVE THIS CALIBRATION DATA ON DISK?"\!*"[N] ";Q$t!*(Q$,1)"Y"10890!!*1100: GET FILE NAME!#*1000: SAVE FILE!*10000: END OF ROUTINE!* !*!< COPYRIGHT 1985"< VERNIER SOFTWAPROBES ACROSS THE SECONDD )"INPUT SIGNAL. WHEN THE READINGS HAVE e )"REACHED EQUILIBRIUM AGAIN,| )1300: READ INPUT )"ENTER THE INPUT SIGNAL VALUE: )VL$;:VU$""ĺ" (IN ";VU$;") "; )" = ";Q$ )PPLPH )I2(P)(Q$)!)V2(P)V(P)ROBE WILL BE DISPLAYED. WHEN THEJ)"READINGS HAVE REACHED EQUILIBRIUM,b)1300: READ INPUTS)"ENTER THE INPUT SIGNAL VALUE:)VL$;:VU$""ĺ" (IN ";VU$;") ";)" = ";Q$)PPLPH)I1(P)(Q$))V1(P)V(P))P ):"PLACE THE IGNAL IS GOING TO BE USED?":"[";VL$;"] ";:Q$:Q$""VL$(Q$,10)y):"WHAT ARE THE UNITS OF THE INPUT SIGNAL":"[";VU$;"] ";:Q$:Q$""VU$(Q$,10)z):"PLACE THE PROBES ACROSS THE FIRST INPUT{)"SIGNAL. THE READING FROM EACH ACTIVE"!~)"PCALIBRATE THE PROBES, YOU WILL NEEDJr)"TO CONNECT THE PROBES ACROSS TWOss)"KNOWN INPUT SIGNALS. ONLY ACTIVE t)"PROBES WILL BE RECALIBRATED.u)v)"FIRST YOU NEED TO IDENTIFY THE INPUT w)"SIGNAL WHICH WILL BE USED. Cx):"WHAT INPUT SL CHANGE THE"8k)"CALIBRATION OF ALL ACTIVE PROBES.":dl)"CURRENTLY ACTIVE PROBES: ";:1400::m)" TO CONTINUE, TO EXIT."n)(KC)155ĹKP,0:10890: EXITo)(KC)14110606: NOT RETURNp)KP,0: CLEAR KEYBOARD#q):"TO pօץ,08,c0,0.,cצ֝ LMLY`',c,c0LYLYLjLjiȥLLLу,0 ʊL+L΃L`,0,c00,0,cL׃`O !!2700 8,0:: CNTRL C /8~198: BELL[8EL(219)CC(218): ERROR LINE #8(222)6Ğ:"FILE NOT FOUND":8(222)9Ğ:"DISK FULL":8:"*** ERROR ON LINE ";EL;" ***":8II1900:II83288: CLEAR STACK9 EXIT7yJJ17yPC7y31010: REPEAT LOOPM7zNJ1W7z19007zQ$"R"30400: GRAPH, SAME SCALE7zQ$"S"30000: START GRAPHING ANEW7z7` ERROR HANDLING ROUTINE 8t(222)255Ĺ216,0: READ INPUTE6,y(KC)12731400: EXITR66yPPLPHa6JyTE(J)T(P)6TyPB4TI(J)TI:31100: SINGLE READING6^yTI(J)TI(PB3P): MULT. READINGS6|y600: PLOT 7yXP27731400: . SCALE,5vDF1: DIVISION FACTOR^5$w1600: SET UP GRAPH5x PLOT POINTS:5yPPB:PB3P0: START WITH 1ST PROBE5yJ1:TI15y TOP OF LOOP6"y100: ORIGINN44vYS(MAMI)100: VERT SCALINGx4v"ENTER STEP-OVER (THE DISTANCE HORI-4v"ZONTALLY BETWEEN POINTS ON THE GRAPH)4v"[5]";Q$:Q$""Q$"5"4vSO(Q$):SO1SO20304005vXS1SO: HORZTER MAXIMUM VALUE ANTICIPATED FORD3u"VERTICAL AXIS ":"[3.0] ";Q$X3vQ$""Q$"3.0"e3vMA(Q$)3v:"ENTER MINIMUM VALUE ANTICIPATED FOR3 v"VERTICAL AXIS ":"[0] ";Q$3 vMI(Q$)3 v3*v SCALING4/vHS0:VSMI: SV11:H1407((PR$)2)!2S700)2SQ$N2X1900: OPTIONS MENU2XQ$"R"Đ:20982: RESTART GRAPHING2XQ$"S"20000: GRAPHING DIFF SCALE2`Y2tY 20u"GRAPH IN REAL TIME:":!3u"EN((176V)YSVSB)AHS)XS15)/1RSX0,Y0X9,Y9a1\S(S$,1)"S"21400: SKIP STATISTICS1fSNUMA:200:PR$"A= "(NUM)" "1pSNUMB:200:PR$PR$"B= "(NUM)" "1zSNUMRX:200:PR$PR$"R= "(NUM): STAT. STRING COMPLETE2HSVS)YS)10 SY0Y0(Y0176Y00)176(Y0176)W0SY9(176(BA(HS264XS)VS)YS)}0 SY9Y9(Y9176Y90)176(Y9176)0*SH15:VY004SX0H(V0V176)(V0V176)((((176V)YSVSB)AHS)XS15)0>SH279:VY91HSX9H(V0V176)(V0V176)(( PLOT:/R(KC)27(KC)155JN:KP,0: EXITe/RPBPPP1:PPB3P0: ACTIVE PROBEl/RJ/R(S$,1)"R"(S$,1)"S"21400: SKIP DRAWING REGRESSION LINE/R500: CALCULATE REGRESSION FIT 0SY0(176(BAQ$.RQ$""XSNU:21150(.RXS(Q$)?.R ---t.R1600: SET UP GRAPH.R PLOT POINTS.RPPB:PB3P0: START WITH FIRST PROBE.RJ1N.RTI(J)021220: DELETED DATA/R600: ""-NRMX;" TO ";:NUXMAX:200:NUF-XR"THE SCREEN IS 260 SPACES WIDE-bR:"ENTER STARTING VALUE FOR HORIZONTAL AXIS":"[";MX;"] ";:Q$:Q$""HSMX:21110-lRHS(Q$)-vRNU(XMAXHS)260:1500.R"ENTER VALUE OF EACH HORIZONTAL SPACE":"[";NU;"] ":VALUE,QLS((HS)LL)$,QS10LS,,QPSF,QP(XMAXMX)1020984X,QPP10:20980c,QPP10z,QMX0HS(HSP)P,QMX0HS1(HSP)PP,QNU(XMAXHS)265:1500:XSNU,R21150,:R C -DR"RANGE OF HORIZONTAL VALUES TO BE PLOTTED****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,!å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,Ùr!!å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lꭰȭ)LLLك,0LI`LރLу`y ,Ùr!!å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lꭠȭ)LLLك,0LI`LރLу`y ,Ùr! !å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lꭐȭ)LLLك,0LI`LރLу`y ,Ùr! ! LLꄥiȥL%L%(L\,0 _ʊMLLYL6`O`'(2`ɐ`0,`zIER SOFTWARE/&< 2920 S.W. 89TH ST.a&< օץ,08,a0,0.,aצ֝ L̈́Lل`',a,a0LلL٠""";5-,<35577,,55-$3.56%%??177---*56??55>?', $,-%%??V177=-$??6-6??$--$??6m16,:>55--=?/8/?'$$-55??2??$$,-5)>>>'$$-.??$,$--E8?7.6&*5>?'$$---$4.6fI&$$/=66>- $66>?',%66fQ!''?R1??$$4<<66fI&$$7.6%$$3=$766 $??66.-%$;xz|~(246?HQSUboy"-7CO\ku%%, >>fI>,$-26-$?26?4-6$-)-7%%%377%%??66%.-%$$7 6>-%%??N2?6---$??2--$-$6--6&?$-"""̬Įҍ̍Ӎōî"å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,Ùr" " å****i 4< )`օץ΅L\L\****ii ჈Lp4<צ֝ Lȭ)LLLك,0LI`LރLу`y ,Ùr""