ELF4at4 ($!P;H<`Eŀ|8@@<8}8PU A})8Bq A})8Bŀ |8@@<8}8PU A})8Bq A})8B%8!<|C|CHHHHAH!|?\ /@\?+/A$8 })N!+/@= 9)/A<`8c4H8\ 8!|N = !9)|/<`<8c48`AHq=`= <9)8k|xH%|`x/@8,H? = 8ix|xH = 8ixH|`x  /A8,H= 8iH= 8iH= 8iH8H= 8 | = 8ix|x8H q|`x/A8,HT= 9)x)8 |xH|`xT/A= 8ix= 8P8H 1|`x = PT>/A8,HT/@08H?8 = a)B?H@@?8 +@= 8i H}= 8i0HqH= 9)x)8 |xH|`xT/A= 8ix= 8P8H Q|`x = PT>= 8id|xHK,|xa |}a[xN N C= D|gx8`j| @p A # })Zj8i| @p @GN !||#x /A4/A,@~ ;H5A 8!|N !|=`/ 9+\L|+xP  iI T aAA|ix8;x}i#| !/|HP}!I}i[xH9@/A8-9(x;H}x|4Tc~K@A;H5@@}xK\LPT|8!XN /}#8@D;K| Hp AL@,/0A48aKY(aa>D8ca|kx8caK| Hp @p }ISxA9* 8 +SAT= T:9)h}i.}kJ}iN a +@ U`:!9ka |`Jc8 8Kqa8c/@t\`d|h} l8!pN a +A!8 iHa8c/@K8aK9a KA$K8`%HaK8,K|;Kt/hAt+hAx/aA}CSxHa8caKD;K|zx`xHcx8H8}W$>HcxW$>HxDxH,! Aa|8!(N !| |#x|~x;xHp` A8~xHM |8!N !|9`;|x# /AH;H$Hm|~;? @@T8cHp`@Ё? x}>HPx? |Z8!|N x}>HPx? |Z 8!|N !| |}x;c8cH9`p`Ah =}|Z}?HP =8c8Hp` A ;8xH`dxHx 8!|N = ;}Hq9`K!|<`88cА H8= X 8!|N !||ky|#x/9@ 8?Ax= _Xa)A 8_XHA0<`8cH8X8` 8!|N   |_X 8!K<`8cH98= XK<`88cH8XK!|/9`|y<` 8cГ?|#x8|+xA= }Xa)xA<`8c8}XHA4H8X8` |8!N jX;8xHTdxHx | 8!KLH8= XK|<`88cH8XK`!|/8\ |y<`8c8?A|+x8 XA\= 9)   ?$XH <`8` 8!|N <`8]8cH=8X8` 8!|N H8= XK!||~x ;xH9p`A8~H) 8!|N !| |#x|~x;xHp`@8~ xH |8!N !|= 8Ua)9`|y<` 8cؓ?;A<`8c8V}XHA8H8X;x |8!N }X8c,H||x8c8H8|}x8c,H-88c8H8c8Hс?h`x8i81 Hx8c,Hx |8!N H%8= XK,= 9` 9IA A}c[xN }KSx@9j}c[xN |cTc>N |cTc>N |cN ||`,Tc>N ||`,N |N |N |N T`D.Tc>|cxdN T`>Tc>T D.T>TkD.|KxTc>T|c[x|xN |,|N |,|N !|=  T/A | N!= @/@ 8!|N = iTN N !|8 |xH}= iL(/A | N!xKp`|jx@,#<`H#=i9k}k8}hHyA/A/@|jPN !|= }&iL4 !|yxHA|#xa/$(,AX|7AHW:-}|J.9);JA`AAP/;;;@܁4!A} a| } $(,8!0N <}9)AT8/AA49 })0}*9A }*9A(~}iN!K`}iN!KTK#x}iN!K8!|= 9)( ; /A| N!/@ 8!|N !|KK|8!N !|K]|8!N PS/2 Demo using Polled Mode Transmit some bytes to the PS/2 device Observe that the SCROLL/NUM/CAPS Lock Led's toggle Press the Keys on the keyboard Echoing PS/2 scan codes from a PS/2 input device %x HXdlL ((((( AAAAAABBBBBB 0123456789ABCDEFxps2.cxps2_selftest.cC0P\\+@8|<@ `B|S|ۦ||| || 8?<`|x|x|#x`c|e||hc8|e|||28, @|||8,@@< `!|:8 |;LdK$p (3 L  ) \H 9H[Txil_printfdoutbyteU3lXUartNs550_RecvByteXUartNs550_SetBaud7XUartNs550_SendBytelXPs2_ReceiveBufferXPs2_SendBufferxXPs2_RecvXPs2_Send$XPs2_CfgInitialize2 )XPs2_RecvByteXPs2_SendByte  XPs2_SelfTest$ 9"XPs2_LookupConfig[aXIo_In8XIo_In16XIo_In32VXIo_InSwap16XIo_InSwap32XIo_Out8XIo_Out163XIo_Out32hXIo_EndianSwap16OLDXIo_EndianSwap32OLDXIo_OutSwap16/XIo_OutSwap32fMXAssertXAssertSetCallbackXNullHandler!XAssertStatus:XWaitInAssert# XPs2_ConfigTablelboot.S/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/standalone_v2_00_a/srcGNU AS 2.16xlcpu_init.S/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/standalone_v2_00_a/srcGNU AS 2.16$ intrm*ere4+ A Y  gprH# fprH# w# |O# _O#;i _V len%# I%# %# (e# N%# {%#$_  z%Qyn{%cp|jZjQ-1C,Ppar,ni.%%_#QnPPparPcpRj/sS%MlTDUnumVQk,e Ae A;lp:jpar: ?%%par_chegjv6__x% 0 jJ'l F*rP?intV  Sc ,rh  Eh0*flWrP?u32}Lu8%intj~ 1is7  1ss s =~ ^~ ~0 sC sN a1MsnM~k  Eh0jI*flbrP?u32}Wu16~>u8%int#1~#  #~#~# u& , B ~ ~,#~## Q##$#(B Lf~   eg~  .&~ " %A'~uxd   |~ _~~   Ii~~$~ i~N~oXVrVoW~ _\ Eh0*flWrP?u32}Lu8%int]s 1\s 0G\ N1Gs mnG~ L\ Eh0jI*flbrP?u32}Wu16~>u8%int#1~#  #~#~# u& , B ~ ~,#~## Q##$#(B /M\ L N =O~ %P~ 8 _H j>*flWrP?u32}Lu16~3int~#1s#ULQ K~ K xM[ Os  g7 ]5Eh0jI*flbrP?u32}Wu16~>u8%intC~xQSw i% QS |V~ QS ~ y(QS  ~(4Q S ~ B34@Q2S2T 3X@LQWSWT h|LXQ{S{~T XlQ d KT .lQ d~ KT]~ /kQSTQS~TI+*rP?jp,int W  V > V \ rrQ q_S Q  ]S C_T93X@@& j>*flWrP?u32}Lu16~3int~#1s#  g%%% $ > $ >   I&I: ; II !I/  : ; : ; I8 : ; I8 .: ; ' I@ : ; I4: ; I4: ; I .: ; ' @: ; I4: ; I4: ; I .: ; ' : ; I.? : ; ' @ : ;  1X Y 114: ; I? < % $ > $ > .? : ; ' @: ; I% : ; I$ > : ; I$ > .? : ; ' I@: ; I.? : ; ' @ 4: ; I 4: ; I .? : ; ' @% : ; I$ > : ; I $ >  : ;  : ; I8  I ' I .? : ;' I@ : ;I4: ;I.: ;' @.? : ; ' I@: ; I4: ; I4: ; I? < % : ; I$ > : ; I$ > .? : ; ' I@: ; I.? : ; ' @% : ; I$ > : ; I $ >  : ;  : ; I8  I ' I .? : ; ' I@ : ; I4: ; I4: ; I? < % $ > : ; I: ; I$ >  : ;  : ; I8 .? : ; ' I@ : ; I 4: ; I 4: ; I  I I!4: ; I? < % : ; I$ > : ; I$ > .? : ; ' I@ : ; I4: ; I 4: ; I .? : ;' I@ : ;I 4: ;I .? : ;' @ : ;I  I4: ;I.? : ;' @ % $ >  : ; I I' I$ > .? : ; ' @ : ; I .? : ; ' @ : ; I 4: ; I 4: ; I?  % $ > : ; I: ; I$ >  : ;  : ; I8 I !I/ 4: ; I?  h boot.S  %3 cpu_init.S /cygdrive/d/XILINX_L.33.3.1/EDK/gnu/powerpc-eabi/nt/bin/../lib/gcc/powerpc-eabi/4.1.1/include/cygdrive/d/XILINX_L.33.3.1/EDK/gnu/powerpc-eabi/nt/bin/../lib/gcc/powerpc-eabi/4.1.1/../../../../powerpc-eabi/includexil_printf.cstdarg.hctype.hz+#V*;f;c/!KQ!Y"N,:,,:!!H,8-:gq)=+ Gu u9U c)!=1)7"I): ., v t+I9JUacJ +!c9z9'+c.G2+~,JH*G:cF6c GmCG4O<,v96 outbyte.c  :E ../../../includexuartns550_l.cxbasic_types.h c"M,c t +tg+g"9wA::?:#L:LG ../../../includexps2.cxbasic_types.hxps2.h 2y2y2y$MzU>q  !!Qi !!ci q#y#Hvjqq/5!H~G1z$z#z#-*qwq uz(prq2z#z+1z#z1z#FUix%cp#ovUiVq0!'/Gg+ %xyz"<`q c_q`? ../../../includexps2_l.cxbasic_types.hcJ-dcJ:P ../../../includexps2_selftest.cxps2.hxbasic_types.h\ +x%x+3x%x%,F0cXx%;?z#?I 9v v+ +$NOiM ../../../includexps2_sinit.cxps2.hxbasic_types.hz+H"E ../../../includexio.cxbasic_types.hxio.h ++ ++ +1+2 +33H!00W4 xbasic_types.cxbasic_types.h-:1IG,OI ../../../includexps2_g.cxps2.hxbasic_types.h |l  HlDLlH DXXl` Dpt@l |l  (DPl |l  LDLlH$ D(L lHHTl \DLlHH |l  DPlHL DLlH 8DTl D`l $DP lXLlDP lPl |l LDLlH\DLlHH |l  ,\HDX lXHl |l  `H |l      ( 4 @ L X l0   |l PDDLl P Pxil_printf.cgetnumdot_flaglinepoutnumshort int__gnuc_va_listl_flag__ctype_ptrparams_sreg_save_arealong long intleft_flagdigitsbasexil_printfunsigned charctrl1long long unsigned intcharptrargpshort unsigned intGNU C 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)pad_charactertry_nextlong_flagnum1do_padding__va_list_tagctrloutbufnegativeoverflow_arg_area/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/standalone_v2_00_a/srcparams_toutsnum2reserved/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/xilkernel_v4_00_a/srcdoubleoutbyte.cfloatoutbyteBaudMSBXuint32DataXUartNs550_SendByteInputClockHzBaudRateDivisorXUartNs550_SetBaudLcrRegister/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/uartns550_v1_12_a/srcxuartns550_l.cXUartNs550_RecvByteBaseAddressBaudLSBXuint8XPs2_ReceiveBufferByteCountNumBytesConfigPtrIntrMaskxps2.cXPs2_CfgInitializeBytesSentReceivedCountNextBytePtrXPs2_SendRemainingBytesXAssertStatusXuint16CallBackRefXPs2_RecvEffectiveAddrSentCount/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/ps2_v1_01_a/srcXPs2_StubHandlerXPs2BufferXPs2_HandlerIsReadyXPs2_ConfigRequestedBytesDeviceIdInstancePtrPs2ConfigXPs2_SendBufferBufferPtrXPs2XPs2_SendBytexps2_l.cXPs2_RecvByteGieRegisterxps2_selftest.cXPs2_SelfTestIeRegisterxps2_sinit.cXPs2_LookupConfigXPs2_ConfigTableCfgPtrIndexXIo_InSwap32XIo_In8IoContentsOutAddressHiWordXIo_In32XIo_Out16ValueXIo_Out32/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/cpu_ppc440_v1_00_b/srcXIo_In16XIo_EndianSwap32OLDXIo_Out8DestPtrInAddressLoWordSourceXIo_OutSwap16XIo_InSwap16XIo_AddressXIo_EndianSwap16OLDxio.cXIo_OutSwap32XNullHandlerXAssertLineXWaitInAssertXAssertCallbackRoutineXAssertCallbackNullParameterFilexbasic_types.c/cygdrive/c/ml507_bsb_std_ip_ppc440/ppc440_0/libsrc/common_v1_00_a/srcXAssertSetCallbackxps2_g.cSHWDSHLQLqHSSHTnTxoQq\SSdTTUmm`X`dodWW,Y,0[4TYYQq4STS8SLXSSSSSS$XSSS S,0S<TSX\ShlSx|SSSS<lll<pmm<ZHZLZZZ Z0hZZ,ZZZZ0[ [ [[<LYYLYY<o`oo\oQ(qSTQLq S <nLPQPq(LtStmLTLTUT`iTQLqS<nT8mQq8S8oonnQqSDm\hmxmloxoQqSTUQqS([Hl[lx[[T(XHlXlxXX(UHlUlxUUQqS@oHoSoT8nHnnU0lHllQqSXodooT<UdtUUQLq S <nLPQPqLtStnLpTpmQHq$S$o,o4Ho@n$n4Hn ml(S,DSSS (S((S,4S<DSDDSltSSSQDq$S$DS$T$DTGNU C crti.sGCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 11.1 Build EDK_L.21 6 Nov 2008)GNU C crtn.s.symtab.strtab.shstrtab.text.init.fini.rodata.sdata2.sbss2.data.got1.got2.ctors.dtors.fixup.got.eh_frame.jcr.gcc_except_table.sdata.sbss.bss.stack.heap.boot0.boot.debug_aranges.debug_pubnames.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.commentD!D$'h -b5=DJPV$],d4k4p4z<@@P \H +h 46=yD0H$O z%[,`F.g #V rDh $ , 4 4 4<@@P\+ !"#@x''2=$ K, Y4l<y\`dx,Hl !( 89BR_etT2( 0 4<#+\H9LG Ucv@ P  0 X L X #/;9$C R_Lr|Dl0 D+\@\  \0 H;LH^P=( ls@X4 ;\4 @P8P (# 3\?KPT4 `ep\~4  ( @K0 hH4  L$  +(\Y44P;;@IXxZ@_ p( }HTD@   boot.Stlblooptlbzerocrti.secrti.Sxil-crt0.Scrtstuff.c__CTOR_LIST____DTOR_LIST____EH_FRAME_BEGIN____JCR_LIST__completed.3090p.3088__do_global_dtors_auxobject.3143frame_dummyps2_polled_example.cPs2Instcpu_init.Sxil_printf.cgetnumpaddingoutnumoutbyte.cxuartns550_l.cxps2.cXPs2_StubHandlerxps2_l.cxps2_selftest.cxps2_sinit.cxio.cxbasic_types.cXAssertCallbackRoutinexps2_g.cctype_.cexit.cimpure.cimpure_datastrlen.c__call_atexit.c__CTOR_END____DTOR_END____FRAME_END____JCR_END____do_global_ctors_auxcrtn.secrtn.SXPs2_SelfTestXPs2_RecvByteXIo_OutSwap32__SBSS2_END__XPs2_CfgInitializeXPs2_ConfigTableXIo_Out16__sbss_startXIo_OutSwap16_etextXUartNs550_SetBaud_bootXIo_EndianSwap16OLDXPs2_RecvXIo_Out32XAssertStatus__dso_handleXIo_In32__cpu_init_START_ADDR_heap_endXPs2_Send__GOT2_START____GOT1_END___global_impure_ptr__bss_end__ctype_ptrXIo_EndianSwap32OLDXPs2_ReceiveBuffer__init_heap_start___bss_start__EXCEPT_START__XIo_In8__sbss_endXNullHandlerxil_printf__sf_fake_stderrXUartNs550_SendByte__deregister_frame_infoendXPs2_LookupConfig___sbss_start_boot0__EXCEPT_END____call_exitprocs__FIXUP_START___start__end__SBSS_END__XIo_Out8_SDA_BASE___SDATA_END____EH_FRAME_END____SBSS_START____SDATA2_END__outbyteXIo_InSwap16__sf_fake_stdin__bss_start_STACK_SIZERxBuffer__GOT_END__main_HEAP_SIZEXPs2_SendByte_stack_end__GOT_START__XPs2_SendBufferXWaitInAssertTxBuffer__SDATA2_START____fini_impure_ptr__FIXUP_END__XUartNs550_RecvByte__GOT2_END____GOT1_START____stack___sbss_end_edata_endXIo_In16Ps2PolledExampleexit__sf_fake_stdoutXIo_InSwap32_ctype__exitstrlenXAssert__SDATA_START___Jv_RegisterClassesXAssertSetCallback_SDA2_BASE___register_frame_info__SBSS2_START__