8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LL !C}" %"" &)#M8( Y% ) LH""" &)jB, )7(P0 ( @X p 8 " ! +}""0 &"0 R%"" &)?) ;",")ɂ """ &) R%LH"yu1 *TWO.MOTORSw+ /IM.HIRES.1C00.0[!64TM+%LIGHTl; VIU.READq_>,(PRESSUREs ,&MAGNET|8'BATTERYw 84&D.TO.Au" *MOTOR.TEST6.A.TO.D.AVG.SRCI M'M#A.TO.D.AVG.0M'M&%SCOPEP%OSC.0U>- ,SCOPE.SCREENX  (OSC.DATAi CHAOS2M' &PRODOS"}@(,BASIC.SYSTEM*( A.TO.D>w *A.TO.D.SRC@J M%M A.TO.D.0DM%M *A.TO.D.AVGF? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R)0I0hx H( , R%Щ ߩ"L! )L! 8'  )ɀ)4,- U JNT) "L"" &) !` |"M)  !"#$%&'(<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLHB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?/<ʆ>-=?BC8 é&'112`? ( <x0HH1HH "hh+("i 0Ꮻ\Ꮸ0hh8(`hhh8kee` `+ *+ *` * * *`hh8`8`+++`}+`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *L7'JJJJ`Ϡ3(8`&h)hrȱȱȱȱ0]cȱeem+ȱ+ȱ++ȱ++ȱ+ )+ C* )L2)`Ly* U*L) ) L2) )L)8e` ,$`)ɀ  );( ` (Xp< @;( )m;(;(.;(>( M;(i  ``) '(j21 & &!` )&&(i(&(( CBDFGE !)&$ m(,&& … m(ŅJ 81(&2(& m((ʎ1ζ&ζ&&3223 ')L&18&"m11 2H22h2舌&&12H)M0 h10200I20h2 C(`L%12 `_3("L  <8# ȱ X?&G& e&&q&P&0`ŠӠֱ̭ԠŠҬî̠ӠĮʎ1&… )n&Dž )\%T&L()8= ) ͍B B(8`<YYZLYLYLY뿭` 8!@8` R%MNЩUMߩ  L 5   8 0 8  `0 / i  a Y n ɟg   VR6  .X ɛL " e ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ }FELT#> ȏ6 . ) ɟ"     Lb#b#ŠϠĠԠ  m# m# J Qڨ)̰}]! нȱ ̀𩠙Fi/ ƀ"3 """ " iL X\"LY"ίΠ`"""""(#*(% F%Z]eRQ!0SB}RBiBB}`آ <B*IBGF08Lé'+8H <,``h(`@ڍL3hh@ihAiH(ؠȱ@JJJJq@)@pvȱ@Hȱ@Ah@@cpe J) LL LJiB LJ) BxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl(8`ؑ@`M8`8@ؐʈI묂)v8vv L} LةC8`؍)@ i)v8vyJ ^ ؅F Ls) +%J(a ,FإGؐ.` ,JHIH۩ ٰvw`JJJJ;i z묁͖ zٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`vw `ٽJJJJ`H͌hn)NjNjNjN. GH͌ z;٭ *Nۙ۰ڙک `Z8` G# ,`w .w .w .w8۰*Jv٭'ܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍌvw zNمFمG < Ό0 FGL鮁0 ٭w٭vٽ8`H8`  ,v w 8` 1 E8`1ݺ00 ] 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`Ψ` W |G 4A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥GȱHΨ`Ί8AeHI SB60I ٙGٙEFJCʈ h猪`8m0`,0H hi PȽΨhٍ0GF8yאFG  $0 K08`܅I `L܍MN h8D`F` alH)HFȍJHGK $%܍&܍!ܢ8* J8` L ܝ:)I 'ܝ6`B8iNFLGM`B܅IH3H ( )ݰJK 밨C%܈@" T)Ii)܍N*܍A'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` AHO` 'Q'܅IHHOOЍO@`8 ` ͉% ΉQיOʈ@mȱ@_ȱ@iklbJtKuO)5OI0ܢܽ eL'A* 7`aFG (CD Lz܅IN mAIH` pm mI0LM AOHJFKG 0NN` G8`F@ 0 F LK8`6 7I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶67 8܅I m9IHHyHȘI Lܝ` @_@ g@Ю׍O)mJHi 뎁`C8` @)0 3N0" K莭0 ⭪i` ]; 뮁ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNΨ뎎׮Б` L ` @>O)I38 I`aם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA C'KI؍0lhh8` Q)T'P") ɺiL? )?      `l@Hȱ@IױHXATȱH ɯȩ׍̎5H)/@a)_ .0 :A[8@`,`B f-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ  0 HϭߍLпlll IL3FHGI ҭJjHIHB>IؙJJ [: IL}HIHI`JKJK`FHIG ( Ȣ؝}؈JL)eKM`)` J vJ͛ $0 ΊJFȱJL8`GBJ R FإG`BH RFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` zL)J  8"L zH  8 9ؙ` @ P8`K8`B8` H؈OJJJJ>K@J5 z9X(K zXXK تKo`V8`no` C on zI9XX`)HJJJh`OeNeO࿰ z9XАO`@ȭ@` ON `NJKO`H݅G ` } tͬ 밽܅F݅G ` }) t$ L`L뮰HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@BɼH GB`FaG 3%&N    ܮ `J HH hh` 0 @ LJL t_̴Xܝ ݝ0̴ȩFG  0` ܅F`a 밑 LȹL@ȅH@IL,0` G קּ= ]H.m)N 0 F`aO)@LP8` `  zHOCDC h`yٙ٭yٙ٩`LL =@ -ȹP8` i` ;ם0 -B ;)( ȹ`8m8m@8` G8`F Pm)@N8`O)@J -טyרםOO)׍OୱJJJJ Ȣ؝I؈ 6h(8H ; h(8Hh(`ؑ@`@ȱ@ ` B@8ZO h鮁ٍٍٍoHٍn8bhcOJJJJO)O@` %I -m) 0@O)N8` @ ) 9⬂Ȣ؝z@zݚ@ʈLN KIJHȢݚ h魚)Jn 8 δ ؍ ؍ `H8 ع)8` L )߹0 )p )@ ) ȩ ؝H0JK 방 LMJKFG 嬂؍b؍c؝d ؝_ vO) vO )حI͖ z`H@h`h``N8`  H  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . Q#ع؍0 ]讁)`.@+ i ؊ PLKΞʱNLMO MЈMEKݸP%MEKΞL& O, PeNNO N(` C  7 2JvHIwHI؊ LI  ,` A Hv ع Hw ؙ؊ؠIhHIhO`؝}}vIvؐ` hzؽ}؝v h ' h؝zv؈` ` H Rh)N@ 9; L  6$ )bJ ] ) H 6hL )  )حJjIwHIvHNO 8 ؍JL`RΞʱLN1MOMEKP/MEKΞL9L-M O,p莝eNNO(`JNKOL 6/ $P L8 } [ؑJ`L@ȱ@ `@Nȱ@ LL L L 6 $pJ덟 )@።NJOK 6iKKΞΞ IJΟ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L6쬂8Nm) ) )Ю ЪG `F $ ᭔ع+ؠ 6H  Qh8` 䮁ٽ ٬ؠ@` ( H )8`)i п` H h)N$%хhꭋILhH),ex8 (8` ԍ`@Ae Hk00YpmGIJK,-NOPQRSu' @   !"#$Ԡ͠(C)1983-89APPLE` M )ЏL6  9 X [ ?  W" !# n. n'% n% n ɍ+Ɋɋɉɛݮʽ/ L6L[  Mȱ蝀ح o âXoύX1021ʆ ")i/ d+ M# L $0)0ei B = )n  ЭFby 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ӿ``LKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LR` ̭  ( 9 X L $ ` & & & &e`{8i [`0{2H* Ah2  Mȱ  L `κºú` GAB0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKEJپھ pHJh` D!hgtp `tp8nnitpiͱtso8pinii>j?kͷ>pIiͯͷ l - `>i>LG8H933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B;8`W K  黐LK ҟ ҟ l KK`JJJJ8`轌K)` #hhL𚾤3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅3ݷ03پھ p +H־Ǿh۰8L־Jjjj2껽3뻭ɾ)Ⱦ8껰  OLӜ ΤLLX>(F﻽ﻝﻩ`ֻ־ؾپھ׾` bɄ KDEF vLl v lL5 bKɍKL?`  vLl@$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O黩 puȾ ɾ-O c־Jjjj껝2뻝3 `O>0O v PODEF޾ p ޾ p($ذ v (0 ?( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ ?B94 l% bʽ  ՚,S` H H06172839h` v97L75v^a ?/( va?L5LLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b ,S0 @ lLޭBYL 8!9 詍` "  4"/pŠϠŠà͠ӠàԠŠ)+,-./0123456789:;<=JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""I򭭻LLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<?Ek?!>Q>>>Ͳͳ `` \>Ͳ ͳ `e>>?ʹ?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`;=:<:<=;`ͯm;>:8o>oȑ>ppȑ>> :op` DKpn͋ @p;틻=po:S -޻.߻$I2 U)VJ T)`l޻8`a HbIJhjǾȾɾ p٭b=a>m>` im8iŻnjƻkiljoŻi>?Ek?>Q>> L> \/ e>>?ʹ?ޱ>ȥ])Y 񩢍`Ⱦɾ0Ǿ p)ﻩ  v6 A= 9& 98Hh 9` 䱰6Y׾ؾ+پھ p|پɾʾ`HV)jh츾$-#Ͼ p о־޾Ǿ` 8` 8`ɾ)ɾ뻐 ɾɾ0m껐iȾ p pY)`lP c*,N!ǾȾɾʾ pǾ~H ?h8`8`,C ?  8` ȾɾM$ mHƻƻλǾ phϾ pH Lh8`Ͼ* A.TO.D.SRC SERIAL A TO D CONVERTER PROGRAM (Slow version) * VERNIER SOFTWARE * 2920 SW 89TH * PORTLAND, OR 97225 * COPYRIGHT (C) 1991 VERNIER SOFTWARE * THIS PROGRAM READS THE 10 DATA BITS FROM THE ANALOG TO DIGITAL * CONVERTER AND STORES THE RESULT INGE SUBROUTINE# (C(6)(7)256V 2VCVR1023: CONVERT THE COUNTS TO A VOLTAGE| <3:"VOLTS : ";(V100)100;" " F(49152)12830: LOOP UNLESS A KEY IS PRESSED; THIS PROGRAM READS THE ANALOG TO DIGITAL CONVERTER nVR5: SET THE VOLTAGE REFERENCE TO 5 VOLTS (4);"BLOAD A.TO.D.0,A$300": LOAD THE MACHINE LANGUAGE PROGRAM::"SERIAL A TO D CONVERTER PROGRAM" 768: CALL THE MACHINE LANGUALLLLL58ﻀۻ)Iۻ `2Eۻ8`ﻀ ԠŬLL孓`仫6VtCicQĿUKqtVt Nʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~T٩   LiLMTRüϠž(+@ABCDEFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>AIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPENDbzDl e|Ŭ-⭚ݴgaB<{P~VM@@ -!S    !C- !ABELSDFRV@@ !$(19@EȾmɾɾʾiʾ` Lpl8l:/,s̝sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHǾҾ,G 8`׾ؾ  p ۥs׾tؾE` c ( |о(־Ǿ,G 8`_`W)H־Jjjjh2׻3ػ p̭ػ׻ L%Ǿ廎滠 ..8׻ػ 廍⻈ۭ (׻8廪ػ滨mȾ>Ie f`8` cP־ǾҾ,G0C =W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) ŵ 춰5W) )W)@! pZ}ȾȾ󰹩 p` c־hƻλHλλhλ p' L,N HCNh`M`M Nλ 鴐`޾Lp ch־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8`׻⻭ػ㻩仍廍ȾɾʾNfne}ȾȾI忩 pH Lh8`jGMǻоϻM  G1):_2`3蹀3:`V)8`MN;λ ;λ`;Cֻ N8` 1G)̀#:2׻3ػ蹀3:`V)R c޾ƻ,N0MHƻƻоֻ־ǾҾ_` /Ӿ pW) fLC`C Nλ `9V) ` V) c޾ p` c (8` 8`8`(W)`_V)Ij!؍Í`_ PjЭW)`_ Ͼ $06 (LOW) AND $07 (HIGH). * ORG $300 ; THE BASE ADDRESS OF THE PROGRAM DELAY EQU $2 ; DELAY USED TO ALLOW NEW APPLE IIE SW2 LINE REACH THE NECESSARY LEVEL. * BEFORE READING THE DATA BITS IT IS NECESSARY TO: * 1. SET AN3 LOW - TO START THE CONVERSION?ABCV0 :"PRESS ANY KEY TO STOP THE READINGS."Q :"COUNT * 64 VOLTAGE" 34,3: SAVE THE TOP LINES OF SCREEN FROM SCROLLING 768 N(6)256(7): REMEMBER THIS IS THE SUM OF 64 READINGS IN THIS CASE AVRV(N(102364)): EGNCE VOLTAGE2 n(779)64ī130: ALREADY LOADEDq x(13):(4)"BLOAD A.TO.D.AVG.0,A$300": LOAD MACHINE CODE "IS THE REFERENCE VOLTAGE 5.0 VOLTS (Y/N) [Y] " V$ (V$"Y")(V$"y")(V$"")ī180 "ENTER THE REFERENCE VOLTAGE VALUE" R *A.TO.D.AVG PROGRAMe *FROM "CHAOS...",VERNIER SOFTWARE, 2920 SW 89TH, PORTLAND, OR 97225 *COPYRIGHT (C) 1991 VERNIER SOFTWARE(:2"SERIAL A-TO-D CONVERTER PROGRAM <" (64 READINGS AVERAGED)"F dRV5: DEFAULT REFERE,^,\,],\,],\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,_`C BIT $C05D LDX DELAY D6 DEX BNE D6 ASL $C063 ROL A ; READ AND STORE BIT 6 IN REGISTER A BIT $C05C BIT $C05D LDX DELAY D7 DEX BNE D7 ASL $C063 ROL A ; READ AND STORE BIT 7 IN REGISTER A BIT $C05C BIT $C05D LDX DELAY D8 DEX BNE D8 ASL $C063 REGISTER A BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (CLOCK) LDX DELAY D4 DEX BNE D4 ASL $C063 ROL A ; READ AND STORE BIT 4 IN REGISTER A BIT $C05C BIT $C05D LDX DELAY D5 DEX BNE D5 ASL $C063 ROL A ; READ AND STORE BIT 5 IN REGISTER A BIT $C05X BNE D2 ASL $C063 ; MOVE THE SECOND BIT TO THE CARRY FLAG ROL A ; MOVE THE CARRY FLAG INTO REGISTER A STA $07 ; STORE HIGH BYTE BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (CLOCK) LDX DELAY D3 DEX BNE D3 ASL $C063 ROL A ; READ AND STORE BIT 3 INIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (CLOCK) LDX DELAY D1 DEX BNE D1 ASL $C063 ; MOVE THE HIGH BIT FROM SW2 TO CARRY FLAG ROL A ; MOVE CARRY FLAG INTO BIT 0 OF REGISTER A BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (CLOCK) LDX DELAY D2 DEREADY. THEY ARE READ STARTING WITH THE * HIGHEST BIT. THE FIRST TWO BITS (THE TWO HIGHEST) ARE STORED * IN MEMORY AT LOCATION $07. THE LOW 8 BITS ARE STORED AT $06 * THE FULL VALUE IS: PEEK(7) * 256 + PEEK(6). * LDA #$00 ; INITIALIZE REGISTER A TO 0 B * 2. SEND TWO LOW-HIGH PULSES TO THE CLOCK INPUT * BIT $C05E ; AN3 LOW (BEGIN CONVERSION) BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (FIRST CLOCK) BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (SECOND CLOCK) * * THE DATA BITS ARE NOW CALCULATE VOLTAGE G AV(AV100)100: ROUND TO TWO DECIMAL PLACESQ N,AVh (49152)127ī270q 200 34,0:: RESTORE TOP OF SCREEN AND END* SERIAL A TO D CONVERTER PROGRAM (AVERAGES 64 READINGS) * SLOW VERSION; WORKS ON ALL APPLE IIE'S; 10/13/91 * FROM "CHAOS IN THE LABORATORY..." * VERNIER SOFTWARE * 2920 SW 89TH * PORTLAND, OR 97225 * COPYRIGHT (C) 1991 VERNIER SOFTWARE * * THIS PROGRAM RE *OSCILLOSCOPE PROGRAMh *FROM "CHAOS...",VERNIER SOFTWARE, 2920 SW 89TH, PORTLAND, OR 97225 *COPYRIGHT (C) 1991 VERNIER SOFTWARE N START OF THE MAIN PROGRAM"N(4)"PR#0"#N(21): 40-COLUMNS %NBA34304: MACHINE-LANGUAGE SUBROS ; END OF SUBROUTINE DECREMENT THE COUNTER BEQ END ; IF DONE WITH 64 READINGS THEN EXIT JMP START END RTS DELAY NOP ; DELAY TO ALLOW PLATINUM APPLE IIE PB2 LINE TO SETTLE NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RT6 ; ADD THE LOW BYTE TO THE LOW STORAGE LOCATION STA $06 ; AND STORE IT THERE TYA ; TRANSFER Y BACK TO A ADC $07 ; ADD THE HIGH BYTE AND THE CARRY TO THE HIGH STORAGE LOCATION STA $07 ; AND STORE IT THERE BIT $C05F ; AN3 HIGH (END CONVERSION) DEX ; $C063 ROL A ; READ AND STORE BIT 8 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BIT 9 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BIT 10 IN REGISTER A CLC ADC $0IT 5 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BIT 6 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BIT 7 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASLIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BIT 3 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BIT 4 IN REGISTER A BIT $C05C BIT $C05D JSR DELAY ; STALL ASL $C063 ROL A ; READ AND STORE BINTO BIT 0 OF REGISTER A BIT $C05C ; AN2 LOW BIT $C05D ; AN3 HIGH (CLOCK) JSR DELAY ; STALL ASL $C063 ; MOVE THE SECOND BIT TO THE CARRY FLAG ROL A ; MOVE THE CARRY FLAG INTO REGISTER A TAY ; STORE HIGH BYTE IN THE Y REGISTER BIT $C05C BS ARE STORED AT $06 * THE FULL VALUE IS: PEEK(7) * 256 + PEEK(6). * LDA #$00 ; INITIALIZE REGISTER A TO 0 BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (CLOCK) JSR DELAY ; STALL ASL $C063 ; MOVE THE HIGH BIT FROM SW2 TO CARRY FLAG ROL A ; MOVE CARRY FLAG H (FIRST CLOCK) BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGH (SECOND CLOCK) * * THE DATA BITS ARE NOW READY. THEY ARE READ STARTING WITH THE * HIGHEST BIT. THE FIRST TWO BITS (THE TWO HIGHEST) ARE STORED * IN MEMORY AT LOCATION $07. THE LOW 8 BITN * 2. SEND TWO LOW-HIGH PULSES TO THE CLOCK INPUT * LDA #$00 STA $06 STA $07 ; CLEAR THE DATA REGISTERS LDX #64 ; SET LOOP COUNTER TO TAKE 64 READINGS START BIT $C05E ; AN3 LOW (BEGIN CONVERSION) BIT $C05C ; AN2 LOW BIT $C05D ; AN2 HIGHJKLMNADS THE 10 DATA BITS FROM THE ANALOG TO DIGITAL * CONVERTER AND STORES THE RESULT IN $06 (LOW) AND $07 (HIGH). * ORG $300 ; THE BASE ADDRESS OF THE PROGRAM * * BEFORE READING THE DATA BITS IT IS NECESSARY TO: * 1. SET AN3 LOW - TO START THE CONVERSIOUTINE ADDRESS *ND$(4)5 >N:"LOADING FILES..."h HN23000: SET A BUFFER FOR THE MACHINE LANGUAGE RND$;"BLOAD OSC.0,A$8600" \ND$;"BLOAD OSC.DATA,A$8F00" ND$;"BLOAD SCOPE.SCREEN" NGS(49206):GS127Ĺ49206,GS128: NORMAL SPEED GS N40OQRS   ! H!B   QL`TVIQL`ɀ uL(ɀ u` (ɀ tLJ`` t`ɀL L LɛLɍL臩`І ɛɍL`hhL臩X hhhh`L׆q,^,\,],\,],\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,_ LqL `,^,\,],\,],\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,\,]c*,_`HOLDING ` J  pLچQ5 :c" Q) QUIT"hX$=m(X$"Q")(X$"q")EX2:40080`r(X$"N")(X$"n")TR0:40080w(X$"T")(X$"t")ī40000|:"ENTER TRIGGERING VOLTAGE (0-5 VOLTS):";TLTL0TL5ĺ:"VOLTAGE MUST BE 0 TO 5 VOLTS":40060TR1TLTL127"OFF":30060+ bu"ON ";5TL127;" VOLTS"J lu"PRESS TO EXIT";P vue @ SET TRIGGERINGm E: J"A-D CONVERTER OSCILLOSCOPE PROGRAM":: L"SELECT TRIGGERING:" T:" N) NO TRIGGERING" ^" T) TRIGGERING ON A VOLTAGE LEVEL" e DELETE THE BUFFERJ eBU,32:BU1,248:BU2,190: JSR $BEF8 ` eBU3,96: RTSn e"CLOSE"v eBU| e 0u PRINT SCOPE SCREEN TEXT 5u:21 :u"VOLTS/DIVISION = 0.5" Du"SECONDS/DIVISION = 0.005" Nu"TRIGGERING "; XuTR0ĺO BACK TO THE MAIN MENUI NGS(49206):GS128Ĺ49206,GS128: FAST GSh N26000: DELETE THE BUFFERn BO Y CREATE A BUFFER YBU861 YBU,169:BU1,20: LDA #$16 YBU2,32:BU3,245:BU4,190: JSR $BEF5 ZBU5,96: RTS ZBU Z000: SET TRIGGERINGP NBASE3,TR:BASE4,TL: SET TRIGGERING TYPE AND LEVELg NEX2ī20210: END N49232,0:49235,0:49236,0:49239,0: TURN ON THE GRAPHICS SCREEN N30000: PRINT SCOPE SCREEN TEXT NBASE: CALL OSCILLOSCOPE N20140: G`    WYZ[\]^_`abcdefg    ~? @ @      ! B          `@ @     q! B|x          >       ! HB                  ! H!B       @/   |pac' @<|x            @ @" @                 @ @     |pacggG<x            A@ pA`!AC 8A@ @ ~?      ((((((((((((((((((((((((((((((((PPPPPPPPPPPP159=!%)-159="&*.26:>"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048 SWITCH RANGE: ?RANGERANGE1:RANGE2RANGE0: CHANGE THE RANGEBKB1411095: EXIT IF KEY IS PRN> TO EXIT"> "PRESS TO CHANGE LUX RANGE"::E 7j "VOLTAGE ILLUMINANCE" "(VOLTS) (LUX) 10000: SUBROUTINE WHICH ACTUALLY READS THE VOLTAGE 9:1:39)::9:3: CLEAR LINE AND SET CURSOR POSTS THE VIU CHANNEL TO PB2, CHANGE IT TO 0 FOR PB0 OR 1 FOR PB1} GS(49206):GS127Ĺ49206,GS128: NORMAL SPEED GS  ***********************************  READ VOLTAGE  "LIGHT PROGRAM" : 20 "PRESS TO EXIT":"@: T"SELECT MODE:"! hB " D = DISPLAY PRESSURE"o " S = SAVE PRESSURE DATA IN MEMORY" " T = DISPLAY DATA TABLE" " Q = QUIT :M$ (M$"D")(M$"d")İ1000 (M$"S")(M$"s")İ2000(M$"T")(M$"t")TO PB2, CHANGE IT TO 0 FOR PB0 OR 1 FOR PB1Z T(NR),V(NR): ALLOW FOR NR READINGS } RTIO1.00: CORRECTION FACTOR  MENU: ,:: CLEAR SCREEN 149168,0: CLEAR KEYBOARD BUFFER 3I(0): CLEAR MEMORY 6"PRESSURE PROGRAM" G TAKES THE RIGHT AMOUNT OF TIMEw VU$"A"ĺD$;"BLOAD A.TO.D.AVG.0,A$300":180: LOAD SERIAL A.TO.D MACHINE CODE D$;"BLOAD VIU.READ,A$300": LOAD THE MACHINE LANGUAGE FREQUENCY MONITORING ROUTINE CH2- 771,CH: THIS SETS THE VIU CHANNEL LOAD THE MACHINE LANGUAGE AND INITIALIZE VARIABLES.Q nI(0): CLEAR MEMORY NR2000: SET THE NUMBER OF READINGS TO STORE D$(4): CONTROL D (FOR DISK ACCESS)" GS(49206):GS127Ĺ49206,GS128: SET THE GS TO NORMAL SPEED SO EVERYTHINrtuvwxyzAPHING AND PROGRAM MODIFICATIONS[ :"WHICH VOLTAGE INPUT DEVICE":"ARE YOU USING"::w "A - A-TO-D CONVERTER" "V - VOLTAGE MONITOR" (:"[A] ";VU$ *VU$""VU$"A" -VU$"a"VU$"A" /VU$"v"VU$"V" 2VU$"A"VU$"V"ī107 d PRESSURE PROGRAM FROM "CHAOS IN THE LABORATORY AND 13 OTHER SCIENCE PROJECTS", VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225 BY D. VERNIER 6/18/90" 16385: SET VARIABLE MEMORY ABOVE THE FIRST GRAPHICS SCREEN TO ALLOW FOR GRLia/F$xL#X`,a0/,aL:L?,a0 L(,L(,L?L?X`RANGE2LUX50000V: HIGH RANGE (50,000 LUX/VOLT):j'"1": IF NO ENTRY, ASSUME 1 SECOND DELAY TIMEZ TD(Q$): GET VALUE FOR TIME DELAY` "PRESS TO EXIT":*T0:J1: SET DATA LINE #1 AND TIME =0 SEC4"TIME (SEC) PRESSURE"9IT> START OF THE LOOP4R10000: SUBROUTINE WHICH ACTUALLY READS THE VOLTAGE :fKp(T10)10;}z18);(IN100.5)100;: PRINT PRESSURE (49152)1412240: EXIT IF KEY IS PRESSSEDTITDī2130: IF NOT READY TO STORE THEN RE-LOOP IT'FC.409148: FREQUENCY = COUNTS PER TIME INTERVAL (THE COUNT TIME IS .499542 SECONDS)L'VF1000: VOLTAGE = FREQUENCY/1000V'B(VOFFSET)(GAIN.003125)`' FOR TESLA B=(V-OFFSET)/(GAIN*31.25)j'NO KEY HIT THEN RELOOPP GGS(49206):GS128Ĺ49206,GS128: FAST SPEED GSV Lt ' READ VOLTS $'768: READ COUNTS .'C(6)(7)256 3'VU$"A"VC5102364:10070: IF USING SERIAL A TO D THEN USE A DIFFERENT CALCULATION^BMAGNET PROGRAM"5 10000: GET B (MAGNETIC FIELD)> 5:o "POTENTIAL (VOLTS) : ";(V100)100;" " "MAGNETIC FIELD (GAUSS) : ";(B10)10;" " "MAGNETIC FIELD (TESLA) : ";(B10)100000;" " KB(49152):KB1281020: IF NCY MONITORING ROUTINE! CH2x 771,CH: THIS SETS THE VIU CHANNEL TO PB2, CHANGE IT TO 0 FOR PB0 OR 1 FOR PB1  ***********************************  MAIN PROGRAM GS(49206):GS127Ĺ49206,GS128: NORMAL SPEED GS : "ULD BE CHANGED IF YOU CHANGE RESISTORST D$(4): CONTROL D (FOR DISK ACCESS) VU$"A"ĺD$;"BLOAD A.TO.D.AVG.0,A$300":1000: LOAD THE A TO D ROUTINE AND GO TO THE MAIN PROGRAM D$;"BLOAD VIU.READ,A$300": LOAD THE MACHINE LANGUAGE FREQUE{}~A - A-TO-D CONVERTER"2 "V - VOLTAGE MONITOR"D (:"[A] ";VU$\ *VU$""VU$"A":50q -VU$"a"VU$"A" /VU$"v"VU$"V" 2VU$"A"VU$"V"ī10 d THIS PART LOADS THE MACHINE LANGUAGE AND INITIALIZES VARIABLES( nGAIN10: THIS LINE SHO MAGNETIC FIELD PROGRAM FROM "CHAOS IN THA LABORATORY AND 13 OTHER SCIENCE PROJECTS", VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225 BY D. VERNIER 6/18/90 :"WHICH VOLTAGE INPUT DEVICE":"ARE YOU USING"::OFFSET2 "OR j'TO-D THEN USE A DIFFERENT CALCULATIONB'FC.409148: FREQUENCY = COUNTS PER TIME INTERVAL (THE COUNT TIME IS .499542 SECONDS)L'VF1000: VOLTAGE = FREQUENCY/1000Q'TT.60V'IN25V.524: INCH OF HG.`'ININRTIO: CORRECTION FACT (IN OF HG)" J1N4(T(J)10)10,L(V(J)100.5)100S,Jxh"PRESS TO CONTINUE";Q$~$' READ THE SENSOR $'768: READ COUNTS.'C(6)256(7)'8'VU$"A"VC5102364:TT.166:10070: IF USING SERIAL A-110: LOOP AGAINGNJ1: REMEMBER NUMBER OF DATA LINES SAVEDMz *********************************** 20);(IN100.5)100: PRINT PRESSURE DISPLAY TABLE OF VOLTAGE VS TIME" TIME PRESSURE""(SEC.) : RESET I8T(J)T:V(J)IN: SAVE DATA IN ARRAYSQJJ1: INCREMENT JTT.03: IF STORING, INCREMENT TIME A LITTLE MOREJNRĺ:"DATA COLLECTED":"PRESS TO CONTINUE";Q$:2240: ONLY STORE NR READINGS " <- SAVED";2  BATTERY CHARGER PROGRAM FROM "CHAOS IN THE LABORATORY AND 13 OTHER SCIENCE PROJECTS", VERNIER SOFTWARE, 2920 S.W. 89TH, PORTLAND, OR 97225 BY D. VERNIER 6/18/90G (104)64Ĺ16384,0:104,64:(4)"RUN BATTERY": THIS SETS THINGS ;: PRINT TIMEQz12);(V1000.5)1000;23);S$;: PRINT VOLTAGE AND STATUS (49152)1272240: EXIT IF ANY KEY IS PRESSED 49168,0: CLEAR KEYBOARD BUFFERV1.2ĭT10T1T: NOTE TIME AT WHICH V DROPS BELOW 1.2GV.0: INITIALIZE>I1TD:HTT1: INCREMENT TIMEzR10000: SUBROUTINE WHICH ACTUALLY READS THE VOLTAGE ST1V1V: NOTE STARTING VOLTAGEWV1.62150: SKIP PT.\J15,159V100: PLOT A POINT fp(T60100)100NG": INITAL STATUS%B(20000: SET UP GRAPH BACKGROUNDH*P/211T1$" 0 5 10 15 20"2T1$3T2$" TIME (H)"4T2$6"TIME (M) VOLTAGE"934,23;T0:T10:T20:T30:T30:T40:JCM$"F"S$"FAST CHARGE":49240,0:49243,0: FAST CHARGEc300: REPEAT MAIN MENU  *********************************** AUTOMATIC  TD300: MOVE OVER ONE PIXEL EVERY 5 MINUTES49241,0:49242,0:S$"DISCHARGIPRINT GRAPHtM$"G"Ĺ49232,0:49235,0:49239,0:21:T1$:T2$::Q$: DISPLAY HI-RES GRAPHICS SCREENM$"Q"ĀM$"C"S$"SLOW CHARGE":49240,0:49242,0: SLOW CHARGEM$"D"S$"DISCHARGE":49241,0:49242,0: DISCHARGE "P - PRINT GRAPH"'"Q - QUIT"1:M$eM$""400: DON'T ALLOW ERROR ON THE NEXT LINE((M$)97)((M$)122)M$((M$)32): MAKE IT UPPERCASEM$"V"İ3000: CHECK VOLTAGEM$"L"İ4000M$"A"İ2000 M$"P"İ5000: TATUS: ";S$!T"SELECT MODE:"'h@"V - CHECK VOLTAGE"U"L - LOAD TEST""A - AUTOMATIC (DISCHARGE, THEN CHARGE)""G - DISPLAY PREVIOUS GRAPH""C - SET FOR SLOW CHARGE""D - SET FOR DISCHARGE""F - SET FOR FAST CHARGE": S$"SLOW CHARGE":49240,0:49242,0: SLOW CHARGEH  MENU:c ,:: CLEAR SCREEN 149168,0: CLEAR KEYBOARD BUFFER 3T0: INITIALIZE TIME 6"SMART BATTERY CHARGER PROGRAM" @" VERNIER SOFTWARE" E:14);"CURRENT SMP PROGRAMf D$;"BLOAD VIU.READ,A$300": LOAD THE MACHINE LANGUAGE FREQUENCY MONITORING ROUTINEo CH2 771,CH: THIS SETS THE VIU CHANNEL TO PB2, CHANGE IT TO 0 FOR PB0 OR 1 FOR PB1 GS(49206):GS127Ĺ49206,GS128: NORMAL SPEED GS INE LANGUAGE AND INITIALIZES VARIABLEST D$(4): CONTROL D (FOR DISK ACCESS) VU$"A"ĺD$;"BLOAD A.TO.D.AVG.0,A$300":170: LOAD THE A TO D ROUTINE AND GO TO THE MAIN PROGRAM D$"BLOAD IM.HIRES.1C00.0,A$1C00": LOAD IMAGWRITER PRINTER DUIIGS/IIE)D :"WHICH VOLTAGE INPUT DEVICE":"ARE YOU USING"::` "A - A-TO-D CONVERTER"{ "V - VOLTAGE MONITOR" (:"[A] ";VU$ *(VU$"")(VU$"a")VU$"A" ,(VU$"v")VU$"V" 2(VU$"A")(VU$"V")ī10( d THIS PART LOADS THE MACHSO THAT BASIC START IS AT $4000--ALLOWING US TO HAVE A BIGGER PROGRAM  !!! WHEN YOU CHANGE THIS PROGRAM YOU MUST SAVE IT WITH THE NAME 'BATTERY' CHANGES MADE, BUT NOT SAVED WILL NOT WORK. SEE STEP ABOVE!!! (4)"PR#0" (21): 40 COLUMNS (ON 2Ĺ49240,0:49243,0:S$"FAST CHARGE":T2T: BEGIN CHARGING V1.4ĭT30T3T: NOTE TIME OF FIRST REACHING 1.4 V V1.5T15000Ĺ49242,0:S$"SLOW CHARGE":T40T4T: SWITCH TO SLOW CHARGE AND NOTE TIMEI JJ1: INCREMENT J(J2652110: LOOP AGAINS34,0: RESTORE NORMAL TEXT WINDOW[: 49168,0: CLEAR KEYBOARD BUFFER8 :"STATISTICS ON BATTERY:` :"DISCHARGE:" "START AT V = ";V1  "TIME TO DISCHARGE TO 1.2 V = ";(T13600100)1F A VOLTO$V'JJ1170:JJ: DELAY SO THAT EACH READING TAKES ABOUT 1 SECOND$['VU$"A"āJJ1270:JJ: EXTRA DELAY IF A-TO-D CONVERTER$j'$ N DRAW BACKGROUND OF GRAPH$*N3: COLOR $NYY015010:16,159YY:YY: VERTICAL TICKMARKS A% IF USING SERIAL A TO D THEN USE A DIFFERENT CALCULATION#B'FC.409148: FREQUENCY = COUNTS PER TIME INTERVAL (THE COUNT TIME IS .499542 SECONDS)#L'VF1000: VOLTAGE = FREQUENCY/1000 $Q'V(V1000.5)100: ROUND VOLTAGE TO THE HUNDRETH O (SMALL) K"SZ3ĺ(9)"10H": PKASO/U DUMP (LARGE) m"PF2ĺ(12): FORM FEED":D$;"PR#0": PRINTER OFF""' READ VOLTS "$'768: READ COUNTS".'C(6)(7)256<#3'VU$"A"VC5102364:10070: USED)P!PF2ĺD$;"PR#";PR:(12):D$;"PR#0": IMAGEWRITER FORM FEED Z!5340{!D$;"PR#"PR: PRINTER ON!PT2ĺ(9)"GE";:SZ3ĺ"DR":5320: GRAPPLER+ DUMP!PT2ĺ:5320: SKIP IF GRAPPLER+"SZ1ĺ(9)"H": PKASO/U DUMPMAT4 ZSZ3:PF1PF3SZ1: SET GRAPH SIZE] d17:958::"NOW PRINTING GRAPH..." nPT15270: NOT IMAGEWRITER!xQ(8):7168,PR,SZ:8,Q: IMAGEWRITER DUMP (ALSO SAVE AND RESTORE $08 MEMORY LOCATION WHICH INDICATES WHETHER /RAM IS TO BE "SELECT PRINTOUT FORMAT:"D"1 = SMALL GRAPH - NO FORM FEED"j"2 = LARGE GRAPH - NO FORM FEED"("3 = SMALL GRAPH FOLLOWED BY FORM FEED"2"4 = LARGE GRAPH FOLLOWED BY FORM FEED"<:"[1] ";Q$ PPF(Q$):Q$""PF1: SET PRINTOUT FORER""P = PKASO/U"'"[I] ";Q$KQ$"I"Q$""Q$"i"PT1:5080iQ$"G"Q$"g"PT2:5080Q$"P"Q$"p"PT3:50805050: BAD ENTRY15::"ENTER SLOT NUMBER FOR PRINTER:";Q$PR(Q$)PR1PR75340: BAD ENTRYOOP AGAIN734,0: RESTORE NORMAL TEXT WINDOW?:f49168,0: CLEAR KEYBOARD BUFFERlrHp *********************************** DUMP SCREEN GRAPH:"SELECT PRINTER TYPE:":"I = IMAGEWRITER""G = GRAPPLT A POINT 67@(T60100)100;: PRINT TIMEtJ12);(V1000)1000;28);S$;: PRINT VOLTAGE AND STATUST(49152)1274240: EXIT Z49168,0: CLEAR KEYBOARD BUFFERIJJ1: INCREMENT J J2654110: LME (M) VOLTAGE" 34,23C J0: INITIALIZE HORZ. POSITIONOI1TDlTT1: INCREMENT TIME"10000: SUBROUTINE WHICH ACTUALLY READS THE VOLTAGE 'V1.64150: SKIP POINTS WHICH WOULD BE OFF ,J15,159V100: PLO ONE PIXEL EVERY MINUTE W49241,0:49242,0:S$"DISCHARGING": INITAL STATUS]20000: SET UP GRAPH BACKGROUND21T1$" 0 1 2 3 4"T1$T2$" TIME (H)"T2$"TINTING= (V1000.5)1000;" ": PRINT VOLTAGE| (49152)1283050: RELOOP UNLESS A KEY IS PRESSED  "PRESS TO CONTINUE";Q$< *************** LOAD TEST TD60: MOVE OVER  ***********************************3 S DISPLAY VOLTAGE Y f 28);S$ (22):"PRESS TO EXIT" (3):"VOLTAGE" 10000: SUBROUTINE WHICH ACTUALLY READS THE VOLTAGE (4): SET VERTICAL POSITION FOR PRI00;" HR"H "TIME TO DISCHARGE TO 0.2 V = ";(T23600100)100;" HR"X :"CHARGE: "TIME TO CHARGE TO 1.4 V = ";(T33600100)100;" HR" "TIME TO CHARGE TO 1.5 V = ";(T43600100)100;" HR"( P "PRESS TO CONTINUE ";Q$x -NYY5015050:17,159YY19,159YY:YY: MAJOR TICKMARKS %NXX1526512:XX,158:XX: HORIZONTAL TIC KMARKS %NXX1527960:XX,159XX,157:XX: MAJOR TICKMARKS P&N15,0279,0279,15915,15915,0: DRAW BOX AROUND GRAPH &O1,1071,110:2,1113,111:4,1104,107:3,1062,106: DRAW 0&O6,111: DRAW .&O9,10611,106:9,1079,108:10,108:11,10911,111:9,11110,111: DRAW 5)'LO2, * MOTOR TEST PROGRAMd * FROM "CHAOS...", VERNIER SOFTWARE, 2920 SW 89TH, PORT, OR 97225 * PROGRAM WRITTEN BY ROGER BACON * COPYRIGHT (C) 1991 VERNIER SOFTWAREZNQ10:S$"M":S20: DEFAULT CHOICES 3 nA49240:B492449240,0: LOW/B49245,0: CLOCK HIGHKL49244,1: CLOCK LOWRVLn`49242,0: CONTROL SETt D B(L)0: THIS DIGIT IS A "0" k NN(NV)V: CALCULATE REMAINDERr Lx   SET DIGITAL LINES:  PRELIMINARY STUFF L701 $49243,1: CONTROL RESET .B(L)1Ĺ49241,0: HIGH8B(L)0Ĺ:J: END OF COUNTING LOOP: x100: REPEAT PROGRAM@ n B$"": INITIALIZE BINARY NOTATION STRING| L701 V2L B(NV): DIVIDE TO SEE IF THE DIGIT SHOULD BE A '1' B1B(L)1:440: THIS DIGIT IS A "1" R INPUT jNJu n400: CALCULATE THE BINARY NOTATION FORM OF THE NUMBER p1000: TURN ON THE APPROPRIATE LINES q:"OUTPUT - DECIMAL: ";J r" BINARY: "; sL701:B(L);:L t: uFLAGR A NUMBER (0 TO 255)":"ENTER 256 TO START A COUNTING SEQUENCE"f e"TYPE '-1' TO QUIT":J:J1Ā fFLAG0: INITIALIZE A FLAG WHICH WOULD INDICATE COUNTING IS DESIRED gJ256FLAG1 hFLAGāJ0255: START COUNTING LOOP iJ256100: IMPROPELOG CONVERTER BY A "ENTERING A NUMBER BETWEEN 0 AND 255. m ""YOU CAN ALSO ENTER 256 TO HAVE THE $"PROGRAM CYCLE THROUGH ALL POSSIBLE &"VALUES. ENTER -1 TO QUIT. : <" PRESS TO CONTINUE ";Q$ PB d"ENTE * D.TO.A PROGRAMd * FROM "CHAOS...", VERNIER SOFTWARE, 2920 SW 89TH, PORTLAND, OR 97225 * COPYRIGHT (C) 1991 VERNIER SOFTWARE :" D-TO-A PROGRAM"THIS PROGRAM ALLOWS YOU TO CONTROL  "THE DIGITAL-TO-ANA1,911,11:9,1110,11: DRAW 5p(P6,1556,158:7,1598,159:9,1589,155:8,1547,154: DRAW 0v(Q562,61:1,57:1,613,61: DRAW 1='QO6,61: DRAW .'VO8,578,60:9,6110,61:11,6011,57:10,569,56: DRAW 0'O2,62,11:1,7:1,113,11: DRAW 1'O6,11: DRAW .'O0,305,4010,30: DRAW V&(O9,611,6:9,79,8:10,8:11:C49242:D49243:E49244:F49245:G49246:H49247K xA,0:C,0:E,0:G,0i :"MOTOR.TEST PROGRAM": "NOTE: VALUES IN [ ] ARE DEFAULTS.":& "ENTER NUMBER OF STEPS":"USE POSITIVE # FOR CLOCKWISE ROTATION":"NEGATIVE NUMBER FOR COUNTERCLOCKWISE"ECTION CONTROL).?D21ĹH,1: AN3 (DIRECTION CONTROL).Y:"STEPS REMAINING:"u"MOTOR #1 MOTOR #2"{N1,N2N11ī260: IF ALL STEPS FOR MOTOR 1 ARE COMPLETEDN1N11: DECREMENT NUMBER OF STEPS LEFT FOR MOTOR 1B,1: W "DO YOU WANT FAST (F), MEDIUM (M), OR SLOW (S) ROTATION? [";S$;"] ";_ Q$ Q$""180: IF NO ENTRY, LEAVE SPEED UNCHANGED S$Q$: REASSIGN VALUE S$"F"S1 S$"M"S20 S$"S"S100D11ĹD,1: AN1 (DIROTATION":"NEGATIVE NUMBER FOR COUNTERCLOCKWISE":"OR Q TO QUIT";:" [";Q2;"] ";:Q2$x Q2$"Q"350: EXIT Q2$""159: REPEAT LAST RUN Q2(Q2$): ASSIGN NEW VALUE D2(Q2):N2(Q2): DIRECTION AND # OF STEPS";Q1;"] ";:Q1$0 Q1$"Q"350: EXITY Q1$""149: REPEAT LAST RUN Q1(Q1$): ASSIGN NEW VALUE D1(Q1):N1(Q1): DIRECTION AND # OF STEPSX :"ENTER NUMBER OF STEPS FOR MOTOR #2":"USE POSITIVE # FOR CLOCKWISE R43:E49244:F49245:G49246:H49247< xA,0:C,0:E,0:G,0B }o "NOTE: THE VALUES IN [ ] ARE DEFAULTS." :"ENTER NUMBER OF STEPS FOR MOTOR #1":"USE POSITIVE # FOR CLOCKWISE ROTATION":"NEGATIVE NUMBER FOR COUNTERCLOCKWISE":"OR Q TO QUIT ";:"[TS THE DIRECTION FOR THAT MOTOR.  AN2 IS USED FOR THE STEP INPUT TO MOTOR #2 AND AN3 SETS THE DIRECTION FOR THAT MOTOR.  ROGER BACON  P"TWO.MOTORS PROGRAM" ZQ110:Q210:S$"M":S20: DEFAULT CHOICES$ nA49240:B49241:C49242:D492 *TWO.MOTORSP *FROM "CHAOS...", VERNIER SOFTWARE, PORTLAND, OR 97225j *COPYRIGHT (C) 1991 THIS PROGRAM WILL CONTROL TWO STEPPER MOTORS. UNIPOLAR OR BIPOLAR MOTORS CAN BE USED.$ AN0 IS USED FOR THE STEP INPUT TO MOTOR #1 AND AN1 SEJ1S:: DELAY TO SLOW THE MOTORA A,0: AN0 (STEP-OFF)W J1S:: DELAY^ Iq ^120: LOOPw  ""180: USE SAME SPEED AS LAST TIMEC S$Q$: REASSIGN VALUEZ S$"F"S$"f"S1r S$"M"S$"m"S20 S$"S"S$"s"S100 DIR1ĹD,1: FOR COUNTERCLOCKWISE ROTATION :"STEP #:" I1N I B,1: AN0 (STEP-ON)& :"OR Q TO QUIT";:" [";NQ;"]";:N$D N$"Q"N$"q"400: QUITh N$""161: REPEAT LAST RUN u NQ(N$) N(NQ):DIR(NQ): REASSIGN VALUES :"DO YOU WANT FAST (F), MEDIUM (M), OR SLOW (S) ROTATION? [";S$;"] "; Q$( Q$ AN0 (STEP-ON)8J1S:: DELAY TO SLOW THE MOTORRA,0: AN0 (STEP-OFF)gJ1S:: DELAYN21ī320: IF ALL STEPS FOR MOTOR 2 ARE COMPLETEDN2N21: DECREMENT NUMBER OF STEPS LEFT FOR MOTOR 2F,1: AN2 (STEP-ON)"J1S:: DELAY#,E,0: AN2 (STEP-OFF)86J1S:: DELAYs@N11N21120: ALL STEPS ARE COMPLETED, START OVER J200: LOOP AGAIN FOR ANOTHER STEP^: END OF PROGRAM DECREMENT THE COUNTER BEQ END ; IF DONE WITH 64 READINGS THEN EXIT JMP START END RTS DELAY NOP ; DELAY TO ALLOW PLATINUM APPLE IIE PB2 LINE TO SETTLE NOP NOP NOP NOP NOP NOP NOP NOP NOP RTS ; END OF SUBROUTINE A $06 ; STORE THE LOW BYTE BIT $C05F ; AN3 HIGH (END CONVERSION) END RTS ROL A ; READ AND STORE BIT 8 IN REGISTER A BIT $C05C BIT $C05D LDX DELAY D9 DEX BNE D9 ASL $C063 ROL A ; READ AND STORE BIT 9 IN REGISTER A BIT $C05C BIT $C05D LDX DELAY D10 DEX BNE D10 ASL $C063 ROL A ; READ AND STORE BIT 10 IN REGISTER A ST@,^,\,],\,],\,] c*,\,] c*,\,] c*,\,] c*,\,] c*,\,] c*,\,] c*,\,] c*,\,] c*,\,] c*ee,_L`` LhLLɾ 46` ` !!""##( (!!(""(##P P!!P""P## )D ) ) )JJJJ)  `l)` ) 8  ) 1 )Z ) )` "ȱXȱ0`I)p2h`h4 ,ȱH% `HI)ph`hh` LHLSi0LLS,LL0L(L_,0   )F ) 8i   )G ) L_   . 8  $ .  `    ) L`  *  . .  0 ` )A ) ) )LL  ; )> )jjj) ) )n ) )T )1 )6 )ϩυ +,i$%f$fʊ iL$pI, )LL$, ) I $0Lc,0L8LL_ ) )