Index: trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.hex
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.hex	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.hex	(revision 1455)
@@ -0,0 +1,905 @@
+:100000000C9446000C9465000C9465000C946500FB
+:100010000C9465000C9465000C9465000C946500CC
+:100020000C9465000C9465000C9465000C946500BC
+:100030000C9465000C9465000C9465000C94D60B30
+:100040000C948D0B0C9462110C9465000C9465005B
+:100050000C9465000C94D8120C9465000C94650007
+:100060000C9465000C9465000C94D8110C946500F8
+:100070000C9465000C9465000C9465000C9465006C
+:100080000C9465000C9465000C94650011241FBE4F
+:10009000CFEFD0E1DEBFCDBF14E0A0E0B1E0E2E7FA
+:1000A000F5E300E00BBF02C007900D92A030B1074E
+:1000B000D9F715E0A0E0B4E001C01D92A036B10769
+:1000C000E1F70E9467000C94B81A0C9400000F939B
+:1000D0001F93CF93DF938FEF93E00E949E060E94C1
+:1000E000F30883E00E94930E8CE10E94BC0E80E036
+:1000F0000E94870781E00E948707C1E0D0E0219736
+:1001000079F468EC70E080E090E00E94B20F68EC57
+:1001100070E080E090E00E94CA0FC0E0D0E00EC026
+:1001200068EC70E081E090E00E94B20F68EC70E053
+:1001300081E090E00E94CA0FC1E0D0E085E090E04D
+:100140000E94FC0F0E9479108DE00E942B1082E328
+:1001500090E00E94A21180E00E9476078C0181E06D
+:100160000E947607800F911F62E070E00E941D1AC6
+:1001700077FF03C0709561957F4F64597240F4F228
+:1001800080E00E94870781E00E948707B8CF2F9206
+:100190003F924F925F926F927F928F929F92AF9217
+:1001A000BF92CF92DF92EF92FF920F931F93CF9364
+:1001B000DF93CDB7DEB726970FB6F894DEBF0FBE3C
+:1001C000CDBF5C016A017B01522E180127FF02C0DE
+:1001D000552405C085E2821714F485E2582ED50116
+:1001E0009896BE83AD8320E030E040E050E0C70148
+:1001F000B6010E94D618882354F4F10180819181C0
+:10020000826091838083F7FAF094F7F8F094AE015E
+:100210004F5F5F4FC701B6010E9436193B014C0189
+:10022000E980FA800B811C8120E030E040E050E062
+:10023000C801B7010E94D6188823E9F1CD80DE807D
+:10024000442428C02DEC3CEC4CEC5DE3C801B70124
+:100250000E946619AE014F5F5F4F0E9436192AE96E
+:1002600039E941E251E40E9466190E94BB18605DC1
+:10027000D6016E936D014394E980FA800B811C8155
+:1002800020E030E040E050E0C801B7010E94D618FD
+:10029000882319F0AC14BD04A8F2750106C0F6015C
+:1002A00081916F01D7018D937D01ED81FE81CE1685
+:1002B000DF06A8F329C020E030E040E050E0C401B0
+:1002C000B3010E94D91818161CF0750144241CC0F3
+:1002D000442403C04A943701480120E030E040E262
+:1002E00051E4C401B3010E9466197B018C0120E036
+:1002F00030E040E85FE30E94D61887FDEBCFE9824B
+:10030000FA820B831C837501D1014D915C9153FFDF
+:1003100013C0BDEF4B1684F0242D332727FD3095F5
+:10032000852D992787FD909501962817390724F484
+:100330005460F10151834083D1018D919C9192FDD4
+:1003400008C05394052D112707FD10950A0D1B1D9C
+:100350000CC0052D112707FD10950A0D1B1D842DBE
+:10036000992787FD9095080F191F0A151B05D8F4CA
+:10037000F5014CC020E030E040E251E4C401B3019B
+:100380000E946619AE014F5F5F4F0E9436193B0114
+:100390004C0169817A818B819C810E94BB18605DD0
+:1003A000D7016D937D010E151F0528F0ED81FE81AB
+:1003B000EE16FF06F8F28D819E810817190718F0D6
+:1003C000F50117A224C0D8018C918B5F8C93F801A2
+:1003D00031E318C020E3D8012C93A016B10628F40D
+:1003E0008E918D018F5F8C930DC0D8013C93439407
+:1003F000D1018D919C9192FF05C0AE16BF0608F405
+:1004000020833196D8018C918A3324F71082842D71
+:10041000992787FD909526960FB6F894DEBF0FBEFC
+:10042000CDBFDF91CF911F910F91FF90EF90DF90A3
+:10043000CF90BF90AF909F908F907F906F905F9084
+:100440004F903F902F9008952F923F924F925F923E
+:100450006F927F928F929F92AF92BF92CF92DF92D4
+:10046000EF92FF920F931F93CF93DF93CDB7DEB739
+:10047000EE970FB6F894DEBF0FBECDBFCC24DD24BF
+:1004800076013C017EAF6DAF5A011A821982FC01E0
+:1004900017821682838181FDF3C38FEF9FEF16C40D
+:1004A00009811A8100FFD3C3842D80538A30D0F490
+:1004B000F0E34F1631F4552021F403FD02C0116022
+:1004C00075C18AE0252D2802C0011124542C580E34
+:1004D00030ED530E57FE02C04FE7542E03FDCAC342
+:1004E000352CC8C3442D45564CAF433028F0842DDD
+:1004F0008554833008F0FCC0C501049698AF8FABDB
+:10050000F501C080D180E280F38003FD02C036E0B7
+:10051000532E077B1A83098346015701A7019601D1
+:10052000C701B6010E9497178823C1F08EE48D831E
+:100530008B8381E48C839E012A5F3F4F3AAF29AFC2
+:100540003CAD333008F07AC28B81805E8B838C8126
+:10055000805E8C838D81805E8D8370C2C701B60101
+:100560000E942D19892BE9F089E48D838EE48C8318
+:1005700086E48B8320E030E040E050E0C701B60124
+:100580000E94D61887FD06C0AE014A5F5F4F5AAF82
+:1005900049AFD6CF8DE28E83CE0107969AAF89AF51
+:1005A000CFCFC80192609A838983E7E44E1609F49D
+:1005B00049C0E41544F0F5E44F1679F026E44216FC
+:1005C00009F042C31DC036E64316D1F047E6441693
+:1005D000C9F155E6451609F037C38E010F5F1F4F6D
+:1005E000252DB501A401CE010F960E94C700282E2B
+:1005F0008CEF380E15140CF43A94DE011F9615C0DA
+:1006000094609A8389838E010F5F1F4F252DB5015A
+:10061000A401CE010F960E94C700282E15140CF4D9
+:100620003A94DE011F96121444F4FD01019000205B
+:10063000E9F73197CE2ECA1A02C0C52CC394BAAFBF
+:10064000A9AF7DC1552011F0252D01C021E0986092
+:100650009A8389838E010F5F1F4FB501A401CE01DC
+:100660000F960E94C700282E89819A8192FF1EC092
+:10067000822D850D8150282FA82FBB27A7FDB0956F
+:10068000AC0FBD1F1F9605C08C9111972150803370
+:1006900031F4622F27FD23C02215B4F703C3C62E01
+:1006A000562E5218539400C3C92E17C0252DE52D80
+:1006B000FF27E7FDF095EC0FFD1F3F9606C08081F8
+:1006C0003197292F2150803379F7922F1216BCF3DE
+:1006D000522EC22E222309F4EFC2592EEDC2E22F70
+:1006E000FF27E7FDF095EC0FFD1F108A552499CFE9
+:1006F000C8018870907003FF04C0552011F421E0F8
+:10070000522EE9E64E1609F493C0E4153CF1F3E5E8
+:100710004F1609F474C0F415ACF02BE24216E1F167
+:10072000241544F030E24316D1F143E2441609F0B7
+:1007300080C23FC05DE24516C1F18EE2481609F065
+:1007400078C239C093E64916E1F1E4E64E1609F4A1
+:100750006FC0F8E54F1609F06CC29FC020E7421643
+:1007600009F496C0241544F03CE6431641F14FE6E7
+:10077000441609F05EC20DC055E7451609F48FC056
+:10078000E8E74E1609F489C0F3E74F1609F051C2A5
+:1007900021C028E02BAF83C000611A8309838981BF
+:1007A0009A8180629A83898365C200681A8309836B
+:1007B00061C20064FBCF08601A83098352C20460DF
+:1007C000F5CFA5014E5F5F4F58AF4FABF501C0802D
+:1007D0003A9434C1F501C080D180892B41F0652D58
+:1007E000772767FD7095C6010E94831818C0F6012F
+:1007F00001900020E9F73197EC19EBAF11C0F5013A
+:10080000C080D180892B41F0652D772767FD7095D9
+:10081000C6010E94781803C0C6010E946F188BAFF2
+:1008200095012E5F3F4F38AF2FAB3BAD331A06C15A
+:1008300002FF0BC0A5014C5F5F4F58AF4FABF501F6
+:1008400060817181828193810EC095012E5F3F4F3F
+:1008500038AF2FABF501808191819C01B9018827C8
+:1008600077FD8095982F6B017C0197FF0BC002608C
+:100870001A830983F094E094D094C094C11CD11CD5
+:10088000E11CF11C89819A818F7B9A83898327C01F
+:1008900000641A83098398E7492E30E13BAF298130
+:1008A0003A8122FF0BC0A5014C5F5F4F58AF4FABA1
+:1008B000F50160817181828193810CC0A5014E5F39
+:1008C0005F4F58AF4FABF50180819181AC01BA0108
+:1008D000882799276B017C012F7C3A832983870124
+:1008E0007601CE0103969AAF89AF9BADA92EBB24AA
+:1008F000CC24DD24C801B701A60195010E94301A5D
+:100900006A301CF0640D615201C0605DE9ADFAAD62
+:100910006193FAAFE9AFC801B701A60195010E9442
+:10092000301A79018A01211531054105510511F768
+:10093000CC24DD247601CE010396C9ACC81A4981C6
+:100940005A81CA0182739070892B09F03A9446FF4C
+:1009500007C0FBADF03111F482E001C081E0381A2C
+:1009600043FF10C0252D332727FD30958C2D992767
+:100970008217930724F0477F5A83498303C05C188A
+:10098000351801C03C1840785170452B69F4832D0F
+:1009900006C0B30180E290E00E948E18812F182FCC
+:1009A00011501816B4F3312E89819A8181FF04C049
+:1009B000B3018DE290E00BC084FF04C0B3018BE271
+:1009C00090E005C085FF05C0B30180E290E00E9481
+:1009D0008E1889819A8186FF0FC0B30180E390E071
+:1009E0000E948E182BAD203139F4B301842D992744
+:1009F00087FD90950E948E1889819A8190FF0DC085
+:100A0000832D06C0B30180E390E00E948E18812FF1
+:100A1000182F11501816B4F3312E89819A8183FF53
+:100A20000DC0252D06C0B30180E390E00E948E1812
+:100A3000212F122F11501216B4F3512E898187FDE8
+:100A40000DC0832D06C0B30180E290E00E948E1895
+:100A5000812F182F11501816B4F3312E33E6431698
+:100A600031F4B3018C2D992787FD9095BEC043E7E3
+:100A70004416B1F4460156011BAD09C0F501819140
+:100A80005F01B301992787FD90950E948E18115040
+:100A9000A8F76401FBADCF0ED11C2FEF2BAFB8C070
+:100AA00033E54316B1F446018601BBAC08C0F8013A
+:100AB0008491B30199270E948E180F5F1F4FBA943B
+:100AC000FFEFBF16A1F764012BADC20ED11CFBAF27
+:100AD0009FC089819A8191FD03C009AD1AAD91C073
+:100AE00092FF1DC01214BCF4A9ACBAAC122D09C0FF
+:100AF000F50181915F01B301992787FD90950E94CF
+:100B00008E181150A8F729AD3AAD220D311D3AAF1C
+:100B100029AF22240FC0B30180E390E009C0E9AD02
+:100B2000FAAD8191FAAFE9AFB301992787FD9095AE
+:100B30000E948E1815142CF4B3018EE290E00E94EE
+:100B40008E1889819A8192FD06C017C0B30180E397
+:100B500090E00E948E182394822D815087FF0DC053
+:100B60005A94852D8F5F18168CF307C0B301892F17
+:100B7000992787FD90950E948E18E9ADFAAD919165
+:100B8000FAAFE9AF992329F05A94852D8F5F181693
+:100B90006CF389819A8192FD3BC0B301842D992722
+:100BA00087FD90950E948E182A9427FE07C0B301F6
+:100BB0008DE290E00E948E18219405C0B3018BE273
+:100BC00090E00E948E186AE070E0822D992787FDE0
+:100BD00090950E941D1A6B017C01CB01C096B30158
+:100BE0000E948E18B301C701C0960E948E1810C0D3
+:100BF000F80182918F01B301992787FD90950E949A
+:100C00008E18CE0103960817190791F71AAF09AF8E
+:100C1000898187FF17C0832D06C0B30180E290E071
+:100C20000E948E18812F182F11501816B4F3312EF0
+:100C300009C0B301842D992787FD90950E948E18D5
+:100C4000B8AEAFAA1A821982AFA8B8AC13C0F5E249
+:100C50004F1649F481E090E09A8389832AE02BAF14
+:100C60003324552407C0B301842D992787FD90951F
+:100C70000E948E184DAD5EAD4F5F5F4F5EAF4DAFC2
+:100C8000F301838183FF04C0EDADFEAD449003C04A
+:100C9000EDADFEAD4080442009F002CCF301868129
+:100CA000978114C0C22E5524EC2DFF27E7FDF09547
+:100CB000EC0FFD1F108AB2CCEC2DFF27E7FDF0955D
+:100CC000EC0FFD1F108AFEEF4F0E92CCEE960FB682
+:100CD000F894DEBF0FBECDBFDF91CF911F910F9172
+:100CE000FF90EF90DF90CF90BF90AF909F908F904C
+:100CF0007F906F905F904F903F902F900895FF925C
+:100D00000F931F93F894F4B205B387E784BB10E008
+:100D100087E785BB8CE291E00E94A21186E685BB45
+:100D20008CE291E00E94A2111F5F133089F7F4BAA0
+:100D300005BB78941F910F91FF900895CF93DF9397
+:100D4000EC017894809164008C7F809364008091A2
+:100D50006500836080936500C0FF04C081E090E07F
+:100D60000E94A712C1FF04C00E9408100E94161022
+:100D7000C6FF03C078940E94D614C2FF03C07894C3
+:100D80000E949D0FC3FF02C00E94A00FC7FF02C0B8
+:100D90000E942C0BD0FF02C00E940110D1FF09C09D
+:100DA0000E9428078F3F19F40E947F0602C00E940C
+:100DB000FD1380EA9FE00197F1F7DF91CF9108954D
+:100DC000E199FECF9FBB8EBB6DBBE29AE19A80E0BA
+:100DD00090E00895FB01E199FECF9FBB8EBBE09AA6
+:100DE0008DB3808380E090E00895CF93DF93CDB7FB
+:100DF000DEB723970FB6F894DEBF0FBECDBFBE019E
+:100E00006F5F7F4F80E190E00E94EA06BE016E5F57
+:100E10007F4F81E190E00E94EA06BE016D5F7F4F47
+:100E200082E190E00E94EA068981893431F48A8166
+:100E3000843419F48B81992702C08FEF90E02396B8
+:100E40000FB6F894DEBF0FBECDBFDF91CF910895EE
+:100E5000CF93DF93CDB7DEB724970FB6F894DEBFFC
+:100E60000FBECDBFBE016F5F7F4F84E190E00E9457
+:100E7000EA06BE016E5F7F4F85E190E00E94EA06C0
+:100E8000BE016D5F7F4F86E190E00E94EA06BE01E1
+:100E90006C5F7F4F87E190E00E94EA06898182348F
+:100EA00049F48A818F3431F48B818D3419F48C812B
+:100EB000992702C08FEF90E024960FB6F894DEBF1A
+:100EC0000FBECDBFDF91CF910895882329F4809183
+:100ED0000C0590910D050895813019F08FEF9FEF6B
+:100EE000089580914104909142040895882329F443
+:100EF00080910605909107050895813019F08FEFD4
+:100F00009FEF08958091A3049091A40408958823ED
+:100F100029F410920705109206050895813021F4F6
+:100F20001092A4041092A30408958091A5049091B6
+:100F3000A60408951092A5041092A6041092A70486
+:100F40001092A80408959C0180913F049091400460
+:100F500082179307CCF31092400410923F04089537
+:100F60002091A1043091A2042D32310529F4109270
+:100F7000A2041092A10406C02F5F3F4F3093A20439
+:100F80002093A104E091A104F091A204EE0FFF1FB1
+:100F9000EB5BFB4F918380830895E091A104F09176
+:100FA000A204EE0FFF1FEB5BFB4F80819181089540
+:100FB000E091A104F091A204309729F480919F045C
+:100FC0009091A0040895EE0FFF1FED5BFB4F808111
+:100FD00091810895E091A104F091A204ED32F10510
+:100FE00029F480914504909146040895EE0FFF1F67
+:100FF000E95BFB4F80819181089520910805309134
+:1010000009052D32310529F41092090510920805C1
+:1010100006C02F5F3F4F3093090520930805E091EC
+:101020000805F0910905EE0FFF1FE655FB4F918370
+:1010300080830895E0910805F0910905EE0FFF1FE8
+:10104000E655FB4F808191810895E0910805F0916C
+:101050000905309729F480910405909105050895BC
+:10106000EE0FFF1FE855FB4F808191810895E091BD
+:101070000805F0910905ED32F10529F48091AA04E3
+:101080009091AB040895EE0FFF1FE455FB4F808154
+:1010900091810895E091A104F091A204E81BF90B5D
+:1010A000F7FDBE96EE0FFF1FEB5BFB4F808191813A
+:1010B0000895E0910805F0910905E81BF90BF7FD8B
+:1010C000BE96EE0FFF1FE655FB4F8081918108957C
+:1010D000FF920F931F93CF93DF93F82E8091A1047B
+:1010E0009091A204209108053091090586978C0102
+:1010F000061B170BDC019696A61BB70B2652304039
+:10110000E901C61BD70B2A5D3F4F261B370B60E05A
+:1011100070E0FF2099F4FD01B7FDBE96EE0FFF1FB2
+:10112000EB5BFB4F40815181F80117FF02C0FD01CD
+:101130003896EE0FFF1FEB5BFB4F12C0F90137FD36
+:10114000BE96EE0FFF1FE655FB4F40815181FE0119
+:10115000D7FF02C0F9013896EE0FFF1FE655FB4F8F
+:1011600080819181481B590BCA014E96CD9768F03A
+:101170006F5F7F4F015010401197219721503040F1
+:101180006330710531F640E054E0CA01DF91CF9140
+:101190001F910F91FF9008951F93CF93DF93182F06
+:1011A00060E070E00E946808EC0161E070E0812F6F
+:1011B0000E94680824E0C030D20739F424E080306F
+:1011C000920741F480E098E00AC024E08030920762
+:1011D00021F4CE01880F991F02C08C0F9D1FDF9153
+:1011E000CF911F9108951092400410923F046DE238
+:1011F00079E08CE399E00E9448111092A9041092C2
+:1012000044041092430410920B0510920A058FEFCC
+:101210009FEF90930D0580930C059093420480936B
+:1012200041041092A2041092A10410920905109298
+:101230000805E5E4F4E01192119284E0E13AF80740
+:10124000D1F7EAEAF4E01192119285E0E630F8076E
+:10125000D1F785E00E945C1108951092A904809155
+:101260003F049091400401969093400480933F0482
+:1012700085E00E945C1108954091A9044230F1F08C
+:10128000433028F4442341F0413091F50AC0433003
+:10129000D9F0443069F51DC0282F3327322F22277B
+:1012A00002C0282F332780910A0590910B05822BCD
+:1012B000932B90930B0580930A051AC0282F332790
+:1012C000322F2227330F0AC0282F3327220F331F34
+:1012D00005C0881F8827881F282F33278091430443
+:1012E00090914404822B932B909344048093430465
+:1012F000842F9927019665E070E00E941D1A809363
+:10130000A904882309F0EDC02091430430914404DE
+:1013100024FD06C082E094E090930D0580930C05B7
+:10132000C9018C709070892B19F083E094E006C09D
+:1013300021FF09C020FF07C081E094E090930D05D4
+:1013400080930C050AC075E0369527957A95E1F7EC
+:10135000337030930D0520930C0520910A053091D0
+:101360000B0524FD06C082E094E090934204809334
+:101370004104C9018C709070892B19F083E094E0CE
+:1013800006C021FF09C020FF07C081E094E09093D0
+:101390004204809341040AC065E0369527956A951A
+:1013A000E1F73370309342042093410410924404D7
+:1013B0001092430410920B0510920A0520910C051F
+:1013C00030910D0584E02030380708F045C08FEFDC
+:1013D00093E0821B930B90930D0580930C050E9464
+:1013E000B00720910C0530910D05E091A104F0911A
+:1013F000A204309729F480919F049091A00406C024
+:10140000EE0FFF1FED5BFB4F808191810097C1F0D4
+:10141000281B390B82E0213038073CF0809106050B
+:10142000909107058F5F934011C08EEF20303807F1
+:101430004CF4809106059091070581509C4F06C0A1
+:1014400020E030E08091060590910705820F931F00
+:101450009093070580930605809141049091420482
+:1014600024E080309207E8F50E94FD0720914104B6
+:1014700030914204E0910805F0910905309729F474
+:10148000809104059091050506C0EE0FFF1FE855F9
+:10149000FB4F808191810097C1F0281B390B82E0BE
+:1014A000213038073CF08091A3049091A4048F5F11
+:1014B000934011C08EEF203038074CF48091A30484
+:1014C0009091A40481509C4F06C020E030E08091B0
+:1014D000A3049091A404820F931F9093A40480937B
+:1014E000A3048091A5049091A604A091A704B091B3
+:1014F000A8040196A11DB11D8093A5049093A60494
+:10150000A093A704B093A8040895882329F4809198
+:101510000605909107050895813019F08FEF9FEF30
+:1015200008958091A3049091A404089595E0899F63
+:10153000F0011124EA59FF4F20E030E080818FB99B
+:10154000779BFECF2F5F3F4F319625303105B1F7A6
+:101550001FB8779BFECF0895CF93DF93EC0103C0B4
+:101560000E94960A219688818823D1F7DF91CF9136
+:1015700008959598677060646FB9779BFECF806817
+:101580008FB9779BFECF959A089580E090E01FB8C1
+:10159000779BFECF019621E0883F9207C1F760E07C
+:1015A00070E080E090E00E94B90A0895FF920F93E6
+:1015B0001F93CF93DF93CDB7DEB726970FB6F8947E
+:1015C000DEBF0FBECDBF8C01DE011196E0E0F1E081
+:1015D00086E001900D928150E1F717FF06C08DE281
+:1015E0000E94960A109501951F4F86E0F82E9E01E5
+:1015F0002F5F3F4FFA94F901EF0DF11DC8016AE02A
+:1016000070E00E941D1A805D8083C8016AE070E06E
+:101610000E941D1A8B01672B49F0ECCFF801EF0DEA
+:10162000F11D80810E94960AF39403C08E010F5F22
+:101630001F4F85E08F1590F726960FB6F894DEBF02
+:101640000FBECDBFDF91CF911F910F91FF900895F5
+:101650008FB9779BFECF089587B3876087BB81B32F
+:10166000806381BB88B3887F88BB95988DB1806586
+:101670008DB9709A949A8AE090E00E94A211949891
+:1016800084E690E00E94A211949A81E28FB9779B40
+:10169000FECF88EC8FB9779BFECF86E08FB9779B22
+:1016A000FECF83E18FB9779BFECF80E28FB9779B26
+:1016B000FECF8CE08FB9779BFECF959A0E94C50A2A
+:1016C00008954091ED025091EE0220910104A22F65
+:1016D000BB2782B7FD01EE0FFF1FE40FF51F9181BD
+:1016E0009F5F8917B8F095B31196AA0FBB1FA40F7F
+:1016F000B51F8C91982B95BB253061F02F5FE22FA1
+:10170000FF27EE0FFF1FE40FF51F81818F3FF9F2D6
+:1017100081BFDDCF2093010408951F920F920FB671
+:101720000F9211242F933F934F935F936F937F9367
+:101730008F939F93AF93BF93EF93FF938091000498
+:10174000882391F02091ED023091EE028091F10218
+:101750009091F2029093EE028093ED023093F202A8
+:101760002093F1021092000485B3876785BB85B38F
+:10177000E091ED02F091EE029081892385BB1092F9
+:101780000104818181BF0E94610BFF91EF91BF91A4
+:10179000AF919F918F917F916F915F914F913F9109
+:1017A0002F910F900FBE0F901F9018951F920F92C0
+:1017B0000FB60F9211242F933F934F935F936F9324
+:1017C0007F938F939F93AF93BF93EF93FF930E9469
+:1017D000610BFF91EF91BF91AF919F918F917F919D
+:1017E0006F915F914F913F912F910F900FBE0F908E
+:1017F0001F9018950F931F93CF93DF938091EC0266
+:10180000882309F494C1E091EF02F091F0028FEF88
+:10181000808390913505E091EF02F091F0029150B4
+:1018200091839F5FE091EF02F091F00281E082836B
+:10183000992339F0E091EF02F091F00280818E7FE0
+:10184000808390913605E091EF02F091F002915083
+:1018500093839F5FE091EF02F091F00282E0848336
+:10186000992339F0E091EF02F091F00280818D7FB1
+:10187000808390913705E091EF02F091F002915052
+:1018800095839F5FE091EF02F091F00284E0868300
+:10189000992339F0E091EF02F091F00280818B7F83
+:1018A000808390913805E091EF02F091F002915021
+:1018B00097839F5FE091EF02F091F00280E18087D3
+:1018C000992339F0E091EF02F091F00280818F7E50
+:1018D000808390913905E091EF02F091F0029150F0
+:1018E00091879F5FE091EF02F091F00280E28287A2
+:1018F000992339F0E091EF02F091F00280818F7D21
+:10190000808390913A05E091EF02F091F0029150BE
+:1019100093879F5FE091EF02F091F00280E484876B
+:10192000992339F0E091EF02F091F00280818F7BF2
+:101930008083E091EF02F091F00291818381891719
+:1019400010F061E007C08183938392818481828358
+:10195000948360E0DF01159693818581891740F4B7
+:10196000838395839481ED0189818483998360E0E9
+:101970008F01095F1F4F95818781891758F48583EF
+:101980009783ED019981E8018981ED018983E8015F
+:10199000998360E09F01275F3F4F97818185891779
+:1019A00058F487839187E8019981E9018981E801E9
+:1019B0008983E901998360E0AF01455F5F4F9185BD
+:1019C0008385891758F481879387E9019981EA0112
+:1019D0008981E9018983EA01998303C0662309F0BB
+:1019E0008FC091818381891710F041E007C0818306
+:1019F0009383928184818283948340E093818C914C
+:101A0000891740F483839C939481ED0189818483B9
+:101A1000998340E09C91E8018881891758F48C9360
+:101A20009883ED019981E8018981ED018983E801BD
+:101A3000998340E0E8019881E9018881891768F479
+:101A4000E8018883E9019883E8019981E9018981A6
+:101A5000E8018983E901998303C0442309F050C058
+:101A600091818381891710F021E007C081839383DE
+:101A7000928184818283948320E093818C91891761
+:101A800040F483839C939481ED01898184839983BD
+:101A900020E09C91E8018881891758F48C93988301
+:101AA000ED019981E8018981ED018983E80199833C
+:101AB00002C0222329F591818381891710F021E04A
+:101AC00007C081839383928184818283948320E001
+:101AD00093818C91891740F483839C939481ED01C9
+:101AE00089818483998302C0222351F49181838167
+:101AF000891730F4818393839281848182839483D4
+:101B00004FB7F8942091EF023091F0028091F102EA
+:101B10009091F2029093F0028093EF023093F202E0
+:101B20002093F1024FBF81E08093000421C0809197
+:101B30003505811181E0282F8091360581112260C1
+:101B400080913705811124608091380581112061D1
+:101B5000809139058111206280913A0581112064BC
+:101B60009FB7F89485B320958767822385BB9FBF75
+:101B7000DF91CF911F910F910895982F3FB7F8945F
+:101B800080910204882319F0E0E0F0E005C081E0D4
+:101B900080930204E1E0F0E03FBF319781F4892FA8
+:101BA0009927FC01EE0FFF1FE80FF91FEB5CFA4FBE
+:101BB0006083418322830E94FA0B109202040895ED
+:101BC000382F2FB7F89480910204882319F080E011
+:101BD00090E005C081E08093020481E090E02FBF97
+:101BE000019751F4309335056093360540933705DE
+:101BF0000E94FA0B109202040895382F2FB7F89420
+:101C000080910204882319F080E090E005C081E013
+:101C10008093020481E090E02FBF019751F430934C
+:101C200038056093390540933A050E94FA0B1092EB
+:101C300002040895382F2FB7F89480910204882366
+:101C400019F080E090E005C081E08093020481E01B
+:101C500090E02FBF019781F43093350560933605EE
+:101C600040933705309338056093390540933A0522
+:101C70000E94FA0B109202040895EF920F93582FCE
+:101C80003FB7F89480910204882319F080E090E037
+:101C900005C081E08093020481E090E03FBF01979E
+:101CA00081F45093350560933605409337052093B2
+:101CB000380500933905E0923A050E94FA0B10921C
+:101CC00002040F91EF9008957727AB014370507095
+:101CD00025E530E0D9014A9F90014B9F300D5A9F76
+:101CE000300D1124AB014C715070559547955595A9
+:101CF0004795E4E2F0E0DA01AE9FA001AF9F500DFE
+:101D0000BE9F500D1124A5E076956795AA95E1F741
+:101D1000DB01AE9FB001AF9F700DBE9F700D11240F
+:101D20000E94BD0D08959927AC014370507025E5C0
+:101D300030E0BA01629FA001639F500D729F500D69
+:101D400011249C012C713070359527953595279578
+:101D5000E4E2F0E02E9FB0012F9F700D3E9F700DCA
+:101D6000112425E0969587952A95E1F78E9F802D81
+:101D700011240E94E00D08959927AC014370507022
+:101D800025E530E0BA01629FA001639F500D729F6C
+:101D9000500D11249C012C71307035952795359587
+:101DA0002795E4E2F0E02E9FB0012F9F700D3E9F3B
+:101DB000700D112475E0969587957A95E1F78E9FC1
+:101DC000802D11240E94FD0D08959927AC014370C8
+:101DD000507025E530E0BA01629FA001639F500D6D
+:101DE000729F500D11249C012C71307035952795F0
+:101DF00035952795E4E2F0E02E9FB0012F9F700DFE
+:101E00003E9F700D1124F5E096958795FA95E1F7C0
+:101E10008E9F802D11240E941A0E0895EF92FF923A
+:101E20000F931F937727E82FFF27CB0183709070C4
+:101E3000A5E5B0E08A9F70018B9FF00C9A9FF00C93
+:101E400011249B012C713070359527953595279578
+:101E500084E290E0289F8001299F100D389F100D8B
+:101E6000112425E0769567952A95E1F7689F900102
+:101E7000699F300D789F300D1124AF014370507071
+:101E8000BA016A9FA0016B9F500D7A9F500D1124DB
+:101E9000BF016C7170707595679575956795DB01DD
+:101EA000A89FB001A99F700DB89F700D1124B5E0D7
+:101EB000F695E795BA95E1F7E89F802D11240E94E9
+:101EC0003D0E1F910F91FF90EF90089586E083BF24
+:101ED00087B7836087BF089587B78C7F87BF0895D2
+:101EE000813041F487B78C7F87BF1092EC020E944B
+:101EF000FA0B089581E08093EC020E94FA0B86E0D1
+:101F000083BF87B7836087BF089585B3876785BB25
+:101F100084B3876784BB40E060E080E00E941A0ED3
+:101F200008950E94850F81E00E94700F08950E941D
+:101F3000850F80E00E94700F08950E94970F08950A
+:101F40008BB38F708BBB8AB3806F8ABB87B380667D
+:101F500087BB81EA8FBD89E08EBD1BBC1ABC19BC52
+:101F600018BC0895892B51F48BB38073803111F024
+:101F70001BBC1ABC8BB38F7C806109C08BB3807390
+:101F8000803211F01BBC1ABC8BB38F7C80628BBB80
+:101F90006ABD0895892B51F48BB3807C803811F091
+:101FA00019BC18BC8BB38F73806809C08BB3807C5D
+:101FB000803411F019BC18BC8BB38F7380648BBB59
+:101FC00068BD08950E94B20F08950E94CA0F089537
+:101FD0001ABC18BC0895FC018431910554F0863870
+:101FE00091053CF4EE0FFF1FE553FD4F8081918179
+:101FF00008958FEF9FEF08950E9422120E94EB0F29
+:10200000089560E070E084E190E00E942516089554
+:102010001092900088E089B9599A8AB188618AB98A
+:10202000E5E9F0E080818660808308951092980051
+:1020300087E680939900EBE9F0E0808182608083FD
+:10204000EAE9F0E0808188618083EDE9F0E0808159
+:102050008660808308955D9BFECF8CB980E090E020
+:102060000895982F80919B0085FFFCCF90939C0052
+:1020700080E090E008955F9BFECF8CB19927089592
+:1020800080919B0087FFFCCF80919C009927089549
+:10209000FC015F9903C08FEF9FEF08958CB180839F
+:1020A00080E090E00895FC0180919B0087FD03C0D3
+:1020B0008FEF9FEF089580919C00808380E090E0F7
+:1020C0000895803118F08FE390E00895E82FFF27FE
+:1020D000E952FC4F808199270895FC0104C05D9B63
+:1020E000FECF8CB9319680818823C9F780E090E0DB
+:1020F00008950F931F93CF93DF93CDB7DEB7269745
+:102100000FB6F894DEBF0FBECDBF9C01DE01119665
+:10211000E8EEF3E086E001900D928150E1F737FFA1
+:1021200007C05D9BFECF8DE28CB9309521953F4F66
+:1021300046E08E010F5F1F4F4150F801E40FF11D83
+:10214000C9016AE070E00E941D1A805D8083C901A8
+:102150006AE070E00E941D1A9B01672B51F0ECCFE2
+:10216000FC01E40FF11DE0815D9BFECFECB94F5FF8
+:1021700002C0CE010196463098F380E090E02696AA
+:102180000FB6F894DEBF0FBECDBFDF91CF911F9188
+:102190000F910895EF92FF920F931F93CF93DF93C8
+:1021A000CDB7DEB721970FB6F894DEBF0FBECDBF17
+:1021B0008C017E010894E11CF11C05C05D9BFECFE3
+:1021C0008CB90F5F1F4F41E050E0B801C7010E947A
+:1021D00066188981882391F721960FB6F894DEBF9F
+:1021E0000FBECDBFDF91CF911F910F91FF90EF9068
+:1021F0000895282FE82FE295EF70FF27E952FC4F52
+:10220000808199275D9BFECF8CB9E22FFF27EF706D
+:10221000F070E952FC4F808199275D9BFECF8CB90D
+:102220000895AC01FC01EF2FFF27E295EF70E95212
+:10223000FC4F8081282F33275D9BFECF2CB9E52FE3
+:10224000FF27EF70F070E952FC4F8081282F332771
+:102250005D9BFECF2CB9FA0184E0F695E7958A954F
+:10226000E1F7FF27EF70F070E952FC4F8081282FD3
+:1022700033275D9BFECF2CB9E42FFF27EF70F07062
+:10228000E952FC4F808199275D9BFECF8CB9089560
+:1022900023ED2DB921E02EB927B3276027BBBB98CA
+:1022A000C09A90930504809304047093070460938C
+:1022B000060410920304089580930304C0988FEFDE
+:1022C0008FB908951F920F920FB60F9211242F937A
+:1022D0003F934F935F936F937F938F939F93AF93AE
+:1022E000BF93EF93FF93809103048823D1F0E09193
+:1022F0000404F09105048FB1099580910304815085
+:102300008093030480910304882349F4C09AE091E8
+:102310000604F0910704309721F0099502C08FEF71
+:102320008FB9FF91EF91BF91AF919F918F917F9165
+:102330006F915F914F913F912F910F900FBE0F9032
+:102340001F9018959C0106C080E496E00197F1F774
+:102350002150304012161306BCF3089510928900E4
+:1023600010928800EAE8F0E0208128602083208134
+:102370002260208324E234EF30938700209386008C
+:10238000EDE7F0E020812061208370930D046093DD
+:102390000C049093EF038093EE03089580910A0458
+:1023A00090910B04089510920B0410920A04089562
+:1023B0001F920F920FB60F9211242F933F934F93BA
+:1023C0005F936F937F938F939F93AF93BF93EF939D
+:1023D000FF9320910804309109048091EE039091BD
+:1023E000EF0328173907A1F480910A0490910B0498
+:1023F000019690930B0480930A04E0910C04F091F1
+:102400000D04309709F00995109209041092080400
+:102410008091080490910904019690930904809397
+:102420000804FF91EF91BF91AF919F918F917F91A0
+:102430006F915F914F913F912F910F900FBE0F9031
+:102440001F901895009719F480E090E00895019787
+:10245000FC01EE0FFF1FE80FF91FE15CFA4F8081CE
+:1024600099270895009719F480E090E00895019766
+:10247000FC01EE0FFF1FE80FF91FE15CFA4F8181AD
+:102480009281089580910E0490910F04019741F07C
+:10249000339A369A81E090E090930F0480930E0473
+:1024A000089581E090E090931104809310040895C2
+:1024B00080910E0490910F040895E5E6F0E02081EC
+:1024C000382F3470237E322B8370907043E0880F56
+:1024D000991F4A95E1F7382B308308959C0136996E
+:1024E000FECF2730310524F4822F805A87B906C0E9
+:1024F00087E687B9C90108970E945D12369A369916
+:10250000FECF84B125B1992766E0959587956A95A8
+:10251000E1F73327220F331F220F331F822B932B18
+:1025200008959C013699FECF2730310524F4822F7F
+:10253000805A87B906C087E687B9C90108970E9403
+:102540005D12369A3699FECF85B199270895CF93BB
+:10255000DF93EC0180E090E0FC01EE0FFF1FE80F3D
+:10256000F91FE15CFA4F12821182108201968B30C2
+:10257000910591F717B887B1816687B916B886B10A
+:10258000876886B9809164008C618093640080E0E4
+:1025900090E00E945D1281E090E09093130480939C
+:1025A0001204CD2B11F00E944212DF91CF910895B9
+:1025B0001F920F920FB60F9211242F933F934F93B8
+:1025C0005F936F937F938F939F93AF93BF93EF939B
+:1025D000FF93A0910E04B0910F04A130B10509F052
+:1025E0007CC087B1882361F124B165B140911204A8
+:1025F00050911304415050403327F6E0359527950C
+:10260000FA95E1F7862F9927880F991F880F991F50
+:10261000282B392BFA01EE0FFF1FE40FF51FE15CA9
+:10262000FA4F328321838091120490911304019711
+:10263000FC01EE0FFF1FE80FF91FE15CFA4F60830A
+:102640008091120490911304069769F487E687B984
+:1026500080E090E00E945D1288E090E09093130487
+:10266000809312042AC080911204909113040B9756
+:1026700029F4B0931304A09312040FC080911204A4
+:102680009091130401969093130480931204809107
+:1026900012049091130407973CF4809112049091D6
+:1026A0001304806687B909C087E687B98091120450
+:1026B0009091130408970E945D12809110049091EC
+:1026C0001104892B49F010921104109210041092F9
+:1026D0000F0410920E0401C0369AFF91EF91BF9142
+:1026E000AF919F918F917F916F915F914F913F91AA
+:1026F0002F910F900FBE0F901F90189580915A0543
+:1027000099270895FC01EE0FFF1FEB5EFB4F8081C0
+:1027100091810895E5E1F4E040E050E06FEF70E072
+:102720008FEF9FEF208131812617370710F4B90111
+:10273000CA014F5F5F4F32964031510599F76639B4
+:10274000710514F08FEF9FEF089580911404882392
+:1027500019F0813071F407C060E070E08AE290E027
+:102760000E942516089560E070E08BE290E00E94E0
+:102770002516089580911404882319F0813071F48E
+:1027800007C061E070E08AE290E00E94251608959B
+:1027900061E070E08BE290E00E9425160895EF92D0
+:1027A000FF920F931F93CF93DF937C0180911404CA
+:1027B0008130E1F400E110E0C0E0D0E8BE016E211C
+:1027C0007F2188E090E00E94251661E070E089E0BA
+:1027D00090E00E94251660E070E089E090E00E94A1
+:1027E0002516D695C7950150104041F7DF91CF913E
+:1027F0001F910F91FF90EF900895809314048091A2
+:102800001404882321F0813009F044C01DC08CE2FB
+:1028100090E090933604809335048BE290E090939F
+:102820003804809337048FE290E090933A048093C9
+:1028300039048EE290E090933C0480933B04109224
+:102840003E0410923D04089560E070E08AE290E05A
+:102850000E9425168DE290E0909336048093350413
+:102860008CE290E090933804809337048FE290E0FC
+:1028700090933A04809339048EE290E090933C0464
+:1028800080933B048FEF9FEF0E94CF1310923E0482
+:1028900010923D040895AF92BF92CF92DF92EF92D3
+:1028A000FF920F931F93CF93DF938C010E945812D6
+:1028B000019719F0AA24BB2405C00E94511241E0DF
+:1028C000A42EB12C35E1C32E34E0D32EEE24FF2408
+:1028D00000FF48C0EE2D80911404882321F4F701F5
+:1028E000E051FC4FE081CE2FDD2780913B04909199
+:1028F0003C04C3FF03C061E070E002C060E070E030
+:102900000E9425168091390490913A04C2FF03C0B9
+:1029100061E070E002C060E070E00E9425168091E6
+:10292000370490913804C1FF03C061E070E002C039
+:1029300060E070E00E942516809135049091360485
+:10294000C0FF03C061E070E002C060E070E00E9480
+:10295000251680913D0490913E040E949112F6014B
+:10296000918380830894E11CF11C82E090E0C80E02
+:10297000D91E90E1E916F10419F015950795A8CF35
+:10298000AB2811F00E944212DF91CF911F910F915D
+:10299000FF90EF90DF90CF90BF90AF9008958FEFB2
+:1029A0009FEF0E944B140E948A13089508952CE112
+:1029B00025BDBF9A83BD08959C014427552764E235
+:1029C00074EF80E090E00E94521AC901019797FFCE
+:1029D00002C080E090E08F3F910519F014F08FEF76
+:1029E00090E00E94D714089585B5887F85BDC6986C
+:1029F00008950F931F938C01CB010E94DC14C80132
+:102A00000E94A21185B5887F85BDC6981F910F9140
+:102A10000895AC01477050709C0183E0359527956F
+:102A20008A95E1F72430310509F444C02530310599
+:102A300054F42230310511F1233031056CF5213089
+:102A4000310561F40EC02630310509F44FC026303F
+:102A50003105F4F12730310509F469C08FEF9FEF9C
+:102A600008958AB3042E02C0220F331F0A94E2F79E
+:102A7000922F909598239ABB89B350C087B321E0D9
+:102A800030E0042E02C0220F331F0A94E2F7209593
+:102A9000282327BB86B342C084B321E030E0042E54
+:102AA00002C0220F331F0A94E2F72095282324BB8B
+:102AB00083B334C081B321E030E0042E02C0220F82
+:102AC000331F0A94E2F72095282321BB80B326C048
+:102AD00082B121E030E0042E02C0220F331F0A949D
+:102AE000E2F72095282322B981B118C0443051055E
+:102AF00034F084B7806884BF84B7806884BF8091D5
+:102B0000610021E030E0042E02C0220F331F0A943E
+:102B1000E2F7209528232093610080B1992702C015
+:102B2000959587954A95E2F7817090700895809108
+:102B3000640021E030E0042E02C0220F331F0A940B
+:102B4000E2F7209528232093640080916300992761
+:102B500002C0959587954A95E2F781709070089527
+:102B6000AC01477050709C0193E0359527959A957C
+:102B7000E1F724303105C9F1253031055CF422300C
+:102B80003105E9F0233031052CF52130310509F00C
+:102B90005BC00CC02630310509F43DC0263031053C
+:102BA0007CF12730310509F04FC042C08BB302C021
+:102BB000220F331F4A95E2F7822B8BBB089528B36F
+:102BC00081E090E002C0880F991F4A95E2F7282B18
+:102BD00028BB089525B381E090E002C0880F991FBB
+:102BE0004A95E2F7282B25BB089522B381E090E0B7
+:102BF00002C0880F991F4A95E2F7282B22BB08953F
+:102C000023B181E090E002C0880F991F4A95E2F756
+:102C1000282B23B908952091620081E090E002C042
+:102C2000880F991F4A95E2F7282B20936200089598
+:102C30002091650081E090E002C0880F991F4A95BD
+:102C4000E2F7282B209365000895AC01477050707F
+:102C50009C0153E0359527955A95E1F7672B09F0CC
+:102C600088C02430310509F444C0253031055CF4B6
+:102C70002230310511F1233031056CF52130310559
+:102C800009F0FEC00DC02630310509F44EC02630D3
+:102C900031050CF43CC02730310509F0F1C056C0B5
+:102CA0008AB302C0220F331F4A95E2F7822B8ABBF8
+:102CB0008BB3209528232BBB089587B321E030E008
+:102CC00002C0220F331F4A95E2F7822B87BB88B3DD
+:102CD0002095282386C084B321E030E002C0220F73
+:102CE000331F4A95E2F7822B84BB85B320952823B6
+:102CF00086C081B321E030E002C0220F331F4A9525
+:102D0000E2F7822B81BB82B32095282386C082B153
+:102D100021E030E002C0220F331F4A95E2F7822BF8
+:102D200082B983B12095282386C08091610021E07B
+:102D300030E002C0220F331F4A95E2F7822B8093C6
+:102D40006100809162002095282386C080916400F4
+:102D500021E030E002C0220F331F4A95E2F7822BB8
+:102D6000809364008091650020952823209365005E
+:102D700008952430310509F444C0253031055CF450
+:102D80002230310511F1233031056CF52130310548
+:102D900009F076C00DC02630310509F44EC026304A
+:102DA00031050CF43CC02730310509F069C057C02B
+:102DB0008AB302C0220F331F4A95E2F7922F822B6B
+:102DC0008ABB8BB3982B9BBB089587B321E030E07F
+:102DD00002C0220F331F4A95E2F7822B87BB88B3CC
+:102DE000282B28BB089584B321E030E002C0220FD5
+:102DF000331F4A95E2F7822B84BB85B3282B25BB72
+:102E0000089581B321E030E002C0220F331F4A95BC
+:102E1000E2F7822B81BB82B3282B22BB089582B1BB
+:102E200021E030E002C0220F331F4A95E2F7822BE7
+:102E300082B983B1282B23B908958091610021E0E4
+:102E400030E002C0220F331F4A95E2F7822B8093B5
+:102E5000610080916200282B209362000895809188
+:102E6000640021E030E002C0220F331F4A95E2F7F0
+:102E7000822B8093640080916500282B209365004D
+:102E80000895E4E6F0E080818E7F8083E5E6F0E05F
+:102E900080818160808380916300992780959095DF
+:102EA0008170907008950E944117892B19F480E079
+:102EB00090E008950E944117892BE1F781E090E0AE
+:102EC0000895E4E6F0E080818D7F8083E5E6F0E020
+:102ED0008081826080838091630099279695879591
+:102EE000809590958170907008950E946117892B4C
+:102EF00019F480E090E008950E946117892BE1F7B2
+:102F000081E090E0089504C08FE090E00E94A2115B
+:102F10000E946117892BC1F3089504C08FE090E0EF
+:102F20000E94A2110E944117892BC1F30895A8E1C4
+:102F3000B0E0EDE9F7E10C94911A69837A838B8311
+:102F40009C832D833E834F835887BE016F5E7F4FE6
+:102F5000CE0101960E94C717BE01675F7F4FCE0169
+:102F600005960E94C7178989823018F481E090E0A5
+:102F70000AC020E030E08985823010F0C90103C02A
+:102F800021E030E0C901E2E068960C94AD1AFC0142
+:102F9000DB01208131819281492F4F7750E0991FC9
+:102FA0009927991F8381682F660F692B881F8827AF
+:102FB000881FFD018183662309F049C02115310571
+:102FC0004105510509F470C082E89FEFFD0193832C
+:102FD0008283220F331F441F551F220F331F441FAC
+:102FE000551F220F331F441F551F220F331F441F2D
+:102FF000551F220F331F441F551F220F331F441F1D
+:10300000551F220F331F441F551F83E08C93203020
+:10301000F0E03F07F0E04F07F0E45F0790F482E84C
+:103020009FEF220F331F441F551F0197203060E090
+:10303000360760E0460760E4560798F3FD01938386
+:103040008283FD01248335834683578308956F3F30
+:1030500071F1862F99278F579040FD0193838283CA
+:1030600083E08C93220F331F441F551F220F331F01
+:10307000441F551F220F331F441F551F220F331F9C
+:10308000441F551F220F331F441F551F220F331F8C
+:10309000441F551F220F331F441F551F50642483A4
+:1030A000358346835783089582E08C9308952115D4
+:1030B00031054105510519F484E08C93089544FDD0
+:1030C00002C01C92BECF81E08C93BBCFFB01DC0120
+:1030D00002C005900D9241505040D8F70895FC0170
+:1030E00005900020E9F7809590958E0F9F1F089519
+:1030F000FC010590615070400110D8F780959095C3
+:103100008E0F9F1F0895FC016150704001900110C7
+:10311000D8F7809590958E0F9F1F08950F931F935A
+:10312000CF93DF938C01EB018B81992781FF1BC02B
+:1031300082FF0DC02E813F818C819D812817390728
+:1031400064F4E881F9810193F983E88306C0E88596
+:10315000F985802F0995892B31F48E819F81019605
+:103160009F838E8302C00FEF1FEFC801DF91CF91C5
+:103170001F910F91089597FB47D09F3738F0FEE9D4
+:10318000F91B982F872F762F6B2F05C05AC0969565
+:10319000879577956795F150D0F73EF49095809597
+:1031A000709561957F4F8F4F9F4F08950ED05EF0C1
+:1031B00004C00BD026F001C008D019F020F48FEF26
+:1031C000089580E0089581E0089597FB092E052673
+:1031D00000F8689410D0E89407FC07C062177307E2
+:1031E0008407950721F008F40094079498940895B3
+:1031F000052E092607FA440F551F5F3F79F0AA27CD
+:10320000A51708F051E04795880F991F9F3F31F0AF
+:10321000BB27B91708F091E0879508959F919F917A
+:10322000112408C197FB880F991F9F3F31F0BB27DE
+:10323000B91708F091E0879508959F919F91112407
+:10324000F9C0662777278827992708959F3F59F463
+:10325000803C49F481E09927089590688923872369
+:1032600086238395B9F3882799270895DBDFCF93C9
+:10327000DF93D52FC42F552744273327222799239F
+:10328000D9F09F37C8F0F92FBDD0592F482F372FCD
+:10329000262FF63968F46FDFA6D0C030CD0721F0B5
+:1032A00069937993899399939058DF91CF9157C0FF
+:1032B0009927882777276627C030CD0721F02993E3
+:1032C000399349935993DF91CF919CC091DF01D0FD
+:1032D00099C0992339F0552329F09F575F57950FCF
+:1032E00013F49AF1B1CF91589F3FE1F3629FA12D62
+:1032F0000F92BB27639FA00DB11DEE27729FA00DFB
+:10330000B11DEE1FAF93AA27649FB00DE11D739FFF
+:10331000B00DE11DAA1F6627829FB00DE11DA61FFB
+:103320005527749FE00DA11D551F839FE00DA11D22
+:10333000561F849FA00D511D852F7A2F6E2F1F9031
+:103340000F9088231AF4939539F474C0000C111C63
+:10335000BB1F661F771F881F012808955058192E1C
+:1033600047DF01D04FC0BA1762077307840795077C
+:10337000B1F188F40EF410940B2EBA2FA02D062E66
+:10338000622F202D072E732F302D082E842F402DD5
+:10339000092E952F502DFF275523B9F0591B49F0C1
+:1033A000573E98F0469537952795A795F040539549
+:1033B000C9F776F0BA0F621F731F841F30F4879528
+:1033C00077956795B795F040939517FA0F2E089566
+:1033D000BF1BBB27BA0B620B730B840BF6CFDEF659
+:1033E00033CFE89403C097FB0EF4D8DEB62F672FD7
+:1033F000782F892F9EE9002405C09A95BB0F661F80
+:10340000771F881F11249923A1F08823B2F79F3FCB
+:1034100059F0BB0F48F421F4002011F460FF04C000
+:103420006F5F7F4F8F4F9F4F881F9795879597F9B5
+:10343000089507CF9FEF80EC089597FB092E07268C
+:103440000AD077FD04D049D006D000201AF4709538
+:1034500061957F4F0895F6F7909581959F4F089558
+:10346000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F88
+:10347000EE1FFF1FA217B307E407F50720F0A21BFA
+:10348000B30BE40BF50B661F771F881F991F1A9467
+:1034900069F760957095809590959B01AC01BD0191
+:1034A000CF01089597FB092E05260ED057FD04D0B5
+:1034B000D7DF0AD0001C38F45095409530952195FF
+:1034C0003F4F4F4F5F4F0895F6F790958095709559
+:1034D00061957F4F8F4F9F4F0895AA1BBB1B51E1F2
+:1034E00007C0AA1FBB1FA617B70710F0A61BB70B74
+:1034F000881F991F5A95A9F780959095BC01CD0119
+:1035000008952F923F924F925F926F927F928F9287
+:103510009F92AF92BF92CF92DF92EF92FF920F9362
+:103520001F93CF93DF93CDB7DEB7CA1BDB0B0FB66C
+:10353000F894DEBF0FBECDBF09942A883988488829
+:103540005F846E847D848C849B84AA84B984C884BF
+:10355000DF80EE80FD800C811B81AA81B981CE0FB6
+:10356000D11D0FB6F894DEBF0FBECDBFED0108959B
+:02357000FFCF8B
+:10357200303030303030000000000000005F0000CA
+:103582000007000700147F147F14242A7F2A1223C5
+:103592001308646236495522500005030000001CDE
+:1035A2002241000041221C0014083E081408083E73
+:1035B2000808000050300010101010100060600069
+:1035C2000020100804023E5149453E00427F40005F
+:1035D20042615149462141454B311814127F10274F
+:1035E200454545393C4A4949300171090503364987
+:1035F200494936064949291E00363600000056362A
+:10360200000008142241001414141414004122145E
+:10361200080201510906324959513E7E1111117EAB
+:103622007F494949363E414141227F4141221C7F27
+:10363200494949417F090909013E4149497A7F08BF
+:1036420008087F00417F41002040413F017F08146C
+:1036520022417F404040407F020C027F7F040810DD
+:103662007F3E4141413E7F090909063E4151215EAB
+:103672007F09192946464949493101017F01013F24
+:103682004040403F1F2040201F3F4038403F6314CE
+:1036920008146307087008076151494543007F41D8
+:1036A200410002040810200041417F00040201028F
+:1036B2000440404040400001020400205454547829
+:1036C2007F484444383844444420384444487F388E
+:1036D20054545418087E0901020C5252523E7F087B
+:1036E20004047800447D40002040443D007F1028BF
+:1036F200440000417F40007C041804787C080404E4
+:103702007838444444387C14141408081414187C7F
+:103712007C080404084854545420043F4440203C8C
+:103722004040207C1C2040201C3C4030403C44282F
+:103732001028440C5050503C4464544C4400083609
+:10374200414100007F0000414136080002010102B0
+:1037520001552A552A55010204102040010E051B6D
+:1037620005280520031703EF02CA02A9028B026F84
+:103772000255023E02280213020002EE01DE01CED1
+:1037820001BF01B201A50198018D01820177016D8E
+:103792000164015B0152014A0142013B0133012DE7
+:1037A20001260120011A0114010E0109010401FF81
+:1037B20000FA00F500F100ED00E800E400E000DDB1
+:1037C20000D900D500D200CF00CB00C800C500C28E
+:1037D20000BF00BD00BA00B700B500B200B000AD36
+:1037E20000AB00A900A600A400A200A0009E009CBD
+:1037F200009A009800970095009300910090008E27
+:10380200008C008B0089008800860085008300827E
+:103812000081007F007E007D007C007A00790078C4
+:103822000077007600750073007200710070006FFF
+:10383200006E006D006C006B006A00690069006830
+:103842000067006600650030313233343536373870
+:103852003941424344454600303030303030200058
+:103862000706050E010403020F000D080C0B090ADE
+:00000001FF
Index: trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.elf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.elf
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.elf	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.elf	(revision 1455)

Property changes on: trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.elf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: trunk/code/projects/rangefinders/IRcycle_move/.dep/testIRcycle.o.d
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/.dep/testIRcycle.o.d	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/.dep/testIRcycle.o.d	(revision 1455)
@@ -0,0 +1,93 @@
+testIRcycle.o: testIRcycle.c .././Library/dragonfly_lib.h \
+  c:/winavr-20070525/bin/../avr/include/inttypes.h \
+  c:/winavr-20070525/bin/../avr/include/stdint.h \
+  c:/winavr-20070525/bin/../avr/include/stdio.h \
+  c:\winavr-20070525\bin\../lib/gcc/avr/4.1.2/include/stdarg.h \
+  c:\winavr-20070525\bin\../lib/gcc/avr/4.1.2/include/stddef.h \
+  c:/winavr-20070525/bin/../avr/include/stdlib.h \
+  c:/winavr-20070525/bin/../avr/include/avr/io.h \
+  c:/winavr-20070525/bin/../avr/include/avr/sfr_defs.h \
+  c:/winavr-20070525/bin/../avr/include/avr/iom128.h \
+  c:/winavr-20070525/bin/../avr/include/avr/portpins.h \
+  c:/winavr-20070525/bin/../avr/include/avr/version.h \
+  c:/winavr-20070525/bin/../avr/include/avr/interrupt.h \
+  c:/winavr-20070525/bin/../avr/include/util/delay.h \
+  c:/winavr-20070525/bin/../avr/include/util/delay_basic.h \
+  c:/winavr-20070525/bin/../avr/include/util/twi.h .././Library/atomic.h \
+  .././Library/analog.h .././Library/dio.h .././Library/time.h \
+  .././Library/lcd.h .././Library/lights.h .././Library/motor.h \
+  .././Library/serial.h \
+  c:/winavr-20070525/bin/../avr/include/avr/pgmspace.h \
+  .././Library/buzzer.h .././Library/rangefinder.h .././Library/bom.h \
+  .././Library/move.h .././Library/reset.h \
+  c:/winavr-20070525/bin/../avr/include/math.h .././Library/eeprom.h \
+  c:\winavr-20070525\bin\../lib/gcc/avr/4.1.2/include/stdbool.h \
+  .././Library/encoders.h
+
+.././Library/dragonfly_lib.h:
+
+c:/winavr-20070525/bin/../avr/include/inttypes.h:
+
+c:/winavr-20070525/bin/../avr/include/stdint.h:
+
+c:/winavr-20070525/bin/../avr/include/stdio.h:
+
+c:\winavr-20070525\bin\../lib/gcc/avr/4.1.2/include/stdarg.h:
+
+c:\winavr-20070525\bin\../lib/gcc/avr/4.1.2/include/stddef.h:
+
+c:/winavr-20070525/bin/../avr/include/stdlib.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/io.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/sfr_defs.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/iom128.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/portpins.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/version.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/interrupt.h:
+
+c:/winavr-20070525/bin/../avr/include/util/delay.h:
+
+c:/winavr-20070525/bin/../avr/include/util/delay_basic.h:
+
+c:/winavr-20070525/bin/../avr/include/util/twi.h:
+
+.././Library/atomic.h:
+
+.././Library/analog.h:
+
+.././Library/dio.h:
+
+.././Library/time.h:
+
+.././Library/lcd.h:
+
+.././Library/lights.h:
+
+.././Library/motor.h:
+
+.././Library/serial.h:
+
+c:/winavr-20070525/bin/../avr/include/avr/pgmspace.h:
+
+.././Library/buzzer.h:
+
+.././Library/rangefinder.h:
+
+.././Library/bom.h:
+
+.././Library/move.h:
+
+.././Library/reset.h:
+
+c:/winavr-20070525/bin/../avr/include/math.h:
+
+.././Library/eeprom.h:
+
+c:\winavr-20070525\bin\../lib/gcc/avr/4.1.2/include/stdbool.h:
+
+.././Library/encoders.h:
Index: trunk/code/projects/rangefinders/IRcycle_move/testIRcycle.c
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/testIRcycle.c	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/testIRcycle.c	(revision 1455)
@@ -0,0 +1,96 @@
+#include <dragonfly_lib.h>
+#include <encoders.h>
+
+int main(void)
+{
+	/* initialize components, set wireless channel */
+	dragonfly_init(ALL_ON);
+	encoders_init();
+	
+  //Replace the next two lines with your own code
+  //You can add as many lines as you want
+  
+  uint8_t rangeNumber[] = {IR1,IR2,IR3,IR4,IR5}; //0 indexed
+  uint8_t cIndex;
+  
+  //initial setup (IR1)
+  cIndex=1;
+  orb1_set_color(BLUE);
+  orb2_set_color(GREEN);
+  
+  int lastDir = FORWARD;
+  int travel=0;
+  encoder_rst_dx(LEFT);
+  encoder_rst_dx(RIGHT);
+  
+  while (1) {
+  
+  if (lastDir == FORWARD) {
+	lastDir=BACKWARD;
+	motor_l_set(lastDir,200);
+	motor_r_set(lastDir,200);  
+  } else {
+	lastDir=FORWARD;
+	motor_l_set(lastDir,200);
+	motor_r_set(lastDir,200);  
+  }
+  
+	while(travel<660) {
+		
+		usb_puti(range_read_distance(rangeNumber[cIndex]));
+		usb_putc('\r');
+		
+		/**
+		 *if (button1_click()) {
+		 *	switch (cIndex){ //button1 chooses a color channel for "editing"
+		 *		case 0: //IR1
+		 *			orb1_set_color(RED);
+		 *			orb2_set_color(RED);
+		 *			cIndex=1;
+		 *			break;
+		 *		case 1: //IR2
+		 *			
+		 *			orb1_set_color(GREEN);
+		 *			orb2_set_color(GREEN);
+		 *			cIndex=2;
+		 *			break;
+		 *		case 2: //IR3
+		 *			
+		 *			orb1_set_color(BLUE);
+		 *			orb2_set_color(BLUE);
+		 *			cIndex=3;
+		 *			break;
+		 *		case 3: //IR4
+		 *			orb1_set_color(YELLOW);
+		 *			orb2_set_color(YELLOW);
+		 *			cIndex=4;
+		 *			break;	
+		 *		case 4: //IR5
+		 *			orb1_set_color(BLUE);
+		 *			orb2_set_color(GREEN);
+		 *			cIndex=0;
+		 *			break;
+		 *		default: //undefined
+		 *			return 0;
+		 *			break;
+		 *	}
+		 *	delay_ms(50); //allows button press to release
+		 *}
+		 */
+
+		delay_ms(50); //refresh frequency: 1000/(50ms) refresh rate
+		
+		travel=abs((encoder_get_dx(LEFT)+encoder_get_dx(RIGHT))/2);
+	}
+	
+	//reset travel variables
+	travel=0;
+	encoder_rst_dx(LEFT);
+	encoder_rst_dx(RIGHT);
+		
+	}	
+	
+  //this tell the robot to just chill out forever. don't put anything after this
+  while(1);
+	return 0;
+}
Index: trunk/code/projects/rangefinders/IRcycle_move/testIRcycle.lst
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/testIRcycle.lst	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/testIRcycle.lst	(revision 1455)
@@ -0,0 +1,125 @@
+   1               		.file	"testIRcycle.c"
+   2               		.arch atmega128
+   3               	__SREG__ = 0x3f
+   4               	__SP_H__ = 0x3e
+   5               	__SP_L__ = 0x3d
+   6               	__tmp_reg__ = 0
+   7               	__zero_reg__ = 1
+   8               		.global __do_copy_data
+   9               		.global __do_clear_bss
+  10               		.text
+  11               	.global	main
+  13               	main:
+  14               	/* prologue: frame size=0 */
+  15 0000 0F93      		push r16
+  16 0002 1F93      		push r17
+  17 0004 CF93      		push r28
+  18 0006 DF93      		push r29
+  19               	/* prologue end (size=4) */
+  20 0008 8FEF      		ldi r24,lo8(1023)
+  21 000a 93E0      		ldi r25,hi8(1023)
+  22 000c 0E94 0000 		call dragonfly_init
+  23 0010 0E94 0000 		call encoders_init
+  24 0014 83E0      		ldi r24,lo8(3)
+  25 0016 0E94 0000 		call orb1_set_color
+  26 001a 8CE1      		ldi r24,lo8(28)
+  27 001c 0E94 0000 		call orb2_set_color
+  28 0020 80E0      		ldi r24,lo8(0)
+  29 0022 0E94 0000 		call encoder_rst_dx
+  30 0026 81E0      		ldi r24,lo8(1)
+  31 0028 0E94 0000 		call encoder_rst_dx
+  32 002c C1E0      		ldi r28,lo8(1)
+  33 002e D0E0      		ldi r29,hi8(1)
+  34               	.L2:
+  35 0030 2197      		sbiw r28,1
+  36 0032 01F4      		brne .L3
+  37 0034 68EC      		ldi r22,lo8(200)
+  38 0036 70E0      		ldi r23,hi8(200)
+  39 0038 80E0      		ldi r24,lo8(0)
+  40 003a 90E0      		ldi r25,hi8(0)
+  41 003c 0E94 0000 		call motor_l_set
+  42 0040 68EC      		ldi r22,lo8(200)
+  43 0042 70E0      		ldi r23,hi8(200)
+  44 0044 80E0      		ldi r24,lo8(0)
+  45 0046 90E0      		ldi r25,hi8(0)
+  46 0048 0E94 0000 		call motor_r_set
+  47 004c C0E0      		ldi r28,lo8(0)
+  48 004e D0E0      		ldi r29,hi8(0)
+  49 0050 00C0      		rjmp .L9
+  50               	.L3:
+  51 0052 68EC      		ldi r22,lo8(200)
+  52 0054 70E0      		ldi r23,hi8(200)
+  53 0056 81E0      		ldi r24,lo8(1)
+  54 0058 90E0      		ldi r25,hi8(1)
+  55 005a 0E94 0000 		call motor_l_set
+  56 005e 68EC      		ldi r22,lo8(200)
+  57 0060 70E0      		ldi r23,hi8(200)
+  58 0062 81E0      		ldi r24,lo8(1)
+  59 0064 90E0      		ldi r25,hi8(1)
+  60 0066 0E94 0000 		call motor_r_set
+  61 006a C1E0      		ldi r28,lo8(1)
+  62 006c D0E0      		ldi r29,hi8(1)
+  63               	.L9:
+  64 006e 85E0      		ldi r24,lo8(5)
+  65 0070 90E0      		ldi r25,hi8(5)
+  66 0072 0E94 0000 		call range_read_distance
+  67 0076 0E94 0000 		call usb_puti
+  68 007a 8DE0      		ldi r24,lo8(13)
+  69 007c 0E94 0000 		call usb_putc
+  70 0080 82E3      		ldi r24,lo8(50)
+  71 0082 90E0      		ldi r25,hi8(50)
+  72 0084 0E94 0000 		call delay_ms
+  73 0088 80E0      		ldi r24,lo8(0)
+  74 008a 0E94 0000 		call encoder_get_dx
+  75 008e 8C01      		movw r16,r24
+  76 0090 81E0      		ldi r24,lo8(1)
+  77 0092 0E94 0000 		call encoder_get_dx
+  78 0096 800F      		add r24,r16
+  79 0098 911F      		adc r25,r17
+  80 009a 62E0      		ldi r22,lo8(2)
+  81 009c 70E0      		ldi r23,hi8(2)
+  82 009e 0E94 0000 		call __divmodhi4
+  83 00a2 77FF      		sbrs r23,7
+  84 00a4 00C0      		rjmp .L6
+  85 00a6 7095      		com r23
+  86 00a8 6195      		neg r22
+  87 00aa 7F4F      		sbci r23,lo8(-1)
+  88               	.L6:
+  89 00ac 6459      		subi r22,lo8(660)
+  90 00ae 7240      		sbci r23,hi8(660)
+  91 00b0 04F0      		brlt .L9
+  92 00b2 80E0      		ldi r24,lo8(0)
+  93 00b4 0E94 0000 		call encoder_rst_dx
+  94 00b8 81E0      		ldi r24,lo8(1)
+  95 00ba 0E94 0000 		call encoder_rst_dx
+  96 00be 00C0      		rjmp .L2
+  97               	/* epilogue: frame size=0 */
+  98               	/* epilogue: noreturn */
+  99               	/* epilogue end (size=0) */
+ 100               	/* function main size 98 (94) */
+ 102               	/* File "testIRcycle.c": code   98 = 0x0062 (  94), prologues   4, epilogues   0 */
+DEFINED SYMBOLS
+                            *ABS*:00000000 testIRcycle.c
+C:\DOCUME~1\roboclub\LOCALS~1\Temp/cc3N4VZy.s:3      *ABS*:0000003f __SREG__
+C:\DOCUME~1\roboclub\LOCALS~1\Temp/cc3N4VZy.s:4      *ABS*:0000003e __SP_H__
+C:\DOCUME~1\roboclub\LOCALS~1\Temp/cc3N4VZy.s:5      *ABS*:0000003d __SP_L__
+C:\DOCUME~1\roboclub\LOCALS~1\Temp/cc3N4VZy.s:6      *ABS*:00000000 __tmp_reg__
+C:\DOCUME~1\roboclub\LOCALS~1\Temp/cc3N4VZy.s:7      *ABS*:00000001 __zero_reg__
+C:\DOCUME~1\roboclub\LOCALS~1\Temp/cc3N4VZy.s:13     .text:00000000 main
+
+UNDEFINED SYMBOLS
+__do_copy_data
+__do_clear_bss
+dragonfly_init
+encoders_init
+orb1_set_color
+orb2_set_color
+encoder_rst_dx
+motor_l_set
+motor_r_set
+range_read_distance
+usb_puti
+usb_putc
+delay_ms
+encoder_get_dx
+__divmodhi4
Index: trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.map
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.map	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/IRcycle_move.map	(revision 1455)
@@ -0,0 +1,1196 @@
+Archive member included because of file (symbol)
+
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+                              (vfprintf)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (__fixsfsi)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (__nesf2)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) (__fp_split2)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) (__fp_zero)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (isinf)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (modf)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (__mulsf3)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) (__mulsf3x)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o) (__addsf3)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o) (__floatsisf)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o) (__fp_merge)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) (__fp_nan)
+.././Library\libdragonfly.a(dragonfly_lib.o)
+                              testIRcycle.o (dragonfly_init)
+.././Library\libdragonfly.a(eeprom.o)
+                              .././Library\libdragonfly.a(dragonfly_lib.o) (get_bom_type)
+.././Library\libdragonfly.a(encoders.o)
+                              testIRcycle.o (encoder_get_dx)
+.././Library\libdragonfly.a(lcd.o)
+                              .././Library\libdragonfly.a(dragonfly_lib.o) (lcd_init)
+.././Library\libdragonfly.a(lights.o)
+                              testIRcycle.o (orb1_set_color)
+.././Library\libdragonfly.a(motor.o)
+                              .././Library\libdragonfly.a(dragonfly_lib.o) (motors_init)
+.././Library\libdragonfly.a(rangefinder.o)
+                              testIRcycle.o (range_read_distance)
+.././Library\libdragonfly.a(serial.o)
+                              .././Library\libdragonfly.a(dragonfly_lib.o) (usb_init)
+.././Library\libdragonfly.a(spi.o)
+                              .././Library\libdragonfly.a(encoders.o) (spi_init)
+.././Library\libdragonfly.a(time.o)
+                              testIRcycle.o (delay_ms)
+.././Library\libdragonfly.a(analog.o)
+                              .././Library\libdragonfly.a(rangefinder.o) (analog8)
+.././Library\libdragonfly.a(bom.o)
+                              .././Library\libdragonfly.a(dragonfly_lib.o) (bom_init)
+.././Library\libdragonfly.a(buzzer.o)
+                              .././Library\libdragonfly.a(dragonfly_lib.o) (buzzer_init)
+.././Library\libdragonfly.a(dio.o)
+                              .././Library\libdragonfly.a(rangefinder.o) (digital_output)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+                              testIRcycle.o (__divmodhi4)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (__udivmodsi4)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+                              .././Library\libdragonfly.a(buzzer.o) (__divmodsi4)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o (exit)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+                              testIRcycle.o (__do_clear_bss)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (__unordsf2)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) (__udivmodhi4)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o) (__prologue_saves__)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o) (__epilogue_restores__)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o) (__unpack_f)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
+                              .././Library\libdragonfly.a(serial.o) (memcpy_P)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strlen_P.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (strlen_P)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (strnlen_P)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (strnlen)
+c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o) (fputc)
+
+Allocating common symbols
+Common symbol       size              file
+
+pwm_buffer          0x27              .././Library\libdragonfly.a(lights.o)
+orb_values          0x6               .././Library\libdragonfly.a(lights.o)
+data_ready          0x2               .././Library\libdragonfly.a(encoders.o)
+usb_fd              0x2               .././Library\libdragonfly.a(serial.o)
+right_data          0x2               .././Library\libdragonfly.a(encoders.o)
+left_data_buf       0x2               .././Library\libdragonfly.a(encoders.o)
+left_data_array     0x5c              .././Library\libdragonfly.a(encoders.o)
+left_data_idx       0x2               .././Library\libdragonfly.a(encoders.o)
+right_dx            0x2               .././Library\libdragonfly.a(encoders.o)
+timecount           0x4               .././Library\libdragonfly.a(encoders.o)
+encoder_buf_index   0x1               .././Library\libdragonfly.a(encoders.o)
+right_data_array    0x5c              .././Library\libdragonfly.a(encoders.o)
+left_dx             0x2               .././Library\libdragonfly.a(encoders.o)
+right_data_idx      0x2               .././Library\libdragonfly.a(encoders.o)
+right_data_buf      0x2               .././Library\libdragonfly.a(encoders.o)
+xbee_fd             0x2               .././Library\libdragonfly.a(serial.o)
+left_data           0x2               .././Library\libdragonfly.a(encoders.o)
+an_val              0x21              .././Library\libdragonfly.a(analog.o)
+
+Discarded input sections
+
+ .stabstr       0x00000000        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(dragonfly_lib.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(eeprom.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(encoders.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(lcd.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(lights.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(motor.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(rangefinder.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(serial.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(spi.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(time.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(analog.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(bom.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(buzzer.o)
+ .stabstr       0x00000000        0x0 .././Library\libdragonfly.a(dio.o)
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x00000000         0x00020000         xr
+data             0x00800060         0x0000ffa0         rw !x
+eeprom           0x00810000         0x00010000         rw !x
+*default*        0x00000000         0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+LOAD testIRcycle.o
+LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a
+LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a
+LOAD .././Library\libdragonfly.a
+LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a
+LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a
+LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text           0x00000000     0x3572
+ *(.vectors)
+ .vectors       0x00000000       0x8c c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+                0x00000000                __vectors
+                0x00000000                __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+                0x0000008c                . = ALIGN (0x2)
+                0x0000008c                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x0000008c        0x0 linker stubs
+ *(.trampolines*)
+                0x0000008c                __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x0000008c                __ctors_start = .
+ *(.ctors)
+                0x0000008c                __ctors_end = .
+                0x0000008c                __dtors_start = .
+ *(.dtors)
+                0x0000008c                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x0000008c        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+                0x0000008c                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x0000008c        0xc c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x00000098       0x1a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+                0x00000098                __do_copy_data
+ .init4         0x000000b2       0x10 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+                0x000000b2                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x000000c2        0x8 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+ *(.init9)
+ *(.text)
+ .text          0x000000ca        0x4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+                0x000000ca                __vector_22
+                0x000000ca                __vector_28
+                0x000000ca                __vector_1
+                0x000000ca                __vector_32
+                0x000000ca                __vector_34
+                0x000000ca                __vector_24
+                0x000000ca                __vector_12
+                0x000000ca                __bad_interrupt
+                0x000000ca                __vector_6
+                0x000000ca                __vector_31
+                0x000000ca                __vector_3
+                0x000000ca                __vector_23
+                0x000000ca                __vector_30
+                0x000000ca                __vector_25
+                0x000000ca                __vector_11
+                0x000000ca                __vector_13
+                0x000000ca                __vector_19
+                0x000000ca                __vector_7
+                0x000000ca                __vector_27
+                0x000000ca                __vector_5
+                0x000000ca                __vector_33
+                0x000000ca                __vector_4
+                0x000000ca                __vector_9
+                0x000000ca                __vector_2
+                0x000000ca                __vector_29
+                0x000000ca                __vector_8
+                0x000000ca                __vector_14
+                0x000000ca                __vector_10
+                0x000000ca                __vector_18
+                0x000000ca                __vector_20
+ .text          0x000000ce       0xc0 testIRcycle.o
+                0x000000ce                main
+ .text          0x0000018e      0xb70 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+                0x00000448                vfprintf
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+ .text          0x00000cfe        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+ .text          0x00000cfe       0xc2 .././Library\libdragonfly.a(dragonfly_lib.o)
+                0x00000cfe                flash_red
+                0x00000d3c                dragonfly_init
+ .text          0x00000dc0      0x10a .././Library\libdragonfly.a(eeprom.o)
+                0x00000e50                get_bom_type
+                0x00000dd4                eeprom_get_byte
+                0x00000dc0                eeprom_put_byte
+                0x00000dea                get_robotid
+ .text          0x00000eca      0x662 .././Library\libdragonfly.a(encoders.o)
+                0x00000ffa                right_data_array_put
+                0x00000f34                encoder_rst_tc
+                0x000010b2                right_data_at
+                0x00000eec                encoder_get_dx
+                0x00000f9a                left_data_array_top
+                0x00000f46                encoder_wait
+                0x00001198                encoder_get_v
+                0x0000106e                right_data_array_bottom
+                0x00000f2a                encoder_get_tc
+                0x00000f0e                encoder_rst_dx
+                0x00000fd4                left_data_array_bottom
+                0x0000150a                encoder_get_x
+                0x000011e6                encoders_init
+                0x00001094                left_data_at
+                0x0000104a                right_data_array_prev
+                0x00000f60                left_data_array_put
+                0x00000fb0                left_data_array_prev
+                0x0000125a                encoder_recv_complete
+                0x00001034                right_data_array_top
+                0x00000eca                encoder_read
+                0x000010d0                get_dx
+                0x00001278                encoder_recv
+ .text          0x0000152c      0x196 .././Library\libdragonfly.a(lcd.o)
+                0x00001572                lcd_gotoxy
+                0x0000152c                lcd_putc
+                0x000015ac                lcd_puti
+                0x00001558                lcd_puts
+                0x00001650                lcd_putbyte
+                0x00001658                lcd_init
+                0x0000158a                lcd_clear_screen
+ .text          0x000016c2      0x87e .././Library\libdragonfly.a(lights.o)
+                0x00001c34                orb_set
+                0x00001bfa                orb2_set
+                0x00001ed8                orb_disable_timer
+                0x00001f3a                orb_init
+                0x00001ee0                orb_set_mode
+                0x00001d26                orb1_set_color
+                0x00001ecc                orb_enable_timer
+                0x00001b7a                orb_n_set
+                0x00001f2e                orb_init_pwm
+                0x00001bc0                orb1_set
+                0x00001e1c                orbs_set_color
+                0x00001f22                orb_init_binary
+                0x000017ac                __vector_15
+                0x00001c7a                orbs_set
+                0x0000171a                __vector_16
+                0x00001dca                orb_set_color
+                0x00001cc8                orb_n_set_color
+                0x00001d78                orb2_set_color
+ .text          0x00001f40       0x96 .././Library\libdragonfly.a(motor.o)
+                0x00001fca                motor2_set
+                0x00001fd0                motors_off
+                0x00001f94                motor_r_set
+                0x00001f64                motor_l_set
+                0x00001f40                motors_init
+                0x00001fc4                motor1_set
+ .text          0x00001fd6       0x3a .././Library\libdragonfly.a(rangefinder.o)
+                0x00002002                range_init
+                0x00001fd6                linearize_distance
+                0x00001ff8                range_read_distance
+ .text          0x00002010      0x280 .././Library\libdragonfly.a(serial.o)
+                0x000020c2                hex_digit
+                0x00002076                usb_getc
+                0x000020a6                xbee_getc_nb
+                0x00002010                usb_init
+                0x0000202c                xbee_init
+                0x00002080                xbee_getc
+                0x000020f2                usb_puti
+                0x00002194                usb_puts_P
+                0x00002062                xbee_putc
+                0x00002222                usb_puth16
+                0x00002056                usb_putc
+                0x00002090                usb_getc_nb
+                0x000021f2                usb_puth8
+                0x000020da                usb_puts
+ .text          0x00002290       0xb4 .././Library\libdragonfly.a(spi.o)
+                0x00002290                spi_init
+                0x000022b8                spi_transfer
+                0x000022c4                __vector_17
+ .text          0x00002344      0x100 .././Library\libdragonfly.a(time.o)
+                0x0000235c                rtc_init
+                0x000023a6                rtc_reset
+                0x00002344                delay_ms
+                0x000023b0                __vector_26
+                0x0000239c                rtc_get
+ .text          0x00002444      0x2c0 .././Library\libdragonfly.a(analog.o)
+                0x000026fc                wheel
+                0x00002464                analog10
+                0x000024ba                set_adc_mux
+                0x0000254e                analog_init
+                0x000024dc                analog_get10
+                0x000024b0                analog_loop_status
+                0x00002484                analog_start_loop
+                0x00002444                analog8
+                0x00002522                analog_get8
+                0x000025b0                __vector_21
+                0x000024a2                analog_stop_loop
+ .text          0x00002704      0x2a8 .././Library\libdragonfly.a(bom.o)
+                0x00002774                bom_on
+                0x0000299e                get_max_bom
+                0x00002896                bom_refresh
+                0x00002714                bom_get_max
+                0x0000279e                bom_set_leds
+                0x0000274a                bom_off
+                0x00002704                bom_get
+                0x000027fa                bom_init
+ .text          0x000029ac       0x66 .././Library\libdragonfly.a(buzzer.o)
+                0x000029ac                buzzer_init
+                0x000029b8                buzzer_set_freq
+                0x000029e8                buzzer_off
+                0x000029f2                buzzer_chirp
+                0x000029ae                buzzer_set_val
+ .text          0x00002a12      0x51c .././Library\libdragonfly.a(dio.o)
+                0x00002eea                button2_click
+                0x00002c4a                digital_output
+                0x00002ec2                button2_read
+                0x00002f1a                button1_wait
+                0x00002e82                button1_read
+                0x00002f06                button2_wait
+                0x00002ea6                button1_click
+                0x00002a12                digital_input
+                0x00002b60                digital_pull_up
+ .text          0x00002f2e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+ .text          0x00002f2e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
+ .text          0x00002f2e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+ .text          0x00002f2e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+ .text          0x00002f2e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+ .text          0x00002f2e       0x60 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+                0x00002f2e                __unordsf2
+ .text          0x00002f8e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
+ .text          0x00002f8e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
+ .text          0x00002f8e        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
+ .text          0x00002f8e      0x13e c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+                0x00002f8e                __unpack_f
+ .text          0x000030cc       0x12 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
+                0x000030cc                memcpy_P
+ .text          0x000030de       0x12 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strlen_P.o)
+                0x000030de                strlen_P
+ .text          0x000030f0       0x16 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
+                0x000030f0                strnlen_P
+ .text          0x00003106       0x16 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen.o)
+                0x00003106                strnlen
+ .text          0x0000311c       0x5a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+                0x0000311c                fputc
+                0x00003176                . = ALIGN (0x2)
+ *(.text.*)
+ .text.fplib    0x00003176       0x36 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+                0x00003176                __fixsfsi
+                0x0000319c                __fp_lneg
+                0x00003176                __fixunssfsi
+ .text.fplib    0x000031ac       0x44 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+                0x000031ac                __lesf2
+                0x000031ac                __nesf2
+                0x000031b2                __gtsf2
+                0x000031ac                __eqsf2
+                0x000031b8                __cmpsf2
+                0x000031ac                __ltsf2
+                0x000031b2                __gesf2
+ .text.fplib    0x000031f0       0x52 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+                0x000031f0                __fp_split3
+                0x000031f6                __fp_split2
+                0x00003208                __fp_split1
+                0x00003224                __fp_split_a
+ .text.fplib    0x00003242        0xa c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+                0x00003242                __fp_zero
+                0x00003248                __fp_zerox
+ .text.fplib    0x0000324c       0x20 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+                0x0000325a                isinf
+                0x0000324c                isnan
+ .text.fplib    0x0000326c       0x60 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+                0x0000326c                modf
+ .text.fplib    0x000032cc        0x6 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+                0x000032cc                __mulsf3
+ .text.fplib    0x000032d2       0x8a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+                0x000032d2                __mulsf3x
+ .text.fplib    0x0000335c        0xa c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+                0x0000335c                __subsf3
+                0x0000335e                __addsf3
+ .text.fplib    0x00003366       0x7c c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+                0x00003366                __addsf3x
+ .text.fplib    0x000033e2       0x18 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+                0x000033e6                __floatsisf
+                0x000033e2                __floatunssisf
+ .text.fplib    0x000033fa       0x3a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+                0x00003404                __fp_merge
+ .text.fplib    0x00003434        0x6 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+                0x00003434                __fp_nanERANGE
+                0x00003434                __fp_nan
+                0x00003434                __fp_nanEDOM
+                0x00003434                __fp_nanx
+ .text.libgcc   0x0000343a       0x26 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+                0x0000343a                __divmodhi4
+                0x0000343a                _div
+ .text.libgcc   0x00003460       0x44 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
+                0x00003460                __udivmodsi4
+ .text.libgcc   0x000034a4       0x36 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+                0x000034a4                __divmodsi4
+ .text.libgcc   0x000034da        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+ .text.libgcc   0x000034da        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+ .text.libgcc   0x000034da       0x28 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
+                0x000034da                __udivmodhi4
+ .text.libgcc   0x00003502       0x38 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
+                0x00003502                __prologue_saves__
+ .text.libgcc   0x0000353a       0x36 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
+                0x0000353a                __epilogue_restores__
+                0x00003570                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x00003570        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+                0x00003570                exit
+                0x00003570                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x00003570        0x2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+ *(.fini0)
+                0x00003572                _etext = .
+
+.data           0x00800100      0x300 load address 0x00003572
+                0x00800100                PROVIDE (__data_start, .)
+ *(.data)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+ .data          0x00800100        0x0 testIRcycle.o
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+ .data          0x00800100        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+ .data          0x00800100        0x0 .././Library\libdragonfly.a(dragonfly_lib.o)
+ .data          0x00800100        0x0 .././Library\libdragonfly.a(eeprom.o)
+ .data          0x00800100        0x0 .././Library\libdragonfly.a(encoders.o)
+ .data          0x00800100      0x1e6 .././Library\libdragonfly.a(lcd.o)
+ .data          0x008002e6        0xd .././Library\libdragonfly.a(lights.o)
+                0x008002f1                pwm_free_buffer
+                0x008002ed                pwm_read_buffer
+                0x008002ef                pwm_write_buffer
+                0x008002e6                orb_mask
+                0x008002ec                enable_orb_pwm
+ .data          0x008002f3        0x0 .././Library\libdragonfly.a(motor.o)
+ .data          0x008002f3       0xe4 .././Library\libdragonfly.a(rangefinder.o)
+ .data          0x008003d7       0x17 .././Library\libdragonfly.a(serial.o)
+ .data          0x008003ee        0x0 .././Library\libdragonfly.a(spi.o)
+ .data          0x008003ee        0x2 .././Library\libdragonfly.a(time.o)
+ .data          0x008003f0        0x0 .././Library\libdragonfly.a(analog.o)
+ .data          0x008003f0       0x10 .././Library\libdragonfly.a(bom.o)
+ .data          0x00800400        0x0 .././Library\libdragonfly.a(buzzer.o)
+ .data          0x00800400        0x0 .././Library\libdragonfly.a(dio.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strlen_P.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen.o)
+ .data          0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+                0x00800400                . = ALIGN (0x2)
+                0x00800400                _edata = .
+                0x00800400                PROVIDE (__data_end, .)
+
+.bss            0x00800400      0x160
+                0x00800400                PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+ .bss           0x00800400        0x0 testIRcycle.o
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+ .bss           0x00800400        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+ .bss           0x00800400        0x0 .././Library\libdragonfly.a(dragonfly_lib.o)
+ .bss           0x00800400        0x0 .././Library\libdragonfly.a(eeprom.o)
+ .bss           0x00800400        0x0 .././Library\libdragonfly.a(encoders.o)
+ .bss           0x00800400        0x0 .././Library\libdragonfly.a(lcd.o)
+ .bss           0x00800400        0x3 .././Library\libdragonfly.a(lights.o)
+                0x00800402                orb_lock
+                0x00800400                pwm_page_flip
+                0x00800401                current_pwm_channel
+ .bss           0x00800403        0x0 .././Library\libdragonfly.a(motor.o)
+ .bss           0x00800403        0x0 .././Library\libdragonfly.a(rangefinder.o)
+ .bss           0x00800403        0x0 .././Library\libdragonfly.a(serial.o)
+ .bss           0x00800403        0x5 .././Library\libdragonfly.a(spi.o)
+ .bss           0x00800408        0x6 .././Library\libdragonfly.a(time.o)
+ .bss           0x0080040e        0x6 .././Library\libdragonfly.a(analog.o)
+                0x0080040e                adc_loop_status
+                0x00800410                adc_sig_stop_loop
+                0x00800412                adc_current_port
+ .bss           0x00800414       0x2b .././Library\libdragonfly.a(bom.o)
+ .bss           0x0080043f        0x0 .././Library\libdragonfly.a(buzzer.o)
+ .bss           0x0080043f        0x0 .././Library\libdragonfly.a(dio.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strlen_P.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen.o)
+ .bss           0x0080043f        0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON         0x0080043f       0xcf .././Library\libdragonfly.a(encoders.o)
+                0x0080043f                data_ready
+                0x00800441                right_data
+                0x00800443                left_data_buf
+                0x00800445                left_data_array
+                0x008004a1                left_data_idx
+                0x008004a3                right_dx
+                0x008004a5                timecount
+                0x008004a9                encoder_buf_index
+                0x008004aa                right_data_array
+                0x00800506                left_dx
+                0x00800508                right_data_idx
+                0x0080050a                right_data_buf
+                0x0080050c                left_data
+ COMMON         0x0080050e       0x2d .././Library\libdragonfly.a(lights.o)
+                0x0080050e                pwm_buffer
+                0x00800535                orb_values
+ COMMON         0x0080053b        0x4 .././Library\libdragonfly.a(serial.o)
+                0x0080053b                usb_fd
+                0x0080053d                xbee_fd
+ COMMON         0x0080053f       0x21 .././Library\libdragonfly.a(analog.o)
+                0x0080053f                an_val
+                0x00800560                PROVIDE (__bss_end, .)
+                0x00003572                __data_load_start = LOADADDR (.data)
+                0x00003872                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x00800560        0x0
+                0x00800560                PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                0x00800560                PROVIDE (__noinit_end, .)
+                0x00800560                _end = .
+                0x00800560                PROVIDE (__heap_start, .)
+
+.eeprom         0x00810000        0x0
+ *(.eeprom*)
+                0x00810000                __eeprom_end = .
+
+.stab           0x00000000     0x6ca8
+ *(.stab)
+ .stab          0x00000000      0x414 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+ .stab          0x00000414      0x780 .././Library\libdragonfly.a(dragonfly_lib.o)
+                                0x78c (size before relaxing)
+ .stab          0x00000b94      0x3f0 .././Library\libdragonfly.a(eeprom.o)
+                                0x5a0 (size before relaxing)
+ .stab          0x00000f84     0x1074 .././Library\libdragonfly.a(encoders.o)
+                               0x138c (size before relaxing)
+ .stab          0x00001ff8      0x6e4 .././Library\libdragonfly.a(lcd.o)
+                                0x8a0 (size before relaxing)
+ .stab          0x000026dc     0x1398 .././Library\libdragonfly.a(lights.o)
+                               0x1500 (size before relaxing)
+ .stab          0x00003a74      0x45c .././Library\libdragonfly.a(motor.o)
+                                0x618 (size before relaxing)
+ .stab          0x00003ed0      0x2ac .././Library\libdragonfly.a(rangefinder.o)
+                                0x5d0 (size before relaxing)
+ .stab          0x0000417c      0x978 .././Library\libdragonfly.a(serial.o)
+                                0xc18 (size before relaxing)
+ .stab          0x00004af4      0x384 .././Library\libdragonfly.a(spi.o)
+                                0x6e4 (size before relaxing)
+ .stab          0x00004e78      0x3d8 .././Library\libdragonfly.a(time.o)
+                                0x654 (size before relaxing)
+ .stab          0x00005250      0x7ec .././Library\libdragonfly.a(analog.o)
+                                0xa5c (size before relaxing)
+ .stab          0x00005a3c      0x774 .././Library\libdragonfly.a(bom.o)
+                                0xa98 (size before relaxing)
+ .stab          0x000061b0      0x30c .././Library\libdragonfly.a(buzzer.o)
+                                0x4c8 (size before relaxing)
+ .stab          0x000064bc      0x7ec .././Library\libdragonfly.a(dio.o)
+                                0x9cc (size before relaxing)
+
+.stabstr        0x00000000     0x26db
+ *(.stabstr)
+ .stabstr       0x00000000     0x26db c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(IRcycle_move.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol                                            File
+__addsf3                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+__addsf3x                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+__bad_interrupt                                   c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__bss_end                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+__bss_start                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+__cmpsf2                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+__data_end                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__data_load_start                                 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__data_start                                      c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__divmodhi4                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+                                                  .././Library\libdragonfly.a(serial.o)
+                                                  .././Library\libdragonfly.a(lcd.o)
+                                                  .././Library\libdragonfly.a(encoders.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+                                                  testIRcycle.o
+__divmodsi4                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+                                                  .././Library\libdragonfly.a(buzzer.o)
+__do_clear_bss                                    c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+                                                  .././Library\libdragonfly.a(dio.o)
+                                                  .././Library\libdragonfly.a(buzzer.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+                                                  .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(time.o)
+                                                  .././Library\libdragonfly.a(spi.o)
+                                                  .././Library\libdragonfly.a(serial.o)
+                                                  .././Library\libdragonfly.a(rangefinder.o)
+                                                  .././Library\libdragonfly.a(motor.o)
+                                                  .././Library\libdragonfly.a(lights.o)
+                                                  .././Library\libdragonfly.a(lcd.o)
+                                                  .././Library\libdragonfly.a(encoders.o)
+                                                  .././Library\libdragonfly.a(eeprom.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+                                                  testIRcycle.o
+__do_copy_data                                    c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+                                                  .././Library\libdragonfly.a(dio.o)
+                                                  .././Library\libdragonfly.a(buzzer.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+                                                  .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(time.o)
+                                                  .././Library\libdragonfly.a(spi.o)
+                                                  .././Library\libdragonfly.a(serial.o)
+                                                  .././Library\libdragonfly.a(rangefinder.o)
+                                                  .././Library\libdragonfly.a(motor.o)
+                                                  .././Library\libdragonfly.a(lights.o)
+                                                  .././Library\libdragonfly.a(lcd.o)
+                                                  .././Library\libdragonfly.a(encoders.o)
+                                                  .././Library\libdragonfly.a(eeprom.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+                                                  testIRcycle.o
+__epilogue_restores__                             c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+__eqsf2                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+__fixsfsi                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__fixunssfsi                                      c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+__floatsisf                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+__floatunssisf                                    c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+__fp_lneg                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+__fp_merge                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+__fp_nan                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+__fp_nanEDOM                                      c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+__fp_nanERANGE                                    c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+__fp_nanx                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+__fp_split1                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+__fp_split2                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+__fp_split3                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+__fp_split_a                                      c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+__fp_zero                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
+__fp_zerox                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+__gesf2                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+__gtsf2                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__heap_end                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__init                                            c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__lesf2                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+__ltsf2                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__mulsf3                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__mulsf3x                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
+__nesf2                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__prologue_saves__                                c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+__stack                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__subsf3                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
+__udivmodhi4                                      c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+__udivmodsi4                                      c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__unordsf2                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+__unpack_f                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unpack_sf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_unord_sf.o)
+__vector_1                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_10                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_11                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_12                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_13                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_14                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_15                                       .././Library\libdragonfly.a(lights.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_16                                       .././Library\libdragonfly.a(lights.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_17                                       .././Library\libdragonfly.a(spi.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_18                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_19                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_2                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_20                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_21                                       .././Library\libdragonfly.a(analog.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_22                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_23                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_24                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_25                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_26                                       .././Library\libdragonfly.a(time.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_27                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_28                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_29                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_3                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_30                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_31                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_32                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_33                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_34                                       c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_4                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_5                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_6                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_7                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_8                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_9                                        c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vector_default                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+__vectors                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+_div                                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
+_exit                                             c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+adc_current_port                                  .././Library\libdragonfly.a(analog.o)
+adc_loop_status                                   .././Library\libdragonfly.a(analog.o)
+adc_sig_stop_loop                                 .././Library\libdragonfly.a(analog.o)
+an_val                                            .././Library\libdragonfly.a(analog.o)
+analog10                                          .././Library\libdragonfly.a(analog.o)
+analog8                                           .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(rangefinder.o)
+analog_get10                                      .././Library\libdragonfly.a(analog.o)
+analog_get8                                       .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+analog_init                                       .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+analog_loop_status                                .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+analog_start_loop                                 .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+analog_stop_loop                                  .././Library\libdragonfly.a(analog.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+bom_get                                           .././Library\libdragonfly.a(bom.o)
+bom_get_max                                       .././Library\libdragonfly.a(bom.o)
+bom_init                                          .././Library\libdragonfly.a(bom.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+bom_off                                           .././Library\libdragonfly.a(bom.o)
+bom_on                                            .././Library\libdragonfly.a(bom.o)
+bom_refresh                                       .././Library\libdragonfly.a(bom.o)
+bom_set_leds                                      .././Library\libdragonfly.a(bom.o)
+button1_click                                     .././Library\libdragonfly.a(dio.o)
+button1_read                                      .././Library\libdragonfly.a(dio.o)
+button1_wait                                      .././Library\libdragonfly.a(dio.o)
+button2_click                                     .././Library\libdragonfly.a(dio.o)
+button2_read                                      .././Library\libdragonfly.a(dio.o)
+button2_wait                                      .././Library\libdragonfly.a(dio.o)
+buzzer_chirp                                      .././Library\libdragonfly.a(buzzer.o)
+buzzer_init                                       .././Library\libdragonfly.a(buzzer.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+buzzer_off                                        .././Library\libdragonfly.a(buzzer.o)
+buzzer_set_freq                                   .././Library\libdragonfly.a(buzzer.o)
+buzzer_set_val                                    .././Library\libdragonfly.a(buzzer.o)
+current_pwm_channel                               .././Library\libdragonfly.a(lights.o)
+data_ready                                        .././Library\libdragonfly.a(encoders.o)
+delay_ms                                          .././Library\libdragonfly.a(time.o)
+                                                  .././Library\libdragonfly.a(dio.o)
+                                                  .././Library\libdragonfly.a(buzzer.o)
+                                                  .././Library\libdragonfly.a(lcd.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+                                                  testIRcycle.o
+digital_input                                     .././Library\libdragonfly.a(dio.o)
+digital_output                                    .././Library\libdragonfly.a(dio.o)
+                                                  .././Library\libdragonfly.a(bom.o)
+                                                  .././Library\libdragonfly.a(rangefinder.o)
+digital_pull_up                                   .././Library\libdragonfly.a(dio.o)
+dragonfly_init                                    .././Library\libdragonfly.a(dragonfly_lib.o)
+                                                  testIRcycle.o
+eeprom_get_byte                                   .././Library\libdragonfly.a(eeprom.o)
+eeprom_put_byte                                   .././Library\libdragonfly.a(eeprom.o)
+enable_orb_pwm                                    .././Library\libdragonfly.a(lights.o)
+encoder_buf_index                                 .././Library\libdragonfly.a(encoders.o)
+encoder_get_dx                                    .././Library\libdragonfly.a(encoders.o)
+                                                  testIRcycle.o
+encoder_get_tc                                    .././Library\libdragonfly.a(encoders.o)
+encoder_get_v                                     .././Library\libdragonfly.a(encoders.o)
+encoder_get_x                                     .././Library\libdragonfly.a(encoders.o)
+encoder_read                                      .././Library\libdragonfly.a(encoders.o)
+encoder_recv                                      .././Library\libdragonfly.a(encoders.o)
+encoder_recv_complete                             .././Library\libdragonfly.a(encoders.o)
+encoder_rst_dx                                    .././Library\libdragonfly.a(encoders.o)
+                                                  testIRcycle.o
+encoder_rst_tc                                    .././Library\libdragonfly.a(encoders.o)
+encoder_wait                                      .././Library\libdragonfly.a(encoders.o)
+encoders_init                                     .././Library\libdragonfly.a(encoders.o)
+                                                  testIRcycle.o
+exit                                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+flash_red                                         .././Library\libdragonfly.a(dragonfly_lib.o)
+fputc                                             c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(fputc.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+get_bom_type                                      .././Library\libdragonfly.a(eeprom.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+get_dx                                            .././Library\libdragonfly.a(encoders.o)
+get_max_bom                                       .././Library\libdragonfly.a(bom.o)
+get_robotid                                       .././Library\libdragonfly.a(eeprom.o)
+hex_digit                                         .././Library\libdragonfly.a(serial.o)
+isinf                                             c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+isnan                                             c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(isinfnan.o)
+lcd_clear_screen                                  .././Library\libdragonfly.a(lcd.o)
+lcd_gotoxy                                        .././Library\libdragonfly.a(lcd.o)
+lcd_init                                          .././Library\libdragonfly.a(lcd.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+lcd_putbyte                                       .././Library\libdragonfly.a(lcd.o)
+lcd_putc                                          .././Library\libdragonfly.a(lcd.o)
+lcd_puti                                          .././Library\libdragonfly.a(lcd.o)
+lcd_puts                                          .././Library\libdragonfly.a(lcd.o)
+left_data                                         .././Library\libdragonfly.a(encoders.o)
+left_data_array                                   .././Library\libdragonfly.a(encoders.o)
+left_data_array_bottom                            .././Library\libdragonfly.a(encoders.o)
+left_data_array_prev                              .././Library\libdragonfly.a(encoders.o)
+left_data_array_put                               .././Library\libdragonfly.a(encoders.o)
+left_data_array_top                               .././Library\libdragonfly.a(encoders.o)
+left_data_at                                      .././Library\libdragonfly.a(encoders.o)
+left_data_buf                                     .././Library\libdragonfly.a(encoders.o)
+left_data_idx                                     .././Library\libdragonfly.a(encoders.o)
+left_dx                                           .././Library\libdragonfly.a(encoders.o)
+linearize_distance                                .././Library\libdragonfly.a(rangefinder.o)
+main                                              testIRcycle.o
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm128.o
+memcpy_P                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
+                                                  .././Library\libdragonfly.a(serial.o)
+modf                                              c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(modf.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+motor1_set                                        .././Library\libdragonfly.a(motor.o)
+motor2_set                                        .././Library\libdragonfly.a(motor.o)
+motor_l_set                                       .././Library\libdragonfly.a(motor.o)
+                                                  testIRcycle.o
+motor_r_set                                       .././Library\libdragonfly.a(motor.o)
+                                                  testIRcycle.o
+motors_init                                       .././Library\libdragonfly.a(motor.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+motors_off                                        .././Library\libdragonfly.a(motor.o)
+orb1_set                                          .././Library\libdragonfly.a(lights.o)
+orb1_set_color                                    .././Library\libdragonfly.a(lights.o)
+                                                  testIRcycle.o
+orb2_set                                          .././Library\libdragonfly.a(lights.o)
+orb2_set_color                                    .././Library\libdragonfly.a(lights.o)
+                                                  testIRcycle.o
+orb_disable_timer                                 .././Library\libdragonfly.a(lights.o)
+orb_enable_timer                                  .././Library\libdragonfly.a(lights.o)
+orb_init                                          .././Library\libdragonfly.a(lights.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+orb_init_binary                                   .././Library\libdragonfly.a(lights.o)
+orb_init_pwm                                      .././Library\libdragonfly.a(lights.o)
+orb_lock                                          .././Library\libdragonfly.a(lights.o)
+orb_mask                                          .././Library\libdragonfly.a(lights.o)
+orb_n_set                                         .././Library\libdragonfly.a(lights.o)
+orb_n_set_color                                   .././Library\libdragonfly.a(lights.o)
+orb_set                                           .././Library\libdragonfly.a(lights.o)
+orb_set_color                                     .././Library\libdragonfly.a(lights.o)
+orb_set_mode                                      .././Library\libdragonfly.a(lights.o)
+orb_values                                        .././Library\libdragonfly.a(lights.o)
+orbs_set                                          .././Library\libdragonfly.a(lights.o)
+orbs_set_color                                    .././Library\libdragonfly.a(lights.o)
+pwm_buffer                                        .././Library\libdragonfly.a(lights.o)
+pwm_free_buffer                                   .././Library\libdragonfly.a(lights.o)
+pwm_page_flip                                     .././Library\libdragonfly.a(lights.o)
+pwm_read_buffer                                   .././Library\libdragonfly.a(lights.o)
+pwm_write_buffer                                  .././Library\libdragonfly.a(lights.o)
+range_init                                        .././Library\libdragonfly.a(rangefinder.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+range_read_distance                               .././Library\libdragonfly.a(rangefinder.o)
+                                                  testIRcycle.o
+right_data                                        .././Library\libdragonfly.a(encoders.o)
+right_data_array                                  .././Library\libdragonfly.a(encoders.o)
+right_data_array_bottom                           .././Library\libdragonfly.a(encoders.o)
+right_data_array_prev                             .././Library\libdragonfly.a(encoders.o)
+right_data_array_put                              .././Library\libdragonfly.a(encoders.o)
+right_data_array_top                              .././Library\libdragonfly.a(encoders.o)
+right_data_at                                     .././Library\libdragonfly.a(encoders.o)
+right_data_buf                                    .././Library\libdragonfly.a(encoders.o)
+right_data_idx                                    .././Library\libdragonfly.a(encoders.o)
+right_dx                                          .././Library\libdragonfly.a(encoders.o)
+rtc_get                                           .././Library\libdragonfly.a(time.o)
+rtc_init                                          .././Library\libdragonfly.a(time.o)
+rtc_reset                                         .././Library\libdragonfly.a(time.o)
+set_adc_mux                                       .././Library\libdragonfly.a(analog.o)
+spi_init                                          .././Library\libdragonfly.a(spi.o)
+                                                  .././Library\libdragonfly.a(encoders.o)
+spi_transfer                                      .././Library\libdragonfly.a(spi.o)
+                                                  .././Library\libdragonfly.a(encoders.o)
+strlen_P                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strlen_P.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+strnlen                                           c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+strnlen_P                                         c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
+                                                  c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+timecount                                         .././Library\libdragonfly.a(encoders.o)
+usb_fd                                            .././Library\libdragonfly.a(serial.o)
+usb_getc                                          .././Library\libdragonfly.a(serial.o)
+usb_getc_nb                                       .././Library\libdragonfly.a(serial.o)
+usb_init                                          .././Library\libdragonfly.a(serial.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+usb_putc                                          .././Library\libdragonfly.a(serial.o)
+                                                  testIRcycle.o
+usb_puth16                                        .././Library\libdragonfly.a(serial.o)
+usb_puth8                                         .././Library\libdragonfly.a(serial.o)
+usb_puti                                          .././Library\libdragonfly.a(serial.o)
+                                                  testIRcycle.o
+usb_puts                                          .././Library\libdragonfly.a(serial.o)
+usb_puts_P                                        .././Library\libdragonfly.a(serial.o)
+vfprintf                                          c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libprintf_flt.a(vfprintf_flt.o)
+wheel                                             .././Library\libdragonfly.a(analog.o)
+xbee_fd                                           .././Library\libdragonfly.a(serial.o)
+xbee_getc                                         .././Library\libdragonfly.a(serial.o)
+xbee_getc_nb                                      .././Library\libdragonfly.a(serial.o)
+xbee_init                                         .././Library\libdragonfly.a(serial.o)
+                                                  .././Library\libdragonfly.a(dragonfly_lib.o)
+xbee_putc                                         .././Library\libdragonfly.a(serial.o)
Index: trunk/code/projects/rangefinders/IRcycle_move/Makefile
===================================================================
--- trunk/code/projects/rangefinders/IRcycle_move/Makefile	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle_move/Makefile	(revision 1455)
@@ -0,0 +1,520 @@
+########Update This Section########
+#
+#
+
+# Relative path to the root directory (containing lib directory)
+ifndef COLONYROOT
+COLONYROOT = ../.
+endif
+
+# Target file name (without extension).
+TARGET = IRcycle_move
+
+# Uncomment this to use the wireless library
+#USE_WIRELESS = 1
+
+# com1 = serial port. Use lpt1 to connect to parallel port.
+AVRDUDE_PORT = $(shell if uname -s |grep -i w32 >/dev/null; then echo 'COM4:'; else echo '/dev/ttyUSB0'; fi)
+
+#
+###################################
+
+# Hey Emacs, this is a -*- makefile -*-
+#----------------------------------------------------------------------------
+# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
+#
+# Released to the Public Domain
+#
+# Additional material for this makefile was written by:
+# Peter Fleury
+# Tim Henigan
+# Colin O'Flynn
+# Reiner Patommel
+# Markus Pfaff
+# Sander Pool
+# Frederik Rouleau
+#
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device, using avrdude.
+#                Please customize the avrdude settings below first!
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+#if you want your code to work on the Firefly++ and not Firefly+
+#then add the -DFFPP line to CDEFS
+CDEFS =
+#-DFFPP
+
+# MCU name
+MCU = atmega128
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+F_CPU = 8000000
+
+# Output format. (can be srec, ihex, binary)
+FORMAT = ihex
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC = $(wildcard *.c)
+
+# List Assembler source files here.
+#     Make them always end in a capital .S.  Files ending in a lowercase .s
+#     will not be considered source files but generated files (assembler
+#     output from the compiler), and will be deleted upon "make clean"!
+#     Even though the DOS/Win* filesystem matches both .s and .S the same,
+#     it will preserve the spelling of the filenames, and gcc itself does
+#     care about how the name is spelled on its command-line.
+ASRC =
+
+# Optimization level, can be [0, 1, 2, 3, s].
+#     0 = turn off optimization. s = optimize for size.
+#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
+OPT = s
+
+# Debugging format.
+#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
+#     AVR Studio 4.10 requires dwarf-2.
+#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
+DEBUG =
+
+# Compiler flag to set the C Standard level.
+#     c89   = "ANSI" C
+#     gnu89 = c89 plus GCC extensions
+#     c99   = ISO C99 standard (not yet fully implemented)
+#     gnu99 = c99 plus GCC extensions
+CSTANDARD = -std=gnu99
+
+# Place -D or -U options here
+CDEFS += -DF_CPU=$(F_CPU)UL
+CDEFS += -DFFP
+# for wireless library
+ifdef USE_WIRELESS
+	CDEFS += -DROBOT
+endif
+
+# Place -I, -L options here
+CINCS = -I$(COLONYROOT)/Library
+CINCS += -L$(COLONYROOT)/Library
+ifdef USE_WIRELESS
+	CINCS += -I$(COLONYROOT)/code/lib/include/libwireless
+endif
+
+#---------------- Compiler Options ----------------
+#  -g*:          generate debugging information
+#  -O*:          optimization level
+#  -f...:        tuning, see GCC manual and avr-libc documentation
+#  -Wall...:     warning level
+#  -Wa,...:      tell GCC to pass this to the assembler.
+#    -adhlns...: create assembler listing
+CFLAGS =
+# CFLAGS = -g$(DEBUG)
+CFLAGS += $(CDEFS) $(CINCS)
+CFLAGS += -O$(OPT)
+CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
+CFLAGS += -Wall -Wstrict-prototypes
+CFLAGS += -Wa,-adhlns=$(<:.c=.lst)
+CFLAGS += $(CSTANDARD)
+
+#---------------- Assembler Options ----------------
+#  -Wa,...:   tell GCC to pass this to the assembler.
+#  -ahlms:    create listing
+#  -gstabs:   have the assembler create line number information; note that
+#             for use in COFF files, additional information about filenames
+#             and function names needs to be present in the assembler source
+#             files -- see avr-libc docs [FIXME: not yet described there]
+ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
+
+
+#---------------- Library Options ----------------
+# Minimalistic printf version
+PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
+
+# Floating point printf version (requires MATH_LIB = -lm below)
+PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
+
+# If this is left blank, then it will use the Standard printf version.
+#PRINTF_LIB =
+#PRINTF_LIB = $(PRINTF_LIB_MIN)
+PRINTF_LIB = $(PRINTF_LIB_FLOAT)
+
+
+# Minimalistic scanf version
+SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
+
+# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
+SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
+
+# If this is left blank, then it will use the Standard scanf version.
+SCANF_LIB =
+#SCANF_LIB = $(SCANF_LIB_MIN)
+#SCANF_LIB = $(SCANF_LIB_FLOAT)
+
+MATH_LIB = -lm
+
+#---------------- External Memory Options ----------------
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# used for variables (.data/.bss) and heap (malloc()).
+#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# only used for heap (malloc()).
+#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff
+
+EXTMEMOPTS =
+
+#---------------- Linker Options ----------------
+#  -Wl,...:     tell GCC to pass this to linker.
+#    -Map:      create map file
+#    --cref:    add cross reference to  map file
+LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
+LDFLAGS += $(EXTMEMOPTS)
+LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
+ifdef USE_WIRELESS
+	LDFLAGS += -lwireless
+endif
+LDFLAGS += -ldragonfly
+
+
+
+#---------------- Programming Options (avrdude) ----------------
+
+# Programming hardware: alf avr910 avrisp bascom bsd
+# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
+#
+# Type: avrdude -c ?
+# to get a full listing.
+#
+AVRDUDE_PROGRAMMER = avrisp
+
+# programmer connected to serial device
+
+AVRDUDE_WRITE_FLASH = -b 57600 -U flash:w:$(TARGET).hex
+#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE_COUNTER = -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_NO_VERIFY = -V
+
+# Increase verbosity level.  Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
+# to submit bug reports.
+#AVRDUDE_VERBOSE = -v -v
+
+AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
+AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
+AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
+
+#don't check for device signature
+AVRDUDE_FLAGS += -F
+
+
+
+#---------------- Debugging Options ----------------
+
+# For simulavr only - target MCU frequency.
+DEBUG_MFREQ = $(F_CPU)
+
+# Set the DEBUG_UI to either gdb or insight.
+# DEBUG_UI = gdb
+DEBUG_UI = insight
+
+# Set the debugging back-end to either avarice, simulavr.
+DEBUG_BACKEND = avarice
+#DEBUG_BACKEND = simulavr
+
+# GDB Init Filename.
+GDBINIT_FILE = __avr_gdbinit
+
+# When using avarice settings for the JTAG
+JTAG_DEV = /dev/com1
+
+# Debugging port used to communicate between GDB / avarice / simulavr.
+DEBUG_PORT = 4242
+
+# Debugging host used to communicate between GDB / avarice / simulavr, normally
+#     just set to localhost unless doing some sort of crazy debugging when
+#     avarice is running on a different computer.
+DEBUG_HOST = localhost
+
+
+
+#============================================================================
+
+
+# Define programs and commands.
+SHELL = sh
+CC = avr-gcc
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+SIZE = avr-size
+NM = avr-nm
+AVRDUDE = avrdude
+REMOVE = rm -f
+REMOVEDIR = rm -rf
+COPY = cp
+WINSHELL = cmd
+
+
+# Define Messages
+# English
+MSG_ERRORS_NONE = Errors: none
+MSG_BEGIN = -------- begin --------
+MSG_END = --------  end  --------
+MSG_SIZE_BEFORE = Size before:
+MSG_SIZE_AFTER = Size after:
+MSG_COFF = Converting to AVR COFF:
+MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
+MSG_FLASH = Creating load file for Flash:
+MSG_EEPROM = Creating load file for EEPROM:
+MSG_EXTENDED_LISTING = Creating Extended Listing:
+MSG_SYMBOL_TABLE = Creating Symbol Table:
+MSG_LINKING = Linking:
+MSG_COMPILING = Compiling:
+MSG_ASSEMBLING = Assembling:
+MSG_CLEANING = Cleaning project:
+
+
+
+
+# Define all object files.
+OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
+
+# Define all listing files.
+LST = $(SRC:.c=.lst) $(ASRC:.S=.lst)
+
+
+# Compiler flags to generate dependency files.
+GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
+
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
+ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
+
+
+
+
+
+# Default target.
+all: begin gccversion sizebefore build sizeafter end
+
+build: elf hex eep lss sym
+
+elf: $(TARGET).elf
+hex: $(TARGET).hex
+eep: $(TARGET).eep
+lss: $(TARGET).lss
+sym: $(TARGET).sym
+
+
+
+# Eye candy.
+# AVR Studio 3.x does not check make's exit code but relies on
+# the following magic strings to be generated by the compile job.
+begin:
+	@echo
+	@echo $(MSG_BEGIN)
+
+end:
+	@echo $(MSG_END)
+	@echo
+
+
+# Display size of file.
+HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
+ELFSIZE = $(SIZE) -A $(TARGET).elf
+AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)
+
+sizebefore:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
+	$(AVRMEM) 2>/dev/null; echo; fi
+
+sizeafter:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
+	$(AVRMEM) 2>/dev/null; echo; fi
+
+
+
+# Display compiler version information.
+gccversion :
+	@$(CC) --version
+
+
+
+# Program the device.
+program: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+
+# Generate avr-gdb config/init file which does the following:
+#     define the reset signal, load the target file, connect to target, and set
+#     a breakpoint at main().
+gdb-config:
+	@$(REMOVE) $(GDBINIT_FILE)
+	@echo define reset >> $(GDBINIT_FILE)
+	@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
+	@echo end >> $(GDBINIT_FILE)
+	@echo file $(TARGET).elf >> $(GDBINIT_FILE)
+	@echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
+ifeq ($(DEBUG_BACKEND),simulavr)
+	@echo load  >> $(GDBINIT_FILE)
+endif
+	@echo break main >> $(GDBINIT_FILE)
+
+debug: gdb-config $(TARGET).elf
+ifeq ($(DEBUG_BACKEND), avarice)
+	@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
+	@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
+	$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
+	@$(WINSHELL) /c pause
+
+else
+	@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
+	$(DEBUG_MFREQ) --port $(DEBUG_PORT)
+endif
+	@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
+
+
+
+
+# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
+COFFCONVERT=$(OBJCOPY) --debugging \
+--change-section-address .data-0x800000 \
+--change-section-address .bss-0x800000 \
+--change-section-address .noinit-0x800000 \
+--change-section-address .eeprom-0x810000
+
+
+coff: $(TARGET).elf
+	@echo
+	@echo $(MSG_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
+
+
+extcoff: $(TARGET).elf
+	@echo
+	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
+
+
+
+# Create final output files (.hex, .eep) from ELF output file.
+%.hex: %.elf
+	@echo
+	@echo $(MSG_FLASH) $@
+	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
+
+%.eep: %.elf
+	@echo
+	@echo $(MSG_EEPROM) $@
+	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+	--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
+
+# Create extended listing file from ELF output file.
+%.lss: %.elf
+	@echo
+	@echo $(MSG_EXTENDED_LISTING) $@
+	$(OBJDUMP) -h -S $< > $@
+
+# Create a symbol table from ELF output file.
+%.sym: %.elf
+	@echo
+	@echo $(MSG_SYMBOL_TABLE) $@
+	$(NM) -n $< > $@
+
+
+
+# Link: create ELF output file from object files.
+.SECONDARY : $(TARGET).elf
+.PRECIOUS : $(OBJ)
+%.elf: $(OBJ)
+	@echo
+	@echo $(MSG_LINKING) $@
+	$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
+
+
+# Compile: create object files from C source files.
+%.o : %.c
+	@echo
+	@echo $(MSG_COMPILING) $<
+	$(CC) -c $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C source files.
+%.s : %.c
+	$(CC) -S $(ALL_CFLAGS) $< -o $@
+
+
+# Assemble: create object files from assembler source files.
+%.o : %.S
+	@echo
+	@echo $(MSG_ASSEMBLING) $<
+	$(CC) -c $(ALL_ASFLAGS) $< -o $@
+
+# Create preprocessed source for use in sending a bug report.
+%.i : %.c
+	$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
+
+
+# Target: clean project.
+clean: begin clean_list end
+
+clean_list :
+	@echo
+	@echo $(MSG_CLEANING)
+	$(REMOVE) $(TARGET).hex
+	$(REMOVE) $(TARGET).eep
+	$(REMOVE) $(TARGET).cof
+	$(REMOVE) $(TARGET).elf
+	$(REMOVE) $(TARGET).map
+	$(REMOVE) $(TARGET).sym
+	$(REMOVE) $(TARGET).lss
+	$(REMOVE) $(OBJ)
+	$(REMOVE) $(LST)
+	$(REMOVE) $(SRC:.c=.s)
+	$(REMOVE) $(SRC:.c=.d)
+	$(REMOVEDIR) .dep
+
+
+
+# Include the dependency files.
+-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
+
+
+# Listing of phony targets.
+.PHONY : all begin finish end sizebefore sizeafter gccversion \
+build elf hex eep lss sym coff extcoff \
+clean clean_list program debug gdb-config
+
Index: trunk/code/projects/rangefinders/rangefinder.c
===================================================================
--- trunk/code/projects/rangefinders/rangefinder.c	(nonexistent)
+++ trunk/code/projects/rangefinders/rangefinder.c	(revision 1455)
@@ -0,0 +1,155 @@
+/**
+ * Copyright (c) 2007 Colony Project
+ * 
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ * 
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ **/
+
+
+/**
+ * @file rangefinder.c
+ * @brief Rangefinders
+ *
+ * Implementation of functions for rangefinder use.
+ *
+ * @author Colony Project, CMU Robotics Club
+ **/
+
+/*
+  Authors: James Kong and Greg Tress
+
+  Last Modified: 10/07/09 by Dan Shope
+  -Revised LUT to match GP2D120X Sensors (4-30cm)
+  -range_read_distance() now returns -1 for below lower bound, -2 for beyond upper bound
+
+  Modified: 4/30/06 by James
+  -Started log_distance conversion function !!!NOT COMPLETE!!!
+  -Cleaning up comments
+
+  -----------------
+  rangefinder.c
+  Using Sharp GP2D120X IR Rangefinder
+
+  Vin is the input to the rangefinder, designated RANGE_CTRL.
+  Vout is the output from the rangefinder, designated RANGE_IN# where # is the rangefinder you are reading from
+
+  Expected Initial Conditions:
+  Vin is high and Vout should read high.
+
+  Usage:
+  1.) Set Vin low. Vout should read low.
+  2.) Wait for high on Vout.
+  3.) Begin clocking Vin and reading 8 bits from Vout (MSB first).
+  4.) Set Vin high for 2ms or more to turn off rangefinder
+
+*/
+
+#include "dragonfly_lib.h"
+#include "rangefinder.h"
+
+/*
+  read_distance returns the 8-bit reading from the rangefinder
+  parameters:
+  range_id - dio pin set as the rangefinder Vout [i.e. RANGE_IN0]
+
+  NOTE:
+  The Sharp GD2D02 returns values on a decreasing logrithmic scale.
+  So higher values correspond to closer distances.  Use linearize_distance to convert to normal centimeter scale.
+  Also, when reading distances closer than 8cm, the Sharp GD2D02 will return lower values than the values at 8cm.
+  At this point, we are only reading from one rangefinder [RANGE_IN0].
+*/
+
+// constants
+/* Averaged over 5 robots, should give real (mm) values to +/-10 millimeters
+
+   Note the minimum value is .4V (20), and the maximum is 2.6V (133).
+   Gives distance in mm.
+
+   excel formula(valid for inputs 20-133):  ROUND(2353.6*(E2^(-1.1146))*10,0)
+
+   This is only valid for the GP2D120X, with objects directly ahead and more than
+   10cm from the detector.  See the datasheet for more information.
+*/
+
+static int IR_dist_conversion[72] = {
+	327,315,303,291,281,271,262,253,245,238,231,224,218,212,206,200,
+	195,190,185,181,177,173,168,165,161,158,155,151,148,145,143,140,
+	137,134,132,130,127,125,123,121,119,117,115,114,111,110,108,106,
+	105,104,102,100,99,98,97,95,94,93,91,90,89,88,87,86,84,83,83,82,
+	81,80,79,78
+};
+
+/**
+ * @defgroup rangefinder Rangefinder
+ * @brief Functions for using the IR rangefinders
+ * 
+ * Functions for using the IR rangefinders.
+ *
+ * @{
+ **/
+
+/**
+ * Initializes the rangefinders. This must be called before
+ * range_read_distance.
+ *
+ * @see range_read_distance
+ **/
+void range_init(void)
+{
+  digital_output(_PIN_B4,0);
+}
+
+/**
+ * Reads the distance measured by one of the rangefinders.
+ * This distance is in arbitrary units.
+ *
+ * @param range_id the rangefinder to use. This should be one
+ * of the constants IR1 - IR5.
+ *
+ * @return the distance measured by the rangefinder
+ *
+ * @see range_init
+ **/
+int range_read_distance(int range_id) {
+  return linearize_distance(analog8(range_id));
+}
+
+/**
+ * Transforms distance readings from logarithmic to linear scale.
+ * This probably isn't the function you are looking for.
+ *
+ * @param value the 8-bit analog value from rangefinder
+ *
+ * @return linearized distance reading from rangefinder (integer in [78,327])
+ * @return (-1) if below MIN_IR_ADC8
+ * @return (-2) if beyond MAX_IR_ADC8
+ **/
+int linearize_distance(int value) {
+  if(value < MIN_IR_ADC8) {
+    return -1;
+  } else if(value > MAX_IR_ADC8) {
+    return -2;
+  } else {
+    return IR_dist_conversion[value - MIN_IR_ADC8];
+  }
+}
+
+/** @} **/ //end defgroup
Index: trunk/code/projects/rangefinders/IRcycle/testIRcycle.c
===================================================================
--- trunk/code/projects/rangefinders/IRcycle/testIRcycle.c	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle/testIRcycle.c	(revision 1455)
@@ -0,0 +1,68 @@
+#include <dragonfly_lib.h>
+
+int main(void)
+{
+	/* initialize components, set wireless channel */
+	dragonfly_init(ALL_ON);
+	
+  //Replace the next two lines with your own code
+  //You can add as many lines as you want
+  
+  uint8_t rangeNumber[] = {IR1,IR2,IR3,IR4,IR5}; //0 indexed
+  uint8_t cIndex;
+  
+  //initial setup (IR1)
+  cIndex=0;
+  orb1_set_color(BLUE);
+  orb2_set_color(GREEN);
+  
+	while(1) {
+		
+		usb_puti(range_read_distance(rangeNumber[cIndex]));
+		usb_putc('\r');
+		
+		if (button1_click()) {
+			switch (cIndex){ //button1 chooses a color channel for "editing"
+				case 0: //IR1
+					orb1_set_color(RED);
+					orb2_set_color(RED);
+					cIndex=1;
+					break;
+				case 1: //IR2
+					
+					orb1_set_color(GREEN);
+					orb2_set_color(GREEN);
+					cIndex=2;
+					break;
+				case 2: //IR3
+					
+					orb1_set_color(BLUE);
+					orb2_set_color(BLUE);
+					cIndex=3;
+					break;
+				case 3: //IR4
+					orb1_set_color(YELLOW);
+					orb2_set_color(YELLOW);
+					cIndex=4;
+					break;	
+				case 4: //IR5
+					orb1_set_color(BLUE);
+					orb2_set_color(GREEN);
+					cIndex=0;
+					break;
+				default: //undefined
+					return 0;
+					break;
+			}
+			delay_ms(50); //allows button press to release
+		}
+		delay_ms(50); //refresh frequency: 1000/(50ms) refresh rate
+
+	}
+		
+		
+	
+  //this tell the robot to just chill out forever. don't put anything after this
+  while(1);
+	return 0;
+}
Index: trunk/code/projects/rangefinders/IRcycle/Makefile
===================================================================
--- trunk/code/projects/rangefinders/IRcycle/Makefile	(nonexistent)
+++ trunk/code/projects/rangefinders/IRcycle/Makefile	(revision 1455)
@@ -0,0 +1,520 @@
+########Update This Section########
+#
+#
+
+# Relative path to the root directory (containing lib directory)
+ifndef COLONYROOT
+COLONYROOT = ../.
+endif
+
+# Target file name (without extension).
+TARGET = testIRcycle
+
+# Uncomment this to use the wireless library
+#USE_WIRELESS = 1
+
+# com1 = serial port. Use lpt1 to connect to parallel port.
+AVRDUDE_PORT = $(shell if uname -s |grep -i w32 >/dev/null; then echo 'COM4:'; else echo '/dev/ttyUSB0'; fi)
+
+#
+###################################
+
+# Hey Emacs, this is a -*- makefile -*-
+#----------------------------------------------------------------------------
+# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
+#
+# Released to the Public Domain
+#
+# Additional material for this makefile was written by:
+# Peter Fleury
+# Tim Henigan
+# Colin O'Flynn
+# Reiner Patommel
+# Markus Pfaff
+# Sander Pool
+# Frederik Rouleau
+#
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device, using avrdude.
+#                Please customize the avrdude settings below first!
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+#if you want your code to work on the Firefly++ and not Firefly+
+#then add the -DFFPP line to CDEFS
+CDEFS =
+#-DFFPP
+
+# MCU name
+MCU = atmega128
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+F_CPU = 8000000
+
+# Output format. (can be srec, ihex, binary)
+FORMAT = ihex
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC = $(wildcard *.c)
+
+# List Assembler source files here.
+#     Make them always end in a capital .S.  Files ending in a lowercase .s
+#     will not be considered source files but generated files (assembler
+#     output from the compiler), and will be deleted upon "make clean"!
+#     Even though the DOS/Win* filesystem matches both .s and .S the same,
+#     it will preserve the spelling of the filenames, and gcc itself does
+#     care about how the name is spelled on its command-line.
+ASRC =
+
+# Optimization level, can be [0, 1, 2, 3, s].
+#     0 = turn off optimization. s = optimize for size.
+#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
+OPT = s
+
+# Debugging format.
+#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
+#     AVR Studio 4.10 requires dwarf-2.
+#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
+DEBUG =
+
+# Compiler flag to set the C Standard level.
+#     c89   = "ANSI" C
+#     gnu89 = c89 plus GCC extensions
+#     c99   = ISO C99 standard (not yet fully implemented)
+#     gnu99 = c99 plus GCC extensions
+CSTANDARD = -std=gnu99
+
+# Place -D or -U options here
+CDEFS += -DF_CPU=$(F_CPU)UL
+CDEFS += -DFFP
+# for wireless library
+ifdef USE_WIRELESS
+	CDEFS += -DROBOT
+endif
+
+# Place -I, -L options here
+CINCS = -I$(COLONYROOT)/Library
+CINCS += -L$(COLONYROOT)/Library
+ifdef USE_WIRELESS
+	CINCS += -I$(COLONYROOT)/code/lib/include/libwireless
+endif
+
+#---------------- Compiler Options ----------------
+#  -g*:          generate debugging information
+#  -O*:          optimization level
+#  -f...:        tuning, see GCC manual and avr-libc documentation
+#  -Wall...:     warning level
+#  -Wa,...:      tell GCC to pass this to the assembler.
+#    -adhlns...: create assembler listing
+CFLAGS =
+# CFLAGS = -g$(DEBUG)
+CFLAGS += $(CDEFS) $(CINCS)
+CFLAGS += -O$(OPT)
+CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
+CFLAGS += -Wall -Wstrict-prototypes
+CFLAGS += -Wa,-adhlns=$(<:.c=.lst)
+CFLAGS += $(CSTANDARD)
+
+#---------------- Assembler Options ----------------
+#  -Wa,...:   tell GCC to pass this to the assembler.
+#  -ahlms:    create listing
+#  -gstabs:   have the assembler create line number information; note that
+#             for use in COFF files, additional information about filenames
+#             and function names needs to be present in the assembler source
+#             files -- see avr-libc docs [FIXME: not yet described there]
+ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
+
+
+#---------------- Library Options ----------------
+# Minimalistic printf version
+PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
+
+# Floating point printf version (requires MATH_LIB = -lm below)
+PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
+
+# If this is left blank, then it will use the Standard printf version.
+#PRINTF_LIB =
+#PRINTF_LIB = $(PRINTF_LIB_MIN)
+PRINTF_LIB = $(PRINTF_LIB_FLOAT)
+
+
+# Minimalistic scanf version
+SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
+
+# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
+SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
+
+# If this is left blank, then it will use the Standard scanf version.
+SCANF_LIB =
+#SCANF_LIB = $(SCANF_LIB_MIN)
+#SCANF_LIB = $(SCANF_LIB_FLOAT)
+
+MATH_LIB = -lm
+
+#---------------- External Memory Options ----------------
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# used for variables (.data/.bss) and heap (malloc()).
+#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# only used for heap (malloc()).
+#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff
+
+EXTMEMOPTS =
+
+#---------------- Linker Options ----------------
+#  -Wl,...:     tell GCC to pass this to linker.
+#    -Map:      create map file
+#    --cref:    add cross reference to  map file
+LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
+LDFLAGS += $(EXTMEMOPTS)
+LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
+ifdef USE_WIRELESS
+	LDFLAGS += -lwireless
+endif
+LDFLAGS += -ldragonfly
+
+
+
+#---------------- Programming Options (avrdude) ----------------
+
+# Programming hardware: alf avr910 avrisp bascom bsd
+# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
+#
+# Type: avrdude -c ?
+# to get a full listing.
+#
+AVRDUDE_PROGRAMMER = avrisp
+
+# programmer connected to serial device
+
+AVRDUDE_WRITE_FLASH = -b 57600 -U flash:w:$(TARGET).hex
+#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE_COUNTER = -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_NO_VERIFY = -V
+
+# Increase verbosity level.  Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
+# to submit bug reports.
+#AVRDUDE_VERBOSE = -v -v
+
+AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
+AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
+AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
+
+#don't check for device signature
+AVRDUDE_FLAGS += -F
+
+
+
+#---------------- Debugging Options ----------------
+
+# For simulavr only - target MCU frequency.
+DEBUG_MFREQ = $(F_CPU)
+
+# Set the DEBUG_UI to either gdb or insight.
+# DEBUG_UI = gdb
+DEBUG_UI = insight
+
+# Set the debugging back-end to either avarice, simulavr.
+DEBUG_BACKEND = avarice
+#DEBUG_BACKEND = simulavr
+
+# GDB Init Filename.
+GDBINIT_FILE = __avr_gdbinit
+
+# When using avarice settings for the JTAG
+JTAG_DEV = /dev/com1
+
+# Debugging port used to communicate between GDB / avarice / simulavr.
+DEBUG_PORT = 4242
+
+# Debugging host used to communicate between GDB / avarice / simulavr, normally
+#     just set to localhost unless doing some sort of crazy debugging when
+#     avarice is running on a different computer.
+DEBUG_HOST = localhost
+
+
+
+#============================================================================
+
+
+# Define programs and commands.
+SHELL = sh
+CC = avr-gcc
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+SIZE = avr-size
+NM = avr-nm
+AVRDUDE = avrdude
+REMOVE = rm -f
+REMOVEDIR = rm -rf
+COPY = cp
+WINSHELL = cmd
+
+
+# Define Messages
+# English
+MSG_ERRORS_NONE = Errors: none
+MSG_BEGIN = -------- begin --------
+MSG_END = --------  end  --------
+MSG_SIZE_BEFORE = Size before:
+MSG_SIZE_AFTER = Size after:
+MSG_COFF = Converting to AVR COFF:
+MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
+MSG_FLASH = Creating load file for Flash:
+MSG_EEPROM = Creating load file for EEPROM:
+MSG_EXTENDED_LISTING = Creating Extended Listing:
+MSG_SYMBOL_TABLE = Creating Symbol Table:
+MSG_LINKING = Linking:
+MSG_COMPILING = Compiling:
+MSG_ASSEMBLING = Assembling:
+MSG_CLEANING = Cleaning project:
+
+
+
+
+# Define all object files.
+OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
+
+# Define all listing files.
+LST = $(SRC:.c=.lst) $(ASRC:.S=.lst)
+
+
+# Compiler flags to generate dependency files.
+GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
+
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
+ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
+
+
+
+
+
+# Default target.
+all: begin gccversion sizebefore build sizeafter end
+
+build: elf hex eep lss sym
+
+elf: $(TARGET).elf
+hex: $(TARGET).hex
+eep: $(TARGET).eep
+lss: $(TARGET).lss
+sym: $(TARGET).sym
+
+
+
+# Eye candy.
+# AVR Studio 3.x does not check make's exit code but relies on
+# the following magic strings to be generated by the compile job.
+begin:
+	@echo
+	@echo $(MSG_BEGIN)
+
+end:
+	@echo $(MSG_END)
+	@echo
+
+
+# Display size of file.
+HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
+ELFSIZE = $(SIZE) -A $(TARGET).elf
+AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)
+
+sizebefore:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
+	$(AVRMEM) 2>/dev/null; echo; fi
+
+sizeafter:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
+	$(AVRMEM) 2>/dev/null; echo; fi
+
+
+
+# Display compiler version information.
+gccversion :
+	@$(CC) --version
+
+
+
+# Program the device.
+program: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+
+# Generate avr-gdb config/init file which does the following:
+#     define the reset signal, load the target file, connect to target, and set
+#     a breakpoint at main().
+gdb-config:
+	@$(REMOVE) $(GDBINIT_FILE)
+	@echo define reset >> $(GDBINIT_FILE)
+	@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
+	@echo end >> $(GDBINIT_FILE)
+	@echo file $(TARGET).elf >> $(GDBINIT_FILE)
+	@echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
+ifeq ($(DEBUG_BACKEND),simulavr)
+	@echo load  >> $(GDBINIT_FILE)
+endif
+	@echo break main >> $(GDBINIT_FILE)
+
+debug: gdb-config $(TARGET).elf
+ifeq ($(DEBUG_BACKEND), avarice)
+	@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
+	@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
+	$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
+	@$(WINSHELL) /c pause
+
+else
+	@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
+	$(DEBUG_MFREQ) --port $(DEBUG_PORT)
+endif
+	@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
+
+
+
+
+# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
+COFFCONVERT=$(OBJCOPY) --debugging \
+--change-section-address .data-0x800000 \
+--change-section-address .bss-0x800000 \
+--change-section-address .noinit-0x800000 \
+--change-section-address .eeprom-0x810000
+
+
+coff: $(TARGET).elf
+	@echo
+	@echo $(MSG_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
+
+
+extcoff: $(TARGET).elf
+	@echo
+	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
+
+
+
+# Create final output files (.hex, .eep) from ELF output file.
+%.hex: %.elf
+	@echo
+	@echo $(MSG_FLASH) $@
+	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
+
+%.eep: %.elf
+	@echo
+	@echo $(MSG_EEPROM) $@
+	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+	--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
+
+# Create extended listing file from ELF output file.
+%.lss: %.elf
+	@echo
+	@echo $(MSG_EXTENDED_LISTING) $@
+	$(OBJDUMP) -h -S $< > $@
+
+# Create a symbol table from ELF output file.
+%.sym: %.elf
+	@echo
+	@echo $(MSG_SYMBOL_TABLE) $@
+	$(NM) -n $< > $@
+
+
+
+# Link: create ELF output file from object files.
+.SECONDARY : $(TARGET).elf
+.PRECIOUS : $(OBJ)
+%.elf: $(OBJ)
+	@echo
+	@echo $(MSG_LINKING) $@
+	$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
+
+
+# Compile: create object files from C source files.
+%.o : %.c
+	@echo
+	@echo $(MSG_COMPILING) $<
+	$(CC) -c $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C source files.
+%.s : %.c
+	$(CC) -S $(ALL_CFLAGS) $< -o $@
+
+
+# Assemble: create object files from assembler source files.
+%.o : %.S
+	@echo
+	@echo $(MSG_ASSEMBLING) $<
+	$(CC) -c $(ALL_ASFLAGS) $< -o $@
+
+# Create preprocessed source for use in sending a bug report.
+%.i : %.c
+	$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
+
+
+# Target: clean project.
+clean: begin clean_list end
+
+clean_list :
+	@echo
+	@echo $(MSG_CLEANING)
+	$(REMOVE) $(TARGET).hex
+	$(REMOVE) $(TARGET).eep
+	$(REMOVE) $(TARGET).cof
+	$(REMOVE) $(TARGET).elf
+	$(REMOVE) $(TARGET).map
+	$(REMOVE) $(TARGET).sym
+	$(REMOVE) $(TARGET).lss
+	$(REMOVE) $(OBJ)
+	$(REMOVE) $(LST)
+	$(REMOVE) $(SRC:.c=.s)
+	$(REMOVE) $(SRC:.c=.d)
+	$(REMOVEDIR) .dep
+
+
+
+# Include the dependency files.
+-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
+
+
+# Listing of phony targets.
+.PHONY : all begin finish end sizebefore sizeafter gccversion \
+build elf hex eep lss sym coff extcoff \
+clean clean_list program debug gdb-config
+
Index: trunk/code/projects/rangefinders/rangefinder.h
===================================================================
--- trunk/code/projects/rangefinders/rangefinder.h	(nonexistent)
+++ trunk/code/projects/rangefinders/rangefinder.h	(revision 1455)
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2007 Colony Project
+ * 
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ * 
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ **/
+
+
+/**
+ * @file rangefinder.h
+ * @brief Contains rangefinder declarations and functions
+ * 
+ * Contains functions and definitions for the use of
+ * IR rangefinders.
+ *
+ * @author Colony Project, CMU Robotics Club
+ **/
+
+#ifndef _RANGEFINDER_H_
+#define _RANGEFINDER_H_
+
+/**
+ * @addtogroup rangefinder
+ * @{
+ **/
+
+/** @brief IR Rangefinder 1 **/
+#define IR1 6
+/** @brief IR Rangefinder 2 **/
+#define IR2 5
+/** @brief IR Rangefinder 3 **/
+#define IR3 4
+/** @brief IR Rangefinder 4 **/
+#define IR4 3
+/** @brief IR Rangefinder 5 **/
+#define IR5 2
+/** @brief smallest meaningful rangefinder reading (logarithmic scale) **/
+#define MIN_IR_ADC8 27
+/** @brief largest meaningful rangefinder reading (logarithmic scale) **/
+#define MAX_IR_ADC8 98
+
+/** @brief Initialize the rangefinders **/
+void range_init(void);
+/** @brief Read the distance from a rangefinder **/
+int range_read_distance(int range_id);
+/** @brief Convert logarithmic-scale distance readings to a linear scale **/
+int linearize_distance(int value);
+
+/** @} **/ //end addtogroup
+
+#endif
+
Index: trunk/code/projects/rangefinders/IR2/Makefile
===================================================================
--- trunk/code/projects/rangefinders/IR2/Makefile	(nonexistent)
+++ trunk/code/projects/rangefinders/IR2/Makefile	(revision 1455)
@@ -0,0 +1,520 @@
+########Update This Section########
+#
+#
+
+# Relative path to the root directory (containing lib directory)
+ifndef COLONYROOT
+COLONYROOT = ../.
+endif
+
+# Target file name (without extension).
+TARGET = testIR2
+
+# Uncomment this to use the wireless library
+#USE_WIRELESS = 1
+
+# com1 = serial port. Use lpt1 to connect to parallel port.
+AVRDUDE_PORT = $(shell if uname -s |grep -i w32 >/dev/null; then echo 'COM4:'; else echo '/dev/ttyUSB0'; fi)
+
+#
+###################################
+
+# Hey Emacs, this is a -*- makefile -*-
+#----------------------------------------------------------------------------
+# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
+#
+# Released to the Public Domain
+#
+# Additional material for this makefile was written by:
+# Peter Fleury
+# Tim Henigan
+# Colin O'Flynn
+# Reiner Patommel
+# Markus Pfaff
+# Sander Pool
+# Frederik Rouleau
+#
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device, using avrdude.
+#                Please customize the avrdude settings below first!
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+#if you want your code to work on the Firefly++ and not Firefly+
+#then add the -DFFPP line to CDEFS
+CDEFS =
+#-DFFPP
+
+# MCU name
+MCU = atmega128
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+F_CPU = 8000000
+
+# Output format. (can be srec, ihex, binary)
+FORMAT = ihex
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC = $(wildcard *.c)
+
+# List Assembler source files here.
+#     Make them always end in a capital .S.  Files ending in a lowercase .s
+#     will not be considered source files but generated files (assembler
+#     output from the compiler), and will be deleted upon "make clean"!
+#     Even though the DOS/Win* filesystem matches both .s and .S the same,
+#     it will preserve the spelling of the filenames, and gcc itself does
+#     care about how the name is spelled on its command-line.
+ASRC =
+
+# Optimization level, can be [0, 1, 2, 3, s].
+#     0 = turn off optimization. s = optimize for size.
+#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
+OPT = s
+
+# Debugging format.
+#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
+#     AVR Studio 4.10 requires dwarf-2.
+#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
+DEBUG =
+
+# Compiler flag to set the C Standard level.
+#     c89   = "ANSI" C
+#     gnu89 = c89 plus GCC extensions
+#     c99   = ISO C99 standard (not yet fully implemented)
+#     gnu99 = c99 plus GCC extensions
+CSTANDARD = -std=gnu99
+
+# Place -D or -U options here
+CDEFS += -DF_CPU=$(F_CPU)UL
+CDEFS += -DFFP
+# for wireless library
+ifdef USE_WIRELESS
+	CDEFS += -DROBOT
+endif
+
+# Place -I, -L options here
+CINCS = -I$(COLONYROOT)/Library
+CINCS += -L$(COLONYROOT)/Library
+ifdef USE_WIRELESS
+	CINCS += -I$(COLONYROOT)/code/lib/include/libwireless
+endif
+
+#---------------- Compiler Options ----------------
+#  -g*:          generate debugging information
+#  -O*:          optimization level
+#  -f...:        tuning, see GCC manual and avr-libc documentation
+#  -Wall...:     warning level
+#  -Wa,...:      tell GCC to pass this to the assembler.
+#    -adhlns...: create assembler listing
+CFLAGS =
+# CFLAGS = -g$(DEBUG)
+CFLAGS += $(CDEFS) $(CINCS)
+CFLAGS += -O$(OPT)
+CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
+CFLAGS += -Wall -Wstrict-prototypes
+CFLAGS += -Wa,-adhlns=$(<:.c=.lst)
+CFLAGS += $(CSTANDARD)
+
+#---------------- Assembler Options ----------------
+#  -Wa,...:   tell GCC to pass this to the assembler.
+#  -ahlms:    create listing
+#  -gstabs:   have the assembler create line number information; note that
+#             for use in COFF files, additional information about filenames
+#             and function names needs to be present in the assembler source
+#             files -- see avr-libc docs [FIXME: not yet described there]
+ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
+
+
+#---------------- Library Options ----------------
+# Minimalistic printf version
+PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
+
+# Floating point printf version (requires MATH_LIB = -lm below)
+PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
+
+# If this is left blank, then it will use the Standard printf version.
+#PRINTF_LIB =
+#PRINTF_LIB = $(PRINTF_LIB_MIN)
+PRINTF_LIB = $(PRINTF_LIB_FLOAT)
+
+
+# Minimalistic scanf version
+SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
+
+# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
+SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
+
+# If this is left blank, then it will use the Standard scanf version.
+SCANF_LIB =
+#SCANF_LIB = $(SCANF_LIB_MIN)
+#SCANF_LIB = $(SCANF_LIB_FLOAT)
+
+MATH_LIB = -lm
+
+#---------------- External Memory Options ----------------
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# used for variables (.data/.bss) and heap (malloc()).
+#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# only used for heap (malloc()).
+#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff
+
+EXTMEMOPTS =
+
+#---------------- Linker Options ----------------
+#  -Wl,...:     tell GCC to pass this to linker.
+#    -Map:      create map file
+#    --cref:    add cross reference to  map file
+LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
+LDFLAGS += $(EXTMEMOPTS)
+LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
+ifdef USE_WIRELESS
+	LDFLAGS += -lwireless
+endif
+LDFLAGS += -ldragonfly
+
+
+
+#---------------- Programming Options (avrdude) ----------------
+
+# Programming hardware: alf avr910 avrisp bascom bsd
+# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
+#
+# Type: avrdude -c ?
+# to get a full listing.
+#
+AVRDUDE_PROGRAMMER = avrisp
+
+# programmer connected to serial device
+
+AVRDUDE_WRITE_FLASH = -b 57600 -U flash:w:$(TARGET).hex
+#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE_COUNTER = -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_NO_VERIFY = -V
+
+# Increase verbosity level.  Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
+# to submit bug reports.
+#AVRDUDE_VERBOSE = -v -v
+
+AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
+AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
+AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
+
+#don't check for device signature
+AVRDUDE_FLAGS += -F
+
+
+
+#---------------- Debugging Options ----------------
+
+# For simulavr only - target MCU frequency.
+DEBUG_MFREQ = $(F_CPU)
+
+# Set the DEBUG_UI to either gdb or insight.
+# DEBUG_UI = gdb
+DEBUG_UI = insight
+
+# Set the debugging back-end to either avarice, simulavr.
+DEBUG_BACKEND = avarice
+#DEBUG_BACKEND = simulavr
+
+# GDB Init Filename.
+GDBINIT_FILE = __avr_gdbinit
+
+# When using avarice settings for the JTAG
+JTAG_DEV = /dev/com1
+
+# Debugging port used to communicate between GDB / avarice / simulavr.
+DEBUG_PORT = 4242
+
+# Debugging host used to communicate between GDB / avarice / simulavr, normally
+#     just set to localhost unless doing some sort of crazy debugging when
+#     avarice is running on a different computer.
+DEBUG_HOST = localhost
+
+
+
+#============================================================================
+
+
+# Define programs and commands.
+SHELL = sh
+CC = avr-gcc
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+SIZE = avr-size
+NM = avr-nm
+AVRDUDE = avrdude
+REMOVE = rm -f
+REMOVEDIR = rm -rf
+COPY = cp
+WINSHELL = cmd
+
+
+# Define Messages
+# English
+MSG_ERRORS_NONE = Errors: none
+MSG_BEGIN = -------- begin --------
+MSG_END = --------  end  --------
+MSG_SIZE_BEFORE = Size before:
+MSG_SIZE_AFTER = Size after:
+MSG_COFF = Converting to AVR COFF:
+MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
+MSG_FLASH = Creating load file for Flash:
+MSG_EEPROM = Creating load file for EEPROM:
+MSG_EXTENDED_LISTING = Creating Extended Listing:
+MSG_SYMBOL_TABLE = Creating Symbol Table:
+MSG_LINKING = Linking:
+MSG_COMPILING = Compiling:
+MSG_ASSEMBLING = Assembling:
+MSG_CLEANING = Cleaning project:
+
+
+
+
+# Define all object files.
+OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
+
+# Define all listing files.
+LST = $(SRC:.c=.lst) $(ASRC:.S=.lst)
+
+
+# Compiler flags to generate dependency files.
+GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
+
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
+ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
+
+
+
+
+
+# Default target.
+all: begin gccversion sizebefore build sizeafter end
+
+build: elf hex eep lss sym
+
+elf: $(TARGET).elf
+hex: $(TARGET).hex
+eep: $(TARGET).eep
+lss: $(TARGET).lss
+sym: $(TARGET).sym
+
+
+
+# Eye candy.
+# AVR Studio 3.x does not check make's exit code but relies on
+# the following magic strings to be generated by the compile job.
+begin:
+	@echo
+	@echo $(MSG_BEGIN)
+
+end:
+	@echo $(MSG_END)
+	@echo
+
+
+# Display size of file.
+HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
+ELFSIZE = $(SIZE) -A $(TARGET).elf
+AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)
+
+sizebefore:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
+	$(AVRMEM) 2>/dev/null; echo; fi
+
+sizeafter:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
+	$(AVRMEM) 2>/dev/null; echo; fi
+
+
+
+# Display compiler version information.
+gccversion :
+	@$(CC) --version
+
+
+
+# Program the device.
+program: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+
+# Generate avr-gdb config/init file which does the following:
+#     define the reset signal, load the target file, connect to target, and set
+#     a breakpoint at main().
+gdb-config:
+	@$(REMOVE) $(GDBINIT_FILE)
+	@echo define reset >> $(GDBINIT_FILE)
+	@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
+	@echo end >> $(GDBINIT_FILE)
+	@echo file $(TARGET).elf >> $(GDBINIT_FILE)
+	@echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
+ifeq ($(DEBUG_BACKEND),simulavr)
+	@echo load  >> $(GDBINIT_FILE)
+endif
+	@echo break main >> $(GDBINIT_FILE)
+
+debug: gdb-config $(TARGET).elf
+ifeq ($(DEBUG_BACKEND), avarice)
+	@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
+	@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
+	$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
+	@$(WINSHELL) /c pause
+
+else
+	@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
+	$(DEBUG_MFREQ) --port $(DEBUG_PORT)
+endif
+	@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
+
+
+
+
+# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
+COFFCONVERT=$(OBJCOPY) --debugging \
+--change-section-address .data-0x800000 \
+--change-section-address .bss-0x800000 \
+--change-section-address .noinit-0x800000 \
+--change-section-address .eeprom-0x810000
+
+
+coff: $(TARGET).elf
+	@echo
+	@echo $(MSG_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
+
+
+extcoff: $(TARGET).elf
+	@echo
+	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
+
+
+
+# Create final output files (.hex, .eep) from ELF output file.
+%.hex: %.elf
+	@echo
+	@echo $(MSG_FLASH) $@
+	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
+
+%.eep: %.elf
+	@echo
+	@echo $(MSG_EEPROM) $@
+	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+	--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
+
+# Create extended listing file from ELF output file.
+%.lss: %.elf
+	@echo
+	@echo $(MSG_EXTENDED_LISTING) $@
+	$(OBJDUMP) -h -S $< > $@
+
+# Create a symbol table from ELF output file.
+%.sym: %.elf
+	@echo
+	@echo $(MSG_SYMBOL_TABLE) $@
+	$(NM) -n $< > $@
+
+
+
+# Link: create ELF output file from object files.
+.SECONDARY : $(TARGET).elf
+.PRECIOUS : $(OBJ)
+%.elf: $(OBJ)
+	@echo
+	@echo $(MSG_LINKING) $@
+	$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
+
+
+# Compile: create object files from C source files.
+%.o : %.c
+	@echo
+	@echo $(MSG_COMPILING) $<
+	$(CC) -c $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C source files.
+%.s : %.c
+	$(CC) -S $(ALL_CFLAGS) $< -o $@
+
+
+# Assemble: create object files from assembler source files.
+%.o : %.S
+	@echo
+	@echo $(MSG_ASSEMBLING) $<
+	$(CC) -c $(ALL_ASFLAGS) $< -o $@
+
+# Create preprocessed source for use in sending a bug report.
+%.i : %.c
+	$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
+
+
+# Target: clean project.
+clean: begin clean_list end
+
+clean_list :
+	@echo
+	@echo $(MSG_CLEANING)
+	$(REMOVE) $(TARGET).hex
+	$(REMOVE) $(TARGET).eep
+	$(REMOVE) $(TARGET).cof
+	$(REMOVE) $(TARGET).elf
+	$(REMOVE) $(TARGET).map
+	$(REMOVE) $(TARGET).sym
+	$(REMOVE) $(TARGET).lss
+	$(REMOVE) $(OBJ)
+	$(REMOVE) $(LST)
+	$(REMOVE) $(SRC:.c=.s)
+	$(REMOVE) $(SRC:.c=.d)
+	$(REMOVEDIR) .dep
+
+
+
+# Include the dependency files.
+-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
+
+
+# Listing of phony targets.
+.PHONY : all begin finish end sizebefore sizeafter gccversion \
+build elf hex eep lss sym coff extcoff \
+clean clean_list program debug gdb-config
+
Index: trunk/code/projects/rangefinders/IR2/testIR2.c
===================================================================
--- trunk/code/projects/rangefinders/IR2/testIR2.c	(nonexistent)
+++ trunk/code/projects/rangefinders/IR2/testIR2.c	(revision 1455)
@@ -0,0 +1,20 @@
+#include <dragonfly_lib.h>
+
+int main(void)
+{
+	/* initialize components, set wireless channel */
+	dragonfly_init(ALL_ON);
+	
+  //Replace the next two lines with your own code
+  //You can add as many lines as you want
+  
+	while(1) {
+		usb_puti(range_read_distance(IR2));
+		usb_putc('\r');
+		delay_ms(50);
+	}
+	
+  //this tell the robot to just chill out forever. don't put anything after this
+  while(1);
+	return 0;
+}
