' +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 533z#     ŮӮʰΠԮǠҠ٠ҠԠϠ9 ΠРϠ ٠ҠϠ" Ӡ٠ҠԠŠ9ҠӠ Ѡˠ pp@p@ yp D'D@ A ppp~@ Cap@|  p@@~CaC@C@`?*U*U*U*U*U`@"D~@C@a00xx ?pp@p@ $$D@ y 0@?xpp@ |Ca0`@ < p@@CCCCC0`xj*U*U*U*U*UL~@C@a00xx~ pp@p@? $$D@pqH @`{pp@@ FCa0`@ < pOs?~~~@00x?@CCCCC0`\**U*U*U*U*U  H@@C@a000~           8,0: SET START UP FLAG TO INDICATE THIS IS THE FIRST TIME THROUGH PROGRAMs D$;"RUN FREQUENCY METER PART ONE"y  { GREETINGS PROGRAM9D$(4): CHR$(4)IS CNTRL Dn DISKETTE CREATED BY D. VERNIER ON MAY 8, 1984tD$;"BLOAD FREQUENCY METER LOGO,A$4000"D$;"BRUN SPEEDOS":: CLEAR SCREEND$;"BLOAD FREQUENCY METER LOGO, A$4000"K   @x`pp@@  `@p  pGp|p~@c @` a@  @ 8p`w3f@ppL`@CC@a0` 0Nr@CC@a00 ~@CCCCC0`  @<@|pp@@@  `0@  `pxp|@Cp @@pp@p  @ ~~C~`x@@CC@a0` 0BBw@CC@a00 f~~C~@y~0` @|pp@@x``  `0@   ~~C~`|wx@~~@CC0xx?BBCC@a0x?f~~C~@y~0` |pp@@pp $`yp@0 `pp|@ Cap@|   @~CaC@C@~`@~~@CC0xx?"FCC@a0x?HP35CH' -----7VP,V6HP1=sHP,H3VP:VP,V3H3:H3,HPV3:V3,V6HP:HP,H3V6yHP,H3VP:VP,V3H3:H3,HPV3:V3,V6H3:H3,HPV6VP,V3HP:HP,H3V3:VP,V6H3H3,HPVP:VP,V3HP:H3,HPV3:T PTS. AC((PR$,CH,1))480 AC0AC10A AC21AC11R AC3AC12c AC2AC13w AC1AC13452 AC484,492,500,508,516,524,532,540,548,556,564,572,580 AC12AC1HPHP6:464 AC13HPHP2:464 HPHP4HP3510): NUM(NUMFCTR.5)FCTR: ROUND TO SIG. FIGS.@ T  LARGE PRINT j : LO-RES 15: WHITE VP5:HP2: STARTING PT  ----- CH1(PR$) H3HP3:V3VP3:V6VP6: CALCULATE IMPORTAN(J)(J1)(ETDY).5ET: TIME TO MIDPOINTW T(J)(T(J)10000.5)10000: ROUND^ Jd v ROUNDING NUM0245 PWR1 (NUM)1225 (NUM)PWRPWRPWR10:215 230 (NUM)PWR10PWRPWR10:225 FCTRDC(PWR sC(250)256(251)< uC1C0: NO REAL COUNTM xF(CET.5)v }N1155: COUNTING COMPLETED J1N: PEEK DATA C(307202(J1))256(307212(J1)) C1C0 F(J)(CET.5): CALCULATE FREQ., TNOT LOSTE *2180: RESTART MAIN PROGRAM, SKIP INITIALIZATIONU - 2 FREQUENTLY USED SUBROUTINES FOLLOW: d READ FREQ. i252,(N2)(N2256)256:253,((N2)256): POKE # OF RUNS n33536: READ COUNTS:7& FREQUENCY METER PROGRAMD VERNIER SOFTWARE` COPYRIGHT 1984w# REVISED 12/9/86'(8)01800: INITIAL START UP ENTRY( RERUN START UP )779: RESET VARIABLE TABLE POINTERS SO THAT DATA IS                LZLݵܵߵ޵ ^`8ܵ i B8` LֵȱB׵` DȑB׵Bֵ յյ``y¹?`wa_LʬOˬ̬čPQ` H hBLµ* `Loõĵֵ׵ Rĵµѭ H hBLL B ڬ L -յյµ% `õĵֵ׵ Rĵµ˭ B ڬ   @pqpp@@` p`@p  xgp~p?@spxiDgc@ Q  @ pp 3f@ppL x@@C@a000H`w~~@00x?~@CCCCC0`RAMETERS AND PB8z2182: SKIP SCREEN CLEARING@:L60000wHL$"TIME ":HU$"SEC.": HORZ. LABELSVL$"FREQ. ":VU$"HZ.": VERT. LABELSPR0: SET OUTPUT DEVICE49168,0: CLEAR KEYBOARD " FREQUDT$,NAME$$D$"CLOSE CALIBRATION",:V"CALIBRATION DATA: "(CPS)" CTS/SEC"o"ON "DT$" BY "NAME$u MENU 4M1:T105:D0:PB1: SET DEFAULT VALUES> CALCULATE CT PARAMETERS:H700: SET COUNT PA SET SHAPETABLE POINTER TO $8000XvROUND3:DC1000: ROUND TO 3 SIG FIGS1: ALL HI-RES SHAPES AT SMALLEST SIZEF(513),T(513): ARRAYS FOR FREQ. AND TIMESD$"OPEN CALIBRATIOND$"READ CALIBRATION CPS,KG,A$8800": THIS IS A CHANGE TO MAKE THIS PROGRAM WORK WITH IIGSgD$;"BLOAD LINK,A$300": LOAD MACHINE LANGUAGE PROGRAM TO ALLOW LINKING TWO PARTS OF THE PROGRAM WITHOUT LOSING DATAiD$;"BLOAD IMAGE.HIRES.$9000.OBJ0"'l232,00:233,128: ABOVE HGR2)ID30720: SET HIMEM TO $7800 TO PROTECT OTHER FILES_ND$(4): CNTRL DXD$"BLOAD HGR LETTERS,A$8000": HI-RES LETTERSbD$"BLOAD FREQ,A$8300": LOAD MACHINE CODE PROGRAMBdD$;"BLOAD MOVER,A$8700":D$;"BLOAD TEXT.BPB";PB;" "; A"COUNT TIME:";:NUMET:200:NUM" SEC"GM` *****| MAIN PROGRAM  COPYRIGHT 1984 VERNIER SOFTWARE 2920 S.W. 89TH PORTLAND, OR 97225 :24576: SET LOMEM TO $6000 ( WRITE A FILE -D$"OPEN "N$?D$"WRITE "N$HHL$QHU$ZVL$cVU$pJ1N1zT(J) F(J)JD$"CLOSE "N$(x IDENTIFY INPUT & CT TIME :"INPUT: ";:PB1ĺ"CASSETTE ";:1440 """;Q$/34,0:35,24: RESTORE WINDOW5OL GET DATA FILE NAME YV:10z`8:"ENTER NAME OF DATA FILEj:10:"(OR 'C' TO CATALOG)t:11:"";N$~N$"C"ĺD$"CATALOG"::1120N$"C1"N$"C2"ĺD$"CATALOG ,D"(N$,2)::11202)(FF1)): STD DEV5w"MEAN FREQUENCY: ";TxNUMFM:200: ROUNDcyNUM" HZ."|"STANDARD DEVIATION: ";}NUMFD:200~NUM" HZ."D$"PR#0": TURN OFF PRINTER24:"PRESS TO CONTINUE "; ";::`Q$:Q$" "Q$"A"864: SPACE BAR OR ADd22:KfJcj:"COUNT TIME = ";kNUMET:200:ETNUM:ET" SEC.l"NUMBER OF DATA POINTS CONSIDERED: ";mFFoFF2FMFS:FD0:887qFMFSFF: MEANsFD((FQFFFM: INIT. STATS.">J1N.HJ;:11pSFFFF1:FSFSF(J):FQFQF(J)F(J): UPDATE STATISTICS{UT(J);V(26):F(J)ZPR0(37)22Q$"A"870: SKIP SCROLLING MESSAGE^24::" PRESS SPACE BAR TO CONTINUE SCROLLINGON  PRINT TABLE "#J1"# TIME FREQUENCY"o4" (HZ.)6"--------------------------------734,3:35,23: SET WINDOW TO PROTECT HEADINGS8N0ĺ"NO DATA LEFT":8969FF0:FS0:FQ0ELAPSED TIME1206,256T: COUNT CYCLESEDY132CPSD.1_235,D: DELAY 238,M: START UP FLAG PPPB97: CALC. POKE NUMBER 33565,PP:33575,PP:33632,PP:33649,PP:33757,PP:33770,PP: POKE INPUT LOCATIV3:VP,V6H3: 'H'0xHPHP6:H3HP3zHP,H3VP:H3,VP1:VP2,V3HP2:V3,VP4HP1:HP,VP5:HP,H3V6: 'Z'|HP6,V6: '.' CALCULATE AND POKE CT PARAMETERS ET(19T2563(T1))CPS: CALCULATE H3VP:VP,V6H3:H3,HPV6:VP,V6HP)0U4H3,HPVP:VP,V6HP:HP,H3V3:HP,H3V6[8k<HP,HP1V3q@|DHP,V6HX PRINT OUT "HZ." lVPVP10:HP13nH3HP3:V3VP3:V6VP6: RECALC. IMPORTANT PTS.vVP,V6HP:HP1,H3V3,V6H3:H3,HPV6Y H3,HPVP:VP,V3HP:HP,H3V3:V3,V6H3:HP,H3V6:V6,V3HP_VP1,VPHP:HP,H3VP:VP,V6H3HP,H3VP:VP,V6H3:H3,HPV6:V6,VPHP:HP,H3V3 $H3,HPV3:V3,VPHP:HP,H3VP:VP,V6H3(#,HP,DE0DEN7090..DE07200: EXIT\.F(DE)1: SET DELETED VALUE = -1|."DATA LINE #"DE" DELETED.".7090. :"DO YOU WANT ALL FREQUENCY = 0 DATA.4"REMOVED FROM THE DATA TABLE? ".H"[N] ";Q$:Q$(Q$,1)/ R:"DO YOU NEED TO SEE THE DATA TABLER-"DISPLAYED WITH LINE NUMBERS (Y/N)? ";a-"[N] ";Q$x-(Q$,1)"Y"7090-800: PRINT TABLE-:"ENTER THE LINE NUMBER TO BE DELETED-"(IF NONE, PRESS ) "-"[0] ";Q$:DE(Q$).ED-,w"OR PRESS FOR SCREEN DISPLAYE,x"[0] ";Q$:PR(Q$)[,yPR0ĺD$"PR#"PR~,z800: PRINT DATA TABLE,, ,X DELETE DATA,l:5,v"YOU WILL NEED TO KNOW THE LINE,"NUMBER OF THE DATA TO BE DELETED.&-2)1605030: WAIT FOR SPACE BAR1+49168,0O+100: READ COUNTSn+800: PRINT TABLE+238,1: RESTORE NORMAL NO WAIT FOR SIGNAL CONDITION+ +f +p DATA TABLE,v::"ENTER SLOT NUMBER OF PRINTER TO BE US50120*DDY10: TIME DELAY TO 0.1 SECT*235,D: POKE DELAY TIME*:"WAIT FOR NON-ZERO SIGNAL BEFORE STARTING";*"DATA COLLECTION? [N] ";Q$:(Q$,1)"Y"Ĺ238,0: SET WAIT FOR SIGNAL FLAG*:34560: TEXT SCREEN$+(4915NTER # OF COUNTS TO BE MADE [20] ";Q$8)Q$""Q$"20"F)N(Q$):Z)N0N5125007)"ENTER DELAY TIME - THE LENGTH OF TIME IN";)"SECONDS BETWEEN COUNT PERIODS.)"RANGE: .00011 TO 25 SEC ):"[MINIMUM] ";Q$:DY(Q$)*DY0DY25T PERIOD,(aT(J)(T(J)10.5)10: ROUNDD(c"SAVED IN MEMORY:"c(hJ;:(11):T(J);:26:F(J)z(|J512JJ1:4164(~NJ1(34,0: RESTORE WINDOW(( ( COLLECT AND STORE DATA(33789: CLEAR MEMORY(%)"E34,4: SAVE TOP OF SCREEN$'=J1:'DI1DD: DELAYW'F100: READ FREQ.b'H26:F'J(49152)1284222: EXIT ON KEYPRESS'LI'O STORE DATA:'TF(J)F(^T(J)J(DSET.2561).5ET: CALCULATE TIME TO MIDPOINT OF CO EXIT THIS ROUTINE?&(Q$,1)"Y"4140: DISPLAY AND SAVE\&100: READ FREQ.i&F" HZ."&(49152)1284230&4090: REPEAT LOOP&" ---&, DISPLAY AND SAVE DATA&6"# TIME FREQUENCY';CONDS BETWEEN COUNT PERIODS.:%"RANGE: 0 TO 1 E+38 SEC V%:"[0] ";QQ$:DS(QQ$)e%DS04044%DD1.61E6CPSDS: CALCULATE PROPER NUMBER OF DELAY LOOPS TO CAUSE A DELAY OF DS SEC.%:1400: IDENTIFY INPUT&"PRESS ANY KEY TLOAD PART TWO.$w 2180: REPEAT LOOPD$ ***** Y$ DISPLAY FREQ.a$:}$N1: SINGLE CT$"DO YOU WANT TO SAVE DATA? ";$"[N] ";Q$$(Q$,1)"Y"4050$"ENTER DELAY TIME - THE LENGTH OF TIME IN";%"SEOGRAMj#D N2ĭM$"T"M$"D"M$"P"M$"S"M$"O"ĺ:10::"NO DATA TABLE IN MEMORY"::I1999:I:2180#N MODES BELOW REQUIRE A FILE IN MEMORY:#X M$"T"İ6000#b M$"D"İ7000#g M$"O"İ8000#i M$"S"İ12000 $l M$"P"10000: 8,0: CLEAR KEYBOARD STROBED"8,1: SET START UP FLAGV" M$"F"İ4000h"& M$"C"İ5000{"0 M$"L"İ40000"4 M$"I"İ11000"6 M$"X"İ9000"8 M$"Z"İ50000"9 M$"E"İ14000#: M$"R"M$"U"10000: RUN PART TWO OF THE PR"O = PRINT GRAPH ON PRINTERG!"Z = RECALIBRATE FREQUENCY METER ";g!(8)0ĺ: SPACE DOWN!F(N1)9999:T(N1)9999: SET MARKERS FOR END OF DATA FILE!XX(0): STRING VARIABLE HOUSEKEEPING!" ";M$:M$(M$,1)#"4916Y OR PRINT DATA TABLE+ "D = DELETE DATAG "S = SAVE DATA TO DISKe "E = LOAD DATA FROM DISK "I = CHANGE/CHECK INPUT "U = SOUND UTILITIES "X = CHANGE COUNT TIME "P = PLOT GRAPH OF DATA IN MEMORY "R = GRAPH IN REAL TIME!ENCY METER+" VERNIER SOFTWAREJ" COPYRIGHT 1984t1400: IDENTIFY INPUT DEVICE"SELECT MODE:":"F = DISPLAY FREQUENCY"L = LARGE PRINT FREQUENCY DISPLAY"C = COLLECT AND STORE DATA "T = DISPLAD$"WRITE CALIBRATION[>4ƺCPS","DT$","NAME$": REM STORE NEW CALIBRATION DATA ON DISKu>HƺD$"CLOSE CALIBRATION>\ư700: POKE NEW PARAMETERS>pƱ>Ʋ >` ERROR HANDLING>e(222)6ĺ"*** FILE NOT FOUND *** ?g(222)9ĺ"*** REQUENCY WOULD=Xź"BE "CRJ=lź:"DO YOU WANT TO CHANGE THE CALIBRATION?R=ńQ$j=ŭ(Q$,1)"Y"50800=ź"ENTER DATE,NAME=ńDT$,NAME$=CPSCR=ź"CHANGING CALIBRATION FILE ON DISKETTE=źD$"DELETE CALIBRATION= ƺD$"OPEN CALIBRATION> ƺENT CALIBRATION THE INPUTB<ĺ"FREQUENCY WAS MEASURED AS "FM" HZ.H<ĺa<IJ RECALIBRATE<ĺ"THE CLOCK FREQUENCY NOW STORED ON THE<ź" DISKETTE IS "CPS" COUNTS/SEC.<ź<0CRCPS(FIFM): NEW CT RATE=Dź"THE RECALIBRATED CLOCK FMEAN FREQUENCY WILL BE7;ĺ"USED IN THE RECALIBRATION.=;,ĺi;@ĺ"ARE YOU READY TO PROCEED WITH RECALI-~;Tĺ"BRATION (Y/N)?;hĄQ$;|ĭ(Q$,1)"Y"ĺ"CALIBRATION FILE LEFT UNCHANGED":50800;ĺ:"ENTER ACTUAL INPUT FREQUENCY ";FI<ĺ"WITH THE CURR, FIRST8:ú"SET UP APPARATUS TO INPUT A KNOWN STEADY";_:ú"FREQUENCY. USE THE 'C' (COLLECT:ú"FREQUENCY DATA) MODE FROM THE MAIN MENU:ú"TO DETERMINE THE INPUT FREQUENCY AS:ú"MEASURED BY THE PROGRAM. SEVERAL COUNTS";;ĺ"CAN BE MADE; THE 109PR$(F).9400: PRINT FREQ.L9̜600: PRINT 'HZ.'d9(49152)12840200940060: REPEAT 99 9Pò RECALIBRATE METER9dÉ:9xú"TO CHECK THE CALIBRATION OF THIS:ú"PROGRAM'S FREQUENCY COUNTINGJ15128x7T(J)87F(J)M87T(J)9999F(J)9999NJ1:J512: EXITT87Jf87D$"CLOSE "N$l87{87 8@ LARGE DIGIT DISPLAY8T:23:9:"PRESS ANY KEY TO EXIT8hN1: SINGLE CT8|100: READ FREQ9HP0:VPE7/-7/"DATA SAVED IN A FILE NAMED: "N$I70/I11500:I: DELAYO7D/^7X/ ~76 READ DATA FROM DISK761100: GET FILE NAME76D$;"VERIFY ";N$76D$"OPEN "N$77D$"READ "N$77HL$7(7HU$7<7VL$7P7VU$8d7 SPEAKER WILL TOGGLE ON ANDF6 -"OFF IN RESPONSE TO THE INPUT SIGNAL.s6-:"PRESS ANY KEY TO EXIT THIS ROUTINE."6<-33748: INPUT SIGNAL TEST6|.6. 6. STORE DATA ON DISK6.1100: GET FILE NAME7/1200: SAVE FIL 2 = PB2#5+:"["PB"] ";:Q$85+Q$""PB(Q$)N5+PB1PB211100u5+700: RESET CT PARAMETERS5$,:"DO YOU WANT TO TEST INPUT SIGNAL?"58,"[N] ";Q$5L,(Q$,1)"Y"11900: SKIP TEST5, TEST INPUT6-:"THE APPLE'S4'D$;"RUN FREQUENCY METER PART TWO,D1"84* W4* CHANGE/TEST INPUT SIGNAL]4 +44+"NOW SET UP FOR INPUT FROM PB"PB"4H+4\+"SELECT INPUT:4p+4z+" -1 = CASSETTE4+" 0 = PB04+" 1 = PB1 5+" 3#T(((ETCPS3)4867).5)C3H&700: POKE CT PARAMETERSI3&R3' l3t' RUN PART TWOr3'y3'53'"LOADING THAT PORTION OF THE PROGRAM..."3'768: SAVE VARIABLE TABLE POINTERS SO THAT THE DATA WILL NOT BE LOST IN SWAP(ENGTH OF12>#"TIME IN SECONDS DURING WHICH INPUTZ2B#"PULSES ARE COUNTED. THE RANGE AND2D#"THE CURRENT VALUES ARE SHOWN BELOW.2F#2P#"RANGE .02 - 1.2 SECONDS2Z#"CURRENT VALUE ";2#"["ET"] ";:"";Q$:Q$""ET(Q$)2#ET.02ET1.29020ASIZED' IMAGE? "1X "[N] ";Q$G1 D$"PR#"PR: TURN ON PRINTERm1 (9)"G2";: GRAPPLER DUMP1 (Q$,1)"Y"ĺ"E"1 1`"D$"PR#0": PRINTER OFF1"1# 1(# CHANGE COUNT PARAMETERS12#:2<#"ENTER COUNT TIME - THE L50"SELECT:":"G = GRAPPLER+":"I = IMAGEWRITER"D0"[G] ";Q$f0 :"ENTER SLOT # FOR PRINTER"0 "[1] ";QQ$:QQ$""QQ$"1"0& PR(QQ$)00 PR1PR789000: (Q$,1)"I"Č36864,PR,1:8900: IMAGEWRITER DUMP 1D :"DO YOU WANT AN 'EMPHEMOVE DELETIONS (& 0'S): /D0-/J1N1L/F(J)0Q$"Y"DD1:7380e/F(J)1DD1:7380/T(JD)T(J):F(JD)F(J): FILL EMPTY SPOTS/J/NND/800: DISPLAY UPDATED TABLE/8/ /@ DUMP SCREEN GRAPH0hh` 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` ȱ " <`xɀ`0,`-օץ,08,`0,0.,`צ֝ LMLY`',`,`0LYLYLjLjixȥLLLу,0 ʊL+L΃L`,0,`00,0,`L׃`O ;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&?$-   DISK FULL ***8?i(222)255Ĺ216,0:8,0:: CNTRL Cn?j"***** ERROR ON LINE ";(219)256(218);" *****?tI11500:I?~3288: RESET STACK?2180: TO MAIN MENU ((PR$,CH,1))48 AC0AC101 AC21AC11B AC3AC12S AC2AC13g AC1AC13452 AC484,492,500,508,516,524,532,540,548,556,564,572,580 AC12AC1HPHP6:464 AC13HPHP2:464 HPHP4 HP35HP35 CH(  LARGE PRINT GENERATOR T : SET UP AND CLEAR LORES GRAPHICSk 15: WHITE VP5:HP2: SET STARTING POINT  ----- CH1(PR$) H3HP3:V3VP3:V6VP6: RECALCULATE IMPORTANT PTS. ACRES PRINTING ROUTINE < 6 ENTER WITH O$, HP, VP, PR$U O0: NO ROTATIONf YCH1(PR$)x ^VP191VP10 cHP275HP10 h((PR$,CH,1))31HP,VP mO$"V"VPVP9: STEP DOWN rO$"H"HPHP7: STEP OVER wCH | ROUNDING ROUTINE . NUM02458 PWR1J (NUM)1225j (NUM)PWRPWRPWR10:215s 230 (NUM)PWR10PWRPWR10:225 FCTRDC(PWR10) NUM(NUMFCTR.5)FCTR: ROUND TO CORRECT SIG. FIGS.  , HI(N2256)256:253,((N2)256): POKE # OF RUNSX n33536: READ COUNTS:r sC((250)256(251)) uC1C0: NO REAL COUNT xF(CET.5) }N1155: COUNTING COMPLETED LINES 130-150 DELETE FROM PART TWO 47. FREQUENCY METER PROGRAM PART TWOk 779: CALL PROGRAM WHICH RESETS VARIABLE TABLE POINTERS VERNIER SOFTWARE COPYRIGHT 1984(2500: MAIN PROGRAM - ******d READ FREQ. 9 i252,(N2)               @Șwɀ LɌ`SӠŠҾϠԠӠξϠԠ     Įҍ":HP10:VP70:PR$(NUM):3004NUM200XSHS:200]O$"H":VP181:HP210:PR$(NUM):30016304,1:16299,1:16297,1: TURN ON HGR2V *****  MAIN PROGRAM  49168,0: CLEAR KEYBOARD HL$"TIME ":HU$"SEC."8(S$,2,1)"G"āII166010:I,II:II: DRAW GRID ?IPI166010y(176I)50((176I)50)ē15,I25,I15,I20,IIHP15:VP181:PR$((HS),4):O$"H":300PR$((VS),4):HP3:VP174:300NUM100YSVS:200O$"VVP188:HP90rO$"H" t300<vPR$"FREQUENCY VS TIME"f|HP88:VP2:300: PRINT TITLE15,6275,6275,17615,17615,6: DRAW AXES AND PUT NUMBERS ON THEMI2527510(I15)50((I15)50)ēI,176I,164I,176I,169 ASK AGAIN,f3: SET COLOR WHITEohO$"V":VP5:HP3: SET UP FOR PRINTING VERT. LABELjPR$VL$"-"VU$"-": VERT. LABEL AND UNITSl300: PRINT TEXT ON HRG2 SCREENnPR$HL$"("HU$")": HORIZ. LABEL pZ:M$"R"Ą"[DE] ";S$:S$""S$"DE"L[M$"P"Ą"[D] ";S$:S$""S$"D"s^(S$,1)"M"ġ:: EXIT _:"SETTING UP GRAPH..."`S$""S$"D ": DEFAULT b(S$,1)"D"(S$,1)"P"(S$,1)"L"(S$,1)"R"(S$,1)"S"1608: NO REGR. IN MODE R 9N" R = REGRESSION LINEYR" S = WITH STATISTICS}T" M = RETURN TO MAIN MENUV:"A SECOND CHARACTER MAY BE USED TO:"WX" G - ADD A GRID ON GRAPHY" E - ELIMINATE POINT PROTECTORS'YBOARD STROBEUA33813: CALL MACHINE LANGUAGE ROUTINE WHICH PRODUCES TONE [Fv@ SET UP GRAPH D:::H"SELECT GRAPH STYLE:IJ" D = DOTS AT POINTSL" L = POINT TO POINT LINE DRAWNMM$"R"1620: NCY--> ";FFQ2(U$,2,1)"L"1335: SKIP LARGE PRINT DISPLAY OF FREQUENCY4PR$(FF):HP0:VP0:400: DISPLAY FREQUENCY6600: DISPLAY 'HZ.'76,SD:7,LD: POKE DELAY FACTORS FOR PROPER TONE <49168,0: CLEAR KE(CYCLES86): LARGE DELAYN(SD((CYCLESLD862.5)5): SMALL DELAY*SD0LDLD1:SD17: CORRECT SO THAT SD IS NEVER 0-FF.5(LD86SD515)CPS: ACTUAL FREQUENCY PRODUCED/FF(FF10)10: ROUND TO .1 0"FREQUEK 2,5, OR 10- PRODUCE A TONE uF25F4000ĺ"UNABLE TO PRODUCE THAT FREQUENCY":I11400:I:1350CYCLES(1F)CPS2: F CLOCK CYCLES PER HALF PERIODCYCLESCYCLES15: SUBTRACT OFF 15 CYCLES WHICH ARE FIXED#LD INTECPT.BSX((X2SNXM2)(N1)): STD DEV_SY((Y2SNYM2)(N1))RX(PSNXMYM)((N1)SXSY): CORR. COEFFT. SET SCALING 200:NUMNUMPWR NUM(23(NUM2)5(NUM5))PWR: PIC INIT. SUMS-J1N: CALCULATE SUMS:KX1SX1ST(J):Y1SY1SF(J)mX2SX2ST(J)2:Y2SY2SF(J)2PSPST(J)F(J)JXMX1SN:YMY1SN: MEANSA(PSNXMYM)(X2SNXM2): SLOPEBYMAXM: HP:HP1,H3V3:VP,V6H3: 'H' >xHPHP6:H3HP3zHP,H3VP:H3,VP1:VP2,V3HP2:V3,VP4HP1:HP,VP5:HP,H3V6: 'Z' |HP6,V6: '.' REGRESSION CALCULATIONS X1S0:Y1S0:X2S0:Y2S0:PS0: H3,HPV6:VP,V6HP0E4H3,HPVP:VP,V6HP:HP,H3V3:HP,H3V6K8[<HP,HP1V3a@lDHP,V6rHX PRINT OUT "HZ." IN LARGE DIGITS lVPVP10:HP13nH3HP3:V3VP3:V6VP6: RECALCULATE IMPORTANT PTS.*vVP,V6V6 I H3,HPVP:VP,V3HP:HP,H3V3:V3,V6H3:HP,H3V6:V6,V3HPOsVP1,VPHP:HP,H3VP:VP,V6H3yHP,H3VP:VP,V6H3:H3,HPV6:V6,VPHP:HP,H3V3 $H3,HPV3:V3,VPHP:HP,H3VP:VP,V6H3(,HP,H3VP:VP,V6H3: -----'VP,V6HP1-cHP,H3VP:VP,V3H3:H3,HPV3:V3,V6HP:HP,H3V6iHP,H3VP:VP,V3H3:H3,HPV3:V3,V6H3:H3,HPV6VP,V3HP:HP,H3V3:VP,V6H3H3,HPVP:VP,V3HP:H3,HPV3:V3,V6H3:H3,HPAT FIRST OF DATA STATEMENTSt-4>I18:MU:I: READ THROUGH FIRST 8 DATA ITEMS WHICH ARE FOR A DIATONIC SCALE-5>I18: READ EQUAL TEMPERED SCALE MULTIPLIERS-:>MU-D>F(F1MU10)10:"CALCULATED FREQUENCY: ";F:1300.I>(49152)160I -----%,> EQUAL TEMPERED SCALE_,&>"ENTER STARTING FREQUENCY [100] ";Q$:Q$""Q$"100"l,+>F1(Q$),0>" PRESS FOR NEXT NOTE",1>" (OR ANY OTHER KEY TO EXIT),2>(U$,2,1)"L"āI11000:I: DELAY-3>: START =: START AT FIRST OF DATA STATEMENTS6+=I18>+=MU+=F(F1MU10)10:"CALCULATED FREQUENCY: ";F:1300: CALCULATE, DISPLAY AND PLAY TONE+=(49152)160I8+=I+= 1,1.125,1.250,1.3333333,1.5,1.666667,1.875,2+>15000 ,> *J=15000*O= ----- 6*= DIATONIC SCALEp*="ENTER STARTING FREQUENCY [100] ";Q$:Q$""Q$"100"}*=F1(Q$)*=" PRESS FOR NEXT NOTE"*=" (OR ANY OTHER KEY TO EXIT)*=(U$,2,1)"L"āI11000:I: DELAY++:I: DELAY7)=FF1:1300: PRODUCE TONE ONE)"=(49152)16015000: EXIT LOOP IF A KEY OTHER THAN THE SPACE BAR IS PRESSED),=FF2:1300: PRODUCE TONE TWO)@=(49152)16015645: REPEAT TONES IF SPACE BAR IS PRESSEDSED#(x<15420: REPEAT LOOP5(< ------ R(< COMPARE TWO NOTES{(="ENTER THE TWO FREQUENCIES (F1,F2)"(=F1,F2(=(=" PRESS TO SWITCH NOTES(=" (OR ANY OTHER KEY TO EXIT)(=)=(U$,2,1)"L"āI11500"PRESS ANY KEY TO EXIT"8'U<(U$,2,1)"L"PR$(F):400n'Z ";NUM'_<(U$,2,1)"L"VP18:HP2:PR$(NUM):416: PRINT RATIO IN LARGE DIGITS(d<(49152)12815000: EXIT LOOP WHEN ANY KEY IS PRES REPEAT TILL SPACE BAR PRESSEDQ& ";F'R TO CONTINUE ";Q$u%;N1: SET UP FOR ONE COUNTING CYCLE%;100: READ FREQUENCY%;F%;(U$,2,1)"L"PR$(F):VP0:HP0:400: PRINT IN LARGE DIGITS(&<(49152)16015340:$;:"FIRST PLAY THE 'DO' NOTE OF THEW$;"SCALE. WHILE THE PROGRAM IS READING THIS";$;"FREQUENCY PRESS THE ONCE. $;"FROM THIS POINT ON BOTH THE INPUT $;"FREQUENCY AND THE RATIO OF THE INPUT%;"FREQUENCY TO THE 'DO' NOTE FREQUE REPEAT LOOP IF SPACE BARO#;15000: RETURN TO SOUND UTILITIES MENU b#; -----w#; RATIOS#;:"THIS ROUTINE IS DESIGNED TO ALLOW#;"YOU TO EXPERIMENT WITH THE RELATIONSHIPS";#;"BETWEEN THE NOTES OF A MUSICAL SCALE.&0)"Q;"[100] ";Q$'"V;Q$""Q$"100"3"[;F(Q$)d"];"PRESS TO REPEAT THIS ROUTINE";"^;" (OR ANY OTHER KEY TO EXIT)"_;(U$,2,1)"L"āI11000:I: DELAY TO READ MESSAGE"`;1300: PRODUCE NOTE#;(49152)16015180: "!;(U$,1)"F"15160/!;(U$,1)"T"15600F!$;(U$,1)"D"15800]!);(U$,1)"E"15900t!.;(U$,1)"R"15300!3;(U$,1)"M"15990!5;15000: REPEAT MENU!7; -----!8; PRODUCE FREQUENCY"L;"ENTER FREQUENCY (MIN=25, MAX=400 PRODUCE A DIATONIC SCALEE :"E = PRODUCE AN EQUALLY TEMPERED SCALEe :"R = RATIOS DEMONSTRATION ;"M = RETURN TO MAIN PROGRAM ;:"(A SECOND CHARACTER OF 'L' MAY BE ;"ADDED TO PRODUCE LARGE PRINT DISPLAY)" ;:"[M] ";U$!;U$""U$"M"RUN FREQUENCY METER PART ONE"0 ******:T W: SOUND UTILITIES:49169,0: CLEAR KEYBOARD STROBE:::"SOUND UTILITIES MENU:"::"F = PRODUCE A FREQUENCY:"T = PRODUCE AND COMPARE TWO FREQUENCIES :"D =: HORIZ. LABELS B VL$"FREQ. ":VU$"HZ.": VERT. LABELS _ 60000: ERROR HANDLINGr M$"P"İ20000 M$"R"İ30000F M$"U"İ15000P  RUN PART ONE OF PROGRAM 768: SAVE VARIABLE TABLE POINTERS  D$; SET N SO THAT THE DATA TABLE MAY BE READP=z49168,0: CLEAR KEYBOARD STROBEg=z::10:"SELECT:"=z:"R = GRAPH AGAIN - SAME SCALE=z"S = CHANGE SCALE AND GRAPH AGAIN=z"M = RETURN TO MAIN MENU=z:"[M] ";Q$>z(Q$,1)"R"Đ:30400: NE89buHS0:VS0: ORIGIN AT 0,0w9u"ENTER MAXIMUM ANTICIPATED FREQUENCY":"[4000] ";Q$9vQ$""Q$"4000"9vMA(Q$)9 v SCALING 94vYSMA100: VERTICAL SCALING >:\vXSETDY.19: TIME BETWEEN PLO%8 XNUMA:200:PR$"A= "(NUM)" "N8 XNUMB:200:PR$PR$"B= "(NUM)" "84XNUMRX:200:PR$PR$"R= "(NUM): STAT. STRING COMPLETE8pXVP11:HP1407((PR$)2)8X3008XQ$8XQ$"R"20982: REGRAPH8X90u G176(Y9176)7WHP15:VPY0f7WX0HP(VP0VP176)(VP0VP176)((((176VP)YSVSB)AHS)XS15)w7WHP279:VPY97WX9HP(VP0VP176)(VP0VP176)((((176VP)YSVSB)AHS)XS15)7WX0,Y0X9,Y98W(S$,1)"S"22680: SKIP STATISTICSECTOR6VXP,YP6WJT6W(S$,1)"R"(S$,1)"S"22680: SKIP REGRESSION LINE60W900: CALCULATE REGRESSION FIT6DWY0176(BAHSVS)YS6XWY0Y0(Y0176Y00)176(Y0176)6lWY9176(BA(HS264XS)VS)YS7WY9Y9(Y9176Y90)XP276YP3YP188Č198:22280: IF OFF SCREENe5TV(S$,1)"L"J1ēXP,YP: PLOT FIRST POINT~5hV(S$,1)"L"ēXP,YP5rV(S$,2,1)"E"22260: SKIP POINT PROTECTORS6VXP2,YP2XP2,YP2XP2,YP2XP2,YP2XP2,YP2: POINT PROT1MYYS)10YS+4Q(HS(XMAXHS)).1HS0H4Q(VS(YMAXVS)).1VS0Y4Q ---z4Q1600: SET UP GRAPH4"V PLOT POINTS FROM TABLE4,VJ1N46VXP(T(J)HS)XS15:YP176((F(J)VS)YS): SCALED VALUES 05@VXP3 RANGE OF VALUES.3QNUMXS:1000:XSNUMF3,QNUMYS:1000:YSNUMQ3@Q20940s3TQ MODE B SCALING3hQXS(XMAXMX)260:YS(YMAXMY)155: RANGE OF VALUES3|QNUMXS:1000:XSNUM:HS(0.1MXXS)10XS4QNUMYS:1000:YSNUM:VS(.Q$) 2PC2P"ENTER VALUE OF EACH HORIZ. SQUARE [0] ";Q$:XS(Q$)|2P"ENTER VALUE OF EACH VERT. SQUARE [0] ";Q$:YS(Q$)2P209402P MODE A SCALING2PHS0:VS0: SET ORIGIN AT 0,0 3QXS(XMAX)260:YS(YMAX)155: PMY;" TO ";YMAX>1I7.X> 1,1.122,1.260,1.335,1.498,1.682,1.888 ,2B.b>15000S.l> ----- Y.v>f.> . N GRAPH DATA TABLE.4N SCALING:.HNXMAXT(1):YMAXF(1).\NMXT(1):MYF(1).pNJ1N: FIND MIN. AND MAX./NT(J)XMAXXMĮҍ ESET STACK,?2700: RETURN TO MAIN MENU2? 22)255Ĺ216,0:8,0:: CONTROL C?j"***** ERROR ON LINE ";(219)256(218);" *****"?tI11500:I?~3288: RESET STACK?2700: RETURN TO MAIN MENU? RESTART GRAPHING K>z(Q$,1)"S"30000: START GRAPHING ROUTINE ANEWQ>z_>6 w>` ERROR HANDLING }>e>g(222)255Ĺ216,0:8,0:: CONTROL C>j"***** ERROR ON LINE ";(219)256(218);" *****">tI11500:I ?~3288: R