' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?   1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 VDP (ED Z $0x8x D- ܸDD# H8`?E Vk *f???0xE Hh D#-EEE8` D ܸx D - ܸx8`-0ݩ?ʥD EEE`   LDcpq` [` ~  LӜu`".Q`pNФbptťܥm2<(-Py0\|e<6e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUuW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu3'RͲʎRʎ]]]ɍuL͟ɍ}RLRɍg^H8 ^hZLɍR LͲɊRR% QLܤͲ Z@ -^ ş\[Z QY\[Z8`l6Lş_Ȍb_Ͳ] )Y h( ֭ͲLɍ [LLĦ__ ^ 9 LҦ3 9 a   0LjLY u< (_9 ˭ɠuɠK_9 ?LˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`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- (  @Ϡ@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"L ŵ8ŵH ~(` d ֠z# u`) ' '  ' (  '  '  ' (  ' % '  ' (  ' (  ' (  ' )  ' ( % '  ' (  ' )  ' ) ' '  ' (  '  '  ' )  ' % ' y(  ' (  ' (  '  ' (  ' )  ' ) ' '  ' (  '  '  ' )  ' ( %` '  ' (  '  '  ' )  ' ( % ' (  '  ' )  '  ' )  ' %` ' (  '  '  '  ' )  ' % '  ' (  ' (  '  ' (  ' ) ` '  ' y(  ' ( ` '  ' ) ` ' ) ' ' %` ' y(  '  ' % '  ' (  '  '  ' )  ' ( %` '  ' (  '  '  ' )  ' ( % ' (  '  ' )  ' )  '  ' % '  ' (  ' ( ` ' (  '  ' (  ' (  '  ' % '  ' (  '  '` ' (  '  '  '  ' (  ' % ' (  '  ' (  ' (  ' )  ' ( % ' (  '  ' ) ` ' (  '  '  '  ' (  ' % '  ' (  ' (  ' (  ' )  ' ( % '  ' (  ' )  ' )  ' (   '  ' (  ' (  ' )  ' % '  ' (  ' ) ` '  ' (  '  '  ' (  ' ( % ' (  '  ' (  ' (  ' )  ' ( % ' (  '  ' ) ` '  ' (  ' % '  ' (  ' (  '  ' )  ' ( %L ?) ' ' v( ( q' ' <) * L '  _!x!!g""####g$$%x%% ' 0) ( q' ' v( * L"! ' ) 'LE! ' <) $L [( T 'LPRESS RETURN TO CONTINUE   * L= T) z [( ' ) ' ' ) ' R ) ) - ' ) L&L% |( 8* )   ~ ) '  |( 4  u ) ' ' X( $Ls ) ' ' ) $L ') ' ( ' $L 3) ' ( ' $  O( ^ ' ) ( (L  O( ) ' ' O( ) c ( }' ' 7( y( 4( O( ) ' R )  1 W* 7( ( (L. ' ( m( @(L[ .( ' ( ( ( +( z' q' |( 1( n k' @( ( ' RLmMEAN: g  )  C( ' RLSTANDARD DEVIATION:   ' ) ' ) c ( i o L#   ' ^L COUNTS:   ' ) aL TIME:   ' ) a `  ' ) > [( T XLQCOMPLETE TABLE OF TIME DATA: 4  Ll TIMES (SEC.) _  ( > ( T [( 4( m( ' m( ' |( W* '  ~L# LLE )  u ( )  |( 4  LO )  ( &L L0000 ) 5   ) ' ( (L# ) (  ) ' ( LO ' A c ' i # ( )  )` ' ) m( o [( W* (  ~ O( ( n ) ' ' ) ' G b' L( ) _' q' ' ) n' o 1 W*   [( ' ' y( ' o) ; )  wL(PRESS SPACE BAR TO START AND STOP TIMING   s x) ; ) G v( $L1 |( ' 'L: P LL XL Lc ) ' 3) ' ' H) d( # c K) i ' '  ) ' # ' $LL.0000 ) 5   )LO )  ( TH THEIR   L$MEAN AND STANDARD DEVIATION. A MORE   L!ELABORATE VERSION OF THIS PROGRAM   LF CALLED 'PRECISION TIMER', WHICH %  L|'IS DESIGNED FOR USE WITH PHOTOGATES, IS T  L AVAILABLE FROM VERNIER SOFTWARE. WS YOU TO USE THE   LAPPLE AS A DIGITAL STOPWATCH   L%WHICH DISPLAYS TIMES IN LARGE DIGITS.   LP%PRESS THE SPACE BAR TO START AND STOP *  L#THE TIMER. PRESS ANY OTHER KEY TO ^  L#DISPLAY A TABLE OF TIMES WIATION DATA:   ( aL CTS/SEC ON   *  LBY   )  L X ) L8 COMPUTER STOPWATCH   La VERNIER SOFTWARE F  L COPYRIGHT 1983 o  L"THIS PROGRAM ALLOe ~Q*rQ~Q X (  ])  (  ) ) L BLOAD TIMER   ( ( f) A "( Q ( A ' ) L4OPEN CALIBRATION #  ) LYREAD CALIBRATION H  '  (  *  )  ) LCLOSE CALIBRATION   LCALIBR       Ġ̮ҍ,$` L( L5 LD 8 XL XLR XQHPH RPhPhQ8 XL.0'L+ LfLLLLL ꥪLYԨéR L ,-` Leh8PhHQH`hbihciHHb\ȱb]`ߚl hhHHHH`L⥠`ʆ  hdheHdHHHH08  X Xhdhe + eHdHHHeHdH`   q% 0 L0`,wyywxzzx,Hyw wȄffȪ yw fh0`h&Hwyxzwy wy h Lh` ` ` ` 憅` ` ᥠQP` L  8e`LԩLcغh8uhHvH` L L L~ 憅 L ʊ8$!  W$Li)$` LY L   hPhQP 8ePQiHHš`hh PȱPʘHH` ,խwqq膸 J즸 , :hhlP,q`h8uhv] :  ڢ hgʆbcb KLf/q ߠ :۩q` S0 L,Hh*Mȱڦhwx%ȱH J hw0У8 ewwx𴰺 抦5?wtsʆwx8dedЕБt Z Z ,խvqq ", ȹ,ȹ ,W,qewix8 Z ZCBЍw U  yUUwyVxz`Зԥwyxz`ywzx`GH o8 UpVUVƠ UVUʆoph3]eУk ЮU 4Г U 5,wЅƩѤ wU! 5B=ooppȆbcĂbfUVd8ophLД8= 7MLdlkȄmn;op:E UUȥViлh8HH`Ї{y SՠUEowyywxzzxwIy:e \`fH,Hops8otpf,kiUliVU$f&łmUŁfbUȥcUUŭUVŮMvłGUŁ>UV2ЅUŕȱU喰!UUdUV0*UiUViVUmVnɊȢwU𧰸ХyyUU⥁œ.QP$  e LWHhL:5~    eȱeLaL LRwwxȆwxwHw Jhw`w5U,w`,hbhcbwȱbxcȘHH`wȄ wep`0CBe]Q=b`LicbbbE0`Ġ``MMLeڢD ! SL3LH h%LddЉ`?0 HH chh ޥ Yަ`н  eE   ࠰>Ffee0  &ߢEX$ƫv` ꥪLYDcbbwyȱbxz`ݥܦL+3UV UwȱUx`wUȥxU`Ncbbȱb`cbbȥb`cbbȱb8塅堅PEncbbȱbe HH`0S,,hdehUhVhhHHU hehHehUU HHk`UiȱUiuкe& & &eeHHqUȥqUeFdO݅܆`ycbbȱbƫ8pM䡥UȥUU +뺠ЧUV욥VHUHthhЁ HHf ㈱ۺQi e 纼 +뺊i  e HH`iiiHH`(bcbebbePE1b]  0  j=i<<=kbޙץ,,stHʈcbhH ʈpoophMm X RQtPsh`bhH     [2 THIS PROGRAM SIMPLY LOADS AND RUNS THE COMPUTER STOPWATCH PROGRAM COMPILED VERSION.d(4)"BLOAD RUNTIME"(13)(4)"BRUN CS.OBJ"x L\&"WITH THIS PROGRAM. SEE THE USER'S Tf&"MANUAL FOR MORE COMPLETE INSTRUCTIONS qp&"ON USING THIS PROGRAM.&:::" PRESS RETURN TO BEGIN THE PROGRAM "::678&(4);"RUN VECTOR ADDITION II"J%"ENTER 'C' TO SEE THE COMPONENTS OF THE C%"VECTORS DISPLAYEDI%r%"ENTER 'P' TO PRINT OUT THE RESULTSx%%"ENTER 'Q' TO QUIT THE PROGRAM%::" PRESS RETURN TO CONTINUE ":678:H&R&"IT IS ALSO POSSIBLE TO SUBTRACT VECTORS'"PRESS 'RETURN' TO RERUN THE PROGRAM*]%Sb%"ENTER 'D' TO DUPLICATE THE VECTOR jl%"ADDITION DIAGRAMpq%v%"ENTER 'R' TO ADD THE VECTORS IN%"REVERSE ORDER%%"ENTER 'A' TO ADD THE VECTORS IN THE%"AUTOMATIC SCALING MODE%+THER VECTORS. THE MAGNITUDE ANDI $"DIRECTION OF THE RESULTANT WILL BE v $"DISPLAYED AT THE BOTTOM OF THE SCREEN. $::" PRESS RETURN TO CONTINUE ":678: $ %"YOU WILL THEN BE PRESENTED WITH A MENU &%"OF OPTIONS. YOU MAY THEN:$X%:ADDED, ENTER 0,0 AS MAGNITUDEG h$"AND DIRECTION VALUES TO SIGNAL THE t r$"COMPUTER TO DO THE CALCULATION AND THE |$"DRAWING OF THE RESULTANT." $ $"THE RESULTANT WILL BE DRAWN AND WILL $"FLASH ON AND OFF TO DISTINGUISH IT FROM $"THE OOF THEIR 'TAILS'";? )$"AT THE CENTER OF THE SCREEN. LATER THEl *$"VECTORS WILL BE REDRAWN IN THE PROPER +$"POSITION FOR ADDITION." @$::" PRESS RETURN TO CONTINUE ";:678: J$ T$"WHEN YOU HAVE ENTERED ALL OF THE VECTORS"; ^$"YOU WANT "$"FROM DIRECTLY TO THE RIGHT (UP = 90,"V #$"LEFT = 180, DOWN = 270 OR -90). ANY " $$"ANGLE MAY BE USED, INCLUDING DECIMALS," %$"NEGATIVES AND ANGLES > 360 DEGREES." &$ '$"ARROWS REPRESENTING THE VECTORS WILL  ($"FIRST BE DRAWN WITH ALL PROGRAM WILL DEMONSTRATE THE J #"ADDITION OF VECTORS. UP TO 19 VECTORSv #"MAY BE ADDED. YOU ENTER THE MAGNITUDE $"AND DIRECTION (SEPARATED BY A COMMA) OF" $"EACH VECTOR. ANGLES SHOULD BE ENTERED" $"IN DEGREES MEASURED COUNTERCLOCKWISE"*' VECTOR ADDITION II INSTRUCTIONS>(# INSTRUCTION TEXTD#J#m#" VECTOR ADDITION II"#" COPYRIGHT 1983"#" VERNIER SOFTWARE#" 2920 S.W. 89TH#" PORTLAND, OR # #"THIS     `ؠҠЉŠԠ̤IJӠ٠٠ϠŠ`ӠϠŠĠΠ̠Ϡ>&`ݠݠ TURN OFF PRINTERPe3000: CALCULATE COORDINATES`e2000: DRAW VECTOR ON PAGE 2geJe756: WAIT FOR KEYPRESSeJ1N1e 10000e3000: CALCULATE COORDINATESe1000: DRAW ARROW ON PAGE ONEeJe +++++f" RESUIL TO TAIL)/dJ1Č756: WAIT FOR KEYPRESSfd1000: DRAW ARROW ON SCREEN ONE (TAIL TO HEAD)mdJyd =====dM$"M"290: SKIP THE DRAWING OF THE VECTORS ON PAGE ONE IF IT HAS ALREADY BEEN DONEd4000: AUTOSCALEd +++++eJ1NHAVE A MAGNITUDE OF ZERO WcM(J)0NJ:JMAX:205: EXIT LOOP IF RESULTANT cM$"M"205: SKIP GRAPHICS HERE IF IN AUTOSCALING MODEc10000: SELECT COLORc3000: CALCULATE ARROW COORDINATES d2000: DRAW ARROW ON SCREEN TWO (TACTION FOR VECTOR ";JCb"(DIRECTIONS:0=RIGHT,90=UP,-90=DOWN,ETC)"RbM(J),D(J)bM(J)0M(J)(M(J)):D(J)D(J)180: ON NEGATIVE ANGLE INPUT USE REVERSED VECTORcJ1M(J)0ĺ" THERE ARE NO VECTORS TO ADD YET ":155: THE FIRST VECTOR CANNOT Q$,1)"Y"İ9000: DISPLAY INSTRUCTIONS=ax8000: INITIALIZEZa}7000: SELECT MONITORra7600: SELECT MODEa5000: SET UP BOTH SCREENSaRESLT0: SET RESULTANT FLAGa ======aJ1MAX: TOP OF MAIN LOOPb"ENTER MAGNITUDE, DIRE$e` VECTOR ADDITION II, COPYRIGHT 1983, VERNIER SOFTWARE, 2920 S.W. 89TH ST., PORTLAND, OR 97225`2(4);"BLOAD TEXT 2,A$800": LOAD PAGE TWO OF TEXT`Z ***** `d MAIN PROGRAM`i::10`n"DO YOU NEED ON-SCREEN INSTRUCTIONS? ";Q$&as(            @pqpp@@@` p@"#$ xgp~p?@s@  @ p@0 `@a@CCC   @ x@@C@a000@H`w~~@00x?@  f @x`pp@@@  @BCc pGp|p~@c@@  @ 8@0 `@a@CCC  `w@`@CC@a0` 0@Nr@CC@a00 @  f  @<@|pp@@@@  @ `pxp|@C@xp  @ @ | `@a@CCC  @@CC@a0` 0@BBw@CC@a00 @  C`~ @|pp@@@`  @ @  agCC @ | `@a@CCC  |w@~~@CC0xx?@BBCC@a0x?@  C`~ |pp@@@0 `pp|@ @ @""<q $$ @   `@a@CCC <~@~~@CC0xx?@"FCC@a0x?@ pp@p@@ ppp~@ @ @""" $p@@   `@a@CCC <`?*U*U*U*U*U@@"D~@C@a00xx@ ?pp@p@@ 0@?xpp@@ |@ p@""" BG@@ pp?`<@~~Ca?pLxj*U*U*U*U*U@@ppp?`@~~C<p `~@L~@C@a00xx@ pp@p@?@ @`{pp@@@ F@ p@"qyx"$Os?~~~@00x?@ pp?`<@~~Ca?pL\**U*U*U*U*U@@ppp?`@~~C<p `~  @H@@C@a000@                      THAT THE PROGRAM WILL BE LOADED ABOVE THE HI-RES GRAPHIC SCREEN MEMORY h D$;"RUN VECTOR ADDITION IIn ( Dp GREETINGS PROGRAM9D$(4): CHR$(4)IS CNTRL D MASTER DISKETTE CREATED ON NOVEMBER 15, 1983 BY D. VERNIER: CLEAR HI-RES SCREEN 2D$;"BLOAD VECTOR ADDITION LOGO, A$4000H 103,1:104,96:24576,0: SET POINTERS SO  XH(20),YH(20)#~XA(20),YA(20).~M(20)m~ XH(0)140:YH(0)80: SET STARTING MARK AT CENTER OF SCREEN~ XA(0)0:YA(0)0~l RA57.2957787: DEGREES IN ONE RADIAN~ DEC10000: SET ROUNDING TO 4 SIGNIFICANT FIGURES~"~'# ***** (# DISXAMPLE, IF YOU ARE WORKINGK}Z"WITH VECTORS SEVERAL THOUSAND UNITS LONG";|}d"YOU MAY WANT TO LET EACH SPACE STAND FOR";}n"100 UNITS.}x}"ENTER VALUE FOR EACH SPACE ON SCREEN ";S}}? ***** }@ INITIALIZE }rMAX20}D(20)~IZONTALLY:|"AND 160 SPACES TALL VERTICALLY. WE WILL";k|"START THE TAIL OF THE FIRST ARROW AT THE";|("CENTER. YOU SHOULD CHOOSE A VALUE THAT|2"KEEPS YOUR ARROWS ON THE SCREEN BUT"|<"MAKES THEM LARGE ENOUGH TO BE SEEN}P"EASILY. FOR E{M${M$(M$,1)S{M$"M"7900: USE AUTO MODE UNLESS AN "M" WAS ENTERED}{"IN THE MANUAL MODE YOU NOW NEED TO"{"SELECT A SCALE FOR THE ARROW REPRESENTA-";{"TIONS OF THE VECTORS. THE SCREEN WE ARE" | "USING IS 280 SPACES WIDE HOR MONITOR TYPE:":6z" M = MONOCHROMATIC Rz" C = COLOR[zTV$wz TV$"C"TV$"M"7140}zzK ***** zL SELECT MODEz"SELECT MODE:":z" A = AUTOMATIC SCALING{" M = MANUAL SCALING,0: CLEAR KEYBOARD STROBE eyPRESLTRESLT1: TOGGLE RESULTANT FLAG TO PRODUCE A FLASHING ARROW oyd6250uyyW ***** yX SELECT MODEyy"BEFORE THE VECTORS CAN BE ADDED YOUy"NEED TO ENTER SOME INFORMATION:"y:z"ENTER)xQYIYH(N)5(2.3R)2xVXJXH(N)5(3.93R)Kx`YJYH(N)5(3.93R)[xjRESLT1Ē3lxtRESLT1Ē0xXT,YTXH(N),YH(N)XI,YIXJ,YJXH(N),YH(N): DRAW RESULTANT ARROWx<(16384)127Ĺ16368,0:::6900: EXIT ROUTINEyF16368TENTH OF A DEGREE@w"RESULTANT DIRECTION = ";;D(N);" DEGREES"w$XH(N)5XH(N)274YH(N)5YH(N)154ĺ:"UNABLE TO DRAW THE RESULTANT ":6900w."PRESS RETURN TO RERUN PROGRAM ";w8 CALCULATE COORDINATES OF RESULTANT ARROWxNXIXH(N)5(2.3RANGLE FOR THE RESULTANTEvD(N)RRA: CONVERT RADIANS TO DEGREESKvv::" DOTS ARE SPACED ";S10;" UNITS APART ":vNUMM(N):600: ROUNDvM(N)NUMv"MAGNITUDE OF RESULTANT = ";M(N)wD(N)(D(N)100.5)10: ROUND ANGLE TO )YH(N1): SET HEAD OF RESULTANT AT HEAD OF LAST VECTOR_uXA(N)XA(N1):YA(N)YA(N1)uM(N)(XA(N1)2YA(N1)2): MAGNITUDE OF RESULTANTvR(YA(N)(XA(N))):XA(N)0RR3.1415: TO CORRECT TO ALWAYS GET THE RIGHT X,Yt:tPtU22FtZ" PREPARING SCREENS FOR GRAPHICS"VtdX027010ftnY015010otxX,Ywt:t:t to ***** tp DISPLAY RESULTANTtXTXH(0):YTYH(0): SET TAIL AT CENTER OF SCREEN?uXH(N)XH(N1):YH(NYSSXS:4300s|SYS;s SCALE TO A 'NICE EVEN NUMBER'VsNUMS:600:NUMNUMPWRzsNUM(23(NUM2)5(NUM5))PWRs0SNUMs$s ****** s GET BOTH SCREENS READY TO PLOT VECTORSsss3sX027010s Y015010tN1^rXA(J)XA(J1)M(J)(D(J)RA): CALCULATE ACTUAL POSITION OF END OF VECTORrYA(J)YA(J1)M(J)(D(J)RA)r,(XA(J))TXTX(XA(J))r6(YA(J))TYTY(YA(J))rJJrhXSTX135:YSTY75: CALCULATE RAW SCALING FACTORSsrXSq XFXE5(2.3R))q YFYE5(2.3R)?q XGXE5(3.93R)Uq YGYE5(3.93R)q XA(J)XA(J1)M(J)(R): CALCULATE ACTUAL POSITION OF END OF VECTORq YA(J)YA(J1)M(J)(R)q<q ***** q AUTOSCALEqTX0:TY0rJ1 ARROW pT p ***** iJ1N1liMM(J)M(NJ):DD(J)D(NJ): SWAP VECTORSsiJiJ1N1iM(J)MM(J):D(J)DD(J)iJi5000: PREPARE SCREENSi260iiN ***** iX ROUNDibPWR1jl(NUM)1' DUPLICATE VECTOR DIAGRAM ]hmQ$"A"İ5000:220: ON "A" REDRAW IN AUTOSCALE MODEhrQ$"C"İ20000:305: ON "C" DISPLAY COMPONENTShwQ$"P"İ20000:305: ON 'P' PRINT DATAhzQ$"Q"ī30000: END PROGRAMi|::130: REPEAT PRO ORDER.gJ"A = ADD VECTORS IN AUTOSCALE MODETgO"C = DISPLAY X AND Y COMPONENTS pgT"P = PRINT OUT RESULTSgY"Q = QUIT PROGRAMg^:Q$:Q$(Q$,1)gcQ$"R"395: ON 'R' REDRAW WITH VECTORS IN REVERSE ORDER hhQ$"D"İ5000:230: ON 'D f'RESLT1: SET RESULTANT FLAGZf,6000: DISPLAY RESULTANT'S MAGNITUDE AND DIRECTIONsf1 PRESENT OPTIONS:yf3f6"PRESS RETURN TO RERUN PROGRAM, OR ENTER:";f;f@"D = REDRAW SAME VECTOR ADDITION DIAGRAM"gE"R = ADD VECTORS IN REVERSE10000: SELECT COLOR8e3000: CALCULATE COORDINATESZe2000: DRAW VECTOR ON PAGE 2aeJe756: WAIT FOR KEYPRESSeJ1N1e 10000e3000: CALCULATE COORDINATESe1000: DRAW ARROW ON PAGE ONEeJe +++++e" RESULTANTTAIL))dJ1Č756: WAIT FOR KEYPRESS`d1000: DRAW ARROW ON SCREEN ONE (TAIL TO HEAD)gdJsd =====dM$"M"290: SKIP THE DRAWING OF THE VECTORS ON PAGE ONE IF IT HAS ALREADY BEEN DONEd4000: AUTOSCALEd +++++dJ1N1e A MAGNITUDE OF ZEROQcM(J)0NJ:JMAX:205: EXIT LOOP IF RESULTANT cM$"M"205: SKIP GRAPHICS HERE IF IN AUTOSCALING MODEc10000: SELECT COLORc3000: CALCULATE ARROW COORDINATESd2000: DRAW ARROW ON SCREEN TWO (TAIL TO CTION FOR VECTOR ";JCb"(DIRECTIONS:0=RIGHT,90=UP,-90=DOWN,ETC)"RbM(J),D(J)bM(J)0M(J)(M(J)):D(J)D(J)180: ON NEGATIVE ANGLE INPUT USE REVERSED VECTORcJ1M(J)0ĺ"THERE ARE NO VECTORS TO ADD YET ":155: THE FIRST VECTOR CANNOT HAVEQ$,1)"Y"İ9000: DISPLAY INSTRUCTIONS=ax8000: INITIALIZEZa}7000: SELECT MONITORra7600: SELECT MODEa5000: SET UP BOTH SCREENSaRESLT0: SET RESULTANT FLAGa ======aJ1MAX: TOP OF MAIN LOOPb"ENTER MAGNITUDE, DIRE$e` VECTOR ADDITION II, COPYRIGHT 1983, VERNIER SOFTWARE, 2920 S.W. 89TH ST., PORTLAND, OR 97225`2(4);"BLOAD TEXT 2,A$800": LOAD PAGE TWO OF TEXT`Z ***** `d MAIN PROGRAM`i::10`n"DO YOU NEED ON-SCREEN INSTRUCTIONS? ";Q$&as(                      ULTANT = ";M(N)OvD(N)(D(N)100.5)10: ROUND ANGLE TO TENTH OF A DEGREE~v"RESULTANT DIRECTION = ";;D(N);" DEGREES"v$XH(N)5XH(N)274YH(N)5YH(N)154ĺ:"UNABLE TO DRAW THE RESULTANT ":6900v."PRESS RETURN TO RERUN PROGRAM ";'w8 C.1415: TO CORRECT TO ALWAYS GET THE RIGHT ANGLE FOR THE RESULTANTuD(N)RRA: CONVERT RADIANS TO DEGREESuu::" DOTS ARE SPACED ";S10;" UNITS APART ":uNUMM(N):600: ROUNDuM(N)NUMv"MAGNITUDE OF RES SET TAIL AT CENTER OF SCREEN}tXH(N)XH(N1):YH(N)YH(N1): SET HEAD OF RESULTANT AT HEAD OF LAST VECTORtXA(N)XA(N1):YA(N)YA(N1)tM(N)(XA(N1)2YA(N1)2): MAGNITUDE OF RESULTANTUuR(YA(N)(XA(N))):XA(N)0RR3 VECTORSsss3+sX027010;s Y015010DsX,YLs:RsPZsU22sZ" PREPARING SCREENS FOR GRAPHICS"sdX027010snY015010sxX,Ys:s:s so ***** sp DISPLAY RESULTANT'tXTXH(0):YTYH(0):6rhXSTX135:YSTY75: CALCULATE RAW SCALING FACTORSLrrXSYSSXS:4300Ur|SYSyr SCALE TO A 'NICE EVEN NUMBER'rNUMS:600:NUMNUMPWRrNUM(23(NUM2)5(NUM5))PWRr0SNUMr$r ****** s GET BOTH SCREENS READY TO PLOTR)q<q ***** &q AUTOSCALE4qTX0:TY0AqJ1N1qXA(J)XA(J1)M(J)(D(J)RA): CALCULATE ACTUAL POSITION OF END OF VECTORqYA(J)YA(J1)M(J)(D(J)RA)q,(XA(J))TXTX(XA(J))q6(YA(J))TYTY(YA(J))qJJ(J)(R)S=p CALCULATE COORDINATES OF ARROW POINTER TIPS:Rp XFXE5(2.3R)gp YFYE5(2.3R)}p XGXE5(3.93R)p YGYE5(3.93R)p XA(J)XA(J1)M(J)(R): CALCULATE ACTUAL POSITION OF END OF VECTORq YA(J)YA(J1)M(J)(TYGDoXT,YTXH(J),YH(J)XI,YIXJ,YJXH(J),YH(J): DRAW ARROWJoT Xo ***** zo CALCULATE ARROW COORDINATESo ROUTINE TO CALCULATE ENDPOINTS o: RD(J)RAoD XEM(J)(R)S: CALCULATE SCALED POSITION OF END OF ARROW pN YEM STARTING POINT OF ARROW]nzXH(J)XTXE:YH(J)YTYE: CALCULATE POSITION OF HEAD OF ARROWnXH(J)5XH(J)274YH(J)5YH(J)154ĺ"UNABLE TO DRAW THIS VECTOR ":2900nXIXTXF:YIYTYF: CALCULATE ACTUAL TIPS OF ARROW POINTERoXJXTXG:YJY STILL BE CALCULATED Am"MATHEMATICALLY AND YOU CAN CONTINUE."GmMmlZm ***** wm DRAW ARROW ON PAGE TWOm49232,0:49237,0:49239,0: DISPLAY PAGE TWO HI-RES GRAPHICSm230,64: SET UP TO DRAW ON PAGE TWOnpXTXH(0):YTYH(0): SETYTYGBlXT,YTXH(J),YH(J)XI,YIXJ,YJXH(J),YH(J): DRAW ARROWkl1900: GRAPHICS DONE LEAVE ROUTINEql(wl<lP"THE ARROW REPRESENTING THAT VECTOR"ld"GOES OFF THE SCREEN AND CANNOTlx"BE DRAWN AT THIS SCALE. THE"m"RESULTANT WILLVECTORJk~XH(J)XTXE:YH(J)YTYE: CALCULATE POSITION OF HEAD OF ARROWxkXH(J)5XH(J)274YH(J)5YH(J)1541320kXH(J1)5XH(J1)274YH(J1)5YH(J1)1541320kXIXTXF:YIYTYF: CALCULATE ACTUAL TIPS OF ARROW POINTERlXJXTXG:YJCj49232,0:49236,0:49239,0: DISPLAY PAGE TWO HI-RES GRAPHICSlj230,32: SET UP TO DRAW ON PAGE ONEtj20j::" DOTS ARE SPACED ";S10;" UNITS APART ";:868::kyXTXH(J1):YTYH(J1): SET TAIL OF VECTOR AT THE HEAD OF THE LAST iN ***** iX ROUND%ibPWR17il(NUM)1650Wiv(NUM)PWRPWRPWR10:630`i660i(NUM)PWR10PWRPWR10:650iFCTR10PWRDECiNUM0690iNUM(NUMFCTR.5(NUM)NUM)FCTRii ***** i DRAW ARROW ON PAGE ONE"ī30000: END PROGRAM8h|::130: REPEAT PROGRAMEh ======eh REVERSE ORDER OF VECTORS:rhJ1N1hMM(J)M(NJ):DD(J)D(NJ): SWAP VECTORShJhJ1N1hM(J)MM(J):D(J)DD(J)hJh5000: PREPARE SCREENSh260iS IN REVERSE ORDERTghQ$"D"İ5000:230: ON 'D' DUPLICATE VECTOR DIAGRAM gmQ$"A"İ5000:220: ON "A" REDRAW IN AUTOSCALE MODEgrQ$"C"İ20000:305: ON "C" DISPLAY COMPONENTSgwQ$"P"İ20000:305: ON 'P' PRINT DATAhzQ$"QR ADDITION DIAGRAM":fE"R = ADD VECTORS IN REVERSE ORDERbfJ"A = ADD VECTORS IN AUTOSCALE MODEfO"C = DISPLAY X AND Y COMPONENTS fT"P = PRINT OUT RESULTSfY"Q = QUIT PROGRAMf^:Q$:Q$(Q$,1)gcQ$"R"395: ON 'R' REDRAW WITH VECTORRROW ON PAGE ONEeJ#e +++++3e" RESULTANTTe'RESLT1: SET RESULTANT FLAGe,6000: DISPLAY RESULTANT'S MAGNITUDE AND DIRECTIONe1 PRESENT OPTIONS:e3e6"PRESS RETURN TO RERUN PROGRAM, OR ENTER:";e;f@"D = REDRAW SAME VECTOEd4000: AUTOSCALE#d +++++0dJ1N1Jd10000: SELECT COLORld3000: CALCULATE COORDINATESd2000: DRAW VECTOR ON PAGE 2dJd756: WAIT FOR KEYPRESSdJ1N1d 10000d3000: CALCULATE COORDINATESe1000: DRAW ANATES9c2000: DRAW ARROW ON SCREEN TWO (TAIL TO TAIL)]cJ1Č756: WAIT FOR KEYPRESSc1000: DRAW ARROW ON SCREEN ONE (TAIL TO HEAD)cJc =====dM$"M"290: SKIP THE DRAWING OF THE VECTORS ON PAGE ONE IF IT HAS ALREADY BEEN DONVECTOR ";J9b"(DIRECTIONS:0=RIGHT,90=UP,-90=DOWN,ETC)"HbM(J),D(J)bM(J)0NJ:JMAX:205: EXIT LOOP IF RESULTANT bM$"M"205: SKIP GRAPHICS HERE IF IN AUTOSCALING MODEb10000: SELECT COLORc3000: CALCULATE ARROW COORDI9000: DISPLAY INSTRUCTIONS3ax8000: INITIALIZEPa}7000: SELECT MONITORha7600: SELECT MODEa5000: SET UP BOTH SCREENSaRESLT0: SET RESULTANT FLAGa ======aJ1MAX: TOP OF MAIN LOOP b"ENTER MAGNITUDE, DIRECTION FOR #e` VECTOR ADDITION II, COPYRIGHT 1983, VERNIER SOFTWARE, 2920 S.W. 89TH ST., PORTLAND, OR 97225`2(4);"BLOAD TEXT 2,A$800": LOAD PAGE TWO OF TEXT`Z ***** `d MAIN PROGRAM`i::10`n"DO YOU WANT INSTRUCTIONS? ";Q$as(Q$,1)"Y"                  2000pN$"A"N10'zN$"B"N118N$"C"N12IN$"D"N13ZN$"E"N14kN$"F"N15yN92240N(N$)VVN16(J1)J"DECIMAL EQUIVALENTS:"(15):V;:(27):V1642100M(H$)4H$"0"H$:2118: ADD LEADING ZEROES TILL YOU HAVE A 4 DIGIT NUMBERTHV0_RJ14g\N0zfN$(H$,5J,1)k((N$)47(N$)58)((N$)64(N$)71)2160: CHECK TO SEE IF AN ILLEGAL CHARACTER HAS BEEN ENTEREDm"IMPROPER CHARACTER ":1110Q***********************************************************************n HEX TO DECIMAL ROUTINEt"TO EXIT, MAKE NO ENTRY AND PRESS RETURN" 4"ENTER HEX NUMBER ";H$CH$""ıE(H$)4ĺ" FOUR DIGITS ONLY ":2000LFRTH DIGIT/ "HEXADECIMAL EQUIVALENT = $";: J14U xD(J)10D$(J)(D(J))l D(J)10D$(J)"A" D(J)11D$(J)"B" D(J)12D$(J)"C" D(J)13D$(J)"D" D(J)14D$(J)"E" D(J)15D$(J)"F" @D$(J); rJ :l1)(V4096): CALCULATE 1ST DIGIT OF RESULTW RVD(1)4096: CALCULATE REMAINDER D(2)(R256): CALCULATE SECOND DIGIT RRD(2)256: CALCULATE REMAINDER D(3)(R16): CALCULATE THIRD DIGIT RRD(3)16 D(4)R: CALCULATE FO"ENTER A DECIMAL NUMBER ";V$0 `V$""ı< aV(V$)i bV0ĪV65536V:(29):"(";V;")":V$(V)x dC1(V$) e((V$,C,1))48((V$,C,1))57ĺ"IMPROPER CHARACTER ":1000 gC tV65536ĺ"NUMBERS > 65536 ARE NOT PERMITTED":1000- ~D(10):"B - HEXADECIMAL TO DECIMAL( M$: M$"A"İ1000L M$"B"İ2000U "100  ***********************************************************************  DECIMAL TO HEX ROUTINE  "TO EXIT, MAKE NO ENTRY AND PRESS RETURN" $# VIS 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 (2 HEX-DECIMAL+< VERNIER SOFTWARE GF 2920 S.W. 89TH STREET`P PORTLAND, OR 97225mZ::(5)\" VERNIER SOFTWARE ^_" HEXADECIMAL - DECIMAL CONVERTER`" *******************************a:% d:"TH         Ґ` G  G  Ґ` G  G Ґ` G Ґ` G  G Ґ` G G G G Ґ` G G G Ґ` G G G Ґ` Ð p Ґ`  Ґ``ꩭ a ` a `  `ꩺ 4a` a` ` `hh`   Ґ`HARACTERS TO THE RIGHT OF THE DECIMAL POINTM `m(8):"ROUNDED NUMBER -> ";X$z Hq IN NORMAL USE A "RETURN SHOULD BE HERE zq 0u25000 R 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 CR: 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)10"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."+   YL '[L ']L 8  Y*8  =8QsL 8QuL 8QwL 8QyL 8Q{L 8Q}L QL 8QL 8QL 8QL 8QL Ld'Ld' L 'Ld'L 'L 'Ld'L 'L '!L '#Ld'(L '*L ',L '.L '0Ld'5L '7Ld' [( T 'LPRESS RETURN TO CONTINUE   * L= T) z [( ' ) ' ' ) ' R ) ) - ' ) L&L% |( 8* )   ~ ) '  |( 4  u ) ' ' X( $Ls ) ' ' ) $L ') ' ( ' $L 3) ' ( ' $  O( ^ ' ) ( (L  O( ) ' ' O( ) c ( }' ' 7( y( 4( O( ) ' R )  1 W* 7( ( (L. ' ( m( @(L[ .( ' ( ( ( +( z' q' |( 1( n k' @( ( ' RLmMEAN: g  )  C( ' RLSTANDARD DEVIATION:   ' ) ' ) c ( i o L#   ' ^L COUNTS:   ' ) aL TIME:   ' ) a `  ' ) > [( T XLQCOMPLETE TABLE OF TIME DATA: 4  Ll TIMES (SEC.) _  ( > ( T [( 4( m( ' m( ' |( W* '  ~L# LLE )  u ( )  |( 4  LO )  ( &L L0000 ) 5   ) ' ( (L# ) (  ) ' ( LO ' A c ' i # ( )  )` ' ) m( o [( W* (  ~ O( ( n ) ' ' ) ' G b' L( ) _' q' ' ) n' o 1 W*   [( ' ' y( ' o) ; )  wL(PRESS SPACE BAR TO START AND STOP TIMING   s x) ; ) G v( $L1 |( ' 'L: P LL XL Lc ) ' 3) ' ' H) d( # c K) i ' '  ) ' # ' $LL.0000 ) 5   )LO )  ( TH THEIR   L$MEAN AND STANDARD DEVIATION. A MORE   L!ELABORATE VERSION OF THIS PROGRAM   LF CALLED 'PRECISION TIMER', WHICH %  L|'IS DESIGNED FOR USE WITH PHOTOGATES, IS T  L AVAILABLE FROM VERNIER SOFTWARE. WS YOU TO USE THE   LAPPLE AS A DIGITAL STOPWATCH   L%WHICH DISPLAYS TIMES IN LARGE DIGITS.   LP%PRESS THE SPACE BAR TO START AND STOP *  L#THE TIMER. PRESS ANY OTHER KEY TO ^  L#DISPLAY A TABLE OF TIMES WIATION DATA:   ( aL CTS/SEC ON   *  LBY   )  L X ) L8 COMPUTER STOPWATCH   La VERNIER SOFTWARE F  L COPYRIGHT 1983 o  L"THIS PROGRAM ALLOe ~Q*rQ~Q X (  ])  (  ) ) L BLOAD TIMER   ( ( f) A "( Q ( A ' ) L4OPEN CALIBRATION #  ) LYREAD CALIBRATION H  '  (  *  )  ) LCLOSE CALIBRATION   LCALIBR       z#     ΠӮʠ ҠҠح̠ ҠΠɠЩ& Ϡ ҠΠϠ" ҠΠɠ&ԠӠ ҠȠŠ2 HEX-DECIMAL+< VERNIER SOFTWARE GF 2920 S.W. 89TH STREET`P PORTLAND, OR 97225mZ::(5)\" VERNIER SOFTWARE ^_" HEXADECIMAL - DECIMAL CONVERTER`" *******************************a:% d:"TH         Ґ` G  G  Ґ` G  G Ґ` G Ґ` G  G Ґ` G G G G Ґ` G G G Ґ` G G G Ґ` Ð p Ґ`  Ґ``ꩭ a ` a `  `ꩺ 4a` a` ` `hh`   Ґ`HARACTERS TO THE RIGHT OF THE DECIMAL POINTM `m(8):"ROUNDED NUMBER -> ";X$z Hq IN NORMAL USE A "RETURN SHOULD BE HERE zq 0u25000 R 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 CR: 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)10"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."+   YL '[L ']L 8  Y*8  =8QsL 8QuL 8QwL 8QyL 8Q{L 8Q}L QL 8QL 8QL 8QL 8QL Ld'Ld' L 'Ld'L 'L 'Ld'L 'L '!L '#Ld'(L '*L ',L '.L '0Ld'5L '7Ld'e3000: CALCULATE COORDINATES`e2000: DRAW VECTOR ON PAGE 2geJe756: WAIT FOR KEYPRESSeJ1N1e 10000e3000: CALCULATE COORDINATESe1000: DRAW ARROW ON PAGE ONEeJe +++++f" RESUIL TO TAIL)/dJ1Č756: WAIT FOR KEYPRESSfd1000: DRAW ARROW ON SCREEN ONE (TAIL TO HEAD)mdJyd =====dM$"M"290: SKIP THE DRAWING OF THE VECTORS ON PAGE ONE IF IT HAS ALREADY BEEN DONEd4000: AUTOSCALEd +++++eJ1NHAVE A MAGNITUDE OF ZERO WcM(J)0NJ:JMAX:205: EXIT LOOP IF RESULTANT cM$"M"205: SKIP GRAPHICS HERE IF IN AUTOSCALING MODEc10000: SELECT COLORc3000: CALCULATE ARROW COORDINATES d2000: DRAW ARROW ON SCREEN TWO (TACTION FOR VECTOR ";JCb"(DIRECTIONS:0=RIGHT,90=UP,-90=DOWN,ETC)"RbM(J),D(J)bM(J)0M(J)(M(J)):D(J)D(J)180: ON NEGATIVE ANGLE INPUT USE REVERSED VECTORcJ1M(J)0ĺ" THERE ARE NO VECTORS TO ADD YET ":155: THE FIRST VECTOR CANNOT Q$,1)"Y"İ9000: DISPLAY INSTRUCTIONS=ax8000: INITIALIZEZa}7000: SELECT MONITORra7600: SELECT MODEa5000: SET UP BOTH SCREENSaRESLT0: SET RESULTANT FLAGa ======aJ1MAX: TOP OF MAIN LOOPb"ENTER MAGNITUDE, DIRE$e` VECTOR ADDITION II, COPYRIGHT 1983, VERNIER SOFTWARE, 2920 S.W. 89TH ST., PORTLAND, OR 97225`2(4);"BLOAD TEXT 2,A$800": LOAD PAGE TWO OF TEXT`Z ***** `d MAIN PROGRAM`i::10`n"DO YOU NEED ON-SCREEN INSTRUCTIONS? ";Q$&as(          2000pN$"A"N10'zN$"B"N118N$"C"N12IN$"D"N13ZN$"E"N14kN$"F"N15yN92240N(N$)VVN16(J1)J"DECIMAL EQUIVALENTS:"(15):V;:(27):V1642100M(H$)4H$"0"H$:2118: ADD LEADING ZEROES TILL YOU HAVE A 4 DIGIT NUMBERTHV0_RJ14g\N0zfN$(H$,5J,1)k((N$)47(N$)58)((N$)64(N$)71)2160: CHECK TO SEE IF AN ILLEGAL CHARACTER HAS BEEN ENTEREDm"IMPROPER CHARACTER ":1110Q***********************************************************************n HEX TO DECIMAL ROUTINEt"TO EXIT, MAKE NO ENTRY AND PRESS RETURN" 4"ENTER HEX NUMBER ";H$CH$""ıE(H$)4ĺ" FOUR DIGITS ONLY ":2000LFRTH DIGIT/ "HEXADECIMAL EQUIVALENT = $";: J14U xD(J)10D$(J)(D(J))l D(J)10D$(J)"A" D(J)11D$(J)"B" D(J)12D$(J)"C" D(J)13D$(J)"D" D(J)14D$(J)"E" D(J)15D$(J)"F" @D$(J); rJ :l1)(V4096): CALCULATE 1ST DIGIT OF RESULTW RVD(1)4096: CALCULATE REMAINDER D(2)(R256): CALCULATE SECOND DIGIT RRD(2)256: CALCULATE REMAINDER D(3)(R16): CALCULATE THIRD DIGIT RRD(3)16 D(4)R: CALCULATE FO"ENTER A DECIMAL NUMBER ";V$0 `V$""ı< aV(V$)i bV0ĪV65536V:(29):"(";V;")":V$(V)x dC1(V$) e((V$,C,1))48((V$,C,1))57ĺ"IMPROPER CHARACTER ":1000 gC tV65536ĺ"NUMBERS > 65536 ARE NOT PERMITTED":1000- ~D(10):"B - HEXADECIMAL TO DECIMAL( M$: M$"A"İ1000L M$"B"İ2000U "100  ***********************************************************************  DECIMAL TO HEX ROUTINE  "TO EXIT, MAKE NO ENTRY AND PRESS RETURN" $# VIS 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 ( ALWAYS GET THE RIGHT ANGLE FOR THE RESULTANT[vD(N)RRA: CONVERT RADIANS TO DEGREESavv::" DOTS ARE SPACED ";S10;" UNITS APART ":vNUMM(N):600: ROUNDvM(N)NUMv"MAGNITUDE OF RESULTANT = ";M(N)'wD(N)(D(N)100.5)UuXH(N)XH(N1):YH(N)YH(N1): SET HEAD OF RESULTANT AT HEAD OF LAST VECTORuuXA(N)XA(N1):YA(N)YA(N1)uM(N)(XA(N1)2YA(N1)2): MAGNITUDE OF RESULTANT-vR(YA(N)(XA(N))):XA(N)0RR3.1415: TO CORRECT TO10t Y015010tX,Y$t:*tP2tU22\tZ" PREPARING SCREENS FOR GRAPHICS"ltdX027010|tnY015010txX,Yt:t:t to ***** tp DISPLAY RESULTANTtXTXH(0):YTYH(0): SET TAIL AT CENTER OF SCREENCALING FACTORS$srXSYSSXS:4300-s|SYSQs SCALE TO A 'NICE EVEN NUMBER'lsNUMS:600:NUMNUMPWRsNUM(23(NUM2)5(NUM5))PWRs0SNUMs$s ****** s GET BOTH SCREENS READY TO PLOT VECTORSsss3tX0270rTX0:TY0rJ1N1trXA(J)XA(J1)M(J)(D(J)RA): CALCULATE ACTUAL POSITION OF END OF VECTORrYA(J)YA(J1)M(J)(D(J)RA)r,(XA(J))TXTX(XA(J))r6(YA(J))TYTY(YA(J))rJJshXSTX135:YSTY75: CALCULATE RAW SF ARROW POINTER TIPS:*q XFXE5(2.3R)?q YFYE5(2.3R)Uq XGXE5(3.93R)kq YGYE5(3.93R)q XA(J)XA(J1)M(J)(R): CALCULATE ACTUAL POSITION OF END OF VECTORq YA(J)YA(J1)M(J)(R)q<q ***** q AUTOSCALE XH(J),YH(J): DRAW ARROW"pT 0p ***** Rp CALCULATE ARROW COORDINATES{p ROUTINE TO CALCULATE ENDPOINTS p: RD(J)RApD XEM(J)(R)S: CALCULATE SCALED POSITION OF END OF ARROWpN YEM(J)(R)Sq CALCULATE COORDINATES O:YH(J)YTYE: CALCULATE POSITION OF HEAD OF ARROWoXH(J)5XH(J)274YH(J)5YH(J)154ĺ"UNABLE TO DRAW THIS VECTOR ":2900oXIXTXF:YIYTYF: CALCULATE ACTUAL TIPS OF ARROW POINTERoXJXTXG:YJYTYGpXT,YTXH(J),YH(J)XI,YIXJ,YJLY AND YOU CAN CONTINUE."n%nl2n ***** On DRAW ARROW ON PAGE TWOn49232,0:49237,0:49239,0: DISPLAY PAGE TWO HI-RES GRAPHICSn230,64: SET UP TO DRAW ON PAGE TWOnpXTXH(0):YTYH(0): SET STARTING POINT OF ARROW5ozXH(J)XTXEXH(J),YH(J): DRAW ARROWCm1900: GRAPHICS DONE LEAVE ROUTINEIm(Om<zmP"THE ARROW REPRESENTING THAT VECTOR"md"GOES OFF THE SCREEN AND CANNOTmx"BE DRAWN AT THIS SCALE. THE"m"RESULTANT WILL STILL BE CALCULATED n"MATHEMATICALALCULATE POSITION OF HEAD OF ARROWPlXH(J)5XH(J)274YH(J)5YH(J)1541320lXH(J1)5XH(J1)274YH(J1)5YH(J1)1541320lXIXTXF:YIYTYF: CALCULATE ACTUAL TIPS OF ARROW POINTERlXJXTXG:YJYTYGmXT,YTXH(J),YH(J)XI,YIXJ,YJAY PAGE TWO HI-RES GRAPHICSDk230,32: SET UP TO DRAW ON PAGE ONELk20k::" DOTS ARE SPACED ";S10;" UNITS APART ";:868::kyXTXH(J1):YTYH(J1): SET TAIL OF VECTOR AT THE HEAD OF THE LAST VECTOR"l~XH(J)XTXE:YH(J)YTYE: CNUM0690jbPWR1&jl(NUM)1650Fjv(NUM)PWRPWRPWR10:630Oj660sj(NUM)PWR10PWRPWR10:650jFCTRDEC(PWR10)jNUM(NUMFCTR0.5)FCTRjj ***** j DRAW ARROW ON PAGE ONEk49232,0:49236,0:49239,0: DISPL130: REPEAT PROGRAM%i ======Ei REVERSE ORDER OF VECTORS:RiJ1N1iMM(J)M(NJ):DD(J)D(NJ): SWAP VECTORSiJiJ1N1iM(J)MM(J):D(J)DD(J)iJi5000: PREPARE SCREENSi220iiN ***** iX ROUND j]5000:230: ON 'D' DUPLICATE VECTOR DIAGRAM qhmQ$"A"İ5000:220: ON "A" REDRAW IN AUTOSCALE MODEhrQ$"C"İ20000:305: ON "C" DISPLAY COMPONENTShwQ$"P"İ20000:305: ON 'P' PRINT DATAhzQ$"Q"ī30000: END PROGRAMi|::D VECTORS IN REVERSE ORDERBgJ"A = ADD VECTORS IN AUTOSCALE MODEhgO"C = DISPLAY X AND Y COMPONENTS gT"P = PRINT OUT RESULTSgY"Q = QUIT PROGRAMg^:Q$:Q$(Q$,1)gcQ$"R"395: ON 'R' REDRAW WITH VECTORS IN REVERSE ORDER4hhQ$"D"İYOU*y"NEED TO ENTER SOME INFORMATION:"2y:Oy"ENTER MONITOR TYPE:":ty" M = MONOCHROMATIC y" C = COLORyTV$y TV$"C"TV$"M"7140yyK ***** yL SELECT MODEy"SELECT MODE:":z" 16384)127Ĺ16368,0:::6900: EXIT ROUTINEZxF16368,0: CLEAR KEYBOARD STROBE xPRESLTRESLT1: TOGGLE RESULTANT FLAG TO PRODUCE A FLASHING ARROW xd6250xxW ***** xX SELECT MODExy"BEFORE THE VECTORS CAN BE ADDED TURN OFF PRINTERP&`ݠݠ;YC xPJP"RESULTANT:"jP5);M(N);13);D(N);: PRINT OUT MAGNITUDE AND DIRECTION OR RESULTANTPNUMXA(N):600:XCNUM:(XC0)1DECXC0: ROUND X COMPONENT ނPNUMYA(N):600:YCNUM:(YC0)1DECYC0P18);XC;29);YCP(4);"P(D(J)100.5)10;: PRINT OUT MAGNITUDE AND DIRECTION WITH DIRECTION ROUNDED TO NEAREST TENTH OF A DEGREE(PNUMM(J)(D(J)RA):600:XCNUM:(XC0)1DECXC0: ROUND X COMPONENTz" M = MANUAL SCALINGFzM$UzM$(M$,1)zM$"M"7900: USE AUTO MODE UNLESS AN "M" WAS ENTEREDz"IN THE MANUAL MODE YOU NOW NEED TO"z"SELECT A SCALE FOR THE ARROW REPRESENTA-";{"TIONS OF THE ATION DATA:   ( aL CTS/SEC ON   *  LBY   )  L X ) L8 COMPUTER STOPWATCH   La VERNIER SOFTWARE F  L COPYRIGHT 1983 o  L"THIS PROGRAM ALLOe ~Q*rQ~Q X (  ])  (  ) ) L BLOAD TIMER   ( ( f) A "( Q ( A ' ) L4OPEN CALIBRATION #  ) LYREAD CALIBRATION H  '  (  *  )  ) LCLOSE CALIBRATION   LCALIBR     Ġ̮ҍ[2 THIS PROGRAM SIMPLY LOADS AND RUNS THE COMPUTER STOPWATCH PROGRAM COMPILED VERSION.d(4)"BLOAD RUNTIME"(13)(4)"BRUN CS.OBJ"x LTO BEGIN THE PROGRAM "::678A&(4);"RUN VECTOR ADDITION II"QUIT THE PROGRAM>%::" PRESS RETURN TO CONTINUE ":678:DH&rR&"IT IS ALSO POSSIBLE TO SUBTRACT VECTORS\&"WITH THIS PROGRAM. SEE THE USER'S f&"MANUAL FOR MORE COMPLETE INSTRUCTIONS p&"ON USING THIS PROGRAM.&:::" PRESS RETURN VECTORS IN%"REVERSE ORDER$%N%"ENTER 'A' TO ADD THE VECTORS IN THEk%"AUTOMATIC SCALING MODEq%%"ENTER 'C' TO SEE THE COMPONENTS OF THE %"VECTORS DISPLAYED%%"ENTER 'P' TO PRINT OUT THE RESULTS%%"ENTER 'Q' TO RN TO CONTINUE ":678: $L %"YOU WILL THEN BE PRESENTED WITH A MENU l &%"OF OPTIONS. YOU MAY THEN: X%:"PRESS 'RETURN' TO RERUN THE PROGRAM ]% b%"ENTER 'D' TO DUPLICATE THE VECTOR l%"ADDITION DIAGRAM q% v%"ENTER 'R' TO ADD THE SULTANT." $: $"THE RESULTANT WILL BE DRAWN AND WILLh $"FLASH ON AND OFF TO DISTINGUISH IT FROM $"THE OTHER VECTORS. THE MAGNITUDE AND $"DIRECTION OF THE RESULTANT WILL BE $"DISPLAYED AT THE BOTTOM OF THE SCREEN. $::" PRESS RETU ,$2 @$::" PRESS RETURN TO CONTINUE ":678:8 J$d T$"WHEN YOU HAVE ENTERED ALL THE VECTORS ^$"YOU WISH ADDED, ENTER 0,0 AS MAGNITUDE h$"AND DIRECTION VALUES TO SIGNAL THE r$"COMPUTER TO DO THE CALCULATION AND THE |$"DRAWING OF THE REISE"& "$"FROM DIRECTLY TO THE RIGHT., $$X '$"ARROWS REPRESENTING THE VECTORS WILL ($"FIRST BE DRAW WITH ALL OF THEIR 'TAILS' )$"AT THE CENTER OF THE SCREEN. LATER THE *$"VECTORS WILL BE REDRAWN IN THE PROPER +$"POSITION FOR ADDITION.""THIS PROGRAM WILL DEMONSTRATE THE P #"ADDITION OF VECTORS. UP TO 19 VECTORS| #"MAY BE ADDED. YOU ENTER THE MAGNITUDE $"AND DIRECTION (SEPARATED BY A COMMA) OF" $"EACH VECTOR. ANGLES SHOULD BE ENTERED" $"IN DEGREES MEASURED COUNTERCLOCKWB' VECTOR ADDITION II INSTRUCTIONS>(# INSTRUCTION TEXTD#J#m#" VECTOR ADDITION II"s##" COPYRIGHT 1983"#" VERNIER SOFTWARE#" 2920 S.W. 89TH#" PORTLAND, OR #$ #Ld'Ld' L 'Ld'L 'L 'Ld'L 'L '!L '#Ld'(L '*L ',L '.L '0Ld'5L '7Ld' [( T 'LPRESS RETURN TO CONTINUE   * L= T) z [( ' ) ' ' ) ' R ) ) - ' ) L&L% |( 8* )   ~ ) '  |( 4  u ) ' ' X( $Ls ) ' ' ) $L ') ' ( ' $L 3) ' ( ' $  O( ^ ' ) ( (L  O( ) ' ' O( ) c ( }' ' 7( y( 4( O( ) ' R )  1 W* 7( ( (L. ' ( m( @(L[ .( ' ( ( ( +( z' q' |( 1( n k' @( ( ' RLmMEAN: g  )  C( ' RLSTANDARD DEVIATION:   ' ) ' ) c ( i o L#   ' ^L COUNTS:   ' ) aL TIME:   ' ) a `  ' ) > [( T XLQCOMPLETE TABLE OF TIME DATA: 4  Ll TIMES (SEC.) _  ( > ( T [( 4( m( ' m( ' |( W* '  ~L# LLE )  u ( )  |( 4  LO )  ( &L L0000 ) 5   ) ' ( (L# ) (  ) ' ( LO ' A c ' i # ( )  )` ' ) m( o [( W* (  ~ O( ( n ) ' ' ) ' G b' L( ) _' q' ' ) n' o 1 W*   [( ' ' y( ' o) ; )  wL(PRESS SPACE BAR TO START AND STOP TIMING   s x) ; ) G v( $L1 |( ' 'L: P LL XL Lc ) ' 3) ' ' H) d( # c K) i ' '  ) ' # ' $LL.0000 ) 5   )LO )  ( TH THEIR   L$MEAN AND STANDARD DEVIATION. A MORE   L!ELABORATE VERSION OF THIS PROGRAM   LF CALLED 'PRECISION TIMER', WHICH %  L|'IS DESIGNED FOR USE WITH PHOTOGATES, IS T  L AVAILABLE FROM VERNIER SOFTWARE. WS YOU TO USE THE   LAPPLE AS A DIGITAL STOPWATCH   L%WHICH DISPLAYS TIMES IN LARGE DIGITS.   LP%PRESS THE SPACE BAR TO START AND STOP *  L#THE TIMER. PRESS ANY OTHER KEY TO ^  L#DISPLAY A TABLE OF TIMES WId ROUNDING ROUTINE0n VERNIER SOFTWARE Lx 2920 S.W. 89TH STREETe PORTLAND, OR 97225r::(5)" ROUNDING ROUTINE"" VERNIER SOFTWARE"" ****************"::"THIS PROGRAM ROUNDS NUMBERS."+    2000pN$"A"N10'zN$"B"N118N$"C"N12IN$"D"N13ZN$"E"N14kN$"F"N15yN92240N(N$)VVN16(J1)J"DECIMAL EQUIVALENTS:"(15):V;:(27):V1642100M(H$)4H$"0"H$:2118: ADD LEADING ZEROES TILL YOU HAVE A 4 DIGIT NUMBERTHV0_RJ14g\N0zfN$(H$,5J,1)k((N$)47(N$)58)((N$)64(N$)71)2160: CHECK TO SEE IF AN ILLEGAL CHARACTER HAS BEEN ENTEREDm"IMPROPER CHARACTER ":1110Q***********************************************************************n HEX TO DECIMAL ROUTINEt"TO EXIT, MAKE NO ENTRY AND PRESS RETURN" 4"ENTER HEX NUMBER ";H$CH$""ıE(H$)4ĺ" FOUR DIGITS ONLY ":2000LFRTH DIGIT/ "HEXADECIMAL EQUIVALENT = $";: J14U xD(J)10D$(J)(D(J))l D(J)10D$(J)"A" D(J)11D$(J)"B" D(J)12D$(J)"C" D(J)13D$(J)"D" D(J)14D$(J)"E" D(J)15D$(J)"F" @D$(J); rJ :l1)(V4096): CALCULATE 1ST DIGIT OF RESULTW RVD(1)4096: CALCULATE REMAINDER D(2)(R256): CALCULATE SECOND DIGIT RRD(2)256: CALCULATE REMAINDER D(3)(R16): CALCULATE THIRD DIGIT RRD(3)16 D(4)R: CALCULATE FO"ENTER A DECIMAL NUMBER ";V$0 `V$""ı< aV(V$)i bV0ĪV65536V:(29):"(";V;")":V$(V)x dC1(V$) e((V$,C,1))48((V$,C,1))57ĺ"IMPROPER CHARACTER ":1000 gC tV65536ĺ"NUMBERS > 65536 ARE NOT PERMITTED":1000- ~D(10):"B - HEXADECIMAL TO DECIMAL( M$: M$"A"İ1000L M$"B"İ2000U "100  ***********************************************************************  DECIMAL TO HEX ROUTINE  "TO EXIT, MAKE NO ENTRY AND PRESS RETURN" $# VIS 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 (2 HEX-DECIMAL+< VERNIER SOFTWARE GF 2920 S.W. 89TH STREET`P PORTLAND, OR 97225mZ::(5)\" VERNIER SOFTWARE ^_" HEXADECIMAL - DECIMAL CONVERTER`" *******************************a:% d:"TH      Ґ` G  G  Ґ` G  G Ґ` G Ґ` G  G Ґ` G G G G Ґ` G G G Ґ` G G G Ґ` Ð p Ґ`  Ґ``ꩭ a ` a `  `ꩺ 4a` a` ` `hh`   Ґ`  YL '[L ']L 8  Y*8  =8QsL 8QuL 8QwL 8QyL 8Q{L 8Q}L QL 8QL 8QL 8QL 8QL CBЍw U  yUUwyVxz`Зԥwyxz`ywzx`GH o8 UpVUVƠ UVUʆoph3]eУk ЮU 4Г U 5,wЅƩѤ wU! 5B=ooppȆbcĂbfUVd8ophLД8= 7MLdlkȄmn;op:E UUȥViлh8HH`Ї{y SՠUEowyywxzzxwIy:e \`fH,Hops8otpf,kiUliVU$f&łmUŁfbUȥcUUŭUVŮMvłGUŁ>UV2ЅUŕȱU喰!UUdUV0*UiUViVUmVnɊȢwU𧰸ХyyUU⥁œ.QP$  e LWHhL:5~    eȱeLaL LRwwxȆwxwHw Jhw`w5U,w`,hbhcbwȱbxcȘHH`wȄ wep`0CBe]Q=b`LicbbbE0`Ġ``MMLeڢD ! SL3LH h%LddЉ`?0 HH chh ޥ Yަ`н  eE   ࠰>Ffee0  &ߢEX$ƫv` ꥪLYDcbbwyȱbxz`ݥܦL+3UV UwȱUx`wUȥxU`Ncbbȱb`cbbȥb`cbbȱb8塅堅PEncbbȱbe HH`0S,,hdehUhVhhHHU hehHehUU HHk`UiȱUiuкe& & &eeHHqUȥqUeFdO݅܆`ycbbȱbƫ8pM䡥UȥUU +뺠ЧUV욥VHUHthhЁ HHf ㈱ۺQi e 纼 +뺊i  e HH`iiiHH`(bcbebbePE1b]  0  j=i<<=kbޙץ,,stHʈcbhH ʈpoophMm X RQtPsh`bhH     HARACTERS TO THE RIGHT OF THE DECIMAL POINTM `m(8):"ROUNDED NUMBER -> ";X$z Hq IN NORMAL USE A "RETURN SHOULD BE HERE zq 0u25000 R 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 CR: 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)10"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. ,,$` L( L5 LD 8 XL XLR XQHPH RPhPhQ8 XL.0'L+ LfLLLLL ꥪLYԨéR L ,-` Leh8PhHQH`hbihciHHb\ȱb]`ߚl hhHHHH`L⥠`ʆ  hdheHdHHHH08  X Xhdhe + eHdHHHeHdH`   q% 0 L0`,wyywxzzx,Hyw wȄffȪ yw fh0`h&Hwyxzwy wy h Lh` ` ` ` 憅` ` ᥠQP` L  8e`LԩLcغh8uhHvH` L L L~ 憅 L ʊ8$!  W$Li)$` LY L   hPhQP 8ePQiHHš`hh PȱPʘHH` ,խwqq膸 J즸 , :hhlP,q`h8uhv] :  ڢ hgʆbcb KLf/q ߠ :۩q` S0 L,Hh*Mȱڦhwx%ȱH J hw0У8 ewwx𴰺 抦5?wtsʆwx8dedЕБt Z Z ,խvqq ", ȹ,ȹ ,W,qewix8 Z Z pp@p@@ ppp~@ @ @""" $p@@   `@a@CCC <`?*U*U*U*U*U@@"D~@C@a00xx@ ?pp@p@@ 0@?xpp@@ |@ p@""" BG@@ pp?`<@~~Ca?pLxj*U*U*U*U*U@@ppp?`@~~C<p `~@L~@C@a00xx@ pp@p@?@ @`{pp@@@ F@ p@"qyx"$Os?~~~@00x?@ pp?`<@~~Ca?pL\**U*U*U*U*U@@ppp?`@~~C<p `~  @H@@C@a000@           THAT THE PROGRAM WILL BE LOADED ABOVE THE HI-RES GRAPHIC SCREEN MEMORY h D$;"RUN VECTOR ADDITION IIn ( Dp GREETINGS PROGRAM9D$(4): CHR$(4)IS CNTRL D MASTER DISKETTE CREATED ON NOVEMBER 15, 1983 BY D. VERNIER: CLEAR HI-RES SCREEN 2D$;"BLOAD VECTOR ADDITION LOGO, A$4000H 103,1:104,96:24576,0: SET POINTERS SO  @x`pp@@@  @BCc pGp|p~@c@@  @ 8@0 `@a@CCC  `w@`@CC@a0` 0@Nr@CC@a00 @  f  @<@|pp@@@@  @ `pxp|@C@xp  @ @ | `@a@CCC  @@CC@a0` 0@BBw@CC@a00 @  C`~ @|pp@@@`  @ @  agCC @ | `@a@CCC  |w@~~@CC0xx?@BBCC@a0x?@  C`~ |pp@@@0 `pp|@ @ @""<q $$ @   `@a@CCC <~@~~@CC0xx?@"FCC@a0x?@AT PROGRAMi ======7i REVERSE ORDER OF VECTORS:DiJ1N1riMM(J)M(NJ):DD(J)D(NJ): SWAP VECTORSyiJiJ1N1iM(J)MM(J):D(J)DD(J)iJi5000: PREPARE SCREENSi220iiN ***** iX ROUNDibPWR1 jl(N ON 'D' DUPLICATE VECTOR DIAGRAM chmQ$"A"İ5000:220: ON "A" REDRAW IN AUTOSCALE MODEhrQ$"C"İ20000:305: ON "C" DISPLAY COMPONENTShwQ$"P"İ20000:305: ON 'P' PRINT DATAhzQ$"Q"ī30000: END PROGRAM i|::130: REPEEVERSE ORDER4gJ"A = ADD VECTORS IN AUTOSCALE MODEZgO"C = DISPLAY X AND Y COMPONENTS vgT"P = PRINT OUT RESULTSgY"Q = QUIT PROGRAMg^:Q$:Q$(Q$,1)gcQ$"R"395: ON 'R' REDRAW WITH VECTORS IN REVERSE ORDER&hhQ$"D"İ5000:230: LTANT&f'RESLT1: SET RESULTANT FLAG`f,6000: DISPLAY RESULTANT'S MAGNITUDE AND DIRECTIONyf1 PRESENT OPTIONS:f3f6"PRESS RETURN TO RERUN PROGRAM, OR ENTER:";f;f@"D = REDRAW SAME VECTOR ADDITION DIAGRAM" gE"R = ADD VECTORS IN R1e10000: SELECT COLOR>e3000: CALCULATE COORDINATES`e2000: DRAW VECTOR ON PAGE 2geJe756: WAIT FOR KEYPRESSeJ1N1e 10000e3000: CALCULATE COORDINATESe1000: DRAW ARROW ON PAGE ONEeJe +++++f" RESUIL TO TAIL)/dJ1Č756: WAIT FOR KEYPRESSfd1000: DRAW ARROW ON SCREEN ONE (TAIL TO HEAD)mdJyd =====dM$"M"290: SKIP THE DRAWING OF THE VECTORS ON PAGE ONE IF IT HAS ALREADY BEEN DONEd4000: AUTOSCALEd +++++eJ1NHAVE A MAGNITUDE OF ZERO WcM(J)0NJ:JMAX:205: EXIT LOOP IF RESULTANT cM$"M"205: SKIP GRAPHICS HERE IF IN AUTOSCALING MODEc10000: SELECT COLORc3000: CALCULATE ARROW COORDINATES d2000: DRAW ARROW ON SCREEN TWO (TACTION FOR VECTOR ";JCb"(DIRECTIONS:0=RIGHT,90=UP,-90=DOWN,ETC)"RbM(J),D(J)bM(J)0M(J)(M(J)):D(J)D(J)180: ON NEGATIVE ANGLE INPUT USE REVERSED VECTORcJ1M(J)0ĺ" THERE ARE NO VECTORS TO ADD YET ":155: THE FIRST VECTOR CANNOT Q$,1)"Y"İ9000: DISPLAY INSTRUCTIONS=ax8000: INITIALIZEZa}7000: SELECT MONITORra7600: SELECT MODEa5000: SET UP BOTH SCREENSaRESLT0: SET RESULTANT FLAGa ======aJ1MAX: TOP OF MAIN LOOPb"ENTER MAGNITUDE, DIRE$e` VECTOR ADDITION II, COPYRIGHT 1983, VERNIER SOFTWARE, 2920 S.W. 89TH ST., PORTLAND, OR 97225`2(4);"BLOAD TEXT 2,A$800": LOAD PAGE TWO OF TEXT`Z ***** `d MAIN PROGRAM`i::10`n"DO YOU NEED ON-SCREEN INSTRUCTIONS? ";Q$&as(             @pqpp@@@` p@"#$ xgp~p?@s@  @ p@0 `@a@CCC   @ x@@C@a000@H`w~~@00x?@  f::6900: EXIT ROUTINEDyF16368,0: CLEAR KEYBOARD STROBE yPRESLTRESLT1: TOGGLE RESULTANT FLAG TO PRODUCE A FLASHING ARROW yd6250yyW ***** yX SELECT MODEyy"BEFORE THE VECTORS CAN BE ADDED YOUz"NEED TO ENTEF RESULTANT ARROW)xNXIXH(N)5(2.3R)AxQYIYH(N)5(2.3R)ZxVXJXH(N)5(3.93R)sx`YJYH(N)5(3.93R)xjRESLT1Ē3xtRESLT1Ē0xXT,YTXH(N),YH(N)XI,YIXJ,YJXH(N),YH(N): DRAW RESULTANT ARROWy<(16384)127Ĺ16368,0:LE TO TENTH OF A DEGREEFw"RESULTANT DIRECTION = ";;D(N);" DEGREES"w$XH(N)5XH(N)274YH(N)5YH(N)154ĺ:"UNABLE TO DRAW THE RESULTANT ":"PRESS RETURN TO CONTINUE":678:6900w."PRESS RETURN TO RERUN PROGRAM ";x8 CALCULATE COORDINATES ORIGHT ANGLE FOR THE RESULTANTKvD(N)RRA: CONVERT RADIANS TO DEGREESQvv::" DOTS ARE SPACED ";S10;" UNITS APART ":vNUMM(N):600: ROUNDvM(N)NUMv"MAGNITUDE OF RESULTANT = ";M(N)wD(N)(D(N)100.5)10: ROUND ANG):YH(N)YH(N1): SET HEAD OF RESULTANT AT HEAD OF LAST VECTOReuXA(N)XA(N1):YA(N)YA(N1)uM(N)(XA(N1)2YA(N1)2): MAGNITUDE OF RESULTANTvR(YA(N)(XA(N))):XA(N)0RR3.1415: TO CORRECT TO ALWAYS GET THE 10 tX,Yt:tP"tU22LtZ" PREPARING SCREENS FOR GRAPHICS"\tdX027010ltnY015010utxX,Y}t:t:t to ***** tp DISPLAY RESULTANTtXTXH(0):YTYH(0): SET TAIL AT CENTER OF SCREENEuXH(N)XH(N1srXSYSSXS:4300s|SYSAs SCALE TO A 'NICE EVEN NUMBER'\sNUMS:600:NUMNUMPWRsNUM(23(NUM2)5(NUM5))PWRs0SNUMs$s ****** s GET BOTH SCREENS READY TO PLOT VECTORSsss3sX027010t Y0150J1N1drXA(J)XA(J1)M(J)(D(J)RA): CALCULATE ACTUAL POSITION OF END OF VECTORrYA(J)YA(J1)M(J)(D(J)RA)r,(XA(J))TXTX(XA(J))r6(YA(J))TYTY(YA(J))rJJrhXSTX135:YSTY75: CALCULATE RAW SCALING FACTORSTIPS:q XFXE5(2.3R)/q YFYE5(2.3R)Eq XGXE5(3.93R)[q YGYE5(3.93R)q XA(J)XA(J1)M(J)(R): CALCULATE ACTUAL POSITION OF END OF VECTORq YA(J)YA(J1)M(J)(R)q<q ***** q AUTOSCALEqTX0:TY0 r DRAW ARROWpT p ***** Bp CALCULATE ARROW COORDINATESkp ROUTINE TO CALCULATE ENDPOINTS yp: RD(J)RApD XEM(J)(R)S: CALCULATE SCALED POSITION OF END OF ARROWpN YEM(J)(R)Sq CALCULATE COORDINATES OF ARROW POINTER CALCULATE POSITION OF HEAD OF ARROWtoXH(J)5XH(J)274YH(J)5YH(J)154ĺ"UNABLE TO DRAW THIS VECTOR ":2900oXIXTXF:YIYTYF: CALCULATE ACTUAL TIPS OF ARROW POINTERoXJXTXG:YJYTYG pXT,YTXH(J),YH(J)XI,YIXJ,YJXH(J),YH(J): ONTINUE."nnl"n ***** ?n DRAW ARROW ON PAGE TWOn49232,0:49237,0:49239,0: DISPLAY PAGE TWO HI-RES GRAPHICSn230,64: SET UP TO DRAW ON PAGE TWOnpXTXH(0):YTYH(0): SET STARTING POINT OF ARROW%ozXH(J)XTXE:YH(J)YTYE: DRAW ARROW3m1900: GRAPHICS DONE LEAVE ROUTINE9m(?m<jmP"THE ARROW REPRESENTING THAT VECTOR"md"GOES OFF THE SCREEN AND CANNOTmx"BE DRAWN AT THIS SCALE. THE"m"RESULTANT WILL STILL BE CALCULATED n"MATHEMATICALLY AND YOU CAN CN OF HEAD OF ARROW@lXH(J)5XH(J)274YH(J)5YH(J)1541320vlXH(J1)5XH(J1)274YH(J1)5YH(J1)1541320lXIXTXF:YIYTYF: CALCULATE ACTUAL TIPS OF ARROW POINTERlXJXTXG:YJYTYG mXT,YTXH(J),YH(J)XI,YIXJ,YJXH(J),YH(J): ES GRAPHICS4k230,32: SET UP TO DRAW ON PAGE ONE&`ݠݠ    !ERP,P"PRESS RETURN TO CONTINUE ";Q$2@Q@/u ***** K0u QUITu103,1:104,8:2048,0: RESTORE START OF PROGRAM POINTERSuTANT:"UP3);M(N);10);D(N);: PRINT OUT MAGNITUDE AND DIRECTION OR RESULTANTPNUMXA(N):600:XCNUM:(XC0)1DECXC0: ROUND X COMPONENT ɃPNUMYA(N):600:YCNUM:(YC0)1DECYC0ރP17);XC;29);YCP(4);"PR#0": TURN OFF PRINTINT OUT MAGNITUDE AND DIRECTION WITH DIRECTION ROUNDED TO NEAREST TENTH OF A DEGREE(PNUMM(J)(D(J)RA):600:XCNUM:(XC0)1DECXC0: ROUND X COMPONENT؂bޙץ,,stHʈcbhH ʈpoophMm X RQtPsh`bhH!!""" " " " " """""""[2 THIS PROGRAM SIMPLY LOADS AND RUNS THE COMPUTER STOPWATCH PROGRAM COMPILED VERSION.d(4)"BLOAD RUNTIME"(13)(4)"BRUN CS.OBJ"x L!\&"WITH THIS PROGRAM. SEE THE USER'S Tf&"MANUAL FOR MORE COMPLETE INSTRUCTIONS qp&"ON USING THIS PROGRAM.&:::" PRESS RETURN TO BEGIN THE PROGRAM "::678&(4);"RUN VECTOR ADDITION II"J%"ENTER 'C' TO SEE THE COMPONENTS OF THE C%"VECTORS DISPLAYEDI%r%"ENTER 'P' TO PRINT OUT THE RESULTSx%%"ENTER 'Q' TO QUIT THE PROGRAM%::" PRESS RETURN TO CONTINUE ":678:H&R&"IT IS ALSO POSSIBLE TO SUBTRACT VECTORS'"PRESS 'RETURN' TO RERUN THE PROGRAM*]%Sb%"ENTER 'D' TO DUPLICATE THE VECTOR jl%"ADDITION DIAGRAMpq%v%"ENTER 'R' TO ADD THE VECTORS IN%"REVERSE ORDER%%"ENTER 'A' TO ADD THE VECTORS IN THE%"AUTOMATIC SCALING MODE%+THER VECTORS. THE MAGNITUDE ANDI $"DIRECTION OF THE RESULTANT WILL BE v $"DISPLAYED AT THE BOTTOM OF THE SCREEN. $::" PRESS RETURN TO CONTINUE ":678: $ %"YOU WILL THEN BE PRESENTED WITH A MENU &%"OF OPTIONS. YOU MAY THEN:$X%:ADDED, ENTER 0,0 AS MAGNITUDEG h$"AND DIRECTION VALUES TO SIGNAL THE t r$"COMPUTER TO DO THE CALCULATION AND THE |$"DRAWING OF THE RESULTANT." $ $"THE RESULTANT WILL BE DRAWN AND WILL $"FLASH ON AND OFF TO DISTINGUISH IT FROM $"THE OOF THEIR 'TAILS'";? )$"AT THE CENTER OF THE SCREEN. LATER THEl *$"VECTORS WILL BE REDRAWN IN THE PROPER +$"POSITION FOR ADDITION." @$::" PRESS RETURN TO CONTINUE ";:678: J$ T$"WHEN YOU HAVE ENTERED ALL OF THE VECTORS"; ^$"YOU WANT "$"FROM DIRECTLY TO THE RIGHT (UP = 90,"V #$"LEFT = 180, DOWN = 270 OR -90). ANY " $$"ANGLE MAY BE USED, INCLUDING DECIMALS," %$"NEGATIVES AND ANGLES > 360 DEGREES." &$ '$"ARROWS REPRESENTING THE VECTORS WILL  ($"FIRST BE DRAWN WITH ALL PROGRAM WILL DEMONSTRATE THE J #"ADDITION OF VECTORS. UP TO 19 VECTORSv #"MAY BE ADDED. YOU ENTER THE MAGNITUDE $"AND DIRECTION (SEPARATED BY A COMMA) OF" $"EACH VECTOR. ANGLES SHOULD BE ENTERED" $"IN DEGREES MEASURED COUNTERCLOCKWISE"*' VECTOR ADDITION II INSTRUCTIONS>(# INSTRUCTION TEXTD#J#m#" VECTOR ADDITION II"#" COPYRIGHT 1983"#" VERNIER SOFTWARE#" 2920 S.W. 89TH#" PORTLAND, OR # #"THIS! ! ! ! ! !!!!`Ġ̮ҍ",$` L( L5 LD 8 XL XLR XQHPH RPhPhQ8 XL.0'L+ LfLLLLL ꥪLYԨéR L ,-` Leh8PhHQH`hbihciHHb\ȱb]`ߚl hhHHHH`L⥠`ʆ  hdheHdHHHH08  X Xhdhe + eHdHHHeHdH`   q% 0 L0`,wyywxzzx,Hyw wȄffȪ yw fh0`h&Hwyxzwy wy h Lh` ` ` ` 憅` ` ᥠQP` L  8e`LԩLcغh8uhHvH` L L L~ 憅 L ʊ8$!  W$Li)$` LY L   hPhQP 8ePQiHHš`hh PȱPʘHH` ,խwqq膸 J즸 , :hhlP,q`h8uhv] :  ڢ hgʆbcb KLf/q ߠ :۩q` S0 L,Hh*Mȱڦhwx%ȱH J hw0У8 ewwx𴰺 抦5?wtsʆwx8dedЕБt Z Z ,խvqq ", ȹ,ȹ ,W,qewix8 Z ZCBЍw U  yUUwyVxz`Зԥwyxz`ywzx`GH o8 UpVUVƠ UVUʆoph3]eУk ЮU 4Г U 5,wЅƩѤ wU! 5B=ooppȆbcĂbfUVd8ophLД8= 7MLdlkȄmn;op:E UUȥViлh8HH`Ї{y SՠUEowyywxzzxwIy:e \`fH,Hops8otpf,kiUliVU$f&łmUŁfbUȥcUUŭUVŮMvłGUŁ>UV2ЅUŕȱU喰!UUdUV0*UiUViVUmVnɊȢwU𧰸ХyyUU⥁œ.QP$  e LWHhL:5~    eȱeLaL LRwwxȆwxwHw Jhw`w5U,w`,hbhcbwȱbxcȘHH`wȄ wep`0CBe]Q=b`LicbbbE0`Ġ``MMLeڢD ! SL3LH h%LddЉ`?0 HH chh ޥ Yަ`н  eE   ࠰>Ffee0  &ߢEX$ƫv` ꥪLYDcbbwyȱbxz`ݥܦL+3UV UwȱUx`wUȥxU`Ncbbȱb`cbbȥb`cbbȱb8塅堅PEncbbȱbe HH`0S,,hdehUhVhhHHU hehHehUU HHk`UiȱUiuкe& & &eeHHqUȥqUeFdO݅܆`ycbbȱbƫ8pM䡥UȥUU +뺠ЧUV욥VHUHthhЁ HHf ㈱ۺQi e 纼 +뺊i  e HH`iiiHH`(bcbebbePE1b]  0