ࡱ> qspY ,bjbjWW 4L==(]D BBBBBBBB>Ok$hBBBBBBBBBrBBB|^ ?B$@bB.NAME __________________________ ID # __________________ ENEL415 Post-Lab #3 Quiz B 3rd October, 1998 tc \l1 "ENEL415 In-Class Quiz #1 B 29rd September 1997 This is a closed book exam, except that students may make use of their OWN, CLEAN copies of the Motorola 68000 processor and SDS Quiz 1 reference cards. Answer in the space provided. Please ensure that you answer the question asked and not the question you think was asked. Provide appropriate documentation/explanation for your code and answers. After completing each question, write in this table what you believe will be the mark you will receive for that question. This will allow me to keep track of student expectations Question NumberMaximum Mark AvailableStudent Mark EstimateActual Mark Awarded by T.A.Q18/ 8/ 8Q213/ 13/ 13Q36/ 6/ 6Q418/ 18/ 18Total Marks45/ 45/ 45 Dont forget to use the answer sheet handed out at the end of the quiz to calculate your estimated mark for this quiz. Follow the information on the web about what needs to be submitted by the web (by Thursday) and handed in (Friday morning 9 am in class) Q1) Total of 8 marks I am working in Task 2 of Laboratory 3. I find a mistake in my code that allows Task 1 to work correctly, but will stop Task 2 from working correctly. Did I find an ERROR or a DEFECT in my code? ________________ 2 marks B) According to the results found when developing industrial programs, which type of mistake take longer to correct DEFECT or ERROR? _______________ 1 marks C) During which phase of a JSR instruction would we expect the RETURN ADDRESS to be stored onto the stack? ______________ 1 mark D) I want to TURN ON 1 bit in a device register, leaving other current bits in the register unchanged, which instruction do I use? ADD, AND, OR, SUB ? ____________ 1 mark E) I want to TURN OFF 1 bit in a device register, leaving other current bits in the register unchanged, which instruction do I use? ADD, AND, OR, SUB ? _____________ 1 mark F) What is the result of the following code sequence? MOVE.W #0x1234, D0 OR.W #0x7000, D0 _____________ 2 marks Q2)  You will need to write on the image from the SDS simulator which shows source, register and memory windows. The subroutine mycode() calls another subroutine long int ReturnValue(void) many times. The only information you are given about ReturnValue() is that it does stuff and always returns a 1 or a 2. The code ReturnValue() does not call any other routines, nor does it modify the stack. Total of 13 marks Circle, and label with an A, the button/menu option that will allow you to specify what files are to be linked together to form an executable file 1 mark Circle, and label with a B, the stack pointer in the register window 1 mark What memory location (expressed in hex) is the Stack Pointer pointing to? __________ 1 mark What value (expressed in hex) does the memory location pointed to by the stack pointer contain? __________ 2 mark Assume that program is currently executing one of the calls to ReturnValue() shown on the screen dump. YOU DO NOT NEED ANY OTHER DETAILS ABOUT THE CODE BEING EXECUTED. Circle, and label with an E, the line of code on the screen that will be executed when the current call to ReturnValue() completes its execution. This means where will the program return to? 2 marks When the program finally reaches the NOP instruction at memory location 0x1034 i) What will be the hexadecimal value in the Stack Pointer register? ________ 1.5 marks ii) What will be the hexadecimal value in register D0? _______ 1.5 marks iii) What will be the hexadecimal value in register D3? _________ 1 mark iv) This code will probably work okay. In two lines or less, explain why there is a hidden mistake in the code that might stop it from working 2 marks Q3) There are many errors that students will make when developing assembly code subroutines. VERY BRIEFLY explain the 3 most serious errors that students can be expected to make. NOTE: If you make one of the errors that you have mentioned here during Q4, you will lose the mark here too!!!!! 2 marks each for a total of 6.0 marks _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ Q4 Here is a BIG print version of what is asked in Q4 -- TURN OVER FOR Q4 A processor is counting objects passing past on an assembly line. Each time an object passes a sensor a signal is sent to the processor. The sensor signal is ASSERTED (on) when there is an object passing the sensor. The signal is NEGATED (off) when there is no object passing the sensor. The sensors are attached to pins on an "read port" on the processor. The processor reads the port -- which means it gathers all the information about all the input pins at the same time as a single number (long int). Based on the information in this word (a series of bits set to 1 or 0) the processor then makes decisions. Assume that device has already been RESET There are at least 20 marks available 18 marks mean 100% // Device information -- all device registers are 32 bits NOTE C/C++ offsets divided by // sizeof(long int) == 4 CONTROL_REG SET 0x10 // Offset of Control Register from the Base-Address READ_READY_BIT SET 0x8000 // Definition of Control Register // READ_READY_BIT READ_DATA_REG SET 0x00 // Offset of Read Data Register from the Base // Address YELLOW_BALL_BIT SET 0x4000 // Definition of bits that read RED_BALL_BIT SET 0x2000 // RED and YELLOW BALL sensors Write a 68K assembly code subroutine long int DoSomething(unsigned long intr *pt ) where you are passed the base address of a device as a parameter. In this subroutine, you must check the READ_READY_BIT until this becomes a 1, and then read the READ_DATA_REGISTER. The READ_DATA_REG has two bits in it which tell you if a YELLOW ball has gone past or a RED ball has gone past the sensor. If the YELLOW_BALL_BIT is HIGH then call subroutine void DoYellow(void); When the subroutine DoSomething() exits, return the value that had been stored in the READ_DATA_REG. Q4 A processor is counting objects passing past on an assembly line. Each time an object passes a sensor a signal is sent to the processor. The sensor signal is ASSERTED (on) when there is an object passing the sensor. The signal is NEGATED (off) when there is no object passing the sensor. The sensors are attached to pins on an "read port" on the processor. The processor reads the port -- which means it gathers all the information about all the input pins at the same time as a single number (long int). Based on the information in this word (a series of bits set to 1 or 0) the processor then makes decisions. Assume that device has already been RESET There are at least 20 marks available 18 marks mean 100% Write a 68K assembly code subroutine long int DoSomething(unsigned long intr *pt ) where you are passed the base address of a device as a parameter. In this subroutine, you must check the READ_READY_BIT until this becomes a 1, and then read the READ_DATA_REGISTER. The READ_DATA_REG has two bits in it which tell you if a YELLOW ball has gone past or a RED ball has gone past the sensor. If the YELLOW_BALL_BIT is HIGH then call subroutine void DoYellow(void); When the subroutine DoSomething() exits, return the value that had been stored in the READ_DATA_REG. ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ DoSomething: // long int DoSomething(unsigned long int *pt) { temp SET ???? // register long int temp; temp2 SET ???? // register long int temp2 ptDEVICE SET A0 // register long int *ptDEVICE; ____________________________________// ____________________________________// All device registers are 32 bits // Device information -- all device registers are 32 bits NOTE C/C++ offsets divided by // sizeof(long int) == 4 CONTROL_REG SET 0x10 // Offset of Control Register from the Base-Address READ_READY_BIT SET 0x8000 // Definition of Control Register // READ_READY_BIT READ_DATA_REG SET 0x00 // Offset of Read Data Reg from the Base Address YELLOW_BALL_BIT SET 0x4000 // Definition of bits that read RED_BALL_BIT SET 0x2000 // RED and YELLOW BALL sensors // ptDEVICE = pt; MOVE.L CONTROL_REG(ptDEVICE), temp // temp = *(ptDEVICE + CONTROL_REG / 4) // temp = temp & READ_READY_BIT; ______________________________________________________________________________ // while (temp != READ_READY_BIT) { ______________________________________________________________________________ Dont worry about coding this line // temp = *(ptDEVICE + CONTROL_REG / 4); Dont worry about coding this line // temp = temp & READ_READY_BIT; // } ______________________________________________________________________________ // temp = *(ptDEVICE + READ_DATA_REG/ 4) ___________________________________________________________________________________ // temp2 = temp & YELLOW_BALL_BIT ___________________________________________________________________________________ // if (temp2 != YELLOW_BALL_BIT) { // DoYellow() // } ___________________________________________________________________________________ // // return(temp2) // // } UVXZijkTUYevw   > C I O   ( ) 2 M P w W h   : A j5UCJ5655mH 6mH 5CJ$H*mH 5CJ$OJQJmH 5CJ$mH j5CJ$UmH H*mH  OJQJmH mH F:;ij=>@C$$l\H$$$  `:;ij=>!"%(-2368<@ADGMST½zupkg                            $  &  )*  :  F  \  s  89%!"%(-2368<@ADGMSTUVWXYeD8Lp$$$l H$$$TUVWXYehntuvvwxyz{|0 2 A w Ŀ|wrmhc^YNUVWXh                   !ehntuvvwxyz{|0 2 A w h & F$$l H$$$ h > \]=UV\]^`a h$d &d h & F 5 E J Q h w  *5B7>WZ Vp\wx4;<=bfKVT[c$lqJ]6mH  56mH 5mH mH 5CJ 5CJmH  5CJmH 6CJCJ56 56CJ5CJ5N h > \]=UV\]^`abc$%O¸|wrmhc`]ZT z {NO            Mabc$%OjklqHI]#@  & F hOjklqHI]#2pLM,^    "#2pLM!!!.""##$$$$$&d 0@ uFTr!!!!!!"""""""##/#3#Y#h######$$%%I&J&&&& '^'k(o(,,56CJmH  5CJmH  6CJmH CJmH 5CJCJCJmH  5CJmH mH 6mH ?$U$V$$%%E%s%%%%&&I&J&&& '^''''(k(o(((&d @   `$(()R))))'*l*v***N+t+++,,|,,,, `2 00&PP/ N!"#$%YDd&E:/ "r  c NA*E:\trylab1\quiz3.gifbXvr_x#XDnnXDST:ykb'vr_x#PNG  IHDR&E@PLTEDD,|||DD||<|DDD<<||D$$$ddd||||<<444ttt||<<|<\|44lddܤ<<<<<<|||bKGDH IDATx8r%\YĔ%tW3lӓF? @)&Iq!Hbc#p!W(3~э!FADX ac ,OGT\ؚԝ OВAKOcm;QhzOPZh<5]W-O!uJ9|JÎ4}-_|qQRgn,v%MfwaO9D9|Jn#Mw_V\R>Q9OA䅿\BHl1̙ &@Y5;g(jrGя}CŸJ(P,+y{+Gfv [otߌ1b^^R[(xjwNF(\3VAM{;/t A -u _wr܊[GT+f5!;DK9AP 5;P?~/ׯTiT7Tr|Ҝ N_>p+$ƠCHnOǏ&5qCrHqwXMFn~}oTxz]>" p[VܳseA⥙'!ɯGߞIGurXhzB4C)#|#RU 3Q$L:UOr&I~y  )ٙI\L&KPvaK3 UOO~7xTxP? J.ZZJaܷ<#O4N\Rds{)jrD`;;}XsakRRȷ5l+8 |0S~Jˋy蔑+.^!<},?QuWvCxdDB)D~6{f BK˯4kHRvFM>T8Bf Tc%iԄfXQRR6R ρ{l)!. IdWf&Pv:;Am[?oHzg9RDɳGҡ\Me?usXMȉ]^ z?wLy_hh'xC~ӈ{o!$5P?姁>gy1RL@ui). dX Ry .9ow- :dǡʒ5Y,!4邀쒨ɸ%bȬ!Yuʓw9%ZR5͢CPGH.&Ls!Q> *"pnPPk`Q#tF:!=P=H(rXm( bB-J Uw){B5!<`Z&Z#CnCdJ-WnGRxؐBAZ)ObpA9Vt1V< \g-q*6' RW7̦&:\ܹeRgLn *qҁMyN=^4iG Ŵ|K|oyh&.ٴMni7~zPeYxL|JJ"tLMi&uC,\M{<&=\{wlqpc pkC&ctoXi+~|aٻMQ|џ ,-NRMjN^~6:zn~4.匫 ;՜=I6V3:tşˣR\| ([\MOD# \n&=<2h $P~ɂ>߰&9DMLxS8xe &>`ddI@$\3ދ|ٹ'B1k{K VOtN #2.djB*]H@?p5 _#Y} %9ؠ޺t>:2jB&t]oMZg)j35Yij4~fj&_kѫ&5 zm<[]AHKU!]| "$& 5!&RY8ͨ&g/2>wgIAMByz&5_H%P{G}p^8-Ij$&"Ij IfĨ$ b$ 5M 6`5zTPD&Yz`Z5 ~ngwxt&hDt%={L€T#ix`(dYqx|,N{|mԒ` ʅkL6j73ZgpG5p 5y&e)M&lŧIKЌm2nE&/tƶMߨ Ck2;Ń7'zzS(jF7Gӆ'kEč1r?SRRaW6jbcoNIMJc#& q3E2n2M5b\&O?".&kT$x= EgɀDqNs}]YQq/8$05"rd=lНh% j"t 6t:[]v k`8@GzCVg(LMQ"J;T`P[_#K:R+6M8cjbE5I }L"6b\{]kzYƧ~4%ƿ*HM(|_ ьtѶzMW7A{/ts66I? ~zs[B&X*-1B,GTb=N;7]OVz&959`mYM7A ^a3 C(ߡˠ7XoWW+B -QIg LU ~XO@Km"I, Oy?5\˱<MJ95quu쐎~~xc;~<\c>~>ߋKHD&m +oVn)T($ Mi㥴YޠUӮVobK,cCU5ɀk@\Z[&ܸOZMD`*IE1-a|O(^9vH0i&D|Gj2Grۤ|۫ju2OۧsޯQL^ -}ڕjOHM^Jg{BԤ0V:@y>*59^ 83AKDi\jrNGmYPgmrNjbϝOdpjR6_ aB($MAQ|*] 흧cc;۷mjZb*nςE"aǂ;PQDr& ^C@EUuą P5QP<.X6=ds P술& um"ǵ}U5Qdo?N 4]lŹWu|6D,!;\Pl2AX9~u5m$yp]cR\ Ѳ_iboݿ.ٿ6&n/a>;uw:MMJ-*uG;(5@ߍ l$}a] t^M:IolQ֘4io'SjBKjea?dlsBwW_o6U\Mrb ChtE-' DIOe!vT`t،0W=?&#KƗ@7|l(4I{.h&ttǟ ս. kק|C oBq$n̮%4qDaUM6nE,ΤS\s3Vhq=<4)Ak$&E7hߺP T3:T'xd/|2nf4otP d7Atybk'MFځ$D̘C UϠ&co&$3̄j4)`y]Mi'oQ&R/כ$7W=ǞX='5=-& #$sId5G&6I6ٚ̊zAOjDFQMl;]t]UϹFo^O4w'!MܑqlQ֘Y.ϙjP@OWf^" <`Yyt}|ɾ&GW s IVmiwbW7׍>.&q&<:_m(op iIeh{}/ ss(KΗ)&6NM|#(5'٣7 6n.V={< 0)E=_3n'< pG{Q^=_&YN 9qmԤj9at\Mo )HaPF}&d7;CatIkEoJ?}iio&顒x+ jb}}ye5%5ZdIJXH?fߘ}W}f/nc|vV6B 7 UZj%xe05΂~~zJCXJM0:m&WQwn>|E kJ'ЕiVjRsB&:u`5 .ܧ}_LMTM^IMbNx L^5WWn km4&_I&/$,=陚T7I9{]h1>x juݢ&?̩;{_~Y}LeZirӀLljy\1i'ف&&*&qGK5jBj?8Ԥxgd\U0cE IDAT&;Æm;NO;%9M|"UԤϞSh SjRvT*&@5 NL^j2AwQg,~;&{sK`LC [ $o`\dFT#[$&Cl-M"M0`Ф|Y5 ^qaLT߂Sv,ppW/8nbH+lht;יc_ &/tuVM W^Mܵ4$ B nS&o*4p MP7ɪ#Mu7I7A4Y*_a^MGPUe ot 镇e=N&}_tN:(JxKjR-smԤ0nҘ&dsPg[UeGiu~!s^ûIs i-_LMHΗteWG5~lS&mrjB9`Ki(V&Hd 5٠&[U7K*&|՟PQT˫CjJLڻ,&۔E^bnY {^Is~r >=.mN1Àr15qQu䆒4x&EOT 3 2n SGS' lwSDg>_qr_jlhz>5MZ&zšxL<3X5 TM[CW ]_ٵIM\^4]6#?=`-'5)L*3UOa:jHjdX{G\HMɵIdWJn}̱34ɪ.tʛS_6I w `_O?r>]&[ ߓ6:1g㶄T=/ 3 v ۄu:IɈ-i{QM=)h&¼ْ&Y6ĵʆ&q%ԄV짦ˍ.~,_I k_5G]6!4yz$-=)S+\yo* 24Ns| 5ip.uB2Rh Oun<0ي!;{J1:i! Mx|fWMEU ~Ky͜&ׁҤz> ]6pP U' 牪bHiro(P=_oBL>6&HML,$)|ukivo.u z%0( 4I Q }.&@"l UzYk)mN #&4i>$4ibMlzښ&WT|Z4j$1Ap=Tq9*FO_i ٧q,8Զ]H ™NM2ݸOM^_oXdކ\,*odϩ%g2cq{6qTX@x1S0T" 4!~6njd)hg'M=3Bc %STGj@$iRY@ ۄ']Wf.&HL@hғ R'h#mOh4YooI&XBߓH>pC<'zٚ' h6A%\$^hB.X^[8A 5OG\M&p{NjpIʼnIӤ<ऒrx4Mm^WhL&t7Mt+&Ą +0c Peh3n.&xґzTg1)Hw|{RPcֶ86pe&Lɸ~wjm[ej\OM{C䊶bo4M@7Q I'f6!S oL]P%Qrh~B2{9MtI麠xˆQFw1; #D˒*r8 4V]o_*%>Nϟj.DP:u4MBդgo5Mba}F@yIlŨ?&K$C +s^Iiډى'5 XhBIE M&RA߄&&&K$ ֎Ci63؞&j7РJȬyB&I<#tCMP,7C+dIty]GM'&ȓiҧgOϔps‚&դjx1(4aq,QKWtgv涉¡uwtqpE5Qi5jmxmj&y4MxC:$澤U5QlFj jp=mz:nCyP2;iŌ+vbKGݣvCMM Z@>djKynrw2&h8yQ񤱚t MgI&g jR +ib\ Mlà/4EvϮ&d}Rn!(߮R5ɐv /dMj&Ǖf77&kkM4!_ M_ HJJ0vL\~g] GYݓ&hpnX~KUT}M&&P$tDqHV~Mt+&9MB[~ID^Qr7 VP|~CaoYے8)lW^T56H\ h2n.&CdsDPDD1UMhbNFԗ=KDqڨIa۬\68EI_:߃JY%Fr:,g!dytwWMec>&I&HfЄTlKQ=bԟwgCHYȆp:hGHSUMG0P,-i2{LAQq4b2s!6iJ7R*MhDY-5>"ddO%eMR!,hR&/.`~$l Ֆ%&ĻM>XM 44@a_\(Mz&lh˓F&צ)M6agaIu^9%ecSź lD$K>-MMh%ҩd/mSajJ4AHB'X$ql@JRo\R5jR5{rȱ =!6, 6<% >$N B>WjmmidKP56Q6Q5QADm<&DžfT8&#pɿQ2\6A=%WN$>>ua%$41jNY+޵I&5)^k&LHj4 1 @)WT2=)wmN !rMSE?@ڬ7~;J4͢7\6NBڀ4̠>LӺ QMo&UA&&;IH=DM 4!1/ {o&Ⴖ Qݳ$qo*E5%5YӉvv@(@h8 /_ͳ{~$]|>i7243{4MMXhH+ 'ʣP|(ߒhW@C5Ό?[фʸI&nҤ msy-[*5d!hcOv/59]51iaXk-5I7l)gW1&eD3<:+`7MP=]u0&1&isH?хդ (o6&ab5j(6´jPގ#m4+t㝪& Q1k 6P4k v6AMKSx ڍ,!nN}o9]K\k5y!^yhz]ՈS?Le>,դ &|Y)G?mC&h&-3#[9OMhJ4l@`<>k[c]XMvGd 'M1ՃˊifSHe$S+uA2)s84H] SEfM&AYM.&v;5i~3hd1D؃ZkHIM6!JjrUOMp!<MXV8ۈ&MawDS-zfX)i~0$Afg&$2y@+D8z#5lXXחHD3{RـfldatV'w@DyyEڐ=lI~c/jK/>PMz蜮O5@35v:dPj>[˱1hzzDC5 K$PMt'cmbmL$DLD< $b ,MqHK$=NΙ5/j(5Ape X8jV&P5Ql9]|}o4u~ބGjbmLVM"qT} æ4R6dWwq!| K0ZR&)j5QNix¸x(`jcUe+Q‰x.ecK^&,r5Cz$g8IrQe;mRY>PA} o\oq /TQ  IDATNBlYM.&U4$]#=hE-⩠aФ^M7 0~ajCWIjbó~olܯj2jMP;αE5oM{RM`V{`a51/&PiLQM%?QT64mbI!@ǽ*3{S}Z#VIl5&EO4 4Y&~wT`ü4| :*M6!2mXdc>NMhJ4|k-x.CRɐQ((LMBMo uo[jghhXGX轒m\ka/U>MMNK>2@EfM&A8c߃ 7;nBet9e \ދj"IAKjrp/JTI[{@)>nЄ5>@lo#49Q&,C a%’hJR MFZJi̫Ic\IM!Xbp6dg=[x)%2RGDDt}2Jjc_^o #,Lj>TM6Moj6_⍏M25Yz-DmOFz MGQMXKi0c؊jrQo27lMIYlЬSMi6ll;_&+W/u'mb^/&b#_"`jcUe%%%3⹼-6YzO"&mhr~ۤ|停j)OM&q"y폔:<@QMX^zLd~il&N4DYob׾)ŗP2`JzT&V/$t &ILN`(MVaT^s5iLINmi& VIE94|4¯bmՋ&mMEM(M.EjdbT4IKd,C,_h mDZ=7`d1lRMV^#edn*;5Oo(jכ+Z5Id39]cs5DDq5l&\UM6dԤѻ|^T\ &&uOAkm,ն m(4ؘxIO=~yۀn Ջ9&GߤMIo1`9>bK\hEۚ&o&U4 iRTTZzqI,,]_6YK+D;Fijv1nEXpG$Ä́MV^RP9dSrK\|k[ jVX&ox-M^MJJM^5-D`˻&CFik;v4y6\ȗz}_CMֽDxM<,dEW 蜮OF[8dVY&BCj<*dE+,_|y"t~DT4ewބM@D j$4CƓumh4b&tEMoߤ )0߽By&٢C:èl`p59MOG3eBl a'&h4QL`I)dwR7iw!Ɏ DZ45lyPnѕ"5a/{&KW/†Jm:boٶaifI6Yz fjb ^Sϯ&X&Bd xEhEYMhBZwJLJenۥpxĄjRzѦċդ&WR>є Dw jRz1oz1.WMoӵ6Y&.Զ>(gD7&kV/xmD&^MZ{mh"OJS5Qzjx5i'&kŰĝK#(8^*B*DS`bDBody Text Indent 3 @ mH 2P`r2 Body Text 2CJmH (L ,#e a#$(, "$%T O,! w } 5 @ quw! ! !+!!!!!""##x$$$$$$ &&&&(((~'+r}WZ|4;F Q w ~ 5 A W w ?NLUemFOw.4!!E!I![!c!s!x!!!!!""d#####$8$B$o$$$$$$X%e%%&l&u&&&N'Z''''(((((((( M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith#C:\QuizzesExams\ENEL415\98quiz3.doc M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith0C:\windows\TEMP\AutoRecovery save of 98quiz3.asd M. R. Smith#C:\QuizzesExams\ENEL415\98quiz3.doc M. R. Smith#C:\QuizzesExams\ENEL415\98quiz3.doc '؀nO0؀v#-b@+ t7֨(G P؀h9gpIk؀hho()hho()0o()hh.hh5o() hhOJQJo(hho()0o()hho() t7GnO0v#P@+nO0'h9g @Canon BJC-4000 new 1996 driverLPT1:CANONBJCanon BJC-4000Canon BJC-4000 new 1996 driver odhhCanon BJC-4000 new 1996 drivero o o 4!*@@'dCanon BJC-4000 new 1996 driver odhhCanon BJC-4000 new 1996 drivero o o 4!*@@'dqqjuqp(P@GTimes New Roman5Symbol3& ArialSWP TypographicSymbols"@ hh*F*F*!G$ 2&)j quiz2.doc M. R. Smith M. R. SmithOh+'0x   ( 4 @ LX`hp 1998 Quiz 3uiz M. R. Smith. R Normal.dot M. R. Smith5 RMicrosoft Word 8.0@߽@LK@p,p@c(!՜.+,D՜.+,H hp  University of Calgary3G&)j  quiz2.doc Title (RZ _PID_GUID _PID_HLINKSAN{F04ED68B-546E-11D2-9190-0060083DA76C}AdQM E:\trylab1\quiz3.gif  !"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSUVWXYZ[\]^_ijklmnoruRoot Entry F۸?t@Data 'Y1TableT&WordDocument4LSummaryInformation(DocumentSummaryInformation8M~@ l A@hCompObj| ,9JMjObjectPool BB  FMicrosoft Word Document MSWordDocWord.Document.89qOh+'0x   ( 4 @ LX`hp 1998 Quiz 3uiz M. R. Smith. R Normal.dot M. R. Smith5 RMicrosoft Word 8.0@߽@LK@p,p@c(!