8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LL !Cb" %n"o" (#M8( % ) L'"p"q" (\4, )7(P0  ( @p 8  x"!b"i"0 ~&i"0 %r"s" (,) &Սt"u" ( %L'")0I0hx H( +#)C5-PART.FOUR.REM%F#-PART.FIVE.REM(4M#VP6.18*#%VP.STARTUP' &PRODOS }< ,BASIC.SYSTEM((! ҨSTARTUP.A<!.,PART.ONE.REM>(+M#,PART.TWO.REMf,jU# .PART.THREE.REM? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R %Щ ߩx"L! )L! 8'  )ɀ)4,- U JNT) x"Lv"w" ( !` a"M)Fi/ e"3 k"  !"#$%&آ <B*IBGF08Lé'+8H <,``h(`@ڍL3<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLHB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?.<ʆ>,=?BC8 é&'112``* G** c*` v* G* c*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <ȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L(`L?* *Ll) ) L( )Ll)8e` ,$`ee` < @( )m((.(( M(i ``) |'(j21 z& {&!` ({&z&(i({&(( CBDFGE (r&$ 3(,}&r& … 3(ŅL&JJJJ`Ϡ'8`r&h)hr')L&18|&"m11 2H22h2舌|&|&12H)M0 h10200I20h2 (`LE%12 `_'"L  <8# ȱ)ɀ  )( ` (Xp0`ŠӠֱҭԠŠҬî̠ӠĮʎ1|&… (n}&Dž (\%Tz&Lc()8= (J 8'z&'{& 3((ʎ1|&|&|&3223 `%YYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^& S ɘL   V7 L ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8. ) ɘ"    L=#=#&ŠϠĠԠŠ ԩ m# m# J Qڨ)̰m] нȱ ̀𩠙 i F >l"m" h" iL X%;"L8"ΠΠҠ`y""""""*$ Fk%YeQP!/RB}QBiBB}\ ĉFEL/#> ț6 hh@ihAiH(ؠȱ@JJJJq@)@Yvȱ@Hȱ@Ah@y@cYe J) LL LJiB LJ) >xhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJlB O-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ ߐ  0 HϭߍLпllllIL/FHGI ҭJjHIHB>IؙJJ W: ELyHIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J zJ͟ $0 ΎJFJL8`JGBJ P ؑ@`M8`8@ؐʈI묆)z8zz Ly LةC8`؍)@ i)z8zyJ ^ ؅F Lo) +%J(a *FإGؐ.` *JHIH ۩ ٰz{`JJJJ;i v묅͚ vٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`(8`{ `ٽJJJJ`H͐hn)NjNjNjN. CH͐ v;٭ *Nۙ۰ڙک `Z8` C# (`{ .{ .{ .{8۰*Jzܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍐz{ vNمFمG < ΐ0 FGL鮅0 ٭{٭zٽ8`H8`  ,z { 8` z E8`1ݾ00 Y 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`ά` W xG 0A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ȱHά`Ύ8EeHI |SB:0M ٙKٙIFNGʈ d献`8m0`,0H hi PȽάhٍ0GF8yאFG  $0 G01܅I `P܍QR d8D`F` ]lH)HFȍNHGO $%܍&܍!ܢ8* J8` L ܝ>)I 'ܝ:`F8iRFPGQ`F܅IH3H ( )O 밨G%܈D" T)Ii)܍R*܍E'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` EHS` #Q'܅IHHSSЍS@`8 ` ͍% ΍Q8`ʈ@qȱ@cȱ@mopfNxOyS)5SI0ܢܽ iP'E* 7deFG (GH Lv܅IR mEIH` tq qM0PQ ESHNFOG 밳NN` G8`F@ 0 > LK8`: ;I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶:; <܅I m=IHHyHȘI Lܝ` @c@ k@Ю׍S)mיSi 뎅`C8` @ r3N@) G莱 ⭮i`0 Y; 뮅ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNά0N뎒׮Б` L` @>S)I38Mdeם`K8`@Nȱ@O@ rIiNȽבN)/ȩ/N`@[ WHJjjjhA ,'KI؍0JHhh8` Qx")T'P) ɺiL; )?     ~ `l@Hȱ@IױHXATȱH ɯȩ׍̒5H)/@a)_ .0 :A[8@`,FإG`BH PFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` vL'J  6"L vH  6 9ؙ` @ P8`K8`B8` L؈SJJJJحq) ) )Ю ЪGdF $ ᭔ع+ؠ 2H  :h8` 䮅ٽ ٬ؠ@` ( L )8`)i п` H h)N$%hꭋILhH),Nx8 (8` ԍ`@ABe 2U,,CnZ1IJK,-NOPQRSuHUSTON!' @  K cXXK تKo`V8`no` , on cI9XX`)HJJJh`OeNeO࿰ c9XАO`@ȭ@` ON INJKO`Hх 밽܅F݅G ` c* Z% L`L뮴HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 c9X(N    ܮ `J HH hh` 0 @ L/L Z`̸Yܝ ݝ0̸ȩFG   0` ܅F݅G ` c Zͬ LȹL@ȅH@IL,0` G וֹ= YH.q)N 0 >deS)@LP8` D᮴ ֩SGHG v L䬅yٙ٭yٙ٩`K CEdFeG 6%&ȹP8` i` %ם0 B %)( ȹ`8m8m@8` G8`F Pq)@N8`S)@J טyרםSS)׍Sde 밑 Ȣ؝I؈ 2h(8H ( h(8Hh(`ؑ@`@ȱ@ ` B@8ZS d鮅ٍٍٍsHٍr8fhgSJJJJS)S@` %I -q) 0@S)N8` @LL =@ ؝~@~ݞ@ʈL2 KIJHȢݞ)Jn 8 θ ؍ ؍ DH8 ع)ꭵJJJJ )߹0 )p )@ ) ȩ ؝L0NO 방 PQNOFG 嬆؍f؍g؝h ؝c zS) zS )حM͚ v`H@h`h``N8`  ) 1⬆iع `  عiعi` )؍0CGHFHBFG ުhFhG`@4͔ L @Ai ׭2` . :#ع؍0 Y讅)`.@+ i 8` L ؊ PLE΢ʱNLMOMEKP%MEK΢L$ O, PeNNO 2(` C  7 2JzHI{HI؊ }LE  *` A Hz ع H{ ؙ؊ؠIhHIhH } `؝}zIzؐ` f~ؽ؝z f % f؝~z؈` ` H  Ph)N@ 1; L  2$ )bJ Y ) H 4hL )  )حJjI{HIzHNO 8 ؍JL`R΢ʱLN1MOMEKP/MEK΢L7L-M O,p莡eNNO(`JNKOL 2/ "P L8 y WؑJ`L@ȱ@ `@Nȱ@O LL L r L 2 "pJ덣 )@፦NJOK 2iKK΢΢ IJΣ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L2쬆8N !"#$Ԡ͠ˠĠԠҠ(c)1983-1987 AppleLKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LNLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKEFby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D E  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ 8V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌1֍ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` *L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>P׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿJJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzL')*+,-./0123456789:;j>>m>` _m8injkiljo풼i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥpnG @p;G=po:Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #hhL𚾤3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅303پھ p H־Ǿh۰8L־Jjjjɾ)Ⱦ8 ѱ OLӜ ĤLLX>(F`־ؾپھ׾` bɄ KDEF vLl v lL bKɍKL?` w  vLl@$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l PODEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H EH06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,S0 @ lLޭBYL 8!9 詍` "  à4"/pŠϠŠà͠ӠàԠŬh,PIN'ҍIxy /L6Ix y JpnoF /= plm /w)!,ZJYH)h****)  md8幙`\H[< h  /( 载쳼󩭙L/id /`H) hJJJJ ɺi` M  ` ת.8 `O`S  AI-L9 ᪰B C VWS`޾Lp h־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8`ȾɾʾNfne}ȾȾI>Ie f`8` P־ǾҾ,G0C f=W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE` DING9 NU(NUFCTRHH)FCTR: SIG. FIGS. ROUNDING NU$(NU):(NU$)4ĭ(NU)NUNU$NU$".": CREATE STRING AND IF INTEGER ADD "." (NU$,1)"."NU$"0"NU$: ADD LEADING ZERO (NU$)5(NU1)NU$NU$"000":NU$(NU$,4(NU.1)(NU1)):=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdKIP ROUNDING IF ZERO sPWR1F xNU1135: NUMBERS LARGER THAN 1y }NUPWRPWRPWRTT:125: REPEAT UNTIL PWR<=NU 140: SKIP AHEAD NUPWRTTPWRPWRTT:135: SET PWR FOR NUMBERS LESS THAN 1 FCTRTZ(PWRTT): FACTOR USED IN ROUGH ROUN=41859,7:KP,0: APPLE BUG FIX & CLEAR KEYBOARD STROBEG 2000j "VOLTAGE PLOTTER III (C)1988""VERNIER SOFTWARE--VERSION 5/25/88"d ROUND TO SIG FIGS AND PRINT IN COLUMNS fSN$" "iNUZZSN$"-":NU(NU) nNUZZ150: STO A". v"DISK DRIVE AND PRESS .";9 w"";Q$U D$"PREFIX /VP.PROGRAM"j D$"RUN STARTUP"v ` ERROR e(222)255Ā: CTRL-C j:5 o(7);(7) t"UNABLE TO LOAD STARTUP PROGRAM." ~115 STARTUP PROGRAM2 VOLTAGE PLOTTER IIIR (C) 1988 VERNIER SOFTWAREh( VERSION 5/25/88tP60000ZD$(4)d CHECK TO SEE IF PART.ONE IS ON THIS VOLUME:np10)"VOLTAGE PLOTTER III"s11 u"PLACE THE VP.PROGRAM DISK INLLwLLL) `8` ԠŬLLʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~TV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt Nֵ#ح#׮2}q :IC@@ -!S    !C- !ABELSDFRV@@ !$(19@EüϠž(+@ABCDEFGHIKLMNPSsƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8 ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s̲ ADD TRAILING ZEROS4 NU$SN$NU$: ADD SIGNt NU0.01NU$SN$"0.00#":180: NUMBERS TOO SMALL TO PRINT (NU$)7NU$SN$"#####": NUMBERS TOO LARGE TO PRINT (NU$)8āQQ(NU$)6:NU$NU$" ":: ADD SPACES TO MAKE EVERY NUMBER THE SAME LENGTH $ INPUT] ENTER WITH DF$, AND WI%; EXIT WITH DF$ AND EX SB,WI%: NUMBER OF CHARACTERS TO BE ALLOWED IN INPUT EXZZ: EXIT TYPE (1 = , 2 = ) (DF$)ZZī245: NO DEFAULT STRING I1(D3))DD: CONVERT SECONDS TO HH:MM:SS FORMATXDY(TSDD):DY$(DY)"/"HO((TSDYDD)HU):MI((TSDYDDHOHU)MM):SC(TSDYDDHOHUMIMM.5)HO$(HO)":":HO10HO$"0"HO$MI$(MI)":":MI10MI$"0"MI$SC$(SC):ONDS?(DF$)12Q$"000:00:00:00":DF$(Q$,12(DF$))DF$]EX0:(DF$)12EX2:945DF$(DF$,3)(DF$,5,2)(DF$,8,2)(DF$,11,2):I19:II((DF$,I,1)):II48II57EX2:945I:TS((DF$,8,2))((DF$,6,2))MM((DF$,4,2))HU((DF$,5:"A B C D"**5:MU$;A.P14:AC(P)816p/(5P72((VU$(P))2)):"(";VU$(P);")";w0P2PO(36)0ĺ: DO C/R IF PRINTER ON OR NOT ALREADY ON NEXT LINE4DA$> CONVERT TIME IN "DD:HH:MM:SS" FORMAT TO SECYTHING ELSE AS A SPACE@vAC69AC8: USE SPECIAL SMALL 'E'f{HZ,H:VZ,V: STARTING SPOTAB,AC: POKE PROPER CHCA: PRINT CHARACTERHHLW: STEP OVER CH  PRINT TABLE HEADINGS$1&ML$;:1(Q$,4,2))DD#6TI(P)TI:TITI1f<TE(P)I(1,P)SL(P)(V(P)AV(1,P)): CALC. CORRECTED READINGm>Ps@X LARGE PRINTbPR$PR$" ":PR$(PR$,(39LW))gCH1(PR$)lAC((PR$,CH,1))qAC35AC90AC32: TREAT EVER#768,Q$:Q$(Q$,1): GS CLOCKB%Q$(Q$,5)(Q$,9,9)".000"K'559)D$"PR#"CL:D$"IN#"CL:" ";Q$:557: THUNDER CLOCK+D$"PR#"CL:D$"IN#"CL:Q$: MOUNTAIN CLOCK-D$"IN#0":D$"PR#0"/TI((Q$,6))((Q$,10,2))MM((Q$,7,2))HU(072: SET MACHINE CODE TO READ INPUT PF3075: READ COUNTS]C(250)CC(251)V(P)(CET)1000: RAW INPUT READING  READ CLOCK:!CN566,553,555,547: ON THE CLOCK# GOTO SOFTWARE CLOCK,PRODOS CLOCK,MOUNTAIN CLOCK,GS CLOCK"UT :ID$"V"Ĺ252,2:253,0: POKE FOR ONE READINGQP14:AC(P)574tID$"B"534: READ VIU V(P)(P)V(P)V(P)DAVRVM V(P)(V(P)1000HH)1000Q1AD:: DELAY544 ------ VIU READ:(6,P:3:" NO"YU:4Q$)Q(Q$)KQ27SE2:442: ESCAPEYQ13442vQ$"Y"Q$"y"SE1:400Q$"N"Q$"n"SEZZ:400Q10Q11Q8Q21Q32439: DOWN,UP,LEFT,RIGHT,SPACESE1SE403 READ INP" - "S$(OS)j3300l ACCEPT A LETTERSpQ$(13)376: RETURN PRESSEDnrQ1NS:Q$L$(Q)SEQutQ~v356x YES/NO QUESTIONYU: UPPER LINE USED BY SUBROUTINE1SEZZĝ:"YES ";::"NO": SE1Ğ:"YES";:(Q$)7XQ96QQ32:Q$(Q): LOWER CASE INPUTTZQ27SEZZ:376: EXITc\Q13ī376r^Q32ī364`Q8Q11SESE1:SEZZSENSbQ21Q10Q32SESE1:SENS1SE1dYUOS:XLf(L$(OS))2ĺL$(OS)"- "S$(OS):362 hL$(OS)>XL:L$(Q)" - "S$(Q) @Q(B203D:DA$_F" TYPE LETTER OR USE THE ARROW KEYS"H" THEN PRESS "JYUSELXL::L$(SE);N(L$(SE))2ĝ:"- ";::S$(SE);::338P:" - ";::S$(SE);:ROSSETQ$VQ STRINGCI1(DB):DF$DF$((DBI)):: READ ENTRY INTO DF$IV, MENU.YU18YU18: UPPER LINE USED BY MENU0SENSSE12SEZZSE14NSYU19NS19YU6Q1NS8XL4:QYU<(L$(Q))2ĖXL:L$(Q)"- "S$(Q):320F$): SET UP DEFAULT STRING5 DBI,((DF$,I,1)); b DB,(DF$): DEFAULT STRING LENGTHy RE: READ INPUT EX(SB9): CHECK EXIT TYPE EX2285: IF ESCAPE (DB)ZZDF$"":285: NOTHING ENTERED DF$"": INITIALIZE ENTRYSC10SC$"0"SC$$DY0DY$"">DF$DY$HO$MI$SC$:b GET KEYPRESS i1sPN$;WI%1:DF$"":200 PRINT INPUT STATUS"INPUT DEVICE:";()ID$"V"ĺ"VIU";*ID$"B"ĺ"AIB";- 029:"ACTIVE:";12P148<AC(P)ĺ(64P);:1360PF" ";: INPUT OFFWPP]Zcd{x SELECTION MENUyEX0: EXIT TYPEzYU18YU18|NSYU19NS19YU~ MAIN MENU DISPLAYQ1NS XL11: STARTING POSITION (DF$): SET DEFAULT TO OLD VALUE=*/::"HIGH LIMIT: ";K*/DF$(HI)e*/200: GET HIGH LIMITu*/EX212920*/HI(DF$): SET DEFAULT TO OLD VALUE*/HILOĺ::"THE HIGH IS LESS THAN THE LOW - PLEASE ENTER AGAIN.":12130*/ -----1+ FLAG'):/LPSE(2): LARGE PRINT FLAGA)D/ALSE(3): ALARM FLAGk)N/AL12230: SKIP AHEAD IF NO ALARMS)X/:"MONITOR INPUT")]/::"SET LIMITS FOR ALARMS:")b/:"LOW LIMIT: ";)l/DF$(LO))q/WI%8)v/200: GET LOW LIMIT)/EX212920$*/LO: LEAVE THESE AS THEY WERE+(.SE(2)LP8(.SE(3)ALR(.FR1: SET FIRST RUN}(.L$(1)"S":S$(1)"STORE DATA IN MEMORY"(/L$(2)"L":S$(2)"LARGE PRINT DISPLAY"(/L$(3)"A":S$(3)"ALARMS"(/YU5:SE1:NS3:1400(&/EX212920)0/STSE(1): STORE"::198:I11500:I:2490: RING BELL AND DISPLAY MESSAGE' SE12000,14000,16000,30000,30000,30000,30000,30000,30000,30000,30000,30000' 2490: REPEAT MAIN MENU'. MONITOR INPUTS'.:"MONITOR INPUT"'.::" SELECT:"(.SE(1)ST162999& 2490.& ID$"B"SE8SESE1d& SE0MO12(ID$"B"):2490: PRESSED& SE2800,2790,2790,2800,2790,2800,2800,2800,2800,2800,2800,2800: START MODES THAT DO NOT REQUIRE DATA B' NR0Ģ20:7::"NO DATA TABLE IN MEMORY"))"OTHER OPTIONS"F% L$(12(ID$"B"))"Q":S$(12(ID$"B"))"QUIT"P% SEMOn% YU6:NS12(ID$"B"):300% MOSE: SET SELECTION% % SE12(ID$"B")2765: NOT QUIT% :10% "ARE YOU SURE YOU WANT TO QUIT?":YU11:SE0:400 & SETION"8$^ L$(8)"K":S$(8)"MONITOR INPUT VS. KEYBOARD"d$_ ID$"B"L$(9)"L":S$(9)"OSCILLOSCOPE"$d L$(9(ID$"B"))"S":S$(9(ID$"B"))"STRIP CHART RECORDER"$n L$(10(ID$"B"))"Z":S$(10(ID$"B"))"CALIBRATION"%x L$(11(ID$"B"))"O":S$(11(ID$"BL$(1)"M":S$(1)"MONITOR INPUT"M#( L$(2)"T":S$(2)"DATA TABLE/STATISTICS"o#< L$(3)"D":S$(3)"DELETE DATA"#F L$(4)"F":S$(4)"FILE OPTIONS"#P L$(5)"P":S$(5)"PLOT GRAPH"#Z L$(6)"R":S$(6)"GRAPH IN REAL TIME"$] L$(7)"C":S$(7)"FAST DATA COLLEC41859,7: APPLE BUG FIX0" MAIN MENUH" ::KP,0: CLEARg" D$"FRE": CLEAR STRINGS" " VOLTAGE PLOTTER III"" " VERNIER SOFTWARE"" " COPYRIGHT 1988"" " 1300: PRINT INPUT STATUS" !# WESSELMAN, AND LARRY ARBUTHNOT,JUL 87-FEB 88O!60000: SET ONERROR GOTO! 2460: DO NOT DELETE THIS LINE OR ELSE THE COMPACTED PROGRAM WILL CHANGE THE NUMBER OF LINE 2210 AND MESS THINGS UP! RESTART HERE! 60000: SET ONERROR GOTO"   ACCEPT A LETTER- Q$(13)1480H Q1NS:Q$L$(Q)SEQO QY 1464_ u  MAIN PROGRAM  COPYRIGHT 1988 VERNIER SOFTWARE  2920 S.W. 89TH PORTLAND, OR 97225/! REVISED BY DAVE VERNIER, TOMQ321470Q32ī1456<SE(SE)0SE(SE)1:1456JSE(SE)ZZlQ8Q11SESE1:SE0SENSQ21Q10SESE1:SENS1SE1YUOS:XL8SE(OS)1ĺ"ON "SE(OS)0ĺ" OFF"YUOS:XLL$(OS)" - "S$(OS) 1430 OR OFF. PRESS WHEN ALL"M"OPTIONS ARE SET AS YOU WANT THEM."XYUSEkXL::L$(SE);}" - "S$(SE);OSSEQ$Q(Q$)Q96QQ32:Q$(Q): LOWER CASEQ131480Q27EX2:1480: ESCAPE OF LABELQYU:XL8<SE(Q)1ĺ"ON ": INPUT ON_SE(Q)0ĺ" OFF": INPUT OFFiQYUXL:L$(Q)" - "S$(Q)Q18:DA$"USE THE ARROW KEYS TO MOVE TO AN OPTION.";"PRESS TO TURN THE OPTION"$"ON/ST12369: SKIP AHEAD IF NOT STORING DATAO+/ SET NUMBER OF READINGSf+/:"MONITOR INPUT"+/::"LENGTH OF TIME OVER WHICH INPUT(S)":"ARE TO BE MONITORED: ";+/TSDT:950: SET DEFAULT+0WI%11:200:EX2ī12920,0900: CONVERT DF$ TO TS>, 0TSNA1ĺ::"TIME TOO SMALL - ENTER AGAIN":12270q, 0EX2ĺ::"ILLEGAL TIME - ENTER AGAIN":12270{,0DTTS, 0::"NUMBER OF READINGS TO BE STORED":"OVER THIS TIME PERIOD: ";-*0NR(DTNA)((DTNA)(DTNA)): SET MAX NUMBER OF READ":ML$"# "HL$::800: TABLE HEADINGSd:334,3:35,23:KBZZ: TEXT WINDOW AND KB}:13KP,0: CLEAR STROBE:63J1NR:@3(KC)155JNR:J:13930: EXIT ON ESCAPE:E3(KC)160KB160;J3SE3(37)22KB193KB22513175: SKIN(P)N(P1)9d2PB9x249240,0:49242,0: TURN OFF ANNUNCIATORSV922490: RETURNt92 DISPLAY DATA TABLE92:"PRINT DATA TABLE"923:"BE SURE PRINTER (SLOT #";PR;") IS READY."92:1000:EX21393092D$"PR#";PR927:2MU$"("HU$")P THE DATA%82X(III)X(N(P1)II)>82Y(III)Y(N(P1)II)F8(2IIM822PY872 -----|892X(0)X(1): SET BEGINNING TIME8:2HU$"SEC.":HL$"TIME": SET HIRIZ UNITS & LABEL8<2 RESET SERIES END MARKERS8F2P148P2AC(P)N(P)N(P1)NR:12900 9Z2READINGS871NA212855: LESS THAN 2 INPUTS ACTIVE71JNA50Ģ12:"SAVING DATA IN MEMORY...": DISPLAY MESSAGE IF LONG WAIT71I071PPL14: FOR EACH SERIES EXCEPT THE 1ST72AC(P)01285072IINR: SERIES BEGIN 8 2II1NR: MOVE U 61KP,0861(KC)12712716: WAIT FOR KEYPRESS t61GS(49206):GS128Ĺ49206,GS128: RESTORE GS TO FAST61:: RESTORE SCREEN61ST12920: SKIP IF NOT STORING 61 MOVE DATA INTO "NORMAL" DATA FORMAT 71NRJ1: SET NUMBER OF 5t1(5P7):NU$;5~1P~51SFTLTI(PL):JJ1: IF STORING THEN INCREMENT BASE TIME AND INCREMENT THE LOOP COUNTER 51(KC)127ĹKP,0:1272051(ST)TIBTDT12500: RELOOP6135,24:24:1:"DATA COLLECTED - PRESS TO EXIT"; AN0 481LP12620;4?1HZZ:V(POO)TT: POSITION l4B1LW5:PR$NU$:600: LARGE PRINT READING~4L1 STORE DATA4V1SF12660: SKIP AHEAD IF NOT STORING 4`1Y(JN(POO))TE(P): STORE READING 5j1X(JN(POO))TI(P)BT: STORE TIME AHEAD IF NO ALARMS d31TE(P)LOĺ(7);:49243,ZZ:12580: BEEP AND TURN ON AN1 3149242,ZZ: TURN OFF AN1 3$1TE(P)HIĺ(7);(7);:49241,ZZ:12600: BEEP TWICE AND TURN ON AN0 4.149240,ZZ: TURN OFFTĭ(TI(PL)TL)TDSF1:J;: LINE NUMBER PRINTED ONLY IF STORING}2056((TI(PL)BT)):TI(PL)BT;: PRINT TIME20P1420(AC(P))ī12670: SKIP THIS INPUT21NUTE(P):100: ROUND READING AND TURN INTO A STRING31ALī12600: SKIP SAVE BOTTOM OF SCREEN "10810J1: TOP OF LOOP[10KP,0: CLEAR KEYBOARD STROBE10FRİ500:BTTI(PL):TLBTTD:FR0:12510: GET THE BASE TIME10500: READ TEMP1010SFZZ: FLAG MARKING IF THIS LINE OF DATA IS TO BE STORED C20S80 00:^00(AC(4))VU$"MIXED"H0:V30:PR$VU$:LW6:600: PRINT UNITS ON BOTTOM0021:1:"# (SEC.)";:P14:AC(P)1247700(5P7):"(";VU$(P);")";00P:34,21: SAVE HEADING10(24):10:"PRESS TO EXIT";:35,23: u03:39)/z0TI0: INITIALIZE TIMET/0ST12471: SKIP AHEAD IF NOT STORING_/0N(0)0/0P14: INITIALIZE SERIES MARKERS/0AC(P)N(P)N(P1)NE:12470: SERIES ACTIVE/0N(P)N(P1): IF SERIES INACTIVE/0P: NEXT SERIES00(LP)124--K.R0GS(49206):GS127Ĺ49206,GS128: SET APPLE IIGS TO NORMAL SPEEDQ.\0.p0MU$"(SEC.)":ML$"# TIME"::800:34,3: DISPLAY DATA TABLE HEADER AND SAVE TOP OF SCREEN.q0(24):11)"PRESS TO EXIT";:35,23: SAVE BOTTOM /INGS1-/0NRNENRNE: IF >MAX THEN SET TO MAX\-40DF$(NR):WI%3:200:EX2NR0:12920-90II(DF$):IINRĺ::"THE MAXIMUM NUMBER OF READINGS IS: ";NR:12320-;0II1ĺ::"YOU MUST STORE AT LEAST ONE ENTRY":12320->0NRII-C0TDDTNR.Q0 ---P SCROLLING MESSAGEP;T324:1::" PRESS , OR ";:;^3KB(KC):KP,ZZ:KB160KB193KB141KB155KB225KB138KB14913150: RETURN, SPACE BAR,A,ESC,DOWN ARROW,RIGHT ARROW  EXIT ?DLDHQDL:DLDH:DHQ: ENTERED IN WRONG ORDER-SWITCHIH?DHNRĺ:"THERE ARE ONLY ";NR;" LINES IN THE":"DATA TABLE. PLEASE SELECT AGAIN."::1000:16020IR?DL116020: IMPROPER LINE ENTERED)J\?1(DF$):(DF$,CH,1)"-"DPCH: FIND HYPEN9H ?CHH?(DF$,1)"-"DLN(0)1:DH((DF$,(DF$)1)):16190: START SELECTIONH ?DP0DL(DF$):DHDL:16200: SINGLE ENTRYH*?DP(DF$)DL(DF$):DHNR:16190: END SELECTION/I4?DL((DF$,DPNTER"2G>"ITS LINE NUMBER AND PRESS ."]G>:"TO DELETE A RANGE OF DATA, ENTER "G>"THE FIRST LINE # - LAST LINE #"G>"AND PRESS ."G>G>DF$"":WI%9:200:EX2DF$""16360G>G>DP0: WILL BE POSITION OF THE "-"1H?CH F@=:GF=POĺ(12);:D$;"PR#0":23:TURN OFF PRINTER & FORM FEEDaF=1000: GET RETURN|F=2460: RETURN TO MAINF> DELETE DATAF>:"DELETE DATA"F>:"ENTER THE LINE NUMBER(S) TO BE DELETED."G>:"TO DELETE A SINGLE LINE OF DATA, E; EDu<:"DEPENDENT VARIABLE:"nDv?6PO0:SE3SE5PO1: SET PRINTER ON FLAG@7SE1 KEYBOARD&>62460: RETURN TO MAINP>6 DISPLAY OR PRINT DATA TABLE MENUo>6:"DATA TABLE/STATISTICS">6::"SELECT OPTION:">6L$(1)"D":S$(1)"DISPLAY DATA TABLE">6L$(2)"L":S$(2)"LARGE PRINT DATA TABLE"?6L$(3)"P":S$(3)"PRINT DATA TAY(JN(P1)):100:(5P7):NU$;: PRINT IF NOT STATISTICS ONLYL=3PR=3Y=`6J=j6POĺ(12);:D$;"PR#0":23: TURN OFF PRINTER & FORM FEED=~6KB155ĺ:"PRESS TO EXIT";:WI%1:DF$"":200: GET RETURN UNLESS >6KP,ZZ: CLEARI1)):Y(J)Y(JDI(I1)):16290QK?X(J)X(JDI(I1)DI):Y(J)Y(JDI(I1)DI)XK?J_K?PK?NRNRDI: DECREASE TOTAL NUMBER OF DATA PAIRSK?K?DLDHĺ"DATA LINE #"DL" DELETED.":16350K?"DATA LINES ";DL" TO ";DH;" DELETED."K?:1000L?2490: RETURN TO MENU8LPF LARGE PRINT DATA TABLE>LUFDLZFL\F(AC(4))VU$"MIXED"H0:V30:LW6:PR$VU$:600: PRINT UNITS ON BOTTOML]F23:"USE ARROW KEYS TO SCROLL THROUGH TABLE"L_F24:9)"PRESS TO EXIT";:35,22MdFJ1: I5 NU(NUFCTRHH)FCTR: SIG. FIGS. ROUNDING NU$(NU):(NU$)4ĭ(NU)NUNU$NU$".": CREATE STRING AND IF INTEGER ADD "." (NU$,1)"."NU$"0"NU$: ADD LEADING ZERO (NU$)5(NU1)NU$NU$"000":NU$(NU$,4(NU.1)(NU1)): eghijklmnopqrstuvwxyz{|}~ROUNDING IF ZERO sPWR1B xNU1135: NUMBERS LARGER THAN 1u }NUPWRPWRPWRTT:125: REPEAT UNTIL PWR<=NU 140: SKIP AHEAD NUPWRTTPWRPWRTT:135: SET PWR FOR NUMBERS LESS THAN 1 FCTRTZ(PWRTT): FACTOR USED IN ROUGH ROUNDING=41859,7:KP,0: APPLE BUG FIX & CLEAR KEYBOARD STROBEH20000f "VOLTAGE PLOTTER III "VERNIER SOFTWARE--VERSION 5/25/88"d ROUND TO SIG FIGS AND PRINT IN COLUMNS fSN$" "iNUZZSN$"-":NU(NU) nNUZZ150: SKIP RESET POINTERS, RELEASE BUFFERS, AND ENDOR ON LINE ";EL;" *"TITJ13000:J: TIME DELAY TO READ SCREENOTgT865: CLEAR STACKTEL2000ġ: IF ERROR OCURS IN A SUBROUTINE, REMOVE ADDRESS FROM STACKT2460: MAIN MENU*U:104,8:103,1:2048,0:216,0:D$"CLOSE":861::: RETURN TO MAIN)S` ERROR HANDLINGKScD$"PR#0": TURN OFF PRINTERmSeEL(219)CC(218):EC(222)~Sg:::"* ";StEC3ĺ"NO DEVICE CONNECTED";:60040SEC69ĺ"OVERFLOW";:60040SEC25560065S"CODE  ";EC;T" ERRfu30090Rgu OSCILLOSCOPE1RhuCH$CH$"SEVEN" , 2 = ) (DF$)ZZī245: NO DEFAULT STRING I1(DF$): SEV188V188VWWVWW.H275H10Q((PR$,CH,1)):Q96QQ32: CHARACTER AND CONVERT TO UPPER CASE IF NEEDEDQ31Q96Q32: SPACEQ31H,VWWO$"V"VVLW: STEP UPO$"H"HHLW: STEP OVER ###HIRES PRINTING= ENTER WITH O$, H, V, PR$f(PR$)0ī732: RETURN IF NO STRING0: ROTATION IS NORMALLY HORIZONTALO$"V"Ę48: ROTATE VERTICAL LETTERSCH1(PR$): FOR EACH LETTER TO BE PRINTEDH0H0TB6TB6PXPWW,TBXPWW,TB:YPTB1ēXP,TBXP,YPWW: TOPhVP0VTVQVB:674VTVQ(100VB)100TB176((VTSV(2))FA(2)HH)TB176TB176XPWW,TBXPWW,TB:TBYP1ēXP,TBXP,YPWW: BOTTOMQ(100HB)1001TB((HTSV(1))FA(1)HH)HLBTBHRTBHRTB,YPWWTB,YPWW:TBXP1ēTB,YPXPWW,YP: RIGHTVB0680: SKIP VERTICAL BARSVP0VTVQVB:664VTVQ(100VB)100TB176((VTSV(2))FA(2)HH) : VALUE OF LEFT END OF RELATIVE ERROR BARTB((HTSV(1))FA(1)HH)HL: CALCULATE SCALED PLOTTING POSITION FOR LEFT END OF BARTBHLTBHLTB,YPWWTB,YPWW:XPTB1ēTB,YPXPWW,YP: LEFTHP0HTHQHB:652HTHvP3Ĕ68XPWW,YPWW:634: CIRCLEMxP4Ĕ69XPWW,YPWW: DIAMOND{zPS(2)1680: SKIP ERROR BARS|HB0658: SKIP HORIZONTAL BAR~HP0HTHQHB:642: VALUE OF LEFT END OF ABSOLUTE ERROR BAR2HTHQ(100HB)100:I,YPI,176:I:BL,176BL,YP:BR,YP:BR,176:624pnIYP176BS:BL,IBR,I:I:BL,YPBL,176:BR,YPBR,176pPS(1)0634: SKIP POINT PROTECTORSrP1Ĕ66XPWW,YPWW:634: DRAW SQUAREtP2Ĕ67XPWW,YPWW:634: TRIANGLE) START OF LINE (POINT TO POINT) bPS(4)ēXZ,YZXP,YP:XZXP:YZYP: PLOT PROPER LINE SEGMENT dPS(7)0ī624: SKIP BAR GRAPHfBLXPBX:BLHLBLHLhBRXPBX:BRHRBRHRjJWW(JWW)ī6225lIBLBRBSSCALED VALUEST\YP6YP176XPHRWWXPHL607: SKIP IF POINT IS ON SCREEN](FS)Č198: BEEP- IF LAST POINT WAS ONSCREEN^FS1:OS(P)1:680_FS0:XP,YP: CLEAR OFFSCREEN FLAG & PLOT THE DATA POINT<`OS(P)1XZXP:YZYP:OS(P)0: L$(OS);"- ";S$(OS):3623hL$(OS);" - ";S$(OS)<j330Vl ACCEPT A LETTERhpQ$(13)376rQ1NS:Q$L$(Q)SEQtQv356xX ###PLOT A POINTZXP((HQSV(1))FA(1)HH)HL:YP176((VQSV(2))FA(2)HH): S$(SE);:ROSSETQ$)VQ(Q$)YXQ96QQ32:Q$(Q): LOWER CASE INPUTvZQ27SEZZ:376: EXIT\Q13ī376^Q32ī364`Q8Q11SESE1:SEZZSENSbQ21Q10Q32SESE1:SENS1SE1dYUOS:XLf(L$(OS))2:L$(Q);" - ";S$(Q)@Q$B20UD:"---------------------------------------"F" TYPE LETTER OR USE THE ARROW KEYS"H" THEN PRESS "JYUSELXL::L$(SE);N(L$(SE))2ĝ:"- ";::S$(SE);::338 P:" - ";::;I1(DB):DF$DF$((DBI)):: READ ENTRY INTO DF$AN, MENUy.YU18YU18: UPPER LINE USED BY MENU0SENSSE12SEZZSE14NSYU19NS19YU6Q1NS8XL2:QYU<(L$(Q))2ĖXL:L$(Q);"- ";S$(Q):320>XLT UP DEFAULT STRING- DBI,((DF$,I,1))3 Z DB,(DF$): DEFAULT STRING LENGTHq RE: READ INPUT EX(SB9): CHECK EXIT TYPE EX2285: IF ESCAPE (DB)ZZDF$"":285: NOTHING ENTEREDDF$"": INITIALIZE ENTRY STRINGCH 1 GET KEYPRESS 81BPN$;XWI%1:DF$"":200^vx SELECTION MENUyEX0: EXIT TYPEzYU18YU18|NSYU19NS19YU~ MAIN MENU DISPLAYQ1NSXL11: STARTING POSITION OF LABELQYU:XL8=SE(Q)1ĺ"ON ": INPUT ONhSE(Q)0ĺ" OFF": INPUT OFFrQYUXL:L$(Q);" - ";S$(Q)Q18:DA$"USE THE ARROW KEYS TO MOVE TO AN OPTION.";"PRESS TO TURN THE OPTIO INIT TO REAL BIG=*OHX(AX)1E32: INIT TO SUPER SMALLn*OPSP(AX):29500: GET HI/LO FOR THAT INPUT*OLX(AX)HX(AX)HX(AX)HX(AX)((HX(AX)).1): ADJUST IF EQUAL (ADD 10%)*OAX*P20750*P FIND LO & HI FOR INPUT VS.TIME:+P SEIP SCALING THEN GO DIRECTLY TO SET UP GRAPH<)O SCALING:V)O FIND MAX'S & MINS:u)O:"ANALYZING THE DATA...")OGT120700: SKIP IF INPUT VS. TIME )O FIND LO & HI FOR INPUT VS. INPUT:)OAX12: FOR HORIZ & VERT AXIS*OLX(AX)1E32:"["(64SP(1))"] "VL$(SP(1)):OL$"["(64SP(2))"] "VL$(SP(2)):PU$VU$(SP(1)):OU$VU$(SP(2)): CHANGE LABELS IF INPUT VS. INPUT(OBS2:BX5: BAR GRAPH VALUES(OHB0:VB10:HP0:VP1: DEFAULT ERROR BARS-)OFRSS21230: IF SK"BAR GRAPH"8'LOL$(8)"T":S$(8)"SPECIFY GRAPH TITLE"A'`ONS8x'jOYU5:SE1:1400: STYLE OPTIONS MENU 'tOEX221580: ON , EXIT ROUTINE IMMEDIATELY'~OI18:PS(I)SE(I):I: SET DEFAULT STYLE CONDITIONS(OGT2PL$ STYLE:"1&NL$(1)"P":S$(1)"POINT PROTECTORS"R&OL$(2)"E":S$(2)"ERROR BARS"z&OL$(3)"G":S$(3)"GRID ON THE GRAPH"&OL$(4)"L":S$(4)"LINE CONNECTING POINTS"&$OL$(5)"R":S$(5)"REGRESSION LINE"&.OL$(6)"S":S$(6)"STATISTICS"'8OL$(7)"B":S$(7)C(P))SP(1)P20160.%NII1:SEISEP:P45%NPX%NSP(AX)SE: INPUT SELECTED`%NAX%NP14:PA(P)(PSP(2)):: SET INPUT STATUS%NI18:SE(I)PS(I):I: SETS THE DEFAULT GRAPH STYLE CONDITIONS &N:"GRAPHING OPTIONS"::"SELECT GRAPHQ$"VERTICAL"E$N4(8(AX2)):1:"SELECT INPUT FOR ";Q$;" AXIS:"]$NI0: CLEAR COUNTER~$NP14:AC(P)SP(1)P20140$NII1:L$(I)(64P):S$(I)"INPUT "(64P)$NP$NYU6(8(AX2)):NSI:SE1:300:SE021570: %NI0:P14:(A"I":S$(2)"INPUT VS. INPUT"=#NNS2:SE1:YU10:300: MENUM#NSE021570m#NGTSE: SET GRAPH TYPE FLAG#NGT120200: INPUT VS. TIME#N:"SELECT AXIS"#NSP(1)0: CLEAR HORIZ AXIS INPUT#NAX12: FOR EACH AXIS$NQ$"HORIZONTAL":AX2LETTER SPACING ."HN **** MAIN PROGRAM `"\NP14:PA(P)AC(P):P: SET PLOTTING INPUTS"pNNA2GT1:20200: SKIP SELECT AXIS (ASSUME INPUT VS.TIME)"zN:"GRAPHING":8:"SELECT VALUES TO GRAPH:""NL$(1)"T":S$(1)"INPUT VS. TIME"#NL$(2)60" !! N PLOT GRAPH>!%N60000: ERROR HANDLINGv!*NSS0: SET SKIP SCALING FLAG TO 0 (DON'T SKIP IT)!/NFR1: SET FIRST RUN!1NOL$VL$:OU$VU$:PL$HL$:PU$HU$: SET UNITS & LABELS"4NHL41:HR278:LW6: GRAPH LIMITS AND ICK 2,4,5,10 AS SPACE/DIV." ^B l CHAIN BACK TO PART.ONE_ nD$"FRE": CLEAR STRINGSl q41859,3 v(860)1ĺD$"CHAIN /RAM/PART.ONE,@2460":CHAIN PART.ONE IN / RAM :12:"LOADING MAIN PART OF PROGRAM..."!D$"CHAIN ";PS$;"PART.ONE,@24(OS)1430( ACCEPT A LETTER;Q$(13)1480VQ1NS:Q$L$(Q)SEQ]Qg1464m@ ###SET SCALINGJ100:NUNUPW: USE NU WHICH IS THE ABSOLUTE VALUE OF THE ROUNDED VALUE TNU(22(NU2)(NU4)5(NU5))PW: P ESCAPE Q321470+Q32ī1456HSE(SE)0SE(SE)1:1456VSE(SE)ZZxQ8Q11SESE1:SE0SENSQ21Q10SESE1:SENS1SE1YUOS:XL8SE(OS)1ĺ"ON "SE(OS)0ĺ" OFF"YUOS:XLL$(OS);" - ";S$N"/"ON OR OFF. PRESS WHEN ALL"X"OPTIONS ARE SET AS YOU WANT THEM."cYUSEvXL::L$(SE);" - ";S$(SE);OSSEQ$Q(Q$)Q96QQ32:Q$(Q): LOWER CASEQ131480 Q27EX2:1480: T VERT AXIS LO & HI4+PAX2: SET FOR VERT. AXISh+PLX(2)1E32: INITIALIZE MINIMUM TO VERY BIG+PHX(2)1E32: INITIALIZE MAXIMUM TO VERY SMALL+PP14:PA(P)20715+P29500: GET HI/LO FOR THAT SERIES+PP0,PLX(2)HX(2)HX(2)HX(2)((HX(2)).1): ADJUST IF EQUAL (ADD 10%)V,P SET HORIZ (TIME) AXIS LO & HI:,PHL$"TIME"20730: SKIP IF NORMAL HORIZ DATA,P FIGURE MIN & MAX FOR INPUT VS.KEYBOARD,PLX(1)1E32:HX(1)1E32: INIT MIN & MAX,PJ1NR -PX(J)LX(1)LX(@:]DF$(HB):HP1DF$DF$"%": SET DEFAULT HORZ. ERROR BARS~:^WI%13:200:EX224650: EXIT THIS SUBROUTINE ON ESC:^(DF$,1)"%"HB((DF$,(DF$)1)):HP1:24100: RELATIVE ERROR BARS:^HB(DF$):HP0: ABSOLUTE ERROR BARS];$^:"VERTHING OPTIONS":G9]PS(2)024140: SKIP ERROR BARS IF NOT WANTED9]"SELECT THE SIZES OF THE ERROR BARS"::"ENTER A NUMBER FOR ABSOLUTE SIZE"9]"OR A NUMBER FOLLOWED BY A ";QM$;"%";QM$:"FOR RELATIVE SIZE.":]:"HORIZONTAL ERROR BAR SIZE: ";120200: FROM A MENU-NO SCALE MADEP8LT29000: FOLLOW-UP OPTIONS8VTNAAC(1)AC(2)AC(3)AC(4): RESET NA (FROM SELECTED INPUT PLOT)8`TSE3SE2ė:20200: REGRAPH8jT1900: RETURN TO MAIN8] ###SET UP GRAPH9]:3:::"GRAP1)J): VERT VALUE 7"T600>7&T(KC)155JNR:J:21560E7(TJ7)TPS(5)PS(6)PSP(2):29600: REGRESSION CALCULATIONS AND DISPLAY7-TD$;"FRE": CLEAR STRINGS IN MEMORY7.TDF$"":WI%1:200: WAIT78TFR0: CLEAR FIRST RUN.8BTFR0 6>SJ(6HSKP,0: CLEAR KEYBOARDg6RSPS(5)PS(6)İ29600: REGRESSION CALCULATIONS AND DISPLAY~6TP: NEXT SERIES6T21549: SKIP INPUT VS.INPUT6T PLOT INPUT VS. INPUT:6TJ1NR6 THQY(N(SP(1)1)J): HORIZ VALUE7!TVQY(N(SP(2) PLOTTING:A5SP14:PA(P)021530: FOR EACH ACTIVE INPUT}5 SJN(P1)1N(P1)NR: FOR EACH DATA POINT IN SERIS P5%SHQX(J): SET TIME AXIS5'SVQY(J): SET INPUT AXIS5*S600: PLOT POINT64S(KC)155JN(P1)NR:J:P4:P:KP,0:2156 SET THE SCALING FACTORS @4RAX: RELOOP - NEW AXIS^4R24000: SET UP GRAPH4REX221560: ON IN GRAPH SET UP SUBROUTINE4S PLOT POINTS:4 SI14:OS(I)1:I: SET OFF SCREENS TO 14SGT221532 5S INPUT VS. TIMEUE TO PLOT: ";K3RNU(HX(AX)Q)NL:1600:FA(AX)NU: SET SCALINGx3RNU(QFA(AX)CF):100:DF$NU$:WI%8:2003REX2215703RQQ((DF$)Q)CF3RQQ0ĺ:10AX:958:"THE MAXIMUM IS LESS THAN THE MINIMUM":21110#4RSV(AX)Q:FA(AX)QQ: 2DR21220#2NR C SCALING52XR:YU5:958U2bR"RANGE OF VALUES TO PLOT:"2lRNULX(AX):100:NU$;" TO ";:NUHX(AX):100:NU$2vR:"MINIMUM VALUE TO PLOT: ";2RNULX(AX):100:DF$NU$:WI%8:2002REX2215702RQ(DF$)3R:"MAXIMUM VALTUALLY BE STARTING VALUE11QLS((SV(AX))LL)=1QS10LSF1QPGSf1RPG(HX(AX)LX(AX))421020z1RPGPG10:210001RPGPG101&RLX(AX)0SV(AX)(SV(AX)PG)PG10RLX(AX)0SV(AX)1(SV(AX)PG)PGPG2:RNU(HX(AX)SV(AX))NL:1600:FA(AX)NU(HX(AX))NL+0QNUFA(AX):1600:FA(AX)NU60Q21220N0Q B SCALING0QLX(AX)0HX(AX)LX(AX)20890: NO CHANGE IN AXIS VALUE0QLX(AX)(HX(AX)LX(AX)).25LX(AX)020890: SAME AS A SCALING1QSV(AX)(LX(AX)): SV WILL EVEN2)"AUTOMATIC SCALING, VARIABLE ORIGIN"N/hQL$(3)"C":S$(3)"MANUAL SCALING"/rQYU7(AX1)8:NS3:SESD(AX):300: MENU /|QSE021570: EXIT/QSD(AX)SE: SET DEFAULT/QSE20890,20930,21070/Q A SCALING 0QSV(AX)0:FA(AX)AL":QQ$PL$:AX2CF150:NL170:Q$"VERTICAL":QQ$OL$o.,Q4(AX1)8:958:1:"SELECT ";Q$;" AXIS SCALING:".6Q:"AXIS LABEL:";:QQ$.@Q GET SCALING:.JQEX0: CLEAR EXIT FLAG.TQL$(1)"A":S$(1)"AUTOMATIC SCALING, STARTING AT 0")/^QL$(2)"B":S$(1)X(J)$-PX(J)HX(1)HX(1)X(J)+-PJ6-P20750`-P SET MIN & MAX FOR NORMAL HORIZ DATA-PLX(1)X(1): SET MIN TIME-QHX(1)X(NR): SET MAX TIME-Q:"GRAPH SCALING":-QAX12: FOR HORIZ AND VERT7."QCF200:NL271HL:Q$"HORIZONTICAL ERROR BAR SIZE : ";:DF$(VB):VP1DF$DF$"%": SET DEFAULT VERT. ERROR BAR SIZEr;.^200:EX224650;8^(DF$,1)"%"VB((DF$,(DF$)1)):VP1:24140: RELATIVE VERT. ERROR BARS;B^VB(DF$):VP0: ABSOLUTE VERT. ERROR BARS&."GmbDF$"":WI%1:200:EX225320Gpb20:958::"NOW PRINTING GRAPH..."HzbPT125250: OUT FORMAT:"?F*bL$(1)"1":S$(1)"SMALL GRAPH - NO FORM FEED"pF4bL$(2)"2":S$(2)"LARGE GRAPH - NO FORM FEED"F>bL$(3)"3":S$(3)"SMALL GRAPH FOLLOWED BY FORM FEED"FHbL$(4)"4":S$(4)"LARGE GRAPH FOLLOWED BY FORM FEED"GRbNS4:YU2:SE2:300: ## DUMP SCREEN GRAPH/Ea:"PRINT GRAPH":@Ea:"SELECT:"bEaL$(1)"I":S$(1)"IMAGEWRITER"EaL$(2)"G":S$(2)"GRAPPLER"EaL$(3)"P":S$(3)"PKASO/U"EaNS3:YU5:SE1:300: MENUEaSE025320: EXITEaPTSEEbF b"SELECT PRINTVALUE D_I6D_ HORIZONTAL TICKMARK LABELS:AD_O$"H"RD_I0200100D_V181: NEEDS TO BE SET EACH TIME BECAUSE PRINT ROUTINE MODIFIES ITD_NUIFA(1)SV(1):100: ROUND VALUED`PR$NU$D`HHLI(PR$).5LW:700D`IDJ`Ea _NUIFA(2)SV(2):100: GET AND ROUND TICKMARK VALUESuC_PR$NU$:HHL(PR$)LW:V176I: SET PRINT VALUESC_V176V174: IF LOWER MARK THEN MOVE IT UP A BIT C_HLWHLW: IF TOO FAR LEFT THEN CUT IT OFF D_700: PRINT THE YB_I166010@B_(176I)50((176I)50)ēHL,IHL10,IpB_HL,IHL5,I: TICKMARKS ON VERTICAL AXISwB_IB_(KC)155ĹKP,0:EX2:24650: EXIT ON B_49232,0:49234,0:49236,0:49239,0: DISPLAY GRAPHB_O$"H"B_I015050>^PA(2)ĺ"INPUT B - TRIANGLE"]>^PA(3)ĺ"INPUT C - CIRCLE"}>^PA(4)ĺ"INPUT D - DIAMOND">^:"THE GRAPH IS NOW BEING DRAWN...">^::"AFTER VIEWING THE GRAPH, PRESS">^" TO CONTINUE." ?^O$"V": VERT$:24188: NO ALTERNATE HEADINGJ=v^::"ENTER GRAPH HEADING: ":b=x^WI%40:DF$HD$:200r=y^EX224650={^TI$DF$:HD$DF$: SET HEADING & NEW DEFAULT=|^::=}^(PS(1))GT224250: NO POINT PROTECTORS=~^"POINT PROTECTOR KEY:":> FIND LOWEST TIMEKeI*Ke26043ZtX00X0HRX90X9HR29890iZtX0,Y0X9,Y9: DRAW REGRESSION LINEZtPS(6)029950: SKIP STATISTICSZtNUM:100:PR$"M= "NU$" "ZtNUB:100:PR$PR$"B= "NU$" "[tNURX:100:PR$PR$"R= "NU$:Y9(Y9176Y90)176(Y9176).YtHHL:VY0sYtM0X9HR:X0HL:29870: AVOID DIV BY ZERO,DRAW STRAIGHT LINEYtX0H(V0V176)(V0V176)((((176V)FA(2)SV(2)B)MSV(1))FA(1)HL)YtHHR:VY9ZtX9H(V0V176)(V0V176)((((176V)FA(2)ING CORR. COEFFT.HX6tRX(PSSNXAYA)((SN1)SXSY): CORR. COEFFT.~XTtPS(5)029890: SKIP DRAWING REGRESSION LINEX^tY0176(BMSV(1)SV(2))FA(2)XhtY0Y0(Y0176Y00)176(Y0176)XrtY9176(BM(SV(1)(HRHL)FA(1))SV(2))FA(2) Y|tY9SN: MEANS7WtM(PSSNXAYA)(X2SNXA2): SLOPEUWtBYAMXA: INTECPT.WtSX(((X2SNXA2)(SN1))): STD DEV OF XW"tSY(((Y2SNYA2)(SN1))): STD. DEV OF YX,t((SN1)SXSY)0RX1:29780: AVOID DIV BY 0 IN CALCULATNGE #'S FOR INPUT VS. INPUT?VsSNSN1: NUMBER OF POINTS`VsX1X1HQ:Y1Y1VQ: SUMSVsX2X2HQHQ:Y2Y2VQVQ: SUMS OF THE SQUARESVsPSPSHQVQ: SUM OF THE PRODUCTSVsJVsSN229950: PREVENT DIV BY ZEROWsXAX1SN:YAY1X(AX):100:HX(AX)(NU$): ROUND HIGH-UsQUs ###REGRESSION CALCULATIONSUsSN0:X10:Y10:X20:Y20:PS0: INIT. COUNTERSUsJN(P1)1N(P): FOR EACH POINT IN SERIES PVsHQX(J):VQY(J):GT2HQY((JN(P1))N(SP(1)1)):VQY(J): CHATr(T1 PROBE ACTIVE (AND NOT I VS. I) OR INPUT VS. KEYBOARD DATAPRqD$;"FRE": CLEAR STRINGSP\qKP,0Pfq::"GRAPH FOLLOW-UP OPTIONS"::Qpq"CURRENT GRAPH:":OL$;" VS. ";PNU$" "Q$:700: DISPLAY AREAOvfGT2HU$"MSEC."V32:HHL20:PR$"OR":700:V40:HHL10:NUAR1000:100:PR$NU$" "VU$"-SEC.":700: DISPLAY AREA IN SECONDSOf1000OfOHq ###END OF GRAPH OPTIONSPMqQQ1:FRNR2(NA1GT2)HL$N(SP(1)1)1)Y(JN(SP(1)1))):26200: FOR I VS. INNfARAR(Y(JN(P1))Y(JN(P1)1))2(X(JN(P1)1)X(JN(P1))): FOR I VS. TIMENXfJNbfNUAR:100: ROUND NUMBERNgfQ$VU$"-"HU$:GT2Q$VU$(SP(2))"-"VU$(SP(1))$OlfV24:O$"H":HHL10:PR$HNJ:26150: BOTH ENDS ENTEREDSMeKB141LNJ:JJ1:26140: LOW END ENTEREDmMfKB15526250: Mf71XP,44: CLEAR LINE FOR MOVEMf26044M&f CALC INTEGRATIONM:fAR0MDfJLNHN16NIfGT2ARAR(Y(JN(P1))Y(JN(P1)1))2(Y(J STAT. STRING COMPLETEt[tV10(P1)8(NA1):H(HLHR)2LW((PR$)2): DISPLAY ON TOP LINE UNLESS > 1 ACTIVE[t700: PRINT REGRESSION LINE STATS[t[` ERROR HANDLING[c::D$"PR#0": TURN OFF PRINTER\eEL(219)CC(218):EC(222)\g:::"* ";?\tEC3ĺ"NO DEVICE CONNECTED";:60040^\EC69ĺ"OVERFLOW";:60040p\EC25560065\"CODE  ";EC;\" ERROR ON LINE ";EL;" *"\\J13000:J: TIME DELAY TO READ SCREEN\\865: CLEAR STACKJ]18:DA$D"USE THE ARROW KEYS TO MOVE TO AN OPTION.";p"PRESS TO TURN THE OPTION""ON OR OFF. PRESS WHEN ALL""OPTIONS ARE SET AS YOU WANT THEM."YUSEXL::L$(SE);" - ";S$(SE);OSPEzYU18YU18,|NSYU19NS19YUG~ MAIN MENU DISPLAYSQ1NS}XL11: STARTING POSITION OF LABELQYU:XL8SE(Q)1ĺ"ON ": INPUT ONSE(Q)0ĺ" OFF": INPUT OFFQYUXL:L$(Q);" - ";S$(Q)Q GET DATA FILE NAMEBV:"CURRENT PREFIX: ";PF$:_`"ENTER NAME OF FILE:":DF$N$:WI%65:200:EX21192: INPUT NAME (65 CHARACTERS ALLOWED)N$DF$:1195N$"": ON ESCx SELECTION MENUyEX0: EXIT TYN"Q$"n"SEZZ:400WQ10Q11Q8Q21Q32439: UP,DOWN,LEFT,RIGHT,SPACEcSE1SEl403r GET KEYPRESS 1PN$;WI%1:DF$"":200"L x  YES/NO QUESTIONHYU: UPPER LINE USED BY SUBROUTINEO1oSEZZĝ:"YES ";::"NO":SE1Ğ:"YES";::" NO"YU:4Q$Q(Q$)Q27SE2:442: ESCAPEQ13442Q$"Y"Q$"y"SE1:400Q$"1:SEZZSENS; bQ21Q10Q32SESE1:SENS1SE1J dYUOS:XLt f(L$(OS))2ĺL$(OS);"- ";S$(OS):362 hL$(OS);" - ";S$(OS) j330 l ACCEPT A LETTER pQ$(13)376: PRESSED rQ1NS:Q$L$(Q)SEQ tQv356 JYUSE LXL::L$(SE);J N(L$(SE))2ĝ:"- ";::S$(SE);::338e P:" - ";::S$(SE);:o ROSSEw TQ$ VQ(Q$) XQ96QQ32:Q$(Q): LOWER CASE INPUT ZQ27SEZZ:376: EXIT \Q13ī376 ^Q32ī364 `Q8Q11SESENSSE1 2SEZZSE10 4NSYU19NS19YU< 6Q1NSE 8XL4O :QYUz <(L$(Q))2ĖXL:L$(Q);"- ";S$(Q):320 >XL:L$(Q);" - ";S$(Q) @Q B20 D:DA$ F" TYPE LETTER OR USE THE ARROW KEYS" H" THEN PRESS " CHECK EXIT TYPE. EX2285: IF ESCAPE[ (DB)ZZDF$"":285: NOTHING ENTERED DF$"": INITIALIZE ENTRY STRING I1(DB):DF$DF$((DBI)):: READ ENTRY INTO DF$  , MENU .YU18YU18: UPPER LINE USED BY MENU 0SELLOWED IN INPUTD EXZZ: EXIT TYPE (1 = , 2 = )m (DF$)ZZī245: NO DEFAULT STRING I1(DF$): SET UP DEFAULT STRING DBI,((DF$,I,1)) DB,(DF$): DEFAULT STRING LENGTH RE: READ INPUT EX(SB9):=41859,7:KP,0: APPLE BUG FIX & CLEAR KEYBOARD STROBEH30000d "VP III - PART.THREE""(C) 1988 VERNIER SOFTWARE 5/25/88" INPUT ENTER WITH DF$, AND WI%; EXIT WITH DF$ AND EX SB,WI%: NUMBER OF CHARACTERS TO BE AEL2000ġ: IF ERROR OCURS IN A SUBROUTINE, REMOVE ADDRESS FROM STACKi]21560: FOLLOW-UP OPTIONSSE Q$Q(Q$)GQ96QQ32:Q$(Q): LOWER CASEVQ131480wQ27EX2:1480: ESCAPE Q321470Q32ī1456SE(SE)0SE(SE)1:1456SE(SE)ZZQ8Q11SESE1:SE0SENS Q21Q10SESE1:SENS1SE1YUOS:XL82SE(OS)1ĺ"ON "JSE(OS)0ĺ" OFF"YYUOS:XLrL$(OS);" - ";S$(OS)|1430 ACCEPT A LETTERQ$(13)1480Q1NS:Q$L$(Q)SEQQ1464 SET UP INPUTSNA0:PL0&EATED WITH THE NAME:":PF$;DF$&"A}>"F}1000: GET RETURNX"Z}30003: BACK TO MENUt"耲 STORE DATA ON DISK"逗:"SAVE A FILE":"뀰1100: GET FILE NAME "퀭N$""ī33395: EXIT ON NO ENTRY AFTER RESTORING FILE NAME F#355ATE SUBDIRECTORY":5!}:"CURRENT PREFIX: ";PF$:d!}:"ENTER NAME OF SUBDIRECTORY TO CREATE:"!}DF$"":WI%15:200:EX2DF$""32090: EXIT!$}!1}32050: USED SO COMPACTOR WILL NOT MOVE LINE!2}D$;"CREATE";PF$;DF$ "<}:"NEW SUBDIRECTORY CR700:NRQ: SAVE/RESTORE NR,SET UP INPUTS@ zD$;"CLOSE ";N$o z:"FILE NAMED: ";N$:"LOADED INTO MEMORY" z::1000: GET RETURN zQQ$N$: REPLACE FILENAME zN$QQ$:30003: RESTORE FILENAME AND GO BACK TO MENU } SUBDIRECTORY! }:"CRERIES MARKERS AND PB"zNR0:Q0KzI14:N(I)QAC(I)1:QN(I):31408WzAC(I)0fzNR0NRQmzIxzP14z31414: USED SO COMPACTOR WILL NOT MOVE LINE 31414zVL$(P):VU$(P): INPUT VERT UNITS/LABELS FOR EACH INPUTzP, zQNR:1ONG7y31160: USED SO COMPACTOR WILL NOT MOVE LINEhyJ1MA1: FOR ALL POSSIBLE DATA PAIRSryX(J)|yY(J)yX(J)9999Y(J)9999JMA1: EXITy31200: SO COMPACTOR WILL NOT MOVE LINEyJyQ:I04:N(I):I: END OF SEFILE READ(my:"LOADING FILE : ";N$;>ryD$;"VERIFY ";N$RwyD$;"OPEN ";N$e|yD$;"READ ";N$yHL$:HU$:VL$:VU$: READ LABELS AND UNITSyHL$(HL$,5): TRUNCATE LABEL IF TOO LONGyHU$(HU$,5):VU$(VU$,5): TRUNCATE UNITS IF TOO L33000,34000,35000,320001\v30003: PICK AGAINMy READ DATA FROM DISKt"y38000: SELECT A FILE NAME #yEX2EX0:31460: EXIT ON ESCAPE)y:"LOAD DATA FILE"*yN$""31460: EXIT ON ESCAPE AFTER RESTORING FILE NAME hy NORMAL "PRESS TO EXIT";.uWI%1:DF$"":200NuEX230003: EXIT ON u(SE5SE6)NR0ī30290: JUMP IF THEY DO NOT REQUIRE DATAu"NO DATA IN MEMORY"::1000: GET RETURNv30003: RETURN TO MAIN MENURvSE37000,36000,37500,31000,TO MAIN MENUSuSE4NR030190: SKIP WARNING MESSAGE, NO DATA IN MEMORYnu"LOAD DATA FROM DISK"u::"WARNING!":"LOADING A NEW DATA FILE WILL ERASE THE"u"DATA CURRENTLY IN MEMORY. "u21:7)"PRESS TO CONTINUE"u10)ECTED INPUTS)"2uL$(7)"D":S$(7)"DELETE FILE"\uL$(8)"R":S$(8)"CREATE SUBDIRECTORY"uL$(9)"X":S$(9)"RETURN TO MAIN MENU"uSEFO:SE0SE1: SET SELECTIONuYU5:NS9:300: MAIN MENU uFOSEuuSE9SE01900: BACK HOUSEKEEPING OF STRINGS =uL$(1)"C":S$(1)"CATALOG"euL$(2)"A":S$(2)"SELECT DATA DRIVE"uL$(3)"N":S$(3)"SET NEW PRODOS PREFIX"uL$(4)"L":S$(4)"LOAD DATA FROM DISK"uL$(5)"S":S$(5)"SAVE DATA ON DISK"uL$(6)"I":S$(6)"SAVE (SEL.."*D$"CHAIN ";PS$;"PART.ONE,@2460"0E0u FILE OPTIONSQ2u60000W3uu5uPF$""ĺD$;"PREFIX":PF$6u"FILE OPTIONS"8u:"PREFIX: ";PF$9u"FILE: ";N$;:u(N$)0Ğ:"NONE";:;uQQ$N$: SET BACKUP FILENAME NuD$;"FRE": K FOR MIXED UNITS3VL$(I)VL$(P)VL$"MIXED"SVU$(I)VU$(P)VU$"MIXED"]I:Pcl CHAIN BACK TO PART.ONEq41859,3v(860)1ĺD$"CHAIN /RAM/PART.ONE,@2460": CHAIN PART.ONE IN / RAM:12:"LOADING MAIN PART OF PROGRAM.P14:FIND LOWEST & NUMER ACTIVEDAC(P)NANA1:PL0PLPKP[NA0ī1790NEMANA: MAXIMUM READINGS PER INPUTNRZZ: CLEAR DATAVL$VL$(PL):VU$VU$(PL): SET LABEL & UNITSP14:I1P:(AC(P))(AC(I))1780: CHEC00:EX2ī33395: CHECK IF THE FILE EXISTS AND EXIT IF THEY WANT OUT]#:"SAVE A FILE":x#"SELECT FILE TYPE:":#L$(1)"N":S$(1)"NORMAL"#L$(2)"D":S$(2)"DIF (FOR TRANSFER TO APPLEWORKS)"#SE1: DEFAULT A NORMAL FILE, UNLESS...>$(N$,4)".DIF"(N$,4)".dif"SE2: LIKELY A DIF FILEh$$NS2:YU4:300: DISPLAY MENU $)SE033395: ON ESC EXIT$+:"SAVING FILE : ";N$;$-33070: USED SO COMPACTOR WILL NOT MOVE LINE$.D$;"OPEN ";N$%8D$;"WRITE ";N$N'T WANT TO DELETE IT MAKE SURE SE<>0 OR ELSE YOU WILL RETURN TO THE MAIN MENU INSTEAD OF THE FILE OPTIONS MENU2鈫35050: USED SO COMPACTOR WILL NOT MOVE LINE2ꈺD$;"DELETE ";PF$;N$2숺:::"FILE: ";PF$;N$;" DELETED."2툺::1000: GET RETURN3 DELETE$1:"DELETE FILE":E1N$"": NO DEFAULT ON DELETEd1ˆ1100: GET FILE NAME u1LjN$""350551̈:"ARE YOU SURE YOU WANT TO DELETE THE FILE";:PF$;N$;" ?"1ֈSE0:YU5:400: YES/NO MENUr2SE1SE2:35055: DIDI?0I14:VL$(I):VU$(I):I: LABELS/UNITS FOR EACH INPUTR0 D$"CLOSE ";N$X0 0"DATA SAVED IN A FILE NAMED: ":N$0QQ$N$: SET BACK UP FILENAME 0::1000: GET RETURN0N$QQ$:30003: RESTORE FILENAME AND RETURN TO MAIN MENU 1R/~X(JN(I1))%/Y(JN(I1)),/J3/IG/"9999":"9999"/I411:PA(I)QQI:I1: FIND HIGHEST ACTIVE INPUT/I/QQ: HIGHEST SERIES/ĆN(0)/ΆQ0/؆I14/↭(PA(I))34550/QQNR/Q: SERIES MARKERS0IF THE FILE EXISTS AND EXIT IF THEY WANT OUTJ. :"SAVING FILE : ";N$;|.34320: USED SO COMPACTOR WILL NOT MOVE LINE.D$;"OPEN ";N$.D$;"WRITE ";N$.$HL$..HU$.8VL$.BVU$.VI14: FOR EACH INPUT.`(PA(I))34470/jJ1NTINUE"'-10)"PRESS TO EXIT"=-ʅWI%1:DF$"":200[-ԅEX234030: START OVERm-ޅ34580: EXIT-腲 ---SAVE DATA-:"SAVE SELECTED INPUTS":-1100: GET FILE NAME-N$""34580: EXIT IF NO ENTRY..35500:EX2ī34580: CHECK AST ONE INPUT,uPA(I)ZZ#,zIP,Qī34280: VERIFY AT LEAST ONE IS ONv, NO INPUTS SET-INFORM USER |,,"SAVE SELECTED INPUTS",::"NO INPUTS HAVE BEEN SELECTED.","NO DATA WILL BE SAVED."-21:7)"PRESS TO CON "(64II):II1+*II'+4II14C+>SE(II)1: SET TO ONK+HIIf+RYU4:NSI1:SE1:1400~+WEX234580: +\Q0: CLEAR FLAG TO 0+aII0+fI14+kAC(I)34170+lIIII1,pSE(II)PA(I)SE(II):Q1:34170: FLAG FOR AT LEACK UP FILENAME,*r::1000: GET RETURNd*sN$QQ$:30003: RESTORE FILENAME AND RETURN TO MENU*Є SAVE SELECTED DATA INPUT* PRINT INPUT LETTERS*:"SAVE SELECTED INPUTS"** I1*II14+ AC(II)L$(I)(64II):S$(I)"INPUT&(AC(P))33355: INPUT OFF 7)'JN(P1)1N(P)`)(1;",";0:"BOT": BEGINNING OF DATAu)20;",";X(J):"V")<0;",";Y(J):"V")FJ)KP)P1;",";0:"EOD")ZD$;"CLOSE ";N$)d)p"DATA SAVED IN A FILE NAMED: ":N$*qQQ$N$: SET BM$5(1;",";0:"BOT": BEGINNING OF UNITS TUPLEW( 1;",";0:QM$;"(";HU$;")";QM$y(1;",";0:QM$;"(";VU$;")";QM$(P14(1;",";0:"BOT": SERIES LABEL TUBLE( Q$"INPUT "(64P)":"("1;",";0:QM$;Q$;QM$(%1;",";0:QM$;" ";QM$")'΁"TUPLES":0;",";NRNA6:QM$;QM$: NUMBER OF ROWS IN DIF FORMAT (# OF DATA PAIRS + 4 HEADERS + AXIS LABELS + AXIS UNITS)'؁"DATA":0;",";0:QM$;QM$'⁺1;",";0:"BOT": BEGINNING OF LABLES TUPLE'쁺1;",";0:QM$;HL$;QM$(1;",";0:QM$;VL$;Q OF SERIES9&I04:N(I):I: END OF SERIES MARKERSD&P14g&VL$(P):VU$(P): LABELS/UNITSn&P&33370: END OF NORMAL DATA SAVE ROUTINE& DIF FILE SAVE &"TABLE":0;",";1:QM$;QM$'ā"VECTORS":0;",";2:QM$;QM$: 2 COLUMNS"%BSE233200: DIF FILE4%G NORMAL FILE=%LHL$F%VHU$O%`VL$X%jVU$|%tJ1N(4): FOR EACH DATA PAIR%~X(J)%Y(J)%J%"9999":"9999"%I411:AC(I)QI:I1: FIND HIGHEST ACTIVE INPUT%I &Q: NUMBERN$QQ$: RESTORE FILE NAME9330003: BACK TO MENU3 CHECK FOR EXISTING FILE-USED IN THE TWO SAVE SUBROUTINES TO: 3 1: CHECK IF FILE N$ EXISTS3 2: IF IT EXISTS-ASK IF IT IS OK TO OVERWRITE 4 RETURNS EX=2 IF NOT OK m4 3: DELETES THE EXISTING FILE TO CLEAR IT 435600: DIVERT ONERR GOTO4D$;"VERIFY ";N$4ŠD$(4)D$(4):359994Ŋ600004ʊ THE FILE ALREADY EXISTS5ϊ::"WARNING!"::NBII176II185ī38330: IF NOT A NUMBER THEN DON'T ADD IT TO THE STRINGYB 38320hBD$"CLOSE"sB38480B(D$"CLOSE"B234,0:35,24B<22:958:"TYPE THE FILE NUMBER TO LOAD: ";BFWI%3:200: INPUTBKEX238610: ESCAPECPII(DF$):38140#AII176II185ī382609ADF$DF$(II128)OA23:33:DF$;" ";YAĕKC,0uAΕII(KC):II128ī38350AؕKP,0A╭(DF$)0ĭII136II255DF$(DF$,1,(DF$)1):38330: DELETEA앭II141ī38420: RETURNBII155ĺD$;"CLOSE":EX2:3861038140@B35,24@L22:1K@V"PRESS TO CONTINUE LISTING, OR"S@`23{@j"ENTER THE FILE NUMBER TO LOAD: ";@tKC,0: CLEAR BUFFER@~II(KC):II128II15538270@KP,0@II155ĺD$;"CLOSE":EX2:38610 AII141Ģ20::20:35,20D$;"READ ";PF$*?I$:I$: READ START??I$: READ NAMEr?(I$,12)"BLOCKS FREE:"ī38440: END OF DATA?(I$)0ī38140?(I$,18,3)"TXT"ī38140?$NF1;:(9):(I$,2,16);" ";(I$,26,3);" ";(I$,48,9)?.NFNF1@8NF15(NF15)ī SELECT A FILE NAME&>zDF$""?>:"LOAD DATA FILE";`>(PF$)20ĺ40(PF$));PF$;>::"NUMBER FILENAME BLOCKS MODIFIED">DA$: DASHES>21>DA$: DASHES>34,4:35,20>ʔ5>ԔNF0>ޔD$;"OPEN ";PF$;",TDIR"?蔺AM/")ĺ:"THE /RAM DISK IS NOT ACCESSABLE BY THIS PROGRAM."::37510R=PF$DF$=37560: USED SO COMPACTOR WILL NOT MOVE LINE=D$;"PREFIX ";PF$=’D$;"PREFIX":PF$=̒:"NEW PREFIX: ";PF$=֒:1000: GET RETURN=30003: BACK TO MENU>p TO EXIT";;UD$;"CLOSE" TO CONTINUE THEFAULT TO CURRENT PREFIX l8(S$(II),16,(S$(II))161)"/RAM"IIII1: IF /RAM THEN DO NOT USE IT x8IIII18"I8NSII1:YU4:300: MENU 8SE0ī36999: RETURN ON ESCAPE8PF$(S$(SE),16,(S$(SE))161)9D$;"PREFIX ";PF$167ҌDR%WI%81*7܌SL%WI%8(DR%1)>7WI%(I)WI%16P7댭WI%0ī361307S$(II)" "(SL%)" "(DR%)" /"7CHI1IWI%7S$(II)S$(II)((CH))7CH7L$(II)(64II)8PF$(S$(II),16,(S$(II))161)"/"SEII: SET DE SELECT DATA DRIVEG6:"SELECT DATA DRIVE: ":m6" SLOT DRIVE PREFIX":648839,0:48840,0:48841,2:528,0:69,197:58,112:59,190:3276II16SE16I512767166WI%(I)6(I)0ī365007ȌWI%WI%˺P5Ԋ"FILE ";N$;" ALREADY EXISTS"::"DO YOU WANT TO ERASE THE OLD VERSION?"m5ފYU6:SE0:400: YES/NO5芭SE0SE2EX2:359995D$;"DELETE ";N$5359995600005D$""5$5(6 hCZII0IINFĢ22::22:958:"FILE NUMBER OUT OF BOUNDS":PN$:ES$;:DF$"":WI%1:200:EX238610CdII0IINFĹ34,0:35,24:38000: START OVERCnI1CxD$;"OPEN ";PF$;",TDIR"CD$;"READ ";PF$CI$:I$: READ STARTDI$: READ NAMED(I$,18,3)"TXT"ī38550IDIIIN$(I$,2,16):D$;"CLOSE":38590ZDII1:38550DI116:((N$,I,1))32N$(N$,I1):I16DȖIDҖ34,0:35,24:D` ERROR HANDLINGDbQ0DcD$;"PR#0": TURN OFF PRINTERDd:EeEL(219)256($NU$" ":: ADD SPACES TO MAKE EVERY NUMBER THE SAME LENGTHE V INPUT ENTER WITH DF$, AND WI%; EXIT WITH DF$ AND EX SB,WI%: NUMBER OF CHARACTERS TO BE ALLOWED IN INPUT EXZZ: EXIT TYPE (1 = , 2 = )' 5(NU1)NU$NU$"000":NU$(NU$,4(NU.1)(NU1)): ADD TRAILING ZEROSh NU$SN$NU$: ADD SIGN NU0.01NU$SN$"0.00#":180: NUMBERS TOO SMALL TO PRINT (NU$)7NU$SN$"#####": NUMBERS TOO LARGE TO PRINT? (NU$)8āQQ(NU$)6:NU 19 FCTRTZ(PWRTT): FACTOR USED IN ROUGH ROUNDINGl NU(NUFCTRHH)FCTR: SIG. FIGS. ROUNDING NU$(NU):(NU$)4ĭ(NU)NUNU$NU$".": CREATE STRING AND IF INTEGER ADD "." (NU$,1)"."NU$"0"NU$: ADD LEADING ZEROL (NU$) iNUZZSN$"-":NU(NU)I nNUZZ150: SKIP ROUNDING IF ZEROS sPWR1y xNU1135: NUMBERS LARGER THAN 1 }NUPWRPWRPWRTT:125: REPEAT UNTIL PWR<=NU 140: SKIP AHEAD NUPWRTTPWRPWRTT:135: SET PWR FOR NUMBERS LESS THAN=41859,7:KP,0: APPLE BUG FIX & CLEAR KEYBOARD STROBE_SE1245000: OTHER OPTIONSy40000: CALIBRATION "VP III - PART.FOUR""(C) 1988 VERNIER SOFTWARE 5/25/88"c d ROUND TO SIG FIGS AND PRINT IN COLUMNS  fSN$" " SCREEN(K30000: FILE OPTIONS MENUJEL3205032000: CREATE SUBDIRECTORYZJEL3432034280: SAVE SELECTED INPUT DATAJEL31160EL31200NR0:31460: LOAD FILE ERRORJEL2000ġ: IF ERROR OCCURS IN A SUBROUTINE,REMOVE ADDRESS FROM STACK KJ13000:J: TIME DELAY TO READFUNCTION WAS NOT SUCCESSFUL:I865: CLEAR STACKbID$;"CLOSE": CLOSE ANY OPEN FILESI(Q)60090: NOT FILE HANDLING ERRORI:::1000IEL3307033000: SAVE DATAIEL3505035000: DELETE DATAJEL3756037500: SET PREFIX*EC133ĺ"DIVISION BY ZERO";:60040MHEC254ĺ"CANNOT LOAD FILE";:60040HEC255ĺ"CONTROL-C INTERRUPT ON LINE #";EL:60050H"CODE  ";EC;HQ60050H" ERROR ON LINE : ";ELHHIN$QQ$: RESTORE FILE NAME SINCE THE wEC10ĺ"FILE LOCKED";:60040FGxEC17ĺ"DIRECTORY FULL";:60040iGyEC16ĺ"SYNTAX ERROR";:60040GzEC19ĺ"DUPLICATE NAME";:60040G{EC13ĺ"FILE TYPE MISMATCH";:60040G~EC53ĺ"ILLEGAL QUANTITY";:60040GEC69ĺ"OVERFLOW";:60040%H DEVICE CONNECTED";:60040FFpEC4ĺ"DISK WRITE PROTECTED";:60040lFqEC5ĺ"CANNOT LOAD FILE";:60040FrEC6EC7ĺ"PATH NOT FOUND";:60040FtEC8ĺ"I/O ERROR";:60040FuEC16Q1ĺ"IMPROPER FILENAME";:60040FvEC9ĺ"DISK FULL";:60040!G218):EC(222)EfEL31414āP14:VU$(P)VU$:VL$(P)VL$::31419: ERROR READING OLD GAIII FILE,SET INDIVIDUAL UNITS/LABELS AND RETURNEg:::"* ";EjEL31200EL31160EL34320EL33070EL32050EL35050EL37560Q1: SET FLAGFnEC3ĺ"NO(DF$)ZZī245: NO DEFAULT STRINGO I1(DF$): SET UP DEFAULT STRINGg DBI,((DF$,I,1))m DB,(DF$): DEFAULT STRING LENGTH RE: READ INPUT EX(SB9): CHECK EXIT TYPE EX2285: IF ESCAPE(DB)ZZDF$"":285: NOTHING ENTERED;DF$"": INITIALIZE ENTRY STRINGuI1(DB):DF$DF$((DBI)):: READ ENTRY INTO DF${, MENU.YU18YU18: UPPER LINE USED BY MENU0SENSSE12SEZZSE14NSYU19NS19YU6Q1NS8XL3 RROW KEYS TO MOVE TO AN OPTION.";O"PRESS TO TURN THE OPTION"z"ON OR OFF. PRESS WHEN ALL""OPTIONS ARE SET AS YOU WANT THEM."YUSEXL::L$(SE);" - ";S$(SE);OSSEQ$Q(Q$)&~ MAIN MENU DISPLAY&Q1NSPXL11: STARTING POSITION OF LABEL`QYU:XL8SE(Q)1ĺ"ON ": INPUT ONSE(Q)0ĺ" OFF": INPUT OFFQYUXL:L$(Q);" - ";S$(Q)Q18:DA$#"USE THE AICE:";(#)ID$"V"ĺ"VIU";8*ID$"B"ĺ"AIB";>-R029:"ACTIVE:";X1c2P14~<AC(P)ĺ(64P);:1360F" ";: INPUT OFFPPZdx SELECTION MENUyEX0: EXIT TYPEzYU18YU18|NSYU19NS19YU3CL$"S": SET TO SOFTWARE CLOCK IF NOT A IIGSUCL$"P"ĺ"PRODOS CLOCK":CN2yCL$"M"ĺ"MOUNTAIN CLOCK":CN3CL$"S"ĺ"SOFTWARE CLOCK":CN1CL$"G"ĺ"APPLE IIGS CLOCK":CN432,0: PRINT INPUT STATUS"INPUT DEV(P): INPUT ACTIVE FLAG!PHCL$:CL: CLOCK TYPE AND SLOT #_PR: PRINTER SLOTwD$"CLOSE ";PS$;FI$1700: SET UP INPUT8:"CALIBRATION FILE BEING USED:":32,10:10:CT$DT$NA$3CL$"G"(860)  READ CAL.STARTUP FILE7D$"OPEN ";PS$;FI$ND$"READ ";PS$;FI$cCT$:DT$:NAME$nP14VL$(P):VU$(P): LABEL & UNITSI(1,P):I(2,P): TYPED IN READINGSAV(1,P):AV(2,P): ACTUAL READINGSSL(P): SLOPEAC"PR#0"K/TI((Q$,6))((Q$,10,2))MM((Q$,7,2))HU((Q$,4,2))DD`6TI(P)TI:TITI1<TE(P)I(1,P)SL(P)(V(P)AV(1,P)): CALC. CORRECTED READING>P@ GET KEYPRESS 1PN$;WI%1:DF$"":200K# GOTO SOFTWARE CLOCK,PRODOS CLOCK,MOUNTAIN CLOCK,GS CLOCK_#768,Q$:Q$(Q$,1): GS CLOCK%Q$(Q$,5)(Q$,9,9)".000"'559)D$"PR#"CL:D$"IN#"CL:" ";Q$:557: THUNDER CLOCK+D$"PR#"CL:D$"IN#"CL:Q$: MOUNTAIN CLOCK-D$"IN#0":D$: DELAY544! ------3 VIU READ:e6,P:3072: SET MACHINE CODE TO READ INPUT P3075: READ COUNTSC(250)CC(251)V(P)(CET)1000: RAW INPUT READING  READ CLOCK:=!CN566,553,555,547: ON THE CLOCLEFT,RIGHT,SPACESE1SE'400-B READ INPUT wID$"V"Ĺ252,2:253,0: POKE FOR ONE READINGP14:AC(P)574ID$"B"534: READ VIU V(P)(P)V(P)V(P)DAVRVM V(P)(V(P)1000HH)1000 Q1AD:E 1*SEZZĝ:"YES ";::"NO":GSE1Ğ:"YES";::" NO"RYU:4ZQ$fQ(Q$)Q27SE2:442: ESCAPEQ13442Q$"Y"Q$"y"SE1:400Q$"N"Q$"n"SEZZ:400Q10Q11Q8Q21Q32439: DOWN,UP,OS:XL1f(L$(OS))2ĺL$(OS)"- "S$(OS):362HhL$(OS)" - "S$(OS)Qj330kl ACCEPT A LETTERpQ$(13)376: PRESSEDrQ1NS:Q$L$(Q)SEQtQv356x YES/NO QUESTIONYU: UPPER LINE USED BY SUBROUTIN);::338&P:" - ";::S$(SE);:0ROSSE8TQ$DVQ(Q$)tXQ96QQ32:Q$(Q): LOWER CASE INPUTZQ27SEZZ:376: EXIT\Q13376^Q32364`Q8Q11SESE1:SEZZSENSbQ21Q10Q32SESE1:SENS1SE1 dYU:QYU3<(L$(Q))2ĖXL:L$(Q)"- "S$(Q):320L>XL:L$(Q)" - "S$(Q)S@Q[B20pD:DA$: DASHESF" TYPE LETTER OR USE THE ARROW KEYS"H" THEN PRESS "JYUSELXL::L$(SE); N(L$(SE))2ĝ:"- ";::S$(SEQ96QQ32:Q$(Q): LOWER CASE5Q131480VQ27EX2:1480: ESCAPE eQ321470vQ32ī1456SE(SE)0SE(SE)1:1456SE(SE)ZZQ8Q11SESE1:SE0SENSQ21Q10SESE1:SENS1SE1YUOS:XL8SE(OS)1ĺ"ON ")SE(OS)0ĺ" OFF"8YUOS:XLQL$(OS);" - ";S$(OS)[1430s ACCEPT A LETTERQ$(13)1480Q1NS:Q$L$(Q)SEQQ1464 DISPLAY VOLTSEX0: CLEAR EXIT FLAGGS(49206):GS100:4P7:NU$;,DP,,G:"READ #"I;7,JP14K,M(AC(P))40275l,PNUAV(I,P):100:4P7:NU$;s,SPz,VI,Y:"SLOPE";,[P14,](AC(P))40289,_NUSL(P):100:4P7:NU$;,aP,c:,e1000: GET RETURN,g-l ---NEW "INPUT ";(64P);":";VL$(P);" (";VU$(P);")"3+#X+&:1300: DISPLAY INPUT STATUSt+)::32,13:23)"INPUT"+,"A B C D+/(DA$,24): DASHES+232,0+5I12+8:"ENTERED#"I;+;P14+>(AC(P))40260,ANUI(I,P):11500: READ VOLTS*֜A* ---CHECK CURRENT CALIBRATION^* :"CURRENT CALIBRATION"d**CT$;:25:"CLOCK TYPE:"CL$*NA$;:25:"CLOCK SLOT:"CL*DT$;:23:"PRINTER SLOT:"PR**P14:AC(P)40227: DISPLAY LABELS & UNITS-+ RETURN TO MAIN MENU"+)|SECO:SE0SE1>)NS6:YU5:300H)COSEp)SE0SE61900: CHAIN TO PART.ONE)SE40100,40200,40300,40400,40500)40000: REPEAT) ---READ VOLTS):"READ VOLTAGE"::)23:PN$;)œ3:*̜LECT:"+(^L$(1)"R":S$(1)"READ VOLTAGE"[(cL$(2)"C":S$(2)"CHECK CURRENT CALIBRATION"(hL$(3)"L":S$(3)"LOAD NEW CALIBRATION FILE"(mL$(4)"S":S$(4)"SAVE CURRENT CALIBRATION"(rL$(5)"Z":S$(5)"CALIBRATE THE ACTIVE INPUTS")wL$(6)"X":S$(6)"PART.ONE,@2460": CHAIN BY /RAM DISKS':12:"LOADING MAIN PART OF PROGRAM..."v'D$"CHAIN "PS$"PART.ONE,@2460"|''@ CALIBRATION'E60000'J41859,7: BUG KILLER'O:"CALIBRATION MENU"'TD$"FRE"(Y::" SEUNITSJ&P14:I1P:(AC(P))(AC(I))1780: CHECK FOR MIXED UNITSj&VL$(I)VL$(P)VL$"MIXED"&VU$(I)VU$(P)VU$"MIXED"&I:P&&l CHAIN BACK TO PART.ONE&nD$"FRE": CLEAR STRINGS&q41859,3&'v(860)1ĺD$"CHAIN /RAM/2ND TIME%(% SET UP INPUTS6%NA0:PL0]%P14:FIND LOWEST & NUMER ACTIVE{%AC(P)NANA1:PL0PLP%P%NA0ī1790%NEMANA: MAXIMUM READINGS PER INPUT%NRZZ: CLEAR DATA&VL$VL$(PL):VU$VU$(PL): SET LABEL & D$"CLOSE ";PS$FI$A$SE11688: IF 2ND TIMEo$::"DO YOU WANT THIS FILE TO BE USED AS$"THE CALIBRATION FILE WHEN THE"$"PROGRAM STARTS?":$YU23:SE0:400: YES/NO %SE1FI$"STARTUP.CAL":1642: SAVE FILE #hD$"CLOSE "PS$FI$-#jD$"DELETE "PS$FI$B#lD$"OPEN "PS$FI$X#nD$"WRITE "PS$FI$a#pCT$j#rDT$s#tNA$~#xP14#yVL$(P):VU$(P): LABEL & UNITS#zI(1,P):I(2,P):AV(1,P):AV(2,P)#|SL(P)#~AC(P)#P#CL$#CL#PR$S CANNOT BE USED IN SAVING THE":"CALIBRATION FILE - PLEASE ENTER AGAIN";:I(DF$):I:1618d"\I"^CT$DF$:FI$CT$".CAL""`:::"SAVING CALIBRATION FILE AS:":FI$"bD$"FRE""d1638: USED SO COMPACTOR WILL NOT MOVE LINE#fD$"OPEN "PS$FI$IBRATION:":0!NWI%20:DF$"":200:EX21688."[21500: DISPLAY VOLTS(RAW)k2EX2406892"ENTER THE KNOWN SIGNAL VALUE IN"2"UNITS OF ";VU$":";2WI%8:DF$"":2002EX2DF$""II2:II:40689: EXIT3I14:(AC(I)) "1WI%5:DF$VU$(PL):200/1EX240689;1VU$DF$_1II12: FOR HI & LOW VOLT1QQ$"FIRST ":II2QQ$"SECOND"1::"CONNECT THE INPUT(S) TO THE "QQ$" KNOWN";1"SIGNAL. THE VOLTAGE READ BY THE PROGRAM2"WILL BE DISPLAYED. WHELL NEED TO CONNECT EACH INPUT"F0m"TO A KNOWN SIGNAL. ONLY ACTIVE"j0p"INPUTS WILL BE RECALIBRATED."0s:"LABEL OF INPUT SIGNAL (10 CHARS. MAX):"0vWI%10:DF$VL$(PL):2000yEX2406890|VL$DF$1::"UNITS OF INPUT SIGNAL (5 CHARS. MAX):40689: ESCAPEK/UCT$"**FILE MODIFIED**": CHANGE CAL. FILE HEADINGg/XNA$"** BUT **"/[DT$"** NOT SAVED **"/^:"CALIBRATE INPUTS"/a1300: SHOW INPUT STATUS/d:34,3/g::"TO CALIBRATE THE ACTIVE INPUT(S)," 0j"YOU WI$,I,1))32FI$(FI$,I1):I16'=̦I:=֦34,0:35,24:Q=ȯ OTHER OPTIONSn=ϯ60000: SET ONERR GOTO=֯41859,7: BUG KILLER=ݯ:"OTHER OPTIONS MENU"=L$(1)"I":S$(1)"SELECT INPUTS"=L$(2)"S":S$(2)"SELECT PRINTER SLOT">L$(3)"C":S$(3)"SELECT CLOCK"<>L$(4)"A":S$(4)"AUDIO INPUT TEST"f>L$(5)"X":S$(5)"RETURN TO MAIN MENU">NS5:YU3:SENS:300>SE0SENS1900: RETURN TO PART.ONE>SE45100,45300,45200,45400>45000: START AGAIN>, -----SELECT INPUTS!?/RROR";:600404LzEC19ĺ"DUPLICATE NAME";:60040]L{EC13ĺ"FILE TYPE MISMATCH";:60040|LEC69ĺ"OVERFLOW";:60040LEC25560055L"CODE  ";EC;LEL163860050: SAVEING FILE ERRORL" IN LINE #";ELLLM865:TED";:600407KrEC6EC7ĺ"PATH NOT FOUND";:60040VKtEC8ĺ"I/O ERROR";:60040KuEC16EL1638ĺ"IMPROPER FILENAME";:60040KvEC9ĺ"DISK FULL";:60040KwEC10ĺ"FILE LOCKED";:60040KxEC17ĺ"DIRECTORY FULL";:60040LyEC16ĺ"SYNTAX EB:+JV(1)(SE): SET INPUT TO MONITOR5J3075?JKP,0EJ]J` ERROR HANDLINGJcD$"PR#0": TURN OFF PRINTERJd:JeEL(219)256(218):EC(222)Jg:::"* ";JnEC3ĺ"NO DEVICE CONNECTED";:60040KpEC4ĺ"DISK WRITE PROTECE FREQUENCY OF THE TONE BEINGEI"PRODUCED IS PROPORTIONAL TO THEjI"VOLTAGE APPLIED TO THE INPUT."I:"PRESS TO EXIT"IID$"B"45463I VIU:I6,SE:3072: POKE PROPER INPUT LOCATIONI3078: TESTI45472J AIT:":I0: CLEAR COUNTER5HdP14:(AC(P))45418dHgII1:L$(I)(64P):S$(I)"INPUT "(64P)kHjPHmYU6:NSI:SE1:300:SE045472: Hp FIND CHOSEN INPUT:HsI0:P14:(AC(P))45433HvII1:SEISEP:P4HyPI|958:::"TH(DF$)0(DF$)845377NG%::"INVALID SLOT NUMBER, PLEASE REENTER":1000^G,EX245384G3:6:958: CLEAR FROM CURSOR DOWNG:45314GAPR(DF$)GHGX ---AUDIO INPUT TESTG[:"AUDIO INPUT TEST":::G^NA2SEPL:45436Ha"SELECCK MUST BE SET TO 24 HOUR":"MODE. THIS IS SET WITHIN THE CLOCK":"OPTION ON THE CONTROL PANEL."::1000qF갱F ---SELECT PRINTER SLOTF:"SELECT PRINTER SLOT"F4F "SLOT NUMBER OF PRINTER: ";FDF$(PR):WI%1:200FEX245384G0Eư45203#EɰSE1SE445278HḚ:11:"SLOT NUMBER OF CLOCK: ";aEϰWI%1:DF$(CL):200EҰEX2EX245290: USER WANTS OUTEհQ(DF$)EذQ1Q7ĺ:"INVALID SLOT NUMBER":45257E۰CLQEްCL$L$(SE)Eᰢ12:kF䰭CL$"G"Ģ12:"THE GS CLOM"ĺS$(3);" (SLOT #";CL;")":452330DS$(4);KD:" CURRENTLY IN USE"ZDNS4:SECNcDYU5D300:SE045290: ESCAPEDCNSE: SET THE CLOCK NUMBERDSE4(860)345257Eð11::"THE GS CLOCK REQUIRES AN APPLE IIGS."::1000:EX24529:"SELECT CLOCK"7CL$(1)"S":S$(1)"SOFTWARE CLOCK"ZCL$(2)"P":S$(2)"PRODOS CLOCK"CL$(3)"M":S$(3)"MOUNTAIN CLOCK"CL$(4)"G":S$(4)"APPLE IIGS CLOCK"C:CCL$"S"ĺS$(1);:45233CCL$"P"ĺS$(2);" (SLOT #";CL;")":45233$DCL$"B|"ONE OR MORE INPUT(S) MUST BE SET."5B~:1000NB45133: START OVERpBID$"V"(NA1AC(3))45196B:::"NO OTHER INPUTS CAN BE ACTIVE"B"WHEN INPUT C IS ACTIVE."B:1000B45133: START OVERBB -----SELECT CLOCKCAhIIAkYU4:NS4(ID$"V"):SE1:1400: ELIMINATE 'D' OPTION IF VIUcAnI14:AC(I)SE(I):IAq1700: RE-SET UP INPUTSAtNA0ī45186: VERIFY AT LEAST ONE IS ONAv NO INPUTS SET-INFORM USER AxBz:"NO INPUTS HAVE BEEN SET. ")WI%1:DF$"":2005@JEX245186: USER WANTS OUTP@M PRINT INPUT LETTERSg@P:"SELECT INPUTS"m@S@VL$(1)"A":S$(1)"INPUT A"@YL$(2)"B":S$(2)"INPUT B"@\L$(3)"C":S$(3)"INPUT C"@_L$(4)"D":S$(4)"INPUT D"@bI14AeSE(I)AC(I)NR045133: NO DATA IN MEMORYJ?2 CONFIRM USER WANTS TO DESTROY DATAa?5:"SELECT INPUTS"w?8::"WARNING!":?;:"SELECTING NEW INPUTS WILL DESTROY"?>"CURRENT DATA."?A:7)"PRESS TO CONTINUE"?D10)"PRESS TO EXIT";@G CLEAR STACK PRESSEDrQ1NS:Q$L$(Q)SEQtQv356xYUSELXL::L$(SE);GN(L$(SE))2ĝ:"- ";::S$(SE);::338bP:" - ";::S$(SE);:lROSSEtTQ$VQ(Q$)XQ96QQ32:Q$(Q): LOWER CASE INPUTZQ27SEZZ:376: EXIT\Q13ī376^Q32ī364`Q8Q11SESE1:19YU6Q1NS8XL3&:QYUQ<(L$(Q))2ĖXL:L$(Q);"- ";S$(Q):320l>XL:L$(Q);" - ";S$(Q)s@Q{B20D:"---------------------------------------"F" TYPE LETTER OR USE THE ARROW KEYS"H" THEN PRESS "JAPE2(DB)ZZDF$"":285: NOTHING ENTEREDXDF$"": INITIALIZE ENTRY STRINGI1(DB):DF$DF$((DBI)):: READ ENTRY INTO DF$, MENU.YU18YU18: UPPER LINE USED BY MENU0SENSSE12SEZZSE14NSYU19NS1 = , 2 = )D (DF$)ZZī245: NO DEFAULT STRINGl I1(DF$): SET UP DEFAULT STRING DBI,((DF$,I,1)) DB,(DF$): DEFAULT STRING LENGTH RE: READ INPUT EX(SB9): CHECK EXIT TYPE EX2285: IF ESCNT_ (NU$)8āQQ(NU$)6:NU$NU$" ":: ADD SPACES TO MAKE EVERY NUMBER THE SAME LENGTHe v INPUT ENTER WITH DF$, AND WI%; EXIT WITH DF$ AND EX SB,WI%: NUMBER OF CHARACTERS TO BE ALLOWED IN INPUT EXZZ: EXIT TYPE ( ADD LEADING ZEROl (NU$)5(NU1)NU$NU$"000":NU$(NU$,4(NU.1)(NU1)): ADD TRAILING ZEROS NU$SN$NU$: ADD SIGN NU0.01NU$SN$"0.00#":180: NUMBERS TOO SMALL TO PRINT (NU$)7NU$SN$"#####": NUMBERS TOO LARGE TO PRI5: SET PWR FOR NUMBERS LESS THAN 1Z FCTRTZ(PWRTT): FACTOR USED IN ROUGH ROUNDING NU(NUFCTRHH)FCTR: SIG. FIGS. ROUNDING NU$(NU):(NU$)4ĭ(NU)NUNU$NU$".": CREATE STRING AND IF INTEGER ADD "." (NU$,1)"."NU$"0"NU$:AND PRINT IN COLUMNS # fSN$" "? iNUZZSN$"-":NU(NU)j nNUZZ150: SKIP ROUNDING IF ZEROt sPWR1 xNU1135: NUMBERS LARGER THAN 1 }NUPWRPWRPWRTT:125: REPEAT UNTIL PWR<=NU 140: SKIP AHEAD% NUPWRTTPWRPWRTT:13=41859,7:KP,0: APPLE BUG FIX & CLEAR KEYBOARD STROBEH52000p "VOLTAGE PLOTTER III  "PART FIVE: REAL TIME GRAPHING "COPYRIGHT 1988 "VERNIER SOFTWARE ("VERSION 5/25/88 d ROUND TO SIG FIGS Q$"n"SEZZ:400TQ10Q11Q8Q21Q32439: DOWN,UP,LEFT,RIGHT,SPACE`SE1SEi403o READ INPUT ID$"V"Ĺ252,2:253,0: POKE FOR ONE READINGP14:AC(P)574ID$"B"534: READ VIU V(P)(P)V(P)V(P)DAVRVM6 V(P)(V(P)1000HH)1000LQ1AD:: DELAYU544c ------u VIU READ:6,P:3072: SET MACHINE CODE TO READ INPUT P3075: READ COUNTSC(250)CC(251) V(P)(CET)1000: RAW INPUTCT BASE TIME FOR R.T. GRAPHING>"DY(TSDD):DY$(DY)"/""HO((TSDYDD)HU):MI((TSDYDDHOHU)MM):SC(TSDYDDHOHUMIMM.5)"HO$(HO)":":HO10HO$"0"HO$"MI$(MI)":":MI10MI$"0"MI$"SC$(SC):SC10SC$"0"SC$ #DY(DF$,3)(DF$,5,2)(DF$,8,2)(DF$,11,2):I19:II((DF$,I,1)):II48II57EX2:945!I:TS((DF$,8,2))((DF$,6,2))MM((DF$,4,2))HU((DF$,3))DD!TSTSBT!! CONVERT SECONDS TO HH:MM:SS FORMAT "TSTSBT: ALWAYS SUBTRA SPACE Q31H,VWW; O$"V"VVLW: STEP UP\ O$"H"HHLW: STEP OVERd CHj   CONVERT TIME IN "DD:HH:MM:SS" FORMAT TO SECONDS (DF$)12Q$"000:00:00:00":DF$(Q$,12(DF$))DF$ EX0:(DF$)12EX2:945\!DF$ ROTATE VERTICAL LETTERSOCH1(PR$): FOR EACH LETTER TO BE PRINTED\H0H0mV188V188|VWWVWWH275H10Q((PR$,CH,1)):Q96QQ32: CHARACTER AND CONVERT TO UPPER CASE IF NEEDED Q31Q96Q32: TB176TB176ZXPWW,TBXPWW,TB:TBYP1ēXP,TBXP,YPWW: BOTTOM`y ###HIRES PRINTING ENTER WITH O$, H, V, PR$(PR$)0ī732: RETURN IF NO STRING0: ROTATION IS NORMALLY HORIZONTALO$"V"Ę48:ERTICAL BARS&VP0VTVQVB:664=VTVQ(100VB)100_TB176((VTSV(2))FA(2)HH)nTB6TB6XPWW,TBXPWW,TB:YPTB1ēXP,TBXP,YPWW: TOPVP0VTVQVB:674VTVQ(100VB)100TB176((VTSV(2))FA(2)HH)BTB,YPWWTB,YPWW:XPTB1ēTB,YPXPWW,YP: LEFTZHP0HTHQHB:652qHTHQ(100HB)100TB((HTSV(1))FA(1)HH)HLTBHRTBHRTB,YPWWTB,YPWW:TBXP1ēTB,YPXPWW,YP: RIGHTVB0680: SKIP VRL~HP0HTHQHB:642: VALUE OF LEFT END OF ABSOLUTE ERROR BARHTHQ(100HB)100: VALUE OF LEFT END OF RELATIVE ERROR BARTB((HTSV(1))FA(1)HH)HL: CALCULATE SCALED PLOTTING POSITION FOR LEFT END OF BARTBHLTBHLrP1Ĕ66XPWW,YPWW:634: DRAW SQUARE^tP2Ĕ67XPWW,YPWW:634: TRIANGLEvP3Ĕ68XPWW,YPWW:634: CIRCLExP4Ĕ69XPWW,YPWW: DIAMONDzGS(2)1680: SKIP ERROR BARS|HB0658: SKIP HORIZONTAL BAPHfBLXPBX:BLHLBLHL8hBRXPBX:BRHRBRHROjJWW(JWW)ī622lIBLBRBS:I,YPI,176:I:BL,176BL,YP:BR,YP:BR,176:624nIYP176BS:BL,IBR,I:I:BL,YPBL,176:BR,YPBR,176pGS(1)0634: SKIP POINT PROTECTORS0:XP,YP: CLEAR OFFSCREEN FLAG & PLOT THE DATA POINT`OS(P)1XZXP:YZYP:OS(P)0: START OF LINE (POINT TO POINT) bGS(4)ēXZ,YZXP,YP:XZXP:YZYP: PLOT PROPER LINE SEGMENT dGS(5)0ī624: SKIP BAR GRA A POINThZXP((HQSV(1))FA(1)HH)HL:YP176((VQSV(2))FA(2)HH): SCALED VALUES\YP6YP176XPHRWWXPHL607: SKIP IF POINT IS ON SCREEN](FS)Č198: BEEP- IF LAST POINT WAS ONSCREEN^FS1:OS(P)1:6807_FS02+D$"PR#"CL:D$"IN#"CL:Q$: MOUNTAIN CLOCKJ-D$"IN#0":D$"PR#0"/TI((Q$,6))((Q$,10,2))MM((Q$,7,2))HU((Q$,4,2))DD6TI(P)TI:TITI1<TE(P)I(1,P)SL(P)(V(P)AV(1,P)): CALC. CORRECTED READING>P@ X ###PLOT READING  READ CLOCK:!CN566,553,555,547: ON THE CLOCK# GOTO SOFTWARE CLOCK,PRODOS CLOCK,MOUNTAIN CLOCK,GS CLOCK#768,Q$:Q$(Q$,1): GS CLOCK%Q$(Q$,5)(Q$,9,9)".000"'559)D$"PR#"CL:D$"IN#"CL:" ";Q$:557: THUNDER CLOCK0DY$""$#DF$DY$HO$MI$SC$:@# REAL TIME SCALINGI#PW0#TS172800FA(1)((TSDD(200(270HL))1)2)2200DD:1296: IF >48 HOURS#TSMMTSTSMM:PW1#TSMMTSTSMM:PW2#FA(1)TS(270HL)b$FA(1).005.005(FA(1).005).01(FA(1).01).03(FA(1).02).05(FA(1).05).1(FA(1).1).1(FA(1).2).3(FA(1).3)x$FA(1)FA(1)60PW~$$x SELECTION MENU$yKP,0:EX0: EXIT TYPE$zYU18YU18$|NSYU19NS19YU$~ MAIN MENU DISPLAY%Q1NS*VB(DF$):VP0: ABSOLUTE VERT. ERROR BARSZ2d׭GS(5)055180: NO BAR GRAPH2n׺::"WIDTH OF THE BARS TO BE USED ON THE GRAPH (IN PIXELS): ";2xDF$(BX2):WI%3:200:EX2556403BX(DF$)2: SET DEFAULT ERROR BAR WIDTH (NOTBARS112HB(DF$):HP0: ABSOLUTE ERROR BARS1<׺:"VERTICAL ERROR BAR SIZE: ";:DF$(VB):VP1DF$DF$"%":SET DEFAULT VERT. ERROR BAR SIZE1Fװ200:EX2556401P׭(DF$,1)"%"VB((DF$,(DF$)1)):VP1:55140: RELATIVE VERT. ERROR BARS .2Z:"FOR RELATIVE SIZE.">0 ׺:"HORIZONTAL ERROR BAR SIZE: ";}0DF$(HB):HP1DF$DF$"%": SET DEFAULT HORZ. ERROR BARS0WI%13:200:EX255640: EXIT THIS SUBROUTINE ON ESC1(׭(DF$,1)"%"HB((DF$,(DF$)1)):HP1:55100: RELATIVE ERROR GRAPH!/HL$"TIME":HU$"SEC."N/֑:3:::"REAL TIME GRAPHING OPTIONS":/֭GS(2)055140: SKIP ERROR BARS IF NOT WANTED/ֺ"SELECT THE SIZES OF THE ERROR BARS"::"ENTER A NUMBER FOR ABSOLUTE SIZE"0׺"OR A NUMBER FOLLOWED BY A ";QM$;"%";QM$OSUB REAL TIME SCALING AND EXIT ON ESCAPEm.̰55000:EX252280: GOSUB SET UP GRAPH AND EXIT ON ESCAPE..̰58000: GOSUB REAL TIME GRAPHING.8̰59000: FOLLOW-UP OPTIONS.B̭SE3SE252060: REGRAPH.L̫1900: CHAIN TO MAIN/ֲ ###SET UP 80: ON , EXIT ROUTINE IMMEDIATELYk-ˁI16:GS(I)SE(I):I: SET DEFAULT STYLE CONDITIONS-BS2:BX5: BAR GRAPH VALUES-HB0:VB10:HP0:VP1: DEFAULT ERROR BARS+.̭SSİ57000:EX252280: IF NOT SKIP SCALING THEN G2)"E":S$(2)"ERROR BARS"C,L$(3)"G":S$(3)"GRID ON THE GRAPH"p,L$(4)"L":S$(4)"LINE CONNECTING POINTS",L$(5)"B":S$(5)"BAR GRAPH",L$(6)"T":S$(6)"SPECIFY GRAPH TITLE",NS6,YU5:SE1:1400: STYLE OPTIONS MENU +-˭EX2522U$: SET UNITS & LABELS9+R˲ **** MAIN PROGRAM ?+\˗X+fˁI14:PA(I)AC(I):+pˁI16:SE(I)GS(I):: SETS THE DEFAULT GRAPH STYLE CONDITIONS+z˺"REAL TIME GRAPHING":::"SELECT GRAPH STYLE:"+L$(1)"P":S$(1)"POINT PROTECTORS",L$(PART OF PROGRAM...":*D$"CHAIN ";PS$;"PART.ONE,@2460"@*\* ˲ ###REAL TIME GRAPHINGz**˥60000: SET ONERR GOTO*4SS0: SET SKIP SCALING FLAG TO 0 (DON'T SKIP IT)*>HL41:HR278:LW6: GRAPH LIMITS AND LETTER SPACING +HOL$VL$:OU$VE VALUE OF THE ROUNDED VALUEf)TNU(22(NU2)(NU4)5(NU5))PW: PICK 2,4,5,10 AS SPACE/DIV.l)^)l CHAIN BACK TO PART.ONE)nD$"FRE")q41859,3)v(860)1ĺD$"CHAIN /RAM/PART.ONE,@2460": CHAIN BY /RAM DISK*:12:"LOADING MAIN OS)1ĺ"ON ")(SE(OS)0ĺ" OFF"8(YUOS:XLQ(L$(OS);" - ";S$(OS)[(1430s( ACCEPT A LETTER(Q$(13)1480(Q1NS:Q$L$(Q)SEQ(Q(1464((@ SET SCALING)J100:NUNUPW: USE NU WHICH IS THE ABSOLUTQ96QQ32:Q$(Q): LOWER CASE5'Q131480V'Q27EX2:1480: ESCAPE e'Q321470v'Q32ī1456'SE(SE)0SE(SE)1:1456'SE(SE)ZZ'Q8Q11SESE1:SE0SENS'Q21Q10SESE1:SENS1SE1'YUOS:XL8(SE(RROW KEYS TO MOVE TO AN OPTION.";O&"PRESS TO TURN THE OPTION"z&"ON OR OFF. PRESS WHEN ALL"&"OPTIONS ARE SET AS YOU WANT THEM."&YUSE&XL::L$(SE);&" - ";S$(SE);&&OSSE&Q$&&Q(Q$)&'%XL11: STARTING POSITION OF LABEL:%QYU:XL8b%SE(Q)1ĺ"ON ": INPUT ON%SE(Q)0ĺ" OFF": INPUT OFF%QYU%XL:L$(Q);" - ";S$(Q)%Q%18%:"---------------------------------------"#&"USE THE A BX IS A HALF-WIDTH)n3׭GS(6)0TI$OL$" VS. "HL$:55188: SKIP ALTERNATE HEADING IF NOT WANTED3׺::"ENTER GRAPH HEADING:":3WI%40:DF$HD$:200:EX2556403TI$DF$:HD$DF$: SET HEADING & NEW DEFAULT3ח::4׺:"THE GRAPH IS BEING SET UP..."14O$"V": VERT. LABELJ4PR$OL$" ("OU$")"4V92.5(PR$)LW:H0:700: CENTER AND PRINT VERTICAL LABEL4PR$HL$" (HH:MM:SS)"4V188:H93:O$"H"4ذ700: HORIZONTAL AXIS LABEL5@ؓHL,6HR,6HR,176HL,176HL,6:NA)((DTNA)DTNA)NB߭RPNERPNE: IF >MAX THEN SET TO MAX bBDF$(RP):WI%3wB߰200:EX257350BII(DF$):IIRPĺ::"THE MAXIMUM NUMBER OF READINGS IS: ";RP:57270B߭II1ĺ::"YOU MUST STORE AT LEAST ONE ENTRY":57270CRPENTER AGAIN":57180TA߭TSNA1ĺ::"TIME TOO SMALL - PLEASE ENTER AGAIN":57180oADTTS: SET DELTA TIMEA߰1200: SCALE THE TIME ACROSSA߭ST0ī57350: RETURN Aߺ::"NUMBER OF READINGS TO BE STORED":"OVER THIS TIME PERIOD: ";BRP(DT2):1600:FA(2)NU: CHOOSE A NICE SCALINGx@\ߺ::"LENGTH OF TIME OVER WHICH THE INPUT(S)":"ARE TO BE MONITORED: ";@pTSDT:BT0:950: SET DEFAULT@uWI%11@z߰200:EX2ī57350@߰900: CONVERT DF$ TO TSA߭EX2ĺ::"ILLEGAL TIME - PLEASE 2): SET NEW DEFAULT VALUEK? ߺ::"MAXIMUM ANTICIPATED INPUT LEVEL: ";_?DF$(MT):WI%5u?*߰200:EX2ī57350?4MT(DF$): SET NEW DEFAULT VALUE?>FA(2)(MTSV(2))170?H߭FA(2)0ĺ::"THE MAXIMUM IS LESS THAN THE MINIMUM":57050,@RNUFA(TIME SCALING+>ޗ:"REAL TIME SCALING":`>޺"DO YOU WANT TO SAVE THE DATA? ":YU4:SE0:400v>ޭSE2EX2:57350>STSE: ST=STORE FLAG >޺::"MINIMUM ANTICIPATED INPUT LEVEL: ";>DF$(MN):WI%5>ް200:EX2ī57350?SV(2)(DF$):MNSV(": GRAPPLER DUMP&=ۭPT2ĺ:56300U=ۭSZ1ĺ(9)"H": PKASO/U DUMP (SMALL)=ۭSZ3ĺ(9)"10H": PKASO/U DUMP (LARGE) =ۭSE2ĺ(12): FORM FEED=ۺ:D$;"PR#0": PRINTER OFF=ܫ59000: DISPLAY FOLLOW-UP MENU>޲ ### REAL IMAGEWRITERH<ۺD$"PR#";PR:D$"PR#0": MAKE SURE DEVICE IS CONNECTEDl<ی7168,PR,SZ: IMAGEWRITER DUMP<ۭSE2ĺD$;"PR#";PR:(12):D$;"PR#0": IMAGEWRITER FORM FEED<۫56320<ۺD$;"PR#"PR: PRINTER ON=ۭPT2ĺ(9)"GE";:SZ3ĺ"DR;tۭSE056320: EXITK;~SZ3:SE1SE3SZ1: SET GRAPH SIZE;ۢ15::"BE SURE PRINTER (SLOT #";PR;") IS READY,";ۺ"THEN PRESS .";DF$"":WI%1:200:EX256320;ۢ20:958::"NOW PRINTING GRAPH..."<ۭPT156250: NOTORMAT:"::BL$(1)"1":S$(1)"SMALL GRAPH - NO FORM FEED"k:LL$(2)"2":S$(2)"LARGE GRAPH - NO FORM FEED":VL$(3)"3":S$(3)"SMALL GRAPH FOLLOWED BY FORM FEED":`L$(4)"4":S$(4)"LARGE GRAPH FOLLOWED BY FORM FEED";jNS4:YU2:SE2:300: MENUEN GRAPH;9ڗ:"PRINT GRAPH ON PRINTER":::"SELECT:":]9L$(1)"I":S$(1)"IMAGEWRITER"|9L$(2)"G":S$(2)"GRAPPLER"9L$(3)"P":S$(3)"PKASO/U"9NS3:YU5:SE1:300: MENU9ڭSE056320: EXIT9PTSE9.ۗ :8ۺ"SELECT PRINTOUT F GET AND ROUND TICKMARK VALUE[8PR$NU$:HHL(PR$)LW:V176I: SET PRINT VALUES8حV176V174: IF LOWER MARK THEN MOVE IT UP A BIT8حHLWHLW: IF TOO FAR LEFT THEN CUT IT OFF8ذ700: PRINT THE VALUE8؂I8Xٱ 9ڲ ## DUMP SCRE0((176I)50)ēHL,IHL10,IO7ؓHL,IHL5,I: TICKMARKS ON VERTICAL AXISV7؂I7ح(KC)155ĹKP,0:EX2:55640: EXIT ON 7ع49232,0:49234,0:49236,0:49239,0: DISPLAY GRAPH7O$"H"7؁I015050#8NUIFA(2)SV(2):100:"0":700: DRAW A ZERO LINE HORIZONTALLY (UNLESS IT IS AT BOTTOM OR OFF SCREEN)6حSV(1)0HHLSV(1)FA(1):HHLH(HRHL)ēH,6H,176:V172:HH7:O$"H":PR$"0":700: DRAW A ZERO LINE VERTICALLY6؁I1660107ح(176I)5 DRAW AXES WT. #'S$5J؁IHLHR10M5Tح(IHL)50((IHL)50)ēI,176I,164z5^ؓI,176I,169: TICKMARKS FOR HORZ AXIS5hحGS(3)1āII166010:I,II:II: ADD GRID5r؂I_6|حSV(2)0V176SV(2)FA(2):V0V176ēHL,VHR,V:VV5:H270:O$"H":PR$IICTDDTRPC5C ### REAL TIME GRAPHINGTCEX0: CLEAR THE EXIT FLAGoCKP,0: CLEAR KEYBOARDCI14:OS(I)1:I: SET OFF SCREENS CTI0: RESET READ TIMECCL$"S"İ500: GET A REAL TIME DBTTI: SET BASE TIME6DTSTI:950:PR$DF$: SET UP STRING QD(PR$)8PR$(PR$,8)qD((PR$,2))0PR$(PR$,5)DV181:O$"H":HHL(PR$).5LW:700: PRINT VALUE AT LEFT HORIZONTAL AXISDTS(100FA(1)TI):950:PR$DF$: SET UP STRINGE(PNS5:YU8:300: MENU IR SEL=0 (ESC) LEADS TO EXITRSE1Ĺ49232,0:49234,0:49236,0:49239,0:DF$"":WI%1:200:EX259180: DISPLAY GRAPH AND WAITSSE456000: PRINT GRAPH (A GOTO IS USED HERE SO THAT THE ONERR ROOL$;" VS. ";HL$%Q:" SELECT:"RQL$(1)"D":S$(1)"DISPLAY PREVIOUS GRAPH"}QL$(2)"R":S$(2)"REGRAPH - SAME SCALE"QL$(3)"S":S$(3)"CHANGE SCALE AND REGRAPH"QL$(4)"O":S$(4)"PRINT GRAPH"QL$(5)"X":S$(5)"RETURN TO MAIN MENU"'RSE2:)155(KC)141ī58800: WAIT FOR OR zPSV(1)0:: RESET STARTING VALUE TO RELATIVE TIME AND RETURNPx ###END OF GRAPH OPTIONSPD$;"FRE": CLEAR STRINGSPKP,0P::"GRAPH FOLLOW-UP OPTIONS":Q:"CURRENT GRAPH:":(P1)II)OBIIOLP&OV -----[O`HU$"SEC.":HL$"TIME": SET TIME UNITS & LABELyOjX(0)X(1): SET BASE TIMEOt RESET SERIES END MARKERSO~P14OAC(P)N(P)N(P1)NR:58780ON(P)N(P1)OPO FINISHED WITH GRAPHING8P(KCN 2 INPUTS ACTIVEPN(NR440)(KC)127ĉ::12:"SAVING DATA IN MEMORY..."XNI0NPPL14: FOR EACH SERIES EXCEPT THE 1STNAC(P)058700NIINR: SERIES BEGINN$II1NR: MOVE UP THE DATAN.X(III)X(N(P1)II) O8Y(III)Y(NMTIBTDT58380: RELOOPMM(7);(7);(7);: RING BELL WHEN DONEMGS(49206):GS128Ĺ49206,GS128: FAST GSMST058790MNRI1: SET NUMBER OF READINGS M MOVE DATA INTO "NORMAL" DATA FORMATNNA258710: LESS THA SET INDEX MARKER FOR THE PLOTTING SUBROUTINEYLzHQTI(P): SET HORIZ VALUE FOR PLOTLVQTE(P): SET VERT VALUE FOR PLOTL600: PLOT POINT LP: NEXT INPUT MSFTLTLTD:II1: INCREMENT BASE TIME AND THE LOOP COUNTER! TO BE STORED0K*((TI(PL)TL)TD)(ST)SF1;K4P14MK>AC(P)58520^KH STORE DATAKRSF58480: SKIP AHEAD IF NOT STORING K\Y(IN(P1))TE(P): STORE INPUT KfX(IN(P1))TI(P)BT: STORE TIME /LpJIN(P1):VEJP: NEXT SERIESLJGS(49206):GS127Ĺ49206,GS128: SLOW GSpJKP,0: CLEAR KEYBOARD STROBEJI1: TOP OF LOOP J (KC)155(KC)14158560: EXIT ON ESCAPEJ500: READ INPUTK SF0: FLAG MARKING IF THIS LINE OF DATA ISTING VALUE & BASE TIME?ITLBTTD: INITIALIZE LOW TIMEpIST58350: SKIP AHEAD IF NOT STORING zINRRPIN(0)0IP14: INITIALIZE SERIES MARKERSIAC(P)N(P)N(P1)NE:58340: SERIES ACTIVEJN(P)N(P1): IF SERIES INACTI"COMPLETED, PRESS TO CONTINUE."MHv(KC)12858230: STALL rH{(KC)15558810: PRESSEDHKP,0:49232,0: RESTORE GRAPHICS HCL$"S"İ500: IF NOT A SOFTWARE CLOCK THEN GET THE START TIMEISV(1)TI:BTTI: STARP POINT PROTECTOR KEY5Ge"POINT PROTECTOR KEY:":TGfPA(1)ĺ"INPUT A - SQUARE"uGgPA(2)ĺ"INPUT B - TRIANGLE"GhPA(3)ĺ"INPUT C - CIRCLE"GiPA(4)ĺ"INPUT D - DIAMOND"+Hl::"PRESS TO BEGIN DATA":"COLLECTION. WHEN THE GRAPH IS":YFDV181:O$"H":HHL200(PR$).5LW:700: PRINT RIGHT VALUE ON THE HORIZONTAL AXISeFNPR$TI$FXH(HLHR)2LW.5(PR$): CENTER TITLE FbV2:700: DISPLAY TITLEFc49233,0:::: SWITCH TO TEXT SCREEN Gd(GS(1))58220: SKIR$)8PR$(PR$,8)4E((PR$,2))0PR$(PR$,5)EO$"H":V181:HHL100(PR$).5LW:700: PRINT MIDDLE VALUE OF THE HORIZONTAL AXISE&TS(200FA(1)TI):950:PR$DF$: SET UP STRINGE0(PR$)8PR$(PR$,8)F:((PR$,2))0PR$(PR$,5)UTINE WORKS PROPERLY)DSSS0:SE2SS1: SET SKIP SCALING FLAGcS"SE0SE5SE2SE359190nS,59000tS6S` ERROR HANDLINGSc::D$"PR#0": TURN OFF PRINTERSeEL(219)CC(218):EC(222)Sg:::"* ";TtEC3ĺ"NO DEVICE CONNECTED";:60040.TEC69ĺ"OVERFLOW";:60040@TEC25560065_T"CODE  ";EC;~T" ERROR ON LINE ";EL;" *"TTJ13000:J: TIME DELAY TO READ SCREENTT865: CLEAR STACKUEL2000ġ: IF ERROR OCURS IN A SUBROUTINE, RDOS CLOCK,MOUNTAIN CLOCK,GS CLOCKE#768,Q$:Q$(Q$,1): GS CLOCKe%Q$(Q$,5)(Q$,9,9)".000"n'559)D$"PR#"CL:D$"IN#"CL:" ";Q$:557: THUNDER CLOCK+D$"PR#"CL:D$"IN#"CL:Q$: MOUNTAIN CLOCK-D$"IN#0":D$"PR#0"1/TI((Q$,6))--- VIU READ:I6,P:3072: SET MACHINE CODE TO READ INPUT Pg3075: READ COUNTS~C(250)CC(251)V(P)(CET)1000: RAW INPUT READING  READ CLOCK:#!CN566,553,555,547: ON THE CLOCK# GOTO SOFTWARE CLOCK,PRO 403& READ INPUT [ID$"V"Ĺ252,2:253,0: POKE FOR ONE READINGrP14:AC(P)574ID$"B"534: READ VIU V(P)(P)V(P)V(P)DAVRVM V(P)(V(P)1000HH)1000Q1AD:: DELAY544 ---";::"NO":+SE1Ğ:"YES";::" NO"6YU:4>Q$JQ(Q$)lQ27SE2:442: ESCAPEzQ13442Q$"Y"Q$"y"SE1:400Q$"N"Q$"n"SEZZ:400Q10Q11Q8Q21Q32439: DOWN,UP,LEFT,RIGHT,SPACESE1SE285: IF ESCAPE?(DB)ZZDF$"":285: NOTHING ENTEREDeDF$"": INITIALIZE ENTRY STRINGI1(DB):DF$DF$((DBI)):: READ ENTRY INTO DF$ YES/NO QUESTIONYU: UPPER LINE USED BY SUBROUTINE1SEZZĝ:"YES EXIT TYPE (1 = , 2 = )Q (DF$)ZZ245: NO DEFAULT STRINGy I1(DF$): SET UP DEFAULT STRING DBI,((DF$,I,1)) DB,(DF$): DEFAULT STRING LENGTH RE: READ INPUT EX(SB9): CHECK EXIT TYPE EX2GE TO PRINTi (NU$)8āQQ(NU$)6:NU$NU$" ":: ADD SPACES TO MAKE EVERY NUMBER THE SAME LENGTHo INPUT ENTER WITH DF$, AND WI%; EXIT WITH DF$ AND EX SB,WI%: NUMBER OF CHARACTERS TO BE ALLOWED IN INPUT( EXZZ: "0"NU$: ADD LEADING ZEROu (NU$)5(NU1)NU$NU$"000":NU$(NU$,4(NU.1)(NU1)): ADD TRAILING ZEROS NU$SN$NU$: ADD SIGN NU0.01NU$SN$"0.00#":180: NUMBERS TOO SMALL TO PRINT (NU$)7NU$SN$"#####": NUMBERS TOO LARWRTT:135: SET PWR FOR NUMBERS LESS THAN 1c FCTRTZ(PWRTT): FACTOR USED IN ROUGH ROUNDING NU(NUFCTRHH)FCTR: SIG. FIGS. ROUNDING NU$(NU):(NU$)4ĭ(NU)NUNU$NU$".": CREATE STRING AND IF INTEGER ADD "." (NU$,1)"."NU$ SIG FIGS AND PRINT IN COLUMNS , fSN$" "H iNUZZSN$"-":NU(NU)s nNUZZ150: SKIP ROUNDING IF ZERO} sPWR1 xNU1135: NUMBERS LARGER THAN 1 }NUPWRPWRPWRTT:125: REPEAT UNTIL PWR<=NU 140: SKIP AHEAD. NUPWRTTPWRP%41859,7:KP,0: APPLE BUG FIXRSE746000: FAST COLLECT & STORE DATASE847000: MONITOR INPUT VS. KEYBOARD48000: STRIP CHART RECORDER "VP III - PART.SIX""(C) 1988 VERNIER SOFTWARE 5/25/88"c d ROUND TO EMOVE ADDRESS FROM STACK3U59000: MAIN MENU((Q$,10,2))MM((Q$,7,2))HU((Q$,4,2))DDF6TI(P)TI:TITI1<TE(P)I(1,P)SL(P)(V(P)AV(1,P)): CALC. CORRECTED READING>P@X PRINT INPUT LEVEL TICKMARKS]II0bI04lNU((MTMN)I4.0)MN:100wIII15636xIIII1:" ";y6314|NU$;:IIII(NU$);IA_  PRINT TABLE HEADINGSf$1&ML$;:15:"A B C D"*5:MU$;.P14:AC(P)816/(5P72((VU$(P))2)):"(";VU$(P);")";0P/2PO(36)0ĺ: DO EN FINISHED"0"r8:" NOW READING DATA #"Q"| INITIALIZE SERIES MARKERS:"KB(KC):KB160KB15546470: GET QUE TO START"KB155EX2:46860"22:38): CLEAR LINE"KP,0"GS(49206):GS127Ĺ49206,GS128: NORMAL SPEED GS## INPUT DEVICEY!6Q,(RP2)(RP2CC)CC:Q1,((RP2)CC): POKE # OF RUNSs!@ SET UP TEXT SCREEN:!J:"COLLECT AND STORE DATA"!T4:"READY TO COLLECT DATA..."!^22:3)"PRESS TO BEGIN READING""h6)"PRESS WHQ(DF$)@ Q1ĺ::"INVALID ANSWER -- ENTER AGAIN.":46320n QNEĺ::"THE MAXIMUM IS: ";NE::46320 CGQ:NRQ: SET NEW DEFAULT & # OF READINGS PER PROBE "RPNRNA: TOTAL # OF READINGS!,Q252:ID$"B"Q7: SET TODO POINT DEPENDING ON:46240%ҴDM(DF$): SET DEFAULTܴDDM:ID$"V"DD10:DL159CPSD.1: TIME DELAY TO .1 SEC & SET ACTUAL DELAY TIME IF VIU 洹235,D: POKE DELAY TIME봺:"ENTER # OF READINGS TO BE MADE :";WI%8:DF$(CG):200:EX246860 F TIME"/"(IN ";QQ$;") BETWEEN READINGS:"5]ID$"B"ĺ"RANGE: 0 - 250MS":46270z"RANGE: 0 - 25 SECONDS""ENTER VALUE: ";:WI%8:DF$(DM):200:EX246860 ȴ(DF$)0(DF$)25(225(ID$"B"))ĺ::"VALUE OUT OF RANGE -- ENTER AGAIN"DF$)1.2ĺ::"VALUE OUT OF RANGE -- ENTER AGAIN":46130HdSM(DF$)}s206,CC(((SMCPS3)4867).5): COUNT CYCLESx6,PL:3072: POKE CT PARAMETERS:QQ$"SECONDS":ID$"B"QQ$"MILLISECONDS" :"ENTER DELAY TIME - THE LENGTH ODURING WHICH THE INPUTC"SIGNAL IS MONITORED BEFORE A READINGi"IS DISPLAYED. THE RANGE AND THE("CURRENT VALUE ARE SHOWN BELOW:"2<"RANGE .02 - 1.2 SECONDSF"ENTER VALUE: ";:WI%9:DF$((SM),3):200:EX246860:Z(DF$).02(."EγD$;"BLOAD ";PS$;"VOLTS.0,A$1200": COLLECT/STORE FOR BOARDbس6,SL: POKE SLOT NUMBERⳗ:"COLLECT AND STORE DATA"쳲 CHANGE SAMPLE TIME (VIU INPUT):ID$"B"46215::"ENTER SAMPLE TIME - THE LENGTH OF TIME "(IN SECONDS) 1ĺD$"CHAIN /RAM/PART.ONE,@2460": CHAIN BY /RAM DISKd:12:"LOADING MAIN PART OF PROGRAM..."D$"CHAIN "PS$"PART.ONE,@2460" COLLECT AND STORE DATA 60000: SET ONERR GOTOID$"B"46050ij"LOADING NECESSARY FILES..{HOZZHO$" ":1160B~HO$(HO)":":HO10HO$" "HO$cMIZZHOZZMI$" ":1180MI$(MI)":":MI10MI$"0"MI$SC$(SC):SC10SC$"0"SC$HO$MI$SC$;:l CHAIN BACK TO PART.ONEnD$"FRE"q41859,37v(860) GET KEYPRESS $1.PN$;DWI%1:DF$"":200JL CONVERT SECONDS TO HH:MM:SS FORMAT WITHOUT LEADING 0'SQTSTSBT: SUBTRACT BASE TIMEVHO(TSHU):MI((TSHOHU)MM):SC(TSHOHUMIMM.5)yHO24HOHO(HO24)24DD):DY$(DY)"/"cHO((TSDYDD)HU):MI((TSDYDDHOHU)MM):SC(TSDYDDHOHUMIMM.5)HO$(HO)":":HO10HO$"0"HO$MI$(MI)":":MI10MI$"0"MI$SC$(SC):SC10SC$"0"SC$DY0DY$""DF$DY$HO$MI$SC$: I19:II((DF$,I,1)):II48II57EX2:945yI:TS((DF$,8,2))((DF$,6,2))MM((DF$,4,2))HU((DF$,3))DDTSTSBT CONVERT SECONDS TO HH:MM:SS FORMATTSTSBT: ALWAYS SUBTRACT BASE TIME FOR R.T. GRAPHINGDY(TSC/R IF PRINTER ON OR NOT ALREADY ON NEXT LINE84DA$>>w CONVERT TIME IN "DD:HH:MM:SS" FORMAT TO SECONDS(DF$)12Q$"000:00:00:00":DF$(Q$,12(DF$))DF$EX0:(DF$)12EX2:9450DF$(DF$,3)(DF$,5,2)(DF$,8,2)(DF$,11,2):ID$"V"46600: SKIP TO VIU4#µ FOR BOARD:\#̵4616,NA1: NUMBER ACTIVE PROBES k#ֵI0:P14#൭AC(P)Ĺ4612I,P1:II1#굂P#4608: READ COUNTS (BOARD)#46630# FOR VIU:$3081,3(NA2): POKE '0' FOR ONE INPUT,POKE '3' FOR TWO INPUTS/$3075: READ COUNTSe$&GS(49206):GS128Ĺ49206,GS128: FAST SPEED GS$0:20:"SAVING DATA IN MEMORY..."$:RP((254)CC(255))2: READ NUMBER OF ACTUAL RUNS (TOTAL)$DNR(RPNA): SET ACTUAL RUNS$NN(0)0%%XX(1): SET BEGINNING TIME;2r RESET SERIES END MARKERSF2|P14g2AC(P)N(P)N(P1)NR:47770w2N(P)N(P1)~2P21000: GET 21900: RETURN TO MAIN2 CHART RECORDER2600003GS(49206):GS127Ĺ49206,GS128: SLOY...": DISPLAY MESSAGE IF LONG WAIT.1I0_1PPL14: FOR EACH SERIES EXCEPT THE 1STr1AC(P)0477001"IINR: SERIES BEGIN1,II1NR: MOVE UP THE DATA16X(III)X(N(P1)II)1@Y(III)Y(N(P1)II)1JII1TP1^ -----2hX(0) --- BOTTOM OF LOOP ---I0GS(49206):GS128Ĺ49206,GS128: FAST GSO0ȹ`0ҹ34,0:35,240ܹ MOVE DATA INTO "NORMAL" DATA FORMAT0NRJ1: SET NUMBER OF READINGS0NA247710: LESS THAN 2 PROBES ACTIVE&1JNA50Ģ12:"SAVING DATA IN MEMORAC(P))47470E/ZY(JN(P1))TE(P): SAVE INPUT (FROM INPUT DEVICE)v/dX(JN(P1))(DF$)OV: SAVE KEYBOARD INPUT}/nP/xJJ1/PPL4:AC(P)47510/NUTE(P):100:5P7:NU$;: PRINT VALUES /P//47320: REPEAT LOOP 0 .KB12847490: DON'T STORE .. KP,0Q."ENTER ";HL$;" IN ";HU$;": ";s.WI%8:DF$"":200:EX247550.(36,0:958.2J;: PRINT DATA LINE.-츰500: READ VALUE.I1100:I: STALL$ML$"# "HL$:MU$"("HU$")":800[,t(23):" PRESS TO ENTER VALUES, "z,~9)"PRESS TO EXIT";,34,3:35,22: SAVE TOP AND BOTTOM,N(0)0,P14: INITIALIZE SERIES MARKERS-AC(P)N(P)N(P1)NE:47290: SERIES ACBLE: ";,+WI%5:DF$HU$:200:EX2477908+HU$DF$c+$::"ENTER OFFSET VALUE (IF AN OFFSET+."VALUE IS ENTERED, IT WILL BE+8"SUBTRACTED FROM EACH ENTRY)"+BWI%8:DF$(OV):200:EX247790+LOV(DF$)+V::1000: GET RETURN+`&,jDENT VARIABLE) ;*"VS. VALUES ENTERED ON THE KEYBOARD Y*ʷ"(INDEPENDENT VARIABLE).*Է:"ENTER THE LABEL FOR THE INDEPENDENT *޷"VARIABLE: ";*WI%5:DF$HL$:200:EX247790*HL$DF$*::"ENTER THE UNITS FOR THE INDEPENDENT +"VARIAOAD ";PS$;"LP.1200,A$1200": RELOAD LARGE PRINTU)>1900: CHAIN BACK TO PART.ONEw) INPUT VS. KEYBOARD ENTRY)60000: SET ONERR GOTO):"MONITOR INPUT VS. KEYBOARD")::"THIS MODE ALLOWS YOU TO COLLECT INPUT *"SIGNAL DATA (DEPENJ"(X(0)X(1): SET BASE TIMEg(HU$"MSEC.":HL$"TIME":ID$"V"HU$"SEC.": SET UNITS & LABEL( ID$"V"Ĺ235,0:206,CCNN: RESTORE NORMAL INPUT PARAMETERS (VIU)(( KP,0: CLEAR STROBE(*::1000: GET2)4D$"BL: DELAY IN MILLISECONDS (FOR BOARD)'ƶX((((J1)NA)NA)N(P1))((J1)(SMDL).5SM): DELAY IN SEC. (FOR VIU) 'жNA146830: SKIP PROBE SELECT'ڶPP1:P4P1: ROTATE PROBE'䶭(AC(P))46810: NOT ACTIVE - MOVE TO NEXT(&ID$"B"V((C4096)VR)VM:46770: INPUT READING (FOR BOARD)x&V(CSM)1000: RAW INPUT READING (FOR VIU)&Y((((J1)NA)NA)N(P1))I(1,P)SL(P)(VAV(1,P)): CALC. CORRECTED READING3'ID$"B"X((((J1)NA)NA)N(P1))J(YYD):46800P14: INITIALIZE SERIES MARKERSZ%bAC(P)N(P)N(P1)NR:46710: SERIES ACTIVE%lN(P)N(P1): IF SERIES INACTIVE%vP: NEXT SERIES%PPL: START WITH LOW PROBE%J1NRNA: PEEK DATA &C(VVJ2)(UUJ2)CC: READ COUNTSDW GS 341859,7: BUG KILLERh3BR$"+--------------+--------------+--------------+--------------+"3BT0: CLEAR BEGINNING TIME3:"STRIP CHART RECORDER":3ƻ"DO YOU WANT TO SAVE THE DATA? ":YU4:SE0:4003лSE2EX2:492004ڻSTSE: