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_" %k"l" (#M8( % ) L*"m"n" (_7, )7(P0 ( @X p 8  u"!_"f"0 ~&f"0 %o"p" (,) &q"r" ( %L*")0I0hx H( ++HEX.DECIMAL5 ('ROUNDER!1 &BINARY @/*CALCULATOR'!$WERRTTUI6  7 EWTEWTREWTRETR7  7 (WL. !+ (PART.TWO ! INPUT.800.OBJ(!m /IM.HIRES.1C00.0[(!6$FONT(!$ NOISE.0?(! %NOISE;(! VA&' &PRODOS }<(!Ͱ,BASIC.SYSTEM(((!+'STARTUP= 7 !3 'VA.LOGOE (! ) RAM.LOADERUT(! (PART.ONEW? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R %Щ ߩu"L! )L! 8'  )ɀ)4,- U JNT) u"Ls"t" ( !` ^"M)Fi/ b"3   !"#$%&آ <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 `BYYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^&  VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8 ) ɘ"    L:#:#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\ h"i"j" e" iL X>"L;"ίΠ`v""""""*$ Fk%YeQP!/RB}QBiBB}\ }FEL,#> ȏ6 .hh@ihAiH(ؠȱ@JJJJq@)@vvȱ@Hȱ@Ah@@cve J) LL LJiB LJ) JxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl`B l-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ(     0 HϭߍLпlJHIH IL;FHGI ҭJjHIHB>IؙJJ c: QLHIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J }J͢ $0 ΑJFJL8`JG ް(`(8`ؑ@`M8`8@ؐʈI묉)}8}} L LةC8`؍)@ i)}8}yJ ^ ؅F L{) +%J(a 6FإGؐ.` 6}۩ ٰ}~`JJJJ;i 묈͝ ٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C` }~ `ٽJJJJ`H͓hn) NjNjNjN. OH͓ ;٭ *Nۙ۰ڙک `Z8` O# 4`~ .~ .~ .~8۰*JF٥G٭'ܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍓ}~ NمFمG < Γ0 FGL鮈0 ٭~٭}ٽ8`H8`  ,} ~ 8 S01 E8`100 e 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`ί` W G I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶=> ?܅I m@IHHyHȘI Lܝ` @f@ n@Ю׍V)؍0JHi 뎈`C8` @ 3N@) S莴 ⭱i`0 e; 뮈ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّN@`,뎕׮Б` L ` @>V)I38 Pghם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA I'KIlllhh8` Qu")T'P() ɺiLG )?      `l@Hȱ@IױHXATȱH ɯȩ׍̕5H)/@a)_ .0 :A[8BJ \ FإG`BH \FإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` L3J  B"L H  B 9ؙ` @ P8`K8`B8` O؈VJJJJحt) ) )Ю ЪGgF $ ᭔ع+ؠ >H  Wh8` 䮈ٽ ٬ؠ@` ( O )8`)i п`  H hхhꭋILhH),kx8 (8` ԍ`@Ae Or88`zw! NIJK,-NOPQRSu' Bɼ>K@J5 9X(K XXK تKo`V8`no` I on I9XX`) HJJJh`OeNeO࿰ 9XАO`@ȭ@` ON fNJKO`H݅G ` wͬ 밽܅F݅G ` * w% L`L뮷HH &hFhG܍ݍ 8 `FHGH & hGhF`ݹܙ݊`@OEgFhG 6%&N   & ܮ `J HH hh` 0 @ LLL w`̻Yܝ ݝ0̻ȩFG   0` ܅F׍Vgh 밑 %LȹL@ȅH@IL,0` G פֿ= eH.t)N 0 PghV)@LP8` a᮷ &֩VJKJ L䬈yٙ٭yٙ٩`K 8` @LL =@ 4ȹP8` %i` Bם0 4B B)( ȹ`8m8m@8` G8`F Pt)@N8`V)@J 4טyרםVV))ꭸJJJJ Ȣ؝I؈ >h(8H E h(8Hh(`ؑ@`@ȱ@ ` B@8ZV p鮈ٍٍٍvHٍu8ihjVJJJJV)V@` %I -t) 0@V)N ) C⬉Ȣ؝@ݡ@ʈLO KIJHȢݡ)Jn 8 λ ؍ ؍ aH8 ع؉i 8` L )߹0 )p )@ ) ȩ ؝O0QR 방 STQRFG 嬉؍i؍j؝k ؝f }V) }V )حP͝ `H@h`h``N8` IhHIhH  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . W#ع؍0 e讈)`.@+ HI}H؊  PLKΥʱNLMO MЈMEKݸP%MEKΥL0 O, PeNNO O(` C  7 #2J}HI~HI؊ LQ  6` #A H} ع H~ ؙ؊`@Nȱ@O`؝}}I}ؐ` rؽ؝} r 1 r؝}؈` ` H  \h)N@ C; L  >$ )bJ e ) H @hL ) # )حJjI~@L>쬉8NNO 8 ؍JL`RΥʱLN1MOMEKP/MEKΥLCL-M O,p莤eNNO(`JNKOL >/  .P L8 cؑJ`L@ȱ@ )N$% LL L L >  .pJ덦 )@፩NJOK >iKKΥΥ IJΦ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@   !"#$Ԡ͠ˠ(C)1983-87APPLELKL`BL Lެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LZLG 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` " l CHAIN BACK TO PART.ONE? nD$"FRE": CLEAR STRINGSL q41859,3 v(8)1ĺD$"CHAIN /RAM/PART.ONE,@2460": CHAIN PART.ONE IN / RAM :12:"LOADING MAIN PART OF PROGRAM..." D$"CHAIN ";PS$;"PART.ONE,@2460"   FIRST RUN SE1:SEZZSENS= bQ21Q10Q32SESE1:SENS1SE1L dYUOS:XLt f(L$(OS))2ĺL$(OS)"- "S$(OS):362 hL$(OS)" - "S$(OS) j330 l ACCEPT A LETTER pQ$(13)376: RETURN PRESSED rQ1NS:Q$L$(Q)SEQ tQ v356 x JYUSE LXL::L$(SE);L N(L$(SE))2ĝ:"- ";::S$(SE);::338g P:" - ";::S$(SE);:q ROSSEy TQ$ VQ(Q$) XQ96QQ32:Q$(Q): LOWER CASE INPUT ZQ27SEZZ:376: EXIT \Q13ī376 ^Q32ī364 `Q8Q11SE<>?@ABC0SENSSE1 2SEZZSE16 4NSYU19NS19YUB 6Q1NSK 8XL4U :QYU~ <(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 " 20007 VECTOR ADDITION III PROGRAM GREETINGSL COPYRIGHT 1988e VERSION: 8/22/88| VERNIER SOFTWARE( 2920 S.W. 89TH ST.2 PORTLAND, OREGON 972257 (503) 297-5317, MENU.YU18YU18: UPPER LINE USED BY MENU LLwLLL) `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̺(21);: SWITCH TO 40 COLUMNS0 (4)"PR#0"g GS(49206):GS128Ĺ49206,GS128: SET GS TO FAST :49234,0: DISPLAY PAGE ONE FULL SCREEN 768,32:769,248:770,190:771,96:768: RELEASE MEMORY BUFFERS (49048)176Ĺ8,1:2090: INDICATES A 128 K MACHINE k(49048)128Ĺ8,2:2090: FLAG TO INDICATE THE COMPUTER IS A II PLUS 8,0: UNLESS 128 K COMPUTER OR IIPLUS*I09:ZZ:768I,ZZ:I: ONERR BUG FIX (SEE APPLE PRODOS PROGRAMMING MANUAL)4 104,168,104,166,2@L@C@a00xx@ pp@p@?@@ `LC @`{pp@@@ F@ p@AxDDFGHIJKLMNOPQRSTOs?~~~@0`x?@`@?xxf pp ~C?`< 0@\**U*U*U*U*U@@@?@| xx pCA`@?|q @H@@C@a000@ STROBE- YU9:SE1:NS2:300:SE062999J* TVSE: SET MONITOR TYPEh4 1900: CHAIN TO PART.ONE:216,0:D$;"CLOSE":768,32:769,248:770,190:771,96:768:: RESET POINTERS, RELEASE BUFFERS AND END----------------------") D$"PREFIX"G PF$: GET PREFIX OF DISKe PS$PF$: REMEMBER PREFIX :10)"VECTOR ADDITION III" 7:"SELECT TYPE OF MONITOR BEING USED:" L$(1)"M":S$(1)"MONOCHROME" L$(2)"C":S$(2)"COLOR"  KP,0: CLEARDEFAULT VECTOR UNITS) PI3.141592654E WW2: HI-RES LETTERSp KP49168:KC49152: KEYBOARD ADDRESSES HH.5:TT10: CONSTANT USED TO SPEED UP OPERATION QM$(34): QUOTATION MARK PN$"PRESS TO CONTINUE":DA$"-----------------UTINEX MA18:b MA(MA1),AN(MA1),XC(MA1),YC(MA1)Rl S$(10),L$(10),N(4)v N(0)0:N(1)999: INITIALIZE SERIES MARKERS TV1:AU1:VU$"DEGREES":AS0:SO1:LT1: SET DEFAULTS RO3:DE1000:RD$"S": SET DEFAULTS UN$"UNITS": UFFER=& 232,0:233,21: SET SHAPETABLE POINTERS TO $1500g0 1: DRAW ALL SHAPES AT SMALLEST SIZE: D$"BLOAD IM.HIRES.1C00.0": IMAGEWRITER SCREEN DUMP ROUTINED D$"BLOAD FONT,A$1500": HI-RES FONTN D$"BLOAD NOISE.0,A$30A": NOISE MAKING RO::12:(8)1ĺ8)"PROGRAM LOADED INTO /RAM"W :8)"LOADING NECESSARY FILES..." D$"BLOAD INPUT.800.OBJ,A$800": MACHINE-LANGUAGE INPUT ROUTINE RE2048:READ ENTRY ENTRY POINT SBRE256: INPUT STATUS BUFFER DB2048512: DEFAULT B23,154,72,152,72,96/>(4);"BLOAD VA.LOGO"KH16384,0:103,1:104,64R(8)1ĺ(4);"EXEC RAM.LOADER":: LOAD BASIC INTO /RAM IF 128 K\(4);"RUN STARTUP,@3000": RELOAD STARTUP INITIALIZE PROGRAM D$(4): PRODOS ATTENTION0 @@`@A@?x|v xx ~CA`~ 0@xj*U*U*U*U*U@ x pp `A?`@?|q |@ p@A@D0@saa@CCC@a0` 0@BBw@CC@a00 @`@`` @?|q @|pp@@@ a $`  @@ @ @`@aa` |   @a@a@ 0@|w@ACC0@xx?@BBCC@a0x?@`@`@ @?|q |pp@@@AAC0 `pp|@ @@aaa @ @`@a@a`     @a@aA 0@~@~~@CC0xx?@"FCC@a0x?@ pp@p@@#$ ppp~@ @ @<p@@`@a@a`     @a@aC 0@`?*U*U*U*U*U@@"D~AC@a00xx@ ?pp@p@@@ &$ 0@?xpp@@p  @ @`@a`` |   @a@a@ 0@@ @Mx<< `pxp|@C@VXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}G IF ZERO. nRD$"D"136: ROUND DECIMAL7 pPW1E tNU1128t xNUPWPWPWTT:120: FOR NUMBERS <= 1 } |132 NUPWTTPWPWTT:128: FOR NUMBERS>1 FCTTPWDE NU(NUFCHH)FC: ROUGH ROUNDING, EITHER STYLE NU$(NU): VECTOR ADDITION III4 COPYRIGHT 1988M VERSION: 8/22/88f VERNIER SOFTWARE}- (503) 297-53172 PART.ONEc ROUNDINGdSN$" ": SIGN STRINGhNUZZSN$"-":NU(NU): IF NEGATIVE lNUZZ140: SKIP ROUNDINLOAD PART.TWO SAVE /RAM/PART.TWO LOAD PART.ONE SAVE /RAM/PART.ONE RUN STARTUP,@3000  @pqpp@@@` p@ADD xgp~p?@s@  @ p@3```     @a@a@ 0@ @ x@@C@a000@H`wA00x?@`@`  0@ @x`pp@@@d@@C  @CDDaca pGp|p~@c@@  @ 8@@a```     @a@a@ 0@`w@`@CC@a000@Nr@CCC@a00@`@`0 0@  @<@|pp@@@ @0 $@  TURN INTO STRINGG CE1(NU$): GO THROUGH STRING TO FIND "E"x (NU$,CE,1)"E"Ă: POSITION OF "E" = CE CD1CE1: GO THROUGH STRING TO FIND "." (NU$,CD,1)"."Ă: POSITION OF "." = CD. NE$(NU$,CE):NM$(NU$,CE1): BRE PLOT POINTpCO3ēXT1,YTXE1,YEXI1,YIXJ1,YJXE1,YE: MOVE OVER AND PLOT TO AVOID BLANK SPOTSv HIRES PRINTING ENTER WITH O$, H, V, PR$(PR$)0ī732: RETURN IF NO STRING 0: ROTATION IS NORMALLY HORT(XEXT)5(2.3AN): X -CORNER OF ARROWl{YIYT(YEYT)5(2.3AN): Y -CORNER OF ARROWXJXT(XEXT)5(3.93AN): X -CORNER OF ARROWYJYT(YEYT)5(3.93AN): Y -CORNER OF ARROWXT,YTXE,YEXI,YIXJ,YJXE,YE:PYS)0)PI):630: AVOID DIV BY 0 IF VERTICAL RESULTANTisQ((YPYS)(XPXS)): SET ACTUAL ANGLE }tXPXS0QQPIuQ0QQ2PIv((Q.00005)1000)1000((AN.00005)1000)1000ANANPI: ADD 1*PI IF SUBTRACTING VECTORS3xXIXb FIND PIXEL POSITION:elXTXSFA10140:YT80YSFA10: X,Y STARTING POSITION (IN PIXELS)nXEXPFA10140:YE80YPFA10: X,Y ENDING POSITION (IN PIXELS)pANAN(2PI)(AN(2PI))qAN0ANAN2PI:625;rXPXS0Q(PI2)(((YQ27SE2:442: ESCAPE-Q13442JQ$"Y"Q$"y"SE1:400hQ$"N"Q$"n"SEZZ:400Q10Q11Q8Q21Q32439: DOWN,UP,LEFT,RIGHT,SPACESE1SE403X DRAW VECTOR] ENTERS WITH XS,YS,FA,XP,YP,AN&pQ$(13)376: RETURN PRESSEDArQ1NS:Q$L$(Q)SEQHtQQv356Wxq YES/NO QUESTIONYU: UPPER LINE USED BY SUBROUTINE1SEZZĝ:"YES ";::"NO":SE1Ğ:"YES";::" NO"YU:4Q$Q(Q$) INPUT&ZQ27SEZZ:376: EXIT5\Q13ī376D^Q32ī364g`Q8Q11SESE1:SEZZSENSbQ21Q10Q32SESE1:SENS1SE1dYUOS:XLf(L$(OS))2ĺL$(OS)"- "S$(OS):362hL$(OS)" - "S$(OS)j330l ACCEPT A LETTER$/F" TYPE LETTER OR USE THE ARROW KEYS"TH" THEN PRESS "_JYUSErLXL::L$(SE);N(L$(SE))2ĝ:"- ";::S$(SE);::338P:" - ";::S$(SE);:ROSSETQ$VQ(Q$)XQ96QQ32:Q$(Q): LOWER CASEAD ENTRY INTO DF$&, MENUQ.YU18YU18: UPPER LINE USED BY MENUa0SENSSE1q2SEZZSE14NSYU19NS19YU6Q1NS8XL4:QYU<(L$(Q))2ĖXL:L$(Q)"- "S$(Q):320>XL:L$(Q)" - "S$(Q)@QB20D:DA1)) 2DB,(DF$): DEFAULT STRING LENGTHIRE: READ INPUTlEX(SB9): CHECK EXIT TYPE EX2285: IF ESCAPE(DB)ZZDF$"":285: NOTHING ENTEREDDF$"": INITIALIZE ENTRY STRINGI1(DB):DF$DF$((DBI)):: RETER WITH DF$, AND WI%; EXIT WITH DF$ AND EXgSB,WI%: NUMBER OF CHARACTERS TO BE ALLOWED IN INPUTEXZZ: EXIT TYPE (1 = , 2 = )(DF$)ZZī245: NO DEFAULT STRINGI1(DF$): SET UP DEFAULT STRINGDBI,((DF$,I,NM$"0":180: ADD ZERO TILL IT'S LONG ENOUGH (SIG FIG ROUNDING)h NU.09999ĭNE$""NM$NM$"0" (NM$,1)"."NM$"0"NM$: ADD LEADING 0 (EITHER STYLE OF ROUNDING) NU$SN$NM$NE$: REASSEMBLE STRING INPUT- EN NO FILL NEEDED O NM$NM$".":180: ADD "." & SEE IF 0'S ARE NEEDEDa RD$"D"180 CECDRO183: NO ADDITIONS NEEDED (DECIMAL ROUNDING) I1RO1(CECD):NM$NM$"0":I:183: ADD ZEROES (DECIMAL ROUNDING) E (NM$)RO1NM$AK STRING INTO EXPONENTIAL PART AND MANTESSAl CDCE177: DECIMAL POINT INCLUDED ALREADY, GO ON NO DECIMAL POINT, MAY NEED TO ADD ONE RD$"D"RO0NM$NM$".":I1RO:NM$NM$"0":I:183: ADD "." AND ZEROS  (NM$)RO183: IZONTAL6O$"V"Ę48: ROTATE VERTICAL LETTERSjCH1(PR$): FOR EACH LETTER TO BE PRINTEDwH0H0V188V188VWWVWWH275H10Q((PR$,CH,1)): SET CHARACTERQ31H,VWWO$"V"VVLW: STEP UP!O$"H"HHLW: STEP OVER)CH/A  SET COLORw*COVN(VN7)7: SELECT COLOR BETWEEN 0 AND 74CO0CO4COCO2: AVOID BLACKHTV1CO3: IF MONOCHROME, PLOT EVERYTHING IN WHITERCO: SET COLORz DRAW (A2)2: X-OFFSET4(NVOYMY: VERTICAL LOCATIONV(XHOXMX: HORIZONTAL LOCATION(b3:O$"H":LW7:700:LW6: DRAW LETTER (IN WHITE)(g( COPYRIGHT 1988 VERNIER SOFTWARE( 2920 S.W. 89TH PORTLAND, OR 97225) REVISEDPOINT OF VECTOR>'&MX((XEXT)2)XT: MIDPOINT OF VECTORl'0A2(PI2)AN: ANGLE OF POINTER TO LETTER'5Q4:(PR$)2AN3.49AN5.93Q8: MAKE GREATER DISTANCE FOR LONGER STRING SO IT DOESN'T RUN INTO VECTOR':OYQ(A2): Y-OFFSET(DOXQTX$(I):H20:V147(8I):700: DRAW LETTERS ON SCREEN@&IF&b& ADD LABEL TO VECTOR& THIS ROUTINE DRAWS A CHARACTER STRING (PR$) HORIZONTALLY APPROXIMATELY 3 PIXEL LENGTHS AWAY FROM THE MIDPOINT OF THE VECTOR'MY((YEYT)2)YT: MID((((NU10)10.5)),1),6)%rAU2NU$(SN$((NU(NUZZ)1(NUZZ).0005))"."((((NU1000)1000.5)),3),6): ROUNDING MORE PRECISE FOR RADIAN MEASURE%|% DRAW TEXT AT BOTTOM OF HIRES SCREEN%1400%O$"H":LW7%I139&PR$OUNDED VALUEY$FA(22(NU2)(NU4)5(NU5))PW:PICK 2,4,5,10 AS UNITS / DIVISION _$6p$@ ROUNDING$J ROUND TO 0.1 SUBROUTINE$TSN$" ":NUZZSN$" -": SIGN STRING$^NU(NU)%hNU$(SN$((NU(NUZZ)1(NUZZ).05))"."SET SCALINGF#NUYM7.3:XM12.9NUNUXM12.9: ROUGH SCALINGO#PW1^#NU11517#NUPWPWPWTT:1515: FOR NUMBERS <=1#1520#NUPWTTPWPWTT:1517: FOR NUMBERS > 1$NUNUPW: SET NU WHICH IS THE ABSOLUTE VALUE OF THE RTX$(2)"MAGNITUDE OF RESULTANT: "NU$]"ANRA:1300: CONVERT RADIANS TO USER'S UNITS"RM0TX$(3)"ANGLE OF RESULTANT: UNDEFINED":1460"NUAC:1600:TX$(3)"ANGLE OF RESULTANT: "NU$" "VU$: ANGLE OF RESULTANT"TX$(4)""" # EXIT WITH AC TO CONTINUE";WI%1:DF$"":200L DRAW CROSSHAIRNLW6:O$"H"OHC245:VC129P0Q72HC,VC: DRAW CROSSHAIR<VLEGEND$3: SET COLOR TO WHITEb20,15220,148:30,15230,148: 2 VERTICAL LINES20,15030,150: HORIZONTAL LINENU$(FA):FA1NU$"0"NU$: ADD ZERO BEFORE DECIMALPR$NU$" "UN$LW6:O$"H":V141H50((PR$) JUN '88-AUG '88%) RESTART HEREH) 60000: SET ON- ERROR GOTOf) 41859,7: APPLE BUG FIX|) MAIN MENU) SE1) ::KP,0: CLEAR) D$"FRE": CLEAR STRINGS) " VECTOR ADDITION III"* " VERNIER SOFTWARE"'* " COPYRIGHT 1988"-* 3* 9* ?* P* " SELECT:"v* L$(1)"A":S$(1)"ADD NEW VECTORS"*( L$(2)"I":S$(2)"INSTRUCTIONS"*P L$(3)"O":S$(3)"OTHER OPTIONS"*d L$(4)"Q":S$(4)"QUIT"* YU9:NS4:300* + SE42770)(RD0J1)(RD1JN(1))20500: IF SAME SCALING OR FIRST VECTOR THEN DON'T CHANGE|8tO REDRAW VECTORS TO NEW SCALE8~O21:868:14::"RESCALING..."::24: DISPLAY MESSAGE 8OSOČ778: MAKE NOISE IF NOISE ON9O1200: REDRAW BACKGROUND SCX-COMPONENT=7$OYC(J)MA(J)(AN): CALCULATE Y-COMPONENTv78O(XC(J))XMXM(XC(J)): SET MAXIMUM X-COMPONENT7BO(YC(J))YMYM(YC(J)): SET MAXIMUM Y-COMPONENT7GOQFA: TEMPORARLY SET OLD SCALING7LO1500: SET SCALINGY8`OFAQ(RD1J1(DF$)#6NMA(J)Q: SET MAGNITUDE)6NM6NAU2AN(J)QQ: SET RADIANS6NAU1AN(J)(QQ180)PI: CONVERT DEGREES TO RADIANS6OANAN(J):ASAN(PI2)AN: ADJUST FOR ANGLE SYSTEM WHERE 0 IS AT TOP 7OXC(J)MA(J)(AN): CALCULATE 21:1:868:"ENTER ANGLE OF VECTOR"5N24:25:WI%8:DF$"":200:EX2RA999:21000: INPUT ANGLE (IF CLEAR RESULTANT FLAG & EXIT)5NDF$"+"DF$"A"DF$"a"20600: SKIP TO ADD VECTORS5NDF$""ĺ(7);:20120: NOTHING ENTERED6NQQ4N24:1:(J64);: VECTOR NUMBER4N24:6:WI%8:DF$"":200:EX2RA999:21000: INPUT MAGNITUDE (IF CLEAR RESULTANT FLAG & EXIT)4NDF$"+"DF$"A"DF$"a"20600: SKIP TO ADD VECTORS4NQ(DF$):Q0ĺ(7);:20100&5NJ):1300:25:AC:20230: CHECK NOT DONE & DISPLAY DATA3\N24:5)"PRESS TO ADD VECTORS";:WI%1:DF$"":200:EX2RA999:210003fN20600: SKIP TO ADD VECTORS3pN21:868:"ENTER MAGNITUDE OF VECTOR";:J1ĺ", OR 'A' TO ADD";4zN& OF LOOP:U2CNRDJJRD:20040: ADD REDISPLAY FLAG (MAY BE - 1 FOR REVERSE ORDER)_2DNJJ12FNMAJ20600: SKIP TO ADD VECTORS IF MEMORY FULL2HN(RD)20080: INPUT NEW DATAA3MN(RD1JN(1))((RD1)J0)Ģ24:1:(J64);:6:MA(J);:ANAN(NG FACTOR*1,NXM0:YM0: INIT X,Y MAX'Sr1/NXS0:YS0: SET STARTING COMPONENTS (ALWAYS ZERO FOR TAIL TO TAIL)z12N2215N"# MAGNITUDE DIRECTION (";VU$;")"18N34,22: SAVE HEADING1;NJ0:RD1JN(1)1: INIT LOOP COUNTER1>N23 2AN TOP30:NURY:100:NU$: RESULTANT Y-COMPONENTr0D4DF$""ĺ(12);:D$"PR#0":23: FORM FEED & TURN OFF PRINTER0N4:1000: GET KEYPRESS0X421000: RETURN TO FOLLOW UP OPTIONS0 N ADD VECTORS0#N0&N1200: SET UP SCREEN 1)NFA0: CLEAR SCALI X-COMPONENT?/330:NUYC(J):100:NU$: Y-COMPONENTF/3JX/3"RESULTANT:"/32:NURM:100:NU$;: RESULTANT MAGNITUDE/312:ANRA:1300:NUAC:1600:NU$;: RESULTANT ANGLE/421:NURX:100:NU$;: RESULTANT X-COMPONENT004.E311:"(";VU$;")";-.G321:"(";UN$;")";B.H330:"(";UN$;")"K.J3DA$k.T3J1N(1): FOR EACH VECTORy.h3(J64);.|32:NUMA(J):100:NU$;: MAGNITUDE.312:ANAN(J):1300:NUAC:1600:NU$;: DIRECTION/321:NUXC(J):100:NU$;: F$"":200$-3EX213400: H-3DF$""13110: SCREEN DISPLAY-3(DF$)0(DF$)7ĺ:"INVALID SLOT NUMBER--ENTER AGAIN"::1000:13010-,3D$"PR#";(DF$): TURN ON PRINTER-63-@3"# MAG. DIR. X-COMP Y-COMP".B32:"(";UN$;")";K FOR INCOMPLETE DATA5,2:"NO VECTORS IN MEMORY"R,2::1000: GET {,221000: RETURN TO FOLLOW UP OPTIONS,2"ENTER SLOT NUMBER OF PRINTER TO BE",2"USED OR PRESS TO SEE THE",2"DATA TABLE ON THE VIDEO MONITOR." -2WI%1:D + :10A+ "ARE YOU SURE YOU WANT TO QUIT?":YU11:SE0:400Q+ SE162999[+ 2490+ SE0SE4:2500: PRESSED+ SE20000,30000,30000+ 2490: REPEAT MAIN MENU+2 DISPLAY/PRINT DATA TABLE+2::,2RA99913020: CHECREEN9O900: DRAW LEGENDL9ORD1āIN(1)J1:20420: REVERSE ORDERW9OI1J9OXPXC(I):YPYC(I): SET ENDING VALUES9OANAN(I):ASAN(PI2)AN: SET ANGLE OF VECTOR(ADJUST FOR ALTERNATE ANGLE SYSTEM)9OVNI:800: SET COLOR:O600: DRAW VECTORI:OPR$(64I):MA(I)0PR$"-"PR$: VECTOR LABELl:OLTİ1800: LABEL VECTORs:OI:O21:1:868: CLEAR RESCALING MESSAGE:P DRAW NEW VECTOR:;P(RD1J1)(RD0J1)(RD1JN(1))İ900: DRAW LEGEND IF FIRST POINTHU ###REDRAW DIAGRAMOHURA99921920: CHECK FOR INCOMPLETE DATA TABLEXHU:4tHU"NO VECTORS IN MEMORY"HU::1000: GET HU21000: RETURN TO FOLLOW UP OPTIONSHURD1: SET RE-DRAW FLAGHU20000: REDRAWIU ###REDRAW DIAG TO CONTINUE";+GXURA99921860\GYUANRA:ASAN(PI2)RA: SET RESULTANT ANGLEGZURA999Ē0:600:3:600: FLASH VECTORGdU(KC)141(KC)15521848: WAIT FOR KEYPRESSGxUKP,0: CLEAR STROBEHU21000: RETURN TO FOLLOW-UP OPTIONSE21800,21900,21950,23000,22000,13000,20000HFR2460: RETURN TO MAINcF(U ###REDISPLAY DIAGRAMF2U49232,0: SWITCH TO GRAPHICSF LEADS TO EXIT-FRS!D:RRD0: CLEAR RE DRAW FLAGNDlR::"VECTOR ADDITION FOLLOW-UP OPTIONS"bDqR4:" SELECT:"DvRL$(1)"D":S$(1)"DISPLAY PREVIOUS DIAGRAM"DRL$(2)"P":S$(2)"REDRAW PREVIOUS DIAGRAM"DRL$(3)"R":S$(3)"REDRAW DIAGRAM IN REVERSE ORDER" ERL$(4)"O;CQKP,0: CLEAR STROBECCQANRA:ASAN(PI2)RA: SET ANGLEiCQ(KC)155(KC)141ĹKP,0:21000}CQ FLASH VECTOR:CQ0:600: DRAW BLANK VECTORCQ3:600: DRAW WHITE VECTORCQ20960CR FOLLOW-UP OPTIONS:DRD$"FRE": CLEAR STRINGSTANT(BQ CALCULATE RESULTANT LENGTH:[BQRM((XPXP)(YPYP)): RESULTANT MAGNITUDE fBQ34,21BQ21:958: CLEAR TO BOTTOM OF SCREENBQ1400: ASSEMBLE TEXTBQ22:TX$(2):TX$(3): MAGNITUDE & ANGLE TEXTCQ7)"PRESS TO CONTINUE"2)RA: ADJUST FOR ALTERNATE ANGLE SYSTEMgAtQRA0RARA(2PI): IF NEGATIVE ANGLE,MAKE IT POSITIVEAwQANRA:ASAN(PI2)RA: SET ANGLE FOR DRAWING ROUTINEA{QCO3:CO: SET WHITEA|Q600: DRAW RESULTANTBQLTPR$"R":1800: LABEL RESUL XP AND YP ARE HEAD OF LAST VECTOR (=RESULTANT)@mQXP0RA(PI2)((YP0)PI):20855: AVOID DIV BY 0 IF VERTICAL RESULTANT@rQRA(YPXP):XP0RARAPI: SET ANGLE OF RESULTANT VECTOR (ADD 1*PI TO GET CORRECT ANGLE IF X IS NEGATIVE)+AsQASRA(PI VECTOR>? QPR$(64I):MA(I)0PR$"-"PR$: VECTOR LABELa?QLTİ1800: LABEL VECTOR?QXSXP:YSYP: SET STARTING VALUE TO END OF PREVIOUS VECTOR?;QI?@Q DRAW RESULTANT:?TQXS0:YS0: SET STARTING VALUE OF RESULTANT1@hQRXXP:RYYP: ST VECTOR;>PRD1āIN(1)11:20720: REVERSE ORDER\>PI1N(1): ADD ALL VECTORS>PXPXPXC(I):YPYPYC(I): SET POINT OF HEAD OF VECTOR>PANAN(I):ASAN(PI2)AN: SET ANGLE OF VECTOR>PVNI:800: SET COLOR ?Q600: DRAWD MAX X/Y COMPONENTSV=PXPXPXC(I):(XP)XMXM(XP): SET HIGHEST X-COMPONENT=PYPYPYC(I):(YP)YMYM(YP): SET HIGHEST Y-COMPONENT=PI=P1500: SET SCALING=P900: DRAW LEGEND >PXS0:YS0:XP0:YP0: SET STARTING POSITION OF FIRVECTORS:7IU21000: RETURN TO FOLLOW UP OPTIONSIURD1: SET RE-DRAW FLAGIU20000: REDRAWJU ###SAVE DIAGRAM IMAGE%JU:"SAVE VECTOR DIAGRAM",JV5JJV"CURRENT PREFIX: ";PF$:vJ"V"ENTER NAME TO BE USED FOR THIS FILE:"J,VDF$"": DEFAULT NAMEJ6VWI%65:200:EX222110J8VDF$""22000K;V::"REDRAWING PICTURE...";:1700:1:868: DRAW TEXT AT~ENTER WITH DF$, AND WI%; EXIT WITH DF$ AND EXi SB,WI%: NUMBER OF CHARACTERS TO BE ALLOWED IN INPUT EXZZ: EXIT TYPE (1 = , 2 = ) (DF$)ZZī245: NO DEFAULT STRING I1(DF$): SET UP DEFAULT STRING DBI,((DF$, SE219000: HELP317000: OTHER OPTIONSO VECTOR ADDITION IIIf COPYRIGHT 1988 VERNIER SOFTWARE( VERSION: 8/22/88- 2920 S.W. 89TH ST.2 PORTLAND, OR 972257 (503) 297-5317 INPUT/ 8,32:769,248:770,190:771,96:768:: RESET POINTERS, RELEASE BUFFERS AND END ";EC;.S" ERROR ON LINE ";EL;" *"4SaSJ13000:J: TIME DELAY TO READ SCREENgSS768: CLEAR STACKSEL2000ġ: IF ERROR OCURS IN A SUBROUTINE, REMOVE ADDRESS FROM STACKS2460: MAIN MENUVT:216,0:D$;"CLOSE":76 HANDLING1Rc:D$;"PR#0": TURN OFF PRINTERTReEL(219)256(218):EC(222)eRg:::"* ";R~EC16ĺ"SYNTAX ERROR";:60040REC69ĺ"OVERFLOW";:60040REC133ĺ"DIVISION BY ZERO";:60040REC255ĺ"CONTROL C";:60040S"CODE D$;"PR#0": PRINTER OFFBQ,[21000: DISPLAY FOLLOW-UP MENU\Q0u CHAIN TO PART.TWObQ:uoQ?u41859,3QDu(8)1ĺD$;"CHAIN/RAM/PART.TWO"QNu"LOADING THAT PART OF THE PROGRAM..."QXuD$;"CHAIN ";PS$;"PART.TWO": PART.TWO ON DISK R` ERRORTER ONDPZPT2ĺ(9)"GE";:SZ3ĺ"DR":23320: GRAPPLER+ DUMPlPZPT2ĺ:23320: SKIP IF GRAPPLER+P[SZ1ĺ(9)"H": PKASO/U DUMP (SMALL) P[SZ3ĺ(9)"10H": PKASO/U DUMP (LARGE) P[SE2ĺ(12): FORM FEEDQ"[:AGEWRITEROZQ(8):7168,PR,SZ:8,Q: IMAGEWRITER DUMP (ALSO SAVE AND RESTORE $08 MEMORY LOCATION WHICH INDICATES WHETHER /RAM IS TO BE USED)OZSE2ĺD$;"PR#";PR:(12):D$;"PR#0": IMAGEWRITER FORM FEED OZ23340PZD$;"PR#"PR: PRIN0: MENU )NZSE023340: EXITENZPFSE: SET NEW DEFAULTvNZSZ3:SE1SE3SZ1: SET DIAGRAM SIZENZ17:958::"REDRAWING DIAGRAM...":1700: DRAW TEXT ON BOTTOMNZ17:958::"NOW PRINTING DIAGRAM..." OZPT123270: NOT IMPZ$MZZ"SELECT PRINTOUT FORMAT:"WMdZL$(1)"1":S$(1)"SMALL DIAGRAM - NO FORM FEED"MnZL$(2)"2":S$(2)"LARGE DIAGRAM - NO FORM FEED"MxZL$(3)"3":S$(3)"SMALL DIAGRAM - FORM FEED"MZL$(4)"4":S$(4)"LARGE DIAGRAM - FORM FEED"NZNS4:YU2:SEPF:30ER"%LYL$(2)"G":S$(2)"GRAPPLER+"CLZL$(3)"P":S$(3)"PKASO/U"lL ZNS3:YU2:SEPT:300: MENU LZSE023340: EXITLZPTSEL(Z15::"ENTER SLOT NUMBER FOR PRINTER":L2ZDF$"":WI%1:200:EX223340LK^V21000: DISPLAY FOLLOW-UP MENUKY ## DUMP SCREEN DIAGRAMKY:"SELECT:":LYL$(1)"I":S$(1)"IMAGEWRITI,1)) 4 DB,(DF$): DEFAULT STRING LENGTHK RE: READ INPUTn EX(SB9): CHECK EXIT TYPE EX2285: IF ESCAPE (DB)ZZDF$"":285: NOTHING ENTERED DF$"": INITIALIZE ENTRY STRING I1(DB):DF$DF$((DBI)):: 0#DSOSE1: SET SOUND ON/OFF)DLD ***TURN VECTOR LABEL OFF/ONoD:"TURN VECTOR LABELS OFF/ON"DL$(1)"F":S$(1)"VECTOR LABEL OFF"DL$(2)"O":S$(2)"VECTOR LABEL ON"DYU5:SELT1:NS2:300ELTSE1: SET VECTOR LABEL OFF/ONE$(2)"0 AT TOP OF DIAGRAM (CW)"< DYU5:SEAS1:NS2:300L*DSE017490l4DASSE1: SET ANGLE SYSTEMrRD\D ***TURN SOUND OFF/ONfD:"TURN SOUND OFF/ON"pDL$(1)"F":S$(1)"SOUND OFF"zDL$(2)"O":S$(2)"SOUND ON"DYU5:SESO1:NS2:30CYU5:SEAU:NS2:300(CSE017390MCAUSE: SET ANGLE UNIT SELECTIONeCAU1VU$"DEGREES"}CAU2VU$"RADIANS"CC ***SELECT ANGLE SYSTEMD:"SELECT ANGLE SYSTEM" DL$(1)"R":S$(1)"0 AT RIGHT OF DIAGRAM (CCW)"!DL$(2)"T":S00:EX217290XCUN$""+bCI1(DF$)?dCQ((DF$,I,1))mgCQ96Q123QQ32: CHANGE TO LOWER CASE~iCUN$UN$(Q)lCICC ***SELECT ANGLE UNITSC:"SET ANGLE UNITS"CL$(1)"D":S$(1)"DEGREES"CL$(2)"R":S$(2)"RADIANS"FCTT(1RO):17165BCRD$"S": SIGNIFICANT FIGURES ROUNDING} CDE10RO: SET DECIMAL POSITION (USED IN 'D' ROUNDING)C0C ***SELECT MAGNITUDE UNITS:C:"SELECT MAGNITUDE UNITS"DC4:"ENTER NEW MAGNITUDE UNITS: ";NCDF$UN$:WI%5:2AL POINT":>BDF$(RO)RD$:WI%2:200:EX217170: INPUTB(DF$)0(DF$)5((DF$)0((DF$,1)"D"(DF$,1)"d"))ĺ::"ROUNDING VALUE OUT OF RANGE":::1000:17105BRO(DF$):RD$(DF$,1)BRD$"d"RD$"D": DECIMAL ROUNDINGCRD$"D"000B ***SET ROUNDING9B:"SET ROUNDING"::gB"ENTER THE NUMBER OF SIGNIFICANT DIGITS"B"TO BE USED IN ROUNDING OR":B"ENTER A NUMBER FOLLOWED BY A ";QM$;"D";QM$;" TO"B"SET THE NUMBER OF DIGITS TO THE RIGHT OF"; B"THE DECIMSTEM"/BL$(5)"S":S$(5)"TURN SOUND OFF/ON"_BL$(6)"L":S$(6)"TURN VECTOR LABELS OFF/ON"BL$(7)"X":S$(7)"RETURN TO MAIN MENU"BNS7:YU4:SENS:300BSE0SENS1900: RETURN TO MAIN MENUBSE17100,17300,17200,17400,17500,17600B17N ";PS$;"PART.ONE,@2460" 6hB OTHER OPTIONSBmB60000YrB:"OTHER OPTIONS"|BL$(1)"R":S$(1)"SET MAGNITUDE ROUNDING"BL$(2)"U":S$(2)"SELECT ANGLE UNITS"BL$(3)"M":S$(3)"SPECIFY MAGNITUDE UNITS"BL$(4)"A":S$(4)"SELECT ANGLE SY TO EXIT";:*jWI%1:DF$"":2000tPl CHAIN BACK TO PART.ONEmnD$"FRE": CLEAR STRINGSv(8)1Ĺ41859,3:D$"CHAIN /RAM/PART.ONE,@2460": CHAIN PART.ONE IN / RAM:12:"LOADING MAIN PART OF PROGRAM..."41859,3:D$"CHAI%pQ$(13)376: RETURN PRESSED@rQ1NS:Q$L$(Q)SEQGtQPv356Vxm GET KEYPRESSt1"PRESS RETURN TO CONTINUE";WI%1:DF$"":200L GET KEYPRESS (IN INVERSE LETTERS)V5:24`:"PRESS ORE INPUT& ZQ27SEZZ:376: EXIT5 \Q13ī376D ^Q32ī364g `Q8Q11SESE1:SEZZSENS bQ21Q10Q32SESE1:SENS1SE1 dYUOS:XL f(L$(OS))2ĺL$(OS)"- "S$(OS):362 hL$(OS)" - "S$(OS) j330l ACCEPT A LETTERDA$1 F" TYPE LETTER OR USE THE ARROW KEYS"V H" THEN PRESS "a JYUSEt LXL::L$(SE); N(L$(SE))2ĝ:"- ";::S$(SE);::338 P:" - ";::S$(SE);: ROSSE TQ$ VQ(Q$) XQ96QQ32:Q$(Q): LOWER CASREAD ENTRY INTO DF$ ( , MENUS .YU18YU18: UPPER LINE USED BY MENUc 0SENSSE1s 2SEZZSE1 4NSYU19NS19YU 6Q1NS 8XL4 :QYU <(L$(Q))2ĖXL:L$(Q)"- "S$(Q):320 >XL:L$(Q)" - "S$(Q) @Q B20 D:8J SHOW HELP SCREEN(BJ60000.LJQJ" VECTOR ADDITION IIIqJ" COPYRIGHT 1988J" VERNIER SOFTWAREJJ"TO ADD VECTORS:J"1. SELECT 'A - ADD NEW VECTORS' FROMJ" THE MAIN MENU. THE SCREEN WILL.J" TURN BLACK WITH A GRID OF DOTS.XJ"2. AT THE BOTTOM OF THE SCREEN YOU}J" WILL BE ASKED TO ENTER THEK" MAGNITUDE (LENGTH) OF THE FIRST K" VECTOR. TYPE IN A VALUE AND PRESSK" . DO NOT INCLUDE UNITS.,   ɛ Lɍ Lɘ  L#ɚ   L#ɄɈ  L# L#ɟ L#  L# ) L#` L`  :` `  ` FILES#&768: CLEAR STACKo&EL1900ġ: IF ERROR OCURS IN A SUBROUTINE,REMOVE ADDRESS FROM STACK&1900: RETURN TO MAIN MENU0"%EC69ĺ"OVERFLOW";:60040J%EC133ĺ"DIVISION BY ZERO";:60040k%EC255ĺ"CONTROL C";:60040%"CODE  ";EC;%" ERROR ON LINE ";EL;" *"%%J13000:J: TIME DELAY TO READ SCREEN%&D$"CLOSE": CLOSE ANY OPEN"MANUAL FOR MORE INFORMATION ON ALLE$lM"ASPECTS OF THIS PROGRAM.O$vM1100j$N1900: RETURN TO MAIN$` ERROR HANDLING$c:D$;"PR#0": TURN OFF PRINTER$eEL(219)256(218):EC(222)$g:::"* ";%~EC53ĺ"ILLEGAL QUANTITY";:6004EX219990#M#M?#M"SEVERAL PROGRAM OPTIONS, SUCH ASj#&M"WHETHER THE ANGLES ARE IN DEGREES OR#0M"RADIANS, CAN BE CHANGED BY USING THE#:M"'O - OTHER OPTIONS' CHOICE FROM THE#DM"MAIN MENU.#NM#XM"REFER TO THE VECTOR ADDITION III&$bM,"L" BUT IN THE OPPOSITE ORDER RJ"L"TO DISPLAY OR PRINT THEu"L" COMPONENTS OF ALL THE VECTORS C"L"TO PRINT THE DIAGRAM O"L"TO SAVE THE DIAGRAM ON A DISK S"M"TO ADD NEW VECTORS A # M1100:HE/!L" FOLLOWING OPTIONS ARE AVAILABLE:5!Lb!L" OPTION!L"TO DISPLAY THE SAME DIAGRAM D!L"TO SEE THE SAME DIAGRAM DRAWN!L" STEP-BY-STEP AGAIN P"L"TO ADD THE SAME VECTORS AGAIN,* JL" DIAGRAM, FLASHING ON AND OFF;X TL" ITS MAGNITUDE AND DIRECTION WILL BEn YL1100:EX219990t ZLz [L hL" DISPLAYED ON THE BOTTOM OF THE rL" SCREEN. |L"7. PRESS TO DISPLAY THE!L" FOLLOW-UP OPTIONS MENU. TRS HAVE BEEN5L" ENTERED, TYPE THE LETTER 'A'SL" AND PRESS ."L"6. THE ARROWS REPRESENTING THE VECTORS,L" WILL NOW BE REDRAWN HEAD-TO-TAIL.6L" AFTER ALL THE ARROWS ARE DRAWN, THE @L" RESULTANT WILL APPEAR ON THE EVERYTHING WILL FIT@K" ON THE SCREEN. THE SCALE BEINGjK" USED IS DISPLAYED AT THE BOTTOMK" LEFT OF THE SCREEN. (NOTE: TOK" SUBTRACT A VECTOR, ENTER ITSK" MAGNITUDE AS A NEGATIVE NUMBER.)L"5. WHEN ALL THE VECTO AND DIRECTION>K" FOR AS MANY VECTORS AS YOU WISH (UPiK" TO 17). THE ARROWS REPRESENTINGK" THE VECTORS WILL BE DRAWN TAIL-TO-K" TAIL. IF NECESSARY, THE PROGRAMK" WILL CHANGE THE SCALE OF THEK" DIAGRAM SO THATAN 3605ZK" DEGREES (2*PI RADIANS) MAY ALSO BEadK" USED. AFTER YOU ENTER THE DIREC-nK" TION, AN ARROW WILL BE PLACED ONxK" THE SCREEN REPRESENTING THE VECTOR.K1100:EX219990: KKK"4. ENTER THE MAGNITUDEK"3. YOU WILL NOW BE ASKED TO ENTER THEZ(K" ANGLE OF THE VECTOR. THERE WILL BE2K" A DIAGRAM IN THE BOTTOM RIGHT )jjj) ) )n ) )T )1 )6 )ϩυ +,i$%f$fʊ iL$pI, )LL$, ) I $0Lc,0L8LL_ ) ) L?76666L?7666666666666Dee%% d$$$''?8??7766v..+-----------RI----ޛRI)757-ےIޛRI)575-ےI MIڛRIISIڛ--ޛRIJۓJ--n .-ۛ  >?wIۓ  >?wIۓ)3 -ۛ  Mے) >?w nޓ5NIۛIInۓJ66-ۓJM17 n ޛRIM17 >n ޛRI)3M1s-ےI-3-nۓJ)3M1s-J-3-5n ޛRI)---ۓJ--6nڛRIM13M1s-ےIM13MۓJM13M1 ےIMMےIM1s-nMڛRI)NSۓJ)3 --ےI M1??n ޛRI-3-3-ۓJ)6-ޓII-3M13--3M13-ۓJ--.3--ޛRI--.3MےI)n)-ےIM13--n ޛRI)6-ےII16s-ےIM. >-ےI)s)--ޛRI-*-ۓJ-*-ۓJM13--6ޛRI--.--ۓJ).-s-ےI-->mےI)s-s-ےI)s-ۓJJIJNڛRIIJMڛRIIےII??N??NۓJ--ےImwi:MےI .s-ےI 6SIڛRII6ےI6MڛRI ?--? ޛRI *-3ۓJ MڛRI--SۓJIIMIMےIMےIMےI)3 ;-ےII>6-ޛd"4ES`l9JYl~1CU *<N_q5AP`p~EObdfhjlnprtvxz|~ 6SiڛRIinJۓJi?? ?? ےI) 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 ) ) )P8 L0 <L`p`):"B - HEXADECIMAL TO DECIMAL6 (10):"C - QUIT"> M$W M$"A"M$"a"İ1000p M$"B"M$"b"İ2000 M$"C"M$"c"Ā "100  ***********************************************************************  DECIMAL TO HEX ROUTINE . PROGRAM WILL CONVERT NUMBERS FROM"Q n"HEXADECIMAL TO DECIMAL OR VICE VERSA.z x"THE RANGE OF NUMBERS PERMITTED IS: } "DECIMAL -65536 TO 65536 "HEXADECIMAL 0000 TO FFFF "CHOOSE: (10):"A - DECIMAL TO HEXADECIMAL (102 HEX-DECIMAL+< VERNIER SOFTWARE GF 2920 S.W. 89TH STREET`P PORTLAND, OR 97225mZ::(5)\" VERNIER SOFTWARE ^_" HEXADECIMAL - DECIMAL CONVERTER`" *******************************a:% d:"THISLDX #00 DEL INX CPX #$70 BNE DEL D1M DEY BNE D1M RTS RATION BNE SOUND LDA PITCH SEC SBC #RAISE ;RAISE PITCH STA PITCH CMP #00 BEQ END JMP INIT SOUND LDA SPKR ;CLICK SPEAKER JSR DELAY ;ADD DELAY JMP MAINLOOP END RTS *WAIT (DELAY ACCORDING TO PITCH) DELAY LDY PITCH ; SET FOR DELAY RELATIVE TO PITCH 0 ;INITIALIZE COUNTERS STA CTR.LOW STA CTR.HIGH MAINLOOP INC CTR.LOW ;INCREMENT LOW BYTE OF COUNTER LDA CTR.LOW CMP #DURA.LOW BNE SOUND INC CTR.HIGH ;INCREMENT COUNTER HIGH LDA CTR.HIGH ;HIGH BYTE OF COUNTER CMP #DURA.HIGH ;COMPARE HIGH BYTE OF DUEQU $C0 ;MUST BE MULTIPLE OF $10 RAISE EQU $10 ;VALUE TO RAISE PITCH EACH TIME SPKR EQU $C030 CTR.LOW EQU $EB ;LOW BYTE OF COUNTER CTR.HIGH EQU $EC ;HIGH BYTE OF COUNTER PITCH EQU $06 ;STORAGE LOCATION OF PITCH * START LDA #BASEPITCH STA PITCH INIT LDA #0 LST C ***************** * VECTOR ADDITION III * ASCENDING NOISE * SOUND EFFECTS FOR * RESCALING ***************** * OBJ $30A ORG $30A * DURA.LOW EQU $50 ;LOW BYTE OF DURATION OF PITCH DURA.HIGH EQU $01 ;HIGH BYTE OF DURATION OF PITCH BASEPITCH "TO EXIT, MAKE NO ENTRY AND PRESS RETURN"4 $\ V"ENTER A DECIMAL NUMBER: ";V$i `V$""ıu aV(V$) bV0ĪV65536V:(29):"(";V;")":V$(V) cC1(V$) dC1(V$) e((V$,C,1))48((V$,C,1))57ĺ"IMPROPER CHARACTER ":1000 gCA tV65536ĺ"NUMBERS > 65536 ARE NOT PERMITTED":1000u ~D(1)(V4096): CALCULATE 1ST DIGIT OF RESULT RVD(1)4096: CALCULATE REMAINDER D(2)(R256): CALCULATE SECOND DIGIT RRD(2)256: CALCULATE REMAINDER D(3)(R1 ::(5)+" BINARYH" ******n:" COPYRIGHT 1983":" VERNIER SOFTWARE" 2920 S.W. 89TH ST." PORTLAND, OR 97225 "THIS PROGRAM DEMONSTRATES THE BRACTERS TO THE RIGHT OF THE DECIMAL POINTM `m(8):"ROUNDED NUMBER -> ";X$z Hq IN NORMAL USE A "RETURN SHOULD BE HERE zq 0u25000 fC` fX$X$".00000000000":26500: IF THE NUMBER HAS NO DECIMAL POINT IN IT, ADD .00000000w fX$X$"0000000000" gC1(X$) g(X$,C,1)"."26600: EXIT THIS LOOP WHEN A DECIMAL POINT IS FOUND gC+ gX$(X$,CR): TRUNCATE THE STRING R CHA: THIS IS THE ACTUAL ROUNDING, lfX$(X) f(X$)4ĭ(X$,(X$)3,1)"E"ī28000: IF THE NUMBER IS IN EXPONENTIAL NOTATION, DON'T DO ANYTHING fC1(X$) f(X$,C,1)"."26300: IF THE NUMBER HAS A DECIMAL POINT IN IT MOVE ON TO THE NEXT STEP # "ENTER NUMBER OF DIGITS ";R> a ROUNDING SUBROUTINE a R IS NUMBER OF DIGITS DESIRED TO THE RIGHT OF THE DECIMAL POINT a X IS NUMBER TO BE ROUNDED a X$ IS THE ROUNDED OUTPUT STRING b"ENTER A TEST NUMBER ";X eX(X10R.5)10R"IT MAY BE USED AS A SUBROUTINE IN OTHERX "PROGRAMS. FIRST SELECT THE NUMBER OF "DIGITS YOU WANT TO THE RIGHT OF THE "DECIMAL POINT (THIS IS 'R'). NEXT, "ENTER A TEST NUMBER (X). THE ROUNDED "NUMBER (X$) WILL BE DISPLAYED. ,d ROUNDING ROUTINE0n VERNIER SOFTWARE Lx 2920 S.W. 89TH STREETe PORTLAND, OR 97225r::(5)" ROUNDING ROUTINE"" VERNIER SOFTWARE"" ****************"::"THIS PROGRAM ROUNDS NUMBERS."+ ENTS:"$(15):V;:(27):V164*42100TO SEE IF AN ILLEGAL CHARACTER HAS BEEN ENTEREDRm"IMPROPER CHARACTER ":2000cpN$"A"N10tzN$"B"N11N$"C"N12N$"D"N13N$"E"N14N$"F"N15N92240N(N$)VVN16(J1)J"DECIMAL EQUIVALNUMBER: ";H$CH$""ıHE(H$)4ĺ" FOUR DIGITS ONLY ":2000F(H$)4H$"0"H$:2118: ADD LEADING ZEROES TILL YOU HAVE A 4 DIGIT NUMBERHV0RJ14\N0fN$(H$,5J,1)1k((N$)47(N$)58)((N$)64(N$)71)2160: CHECK )14D$(J)"E"'D(J)15D$(J)"F"3@D$(J);:rJB:Ll1110*********************************************************************** HEX TO DECIMAL ROUTINE"TO EXIT, MAKE NO ENTRY AND PRESS RETURN" 4"ENTER HEX 6): CALCULATE THIRD DIGIT- RRD(3)16Q D(4)R: CALCULATE FORTH DIGITw "HEXADECIMAL EQUIVALENT = $"; J14 xD(J)10D$(J)(D(J)) D(J)10D$(J)"A" D(J)11D$(J)"B" D(J)12D$(J)"C" D(J)13D$(J)"D"D(JINARY3 "NUMBER SYSTEM. YOU ENTER A NUMBER IN_ "THE RANGE OF 0 TO 255 AND THE NUMBER ""WILL BE DISPLAYED IN BOTH DECIMAL AND $"BINARY FORM IN LARGE DIGITS. IN &"ADDITION, THE BINARY 'BIT' PATTERN WILL ("BE DISPLAYED IN A PATTERN LINES 50760 - 51280 CONTAIN THE INSTRUCTIONS FOR DRAWING EACH DIGITWHƏVP,VP6HP1]\ƱpƎHP,HP3VP:VP,VP3HP3:HP3,HPVP3:VP3,VP6HP:HP,HP3VP6ƱƎHP,HP3VP:VP,VP3HP3:HP3,HPVP3:VP3,VP6HP3:HP3,HPVP6Ʊ'ƏVAC13HPHP2:50680: ONLY A LITTLE SPACE IS NEEDED FOR THE '.'dHPHP5: SPACE 5 FOR A '1'ŭHP35HP35: NEVER MOVE PAST HP 35 TO AVOID DRAWING 'OFF THE SCREEN' ƂCHƱƲ ============================ END OF DIGIT DRAWING LOOPECƲ ,51120,51160,51200,51240ŭAC10HPHP5:50680: IF A "0" IS PRINTED ONLY STEP OVER 5 SPACES OR ALL EIGHT DIGITS ON A BINARY NUMBER MAY NOT FIT ACROSS SCREENŭAC12AC1HPHP6:50680: MOVE OVER 6 SPACES FOR THE NEXT LETTER IN MOST CASESCŭTHEM ON THE SCREEN%ŁCH1(PR$)?0ŪAC((PR$,CH,1))48UDŭAC0AC10: '0'lXŭAC21AC11: 'E'lŭAC3AC12: '-'ŭAC2AC13: '.'ŭAC1AC1350620: ILLEGAL CHARACTERŴAC50760,50800,50840,50880,50920,50960,51000,51040,51080IMAL NUMBER IN LARGE DIGITS#zAPò LARGE PRINT SUBROUTINE kdò VARIABLES USED: PR$, HP, VP, AC, CHà15: SET COLOR FOR LARGE PRINT LETTERSIJ=============================Ų THE LOOP BELOW GOES THROUGH THE STRING DIGIT BY DIGIT AND DRAWS INARY AND DECIMAL NOTATION IN LARGE DIGITS s4VP12:HP0: SET STARTING POSITION FOR DRAWING BINARY NOTATIONHPR$B$:50000: DRAW BINARY NOTATION\VP22:HP14: SET STARTING POSITION FOR DRAWING DECIMAL NOTATIONfPR$(J):50000: DRAW DECOSITION FROM NUMBER OF LAMP (qVP5<vVP1,VP3HP1PVP1,VP3HP2Vs DRAW LAMP 'TURNED OFF'z0HP(7L)5: CALCULATE PLOTTING POSITION FROM NUMBER OF LAMPVP5VP1,VP3HP1VP1,VP3HP20  DRAW BLATE REMAINDERL? DRAW ALL EIGHT INDICATORS EL2UVP5dHP0355tVP,VP4HPHP,HP3VP4&VP4,VPHP30HP3,HPVP:HPNX DRAW LAMP 'TURNED ON'b15lHP(7L)5: CALCULATE PLOTTING P STRINGL701!V2L[B(NV): DIVIDE TO SEE IF THE DIGIT SHOULD BE A '1'B1B$B$"1":600:440: THIS DIGIT IS A "1" AND THIS LAMP SHOULD BE "ON"B$B$"0":700: THISDIGIT IS A "0" AND THE LAMP IS OFFNN(NV)V: CALCU::Q$:(Q$)13FLAG0B uFLAG:J: END OF COUNTING LOOP] x100: REPEAT PROGRAM , ERASE LARGE PRINT NUMBER AREA @0 JVP1228 T0,39VP h   CALCULATE LAMPS 'ON' FOR A NUMBER B$"": INITIALIZE BINARY NOTATION jNJ# l300: CLEAR SCREEN n400: CALCULATE THE BINARY NOTATION FORM OF THE NUMBER AND TURN ON THE APPROPRIATE LAMPS s800: DRAW OUT BINARY AND DECIMAL NOTATION tFLAGĺ"PRESS RETURN TO CONTINUE COUNTING, ANY":"OTHER KEY TO END COUNTING"(0 TO 255)":"ENTER 256 TO START A COUNTING SEQUENCE"_ e"TYPE '-1' TO QUIT":J:J1ĉ:: fFLAG0: INITIALIZE A FLAG WHICH WOULD INDICATE COUNTING IS DESIRED gJ256FLAG1 hFLAGāJ0255: START COUNTING LOOP iJ256100: IMPROPER INPUTOF 'ON' OR *"'OFF' LAMPS.R 2:"IF YOU ENTER THE NUMBER 256, THE PROGRAM"; 4"WILL BEGIN COUNTING THROUGH THE NUMBERS 6"FROM 0 TO 255. : <:" PRESS RETURN TO CONTINUE "::678 Z500: DRAW LAMP LOCATIONS _7 d"ENTER A NUMBER P,VP3HP:HP,HP3VP3:VP,VP6HP3-ƱuƎHP3,HPVP:VP,VP3HP:HP3,HPVP3:VP3,VP6HP3:HP3,HPVP6{ƱǎHP3,HPVP:VP,VP3HP:HP,HP3VP3:VP3,VP6HP3:HP,HP3VP6:VP6,VP3HP$DZ8ǏVP1,VPHP:HP,HP3VP:VP,VP6HP3LDZM`ǎHP,HP3VP:VP,VP6HP3:HP3,HPVP6:VP6,VPHP:HP,HP3VP3StDZǎHP3,HPVP3:VP3,VPHP:HP,HP3VP:VP,VP6HP3DZǎHP,HP3VP:VP,VP6HP3:HP3,HPVP6:VP,VP6HPDZǎHP3,HPVP:VP,VP6HP:HP,HP3VP3:HP,HP3Q$(3)ij: EXIT PROGRAM ON CONTROL CqQ$"C"Q$"c"300: REPEAT MAIN LOOP UNLESS A 'C' IS ENTEREDN1(R$): SET THE VALUE OF THE FIRST NUMBER EQUAL TO THE OLD RESULT VP0:HP0: SET POSITION FOR DRAWING THE OLD RESULT AS THE NEW FE VALUE OF THE SECOND NUMBERF0,3924: DRAW CALCULATION LINExHP0:VP27: SET POSITION FOR DRAWING RESULT700: DRAW RESULT::(24):" PRESS RETURN FOR NEW CALCULATION ";:" PRESS 'C' TO CONTINUE THIS CALCULATION ":Q$:)P0:VP9: SET POSITION TO DRAW MATH FUNCTION SIGNUr600: GET MATH FUNCTIONlwM$"R"M$"r"300|HP0:VP16: SET POSITION FOR SECOND NUMBER500C$"R"C$"r"300: IF ROUTINE WAS EXITED WITH 'R' N2(N$): DETERMINE THOGRAM DJHP0:VP0: START DISPLAYING DIGITS AT TOP LEFT CORNERlT: CLEAR SCREEN AND ENTER GRAPHICS^500: GET FIRST NUMBER`C$"R"C$"r"300: IF ROUTINE WAS EXITED WITH 'R'cN1(N$): DETERMINE THE VALUE OF THE FIRST NUMBER8hH"MATH FUNCTIONS : +,-,*,/ ONLY(T"IF YOU MAKE AN ERROR WHEN ENTERING A "NUMBER AND WISH TO START THE CALCULATION";"OVER, PRESS THE 'R' KEY (FOR RESTART).!:":" PRESS RETURN TO BEGIN CALCULATIONS "::678, MAIN PRVING MORE 0 "THAN TWO NUMBERS CAN BE DONE.8 :q :" PRESS RETURN CONTINUE INSTRUCTIONS "::678 :"THIS CALCULATOR HAS THE FOLLOWING "LIMITATIONS:  "NUMBER RANGE: -1E38 TO 1E38 "DISPLAY : FIRST SEVEN DIGITS ONLY""CALCULATION IN ANOTHER CALCULATION, YOU"Y "SHOULD PRESS THE 'C' KEY WHEN THE FIRST "CALCULATION IS COMPLETE. THIS WILL "CAUSE THE RESULT TO BE TAKEN AS THE "FIRST NUMBER OF THE NEW CALCULATION. IN"; "THIS WAY COMPUTATIONS INVOL/' KEY IS USED FOR DIVISION.O "NEGATIVE NUMBERS MAY BE ENTERED BY USING";} "THE '-' KEY AS THE FIRST CHARACTER OF A "NUMBER. SCIENTIFIC NOTATION MAY BE " "ENTERED USING THE 'E' KEY. "IF YOU WANT TO USE THE RESULT OF ONE + U WOULD3 x"ANY ALGEBRAIC (NOT RPN) CALCULATOR.d }"FOR EXAMPLE, IF YOU WANT TO ADD 3 AND 4,"; "PRESS THE FOLLOWING KEYS: "; :"3";::" ";::"+";::" ";::"4";::" ";::"=": "THE '*' KEY IS USED FOR MULTIPLICATION, "AND THE 'THE COMPUTER TO BEE "USED AS A FOUR FUNCTION CALCULATOR, WITH";q "ALL NUMBERS AND SYMBOLS DISPLAYED IN ""LARGE PRINT. : <:" PRESS RETURN FOR INSTRUCTIONS "::678 d INSTRUCTIONS n s"USE THE COMPUTER KEYBOARD AS YO ::(5)." CALCULATOR"M" **********s:" COPYRIGHT 1983":" VERNIER SOFTWARE" 2920 S.W. 89TH ST." PORTLAND, OR 97225::: "THIS PROGRAM ALLOWS VP6 DZȎHP,HP1VP3%ȱ2(ȍHP,VP68Pȱ?ֲ IRST NUMBER#: CLEAR SCREENjPR$R$:50000: PRINT RESULT AT TOP OF SCREEN AS THE FIRST NUMBER360: START LOOP - THIS TIME WITH THE OLD RESULT AS THE NEW FIRST NUMBER GET NUMBER AND DISPLAY N$"": INITIALIZE N$:(21)!"ENTER NUMBER ('Q' TO QUIT) :")C$B C$"Q"C$"q"ĉ::C$(13)590: IF A RETURN IS ENTERED, EXIT THIS ROUTINEC$(3)ij: END PROGRAM WITH CONTROL CC$"R"C$"r"590: EXIT ROUTINE WITH 'R' SYMBOL AS RESTART MARKER]CP:VP,VP6HP3"DZO"ǎHP,HP3VP:VP,VP6HP3:HP3,HPVP6:VP,VP6HPU"DZ"ǎHP3,HPVP:VP,VP6HP:HP,HP3VP3:HP,HP3VP6"DZ"ȎHP,HP1VP3"ȱ"(ȍHP,VP6"Pȱ"ֲ W!ǎHP3,HPVP:VP,VP3HP:HP,HP3VP3:VP3,VP6HP3:HP,HP3VP6:VP6,VP3HP]!$DZ!8ǏVP1,VPHP:HP,HP3VP:VP,VP6HP3!LDZ!`ǎHP,HP3VP:VP,VP6HP3:HP3,HPVP6:VP6,VPHP:HP,HP3VP3!tDZ"ǎHP3,HPVP3:VP3,VPHP:HP,HP3VHP3,HPVP3:VP3,VP6HP:HP,HP3VP61 Ʊ{ ƎHP,HP3VP:VP,VP3HP3:HP3,HPVP3:VP3,VP6HP3:HP3,HPVP6 Ʊ ƏVP,VP3HP:HP,HP3VP3:VP,VP6HP3 Ʊ ƎHP3,HPVP:VP,VP3HP:HP3,HPVP3:VP3,VP6HP3:HP3,HPVP6!ƱR MOVE PAST HP 35 TO AVOID DRAWING 'OFF THE SCREEN'= ƂCHCƱƲ ============================ END OF DIGIT DRAWING LOOPCƲ LINES 50760 - 51280 CONTAIN THE INSTRUCTIONS FOR DRAWING EACH DIGITHƏVP,VP6HP1\Ʊ+ pƎHP,HP3VP:VP,VP3HP3:00,51040,51080,51120,51160,51200,51240ŭAC12AC1HPHP6:50680: MOVE OVER 6 SPACES FOR THE NEXT LETTER IN MOST CASESŭAC13HPHP2:50680: ONLY A LITTLE SPACE IS NEEDED FOR THE '.'HPHP4: SPACE 5 FOR A '1'5ŭHP35HP35: NEVERAWS THEM ON THE SCREEN*ŁCH1(PR$)D0ŪAC((PR$,CH,1))48ZDŭAC0AC10: '0'zXŭAC21AC53AC11: 'E'lŭAC3AC12: '-'ŭAC2AC13: '.'ŭAC1AC1350620: ILLEGAL CHARACTER(ŴAC50760,50800,50840,50880,50920,50960,510PR$R$:50000: DISPLAY RESULTS+FPò LARGE PRINT ROUTINE pdò VARIABLES USED: PR$, HP, VP, AC, CHà15: SET COLOR FOR LARGE PRINT LETTERSIJ=============================Ų THE LOOP BELOW GOES THROUGH THE STRING DIGIT BY DIGIT AND DN2):760'M$"*"R$(N1N2):760iM$"/"N20R$".......":760: AVOID DIVISION BY 0 ERRORSM$"/"R$(N1N2):760HP0:VP26: SET POSITION FOR DISPLAYING RESULTR$(R$,7): ONLY PRINT THE FIRST SEVEN DIGITS OF THE RESULT%:J:J04:HPJ,VP4J:J:690: DRAW 'X' SIGN~M$"/"ĎHP,HP4VP2:HP2,VP:HP2,VP4:690: DRAW '/' SIGN"IMPROPER SIGN, ENTER AGAIN ":610 CALCULATE AND DISPLAY RESULT M$"+"R$(N1N2):760 M$"-"R$(N1NCTION (+,-,*, OR /) " lM$JqM$(3)ij: EXIT PROGRAM ON CNTRL CasM$"R"M$"r"690vM$"+"ĎHP,HP4VP2:VP,VP4HP2:690: DRAW '+' SIGN AND EXIT ROUTINEM$"-"ĎHP,HP4VP2:690: DRAW '-' SIGN5M$"*"āJ04:HPJ,VPJEXT DIGIT OF THE NUMBER HN(N$)0C$"R"500NSiX DRAW MATH FUNCTION ]C$(13)M$C$:630: IF A MATH FUNCTION CHARACTER HAS ALREADY BEEN ENTERED, THEN SKIP THE MATH FUNCTION SECTION HERE_b"ENTER MATH FU12: REPEAT LOOPE0PR$C$:50000: DISPLAY DIGIT IN LARGE PRINTi:N$N$C$: ADD DIGIT TO STRINGB(22):"OR MATH FUNCTION (+,-,*,/, OR =)": ADD MESSAGE TO REMIND USER THAT MATH FUNCTIONS MAY BE TYPED NOW/D520: REPEAT LOOP TO GET THE NER IS A NUMBER, ACCEPT INPUT|!C$"-"C$"."560: ACCEPT OTHER POSSIBLE CHARACTERS WHICH COULD BE A PART OF A NUMBER"C$"e"C$"E"#C$"E"(N$)0560: ACCEPT AN 'E' EXCEPT AS THE FIRST CHARACTER&" ILLEGAL CHARACTER, REENTER ":5$"+"C$"*"C$"/"C$"="590: EXIT ROUTINE IF A MATH FUNTION IS ENTERED (ACCEPT AN '='C$"-"(N$)0590: EXIT ROUTINE IF A '-' IS ENTERED EXCEPT AS THE FIRST CHARACTER (TO ALLOW FOR NEGATIVE ENTRY)(C$)47(C$)58560: IF A CHARACT@ @ @ @  @@``zy`'D @ @  @ @ x@ E@ BHH@H@H@@HE @H@ zEI@@@H@H@@HE   @EEIA@ @ @ @ }`@ @ @ @!@ @ @ @ @@% @@GGOHGG@GOH@BH BG@G@GOH@BH@B@BBxX `@@ @Y@ @ @ @ p@ @ z@ @ @ @ @ @ @@ap( @JHL BHH@H@GGHBH @ @HJL@@H@GGHBH @GHBH @"<@~0@"{@ @ @ @ @ @ @ @!@ @ @ @ @ @ @@ @ A!B #@@"0@B`@HGGGG@HOGBH@HGGG@HOGBHBG@HHGHH@`x(@aL P"8@"D x@ @ 0@ @ ` @ @ @ @ @HOH BHH@H@DHHBO @ @OLH@@H@DHHBO @DOBO @ @ @ @ @)` Q p" @ @ @z_ @r@` x@ E@ BHH@H@H@@HE @H@ zEI@@@H@H@@HE   @EEIA@ @ @ @ }`@ @ @ @!@ @ @ @ @@% @@GGOHGG@GOH@BH BG@G@GOH@BH@B@BBxX `@@ @Y@ @ @ @ p@ @ z@ @ @ @ @ @ @@@ @ @ @  @@{ @x@ @  @ @ ``zy`'D {@ @ @ @ @ @ @ @!@ @ @ @ @ @ @@ @ A!B #@@"0@B`@HGGGG@HOGBH@HGGG@HOGBHBG@HHGHH@`x(@aL P"8@"D x@ @ 0@ @ ` @ @ @ @ @HOH BHH@H@DHHBO @ @OLH@@H@DHHBO @DOBO @ @ @ @ @)` Q p" @ @ @z_ @r@JHL BHH@H@GGHBH @ @HJL@@H@GGHBH @GHBH ap( ~0@"@"<@{ @x @`